要将带括号的 LaTeX 表达式拆分为多行,可以使用固定大小的括号,也可以为每行可见的括号配对一个不可见分隔符。若要用一对高括号包住整个块,请在括号内放置一个多行环境。
本指南将帮助你选择排版方式,并在 Mac 上编辑完整的 LaTeX 文档。以下表达式均为合成代数示例。关键区别在于你希望括号出现在哪里:紧邻首项和末项,还是沿着整个块的两侧。
应该选择哪种括号排版方式?
修改源代码前,请先参考以下选择指南。环境选项依据 amsmath 用户指南第 3.3–3.7 节和 mathtools 手册第 3.4.2 节中介绍的显示结构。
| 预期效果 | 适用结构 | 括号方法 |
|---|---|---|
| 左括号位于首行,右括号位于末行 | 包含 split 的 equation |
使用匹配的固定尺寸,例如 \Bigl[ 和 \Bigr] |
| 括号位置相同,但每行自动调整大小 | 包含 split 的 equation |
使用 \left[ ... \right.,后接 \left. ... \right] |
| 一对高括号包围对齐的各行 | 包含 aligned 的 equation |
在 aligned 前放置 \left[,并在其后放置 \right] |
| 一对高括号包围错落排列的续行 | 包含 multlined 的 equation |
加载 mathtools;将括号放在 multlined 外面 |
对于较长的求和式,可以先尝试第一种方式。若希望紧凑表达式看起来像一个整体的带括号对象,可以试试第三种方式。这是关于读者应如何跟随表达式阅读的排版选择;下面的示例让你可以比较这些选择,同时不改变其代数内容。
如何使用固定尺寸的括号拆分表达式?
amsmath 指南明确建议:如果换行会打断一对 \left–\right,可以使用固定尺寸的分隔符。其尺寸系列包括 \bigl/\bigr、\Bigl/\Bigr、\biggl/\biggr 和 \Biggl/\Biggr。参见指南第 4.14.1 节和第 10.2 节。
下面是一个完整文档。表达式在首行打开方括号,在第二行关闭方括号,因此换行处没有可见括号。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation}
\begin{split}
F(x) &= \Bigl[a_0+a_1x+a_2x^2+a_3x^3 \\
&\qquad {}+a_4x^4+a_5x^5\Bigr].
\end{split}
\end{equation}
\end{document}
在此示例中,第一个 & 将等号对齐。第二行以对应的 & 开始,后面再缩进。两个可见方括号使用相同的尺寸系列。换行前没有右括号,换行后也没有左括号。
{}+ 中的空组不会打印任何内容;它会保留续行中加号的二元运算符间距。将项移到其他行时,请保留该符号,以确保显示的表达式仍表示预期的求和式。
要调整此示例,先替换多项式项,并保留结构命令。然后检查括号大小是否适合任一行中最高的项。如果加入分数,可以考虑换用更大的一对匹配括号。应同时调整两端,不要只改左括号。
不可见分隔符如何用于换行?
一对 \left–\right 不能直接跨越行分隔符或对齐分隔符。文档中给出的解决方法是用空分隔符关闭每个片段:\right. 或 \left.。点号表示不可见分隔符,不会打印句点。参见 amsmath 指南对缺少右分隔符错误的说明。
以下完整示例使用分数来体现分隔符大小的重要性:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation}
\begin{split}
G(x) &= \left[\frac{a_0+a_1x}{1+x^2}+a_2x^2\right. \\
&\qquad \left.{}+a_3x^3+a_4x^4
\vphantom{\frac{a_0+a_1x}{1+x^2}}\right].
\end{split}
\end{equation}
\end{document}
逐行查看括号结构。第一行有一个可见左括号和一个不可见右分隔符。第二行有一个不可见左分隔符和一个可见右括号。因此,每一行都包含一对完整的分隔符。
如何让可见括号的高度一致?
分别自动调整大小的括号可能会选用不同尺寸。指南建议使用 \vphantom,并在其中放入另一片段中最高的内容,以使括号大小一致。在此示例中,第二行会在 \vphantom 中重复该分数;分数本身不可见。参见 amsmath 第 10.2 节。
请将这个 phantom 视为排版维护的一部分。如果你用更高的内容替换首行的分数,也要相应更新 phantom。如果随着表达式修改,这种做法变得繁琐,可以改回使用匹配的固定尺寸括号,并检查它们在 PDF 中的效果。
如何用一对高括号包住所有行?
amsmath 宏包提供了 aligned,可将其用作较大表达式中的内部构件。将括号命令放在它外面。这样,换行就属于被括起来的块。关于这种内部环境用法,请参见 amsmath 第 3.7 节。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation}
H(x)=\left[
\begin{aligned}
&a_0+a_1x+a_2x^2 \\
&{}+a_3x^3+a_4x^4
\end{aligned}
\right].
\end{equation}
\end{document}
这里,可见括号包住了两行合起来的高度。与前面的示例相比,此处括号包围整个块,而前面的示例中每个括号都紧邻一行。如果你希望带括号的求和式被读作一个整体的堆叠部分,例如放在另一个因子旁边,可以选择这种排版方式。
什么时候应该使用 mathtools 和 multlined?
对于错落排列的块,mathtools 提供了 multlined:首行从左侧开始,末行在右侧结束。它还支持可选宽度。该宏包会自动加载 amsmath。参见 mathtools 手册第 2 节和第 3.4.2 节。
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\begin{equation}
J(x)=\left[
\begin{multlined}[c][0.65\linewidth]
a_0+a_1x+a_2x^2 \\
{}+a_3x^3+a_4x^4
\end{multlined}
\right].
\end{equation}
\end{document}
宽度 0.65\linewidth 是一个用于说明排版效果的示例值。查看自己的表达式后再进行调整,并为左侧表达式、括号和公式编号留出空间。在合理的代数边界处明确换行。
相似的名称对应不同的环境:multline 是外层的 amsmath 显示环境,而 multlined 是 mathtools 内部块。请使用 multlined 实现此处所示的嵌套。其手册还记录了嵌套在数组或矩阵变体中的限制;本例直接将它放在 equation 内。参见 mathtools 第 3.4.2 节。
如何在 Mac 上检查排版结果?
这些示例假设你已安装并配置好 LaTeX 和编辑器。TeXShop 的默认配置使用生成 PDF 的 TeX 程序,其 Help 菜单中包含 TeXShop 手册。参见开发者的 TeXShop 简介页面。
- 将上面任一完整文档复制到新的 TeXShop 源文件中,并保存为
brackets.tex。 - 使用 LaTeX 引擎进行排版。TeXShop 支持通过
Command-T开始排版,详见其官方更改文档。 - 检查 PDF 中所选的括号位置、括号高度是否一致,以及续行符号是否易读。
- 将示例项替换为你的表达式,重新排版,并检查最宽的一行是否超出可用空间。
本文的示例已对照宏包文档进行检查;由于研究环境中没有 LaTeX 编译器,因此未实际编译。
如果编译中断,先检查是否误将可见的 \left[ 留在一行,而把它的 \right] 放在另一行。然后将环境名称和宏包行与完整示例进行比较。如果编译成功但排版显得拥挤,可以先移动换行位置,再调整括号大小。
对于大多数续行求和式,匹配的固定尺寸括号是直接明了的起点。如果需要每行分别自动调整大小,可以使用不可见分隔符;如果希望高括号包住整个堆叠块,则可以使用外层 aligned 或 multlined 块。最后,请用实际项检查 PDF,因为它们的高度和宽度会决定最终排版效果。
来源
- amsmath 宏包用户指南 — 美国数学学会和 LaTeX 项目。
- mathtools 宏包 — Morten Høgholm、Lars Madsen 和 LaTeX3 项目;由 CTAN 托管。
- 关于 TeXShop — TeXShop 项目,Richard Koch。
- TeXShop 更改记录 — TeXShop 项目,Richard Koch。