Tex

TexTexText 使用 latex/xelatex 来讲输入的字符串根据LaTeX语法编译为 dvi/xdv 文件, 再通过 dvisvgm 将其转换为 svg 文件,通过 SVGMobject 转换为物体,实现添加文字/公式的效果。

关于 TexTexText 的区别,还有 LaTeX 发行版安装和文字字体问题,常见问题中有更详细的解答(由于原来的删了,先拿自己部署的顶上):

MK做了一个关于常用 TexTexText 的视频(该视频适用于旧版,但新版也能凑合着看): 〔manim教程〕第四讲 SVG、图片与文字

另外,凡人忆拾 正在写 MTex 类,针对 Tex 类的上色做了相当多的优化,目前还在测试期间,可以先尝试下载他的分支体验一下,待 Grant 合并分支后,我们将会把这一部分文档一并更新。

SingleStringTex

class manimlib.mobject.svg.tex_mobject.SingleStringTex(tex_string: str, **kwargs)

单个字符串渲染出的 SVGMobject

只传入一个字符串``tex_string``

balance_braces(tex: str) → str

匹配大括号

get_modified_expression(tex_string: str) → str

将对齐参数与传入的字符串拼接,并且处理特殊的字符串

modify_special_strings(tex: str) → str

处理特殊不合法的字符串

Tex

class manimlib.mobject.svg.tex_mobject.Tex(*tex_strings: str, **kwargs)

用于生成 LaTeX 公式(align 环境)

可传入多个 tex_strings

  • arg_separator 表示每两个字符串之间的字符,默认为空格

  • isolate 列表中放有想要单独拆开的字符串,可以不用手动拆开

  • tex_to_color_map 为一个字典,会根据其中的键自动拆开字符串用于上色

break_up_by_substrings()

重新组织子物体,tex_string 中每个子字符串为一个子物体

break_up_tex_strings(tex_strings: Iterable[str]) → Iterable[str]

根据传入的 tex_to_color_map 再次拆开 tex_strings

index_of_part_by_tex(tex: str, start: int = 0, **kwargs) → int

根据 tex 获取在子物体中的下标

set_color_by_tex(tex: str, color: ManimColor, **kwargs)

tex 上颜色为 color,注意此时 tex 要独立存在,否则会给包含 tex 的也上色

set_color_by_tex_to_color_map(tex_to_color_map: dict[str, ManimColor], **kwargs)

根据 texs_to_color_map 上色,同样,会给包含键的全部上色,不会自动拆分

sort_alphabetically() → None

根据字典序给子物体排序

TexText

class manimlib.mobject.svg.tex_mobject.TexText(*tex_strings: str, **kwargs)

用于生成 LaTeX 文字,默认每行之间居中

传入的两个字符串之间无分隔 (即 arg_separator="")

可传入多个 tex_strings

  • arg_separator 表示每两个字符串之间的字符,默认为空格

  • isolate 列表中放有想要单独拆开的字符串,可以不用手动拆开

  • tex_to_color_map 为一个字典,会根据其中的键自动拆开字符串用于上色

BulletedList

class manimlib.mobject.svg.tex_mobject.BulletedList(*items: str, **kwargs)

项目列表

支持多个字符串,每个一行;也支持一个字符串,使用 LaTeX 的换行(\)

fade_all_but(index_or_string: int | str, opacity: float = 0.5) → None

把除了 index_or_string 之外的不透明度均设为 opacity

index_or_string 可以传入子物体的下标,也可以传入一个字符串

TexFromPresetString

class manimlib.mobject.svg.tex_mobject.TexFromPresetString(**kwargs)

可传入多个 tex_strings

  • arg_separator 表示每两个字符串之间的字符,默认为空格

  • isolate 列表中放有想要单独拆开的字符串,可以不用手动拆开

  • tex_to_color_map 为一个字典,会根据其中的键自动拆开字符串用于上色

Title

class manimlib.mobject.svg.tex_mobject.Title(*text_parts: str, **kwargs)

标题

include_underline=True 会添加下划线(默认添加) underline_width 下划线的长度(默认屏幕宽 - 2 个单位) match_underline_width_to_text=True 时将下划线的长度和文字匹配(默认为 False)