提醒:本文所描述的场景是纯粹的Latex环境,例如overleaf等论文编辑网站,此时换行符就是两个反斜杠。另外,需要注意的是非纯粹的Latex环境,即Markdown+KaTeX/MathJax场景,例如,面试天下网用Markdown编辑器编写内容,而前端页面使用KaTeX/MathJax渲染公式,此种情况则需要使用四个反斜杠
在纯粹的 .tex 文件里,不存在 Markdown 的干扰,换行规则非常清晰:
换行统一使用
\\(两个反斜杠)
$$...$$ 内部,直接换行在单独的公式块 $$...$$ 中,直接写 \\ 是无效的,KaTeX 会报错。
$$
a = 1 \\
b = 2
$$
这会报错:ParseError: Expected 'EOF', got '\\'
这是因为 $$...$$ 默认是单行公式环境,不支持独立的换行符。
$$...$$ 内部,用 aligned 等环境换行如果你需要在多行公式中换行,必须借助多行对齐环境,比如 aligned、gathered、array、cases 等。在这些环境内部,\\ 就可以正常工作了
$$
\begin{aligned}
a &= 1 \\
b &= 2
\end{aligned}
$$
这会正确渲染为两行对齐的公式。
为什么这里 \\ 可以工作?
因为 aligned 环境主动告诉 KaTeX:“我现在进入多行模式了,请接受 \\ 作为换行指令。”在没有这类环境包裹的情况下,KaTeX 始终认为自己在单行模式,遇到 \\ 就会不理解。
\\ 换行矩阵环境(pmatrix、bmatrix、vmatrix 等)天然就是多行的,所以在矩阵内部可以直接使用 \\ 来分隔行。
$$
\begin{pmatrix}
1 & 2 \\
3 & 4
\end{pmatrix}
$$
这会正确渲染一个 2×2 矩阵。
这是因为 pmatrix 环境在定义时就已经声明了它支持 \\,所以不需要额外包裹 aligned。
| 场景 | 是否可以直接用 \\ | 解决方案 |
|---|---|---|
$$...$$ 内部,直接写多行公式 | 不行 | 包裹在 aligned 等环境中 |
$$...$$ 内部,aligned / gathered / cases 环境中 | 可以 | 直接使用 \\ |
$$...$$ 内部,pmatrix / bmatrix 等矩阵环境中 | 可以 | 直接使用 \\ |
$...$ 行内公式,无论如何 | 不行 | 行内公式不支持多行 |