latex的equation环境怎么换行:split与aligned两种写法
更新于
latex的equation环境怎么换行?答案是在 equation 里面再套一层 split 或 aligned,用 \\ 断行、& 定对齐点,整组公式仍然只有一个编号。直接在 equation 里写 \\ 不会换行:equation 只排一行公式,\\ 在这里被忽略,公式照旧挤在一行,过长时日志里会出现 Overfull \hbox (xx.xpt too wide) 这样的警告。两种写法都来自 amsmath 宏包,导言区加 \usepackage{amsmath} 即可。
换行写法速查表
| 写法 | 放在哪里 | 编号 | 对齐 | 适合 |
|---|---|---|---|---|
equation 里直接写 \\ |
— | 1 个 | 无 | 不能换行,别这样写 |
equation + split |
只能放在 equation、\[…\]、gather 等显示公式环境里,不能单独用 |
1 个,默认垂直居中 | 每行 1 个 & |
一条长推导分几行 |
equation + aligned |
equation、$$、行内都行 |
1 个,垂直居中 | 可以多组 & |
推导、并排两列等式 |
equation + gathered |
同 aligned | 1 个 | 各行居中、不对齐 | 几条独立等式合用一个编号 |
aligned[t] / aligned[b] |
与左侧文字并排时 | — | 顶部或底部对齐 | 左边有「解:」这类文字 |
align |
独立使用,替代 equation | 每行 1 个 | 多组 & |
每一行都要被引用 |
align* |
独立使用 | 无 | 多组 & |
分行但全不编号 |
align + \notag |
行末加 \notag |
只给没加 \notag 的行编号 |
多组 & |
只引用最后结果 |
multline |
独立使用 | 1 个,排在末行 | 首行靠左、末行靠右 | 一个超长式子无处对齐 |
gather |
独立使用 | 每行 1 个 | 各行居中 | 并列几条不相干的式子 |
\tag{2.1} |
任一带编号的行 | 手写编号 | — | 编号要按章节写 |
amsmath 加 tbtags 选项 |
导言区 | split 的编号落到末行 | — | 期刊要求编号贴末行 |
表里前三行回答了标题的问题。要保留 \begin{equation} 外壳(比如模板或合作者的稿子已经用 \label 引用了它),就在里面加 split 或 aligned;如果自己从头写、每行都想编号,直接换成 align 更省事。
split 与 aligned 各举一例
split:一条长推导分三行。 下面是动能定理的推导,& 放在等号前,三行的等号上下对齐,编号只有一个:
\begin{equation}
\begin{split}
W &= \int_{x_1}^{x_2} F\,\mathrm{d}x = \int_{x_1}^{x_2} m\frac{\mathrm{d}v}{\mathrm{d}t}\,\mathrm{d}x \\
&= \int_{v_1}^{v_2} m v\,\mathrm{d}v \\
&= \tfrac{1}{2} m v_2^2 - \tfrac{1}{2} m v_1^2
\end{split}
\end{equation}
排出来的三行对齐效果如下(图中用 aligned 呈现,对齐方式与 split 相同):

aligned:两列并排。 split 每行只允许一个对齐点,要把两组等式左右并排,就得用 aligned,列与列之间再用一个 & 隔开:
\begin{equation}
\begin{aligned}
x + 2y &= 5, & 3x - y &= 1 \\
x &= 1, & y &= 2
\end{aligned}
\end{equation}

编号放在哪:两种写法的差别
两种写法默认都把编号放在几行的垂直中间。差别在于 split 会响应 tbtags:导言区写 \usepackage[tbtags]{amsmath} 后,右侧编号会落到最后一行,而 aligned 不受这个选项影响,编号仍居中。另一个差别是位置:split 只能放在 equation、\[…\]、gather 这类显示公式环境里,不能单独用,也不能进行内公式;aligned 可以放进括号、\left\{ 后面,甚至行内公式里。

常见错误与改法
| 写法 | 结果 | 改法 |
|---|---|---|
equation 里写 \\ |
不换行,长公式溢出右边界 | 套 split 或 aligned |
split 里一行写两个 & |
报 Extra alignment tab has been changed to \cr |
多列改用 aligned |
| split 单独使用、外面没有 equation | 报 \begin{split} won't work here. |
外层加 equation |
| align 放进 equation | 报 Erroneous nesting of equation structures |
二选一,外层只留一个 |
| 空行夹在公式中间 | 报 Missing $ inserted 或 Paragraph ended before ... was complete |
删掉空行,需要间隔用 \\[4pt] |
排查时先看报错的那一行号,再看是不是在 split 里写了第二个 &,这是最容易踩的一条。
写好的多行源码可以先在本站公式编辑页核对:把公式工具栏右端的「LaTeX / 可视化」开关切到「LaTeX」粘入 aligned 那一段,切回「可视化」模式看是否分成了同样的几行;可视化模式里按 Enter 换行,& 跳到下一格。

多行推导里常会出现组合数,写法见 LaTeX组合数。把动能定理那三行粘进编辑器、确认分行无误之后,再放回论文的 equation 外壳里编译,编号就只有一个。
延伸阅读
- LaTeX组合数:binom 与 C 上下标两种写法
- LaTeX公式转Word基线:多行公式进 Word 后基线不齐的调法
- LaTeX在线预览分页差异:长公式跨页时的排查
常见问题
- 换行后只要一个编号怎么写?
- 外层保留 equation,里面套 split 或 aligned,整组公式只占一个编号,默认排在几行的垂直中间。想让编号落在最后一行,可以在加载 amsmath 时加 tbtags 选项,它对 split 生效。若改用 align 环境,则要在不需要编号的行末加 notag。