MTex

该类由凡人忆拾编写和完善,使用 latex/xelatex 生成公式。该类继承自 StringMobject , 因而支持 TransformMatchingStrings 动画。

MTex 提供的参数有:

  • font_size: float = 48: 全局字号。

  • alignment: str = "\\centering": 对齐方向。

  • tex_environment: str | tuple[str, str] | None = "align*": tex 环境。 MTexText 类中该参数默认为 None

  • tex_to_color_map: dict[Selector, ManimColor] = {}: 局部颜色。

  • isolate: Selector = (): 预指定子串。

  • base_color: ManimColor = WHITE: 全局颜色。

该类指定子串的可选方式有(Selector 类型可参阅 StringMobject ):

  • isolate 参数(Selector 类型);

  • tex_to_color_map 字典的键(Selector 类型);

  • 双大括号内部的内容。

下面给出用不同方式指定子串的示例:

https://fastly.jsdelivr.net/gh/manim-kindergarten/CDN@master/manimgl_assets/mobject/svg/mtex/MTexSpecifySubstrings.png
MTexSpecifySubstrings
class MTexSpecifySubstrings(Scene):
    def construct(self):
        tex = MTex("\\sqrt{{s}}").shift(UP)
        tex.select_part("s").set_fill(TEAL)
        self.add(tex)
        poly = MTex(
            "p(x) = a_0 x^0 + a_1 x^1 + \\cdots + a_{n-1} x^{n-1} + a_n x^n",
            tex_to_color_map={re.compile(r"a_(.+?) x\^\1"): ORANGE}
        )
        self.add(poly)

MTex

class manimlib.mobject.svg.mtex_mobject.MTex(tex_string: str, **kwargs)

初始化样式,VMobject 的样式有以下

  • fill 填充样式

    • 颜色: fill_colorcolor

    • 不透明度: fill_opacity

  • stroke 线条样式

    • 颜色: stroke_colorcolor

    • 宽度: stroke_width

    • 不透明度: stroke_opacity

  • gloss 光泽

  • shadow 阴影

  • reflectiveness 反光度

其中, color, opacity, width 属性均可以为一个列表,在渲染时会按照列表对其进行补间

get_part_by_tex(selector: Selector) → VGroup

select_part 的别名

get_parts_by_tex(selector: Selector) → VGroup

select_parts 的别名

set_color_by_tex(selector: Selector, color: ManimColor)

set_parts_color 的别名

set_color_by_tex_to_color_map(color_map: dict[Selector, ManimColor])

set_parts_color_by_dict 的别名

MTexText

class manimlib.mobject.svg.mtex_mobject.MTexText(tex_string: str, **kwargs)

MTex 无公式环境的文本

初始化样式,VMobject 的样式有以下

  • fill 填充样式

    • 颜色: fill_colorcolor

    • 不透明度: fill_opacity

  • stroke 线条样式

    • 颜色: stroke_colorcolor

    • 宽度: stroke_width

    • 不透明度: stroke_opacity

  • gloss 光泽

  • shadow 阴影

  • reflectiveness 反光度

其中, color, opacity, width 属性均可以为一个列表,在渲染时会按照列表对其进行补间

JTex

注意

在 manimgl 中并不包含,但可以通过一些方式引入。

由 Fran 编写,继承自 MTex,基于 mathjax 生成公式,可以通过链接查看使用方法 https://github.com/manim-kindergarten/manimgl-mathjax.git

由于该类基于 mathjax 生成公式,因此相比 LaTeX,该类会有更快的生成速度。同时对于公式的需求没有那么高的情况下,甚至可以不用安装 LaTeX,所以力推 JTex。但这个类并不支持中文。