math
Typst 具有特殊的 数学 语法和库函数,用于排版数学公式。
数学公式可以嵌入文本中显示,也可以作为单独的块状公式显示。
如果数学公式的起始和结束都至少包含一个空格(例如 $ x^2 $
),它们将被显示为块状公式。
变量
在数学中,单个字母始终按原样显示。 然而,多个字母会被解释为变量和函数。 要逐字显示多个字母,可以将它们放入引号中,并且要访问单个字母变量,可以使用 哈希标签语法。
$ A = pi r^2 $
$ "area" = pi dot "radius"^2 $
$ cal(A) :=
{ x in RR | x "is natural" } $
#let x = 5
$ #x < 17 $
符号
数学模式提供多种 符号,如 pi
、dot
或 RR
。
许多数学符号有不同的变体。
您可以通过对符号应用修饰符来选择不同的变体。
Typst 还识别许多简写序列,如 =>
,它们近似表示一个符号。
当存在此类简写时,符号的文档中会列出它。
$ x < y => x gt.eq.not y $
换行
公式也可以包含换行。
每一行可以包含一个或多个对齐点(&
),然后这些点将被对齐。
$ sum_(k=0)^n k
&= 1 + ... + n \
&= (n(n+1)) / 2 $
函数调用
数学模式支持特殊的没有哈希前缀的函数调用。 在这些“数学调用”中,参数列表的工作方式与代码中的有点不同:
- 在其中,Typst 仍然处于“数学模式”中。 因此,您可以直接将数学写入其中,但需要使用哈希语法传递代码表达式(字符串除外,在数学语法中可用)。
- 它们支持位置参数和命名参数,但不支持尾部内容块和参数扩展。
- 它们为二维参数列表提供附加的语法。
分号(
;
)将逗号分隔的前导参数合并为数组参数。
$ frac(a^2, 2) $
$ vec(1, 2, delim: "[") $
$ mat(1, 2; 3, 4) $
$ lim_x =
op("lim", limits: #true)_x $
要在数学调用中写入逐字的逗号或分号,请用反斜杠进行转义。 另一方面,如果冒号直接在标识符之前,则只有在特定方式直接前置的情况下才会被特殊识别,因此在这些情况下逐字显示它,可以在其前插入一个空格。
由哈希前缀引导的函数调用是正常的代码函数调用,不受这些规则的影响。
对齐
当方程包含多个对齐点(&
)时,这将创建交替右对齐和左对齐的列块。在下面的示例中,表达式(3x + y) / 7
是右对齐的,= 9
是左对齐的。单词“given”也是左对齐的,因为 &&
在一行中创建两个对齐点,交替对齐两次。& &
和 &&
行为完全相同。与此同时,“multiply by 7”右对齐,因为只有一个 &
位于其前面。每个对齐点简单地交替在右对齐和左对齐之间。
$ (3x + y) / 7 &= 9 && "given" \
3x + y &= 63 & "multiply by 7" \
3x &= 63 - y && "subtract y" \
x &= 21 - y/3 & "divide by 3" $
数学字体
您可以通过 show-set规则 来设置数学字体,如下所示。请注意,只有特殊的 OpenType 数学字体适用于数学排版。
#show math.equation: set text(font: "Fira Math")
$ sum_(i in NN) 1 + i $
数学模块
所有数学函数都属于 math
模块,在方程中默认可用。在方程之外,可以使用 math.
前缀访问它们。