LaTeX 第五课:数学公式排版

本文同时发布于微信公众号:两个少年的奇幻漂流(ID:Amazing_Adventure)

本期的主要内容是数学公式的排版,包含以下内容:

  • 行内公式与行间公式
  • 数学结构的输入
  • 数学符号的输入
  • 多行公式排版

数学公式的排版是 LaTeX 的看家本领,下面我们就来看看吧!

---

行内公式与行间公式

大家在阅读数学书籍的时候都会看到,有些公式是和正文嵌套在一起的,有的则单独成段。比如下面这个样子:

两行正文中都嵌套有公式,同时还有一个大型的积分计算和概率密度函数。前者就是行内公式(inline equation),后者则是行间公式(displayed equation)。因为有的数学符号非常大,比如求和、积分等,或者需要表现的内容比较复杂,如上图中的概率密度函数,所以我们经常需要用单独的公式环境来处理大型的数学公式。在数学模式下,符号会使用单独的字体,符号之间的间距也和一般的文字排版不同。因此只要是排版公式,就一定要用数学模式来排版。下面的例子表现了数学模式的不同:

对于行文中出现的行内公式,我们用两个“$”来把公式的内容包起来,这样就会以公式的形式呈现。比如上图中的例子,只需要用 $a+b=b+a$ 就可以得到第二行中数学模式的效果。

在数学模式中,所有的字母都会被认为是分离的变量,一般会用意大利体来表示,字母间的间距也会相对更大一些。因此如果你想在公式环境中加入文字,要把文字用 \text{公式中的文字} 来表示(需要调用 amsmath 宏包),这样就会正常地排版文字。

对于最基本的行间公式,可以用 “\[” 和 “\]” 包围起来实现。比如下面这个例子:

这其实是一个行间公式环境,会生成一个不编号的公式。LaTeX 也提供了 equation 环境来排版带编号的公式,例子如下:

这样的公式可以加上标签来进行交叉引用,打标签的方法和引用章节相同,引用的时候则需要用 \eqref 命令,例子如下:

---

数学结构的输入

我们知道,数学公式不是简单地把符号水平拼接在一起,而是要经过特别方式进行组合,称之为数学结构。在数学模式下,空格都是不起实际作用的,但它可以让公式代码更好看一些。下面我们介绍一些基本的数学结构。

上标与下标。这是数学模式中最常见的结构。在数学模式下,用“_”表示下标,用“^”表示上标。如果上标或下标的内容多于一个字符,需要用大括号括起来,否则上下标效果将只对第一个字符起作用。例子如下:

对于求和符号等大型运算符,它们的上下标通常在符号的正上方和正下方。如果对积分这样的运算符(一般上下标都在右上角和右下角)需要手动把上下标移动到正下方或正上方的话,需要用 \limits 命令。例子如下:

分式。排版分式使用的命令是 \frac{分子}{分母}。如果分子或者分母只有一个字符,也可以省略大括号。例子如下:

根式。排版根式的基本命令是 \sqrt 。将被开方的式子作为它的参数就可以了。另外这个命令还可以有一个选项,表示开几次方。我们用下面这个例子来说明其用法。

矩阵。排版矩阵需要使用矩阵环境。 amsmath 宏包为我们提供了多个排版矩阵的环境,其区别主要是用什么包围矩阵。列举如下:

  • matrix:无
  • bmatrix:方括号
  • vmatrix:竖线
  • pmatrix:圆括号
  • Bmatrix:花括号
  • Vmatrix:双竖线

在排版矩阵中的元素时,需要用 & 符号作为对齐的标志,并用 \\ 表示换行。举例如下:

---

数学符号

首先要跟大家说明的是数学模式中的文字规范。在数学公式中,只有变量才使用意大利体。而数学常数 e、i,微分符号 d,函数名 sin、cos、log、ln 等都需要用罗马正体来表示。另外表示数集的字母 R、C、Q、N 等,需要用空心字体来表示。还有一些特殊的花体,使用场合比较有限,大家可以查阅相关的资料和书籍来了解使用方式。

一般的拉丁字母大家都可以方便地用键盘输入。而数学中常用的希腊字母就不太好用美式键盘输入了。在 LaTeX 中输入小写希腊字母时,只需要用反斜杠加上字母的读音就可以输入相应的希腊字母了。比如用 \alpha 输入 α,用 \beta 输入 β 等。对应的大写字母只需要将读音的首字母大写即可(LaTeX 中提供的大写希腊字母只有11个,不过已经够用了)。通常我们还会用到希伯来字母 א,可以用 \aleph 来输入。

对于特殊的符号,我们在这里作一个简单的列举,大家可以自己在电脑上尝试输入一下。

  • 普朗克常数,\hbar
  • 无穷符号,\infty
  • 空集符号,\emptyset(也可以调用 amssymb 宏包后使用 \varnothing)
  • 偏微分符号,\partial
  • 积分符号,\int,\iint,\iiint,\iiiint,分别对应一重、二重、三重、四重积分;更多重积分可以用 \idotsint
  • 环路积分符号,\oint
  • 求和符号,\sum
  • 求积符号,\prod
  • 交集符号,\cap;并集符号,\cup
  • 乘号,\times;除号,\div
  • 不等号,\neq;小于等于,\leq;大于等于,\geq;
  • 属于,\in;

另外还有很多函数名,应该用罗马正体书写的,都可以用反斜杠加函数名来实现。比如 \sin,\cos,\log,\ln。还有一些算子也需要这样实现,如 \lim,\max、\min、\gcd 等。

数学符号实在是太多了,变化也十分多样,以上只是一些非常基本的符号,篇幅所限没有办法囊括更多。大家可以去看《LaTeX 入门》的第四章了解更多数学符号的输入方式。对于一般的使用而言,上面的这些应该已经足够了。

---

多行公式排版

大家如果自己尝试了 equation 环境就会发现,在这个环境中是没有办法换行的。那么我们遇到特别长的公式或者方程组之类的公式,equation 环境就无能为力了。这个时候我们就需要运用多行公式的排版技巧。

如果是简单的多个公式的堆积,我们可以用 gather 和 align 环境。gather 环境中,所有的公式都是居中的;而 align 环境可以用 & 符号指定位置对齐(比如按等号对齐)。两个环境都默认编号,例子如下:

如果我们是要把一个公式拆分成多行来书写,并给出一个单独的编号,那么上面的两个环境就不那么适用了。在这里为大家介绍 split 环境。split 环境需要嵌套在 equation 环境中使用,也支持像 align 环境中那样的对齐方式(但不能多列对齐),举例如下:

还有一种情况,是我们想把多个公式组合成一个大的公式,这时候我们就要用到另外的一些技巧了。最典型的例子就是本文开始的地方展示的概率密度函数了。我们在这里需要用到 cases 环境。我们来看看刚才那个函数的代码。

cases 环境有一个重大的缺陷,就是在每个 case 中,公式都会被变成行内公式。所以在这里我们用 \dfrac 命令来强制让分式变成行间公式。如果我们想简单地解决这个问题,就需要使用 mathtools 宏包定义的 dcases 环境,用法和 cases 完全相同,但是可以以行间公式的形式来排版每个 case。

---

数学公式的排版非常繁杂,我只能在这挂一漏万地介绍最基本的一点知识。如果想对公式进行更细致的调整和定制,大家可以去查阅一些文档或者用 Google 搜索。下期我们将介绍图表的排版,敬请期待!


欢迎关注我们⬇️

weixin.qq.com/r/rzlIUCT (二维码自动识别)

编辑于 2016-12-22

文章被以下专栏收录