LaTeX公式太长怎么分行:换行与对齐写法
长公式超出版心时,用 aligned、split、multline 等环境在合适位置断行并对齐,本文按情况给出选择方法、写法步骤和编译后的检查清单。
写论文或讲义时,一个公式写到一半就超出了页边距,这种情况很常见。LaTeX 不会像文字那样自动换行,遇到过长的公式,它要么把内容压出版心,要么在编译时报出 Overfull hbox 警告,PDF 上的表现就是右边被截掉或者挤进页边。
这篇文章写给已经在用 LaTeX 写公式、但不清楚怎样在源码里把长公式拆成几行的读者。你会学到如何判断该用哪个环境,如何在等号和加号处断行并对齐,怎样检查结果。这里讲的是源码层面的排版写法,与把公式从其他格式转成 LaTeX 是两回事。
长公式怎么分行?一句话结论:用 aligned 或 split 配合 & 和换行符
先说结论:在公式内部用 aligned 环境,在需要对齐的地方放 &(通常是等号前),行末用两个反斜杠换行,外面再套一层 equation 或 equation* 来提供显示公式的环境。下面的表格按读者的情况给出推荐做法。
| 你的情况 | 推荐做法 | 原因 |
|---|---|---|
| 单个公式需要编号,且要按等号对齐 | equation 包住 aligned,或者 equation 包住 split | 编号只出现一次,aligned 负责对齐,split 更适合放在编号公式内部 |
| 单个公式不编号,需要多行对齐 | equation* 包住 aligned,或直接使用 aligned 放在 \[ \] 中 | 无编号,结构简单,行与行之间靠 & 对齐 |
| 多个公式连续出现,每行都要编号和对齐 | align 环境 | 每一行自动编号,并以 & 为对齐点,不需要自己写 aligned |
| 首行左对齐、末行右对齐,只有一个编号 | multline 环境 | 专门处理“一个公式很长、只要一个编号”的情况,中间行自动居中 |
| 行内公式(夹在文字中)太长 | 改成独立公式;或在关系符、运算符后使用断行提示 | 行内公式里不能用换行符,只能靠 TeX 在运算符处断开 |
选择时先看两件事:是否需要编号,以及是否有多个公式要排在一起。大多数情况下,单个编号公式用 equation 加 aligned,就能解决问题。
开始之前:先确认这几点
动手改源码前,先确认下面几项,能省去很多返工。
- 导言区已经加载 amsmath 宏包。 aligned、split、multline、align 都来自 amsmath。没有这个宏包,编译会报错,提示未定义的环境。
- 公式本身能否在合适处断开。 长公式通常由多个项用加号、减号、等号连接。断点应选在这些关系符或运算符前后,断开后左右两边都是完整的表达式,不要切在括号中间或上下标中间。
- 是否需要编号。 编号决定环境选择。equation 带编号,equation 不带编号,align 每行都带编号,align 每行都不带。混用时要保持整篇文档一致。
- 期刊或模板是否有格式要求。 有些模板规定公式对齐方式,比如统一按等号对齐,或要求编号在右侧。这时以模板为准,不要自行改成另一种风格。
- 公式是否需要在网页编辑器中预览。 如果你使用 UniDoc 网页编辑器(app.unidoc.top)编辑公式,粘贴的 LaTeX 源码应与本地编译的写法一致,但编辑器的预览效果仍需以最终 PDF 为准。
在 LaTeX 源码中拆分长公式的步骤
下面以一个编号的长公式为例,说明从发现问题到确认结果的完整流程。
- 在导言区确认已写入 amsmath 宏包,它是后面所有对齐环境的前提。
- 编译当前文档,在日志中查找 Overfull hbox 警告,记下超出页边距的行号,找到对应的长公式。
- 在长公式中找出断点,通常是等号、加号或减号之前。断点前后两部分都应是可以独立阅读的表达式。
- 把公式放进 equation 环境,并在内部加入 aligned 环境。如果公式不需要多行对齐,只拆成一行左右,也可以只用 split。
- 在每个断点处加上 &,把它放在要对齐的符号前面(通常是等号前),再在行末写两个反斜杠换行。
- 对于一个编号、首行左对齐、末行右对齐的公式,改用 multline 环境,并在断点处用两个反斜杠分隔各行,最后一行会自动右对齐。
- 重新编译,检查日志中是否还有 Overfull hbox 警告,再打开 PDF 查看公式是否完整显示,编号是否位于正确位置。
- 如果文档中有多组连续的长公式,统一使用 align 环境,并确认每组的 & 位置一致,方便读者对照阅读。
做完后逐项核对
拿到编译结果后,逐项检查下面几项。大多数问题都能通过这张表找到处理办法。
| 检查项 | 怎么看 | 有问题怎么办 |
|---|---|---|
| 公式是否超出页边距 | 查看日志中的 Overfull hbox 警告,并在 PDF 中检查右侧是否被截断 | 在更多运算符处断开,或减少同一行中的项数 |
| 对齐点是否一致 | 逐行看等号、加号是否竖直对齐 | 检查每一行的 & 是否放在同一类符号之前,行数不一致时补齐或删去多余的 & |
| 换行是否多出空行 | 观察行与行之间的间距是否异常 | 检查 \\ 后面是否误加了空行,去掉多余的空白行 |
| 编号位置是否正确 | 看编号是否在公式右侧,多行公式是否只有一个编号 | 单编号改用 equation 或 multline,多行各自编号则改用 align |
| 行内公式是否断行异常 | 看文字段落中的行内公式是否被切在不合适的位置 | 改成独立公式,或在关系符后允许断行 |
| 符号与文字的间距 | 检查公式前后与正文的间距是否自然 | 避免在公式内手动加入大量空格,间距交给 LaTeX 处理 |
如果以上检查都通过,公式在 PDF 中就完整可读了。如果你使用了机器翻译或 OCR 转写公式,还要逐个核对公式符号,不要只看排版是否整齐。
📊 核心对比
常见写法有四种,它们的差别主要在编号和行间关系上。下表按写法列出各自的适用情况,选择时可以对照你的文档结构。
| 写法 | 适用情况 | 特点 |
|---|---|---|
| equation 包住 aligned | 单个编号公式,需要多行并按 & 对齐 | 写法灵活,常见于论文中的推导公式 |
| equation 包住 split | 单个编号公式,内部需要拆成几行 | 语义上接近“一个公式拆成几行”,适合编号公式内部分行 |
| multline | 一个很长的公式,只有一个编号 | 首行左对齐,末行右对齐,中间行居中 |
| align | 多个公式连续排列,每行都要编号和对齐 | 每行自动编号,常用于多步推导 |
❓ 常见问题(FAQ)
1. 长公式为什么不会自动换行?
LaTeX 的显示公式在一行内排版,不会像普通文字那样根据行宽自动断开。它只能在行内公式中的某些运算符处断开,独立公式需要人工指定断点。
2. aligned 和 split 有什么区别?
两者都用于多行公式,aligned 可以独立使用,常放在 equation 或 \[ \] 中;split 必须放在 equation 之类的显示公式环境里,通常用于一个编号公式的内部分行。日常写作中,两者都能用时,aligned 更通用。
3. 行内公式太长怎么办?
行内公式中不能使用换行符。可以先尝试在关系符或运算符后面断开,让 TeX 自动处理;如果仍然超出,建议把它改成独立公式,用 aligned 或 multline 拆分。
4. 编译后公式的编号跑到了第二行,怎么处理?
这通常是因为环境选择不当。单个编号公式应使用 equation 包住 aligned,而不是把编号写在 aligned 内部。多行各自需要编号时,改用 align。
📝 总结
LaTeX 长公式分行的关键是先确定编号和对齐需求,再选择 aligned、split、multline 或 align。加载 amsmath 宏包,在等号或加号处用 & 和两个反斜杠指定对齐和换行,编译后检查 Overfull 警告和 PDF 版面,就能让长公式清楚地排在页面之内。


