LaTeX 公式简明教程
作为 \(\LaTeX\) 引以为傲的功能之一,\(\LaTeX\) 的公式语法在许多 \(\TeX\) 排版引擎以外的地方被广泛运用,其已经成为了事实上的数学公式数字化表示的标准。本文旨在用最少的语言介绍清楚 \(\LaTeX\) 公式是什么,以及如何用它写出普通大学高等数学水平的各类公式。
LaTeX 和它的公式系统
\(\LaTeX\) 读作「拉泰克」「雷泰克」或者「~泰赫」,不应读成「~泰克斯」。它是一套基于 \(\TeX\) 的排版系统,用于排出高质量的各类文档和书籍。在处理数学公式上,\(\LaTeX\) 有一套自己的标记系统,使得用户只需要使用键盘输入类似于
\left\{
\begin{aligned}
& \nabla\cdot\mathbf{E}=\frac{\rho}{\varepsilon_0} \\
& \nabla\cdot\mathbf{B}=0 \\
& \nabla\times\mathbf{E}=-\frac{\partial\mathbf{B}}{\partial t} \\
& \nabla\times\mathbf{B}=\mu_0\mathbf{J}+\mu_0\varepsilon_0\frac{\partial\mathbf{E}}{\partial t}
\end{aligned}
\right.
的代码,即可排出复杂而美观的公式:
\[\left\{ \begin{aligned} & \nabla\cdot\mathbf{E}=\frac{\rho}{\varepsilon_0} \\ & \nabla\cdot\mathbf{B}=0 \\ & \nabla\times\mathbf{E}=-\frac{\partial\mathbf{B}}{\partial t} \\ & \nabla\times\mathbf{B}=\mu_0\mathbf{J}+\mu_0\varepsilon_0\frac{\partial\mathbf{E}}{\partial t} \end{aligned} \right.\]
请千万不要被上面的代码吓到——只需读完本文,你也可以理解并写出上面这样的公式。本文不会介绍和 \(\LaTeX\) 有关的更多内容,而只介绍其公式语法的使用。这是因为,\(\LaTeX\) 这套公式标记系统简便好用,使得许多其他地方也用这样的方式来输入公式,因此将 \(\LaTeX\) 公式部分独立出来介绍,合情合理。
哪里会用到 LaTeX 公式
许多编辑器都接受以 \(\LaTeX\) 公式格式输入公式,例如:
在不同地方输入公式的方法是不同的。对于多数 Markdown 编辑器,将 \(\LaTeX\) 公式用 $
包裹起来,就能正确解析公式。而在 Notion 中,按 /
并选择 Inline equation 或者 Block equation,即可进入公式输入模式。一些其他的平台则亦有不同的公式输入入口。但无论是哪个平台,只要它支持 \(\LaTeX\) 公式格式,那么下面所介绍的内容都是适用的。下图是在 Notion 上进入公式输入的图片。
简单线性公式的输入
这里的简单线性公式,指的是不换行的简单公式,公式中穿插有各种数学符号。例如:
\[g(x)=x^2\sin(2x-3)\]
数字、字母和上下标
键盘上可以直接打出的数字、字母,全部按原样即可输入。例如,2x + 3 - y
即可排出 \(2x + 3 - y\),(5 - 3a) / 2
则能排出 \((5 - 3a) / 2\)。和许多编程语言一样,空格是可选的,1 + 2
和 1+2
没有什么不同。
上标用 ^
输入,下标用 _
输入。比如,x^2
可以排出 \(x ^ 2\),而 (3 - 2x)_i
可排出 \((3 - 2x)_i\)。但当上 / 下标多于一个字时,要用 {}
把它们包起来,例如:
3^{22}
会排出 \(3^{22}\),但3^22
则排出 \(3^22\)。x^{5y+6}
可以排出 \(x^{5y+6}\)。如果没有花括号,它会变成 \(x^5y+6\)。
导数符号即是 '
,可以算一种特殊的上标,如 f'(x)
即可排出 \(f'(x)\)。二阶导就是 f''(x)
,即 \(f''(x)\)。超过三阶的 \(n\) 阶导数一般就写成 \(f^{(n)}(x)\) 了。
分式与根式
在键盘上不能打出来的东西,需要使用一种叫做「控制序列」的字符串来输入。在 \(\LaTeX\)(准确来说是 \(\TeX\))中,所有以反斜杠 \
开头的字串都会被理解为「控制序列」。下面我们介绍我们遇到的第一个控制序列:分式。
分式使用 \frac
输入。它的用法是 \frac{分子}{分母}
。例如:
\frac{1}{2}
即是 \(\frac{1}{2}\)。\frac{f(x)}{g(x-2)}
即是 \(\frac{f(x)}{g(x-2)}\)。分式当然可以套分式,例如
\frac{2x+5}{3x-\frac{1}{1-x}}
可以排出 \(\frac{2x+5}{3x-\frac{1}{1-x}}\)。
而根式是我们介绍的第二个控制序列。它使用 \sqrt
输入,用法是 \sqrt{式子}
。例如:
\sqrt{2}
即 \(\sqrt{2}\)。\sqrt{x^2-3}
能排出 \(\sqrt{x^2-3}\)。对于高次根式,使用
\sqrt[3]{式子}
。如\sqrt[3]{x^4+2}
是 \(\sqrt[3]{x^4+2}\)。当然也可以套,如 \(\sqrt{\sqrt{\sqrt{\sqrt{x}}}}\)。
也可以和分式套在一起,比如 \(\sqrt{\frac{\sqrt{x}}{2x+\sqrt{3}}}\)。
希腊字母、关系符和算符
显然,希腊字母是无法直接用键盘打出来的,因此也需要用控制序列。简单来说,用 \
加上希腊字母的名称就能打出这个字母,如 \omega
打出小写的 \(\omega\),而 \Omega
打出大写的 \(\Omega\)。\(\alpha\)、\(\beta\) 和 \(\gamma\) 分别用 \alpha
、\beta
和 \gamma
打出。常见希腊字母的名称请自行上网搜索,这里不再赘述。
一个特例是部分希腊字母有多种不同的写法:
字母名 | 写法 1 | 写法 2 |
---|---|---|
Epsilon | \epsilon \(\epsilon\) | \varepsilon \(\varepsilon\) |
Theta | \theta \(\theta\) | \vartheta \(\vartheta\) |
Pi | \pi \(\pi\) | \varpi \(\varpi\) |
Rho | \rho \(\rho\) | \varrho \(\varrho\) |
Sigma | \sigma \(\sigma\) | \varsigma \(\varsigma\) |
Phi | \phi \(\phi\) | \varphi \(\varphi\) |
在各种关系符中,只有大于 \(<\) 小于 \(>\) 等几个简单的关系符可以直接用键盘打出。其他的需要依赖控制序列。常用的关系符有:
大于等于
\geq
即 Greater than or EQual to \(\geq\)。此外,\geqslant
用于打出斜边的 \(\geqslant\)。小于等于
\leq
即 Less than or EQual to \(\leq\)。同样,\leqslant
是 \(\leqslant\)。不等于
\neq
即 Not EQual \(\neq\)。约等于
\approx
即 APPROXimate \(\approx\)。
类似的,算符中,也只有加减法等几个简单算符能直接打出。我们需要使用控制序列来打出其他算符。例如:
乘法(叉乘)
\times
\(\times\)。除法
\div
\(\div\)。点乘
\cdot
\(\cdot\)。例如,a\cdot b
\(a\cdot b\)。蕴含
\to
或者\rightarrow
\(\rightarrow\)。事实上,你可以试试\leftarrow
、\leftrightarrow
以及将它们的第一个字母大写,看看能打出什么。
前面我们提到,控制序列以反斜杠 \
开始,那控制序列到哪里结束呢?诸如分式 \frac
和根式 \sqrt
这样后面带 {}
的控制序列,它最后一对花括号闭合时,整个控制序列就结束了。我们可以在后面直接写内容,如 \frac{1}{2}x
即可排出 \(\frac{1}{2}x\)。但对于上面的各种希腊字母、算符、关系符,它们的控制序列后面并不带东西,因此需要一个空格来标记「本控制序列到此为止」,否则会造成公式解析出错,如:
a\times b
将排出 \(a\times b\),但a\timesb
会出错,因为解析器会认为\timesb
是一个整体,而这是一个无效的控制序列。\alpha_5
、3\times\beta
则没有空格也能排出 \(\alpha_5\) 和 \(3\times\beta\),那是因为上下标和其他控制序列出现时,必然标志着前一个控制序列结束。
巨算符
巨算符指的是求和号、积分号、极限号等体积较大的算符。它们不仅不能直接打出,往往还「拖泥带水」。它们也需要使用控制序列来输入。
常用的巨算符有:
名字 | 控制序列 | 符号 |
---|---|---|
求和 | \sum | \(\sum\) |
求积 | \prod | \(\prod\) |
积分、二重和三重积分 | \int \iint 和 \iiint | \(\int\) \(\iint\) \(\iiint\) |
环路积分 | \oint | \(\oint\) |
极限 | \lim | \(\lim\) |
巨算符往往会带有一些其他部分,如积分上下限和求和起终点。它们在 \(\LaTeX\) 公式中以上下标的形式处理。例如,对 1 到 100 求和,可以用 \sum_{i=1}^{100}i
来打出:
\[\sum_{i=1}^{100}i\]
而将 \(f(x)\) 从 \(a\) 定积分到 \(b\),可以用 \int_a^bf(x)\mathrm{d}x
打出(\mathrm{d}
用来打出正体的 \(\mathrm{d}\)):
\[\int_a^bf(x)\mathrm{d}x\]
其他巨算符的用法类似,读者可以自行尝试。
常用函数
诸如三角函数、对数函数这类常用函数,往往要求使用正体排版,而 \(\LaTeX\) 公式中字母默认为斜体,这使得 sin(x)
\(sin(x)\) 这样的用法并不正确(但很多人在这样用)。幸运的是,\(\LaTeX\) 中已经内置好了这些常用函数的控制序列,如:
\sin
用于打出 \(\sin\),如\sin(x+2)
即有 \(\sin(x+2)\)。\log
可以打出 \(\log\),借助下标我们可以打出\log_2x
即 \(\log_2x\)。
其他还有诸如 \ln
和 \arcsin
等许多函数。与 \(sin(x+2)\) 这种用法相比,\(\sin(x+2)\) 是正确的,更加适合正式场合。
数学重音
最后我们介绍数学重音,即「穿靴戴帽」的数字字母。常用的数学重音有:
\bar
用于给字母头上加一杠,如\bar{x}
\(\bar{x}\)。多个字母请用\overline
,如\overline{AB}
\(\overline{AB}\)。\vec
用于给字母头上加一个右箭头,如\vec{x}
\(\vec{x}\)。多个字母请用\overrightarrow
,如\overrightarrow{AB}
\(\overrightarrow{AB}\)。事实上还有\overleftarrow
,不妨试试。\hat
用于给字母戴个帽子,如\hat{a}
\(\hat{a}\)。多个字母……有这种情况吗?
更多的控制序列
受限于篇幅,本文不会介绍更多的控制序列,亦不会罗列一张张符号总表。事实上,我们应当充分利用我们的搜索引擎:当你不知道一个符号如何用 \(\LaTeX\) 打出时,直接上网搜索「某符号 LaTeX」,一般都能很快找到答案:
如果你有收藏癖,想要一个包罗万象的 \(\LaTeX\) 符号总表,那么你或许可以搜索《一份(不太)简短的 LaTeX 2e 介绍》,然后翻到它第四章第九节。那里也许有你想要的东西。
多行公式的输入
下面我们来介绍多行公式的输入。这里的多行公式是一个广义的概念,像
\[\begin{aligned} \sum_{i=1}^\infty\frac{1}i &= 1+\frac{1}2+\frac{1}3+\frac{1}4+\cdots+\frac{1}n+\frac{1}{n+1}+\cdots \\ &= 1 + (\frac{1}2+\frac{1}3)+(\frac{1}4+\frac{1}5+\frac{1}6+\frac{1}7)+\cdots \\ &>1+(\frac{1}2+\frac{1}2)+(\frac{1}4+\frac{1}4+\frac{1}4+\frac{1}4)+\cdots \\ &= 1+1+1+\cdots \end{aligned}\]
这样由多个单行公式组成的复合公式属于多行公式,而如
\[\boldsymbol{A}=\left[ \begin{matrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{nn} \end{matrix} \right]\]
这样的含矩阵公式也是多行公式。显然,上一节所介绍的公式都是单行线性的。要输入这样多行的复杂公式,我们就需要使用一些特殊的东西——「环境」。
多行公式环境 aligned
环境是 \(\LaTeX\) 中的概念,用来标记一些特殊的排版元素,例如表格、图片。在 \(\LaTeX\) 公式中也会使用环境,而这些环境就是我们使用多行公式的关键。
我们介绍的第一个环境是 aligned
环境,它用来产生支持对齐功能的多行公式。要使用环境,我们需要使用 \begin
控制序列和 \end
控制序列来标记环境开始和结束。例如:
\begin{aligned}
% 一些公式代码
\end{aligned}
就能产生一个 aligned
环境。如果你的编辑器不支持公式源码换行,那么写在一行也是可以的:
\begin{aligned} 一些公式代码 \end{aligned}
aligned
环境的基本用法是:将你要输入的公式罗列其中,用 \\
控制序列来换行。例如:
\begin{aligned}
f(x)=2x+3 \\
g(x)=e^x-5
\end{aligned}
就能排出:
\[\begin{aligned} f(x)=2x+3 \\ g(x)=e^x-5 \end{aligned}\]
也可以把整个公式源码写在一行上。但请注意,和其他控制序列一样,\\
后面要留一个空格:
\begin{aligned}f(x)=2x+3\\ g(x)=e^x-5\end{aligned}
aligned
环境支持将多行公式在特定的位置对齐。使用 &
标记要对齐的位置。如
\begin{aligned}
a+b+c+d&=e \\
f&=g+h+i+j
\end{aligned}
就能让两个公式在 \(=\) 处对齐:
\[\begin{aligned} a+b+c+d&=e \\ f&=g+h+i+j \end{aligned}\]
现在你应该能试着打出上面那个调和级数求和的公式组合了。
环境是一个盒子
如果在一个 aligned
环境前后再打一些公式会怎么样呢?
e^x+2x-3=\begin{aligned} f(x)=x^2 \\ g(x)=e^x \end{aligned}-2
\[e^x+2x-3=\begin{aligned} f(x)=x^2 \\ g(x)=e^x \end{aligned}-2\]
前面提到了多行公式的环境 aligned
,其实本质是产生了一个「盒子」,这个盒子很大,里面装了一些东西。整个盒子其实还是单行公式的一部分——不如说,在 \(\LaTeX\) 中的多行公式,是通过一个盒子「模拟」出来的。这个盒子也能成为其他公式的一部分,也能像一个数字或者字母一样「塞」到其他公式之中。
在这一思想之上,我们便很容易想到诸如
\[\left\{ \begin{aligned} & f(x)=x^2-3x+6 \\ & g(x)=\log_2f(x)+e^x \end{aligned} \right.\]
的公式组怎么输入了。如果不看左侧的花括号,它就是一个靠左对齐的 aligned
环境。而花括号呢?我们也许只要找一个比较大的花括号放在 aligned
环境之前。为了产生这个比较大的花括号,我们先介绍两个控制序列:\left
和 \right
。
长高的括号与公式组
\left
和 \right
用来生成能随着公式高度变化的符号。举个例子:
括号是不会随着公式「长高」而变长的,如
(\frac{\sum_{i=1}^ni}{\prod_{j=1}^nj})
排出的是\[(\frac{\sum_{i=1}^ni}{\prod_{j=1}^nj})\]
注意看两个括号的大小,它们并没有完全「包」住中间的公式。
使用
\left(
和\right)
分别来生成左、右括号,上面的代码改为\left(\frac{\sum_{i=1}ni}{\prod_{j=1}nj}\right)
,则排出公式\[\left(\frac{\sum_{i=1}^ni}{\prod_{j=1}^nj}\right)\]
可以看到括号「长高」了。我们容易明白,
\left
和\right
能够生成它们后面紧跟的那个符号的「增大」版。例如\left[
和\right]
就能生成一对长大的中括号:\[\left[\frac{1}{2}\right]\]
\left
和 \right
必须成对出现,但不要求两边是同一种括号——也就是说,不能只有 \left
而没有 \right
,但 \left[
和 \right)
也是算一对的。幸运的是,\(\LaTeX\) 提供了一种生成单边增高括号的方法:用 \left(
和 \right.
,即可生成一对只有左括号的增高圆括号;同理,用 \left.
和 \right)
,则可以只要右半边。
那么,回到我们之前的公式组场景,答案已经很明朗了:我们只要在 aligned
环境之前加一个 \left{
,之后加一个 \right.
,就……
报错啦!花括号 {
和 }
在整个 \(\LaTeX\) 系统中都是非常特殊的存在——大量控制序列用它来输入参数,因此当我们要排出真正的花括号时,我们需要转义——用 \{
和 \}
才能排出真正的花括号。因此,我们要用 \left\{
和 \right.
包裹我们的 aligned
环境:
\left\{
\begin{aligned}
& f(x)=x^2-3x+6 \\
& g(x)=\log_2f(x)+e^x
\end{aligned}
\right.
\[\left\{ \begin{aligned} & f(x)=x^2-3x+6 \\ & g(x)=\log_2f(x)+e^x \end{aligned} \right.\]
当然,写在一行也是可以的:
\left\{\begin{aligned}& f(x)=x^2-3x+6 \\ & g(x)=\log_2f(x)+e^x\end{aligned}\right.
矩阵环境 matrix
我们再介绍另一种特殊的「多行」公式环境——矩阵 matrix
环境。它用来生成一个数表或者说阵列。例如:
\begin{matrix}
1 & 2 & 3 & 4 \\
5 & 6 & 7 & 8
\end{matrix}
就能排出:
\[\begin{matrix} 1 & 2 & 3 & 4 \\ 5 & 6 & 7 & 8 \end{matrix}\]
配合之前提到的 \left[
和 \right]
,很容易想到矩阵的写法,就是在 matrix
环境前后用括号包住。至于行列式,则可以用 \left|
和 \right|
来包住:
\left[\begin{matrix}1&2&3&4\\ 5&6&7&8 \end{matrix}\right]
\[\left[\begin{matrix}1&2&3&4\\ 5&6&7&8 \end{matrix}\right]\]
试试打几个矩阵吧!这里再提几个「省略号」的用法,它们分别是:
横向省略号:
\cdots
即 \(\cdots\),用于水平方向的省略;纵向省略号:
\vdots
即 \(\vdots\),用于竖直方向的省略;对角省略号:
\ddots
即 \(\ddots\),一般用在矩阵中,用于斜向的省略。
到这里,本文的主要内容就已经介绍完毕了。作为一门工具,\(\LaTeX\) 公式需要在使用中熟练,各种控制序列和排版的技巧也要在使用中积累,因此本文只能起到一个「敲门砖」的作用。现在,打开一个支持 \(\LaTeX\) 的平台,试试将你所了解的数学公式变成指尖下的代码吧!
再多说一些东西
排版是一门学问,有着它自己的知识体系。而作为科技类文章中的常客,数学公式的排版也有它自己的规矩。借着这里介绍完 \(\LaTeX\) 公式的基本语法,我们再介绍一些数学公式排版的注意事项。
字形
在数学公式中会同时出现「正体字」和「斜体字」。请看下面的公式:
\[\left\{ \begin{aligned} & M=\iiint_\Omega\rho\mathrm{d}x\mathrm{d}y\mathrm{d}z \\ & \rho=1.0\ \mathrm{kg}/\mathrm{m}^3 \end{aligned} \right.\]
在上述公式中,\(M\)、\(\rho\) 和 \(x\)、\(y\) 等字母都是斜体,而 \(\mathrm{d}\)、数字和单位 \(\mathrm{kg}/\mathrm{m}^3\) 则是正体。显然,我们需要按一个规则来给这些元素合适的字形。
一个简单的原则(尽量符合国家标准 GB/T 3101 系列)是:
数字都是正体。没有特殊意义的字母,如变量 \(x\)、函数 \(f(x)\) 等都是斜体。下面提到的是「特殊意义」。
表示常用函数的字母是正体,比如三角函数 \(\sin(x)\)、对数函数 \(\log_a(b)\),指数函数 \(\exp(x)\)。在 \(\LaTeX\) 中,它们可以用
\sin
\log
\exp
打出来。如果那个函数比较少见,无法用这样的方式打出(如\arctanh
,这个控制序列会报错),用\mathrm{}
手动产生,如\mathrm{arctanh}
。如果不这么打,产生的公式如 \(sin(x)\) 是不合规的。积分算子 \(\mathrm{d}\) 是正体,用
\mathrm{d}
手动产生。自然对数的底数 \(\mathrm{e}\) 是正体,用
\mathrm{e}
手动产生,如 \(\mathrm{e}^x\)\mathrm{e}^x
。虚数单位 \(\mathrm{i}\) 是正体,用
\mathrm{i}
手动产生。单位是正体,用
\mathrm{}
手动产生公式中的字母,如 \(\mathrm{kg}/\mathrm{m}^3\)\mathrm{kg}/\mathrm{m}^3
。
数学公式中除了正体和斜体这两种常见字形,还有一些常用的其他字形,这里也一并介绍:
粗正体,用
\mathbf{}
产生。如实数集 \(\mathbf{R}\)、自然数集 \(\mathbf{N}\)。粗斜体,用
\boldsymbol{}
产生。用于向量和矩阵,如向量 \(\boldsymbol{a}\)、矩阵 \(\boldsymbol{X}\)。花体,用
\mathcal{}
产生,如 \(\mathcal{K}\)。
参考文献与书籍推荐
《科技论文写作教程》——强烈建议所有需要写作自然科学文章的同学,都仔细阅读此书。
《一份(不太)简短的 LaTeX 2e 介绍》——一份 \(\LaTeX\ 2_\varepsilon\) 入门教程。