分数、根号和二项系数,是数学模式中“超出字母高度并向纵向伸展”的典型排版元素。基本命令 \frac 会根据所在位置(正文中还是另起一行)自动改变大小。不过它常常无法得到预期外观,这时 amsmath 包的 \dfrac、\tfrac、\cfrac,二项系数的 \binom 系列,以及斜线分数 \nicefrac / \sfrac 就会派上用场。本页将依次整理它们各自输出什么、需要哪个包,以及何时该选择哪一个。
基本分数 \frac
排版分数的基本命令是 \frac{分子}{分母}。这是 LaTeX 本体(core LaTeX)的功能,不加载 amsmath 也能使用。第一个参数是分子,第二个参数是分母,LaTeX 会在两者之间画一条横线(分数线),把分子排在上方、分母排在下方。例如 \frac{1}{2} 会得到二分之一:横线之上是 1,之下是 2。
\frac 的一个重要特性是,它的大小会根据前后文(样式)自动改变。嵌入正文的行内公式(文本样式)中,分子和分母会小而紧凑地排版,以免明显改变行高。把同一个式子放到 \[ … \] 等另起一行(陈列样式)中,则会以更宽松的大尺寸排版。下面的例子展示完全相同的 \frac{a+b}{c} 在行内和陈列中如何变化。
本文中では小さく組まれる: $\frac{a+b}{c}$ のように。
\[
\frac{a+b}{c}
\]前者会输出为能容纳在一行中的较小分数,后者则会输出为居中放在独立一行上的大分数。分数也可以 嵌套:在分子或分母中再写 \frac,就能得到多层分数。不过,嵌套在内层的分数会用比外层更小的样式排版,因此层数越深越难阅读。
\[
\frac{1}{1 + \frac{1}{x}}
\]这个例子会排出一个两层分数,分母中还包含一个分数 \frac{1}{x}。请注意,内层的 \frac{1}{x} 会比外层小一级。如果在较深的嵌套中想让每一层保持相同大小,请使用下一节的 \dfrac,或连分数专用命令 \cfrac。
固定大小:\dfrac 与 \tfrac
\frac 的自动大小有时并不方便。例如,你可能想让正文中的分数不要被压小,而是显示为与陈列公式相同的大小;反过来,也可能想让陈列公式中的某个分数保持小巧。满足这种“想固定样式”需求的,是 amsmath 包 提供的 \dfrac 和 \tfrac(两者都需要 \usepackage{amsmath})。
根据 amsmath 用户指南,\dfrac 是 {\displaystyle\frac ... } 的便捷缩写,\tfrac 是 {\textstyle\frac ... } 的便捷缩写。因此 \dfrac{…}{…} 无论放在哪里都总是陈列大小(大分数),而 \tfrac{…}{…} 总是文本大小(小分数)。它们的参数方式与 \frac 完全相同:第一个参数是分子,第二个参数是分母。
% プリアンブルで: \usepackage{amsmath}
本文中でもフルサイズの分数: $\dfrac{\partial f}{\partial x}$。
\[
\dfrac{1}{1 + \dfrac{1}{x}}
\]行内的 \dfrac{\partial f}{\partial x} 即使位于正文行中,也会作为与陈列公式同样大小的偏导数分数排版(相应地会撑高行高)。在陈列公式例子中,由于嵌套使用 \dfrac,外层和内层分数会保持相同大小,比嵌套 \frac(内层会缩小)更容易阅读。选择时的大致标准如下。
\frac:通常的选择;希望大小自然地交给上下文决定时使用。\dfrac:希望正文中的分数不要压小而是全尺寸显示,或希望嵌套的每一层保持相同大小时使用。\tfrac:希望陈列公式中的某个分数小而紧凑时使用(例如想让它接近指数或下标的处理方式)。
连分数 \cfrac
如果用嵌套 \frac 来排版 连分数(分母里又接着一个分数,如此反复),层数越深字就越小,最终会挤到难以阅读。amsmath 包 的 \cfrac{分子}{分母} 是专为此用途设计的命令。它会把各层 统一以陈列大小 纵向堆叠,无论嵌套多深大小都不变。连分数请务必使用它。
% プリアンブルで: \usepackage{amsmath}
\[
x = 1 + \cfrac{1}{2 + \cfrac{1}{2 + \cfrac{1}{2 + \cdots}}}
\]这会把 1 +(分数 …)这样的连分数排成每一层 \cfrac 都以相同大小纵向堆叠的形式。末尾的 \cdots 是居中的三点省略号(…),表示“以下同理”。这与用 \frac 写同样内容时内层逐渐变小形成鲜明对比。
\cfrac 命令接受一个 可选的对齐参数。按照 amsmath 用户指南的说法,分子左对齐或右对齐可以通过使用 \cfrac[l] 或 \cfrac[r] 而不是 \cfrac 来指定。[l] 让分子左对齐,[r] 让分子右对齐;什么都不加时则为 居中(默认)。由于连分数中分母宽度会随层级变化,当你想让分子的水平位置对齐时,这个参数很有用。
\[
\cfrac[l]{1}{2 + \cfrac[l]{1}{2 + \cfrac[l]{1}{2}}}
\]在这个例子中,各层的分子 1 都会与各自分数线的左端对齐(默认情况下会居中)。
二项系数 \binom
二项系数(组合数)“从 n 个中选 k 个”写作一个没有横线的纵向堆叠,并用圆括号包住。amsmath 包 的 \binom{n}{k} 会输出这种形式:上面是 n,下面是 k,中间没有分数线,整体由大小合适的圆括号 ( ) 包围。与 \frac 不同,不会画分数横线。
就像 \frac 有 \dfrac / \tfrac 一样,\binom 也有固定大小的同类命令。\dbinom{n}{k} 总是陈列大小,\tbinom{n}{k} 总是文本大小。两者都需要 amsmath。
% プリアンブルで: \usepackage{amsmath}
\[
\binom{n}{k} = \frac{n!}{k!\,(n-k)!}
\]这是一个等式:左边是用大圆括号包住、n 在上 k 在下的二项系数,右边是使用阶乘的分数(n! 除以 k!(n−k)!)。右边的 \, 是细空格命令,用来在阶乘项之间插入一点空隙。
旧文献或 plain TeX 风格中,有时会把二项系数写成 {n \choose k}。这是使用 TeX 的广义分数原语的写法,但如今 标准做法是使用 amsmath 的 \binom。同一类的 \over、\atop、\above(带横线/不带横线/指定线粗的广义分数)在加载 amsmath 后也会发出警告,指南建议改用 \frac 或 \genfrac。\genfrac{左定界符}{右定界符}{线粗}{样式}{分子}{分母} 是 amsmath 中用于统一控制这些分数和二项系数外观的通用命令;\frac、\binom、\cfrac 等都建立在这一机制之上。第四个参数“样式”是整数 0–3,分别选择 \displaystyle、\textstyle、\scriptstyle、\scriptscriptstyle(留空则跟随上下文)。例如 \binom 内部定义为 \genfrac{(}{)}{0pt}{}{…}{…},通过把第三个参数,也就是线粗,固定为 0pt 来实现“不画横线”的外观。
根号 \sqrt 与 n 次根
平方根(根号)用 \sqrt{内容} 排版。这是 LaTeX 本体的功能,不需要 amsmath。它会输出根号符号(√),并从右上方伸出横线(vinculum)覆盖整个内容。根号和横线会根据内容的高度和宽度自动调整大小,因此 \sqrt{x} 与 \sqrt{x^2 + y^2} 都会按各自内容排成恰当大小。
n 次根(如立方根)写作 \sqrt[n]{内容},把指数作为方括号中的 可选参数 给出。小的指数 n 会放在根号符号的左上方。例如立方根写成 \sqrt[3]{x+y}:根号左上方有一个小 3,横线下方是 x+y。
\[
\sqrt{x^2 + y^2}, \qquad \sqrt[3]{x+y}, \qquad \sqrt[n]{a}.
\]输出结果是三个由 \qquad(宽空白)分隔的根式:根号下含 x²+y² 的平方根、左上角带 3 的立方根,以及左上角带 n 的 n 次根。如果需要微调 n 次根指数的位置或大小,amsmath 还提供 \sqrt[\leftroot{…}\uproot{…}n]{…} 形式的调整命令,但普通用途下默认位置已经足够。
指数(幂)的排版
指数(幂)作为上标,用插入符 ^ 排版。x^2 表示“x 的平方”,会在 x 的右上方放一个小 2。这是 LaTeX 本体功能,不需要任何包。当指数超过一个字符时,务必用波括号分组:x^{10} 会正确得到“x 的 10 次方”,而 x^10 会被意外排成“x 的 1 次方”后面跟着一个单独的 0。
指数、分数和根号经常组合使用,把到目前为止的命令放在一个公式中会像下面这样。用波括号明确作用范围,是正确排版的关键。
\[
x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
\]这是二次方程的求根公式。它会作为居中另起一行的大分数排版,分子是“−b ± √(b²−4ac)”,分母是“2a”。根号中的 b^2 是上标平方,\pm 是“±”(正负号)符号。关于如何在同一个字母上同时加上标和下标(如 x^2_i),以及字距微调的细节,请参见单独页面“上下标与间距”。
斜线分数:\nicefrac 与 \sfrac
在正文中,有时希望把“二分之一”不是排成上下结构,而是像 a/b 一样小而倾斜地放在行内(例如单位中的“1/2”)。这可以使用 nicefrac 包 的 \nicefrac{a}{b}。它会让分子和分母围绕斜杠斜向错开排列,并在不破坏行高的情况下放入一行。这个命令默认不可用,需要在导言区写 \usepackage{nicefrac}。
更新且推荐的替代方案是 xfrac 包 的 \sfrac{a}{b}。CTAN 上 nicefrac 自己的说明也指出,nicefrac 的功能由 xfrac 包以更完善的形式提供。\sfrac 可在文本模式和数学模式中使用,并且会更细致地根据字体调整外观。新文档中使用 \usepackage{xfrac} 和 \sfrac 更稳妥。
% nicefrac の場合: \usepackage{nicefrac}
所要時間は約 \nicefrac{3}{4} 時間です。
% xfrac の場合(推奨): \usepackage{xfrac}
およそ $\sfrac{1}{2}$ に相当します。两种情况下,3/4 和 1/2 都会排成小的斜线分数,并能容纳在正文行高内。一个实用的分工是:想纵向较大排版的分数用 \frac 或 \dfrac,想在行内小而倾斜显示的分数用 \sfrac(或 \nicefrac)。
| 命令 | 所需包 | 输出内容 |
|---|---|---|
\frac{a}{b} | 不需要(LaTeX 本体) | 带横线的分数;大小随上下文变化 |
\dfrac{a}{b} | amsmath | 始终为陈列大小的分数 |
\tfrac{a}{b} | amsmath | 始终为文本大小的分数 |
\cfrac{a}{b} | amsmath | 连分数;各层同大小纵向堆叠;[l]/[r] 对齐分子 |
\binom{n}{k} | amsmath | 无横线、带圆括号的二项系数(也有 \dbinom/\tbinom) |
\sqrt{x} | 不需要(LaTeX 本体) | 平方根;\sqrt[n]{x} 表示 n 次根 |
\nicefrac{a}{b} | nicefrac | 小型斜线分数 a/b |
\sfrac{a}{b} | xfrac | 小型斜线分数(nicefrac 的现代替代) |