GitHub 支持在 README 中插入类似 LaTeX 的代码。我想添加一些跨越多行的方程:
到目前为止我已经尝试过:1.
$$eqtn1 \\
eqtn2 \\
eqtn3$$
$$eqtn1 \\ eqtn2 \\ eqtn3$$
$$\begin{matrix}eqtn1 \\ eqtn2 \\ eqtn3 \end{matrix}$$
$$\begin{gather*}eqtn1 \\ eqtn2 \\ eqtn3 \end{gather*}$$
$$eqtn1, $$
$$eqtn2, $$
$$eqtn3$$
但是,前三个块不会渲染,并且在最后三个块中,除非我在它们之间添加文本,否则所有三个块都会合并为一行。有人知道如何在方程块中获得多行吗?我希望渲染我的代码
eqtn1
eqtn2
eqtn3
使用 1 则不渲染任何内容。看来 mathjax 不喜欢换行符。 2 不渲染,我认为 mathjax 不喜欢 \\
。 3 和 4 也不渲染任何东西。我认为是因为 Mathjax 不支持 Gather 和 Matrix 关键字。通过最后一个代码块,方程被渲染:
eqtn1, eqtn2, eqtn3
\
和
_
作为特殊字符,但含义却截然不同),GitHub 试图保护 LaTeX 中的特殊字符,但其算法检测它们严重损坏。特别是,GitHub 仅在
\\
位于行尾时正确保护它,因此您不能像示例 2、3 和 4 那样在行中间使用它。为了克服这个问题,他们为内联数学添加了新的分隔符
$`
和
`$
和
``` math
(your math here)
```
用于显示数学,这将避免大多数 Markdown/LaTeX 交互。所以你应该尽可能使用它们。特别是,您可以通过这种方式在线条中间使用 \\
。所以
``` math
\begin{matrix}eqtn1 \\ eqtn2 \\ eqtn3 \end{matrix}
```
和
``` math
\begin{gather*}eqtn1 \\ eqtn2 \\ eqtn3 \end{gather*}
```
两者都可以。也会这样
``` math
\displaylines{eqtn1 \\ eqtn2 \\ eqtn3}
```
您的第一个和第二个示例将不起作用,因为 GitHub 使用 MathJax v3,它不支持 \\
换行(仅适用于数组行终止符和
\displaylines
内)。顺便说一句,我提到
\\
仅当它出现在行尾时才得到适当的保护,所以你可以这样做
$$
\begin{matrix}
eqtn1 \\
eqtn2 \\
eqtn3
\end{matrix}
$$
它会起作用,但你仍然会面临与 Markdown 和 LaTeX 的其他潜在交互。最好使用 ``` math
来完全避免它们。