数学和公式¶
Jupyter Book使用 MathJax 在 HTML 图书版本中排版数学。这使您可以在在线内容中使用 LaTeX 风格的数学。此页面显示了几种控制方法。
参见
有关公式编号的更多信息,请参见 MathJax 公式编号文档。
小技巧
默认情况下,当前使用 MathJax 版本 2。如果您使用大量数学运算,则可能要尝试使用版本 3,该版本声称可将加载速度提高 \(60-80\%\):
sphinx:
config:
mathjax_path: https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js
细节见 Sphinx documentation。
行内数学¶
要插入行内数学,请在 Markdown 单元格内使用 $
符号。例如,文本 $this_{is}^{inline}$
将产生:\(this_{is}^{inline}\)。
数学块¶
您还可以为单独的公式包括数学块。这使您可以将注意力集中在更复杂或更长时间的公式上,以及在页面中链接到它们。要使用块公式,请将公式包装在 $$
或 \begin
语句中。
例如,
$$
\int_0^\infty \frac{x^3}{e^x-1}\,dx = \frac{\pi^4}{15}
$$
结果是:
Latex 风格的数学¶
您可以使用 amsmath
MyST 扩展启用解析 LaTeX 样式的数学块。通过将以下内容添加到 _config.yml
中来启用它
parse:
myst_enable_extensions:
# don't forget to list any other extensions you want enabled,
# including those that are enabled by default!
- amsmath
启用后,您可以定义数学块,如下所示:
\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}
结果是:
公式编号¶
如果您希望对公式进行编号,以便以后可以引用它们,请使用 math 指令。看起来像这样:
```{math}
:label: my_label
my_math
```
例如,以下代码:
```{math}
:label: my_label
w_{t+1} = (1 + r_{t+1}) s(w_t) + y_{t+1}
```
会产生
或者,您可以使用带有前缀标签的美元数学语法:
$$
w_{t+1} = (1 + r_{t+1}) s(w_t) + y_{t+1}
$$ (my_other_label)
会产生
注解
标签不能以整数开头,否则将无法被引用,如果被引用,则会引发警告消息。例如,不能引用 :label: 1
和 :label: 1eq
。
链接到公式¶
如果您创建了带有标签的公式,则可以从文本内(以及跨页面!)链接到该公式。
您可以使用通过 {eq}
角色提供的标签来引用公式。例如:
- A link to an equation directive: {eq}`my_label`
- A link to a dollar math block: {eq}`my_other_label`
结果是
注解
LaTeX 环境中的 \labels
目前尚未识别,因此无法引用。我们希望在以后的更新中实现这一点(见 executablebooks/MyST-Parser#202)!