LaTeX
数学公式排版
当 Donald Knuth 开始开发原始 TeX 系统时,他最重要的动机之一是创建一个能简便构建数学公式的工具,同时打印出来时也具有专业的外观。他的成功很可能是 TeX(后来是 LaTeX)在科学界广受欢迎的原因之一。数学排版是 LaTeX 的最大优点之一。由于数学符号的种类繁多,这也是一个庞大的话题。
如果您的文档只需要几个简单的数学公式,LaTeX 本身提供的大部分工具就足够了。如果您正在写一篇包含众多复杂公式的科学文档,amsmath
宏包引入了几条比基本 LaTeX 提供的更强大、更灵活的新命令。而 mathtools
宏包修复了一些 amsmath
的小问题,并向 amsmath
添加了一些有用的设置、符号和环境。要使用这两个宏包之一,只需在文档的导言部分加入:
\usepackage{amsmath}
或者
\usepackage{mathtools}
mathtools
宏包会自动加载 amsmath
宏包,因此如果使用 mathtools
,就不需要单独加载 amsmath
。
数学环境
LaTeX 需要知道何时是数学模式。这是因为 LaTeX 排版数学符号的方式与正常文本不同。因此,为此目的已声明了特殊的环境。根据公式呈现的方式,可以将其分为两类:
-
内联(text)— 数学公式显示为行内公式,即在文本体内声明,例如,我可以在这句话中写:
。 -
显示(displayed)— 显示的公式会单独占据一行。
由于数学需要特殊的环境,自然有适当的环境名称可以按标准方式使用。然而,与大多数其他环境不同,声明公式时有一些简便的方式。以下是它们的总结:
类型 | 内联公式(文本内) | 显示公式 | 显示并自动编号的公式 |
---|---|---|---|
环境 | math |
displaymath |
equation |
LaTeX 简写 | |||
TeX 简写 | $...$ | ||
备注 | equation* (星号版本)抑制编号,但需要 amsmath |
建议:避免使用 $$...$$
,因为这可能导致问题,特别是与 AMS-LaTeX 宏相关。发生问题时,错误信息可能并不有用。
equation*
和 displaymath
环境在功能上是等价的。
如果你在正常的文本模式中输入,你就处于文本模式,但在数学环境中输入时,你就进入了数学模式,这与文本模式有一些区别:
-
大多数空格和换行没有任何意义,因为所有空格都要么从数学表达式中推导出来,要么必须通过特殊命令如
\quad
来指定。 -
不允许空行。每个公式只能是一个段落。
-
每个字母被视为变量名,并按此排版。如果你想在公式中输入普通文本(使用正常的直立字体和间距),你必须使用专门的命令。
在文本块中插入显示公式
为了使一些操作符(如 或 )在某些数学环境中正确显示(例如 $...$
),可能需要在环境内写 \displaystyle
类别。这样做可能会导致行变得更高,但会确保某些数学操作符的指数和下标正确显示。例如,$\sum$ 会打印一个较小的 Σ,而 $\displaystyle \sum$ 会打印一个更大的 Σ。
你可以通过在导言部分声明 \everymath{\displaystyle}
来强制所有数学环境中都使用这种行为。
符号
数学有许多符号!以下是可以直接从键盘访问的一组符号:
-
-
= ! /
[ ] < > | ' : *
-
除了这些符号之外,还需要使用不同的命令来显示所需的符号。比如希腊字母、集合和关系符号、箭头、二元运算符等。
例如:
\forall x \in X, \quad \exists y \leq \epsilon
会显示为:
幸运的是,有一个工具可以大大简化查找特定符号命令的过程。可以在下方的外部链接部分查找 "Detexify"。另一个选择是查看 "The Comprehensive LaTeX Symbol List"。
希腊字母
希腊字母在数学中经常使用,并且在数学模式下非常容易输入。你只需要在反斜杠后输入字母的名称:如果第一个字母是小写的,你将得到小写的希腊字母;如果第一个字母是大写的(且仅限第一个字母),你将得到大写字母。需要注意的是,一些大写的希腊字母看起来像拉丁字母,因此它们没有在 LaTeX 中提供(例如,大写的 Alpha 和 Beta 只是 "A" 和 "B")。小写字母 epsilon, theta, kappa, phi, pi, rho 和 sigma 提供了两种不同的版本。通过在字母名称前加上 "var" 可以创建变体版本:
\alpha, \Alpha, \beta, \Beta, \gamma, \Gamma, \pi, \Pi, \phi, \varphi, \mu, \Phi
例如:
, , , , , , , , , , ,
操作符
操作符是作为单词书写的函数:例如三角函数(sin, cos, tan)、对数和指数(log, exp)、极限(lim),以及迹和行列式(tr, det)。LaTeX 定义了许多这样的命令:
\cos (2\theta) = \cos^2 \theta - \sin^2 \theta
$$ \cos (2\theta) = \cos^2 \theta - \sin^2 \theta $$
对于某些操作符,如极限,下标放在操作符下方:
\lim\limits_{x \to \infty} \exp(-x) = 0
$$\lim\limits_{x \to \infty} \exp(-x) = 0$$
对于模运算符,LaTeX 提供了两个命令:\bmod
和 \pmod
:
a \bmod b
$$a \bmod b$$
x \equiv a \pmod{b}
$$x \equiv a \pmod{b}$$
如果需要使用没有预定义的操作符,例如 argmax
,可以参见自定义操作符。
幂和指数
幂和指数等同于正常文本模式中的上标和下标。使用插入符号(^
;也称为插入符号)来提升某个字符,使用下划线(_
)来降低。若一个表达式包含多个字符并且需要升高或降低,应该使用大括号 {}
将其分组。
k_{n+1} = n^2 + k_n^2 - k_{n-1}
$$k_{n+1} = n^2 + k_n^2 - k_{n-1}$$
对于包含多个数字的幂,要用大括号包围幂:
x^{1.01}
$$x^{1.01}$$
下划线(_
)可以与竖线(|
)一起用于数学中表示评估:
f(n) = n^5 + 4n^2 + 2 |_{n=17}
$$f(n) = n^5 + 4n^2 + 2 |_{n=17}$$
分数和二项式
使用 \frac{numerator}{denominator}
命令来创建分数(对于需要记住的内容,分别是分子和分母!)。类似地,可以使用 \binom
命令写出二项式系数(即 "选择" 函数):
\frac{n!}{k!(n-k)!} = \binom{n}{k}
$$\frac{n!}{k!(n-k)!} = \binom{n}{k}$$
您还可以在分数中嵌套分数:
\frac{\frac{1}{x}+\frac{1}{y}}{y-z}
$$\frac{\frac{1}{x}+\frac{1}{y}}{y-z}$$
请注意,当出现在另一个分数内部或内联文本中时,分数明显比在显示数学模式中的要小。\tfrac
和 \dfrac
命令强制使用相应的样式(\textstyle
和 \displaystyle
)。类似地,\tbinom
和 \dbinom
命令排版二项式系数。
对于相对简单的分数,特别是在文本中,使用幂和指数可能更美观:
^3/_7
$$^3/_7$$
如果这看起来有点 "松散"(即,间距过大),可以通过插入一些负空间来调整:
\newcommand*\rfrac[2]{{}^{#1}\!/_{#2}}
\rfrac{3}{7}
$$\newcommand*\rfrac[2]{{}^{#1}\!/_{#2}}
\rfrac{3}{7}$$
如果您在整个文档中使用这种方式,建议使用 xfrac
宏包。这个宏包提供了 \sfrac
命令来创建倾斜的分数。使用方法:
\usepackage{xfrac}
$$\usepackage{xfrac}$$分数和二项式
如需创建分数,可以使用 \frac{numerator}{denominator}
命令(分子和分母分别是顶部和底部!)。类似地,二项式系数(也就是“选择”函数)可以使用 \binom
命令来表示:
\frac{n!}{k!(n-k)!} = \binom{n}{k}
$$\frac{n!}{k!(n-k)!} = \binom{n}{k}$$
您还可以在分数中嵌套分数:
\frac{\frac{1}{x}+\frac{1}{y}}{y-z}
$$\frac{\frac{1}{x}+\frac{1}{y}}{y-z}$$
请注意,当分数出现在另一个分数内,或在内联文本中时,它明显比在显示数学模式中的要小。 \tfrac
和 \dfrac
命令强制使用相应的样式(\textstyle
和 \displaystyle
)。类似地, \tbinom
和 \dbinom
命令排版二项式系数。
对于相对简单的分数,特别是在文本中,使用幂和指数可能更美观:
^3/_7
$$^3/_7$$
如果看起来有点“松散”(即,间距过大),可以通过插入一些负空间来调整:
\newcommand*\rfrac[2]{{}^{#1}\!/_{#2}}
\rfrac{3}{7}
$$\newcommand*\rfrac[2]{{}^{#1}\!/_{#2}}
\rfrac{3}{7}$$
如果您在整个文档中使用这种方式,建议使用 xfrac
宏包。这个宏包提供了 \sfrac
命令来创建倾斜的分数。
连分数
连分数应使用 \cfrac
命令来书写:
\begin{equation}
x = a_0 + \cfrac{1}{a_1
+ \cfrac{1}{a_2
+ \cfrac{1}{a_3 + \cfrac{1}{a_4} } } }
\end{equation}
$$\begin{equation}
x = a_0 + \cfrac{1}{a_1
+ \cfrac{1}{a_2
+ \cfrac{1}{a_3 + \cfrac{1}{a_4} } } }
\end{equation}$$
两个数字的乘法
为了使乘法的形式类似于分数,可以使用嵌套数组。例如,数字上下排列的乘法可以按如下方式排版:
\begin{equation}
\frac{
\begin{array}[b]{r}
\left( x_1 x_2 \right)\\
\times \left( x'_1 x'_2 \right)
\end{array}
}{
\left( y_1y_2y_3y_4 \right)
}
\end{equation}
$$\begin{equation}
\frac{
\begin{array}[b]{r}
\left( x_1 x_2 \right)\\
\times \left( x'_1 x'_2 \right)
\end{array}
}{
\left( y_1y_2y_3y_4 \right)
}
\end{equation}$$
根号
\sqrt
命令用于创建包含表达式的平方根。它接受一个可选的方括号参数([]
),用于改变根号的大小:
\sqrt{\frac{a}{b}}
\[\sqrt{\frac{a}{b}}\]
如果需要更高次的根号,可以使用以下语法:
\sqrt[n]{1+x+x^2+x^3+\dots+x^n}
$$\sqrt[n]{1+x+x^2+x^3+\dots+x^n}$$
书写多重根号
对于根号的特殊书写,可以调整根号“关闭”的方式,尤其是在电脑排版时不常使用,但若想调整输出的样式,可以在文档前言中加入如下代码:
\let\oldsqrt\sqrt
\def\sqrt{\mathpalette\DHLhksqrt}
\def\DHLhksqrt#1#2{%
\setbox0=\hbox{$#1\oldsqrt{#2\,}$}\dimen0=\ht0
\advance\dimen0-0.2\ht0
\setbox2=\hbox{\vrule height\ht0 depth -\dimen0}%
{\box0\lower0.4pt\box2}}
$$\let\oldsqrt\sqrt
\def\sqrt{\mathpalette\DHLhksqrt}
\def\DHLhksqrt#1#2{%
\setbox0=\hbox{$#1\oldsqrt{#2\,}$}\dimen0=\ht0
\advance\dimen0-0.2\ht0
\setbox2=\hbox{\vrule height\ht0 depth -\dimen0}%
{\box0\lower0.4pt\box2}}$$
求和与积分
\sum
和 \int
命令分别插入求和符号和积分符号,限制通过插入上标(^
)和下标(_
)来指定。常见的求和表示法为:
\sum_{i=1}^{10} t_i
$$\sum_{i=1}^{10} t_i$$
或者:
\displaystyle\sum_{i=1}^{10} t_i
$$\displaystyle\sum_{i=1}^{10} t_i$$
对于积分,表示积分变量时要使用直立的小写 d,这可以通过 \mathrm{}
命令实现,并且与被积式之间有一个小间距,使用 \,
命令添加:
\int_{a}^{b} \mathrm{d}x
$$\int_{a}^{b} \mathrm{d}x$$积分符号
积分符号可以使用 \int
命令来插入,如下所示:
\int_0^\infty \mathrm{e}^{-x}\,\mathrm{d}x
$$\int_0^\infty \mathrm{e}^{-x}\,\mathrm{d}x$$
LaTeX 提供了许多类似的“大”命令,用法类似:
-
\sum
—— 求和符号 -
\prod
—— 连乘符号 -
\coprod
—— 联合积符号 -
\bigoplus
—— 大和符号 -
\bigotimes
—— 大乘积符号 -
\bigodot
—— 大点积符号 -
\bigcup
—— 大并集符号 -
\bigcap
—— 大交集符号 -
\biguplus
—— 大联集符号 -
\bigsqcup
—— 大平方联集符号 -
\bigvee
—— 大或符号 -
\bigwedge
—— 大与符号 -
\oint
—— 闭合积分符号 -
\iint
—— 二重积分符号 -
\iiint
—— 三重积分符号 -
\iiiint
—— 四重积分符号 -
\idotsint
—— 连续积分符号
更多的积分符号,可以尝试使用 esint
宏包。
使用 \substack 命令
\substack
命令可以用来将积分或求和的限制条件分成多行:
\sum_{\substack{
0<i<m \\
0<j<n
}}
P(i,j)
$$\sum_{\substack{
0<i<m \\
0<j<n
}}
P(i,j)$$
设置积分的上下限
如果您希望积分符号的上下限出现在符号的上下方(就像求和符号一样),可以使用 \limits
命令:
\int\limits_a^b
$$\int\limits_a^b$$
但如果您希望所有积分都采用这种样式,建议在导言区加载 amsmath
宏包并指定 intlimits
选项:
\usepackage[intlimits]{amsmath}
$$\usepackage[intlimits]{amsmath}$$
分隔符和括号
在多行公式中如何使用大括号可以参见《高级数学》章节。
当处理非平凡方程时,分隔符(如括号)变得尤为重要。如果没有适当的分隔符,公式可能会变得模糊。此外,某些数学结构(如矩阵)通常依赖分隔符来包围它们。
LaTeX 提供了多种可用于分隔符的符号:
-
\left( a \right)
,\left[ b \right]
,\left\{ c \right\}
,| d |
,\| e \|
-
\langle f \rangle
,\lfloor g \rfloor
,\lceil h \rceil
,\ulcorner i \urcorner
,/ j \backslash
自动调整分隔符大小
很多时候,数学特性会有不同的大小,分隔符应根据情况自动变化。这可以使用 \left
, \right
和 \middle
命令来实现。以下是一个例子:
\left(\frac{x^2}{y^3}\right)
$$\left(\frac{x^2}{y^3}\right)$$
使用 {}
来控制分隔符,例如:
\left\{\frac{x^2}{y^3}\right\}
$$\left\{\frac{x^2}{y^3}\right\}$$
如果只需要一个方向上的分隔符,可以使用不可见的分隔符,表示方式为使用句点(.
):
\left.\frac{x^3}{3}\right|_0^1
$$\left.\frac{x^3}{3}\right|_0^1$$
手动调整分隔符大小
在某些情况下,使用 \left
和 \right
命令自动生成的分隔符大小可能不符合要求,或者您可能希望精细控制分隔符的大小。在这种情况下,可以使用 \big
, \Big
, \bigg
和 \Bigg
等命令来调整大小:
\big( \Big( \bigg( \Bigg(
$$\big( \Big( \bigg( \Bigg($$这些命令主要在处理嵌套的定界符时非常有用。例如,在排版时:
\frac{\mathrm d}{\mathrm d x} \left( k g(x) \right)
$$\frac{\mathrm d}{\mathrm d x} \left( k g(x) \right)$$
我们注意到,\left
和 \right
命令会产生与嵌套其中的定界符相同大小的定界符,这可能会使得公式难以阅读。为了解决这个问题,我们可以这样写:
\frac{\mathrm d}{\mathrm d x} \big( k g(x) \big)
$$\frac{\mathrm d}{\mathrm d x} \big( k g(x) \big)$$
手动调整大小也在公式过大、超出页面边界并需要通过 align
命令分成两行的情况下非常有用。虽然可以使用 \left.
和 \right.
命令来平衡每行的定界符,但这可能导致定界符大小不正确。此外,手动调整大小可以避免过大的定界符,尤其是在 \underbrace
或类似命令出现在定界符之间时。
矩阵和数组
可以使用 matrix
环境创建基本矩阵[note 1]:与其他类似表格结构一样,矩阵的条目通过行来指定,列之间用 &
分隔,新行用双反斜杠(\\
)分隔:
\[
\begin{matrix}
a & b & c \\
d & e & f \\
g & h & i
\end{matrix}
\]
\[
\begin{matrix}
a & b & c \\
d & e & f \\
g & h & i
\end{matrix}
\]
要指定表格中列的对齐方式,请使用带星号的版本[note 2]:
\begin{matrix}
-1 & 3 \\
2 & -4
\end{matrix}
=
\begin{matrix*}[r]
-1 & 3 \\
2 & -4
\end{matrix*}
\[
\begin{matrix}
-1 & 3 \\
2 & -4
\end{matrix}
\]
=
\[
\begin{matrix*}[r]
-1 & 3 \\
2 & -4
\end{matrix*}
\]
默认情况下,矩阵的对齐方式是 c
,但它可以是任何在 array
环境中有效的列类型。
然而,矩阵通常会被某种定界符所包围,虽然可以使用 \left
和 \right
命令,但也有许多其他预定义的环境会自动包含定界符:
环境名称 | 包围定界符 | 备注 |
---|---|---|
pmatrix [note 1] |
() |
默认情况下居中列 |
pmatrix* [note 2] |
() |
允许在可选参数中指定列的对齐方式 |
bmatrix [note 1] |
[] |
默认情况下居中列 |
bmatrix* [note 2] |
[] |
允许在可选参数中指定列的对齐方式 |
Bmatrix [note 1] |
{} |
默认情况下居中列 |
Bmatrix* [note 2] |
{} |
允许在可选参数中指定列的对齐方式 |
vmatrix [note 1] |
` | |
vmatrix* [note 2] |
` | |
Vmatrix [note 1] |
‖‖ |
默认情况下居中列 |
Vmatrix* [note 2] |
‖‖ |
允许在可选参数中指定列的对齐方式 |
在写下任意大小的矩阵时,通常会使用水平、垂直和对角线的省略号(三个点,称为省略符号)来填充某些列和行。这些可以通过 \cdots
、\vdots
和 \ddots
来指定:
A_{m,n} =
\begin{pmatrix}
a_{1,1} & a_{1,2} & \cdots & a_{1,n} \\
a_{2,1} & a_{2,2} & \cdots & a_{2,n} \\
\vdots & \vdots & \ddots & \vdots \\
a_{m,1} & a_{m,2} & \cdots & a_{m,n}
\end{pmatrix}
$$A_{m,n} =
\begin{pmatrix}
a_{1,1} & a_{1,2} & \cdots & a_{1,n} \\
a_{2,1} & a_{2,2} & \cdots & a_{2,n} \\
\vdots & \vdots & \ddots & \vdots \\
a_{m,1} & a_{m,2} & \cdots & a_{m,n}
\end{pmatrix}$$
在某些情况下,您可能希望对每一列的对齐方式进行更精细的控制,或者在列或行之间插入线条。这可以通过 array
环境来实现,它本质上是 tabular
环境的数学模式版本,要求提前指定列:
\begin{array}{c|c}
1 & 2 \\
\hline
3 & 4
\end{array}
$$\begin{array}{c|c}
1 & 2 \\
\hline
3 & 4
\end{array}$$
您可能会发现,AMS 矩阵环境类在与分数一起使用时,空间不足,导致输出类似于这样:
M = \begin{bmatrix}
{\frac {5}{6}} & {\frac {1}{6}} & 0 \\
{\frac {5}{6}} & 0 & {\frac {1}{6}} \\
0 & {\frac {5}{6}} & {\frac {1}{6}}
\end{bmatrix}
$$M = \begin{bmatrix}
{\frac {5}{6}} & {\frac {1}{6}} & 0 \\
{\frac {5}{6}} & 0 & {\frac {1}{6}} \\
0 & {\frac {5}{6}} & {\frac {1}{6}}
\end{bmatrix}$$
为了解决这个问题,可以使用 \\[0.3em]
为 \\
命令添加额外的前导空间:
M = \begin{bmatrix}
\frac{5}{6} & \frac{1}{6} & 0 \\[0.3em]
\frac{5}{6} & 0 & \frac{1}{6} \\[0.3em]
0 & \frac{5}{6} & \frac{1}{6}
\end{bmatrix}
$$M = \begin{bmatrix}
\frac{5}{6} & \frac{1}{6} & 0 \\[0.3em]
\frac{5}{6} & 0 & \frac{1}{6} \\[0.3em]
0 & \frac{5}{6} & \frac{1}{6}
\end{bmatrix}$$
如果您需要在矩阵中添加“边框”或“索引”,可以使用 TeX 的 \bordermatrix
宏:
M = \bordermatrix{~ & x & y \cr
A & 1 & 0 \cr
B & 0 & 1 \cr}
$$M = \bordermatrix{~ & x & y \cr
A & 1 & 0 \cr
B & 0 & 1 \cr}$$运行文本中的矩阵
要在不增加行间距的情况下插入一个小矩阵,可以使用 smallmatrix
环境:
一个文本中的矩阵必须设置得较小:
$\bigl(\begin{smallmatrix}
a&b \\ c&d
\end{smallmatrix} \bigr)$
$$\bigl(\begin{smallmatrix}
a&b \\ c&d
\end{smallmatrix} \bigr)$$
这样可以避免增加行间距。
在方程中添加文本
数学环境与文本环境在表示文本时有所不同。以下是试图在数学环境中表示文本的例子:
50 apples \times 100 apples = lots of apples^2
有两个明显的问题:单词或数字之间没有空格,并且字母是斜体并且间距比正常文本大。这两个问题只是数学模式的副作用,因为它将其视为数学表达式:空格被忽略(LaTeX根据自己的规则进行排版),而每个字符被当作独立元素(因此不像正常文本那样紧凑地排列)。
有几种方法可以正确地添加文本。典型的方法是使用 \text{...}
命令包围文本[note 1](类似的命令是 \mbox{...}
,但它会导致下标问题,并且名称不如 \text{}
具描述性)。让我们看看当上述方程代码被调整后的效果:
50 \text{apples} \times 100 \text{apples}
= \text{lots of apples}^2
$$50 \text{apples} \times 100 \text{apples}
= \text{lots of apples}^2$$
文本看起来更好。然而,数字和单词之间仍然没有空隙。遗憾的是,您需要显式地添加这些空格。有许多方法可以在数学元素之间添加空格,但为了简便,我们可以简单地在 \text
命令中插入空格字符:
50 \text{ apples} \times 100 \text{ apples}
= \text{lots of apples}^2
$$50 \text{ apples} \times 100 \text{ apples}
= \text{lots of apples}^2$$
格式化文本
使用 \text
命令很好,并且得到了基本的结果。然而,还有一个提供更多灵活性的替代方法。您可能还记得引入字体格式化命令,例如 \textrm
、\textit
、\textbf
等。这些命令会相应地格式化其参数,例如,\textbf{bold text}
会使文本加粗。这些命令在数学环境中用于包含文本时同样有效。这里的附加好处是,您可以更好地控制字体格式,而不是仅使用 \text
命令实现标准文本。
50 \textrm{ apples} \times 100
\textbf{ apples} = \textit{lots of apples}^2
$$50 \textrm{ apples} \times 100
\textbf{ apples} = \textit{lots of apples}^2$$
格式化数学符号
现在我们已经可以格式化文本了,那如何格式化数学表达式呢?有一组非常类似于刚才使用的字体格式化命令的格式化命令,唯一的不同是它们专门用于数学模式中的文本(需要 amsfonts
包)。
LaTeX命令 | 示例 | 描述 | 常见用途 |
---|---|---|---|
\mathnormal{…} (或省略命令) |
A B C D E F | 默认的数学字体 | 大多数数学符号 |
\mathrm{…} |
A B C D E F | 默认字体,非斜体 | 测量单位、单字函数 |
\mathit{…} |
A B C D E F | 斜体字体 | 多字母函数或变量名。与 \mathnormal 相比,单词间距更自然,数字也被斜体化。 |
\mathbf{…} |
A B C D E F | 粗体字体 | 向量 |
\mathsf{…} |
A B C D E F | 无衬线字体 | 类别 |
\mathtt{…} |
A B C D E F | 等宽字体 (固定宽度) | |
\mathfrak{…} (需要 amsfonts 或 amssymb 包) |
A B C D E F | 法克图字体 | 李代数、环论中的理想等 |
\mathcal{…} |
A B C D E F | 书法字体(仅限大写) | 用于层叠/图式和类别,表示加密学概念如定义字母集、消息空间、密文空间和密钥空间等。 |
\mathbb{…} |
A B C D E F | 黑板粗体(仅限大写) | 用于表示特殊集合(例如实数集) |
\mathscr{…} (需要 mathrsfs 包) |
脚本字体(仅限大写) | 类别和层叠的替代字体 |
这些格式化命令可以围绕整个方程使用,而不仅仅是文本元素:它们只格式化字母、数字和大写希腊字母,其他数学命令不受影响。
希腊字母加粗
要加粗小写希腊字母或其他符号,可以使用 \boldsymbol
命令;当当前字体中存在该符号的加粗版本时,此命令有效。作为最后的手段,可以使用 \pmb
命令(穷人版加粗):它会打印多个略微偏移的字符版本。
\boldsymbol{\beta} = (\beta_1,\beta_2,\dotsc,\beta_n)
$$\boldsymbol{\beta} = (\beta_1,\beta_2,\dotsc,\beta_n)$$
这会显示为:
改变数学模式中的字体大小
有关如何改变数学模式中的字体大小,请参阅“改变字体大小”章节。
重音符号
当你用完符号和字体时,接下来的步骤是使用重音符号:
a' 或 a^{\prime}
a''
\hat{a}
\bar{a}
\grave{a}
\acute{a}
\dot{a}
\ddot{a}
\not{a}
\mathring{a}
\overrightarrow{AB}
\overleftarrow{AB}
a'''
a''''
\overline{aaa}
\check{a}
\breve{a}
\vec{a}
\dddot{a}
\ddddot{a}
\widehat{AAA}
\widetilde{AAA}
\stackrel\frown{AAA}
\tilde{a}
\underline{a}
xcolor
包(在“颜色”部分描述)允许我们为方程添加颜色。例如:
k = {\color{red}x} \mathbin{\color{blue}-} 2
$$k = {\color{red}x} \mathbin{\color{blue}-} 2$$
这将显示为:
唯一的问题是,这会破坏默认的 LaTeX 格式,特别是 -
操作符。为了解决这个问题,我们将其放在 \mathbin
环境中,因为 -
是一个二元操作符。这个过程在这里描述。
加号和减号
LaTeX 处理加号(+)和减号(−)有两种方式。最常见的方式是作为二元操作符。当符号两边有数学元素时,LaTeX 假定它是一个二元操作符,因此会在符号两侧分配一些空间。另一种方式是符号指定。当你声明某个数学量是正数或负数时,常见的情况就是,如果一个量前面没有 −
符号,它默认是正数。这时,你希望符号紧贴着适当的元素显示,以显示它们之间的关联。如果你放置一个加号或减号,但没有任何符号在前面,并且希望它像二元操作符一样处理,可以通过使用 {}
来在操作符前添加一个隐形字符。这在写多行公式时很有用,例如,如果一行以减号或加号开始,可以通过添加隐形字符来修复奇怪的对齐。
加减符号写作:
\pm
这将显示为:
同样,也有一个减加符号:
\mp
这将显示为:
控制水平间距
显然,LaTeX 在排版数学公式方面非常出色——这是 LaTeX 扩展的核心 TeX 系统的主要目标之一。然而,它并不总是能完全按照你的方式准确地解释公式。它在遇到不明确的表达式时必须做出一些假设。结果通常是稍微不准确的水平间距。在这些情况下,输出仍然令人满意,但任何追求完美的人肯定会希望微调公式,以确保间距正确。这些调整通常是非常微妙的。
还有其他情况,LaTeX 已经正确地完成了它的工作,但你只是希望添加一些空格,可能是为了加一个注释。例如,在以下方程中,最好确保数学与文本之间有足够的空间。
\[ f(n) =
\begin{cases}
n/2 & \quad \text{if } n \text{ is even}\\
-(n+1)/2 & \quad \text{if } n \text{ is odd}
\end{cases}
\]
$$\[ f(n) =
\begin{cases}
n/2 & \quad \text{if } n \text{ is even}\\
-(n+1)/2 & \quad \text{if } n \text{ is odd}
\end{cases}
\]$$
这段代码在 Miktex 2.9 中会产生错误,无法显示右侧的结果。应使用 \mathrm
代替 \text
。
(注意,这个特定的例子可以通过 amsmath
包中的 cases
构造进行更优雅的表达,详见“高级数学”章节。)
LaTeX 定义了两个命令,可以在文档的任何地方使用(不仅限于数学模式)来插入一些水平空格。它们是 \quad
和 \qquad
。
\quad
是一个与当前字体大小相等的空格。所以,如果你使用的是 11pt 字体,那么 \quad
提供的空间也是 11pt(当然是水平的)。\qquad
给出的是两倍于此的空间。如上例代码所示,\quad
被用来在数学和文本之间添加一些间隔。
好的,回到文档开始时提到的微调。一个好的例子是显示关于 关于 的不定积分的简单方程式:
如果你尝试这样写,你可能会写:
然而,这并不会给出正确的结果。LaTeX 没有遵循代码中留下的空格来表示 和 是独立的实体。相反,它将它们合并在一起。使用 \quad
在这种情况下显然是多余的——我们需要的是在这种类型的实例中使用一些小的空间,而这正是 LaTeX 提供的:
命令 | 描述 | 大小 |
---|---|---|
, | 小空格 | 3/18 的 quad |
: | 中等空格 | 4/18 的 quad |
; | 大空格 | 5/18 的 quad |
! | 负空格 | -3/18 的 quad |
注意,如果需要,你可以在一个序列中使用多个命令来达到更大的空间。
因此,解决当前问题的代码是:
负空间可能看起来像是个奇怪的东西,但如果它没有用处,它就不会存在!看以下例子:
这个用来表示二项式系数的矩阵表达式过于填充了,括号和实际内容之间的空间太大了。通过在左括号后和右括号前添加一些负空间,这个问题可以轻松解决:
无论如何,尽量避免手动添加空格:这会使源代码更复杂,并且违背了“所见即所得”的基本原则。最好的做法是定义一些命令,使用你想要的所有空格,然后当你使用这些命令时,不需要再添加其他空格。以后,如果你改变了水平空间的长度,只需要修改你之前定义的命令即可。我们举个例子:你希望积分中的 以罗马字体显示,并且与其余部分有一点小空格。如果你想输入一个积分,如 ,你可以在文档的前言部分定义一个命令:
\newcommand{\dd}{\mathop{}\,\mathrm{d}}
我们选择 \dd
是因为它提醒我们它替代的“d”,并且打字速度快。这样,你的积分代码就变成了 。现在,每当你写一个积分时,你只需要使用 \dd
而不是“d”,所有的积分都会有相同的样式。如果你改变主意,只需要在前言中更改定义,所有的积分都会相应地改变。
手动指定公式样式
要手动显示公式片段并使用文本样式,只需将片段包围在大括号中,并在片段前加上 \textstyle
。大括号是必需的,因为 \textstyle
宏会改变渲染器的状态,使得所有后续的数学公式以文本样式显示。大括号限制了这种状态的变化仅限于被包围的片段。例如,要在求和符号中使用文本样式,你可以输入:
使用命令时会是这样的:
\newcommand{\tsum}[1]{{\textstyle \sum_{#1}}}
请注意额外的大括号。仅用一对大括号包围表达式是不够的,这会导致 \tsum k
之后的所有数学公式都以文本样式显示。
要使用显示样式显示公式的一部分,做法相同,但使用 \displaystyle
替代 \textstyle
。
高级数学:AMS 数学包
AMS(美国数学学会)数学包是一个强大的包,它为数学 LaTeX 语言提供了一个更高层次的抽象;如果你使用它,它将使你的工作更轻松。AMS 数学包引入的一些命令将使其他普通的 LaTeX 命令过时:为了保持最终输出的一致性,最好尽可能使用 AMS 数学包的命令。如果你这样做,你将获得优雅的输出,而无需担心对齐和其他细节,同时保持源代码的可读性。如果你想使用它,你需要在文档的前言部分添加以下内容:
\usepackage{amsmath}
在公式中引入省略号
amsmath 还定义了 \dots 命令,它是对现有 \ldots 的一种扩展。你可以在文本模式和数学模式中使用 \dots,LaTeX 会将其替换为三个点 "…",但它会根据上下文决定是将其放置在底部(如 \ldots)还是居中(如 \cdots)。
省略号
LaTeX 提供了多个命令来在公式中插入省略号(即省略符号)。如果你需要输入包含省略元素的大矩阵,这些命令特别有用。首先,以下是 LaTeX 提供的与省略号相关的主要命令:
命令 | 输出 | 说明 |
---|---|---|
\dots | … | 通用省略号(ellipsis),可用于文本中(也包括公式之外)。它根据上下文自动管理前后的空格,是一个更高级的命令。 |
\ldots | … | 输出与 \dots 类似,但没有自动空格管理;它是一个较低级的命令。 |
\cdots | ⋯ | 这些省略号相对于字母的高度是居中的。还有二元乘法运算符 \cdot,如下所述。 |
\vdots | ⋮ | 垂直省略号 |
\ddots | ⋱ | 对角线省略号 |
\iddots | 逆对角线省略号(需要 mathdots 包) | |
\hdotsfor{n} | … | 用于矩阵,它创建一行点,跨越 n 列。 |
建议使用语义上更清晰的命令,而不是 \ldots 和 \cdots。这样可以使文档更具灵活性,方便应对不同的出版要求。例如,某些出版社可能会要求遵循某些格式规定。默认的处理方式符合美国数学学会的规范。
命令 | 输出 | 说明 |
---|---|---|
A_1, A_2, \dotsc, | 用于“带逗号的省略号” | |
A_1 + \dotsb + A_N | 用于“带二元运算符/关系的省略号” | |
A_1 \dotsm A_N | 用于“乘法省略号” | |
\int_a^b \dotsi | 用于“带积分的省略号” | |
A_1 \dotso A_N | 用于“其他省略号”(不是上述的任何一种) |
使用 align 环境写方程
如何使用 amsmath 包中的 align 环境写方程,请参阅《高级数学》章节。
数学符号列表
下列是 \TeX\ 包中预定义的所有数学符号。更多符号可以通过额外的包获取。
关系符号
符号 | 脚本 | 符号 | 脚本 | 符号 | 脚本 | 符号 | 脚本 | 符号 | 脚本 |
---|---|---|---|---|---|---|---|---|---|
< | {\displaystyle <,} | < | > | {\displaystyle >,} | > | = | {\displaystyle =,} | = | ∥ |
∦ | {\displaystyle \nparallel ,} | \nparallel | ≤ | {\displaystyle \leq ,} | \leq | ≥ | {\displaystyle \geq ,} | \geq | ≐ |
≍ | {\displaystyle \asymp ,} | \asymp | ⋈ | {\displaystyle \bowtie ,} | \bowtie | ≪ | {\displaystyle \ll ,} | \ll | ≫ |
≡ | {\displaystyle \equiv ,} | \equiv | ⊢ | {\displaystyle \vdash ,} | \vdash | ⊣ | {\displaystyle \dashv ,} | \dashv | ⊂ |
⊃ | {\displaystyle \supset ,} | \supset | ≈ | {\displaystyle \approx ,} | \approx | ∈ | {\displaystyle \in ,} | \in | ∋ |
⊆ | {\displaystyle \subseteq ,} | \subseteq | ⊇ | {\displaystyle \supseteq ,} | \supseteq | ≅ | {\displaystyle \cong ,} | \cong | ⌣ |
⌢ | {\displaystyle \frown ,} | \frown | ⊈ | {\displaystyle \nsubseteq ,} | \nsubseteq | ⊉ | {\displaystyle \nsupseteq ,} | \nsupseteq | ≃ |
⊨ | {\displaystyle \models ,} | \models | ∉ | {\displaystyle \notin ,} | \notin | ⊏ | {\displaystyle \sqsubset ,} | \sqsubset | ⊐ |
∼ | {\displaystyle \sim ,} | \sim | ⊥ | {\displaystyle \perp ,} | \perp | ∣ | {\displaystyle \mid ,} | \mid | ⊑ |
⊒ | {\displaystyle \sqsupseteq ,} | \sqsupseteq | ∝ | {\displaystyle \propto ,} | \propto | ≺ | {\displaystyle \prec ,} | \prec | ≻ |
⪯ | {\displaystyle \preceq ,} | \preceq | ⪰ | {\displaystyle \succeq ,} | \succeq | ≠ | {\displaystyle \neq ,} | \neq | ∢ |
∡ | {\displaystyle \measuredangle ,} | \measuredangle | ∴ | {\displaystyle \therefore ,} | \therefore | ∵ | {\displaystyle \because ,} | \because |
二元运算符
符号 | 脚本 | 符号 | 脚本 | 符号 | 脚本 | 符号 | 脚本 |
---|---|---|---|---|---|---|---|
± | {\displaystyle \pm ,} | \pm | ∩ | {\displaystyle \cap ,} | \cap | ⋄ | {\displaystyle \diamond ,} |
⊕ | {\displaystyle \oplus ,} | \oplus | ∓ | {\displaystyle \mp ,} | \mp | ∪ | {\displaystyle \cup ,} |
△ | {\displaystyle \bigtriangleup ,} | \bigtriangleup | ⊖ | {\displaystyle \ominus ,} | \ominus | × | {\displaystyle \times ,} |
⊎ | {\displaystyle \uplus ,} | \uplus | ▽ | {\displaystyle \bigtriangledown ,} | \bigtriangledown | ⊗ | {\displaystyle \otimes ,} |
÷ | {\displaystyle \div ,} | \div | ⊓ | {\displaystyle \sqcap ,} | \sqcap | ◃ | {\displaystyle \triangleleft ,} |
⊘ | {\displaystyle \oslash ,} | \oslash | ∗ | {\displaystyle \ast ,} | \ast | ⊔ | {\displaystyle \sqcup ,} |
▹ | {\displaystyle \triangleright ,} | \triangleright | ⊙ | {\displaystyle \odot ,} | \odot | ⋆ | {\displaystyle \star ,} |
∨ | {\displaystyle \vee ,} | \vee | ◯ | {\displaystyle \bigcirc ,} | \bigcirc | ∘ | {\displaystyle \circ ,} |
† | {\displaystyle \dagger ,} | \dagger | ∧ | {\displaystyle \wedge ,} | \wedge | ∙ | {\displaystyle \bullet ,} |
∖ | {\displaystyle \setminus ,} | \setminus | ‡ | {\displaystyle \ddagger ,} | \ddagger | ⋅ | {\displaystyle \cdot ,} |
≀ | {\displaystyle \wr ,} | \wr | ⨿ | {\displaystyle \amalg ,} | \amalg |
集合与/或逻辑符号
符号 | 脚本 | 符号 | 脚本 |
---|---|---|---|
∃ | {\displaystyle \exists ,} | \exists | → |
∄ | {\displaystyle \nexists ,} | \nexists | ← |
∀ | {\displaystyle \forall ,} | \forall | ↦ |
¬ | {\displaystyle \neg ,} | \neg | ⟹ |
∩ | {\displaystyle \cap } | \cap | ∪ |
⊂ | {\displaystyle \subset ,} | \subset | ⟸ |
⊃ | {\displaystyle \supset ,} | \supset | ⇒ |
∈ | {\displaystyle \in } | \in | ↔ |
∉ | {\displaystyle \notin ,} | \notin | ⟺ |
∋ | {\displaystyle \ni ,} | \ni | ⇔ |
∧ | {\displaystyle \land ,} | \land | ⊤ |
∨ | {\displaystyle \lor ,} | \lor | ⊥ |
∠ | {\displaystyle \angle ,} | \angle | ∅ |
⇌ | {\displaystyle \rightleftharpoons ,} | \rightleftharpoons |
分隔符
符号 | 脚本 | 符号 | 脚本 | 符号 | 脚本 | 符号 | 脚本 | 符号 | 脚本 |
---|---|---|---|---|---|---|---|---|---|
{\displaystyle</td> <td>,} | 或 \mid(间距不同) | ‖ | {\displaystyle |,} | | | / | {\displaystyle /,} | |||
∖ | {\displaystyle \backslash ,} | \backslash | {</td> <td>{\displaystyle {,} | {</td> <td>} | {\displaystyle },} | } | |||
⟨ | {\displaystyle \langle ,} | \langle | ⟩ | {\displaystyle \rangle ,} | \rangle | ↑ | {\displaystyle \uparrow ,} | \uparrow | |
⇑ | {\displaystyle \Uparrow ,} | \Uparrow | ⌈ | {\displaystyle \lceil ,} | \lceil | ⌉ | {\displaystyle \rceil ,} | \rceil | |
↓ | {\displaystyle \downarrow ,} | \downarrow | ⇓ | {\displaystyle \Downarrow ,} | \Downarrow | ⌊ | {\displaystyle \lfloor ,} | \lfloor | |
⌋ | {\displaystyle \rfloor ,} | \rfloor |
希腊字母
符号 | 脚本 | 符号 | 脚本 |
---|---|---|---|
A | {\displaystyle \mathrm {A} ,} 和 α | {\displaystyle \alpha ,} | A 和 \alpha |
N | {\displaystyle \mathrm {N} ,} 和 ν | {\displaystyle \nu ,} | N 和 \nu |
B | {\displaystyle \mathrm {B} ,} 和 β | {\displaystyle \beta ,} | B 和 \beta |
Ξ | {\displaystyle \Xi ,} 和 ξ | {\displaystyle \xi ,} | \Xi 和 \xi |
Γ | {\displaystyle \Gamma ,} 和 γ | {\displaystyle \gamma ,} | \Gamma 和 \gamma |
O | {\displaystyle \mathrm {O} ,} 和 o | {\displaystyle \mathrm {o} ,} | O 和 o |
Δ | {\displaystyle \Delta ,} 和 δ | {\displaystyle \delta ,} | \Delta 和 \delta |
Π | {\displaystyle \Pi ,} 和 π | {\displaystyle \pi ,} 和 ϖ | \Pi, \pi 和 \varpi |
E | {\displaystyle \mathrm {E} ,} 和 ϵ | {\displaystyle \epsilon ,} 和 ε | E, \epsilon 和 \varepsilon |
P | {\displaystyle \mathrm {P} ,} 和 ρ | {\displaystyle \rho ,} 和 ϱ | P, \rho 和 \varrho |
Z | {\displaystyle \mathrm {Z} ,} 和 ζ | {\displaystyle \zeta ,} | Z 和 \zeta |
Σ | {\displaystyle \Sigma ,} 和 σ | {\displaystyle \sigma ,} 和 ς | \Sigma, \sigma 和 \varsigma |
H | {\displaystyle \mathrm {H} ,} 和 η | {\displaystyle \eta ,} | H 和 \eta |
T | {\displaystyle \mathrm {T} ,} 和 τ | {\displaystyle \tau ,} | T 和 \tau |
Θ | {\displaystyle \Theta ,} 和 θ | {\displaystyle \theta ,} 和 ϑ | \Theta, \theta 和 \vartheta |
Y | {\displaystyle {\mbox{Y}},} 和 Υ | {\displaystyle \Upsilon ,} 和 υ | Y, \Upsilon 和 \upsilon |
I | {\displaystyle \mathrm {I} ,} 和 ι | {\displaystyle \iota ,} | I 和 \iota |
Φ | {\displaystyle \Phi ,} 和 ϕ | {\displaystyle \phi ,} 和 φ | \Phi, \phi 和 \varphi |
K | {\displaystyle \mathrm {K} ,} 和 κ | {\displaystyle \kappa ,} 和 ϰ | K, \kappa 和 \varkappa |
X | {\displaystyle \mathrm {X} ,} 和 χ | {\displaystyle \chi ,} | X 和 \chi |
Λ | {\displaystyle \Lambda ,} 和 λ | {\displaystyle \lambda ,} | \Lambda 和 \lambda |
Ψ | {\displaystyle \Psi ,} 和 ψ | {\displaystyle \psi ,} | \Psi 和 \psi |
M | {\displaystyle \mathrm {M} ,} 和 μ | {\displaystyle \mu ,} | M 和 \mu |
Ω | {\displaystyle \Omega ,} 和 ω | {\displaystyle \omega ,} | \Omega 和 \omega |
其他符号
符号 | 脚本 | 符号 | 脚本 | 符号 | 脚本 | 符号 | 脚本 | 符号 | 脚本 |
---|---|---|---|---|---|---|---|---|---|
∂ | {\displaystyle \partial ,} | \partial | ı | {\displaystyle \imath ,} | \imath | ℜ | {\displaystyle \Re ,} | \Re | |
∇ | {\displaystyle \nabla ,} | \nabla | ℵ | {\displaystyle \aleph ,} | \aleph | ð | {\displaystyle \eth ,} | \eth | |
ȷ | {\displaystyle \jmath ,} | \jmath | ℑ | {\displaystyle \Im ,} | \Im | ◻ | {\displaystyle \Box ,} | \Box | |
ℶ | {\displaystyle \beth ,} | \beth | ℏ | {\displaystyle \hbar ,} | \hbar | ℓ | {\displaystyle \ell ,} | \ell | |
℘ | {\displaystyle \wp ,} | \wp | ∞ | {\displaystyle \infty ,} | \infty | ℷ | {\displaystyle \gimel ,} | \gimel |
三角函数
符号 | 脚本 | 符号 | 脚本 | 符号 | 脚本 | 符号 | 脚本 |
---|---|---|---|---|---|---|---|
sin | {\displaystyle \sin ,} | \sin | arcsin | {\displaystyle \arcsin ,} | \arcsin | sinh | {\displaystyle \sinh ,} |
sec | {\displaystyle \sec ,} | \sec | cos | {\displaystyle \cos ,} | \cos | arccos | {\displaystyle \arccos ,} |
cosh | {\displaystyle \cosh ,} | \cosh | csc | {\displaystyle \csc ,} | \csc | tan | {\displaystyle \tan ,} |
arctan | {\displaystyle \arctan ,} | \arctan | tanh | {\displaystyle \tanh ,} | \tanh | cot | {\displaystyle \cot ,} |
arccot | {\displaystyle \operatorname {arccot} ,} | \arccot |
coth | {\displaystyle \coth ,} | \coth
如果 LaTeX 没有包括你想要使用的数学运算符,例如 \cis(余弦加上 乘以正弦),可以在前言部分添加:
\DeclareMathOperator\cis{cis}
然后你可以像使用 \cos 或任何其他数学运算符一样使用 \cis。
摘要
正如您开始看到的那样,数学排版有时可能很棘手。然而,由于 LaTeX 提供了如此多的控制,您只需相对较少的努力(当然,在经过一些练习之后!)就能获得专业质量的数学排版效果。由于可能性似乎是无限的,因此可以进一步详细阐述数学的细枝末节。不过,通过本教程,您应该能够充分地掌握它。