typst¶
- class janim.items.svg.typst.TypstDoc(text: str, *, vars: dict[str, TypstVar] | None = None, vars_size_unit: Literal['pt', 'mm', 'cm', 'in'] | None = None, sys_inputs: dict[str, str] = {}, scale: float = 1.0, shared_preamble: str | None = None, additional_preamble: str | None = None, **kwargs)¶
基类:
SVGItemTypst 文档
- group_key: str | None = 'data-typst-label'¶
- move_into_position() None¶
- static compile_typst(text: str, shared_preamble: str, additional_preamble: str, vars: str, sys_inputs: dict[str, str]) str¶
编译 Typst 文档
- static vars_str(vars: dict[str, TypstVar], unit_or_scale: str | float) tuple[str, dict[str, Points]]¶
- static var_str(var: TypstVar, label: str, unit_or_scale: str | float, mapping: dict[str, Points]) str¶
- static length_str(length: float, unit_or_scale: str | float) str¶
- match_pattern(target: TypstDoc, pattern: TypstPattern, ordinal: int = 0, target_ordinal: int | None = None) Self¶
配对并通过变换使得配对的部分重合
例如
t1 = TypstMath('x^2 + y^2') t2 = TypstMath('x + y') t2.points.match_pattern(t1, '+')
则会将
t2进行变换使得二者的加号重合
- get(slices, gapless: bool = False)¶
根据切片得到切分的子物件
在默认情况下,
gapless=False:表示通过给定的
slices直接切取子物件,例如item.get(slice(1, 3)) == item[1:3]支持使用列表获取一批的子物件,例如
item.get([slice(1, 3), slice(4, 7)]) == [item[1:3], item[4:7]]列表支持嵌套,并且结果保持原嵌套结构,例如
item.get([slice(1, 3), [slice(4, 6), slice(10, 12)]]) == [item[1:3], [item[4:6], item[10:12]]]
若
gapless=True:表示通过给定
slices的所有起止位置将所有子物件切分并一起返回,例如item.get(slice(1, 3), gapless=True) == [item[:1], item[1:3], item[3:]]也支持列表以及嵌套的列表,例如
item.get([slice(1, 3), slice(5, 7)]) == [item[:1], item[1:3], item[3:5], item[5:7], item[7:]]注:在这种情况下,所有嵌套结构都会先被展平后处理
- slice(pattern: TypstPattern, ordinal: int) slice¶
- slice(pattern: TypstPattern, ordinal: Iterable[int] | EllipsisType) list[slice]
得到指定
pattern在该物件中形状配对的切片默认返回首个匹配的(即
ordinal=0)ordinal传入其它索引可得到随后匹配的特定部分ordinal传入索引列表可得到多个匹配的特定部分ordinal传入省略号...可以得到所有匹配的部分
- indices(pattern: TypstPattern) list[int]¶
找出该公式中所有出现了
pattern的位置pattern支持使用字符串或者 Typst 对象
- lps_map: dict[str, list[int]] = {}¶
- property lps: list[int]¶
KMP 算法涉及的部分匹配表
- class janim.items.svg.typst.TypstText(text: str, *, shared_preamble: str | None = None, preamble: str | None = None, use_math_environment: bool = False, **kwargs)¶
基类:
TypstDocTypst 文本
- move_into_position() None¶
- class janim.items.svg.typst.TypstMath(text: str, *, shared_preamble: str | None = None, preamble: str | None = None, use_math_environment: bool = True, **kwargs)¶
基类:
TypstTextTypst 公式
相当于
TypstText传入use_math_environment=True
- janim.items.svg.typst.get_typst_template() str¶