当括号或竖线中的内容变成较高的分数或矩阵时,普通大小的定界符会显得太小。LaTeX 提供两种工具:\left … \right 会根据内容高度自动拉伸定界符;\big \Big \bigg \Bigg 则是四种由你手动选择的固定大小。本页整理两者的使用场景、只隐藏一侧的“不可见定界符”、可伸长的中间分隔符 \middle,以及定界符符号列表。
用 \left … \right 自动调整大小
最简单的做法是在开定界符前写 \left,在闭定界符前写 \right。LaTeX 会测量内容高度,并把定界符拉伸到 刚好覆盖内容 的大小。\left 或 \right 后面紧跟的字符才是真正的定界符:圆括号用 ( ),方括号用 [ ],花括号用 \{ \}(见下文),尖括号用 \langle \rangle,依此类推。
\[
\left( \frac{a^2 + b^2}{c^2} \right)
\qquad
\left[ \sum_{k=1}^{n} \frac{1}{k} \right]
\]第一个例子会把圆括号上下拉伸,包住高分数并精确匹配其高度。如果直接写成 ( \frac{a^2+b^2}{c^2} ),括号只有普通字符高度,会在大分数旁显得很小。第二个例子同样会把方括号拉伸到适合包含求和符号的内容。
有两条重要规则。第一,\left 和 \right 必须成对使用;漏掉一个就会编译错误。第二,配对的定界符 不必是同一种:可以像 \left( … \right] 那样用圆括号开、方括号闭,表示半开区间。注意,\left … \right 包围的范围会形成一个整体(组),并且 其输出内部不能换行。要把长公式换行,必须在对齐环境的每一行内完成这一对。
\left … \right 很方便,但它往往会选择比你想要的稍大的定界符;而且每个定界符会作为 inner atom 处理,有时会打乱你期望在运算符或关系符号周围得到的细致间距。如果到处都用它,括号可能显得过大,或者在多行之间大小不一致;这时就需要下面的手动大小。
不可见定界符(用 . 留空一侧)
虽然 \left 和 \right 必须成对出现,但有时你只想在 一侧 显示定界符。这时,在想留空那一侧的 \left 或 \right 后面紧跟一个 句点 .。. 会被视为“不绘制任何东西的定界符”(null delimiter):它满足成对规则,但那一侧不显示任何符号。
\[
\left. \frac{dy}{dx} \right|_{x=0}
\qquad
\left. \frac{x^3}{3} \right|_{0}^{1}
\]这是构造 求值竖线(“在 x=0 处求值”)的经典写法。左侧的 \left. 不绘制任何东西,只有右侧的 \right| 会按内容高度拉伸成竖线,并在右下方带上 x=0。第二个例子中,竖线按分数 x^3/3 的高度伸长,下端有 0,上端有 1,正是定积分求值中熟悉的形状。也可以像 f(x) \big|_{0}^{1} 那样使用手动大小的竖线(下一节),这种写法不需要配对的 \left。
可伸长的分隔符 \middle
在集合描述法 { x | condition } 中,常常需要在外层定界符 内部 放一个竖线等分隔符,并让它 伸到与外层定界符相同的高度。在 \left 和 \right 之间,可以放任意多个 \middle 后接任意定界符。写 \middle| 就会在中间插入一条与外层花括号同高的竖线。
\[
\left\{\, x \in \mathbb{R} \;\middle|\; x^2 < \frac{1}{2} \,\right\}
\]这里,外层花括号会根据内容(包含高分数)伸长,\middle| 竖线也伸到相同高度,清楚地分隔左右条件。普通的 | 只会保持一个字符高度,与伸长的花括号相比会显得特别小。注意,\middle 只能在 \left/\right 之间使用,不能单独使用。
手动大小:\big \Big \bigg \Bigg
\big \Big \bigg \Bigg 让你 从四个等级中手动选择大小,按这个顺序逐渐变大,并像 \big( 那样把定界符紧跟其后。\big 只比普通定界符稍大,可在行内使用而不撑大行距。\Big 约为 1.5 倍高,\bigg / \Bigg 更大,更适合陈列公式。
为什么要用手动大小而不是自动的 \left … \right?主要有三个理由。第一,多行之间大小一致:\left … \right 会按每行自己的内容决定大小,因此一组公式中的括号高度容易不一致;手动大小则能把所有行固定到同一等级。第二,避免过大的括号:内容只比平常稍高却让 \left … \right 选大一号时,可以把大小限制在 \big。第三,控制间距,这就需要下面的 l/r 形式。
像 \big 这样的 裸形式 会把定界符当作“ordinary atom”排版,因此前后会出现多余空白。要把它正确地作为开定界符或闭定界符排版,开端用 \bigl,闭端用 \bigr(l 表示 left,r 表示 right;各个大小都有 \Bigl/\Bigr、\biggl/\biggr、\Biggl/\Biggr)。带 l/r 的形式会被视为开/闭定界符,不会在定界符和前一项之间插入无谓空白。若要把内包表示法中的竖线那样的分隔符 作为关系符号放在中间,使用带 m(middle)的形式,如 \bigm|,它会在两侧加入适当的关系符号间距。
\[
\bigl( a \bigr)
\quad
\Bigl( b \Bigr)
\quad
\biggl( c \biggr)
\quad
\Biggl( d \Biggr)
\]
\[
\biggl\{\, x \bigm| x > 0 \,\biggr\}
\]第一行展示同一种圆括号从左到右逐级变大(无论内容高度如何,都按指定等级的高度排版)。第二行是集合描述法:用 \biggl\{ … \biggr\} 固定花括号大小,并把 \bigm| 竖线作为关系符号放在中间。手动大小也适合嵌套定界符,例如 \bigl( \Bigl[ \,\cdots\, \Bigr] \bigr),让内层比外层大一级以便区分。
定界符符号列表
下表列出可以放在 \left/\right 或 \big 系列后面的主要定界符。圆括号、方括号和斜杠可以直接从键盘输入,但 因为 { } 是 LaTeX 的保留字符,即使在数学中也必须写 \{ \} 才能得到作为定界符的花括号。单竖线是 |(也可用 \vert),双竖线是 \|(也可用 \Vert)。尖括号一定要使用 \langle \rangle,不要用键盘上的 < > 代替;后者会被当作关系符号(不等号),两侧带有关系符号间距,看起来不像定界符。
| 命令 | 显示 | 说明 |
|---|---|---|
( ) | 圆括号 ( ) | 直接输入;最常见 |
[ ] | 方括号 [ ] | 直接输入;也可用 \lbrack \rbrack |
\{ \} | 花括号 { } | { } 是保留字符;花括号要写 \{ \} |
\langle \rangle | 尖括号 ⟨ ⟩ | 用于内积、bra-ket;不是 < > |
| | 单竖线 | | 绝对值等;也可用 \vert |
\| | 双竖线 ‖ | 范数等;也可用 \Vert |
\lfloor \rfloor | 下取整 ⌊ ⌋ | 向下取整(最大整数) |
\lceil \rceil | 上取整 ⌈ ⌉ | 向上取整(最小整数) |
\backslash | 反斜杠 \ | 用于商集合等;/ 可作配对右侧 |
\uparrow \downarrow | 上/下箭头 ↑ ↓ | 双线:\Uparrow \Downarrow;也有 \updownarrow |
\lgroup \rgroup | 组括号 ⟮ ⟯ | 较粗的圆角括号;适合大型显示 |
\lmoustache \rmoustache | 大花括号半边 ⎰ ⎱ | 大括号的上/下半部 |
绝对值、范数与 \DeclarePairedDelimiter
对于绝对值和范数,直接写 |x| 或 \|x\| 时,LaTeX 可能无法判断每个 | 是开定界符还是闭定界符,从而影响间距。amsmath 提供了区分左右的命令:绝对值用 开 \lvert / 闭 \rvert,范数用 开 \lVert / 闭 \rVert,这样会按正确的开/闭定界符间距排版。
不过,每次都写 \left\lvert … \right\rvert 很繁琐。使用 mathtools package 的 \DeclarePairedDelimiter,可以把开定界符、闭定界符、自动大小和手动大小封装成一个命令。在导言区定义后,正文中就能写 \abs{x} 和 \norm{v};带星号的 \abs*{…} \norm*{…} 会在内部调用 \left … \right,按内容拉伸。不带星号是普通大小,也可以用 [\big] 等可选参数选择手动大小。
\usepackage{mathtools}
\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
\DeclarePairedDelimiter{\norm}{\lVert}{\rVert}
% 本文では:
\[
\abs{x} \le \abs*{\frac{a}{b}}, \qquad \norm*{\frac{v}{2}}
\]这里 \abs{x} 是普通大小的绝对值,而 \abs*{\frac{a}{b}} 会用按分数高度拉伸的竖线包住分数。\norm*{…} 同样会让双竖线按内容伸长。如果同一个定界符会在文档中反复使用,像这样先定义一次最稳妥,间距和大小也会始终一致。详情请参阅 mathtools 页面。