LaTeX

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}

aligned 两列并排的方程组与解

编号放在哪:两种写法的差别

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

split 与 aligned 放置位置与编号差别对照

常见错误与改法

写法 结果 改法
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 外壳里编译,编号就只有一个。

延伸阅读

常见问题

换行后只要一个编号怎么写?
外层保留 equation,里面套 split 或 aligned,整组公式只占一个编号,默认排在几行的垂直中间。想让编号落在最后一行,可以在加载 amsmath 时加 tbtags 选项,它对 split 生效。若改用 align 环境,则要在不需要编号的行末加 notag。