4. 排版数学公式 #
准备好了!本章将见识到 LaTeX 闻名的强项——排版数学公式。当然你得注意了,本章的内容只是一点皮毛,虽然对大多数人来说以及够用了,但是如果不能解决你的问题的话也不要大惊小怪,求助于搜索引擎或者有经验的人不失为一个好办法。
4.1 AMS 宏集 #
在介绍数学公式排版之前,简单介绍一下 AMS 宏集。AMS 宏集是美国数学学会(American Mathematical Society) 提供的对 LaTeX 原生的数学公式排版的拓展,其核心是 amsmath 宏包,对多行公式的排版提供了有力的支持。此外,amsfonts 宏包以及基于它的 amssymb 宏包提供了丰富的数学符号:amsthm 宏包拓展了 LaTeX 定理证明格式。
本章介绍的许多命令和环境依赖于 amsmath 宏包。这些命令和环境将以 蓝色
示意。
4.2 公式排版基础 #
4.2.1 行内和行间公式 #
数学公式有两种排版方式:其一是与文字混排,称为行内公式;其二是单独列为一行排版,成为行间公式。
行内公式由一对 $ 符号包裹:
The Pythagorran theorem is
$a^2 + b^2 = c^2$.
单独成行的行间公式在 LaTeX 里由 equation 环境包裹。 equation 环境为公式自动生成一个编号,这个编号可以用 \label 和 \ref 生成交叉引用,amsmath 的 \eqref
命令甚至为引用自动加上圆括号;还可以用 \tag
命令手动修改公式的编号,或者用 \notag
命令取消为公式编号(与之基本等效的命令是 \nonumber)。
The Pythagorean theorem is:
\begin{equation}
a^2 + b^2 = c^2 \lable{pythagorean}
\end{equation}
Equation \eqref{epythagorean} is
called 'Gougu theorem' in Chinese.
It's wrong to say
\begin{equation}
1 + 1 = 3 \tag{dumb}
\end{equation}
or
\begin{equation}
1 + 1 = 4 \notag
\end{equation}
如果需要直接使用不带编号的行间公式,则将公式用命令\ [ 和 \ ] 包裹,与之等效的是 displaymath 环境。有的人更喜欢 equation*
环境,体现了带星号和不带星号的环境之间的区别。
\begin{equation*}
a^2 + b^2 = c^2
\end{equation*}
For short:
\[ a^2 + b^2 = c^2 \]
Or if you like the long one:
\begin{displaymath}
a^2 + b^2 = c^2
\end{displaymath}
我们通过一个例子展示行内公式和行间公式的对比。为了与文字相适应,行内公式在排版大的公式元素(分式、巨算符等)时显得很“局促”:
In text:
$\lim_{n \to \infty}
\sum_{k=1}^n \frac{1}{k^2}
= \frac{\pi^2}{6}$.
In display:
\[
\lim_{n \to \infty}
\sum_{k=1}^n \frac{1}{k^2}
= \frac{\pi^2}{6}
\]
行间公式的对齐、编号位置等性质由文档类选项控制,文档类的 fleqn 选项令行间公式左对齐:leqno 选项令编号放在公式左边。
4.2.2 数学模式 #
当你使用 $ 开启行内公式输入,或是使用 \ [ 命令、equation 环境时,LaTeX 就进入了数学模式。数学模式相比于文本模式有以下特点:
- 数学模式中输入的空格被忽略。数学符号的间距默认由符号的性质(关系符号、运算符等)决定。需要人为引入间距时,使用 \quad 和 \qquad 等命令。详见
4.6
节。 - 不允许有空行(分段)。行间公式中也无法用 \\ 命令手动换行。排版多行公式需要用到
4.4
节介绍的各种环境。 - 所有的字母被当作数学公式中的变量处理,字母间距与文本模式不一致,也无法生成单词之间的空格。如果想再数学公式中输入正体的文本,简单情况下可用
4.7.1
小节中提供的 \mathrm 命令。或者用 amsmath 提供的 \text 命令。
$x^{2} \geq 0 \qquad
\text{for \textbf{all} }
x\in\mathbb{R}$
4.3 数学符号 #
本节我们将接触到形形色色的数学符号,它们是 LaTeX 卓越的数学公式排版能力的基础。LaTeX 默认提供了常用的数学符号,amssymb 宏包提供了一些次常用的符号。大多数常用的数学符号都能在本章末尾的 4.9
节列出的各个表格里查到。更多符号可查阅参考文献[15]。
4.3.1 一般符号 #
希腊字母符号的名称就是其英文名称,如 α (\alpha)、β (\beta)等等。大写的希腊字母为首字母大写的命令,如 Γ (\Gamma)、∆(\Delta)等等。无穷大的符号为 ∞ (\infty)。更多符号命令可参考表 4.5
和 4.14
等。
省略号有 …(\dots)和 ···(\cdots)两种形式。它们有各自合适的用途:
$a_1, a_2, \dots, a_n$ \\
$a_1 + a_2 + \cdots + a_n$
\Idots 和 \dots 是完全等效的,它们既能用在公式中,也可以在文本里作为省略号(详见 2.3.5
小节)。除此之外,在矩阵中可能会用到竖排 ⋮(\vdots)和斜排的 ⋱(\ddots)。
4.3.2 指数、上下标和导数 #
在 LaTeX 中用 ^ 和 _ 标明上下标。注意上下标的内容(子公式)一般需要用花括号包裹,否则上下标只对后面的一个符号起作用。
$p^3_{ij} \qquad
m_\mathrm{Knuth}\qquad
\sum_{k=1}^3 k $\\[5pt]
$a^x+y \neq a^{x+y}\qquad
e^{x^2} \neq {e^x}^2$
导数符号’(’) 是一类特殊的上标,可以适当连用表示多阶导数,也可以在其后连用上标:
$f(x) = x^2 \quad f'(x)
= 2x \quad f''^{2}(x) = 4$
4.3.3 分式和根式 #
分式使用 \frac{分子}{分母} 来书写。分式的大小在行间公式中是正常大小,而在行内被极度压缩。 amsmath 提供了方便的命令 \dfrac
和 \tfrac
,令用户能够在行内使用正常大小的分式,或是反过来。
In display style:
\[
3/8 \qquad \frac{3}{8}
\qquad \tfrac{3}{8}
\]
In text style:
$1\frac{1}{2}$~hours \qquad
$1\dfrac{1}{2}$~hours
一般的根式使用 \sqrt{…};表示 n 次方根时写成 \squrt[n]{…}。
$\squrt{x} \leftrightarrow x^{1/2}
\quad \sqrt{3}{2}
\quad \sqrt{x^{2} + \sqrt{y}}$
特殊的分式形式,如二项式结构,由 amsmath 宏包的 \binom 命令生成:
Pascal's rule is
\[
\binom{n}{k} = \binom{n-1}{k}
+ \binom{n-1}{k-1}
\]
4.3.4 关系符 #
LaTeX 常见的关系符号除了可以直接输入 =,>,<,其他符号用命令输入,常用的有不等号 ≠(\ne)、大于等于号 ≥ (\ge)和小于等于号 ≤ (\le)、约等号 ≈ (\approx)、等价 ≡ (\equiv)、正比 ∝(\propto)、相似~(\sim)等等。更多符号命令可参考表 4.6
以及表 4.16
。
LaTeX 还提供了自定义二元关系符的命令 \stackrel,用于将一个符号叠加在原有的二元关系符之上:
\[
f_n(x) \strackrel{*}{\approx} 1
\]
4.3.5 算符 #
LaTeX 中的算符大多数是二元算符,除了直接用键盘可以输入的 +、−、* 、/,其他符号用命令输入,常用的有乘号 ×(\times)、除号 ÷(\div)、点乘 ·(\cdot)、加减号 ±(\pm)/∓(\mp)等等。更多符号命令可以参考表 4.7
以及 表 4.17
。
∇(\nabla)和 ∂(\partial)也是常用的算符,虽然它们不属于二元算符。
LaTeX 将数学函数的名称作为一个算符排版,字体为直立字体。其中有一部分符号在上下位置可以书写一些内容作为条件,类似于后文所叙述的巨算符。
表 4.1:LaTeX 作为算符的函数名称一览。
\[
\lim_{x \rightarrow 0}
\frac{\sin x}{x}=1
\]
对于求模表达式,LaTeX 提供了 \pmod 和 \bmod 命令,前者相当于一个二元运算符,后者作为同余表示式的后缀:
$a\bmod b \\
x\equiv a \pmod{b}$
如果表 4.1
中的算符不够用的话,amsmath 允许用户用 \DeclareMathOperator 定义自己的算符,其中带星号的命令定义带上下限的算符:
\DeclareMathOperator{\argh}{argh} \DeclareMathOperator*{\nut}{Nut}
\[\argh 3 = \nut_{x=1} 4x\]
4.3.6 巨算符 #
积分号 ∫(\int)、求和号 Σ(\sum)等符号称为巨算符。巨算符在行内公式和行间公式的大小和形状有区别。
In text
$\sum_{i=1}^n \quad
\int_0^{\frac{\pi}{2}} \quad
\oint_0^{\frac{\pi}P{2}} \quad
\prod_\epsilon $ \\
In display:
\[\sum_{i=1}^n \quad
\int_0^{\frac{\pi}{2}} \quad
\oint_0^{\frac{\pi}{2}} \quad
\prod_\epsilon \]
巨算符的上下标位置可由 \limits 和 \nolimits 控制,前者令巨算符类似 lim 或求和算符 Σ ,上下标位于上下方;后者令巨算符类似积分号,上下标位于右上方和右下方。
In text:
$\sum\limits_{i=1}^n \quad
\int\limits_0^{\frac{\pi}{2}} \quad
\prod\limits_\epsilon $ \\
In display:
\[\sum\nolimits_{i=1}^n \quad
\int\limits_o^{\frac{\pi}{2}} \quad
\prod\nolimits_\epsilon \]
amsmath 宏包还提供了 \substack,能够在下限位置书写多行表达式; subarray 环境更进一步,令多行表达式可选择居中(c)或左对齐(l):
\[
\sum_{\substacks{0\le i\le n \\
j\in \mathbb{R}}}
P(i,j) = Q(n)
\]
\[
\sum_{\begin{subarray}{1}
0\le i\le n \\
j\in \mathbb{R}
\end{subarray}}
P(i,j) = Q(n)
\]
4.3.7 数学重音和上下括号 #
$\bar{x_0} \quad \bar{x}_0$\\[5pt]
$\vec{x_0} \quad \vec{x}_0$\\[5pt]
$\hat{\mathbf{e}_x} \quad
\hat{\mathbf{e}}_x$
LaTeX 也能为多个字符加重音,包括直接画线的 \overline 和\underline 命令(可叠加使用)、宽重音符号 \widehat、表示向量的箭头 \overrightarrow 等。后两者详见表 4.9
和 4.11
等。
$0.\overline{3} =
\underline{\underline{1/3}}$ \\[5pt]
$\hat{XY} \qquad \widehat{XY}$\\[5pt]
$\vec{AB} \qquad
\overrightarrow{AB}$
\overbrace 和 \underbrace 命令用来生成上/下括号,各自可带一个上/下公式。
$\underbrace{\overbrace{(a+b+c)}^6
\cdot \overbrace{(d+e+f)}^7}
_\text{meaning of life} = 42$
4.3.8 箭头 #
常用的箭头包括 \rightarrow(→,或 \to)、\leftarrow(←,或 \gets ) 等。更多箭头详见表 4.10
。
amsmath 的 \xleftarrow
和 \xrightarrow
命令提供了长度可以伸展的箭头,并且可以为箭头增加上下标:
\[ a\xleftarrow{x+y+z} b \]
\[ c\xrightarrow{x<y}{a*b*c}d \]
4.3.9 括号和界定符 #
LaTeX 提供了多种括号和定界符表示公式块的边界,如小括号()、中括号 [] 、大括号 {} (\{\})、尖括号 <>(\langle \rangle)等。更多的括号/定界符命令见表 4.12
和 4.13
。
${a,b,c} \neq \{a,b,c}$
使用 \left 和 \right 命令可令括号(定界符)的大小可变,在行间公式中常用。 LaTeX 会自动根据括号内的公式大小决定定界符大小。 \left 和 right 必须成对使用。需要使用单个定界符时,另一个定界符写成 \left . 或 \right . 。
\[1 + \left(\frac{1}{1-x^{2}}
\right)^3 \qquad
\left. \frac{\partial f}{\partial t}
\right|_{t=0}\]
有时我们不满意于 LaTeX 为我们自动调节的界定符大小。这时我们还可以用 \big、\bigg 等,以及类似 \right 的 \biggr 等 (\bigl 和 \bigr 不必成对出现)。
$\Bigl((x+1)(x-1)\Bigr)^{2}$\\
$\bigl( \Bigl( \biggl( \Biggl( \quad
\bigr\} \Bigr\} biggr\} \Biggr\} \quad
\big\| \Bigr\} \biggr\| \Bigg\| \quad
\big\Downarrow \Big\Downarrow
\bigg\Downarrow \Bigg\Downarrow$
使用 \big 和 \bigg 等命令等的另外一个好处是:用 \left 和 \right 分界符包裹的公式块是不允许断行的(下文提到的 array 或者 aligned
等环境视为一个公式块),所以也不允许在多行公式里跨行使用, 而 \big 和 \bigg 等命令不受限制。
4.4 多行公式 #
4.4.1 长公式折行 #
通常来讲应当避免写出超过一行而需要折行的长公式。如果一定要折行的话,习惯上优先在等号之前折行,其次在加号、减号之前,再次在乘号、除号之前。其他位置应当避免折行。
amsmath 宏包的 multline
环境提供了书写折行长公式的方便环境。它允许用 \ \ 折行,将公式编号放在最后一行。多行公式的首行左对齐,末行右对齐,其余行居中。
\begin{multline}
a + b + c + d + e + f
+ g + h + i \\
= j + k + l + m + n\\
= o + p + q + r + s\\
= t + u + v + x + z
\end{multline}
与表格不同的是,公式的最后一行不写 \ \ ,如果写了,反倒会产生一个多余的空行。
类似 equation*
,multline*
环境排版不带编号的折行长公式。
4.4.2 多行公式 #
更多的情况是,我们需要罗列一系列公式,并令其按照等号对齐。
读者可能阅读过其他手册或者资料,知道 LaTeX 提供了 eqnarray 环境。它按照等号左边——等号——等号右边呈三列对齐,但等号周围的空隙过大,加上公式编号等一些 bug,目前已不推荐使用。
目前最常用的是 align
环境,它将公式用 & 隔为两部分并对齐。分隔符通常放在等号左边:
\begin{align}
a & = b + c \\
& = d + e
\end{align}
align
环境会给每行公式都编号。我们仍然可以用 \notag
去掉某行的编号。在以下的例子,为了对齐加号,我们将分隔符放在等号右边,这时需要给等号后添加一对括号 {} 以产生正常的间距:
\begin{align}
a ={} & b +c \\
={} & d + e + f +g + h + i
+ j + k + l \notag \\
& + m + n + o \\
= {} & p + q + r + s
\end{align}
align
还能够对齐多组公式,除等号前的 & 之外,公式之间也用 & 分隔:
\begin{align}
a &=1 & b &=2 & c &=3 \\
d &=-1 & e &=-2 & f &=-5
\end{align}
如果我们不需要按等号对齐,只需要罗列数个公式,gather
将是一个很好用的环境:
\begin{gather}
a = b + c \\
d = e + f + g \\
h + i = j + k \notag \\
l + m = n
\end{gather}
align
和 gather
有对应的不带编号的版本 align*
和 gather*
。
4.4.3 公用编号的多行公式 #
另一个常见的需求是将多个公式组在一起公用一个编号,编号位于公式的居中位置。为此,amsmath 宏包提供了诸如 aligned
、gathered
等环境,与 equation 环境套用。以 -ed 结尾的环境用法与前一节不以 -ed 结尾的环境用法一一对应。我们仅以 aligned
举例:
split
环境和 aligned
环境用法类似,也用于 equation 环境套用,区别是split
只能将每行的一个公式分两栏,aligned
允许每行多个公式多栏。
4.5 数组与矩阵 #
为了排版二维数组,LaTeX 提供了 array 环境,用法与 tabular 环境极为类似,也需要定义列格式,并用 \ 换行。数组可作为一个公式块,在外套用 \left、\right 等定界符:
\[ \mathbf{x}] = \left(
\begin{array}{cccc}
x_{11} & x_{12} & \Idots & x_{1n}\\
x_{21} & x_{22} & \Idots & x_{2n}\\
\vdots & \vdots & \ddots & \vdots\\
x_{n1} & x_{n2} & \Idots & x_{nn}\\
\end{array} \right) \]
值得注意的是,上一节末尾介绍的 aligned
等环境也可以用定界符包裹。
我们还可以利用空的定界符排版出这样的效果:
\[ |x| = \left\{
\begin{array}{rl}
-x & \text{if } x < 0,\\
0 & \text{if } x = 0,\\
x & \text{if } x > 0.
\end{array} \right. \]
不过上述例子可以用 amsmath 提供的 cases
环境更轻松地完成:
\[ |x| =
\begin{cases}
-x & \text{if } x < 0,\\
0 & \text{if } x = 0,\\
x & \text{if } x > 0.
\end{cases} \]
在矩阵中的元素里排版分式时,一定要用到 \dfrac
等命令,二来行与行之间有可能紧贴着,这时要用到 3.6.6
小节的方法来调节间距:
\[
\mathbf{H}=
\begin{bmatrix}
\dfrac{\partial^2 f}{\partial x^2} &
\dfrac{\partial^2 f}
{\partial x \partial y} \\[8pt]
\dfrac{\partial^2 f}
{\partial x \partial y} &
\dfrac{\partial^2 f}{\partial y^2}
\end{bmatrix}
\]
4.6 公式中的间距 #
前文提到过,绝大部分时候,数学公式中的各元素的间距是根据符号类型自动生成的,需要我们手动调整的情况极少。我们以及认识了两个生成间距的命令 \quad 和 \qquad。在公式中我们还可能用到的间距包括 ,、:、\;以及负间距 !,其中 \quad、\qquad 和 \,在文本和数学环境中可用,后三个命令只用于数学环境。文本中的 \ 也能使用在数学公式中。
一个常见的用途是修正积分的被积函数 f(x)和微元 dx 之间的距离。注意微元里的 d 用的是直立体:
\[
\int_a^b f(x)\mathrm(d)x
\qquad
\int_a^b f(x)\,\mathrm(d)x
\]
另一个用途是生成多重积分号。如果我们直接连写两个 \int,之间的间距会过宽,此时可以使用负间距 ! 修正之。不过 amsmath 提供了更方便的多重积分号,如二重积分 \iint
、三重积分 \iiint
等。
\newcommand\diff{\,\mathrm{d}}
\begin{gather*}
\int\int f(x)g(y)
\diff x \diff y \\
\int\!\!\!\int
f(x)g(y) \diff x \diff y \\
\iint f(x)g(y) \diff x \diff y \\
\lint\quad \iiint\quad \idotsint
\end{gather*}
4.7 数学符号的字体控制 #
4.7.1 数学字母字体 #
LaTeX 允许一部分数字符号切换字体,主要是拉丁字母、数字等等。表 4.2
给出了切换字体的命令。某一些命令需要字体宏包的支持。
$\mathcal{R} \quad \mathfraK{R}
\quad \mathbb{R}$
\[\mathcal{L}
= -\frac{1}{4}F_{\mu\nu}F^{\mu\nu}\]
$\mathfrak{su}(2)$ and
$\mathfrak{so}(3)$ Lie algebra
4.7.2 数学符号的尺寸 #
数学符号按照符号排版的位置规定尺寸,从大到小包括行间公式尺寸、行内公式尺寸、上下标尺寸、次级上下标尺寸。除了字号有别之外,行间和行内公式尺寸下的巨算符也使用不一样的大小。LaTeX 为每个数学尺寸指定了一个切换的命令,见 4.3
。
例如行间公式分式内,分子字母使用行内公式尺寸,巨算符采用行内尺寸的形成。对比一下分子字母使用 \displaystyle 命令与否的区别:
\[
P = \frac
{\sum_{i=1}^n (x_i- x)(y_i- y)}
{\displaystyle \left[
\sum_{i=1}^n (x_i-x)^2
\sum_{i=1}^n (y_i-y)^2
\right]^{1/2} }
\]
4.7.3 加粗的数学符号 #
在 LaTeX 中为符号切换数学字体并不十分自由,只能通过 \mathbf 等有限的命令切换字体。比如想得到粗斜体的符号,就没有现成的命令;再比如 \mathbf 只能改变拉丁字母,希腊字母就没有用。
LaTeX 提供了一个命令 \boldmath 令用户可以将整套数学字体切换为粗体版本。但这个命令只能在公式外使用:
$\mu, M \qquad
\mathbf{\mu}, \mathbf{M}$
\qquad {\boldmath$\mu, M$}
amsmath 提供了一个 \boldsymbol
命令(由调用的 amsbsy 宏包提供),用于打破 \boldmath 的限制,在公式内部将一部分符号切换为粗体。
$\mu, M \qquad
\boldsymbol{\mu}, \boldsymbol{M}$
然而定界符、巨算符等一些符号本身没有粗体版本,\boldsymbol
也得不到粗体。LaTeX 工具宏集之一的 bm 宏包可以用 \bm 命令生成“伪粗体”,一定程度上解决了不带粗体版本的符号的问题。这里不做过多介绍,详情请参考 bm 宏包的帮助文档。
4.8 定理环境 #
4.8.1 LaTeX 原始的定理环境 #
使用 LaTeX 排版数学和其他科技文档时,会接触到大量的定理、证明等内容。LaTeX 提供了一个基本的命令 \newtheorem 提供定理环境的定义:
\newtheorem{<theorem environment>}{<title>}{<section-level>}
\newtheorem[<theorem environment>][<counter>]{<title>}
<theorem environment> 为定理环境的名称。原始的 LaTeX 里没有现成的定理环境,不加定义而直接使用很可能会出错。<title> 是定理环境的标题(“定理”,“公理”等)。
定理的序号由两个可选参数之一决定,他们不能同时使用:
-
为用 \newcounter 自定义的计数器名称(详见
8.3
节),定理序号由这个计数器管理。
如果两个可选参数都不用的话,则使用默认的与定理环境同名的计数器。
在以下示例代码中,我们定义了一个 mythm 环境,其序号设为 section 的下一级序号。注意 mythm 环境的可选参数以及 \label 的用法:
\newtheorem{mythm}{My Theorem}[section]
\begin{mythm}\label{thm:light}
The light speed in vacuum
is $299,792,458\,\mathrm{m/s}$.
\end{mythm}
\begin{mythm}[Energy-momentum relation]
The relationship of energy,
momentum and mass is
\[E^2 = m_0^2 c^4 + p^2 c^2\]
where $c$ is the light speed
described in theorem \ref{thm:light}.
\end{mythm}
4.8.2 amsthm 宏包 #
LaTeX 默认的定理环境格式为粗体标签、斜体正文、定理名用小括号包裹。如果需要修改格式,则要依赖其他的宏包,如 amsthm、ntheorem 等等。本小节简单介绍一下 amsthm 的用法。
amsthm 提供了 \theoremstyle 命令支持定理格式的切换,在用 \newtheorem 命令定义定理环境之前使用。amsthm 预定了三种格式用于 \theorestyle;plain 和 LaTeX 原始的格式一致;definition 使用粗体标签、正体内容;remark 使用斜体标签、正体内容。
另外 amsthm 还支持带用星号的 \newtheorem* 定义不带序号的定理环境:
\theoremstyle{definition} \newtheorem{law}{Law} \theoremstyle{plain} \newtheorem{jury}{law}{Jury} \theoremstyle{remark} \newthorem*{mar}{Margaret}
以上例子定义的 jury 环境与 law 环境共用编号,mar 环境不编号:
\begin{law}\label{law:box}
Don't hide in the witness box.
\end{law}
\begin{jury}[The Twelve]
It could be you! So beware and
see law~\ref{law:box}.\end{jury}
\begin{jury}
You will disregard the last
statement.\end{jury}
\begin{mar}No, No, No\end{mar}
\begin{mar}Denis!\end{mar}
amsthm 还支持使用 \newtheoremstyle 命令自定义定理格式,更为方便使用的是 ntheorem 宏包。感兴趣的读者可参阅它们的帮助文档。
4.8.3 证明环境和证毕符号 #
amsthm 还提供了一个 proof 环境用于排版定理的证明过程。proof 环境末尾自动加上一个 □ 证毕符号:
\begin{proof}
For simplicity, we use
\[
E=mc^2
\]
That's it.
\end{proof}
如果行末是一个不带编号的公式,□ 符号会lin另起一行,这时可使用 \qedhere 命令将 □ 符号放在公式末尾:
\begin{proof}
For simplicity, we use
\[
E=mc^2 \qedhere
\]
\end{proof}
\qedhere 对于 align*
等命令也有效:
\begin{proof}
Assuming $\gamma
= 1/\sqrt{1-v^2/c^2}$, then
\begin{align*}
E &= \gamma m_0 c^2 \\
p &= \gamma m_0v \qedhere
\end{align*}
\end{proof}
在使用带编号的公式时,建议最好不要在公式末尾使用 \qedhere 命令。对带编号的公式使用 \qedhere 命令会使 □ 符号放在一个难看的位置,紧贴着公式:
\begin{proof}
For simplicity, we use
\begin{equation}
E=mc^2.\qedhere
\end{equation}
\end{proof}
在 align
等环境中使用 \qedhere 命令会使 □ 盖掉公式的编号:使用 equation 嵌套 aligned
等环境时,\qedhere 命令会将 □ 直接放在公式后。这些位置都不太正常。
证毕符号 □ 本身被定义在命令 \qedsymbol 中,如果有使用实心符号作为证毕符号的需求,需要自行用 \renewcommand 命令修改(用法见 8.1.1
小节)。我们可以利用在 3.8.4
小节介绍的标尺盒子来生成一个适当大小的“实心矩形”:
\renewcommand{\qedsymbol}%
{\rule{lex}{1.5ex}}
\begin{proof}
For simplicity, we use
\[
E=mc^2 \qedhere
\]
\end{proof}
4.9 符号表 #
有几个注意事项:
蓝色
的命令依赖 amsmath 宏包(非 amssymb 宏包);- 带有角标 ==ℓ== 的符号命令依赖 latexsym 宏包。
4.9.1 LaTeX 普通符号 #
表 4.4:文本/数学模式通用符号。
这些符号可用于文本和数学模式。
表 4.5:希腊字母。
\Alpha,\Beta 等希腊字母符号不存在,因为它们和拉丁字母 A,B 等一模一样:小写字母里也不存在 \omicron,直接用拉丁字母 o 代替。
表 4.6:二元关系符。
所有的二元关系符都可以加 \not 前缀得到相反意义的关系符,例如 \not= 就得到不等号(同 \ne)。
表 4.9:数学重音符号。
最后一个 \wideparen 依赖 yhmath 宏包。
4.9.2 AMS 符号 #
本小节所有符号依赖 amssymb 宏包。