数学与方程式#

数学公式可以用常见的 LaTeX 标记来书写。根据个人偏好,有几种语法可以定义行内公式和块级公式。

1.  数学角色与指令#

math roledirective 分别用于定义行内公式和块级公式。

该指令支持多个方程式,各方程式之间应以空行分隔。每个单独的方程式可以包含多行对齐,各行之间应以 \\ 字符分隔,每行可以有多个 & 字符用于对齐方程式。

label 选项也可用于稍后通过 eq 角色引用该方程式。

Since Pythagoras, we know that {math}`a^2 + b^2 = c^2`.

```{math}
:label: mymath
(a + b)^2 = a^2 + 2ab + b^2

(a + b)^2  &=  (a + b)(a + b) \\
           &=  a^2 + 2ab + b^2
```

The equation {eq}`mymath` is a quadratic equation.

自毕达哥拉斯以来,便知 \(a^2 + b^2 = c^2\)

(1)#\[ \begin{align}\begin{aligned}(a + b)^2 = a^2 + 2ab + b^2\\\begin{split}(a + b)^2 &= (a + b)(a + b) \\ &= a^2 + 2ab + b^2\end{split}\end{aligned}\end{align} \]

方程式 (1) 是二次方程。

参见

Sphinx 文档关于 角色指令,以及 Sphinx 中 HTML 输出的数学支持

2.  美元符号分隔的数学公式#

启用 dollarmath 插件将允许解析以下语法:

  • 行内公式: $...$

  • 显示(块级)公式: $$...$$

此外,如果设置了 myst_dmath_allow_labels=True (默认设置):

  • 带有方程式标签的显示(块级)公式: $$...$$ (1)

$$
(a + b)^2  &=  (a + b)(a + b) \\
           &=  a^2 + 2ab + b^2
$$ (mymath2)

The equation {eq}`mymath2` is also a quadratic equation.
(2)#\[\begin{split} (a + b)^2 &= (a + b)(a + b) \\ &= a^2 + 2ab + b^2 \end{split}\]

The equation (2) is also a quadratic equation.

3.  直接使用 LaTeX 数学公式#

启用 amsmath 插件将直接解析以下顶级数学环境:

equation, multiline, gather, align, alignat, flalign, matrix, pmatrix, bmatrix, Bmatrix, vmatrix, Vmatrix, eqnarray.

正如预期的那样,以 * 结尾的环境将不会被编号,例如:

\begin{gather*}
a_1=b_1+c_1\\
a_2=b_2+c_2-d_2+e_2
\end{gather*}

\begin{align}
a_{11}& =b_{11}&
  a_{12}& =b_{12}\\
a_{21}& =b_{21}&
  a_{22}& =b_{22}+c_{22}
\end{align}
\[\begin{gather*} a_1=b_1+c_1\\ a_2=b_2+c_2-d_2+e_2 \end{gather*}\]
(3)#\[\begin{align} a_{11}& =b_{11}& a_{12}& =b_{12}\\ a_{21}& =b_{21}& a_{22}& =b_{22}+c_{22} \end{align}\]