LaTeX 数学公式梳理

目录

前言

本文是面向新人(其实是我自己)所写的 LaTeX 的公式梳理,有以下特点:

  1. 不完整。这篇梳理仅仅是节选了参考书籍的第四章的部分内容。
  2. 不规范。书写并不一定规范。
  3. 不一定完全正确。因为加入了不少个人的见解,主要是针对于知识的逻辑方面,有的重新安排了讲解的顺序。

下面解释一下何为不完整。

我们都知道,TeX 就是由基本的编译器和各种宏包构成的。很多功能都是由宏包所提供的。但是问题是这些宏包不一定是通用的。比如排版 LaTeX 的最为常用的宏包 amsmath,这是 LaTeX 的必备宏包,基本上所有地方都是支持它的;而 mathtools 宏包的普及程度就非常低。所以,我仅收集了 基于 amsmath 宏包的拓展,而其他的就不予以关注;而且,书中标注“危险”、“谨慎”、“易错”之类字样的部分,亦未收录。

本文的作用不是用于查询公式、符号的写法,而是建立用 LaTeX 输入公式的相关概念,其中公式和符号,仅用作举数例以辅助理解耳。另外,本文受限于本人的知识水平,也仅收录了部分常用的数学结构、符号等。

再来谈一下本文的作用。同上文言,本文意在建立用 LaTeX 输入公式的相关概念而非公式符号大全。须知此类命令环境宏包数不胜数也,岂我一文能涵盖?岂我一人能总结?初学之时,把握框架,识其大体即可。故本文虽然长,但是也许真正有用的只有目录的部分。(当然学习的过程,少不了基础的讲解和用例子来加深印象。)

另外,本文并没有把公式的完整命令放上来,有人会说这样是不是不方便学习?我要说的是,要学习的人大可以查看本文的 Markdown 源码:https://github.com/xuanhao44/LaTeX-,复制到本地去研究。不学的人,看了源码也是多余,反而觉得看着碍眼。

最后,本文仅由我一初学者所整理,如有纰漏谬误,实属正常。此文也会随我学习之程度而更新。

数学模式和文本模式

行内公式 / 正文数学公式

使用单个美元符号 $...$ 来表示。

交换律是 $ a+b=b+a $,如 $ 1+2=2+1=3 $

行间公式 / 显示数学公式 / 列表公式

使用 \[ ... \] 或者 $$...$$ 来表示。

交换律

\[ a+b=b+a, \]

\[ 1+2=2+1=3. \]

虽然书上说用 $$...$$ 不够严谨,应当避免使用,但是大多数的编译器只能识别 $$...$$ 而不能识别 \[ ... \],比如博客园和 VS Code 自己的 OpenPreview 都是无法识别的。考虑到本身使用的并不是多么严谨的 LaTeX,就还是使用 $$...$$ 了;另外最好把单独占据一行的显示公式放在单独的行内

数学模式和文本模式混合

数学模式和文本模式不同。数学模式会改变字符字体和间距,还会忽略空格,汉字和西文文本也不能直接输入

在数学公式中插入汉字:\text{汉字...} 命令

\[ \text{被减数} - \text{减数} = \text{差} \]

数学结构

上标和下标

上标和下标是常见的数学结构。上标可位于符号的右上方或者正上方;下标可位于符号的右下方或者正下方。

单字符和多字符

上标用特殊字符 ^ 表示,下标用特殊字符 _ 表示。

\[ a_0 = 3^2 \]

当上标和下标多于一个字符时,需要使用 {...} 分组确定上下标范围。

\[ A_{ij} = 2^{i+j} \]

式子中的空格(包括单个换行)是没有实际作用的,但是适当的空格可以将代码分隔的好看些。

我建议都使用 {...} 的,毕竟这也很符合编程的规范。

上下标的同时使用和嵌套

同时使用

\[ A_{i}^{k} \]

嵌套

\[ 3^{3^{\cdot^{\cdot^{\cdot^3}}}} \]

特殊的两种上标

撇号

要注意四点:

  1. 可用符号 \prime 表示
  2. 可以与下标混用
  3. 可以连续使用
  4. 不能与上标直接混用,要加上 {...}

一般撇号

\[ a = a' \]

与下标混用 & 连续使用

\[ b_0' = b_0'' \]

不能与上标直接混用

\[ {c'}^2 = (c')^2 \]

角度

没有直接表示角度的符号,用符号 \circ 的上标表示。

\[ A = 90^\circ \]

其他

在显示公式中,多数数学算子的上下标在正下方或者正上方;

\[ \max_n f(n) = \sum_{i=0}^n A_i \]

但对积分号等个别算子,显示公式中的上下标也在右上右下角。

\[ \int_0^1 f(t) d\ t = \iint_D g(x,y) d\ x d\ y \]

在行内公式中,所有数学算子的上下标都在角标的位置,如将上面一个式子放入行内将得到 $ \max_n f(n) = \sum_{i=0}^n A_i $ 。

上下划线和花括号

上划线:\overline;下划线:\underline

\[ \overline{a+b} = \overline a + \overline b \]

\[ \underline a = (a_0, a_1, a_2, \dots) \]

而且这种结构可以任意嵌套或与其他数学结构组合。

\[ \overline{\underline{\underline a} + \overline{b}^2} - {\underline n} \]

在公式上下加箭头的命令,使用方法与 \overline\underline 没有区别。

上左箭头:\overleftarrow

\[ \overleftarrow{a+b} \]

上右箭头:\overrightarrow

\[ \overrightarrow{a+b} \]

下左箭头:\underleftarrow

\[ \underleftarrow{a+b} \]

下右箭头:\underrightarrow

\[ \underrightarrow{a+b} \]

使用 \overbrace\underbrace 带上花括号。

\[ \overbrace{a+b+c} = \underbrace{1+2+3} \]

还可以使用上下标在花括号上作标注。

\[ ( \overbrace{a_0,a_1,\dots,a_n}^{\text{共 $n+1$ 项}}) = ( \underbrace{0,0,\dots,0}_{n},1) \]

花括号交错暂时不考虑。

分式

分式也是很常见的结构呢。分式用 \frac 分子分母 得到。

\[ \frac 12 + \frac 1a = \frac{2+a}{2a} \]

在行内公式中,分式的分子分母都会用较小的字号排版,以免超出文本行高度。

通分计算 $ \frac 12 +\frac 1a $ 得 $ \frac{2+a}{2a} $

已经在分子或者分母内的公式,也会按行内公式大小排版。

\[ \frac {1}{\frac 12 {(a+b)}} = \frac {2}{a+b} \]

如果还是需要指定较大或者较小的样式,则使用显示样式命令 \dfrac\tfrac

\[ \tfrac 12 f(x) = \frac {1}{\dfrac 1a + \dfrac 1b + c} \]

连分式使用 \cfrac还有三个参数 lcr表示左中右对齐,并且默认是居中。 并不是所有地方支持,谨慎使用。

注:博客园中可使用,但是 OpenPreview 中无法识别参数。

无参数

\[ \cfrac{1}{1+\cfrac{2}{1+\cfrac{3}{1+x}}} \]

有参数

\[ \cfrac[r]{1}{1+\cfrac{2}{1+\cfrac[l]{3}{1+x}}} \]

二项式系数

类似分数分成上下两半的数学结构。使用 \binom 来输入二项式系数,其用法和 \frac 相似。

\[ (a+b)^2 = \binom 20 a^2 +\binom 21 ab + \binom 22 b^2 \]

也有指定大小的形式 \tbinom\dbinom

\[ (a+b)^2 = \tbinom 20 a^2 \tbinom 21 ab + \tbinom 22 b^2 \]

其余类分式数学结构

略。

根式

使用单参数指令 \sqrt 得到,可带一个参数,表示开方次数。

\[ \sqrt 4 =\sqrt[3]{8} =2 \]

嵌套使用根式是相当常见的。

\[ \sqrt[n]{\frac{x^2+\sqrt 2}{x+y}} \]

开方的次数表示若复杂则应使用等价的指数形式。

\[ (x^p+y^q)^{\frac{1}{1/p+1/q}} \]

矩阵和行列式

矩阵环境

矩阵的括号可以是方括号,也可以是圆括号,还可以是大括号,甚至没有括号等等。括号的不同就是矩阵环境的不同。

matrix环境

\[ \begin{matrix} a & b \\ c & d \end{matrix} \]

bmatrix环境

\[ \begin{bmatrix} a & b \\ c & d \end{bmatrix} \]

vmatrix环境

\[ \begin{vmatrix} a & b \\ c & d \end{vmatrix} \]

pmatrix环境

\[ \begin{pmatrix} a & b \\ c & d \end{pmatrix} \]

Bmatrix环境

\[ \begin{Bmatrix} a & b \\ c & d \end{Bmatrix} \]

Vmatrix环境

\[ \begin{Vmatrix} a & b \\ c & d \end{Vmatrix} \]

常规表示

不同的列用符号 & 分隔,行用 \\ 分隔。

\[ A = \begin{pmatrix} a_{11} & a_{12} & a_{13} \\ 0 & a_{22} & a_{23} \\ 0 & 0 & a_{33} \end{pmatrix} \]

矩阵中常常使用各种省略号,即 \dots\vdots\ddots 等。

\[ A = \begin{bmatrix} a_{11} & \dots & a_{1n} \\ & \ddots & \vdots \\ 0 & & a_{nn} \end{bmatrix}_{n \times n} \]

分块矩阵

分块矩阵可以理解为矩阵的嵌套。

\[ \begin{pmatrix} \begin{matrix} 1 & 0\\ 0 & 1 \end{matrix} & \text{\Large 0}\\ \text{\Large 0} & \begin{matrix} 1 & 0\\ 0 & -1 \end{matrix} \end{pmatrix} \]

矩阵的其他用法

在行内公式中使用很小的矩阵,用的矩阵环境是 smallmatrix 环境。

矩阵在行内表示 \( \begin{smallmatrix} x & -y \\ y & x \end{smallmatrix} \),但是没有括号。

\substack 命令排版列矩阵,用以处理多行内容的插入。

\[ \sum_{\substack{0<i<n \\0<j<i}} A_{ij} \]

或者是用 \subarray 指令,还必须指定对齐方式为 l(左对齐)c(居中)r(右对齐)

\[ \sum_{ \begin{subarray}{l} i<10 \\ j<100 \\ k<1000 \end{subarray} } X(i,j,k) \]

符号和类型

数学结构是数学公式的骨架,而数学符号是数学公式的骨肉。

数学符号的输入:一小部分符号是可以直接从键盘上输入的,如字母\(a\)\(b\)\(x\)\(+\)\(=\)\(()\);但是大多数符号需要使用 LaTeX 命令来输入。

数学符号总共有 8个类别:普通符号、巨算符、二元运算符、关系符、开符号。闭符号、标点和变量族。

思想准备

虽然我一直在说要避免去涉及到 LaTeX 的粗斜体、字体、字号、间距和行距等细节的问题,但是在符号和类型这一节就不得不去考虑这些问题了。因为这些规定有数学或者物理含义。

字母和普通符号

数学符号的最基本内容就是字母表

拉丁字母

也就是拉丁字母 \(A\)\(B\)\(C\)\(D\)\(x\)\(y\)\(z\)。它们都可以直接从键盘输入,默认使用意大利形状(注意是形状而不是字体/体)。

数学字母可以使用多种字体。使用命令就可以为字母确定字体。

数学环境的默认字体 \mathnormal

\[ ABCHIJXYZabchijxyz12345 \]

意大利体 \mathit

\[ \mathit{ ABCHIJXYZabchijxyz12345 } \]

罗马体 \mathrm

\[ \mathrm{ ABCHIJXYZabchijxyz12345 } \]

粗体 \mathbf

\[ \mathbf{ ABCHIJXYZabchijxyz12345 } \]

无衬线体 \mathsf

\[ \mathsf{ ABCHIJXYZabchijxyz12345 } \]

打字机体 \mathtt

\[ \mathtt{ ABCHIJXYZabchijxyz12345 } \]

手写体 \mathcal

\[ \mathcal{ ABCHIJXYZabchijxyz12345 } \]

花体 \mathscr

\[ \mathscr{ ABCHIJXYZabchijxyz12345 } \]

黑板粗体 \mathbb

\[ \mathbb{ ABCHIJXYZabchijxyz12345 } \]

哥特体 \mathfrak

\[ \mathfrak{ ABCHIJXYZabchijxyz12345 } \]

再就是要明白为什么要使用不同的字体,以及字体之间细微的差别。

比如只有变量使用默认的意大利体;数学常数通常使用直立的罗马体,如数学常数 \(\mathrm{e}\) ,类似的还有虚数单位 \(\mathrm{i}\)。当然这里也只是举了几个很简单的例子。

默认的数学字母字体 \mathnormal 不仅使用了和正文不同的数学字体,而且字母之间的间距比正文也要大。而其他数学字体字母的间距和正文几乎没有区别。所以使用 $xyz$ 通常表示三个字母的乘积(间距较大),而如果要表示一个多字母的长变量名 \(\mathit{xyz}\),则应该使用 $\mathit{xyz}$ 等形式。

希腊字母

希腊字母同样有大写/小写,也有直立体/倾斜体的区别。不像拉丁字母有统一的字体命令,每个希腊字母都有自己单独的命令。但是命令是有规律可循的,我们就以 \(\pi\) 为例来讲。

首先是 \pi 命令:\(\pi\),这个是小写的、斜体的,一般用作变量。可以发现命令就是这个希腊字母的读法,是最基础的命令。

再就是 \Pi 命令:\(\Pi\),这个是大写的希腊字母。在基础的命令上把首字母大写就是大写的命令了。

还有 \varpi 命令:\(\varpi\)。这个是小写希腊字母的变体;还有 \varPi 命令:\(\varPi\),这个是大写希腊字母的变体。加上 var 的前缀就是变体的命令。

\uppi 命令:\(\uppi\),这个是小写的、直立的,一般用作常数,如圆周率。\uppi 命令需要数学字体宏包 upgreek。可能会有无法显示的情况。

希伯来字母

\aleph 命令:\(\aleph\)

\beth 命令:\(\beth\)

\daleth 命令:\(\daleth\)

\gimel 命令:\(\gimel\)

普通符号

普通符号通常是一些字母的变形、一元运算符或者是单纯的图形符号。这里举几个常见的普通符号。

\infty 命令:\(\infty\)

\angle 命令:\(\angle\)

\bot 命令:\(\bot\)

\triangle 命令:\(\triangle\)

\hbar 命令:\(\hbar\)

\partial 命令:\(\partial\)

\nabla 命令:\(\nabla\)

\forall 命令:\(\forall\)

\exists 命令:\(\exists\)

\varnothing 命令:\(\varnothing\)

\neg 命令:\(\neg\)

数学重音

这里举几个常见的重音。

单字母

\hat a 命令:\(\hat a\)

\bar a 命令:\(\bar a\)

\vec a 命令:\(\vec a\)

\dot a 命令:\(\dot a\)

\hat a 命令:\(\hat a\)

多字母

\widehat{abc} 命令:\(\widehat{abc}\)

数学算子

数学算子分为三种(自定),第一类是巨算子,第二类是单字符算子,第三类是文字名称算子。

巨算子

它们的大小是随显示公式和行内公式变化的,而且通常比一般的数学符号大一些。下面举一些常见的例子。

\sum 命令:\(\sum\)

\int 命令:\(\int\)

\iint 命令:\(\iint\)

\oint 命令:\(\oint\)

\iiint 命令:\(\iiint\)

\prod 命令:\(\prod\)

\bigcup 命令:\(\bigcup\)

\bigcap 命令:\(\bigcap\)

\bigvee 命令:\(\bigvee\)

\bigwedge 命令:\(\bigwedge\)

\bigoplus 命令:\(\bigoplus\)

\bigotimes 命令:\(\bigotimes\)

注意不要把巨算子和形状相似的其他类型符号混淆。典型的例子就是大写希腊字母 \(\Sigma\)(\Sigma)与求和号 \(\sum\)(\sum)。它们在各个方面都有区别。

数学算子通常可以带上下标。在显示公式中,积分号的上下标默认在角标位置,而其他巨算子则在上下方(作为上下限),例如。

\[ \mathcal{F}(x) = \sum_{k=0}^\infty \oint_0^1 f_k(x,t) \,\mathrm{d}t \]

单字符算子

积分式的写法。微分算子 \(\mathrm{d}\) 应该使用直立罗马体,后面的变量则仍是使用默认的意大利体,并且用 \, 与前面的被积函数分开。

\[ \int f(x) \,\mathrm{d} x \]

但是一般不添加单字符算子和变元之间的间距。不过微分与被积函数、多个微分变元之间,仍然需要留有间距。

\[ \iiint\limits_{0<x,y,z<1} f(x,y,z) \,\mathrm{d} x \,\mathrm{d} y \,\mathrm{d} z \]

这类只有一个字符的数学算子,还有 Laplace 算子 \(\triangle\) (大写希腊字母 \Delta,也可用 \triangle)、偏微分算子 \(\partial\)\partial)、梯度算子 \(\nabla\)\nabla)等一般都只作为一个普通数学符号排版,没有提供额外的间距,需要自己添加。

文字名称算子

文字名称算子用直立罗马体排印,如 \(\log x\)\(\lim f(t)\) 中的 \(\log\)\(\lim\)

前者是不带上下限的“纯”算子,一般就是常用的数学函数。其上标是角标形式。

\log 命令:\(\log\)

\lg 命令:\(\lg\)

\ln 命令:\(\ln\)

\sin 命令:\(\sin\)

\cos 命令:\(\cos\)

\tan 命令:\(\tan\)

\csc 命令:\(\csc\)

\sec 命令:\(\sec\)

\cot 命令:\(\cot\)

\arcsin 命令:\(\arcsin\)

\arccos 命令:\(\arccos\)

\arctan 命令:\(\arctan\)

\sinh 命令:\(\sinh\)

\cosh 命令:\(\cosh\)

\tanh 命令:\(\tanh\)

\coth 命令:\(\coth\)

带上下限的数学算子,使用起来和巨算子相似。

\lim 命令:\(\lim\)

\max 命令:\(\max\)

\min 命令:\(\min\)

\inf 命令:\(\inf\)

\gcd 命令:\(\gcd\)

\det 命令:\(\det\)

\[ \varlimsup_{k\to\infty} A_k = \lim_{J\to\infty} \lim_{K\to\infty} \bigcap_{j=1}^J \bigcup_{k=j}^K A_k \]

取模和同余

略。

二元运算符和关系符

首先说一下什么是二元运算符和关系符。常见的,能从键盘上直接输入的二元运算符有加号 \(+\),减号 \(-\),星号 \(*\);二元关系符有等号 \(=\),大于号 \(>\),小于号 \(<\) 和表示集合的关系的符号 \(:\)

它们和普通符号是有区别的,在公式使用中会产生间距。比如斜线形式的除号 \(/\) 并不是二元运算符,只是普通符号,即使表示除法也不额外增加间距;表示差集的符号 \setminus 与普通符号 \backslash 是同一个字符,但类型不同,因而会产生不同的间距,见下面的例子。

\[ H\backslash G \text{和} H\setminus G \]

二元运算符和关系符有不同和相同的地方。它们都用在公式中间,在符号的两边留有一定的间距。运算符的间距小一些,关系符的间距大一些,例如。

\[ 0-2=-2 \]

都是一样的符号却产生了不同的间距。原因是左边的是减号,是运算符,而右边的是负号,是关系符。当然在大多数情况下,我们不需要去关注这些 LaTeX 会自动处理的细节。

二元运算符

下面列举常见的二元运算符。

\times 命令:\(\times\)

\div 命令:\(\div\)

\pm 命令:\(\pm\)

\mp 命令:\(\mp\)

\circ 命令:\(\circ\)

\wedge\land 命令:\(\wedge\)

\vee\lor 命令:\(\vee\)

\cup 命令:\(\cup\)

\otimes 命令:\(\otimes\)

\oplus 命令:\(\oplus\)

二元关系符

二元关系符是 LaTeX 中数量最为庞大的一类数学符号:除了有普通的二元关系符及它们的否定形式外,关系符中各种箭头通常也单独列为一类。

一般地,二元关系符的否定可以在关系符前加 \not 得到,如使用 $s\not\in T$ 就得到:

\[ s\not\in T \]

此外,LaTeX 也为很多二元关系符的否定形式单独定义了命令,单独定义的命令有时会使用单独的字体符号,比直接使用 \not 得到的效果更好,如使用 $s \notin T$ 就得到:

\[ s \notin T \]

斜线的位置更加合理一些。因此在使用否定的二元关系符的时候,应该尽量使用单独的符号命令,在没有单独的符号的时候,才使用 \not 组合符号。

下面列举常见的二元关系符。

\because 命令:\(\because\)

\therefor 命令:\(\therefore\)

\subseteq 命令:\(\subseteq\)

\neq\ne 命令:\(\neq\)

\leq\le 命令:\(\leq\)

\geq\ge 命令:\(\geq\)

\ll 命令:\(\ll\)

\gg 命令:\(\gg\)

\in 命令:\(\in\)

\notin 命令:\(\notin\)

\ni\owns 命令:\(\ni\)

\equiv 命令:\(\equiv\)

\sim 命令:\(\sim\)

\approx 命令:\(\approx\)

\simeq 命令:\(\simeq\)

\cong 命令:\(\cong\)

\subset 命令:\(\subset\)

\supset 命令:\(\supset\)

\subseteq 命令:\(\subseteq\)

\supseteq 命令:\(\supseteq\)

\perp 命令:\(\perp\)

\parallel 命令:\(\parallel\)

下面列举常见的箭头符号。基本上都是 \arrow 的变体。

单、双向箭头

\leftarrow\gets 命令:\(\leftarrow\)

\rightarrow\to 命令:\(\rightarrow\)

\leftrightarrow 命令:\(\leftrightarrow\)

首字母大写

\Leftarrow 命令:\(\Leftarrow\)

\Rightarrow 命令:\(\Rightarrow\)

\Leftrightarrow 命令:\(\Leftrightarrow\)

上面箭头的加长形式:加 long(举出一例)(双杠仍然是首字母 L 大写)

\Longrightarrow 命令:\(\Longrightarrow\)

上面箭头的否定形式:加 n(仅举一例)

\nRightarrow 命令:\(\nRightarrow\)

可逆箭头

\rightleftharpoons 命令:\(\rightleftharpoons\)

上下箭头

\uparrow 命令:\(\uparrow\)

\downarrow 命令:\(\downarrow\)

\updownarrow 命令:\(\updownarrow\)

首字母大写

\Uparrow 命令:\(\Uparrow\)

\Downarrow 命令:\(\Downarrow\)

\Updownarrow 命令:\(\Updownarrow\)

斜向箭头

\nearrow 命令:\(\nearrow\)

\searrow 命令:\(\searrow\)

\swarrow 命令:\(\swarrow\)

\nwarrow 命令:\(\nwarrow\)

这组命令很有规律。

  • 东南 -> south-east -> se
  • 东北 -> north-east -> ne
  • 西北 -> north-west -> nw
  • 西南 -> south-west -> sw

添加说明的可延长箭头

使用 \xleftarrow\xrightarrow 命令,可以在上下方添加说明,参数是上方说明,可选参数是下方说明。

\[ A \xleftarrow{0<x<1>} B \xrightarrow[x \leq 1]{x \geq 1} C \]

逻辑符号命令

使用 \iff\implies\impliedby\And 命令用于逻辑表达式。符号和一般的箭头相同,但是间距比一般的运算符和关系符大一些,意义也更明显。

\iff 命令:\(\iff\)

\implies 命令:\(\implies\)

\impliesby 命令:\(\impliedby\)

\And 命令:\(\And\)

一个例子。

\[ x=y \implies x+a=y+a \\ x=y \impliedby x+a=y+a \\ x=y \iff x \le y \And x \ge y \]

括号和定界符

括号

数学公式离不开括号的使用。括号种类大致有圆括号 \((\,)\)、方括号 \([\,]\)、花括号 \(\{\,\}\)、尖括号 \(\langle\,\rangle\) 等等。在 LaTeX 中,括号被分为开括号和闭括号,显然,开括号是左边的括号,闭括号是右边的括号。

能从键盘上直接输入的符号有圆括号 \((\,)\)、方括号 \([\,]\)、花括号 \(\{\,\}\),其余均有用命令输入。

尖括号:\langle\rangle 命令:\(\langle\, \And \,\rangle\)

向下取整:\lfloor\rfloor 命令:\(\lfloor\, \And \,\rfloor\)

向上取整:\lceil\rceil 命令:\(\lceil\, \And \,\rceil\)

定界符

定界符的概念更为广泛。定界符通常就是公式两侧的括号,但也有时表示其他的符号。定界符有一个特别有用的性质,就是它可以按需要改变大小。

使用 \left\right 命令得到的。它们分别把作为其参数的定界符转换为开符号和闭符号,同使得定界符可以按中间的内容的高度自动调节大小。

\[ \partial_x \partial_y \left[ \frac 12 \left( x^2+y^2 \right)^2 + xy \right] \]

\left\right 命令用来配对的定界符可以不是同一种符号,甚至可以用一个句号 \(.\) 表示空的定界符。例如:

\[ \left. \int_0^x f(t,\lambda) \,\mathrm{d}t \right|_{x=1}, \qquad \lambda \in \left[\frac 12,\infty\right). \]

还有一个 \middle 命令,它可以在 \left\right 的中间再加一个定界符,如:

\[ \Pr \left( X>\frac 12 \middle \vert Y=0 \right) =\left. \int_0^1 p(t) \,\mathrm{d}t \middle/ (N^2+1) \right. \]

手动调整定界符略。

标点

数学标点

数学标点只有 5个。逗号、分号、叹号、问号和冒号,前面四个都可以从键盘上输入,冒号的命令是:\colon,注意它和直接从键盘上输入的二元关系符 \(:\) 的区别(略,因为用的不多)。

键盘上的圆点 \(.\) 在数学公式中是普通符号,通常表示为小数点。不过在显示公式的末尾也常常用它表示句号,在行末无须为后面的间距问题困扰。

数学省略号

省略号并不属于 TeX 的数学标点类型,但确是公式中常用的标点符号。

在数学公式中,水平的省略号有两种:

  1. 圆点在基线位置的 \ldots (\(\ldots\))
  2. 圆点在中间位置的 \cdots (\(\cdots\))

位置较低的 \ldots 主要用在逗号之间,如:

\[ (1,\cdots,n) \]

位置在中间的 \cdots 则用在二元运算符、关系符之间,如:

\[ 1+\cdots+n \]

或者表示没有乘号的连乘积,如:

\[ a_1 \cdots a_n \]

或者连接多个积分号,如:

\[ \int_0^1 \cdots \int_0^1 \]

下面给出其他省略号的命令。

首先是不同方向的省略号,多用于排版矩阵。

\vdots 命令:\(\vdots\)

\ddots 命令:\(\ddots\)

再是依照具体情形设定的省略号类型,分别是:

逗号(comma):\dotsc 命令:\(\dotsc\)

二元运算或关系符(binary):\dotsb 命令:\(\dotsb\)

乘法运算(multiplication):\dotsm 命令:\(\dotsm\)

积分(integral):\dotsc 命令:\(\dotsi\)

其他情形(other):\dotso 命令:\(\dotso\)

虽然 \dots 有一定的自动识别功能,但是在 \dots 无法正常识别的时候就可以使用上面的命令,如连乘和积分:

\[ \prod_{i=1}^n a_i = a_1 \dotsm a_n \qquad \int_0^1 \dotsi \int_0^1 \]

多行公式

我们经常会遇到线性方程组、分段函数、以及非常长的公式。下面来探究如何用显示公式来表示它们。

多个公式

输入多行数学公式最基本的方法是:使用 gathergather* (不编号)环境,使用 \\ 换行,如:

gather 环境:

\[ \begin{gather} a+b = b+a \\ a \times b = b \times a \end{gather} \]

gather* 环境:

\[ \begin{gather*} 3+5 = 5+3 = 8 \\ 3 \times 5 = 5 \times 3 \end{gather*} \]

gather 环境得到的公式是每行居中的,alignalign* 环境则允许公式按等号或者其他关系符对齐,在关系符前加 & 表示对齐。例如:

\[ \begin{align} x &= t + \cos t + 1 \\ y &= 2 \sin t \end{align} \]

alignalign* 环境还允许排列多列对齐的公式,列与列之间仍使用 & 分隔:

\[ \begin{align*} x &= t & x &= \cos t & x &= t \\ y &= 2t & y &= \sin(t+1) & y &= \sin t \end{align*} \]

需要注意的是,align 环境中的列分隔符 & 一般应该放在二元关系符的前面,但有时候也可以放在后面。如果个别需要在关系符后面或其他地方对齐的,则应该注意使用的符号类型。下面举一个连等公式的例子。

实话说这个例子记住就好了。关系符后对齐,需要使用空的分组代替关系符右侧符号,保证间距。

\[ \begin{align*} & (a+b)(a^2-ab+b^2) \\ ={} & a^3 - a^2b + ab^2 + a^2b - ab^2 +b^2 \\ ={} & a^3 + b^3 \end{align*} \]

拆分单个公式

首先是 \multline 环境和 \multline* 环境,可使用 \\ 换行。各行对齐的方式是:第一行左对齐,最后一行右对齐,中间的部分居中。不过左右两边和版心边界都留有一小段间距。这种环境特别适合排版非常长的连续运算,如:

\[ \begin{multline} a+b+c \\ +d+e+f \\ +j+k+l \end{multline} \]

给多行公式只产生一个编号要使用 \split 环境。\split 环境并不开始一个数学公式,它是使用在 equationgather 等数学环境里的;\split 环境不产生编号,编号仍然由外面的数学环境产生。因此多行公式只产生了一个编号。

\[ \begin{equation} \begin{split} \cos 2x &= \cos^2 x - \sin^2 x \\ &= 2\cos^2 x - 1 \end{split} \end{equation} \]

将公式组合成块

最为常见的是 \cases 环境,它在几行公式前面用花括号括起来,用来表示几种不同的情况。每行公式使用 & 分隔为两部分,通常表示值和后面的条件,例如:

\[ \begin{equation} D(x) = \begin{cases} 1, & \text{if } x \in \mathbb{Q}; \\ 0, & \text{if } x \in \mathbb{R} \setminus \mathbb{Q}. \end{cases} \end{equation} \]

还有几个常见的组合公式块的环境,它们的环境名通常是在原来的环境名的动词后面加 ed,包括 gathered 环境、aligned 环境和 alignedat 环境等。

gathered 环境把几行公式居中排列,组合为一个整体,如:

\[ \left. \begin{gathered} S \subseteq T \\ S \supseteq T \end{gathered} \right\} \implies S = T \]