首先恭喜你看到这里。如果前面的几个文档你都认真编译过了,那么你已经可以胜任许多文档的排版工作。下面我们进入 LaTeX 最为犀利的部分。 这部分的演示中,为了节省篇幅,将取消导言区中中文支持的部分。在实际使用中,你只需要将导言区中的相关部分加上,就可以同时使用中文,并编写数学公式了——这并不冲突。 为了使用 AMS-LaTeX 提供的数学功能,我们需要在导言区加载`amsmath`宏包: ~~~ \usepackage{amsmath} ~~~ ## 数学模式 LaTeX 的数学模式有两种:行内模式 (inline) 和行间模式 (display)。前者在正文的行文中,插入数学公式;后者独立排列单独成行。 在行文中,使用`$ ... <div class="entry" style="text-align: justify; line-height: 1.6; color: rgb(85, 85, 85); font-family: 'Helvetica Neue', Helvetica, HiraginoSansGB-W3, SourceHanSansSC-Regular, SourceHanSansCN-Regular, 'Microsoft YaHei', 'WenQuanYi Micro Hei', Arial, sans-serif; font-size: 15px; background-color: rgb(222, 222, 222);"可以插入行内公式,使用`\[ ... \]`可以插入行间公式,如果需要对行间公式进行编号,可以使用`equation`环境: … > 行内公式也可以使用`\(...\)`来插入,略嫌麻烦。无编号的行间公式也可以使用`$ ... $`来插入,但是这样做会改变行文的默认行间距,不推荐。 ## 上下标 示例代码(请保存后,使用 XeLaTeX 编译,查看效果): ~~~ \documentclass{article} % % 数学环境支持 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usepackage{amsmath} \begin{document} Einstein 's $E=mc^2$. \[ E=mc^2\. \] \begin{equation} E=mc^2. \end{equation} \end{document} ~~~ 值得一提的是,行内公式和行间公式对标点的要求是不同的。行内公式的标点,应该放在数学模式的限定符之外,而行间公式则应该放在数学模式限定符之内。 在数学模式中,需要表示上标,可以使用`^`来实现(下标则是`_`)。它默认只作用于之后的一个字符,如果想对连续的几个字符起作用,请将这些字符用花括号`{}`括起来,例如: ~~~ \[ z = r\cdot e^{2\pi i}. \] ~~~ ## 根式与分式 根式用`\sqrt{·}`来表示,分式用`\frac{·}{·}`来表示(第一个参数为分子,第二个为分母)。 示例代码(请保存后,使用 XeLaTeX 编译,查看效果): ~~~ \documentclass{article} % % 数学环境支持 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usepackage{amsmath} \begin{document} $\sqrt{x}$, $\frac{1}{2}$. \[ \sqrt{x}, \] \[ \frac{1}{2}. \] \end{document} ~~~ 可以发现,在行间公式和行内公式中,分式的输出效果是有差异的。如果要强制行内模式的分式显示为行间模式的大小,可以使用`\dfrac`, 反之可以使用`\tfrac`。 ## 运算符 一些小的运算符,可以在数学模式下直接输入;另一些需要用控制序列生成,如 ~~~ \[ \pm\; \times \; \div\; \cdot\; \cap\; \cup\; \geq\; \leq\; \neq\; \approx \; \equiv \] ~~~ 连加、连乘、极限、积分等大型运算符分别用`\sum`, `\prod`, `\lim`, `\int`生成。他们的上下标在行内公式中被压缩,以适应行高。我们可以用`\limits`和`\nolimits`来强制显式地指定是否压缩这些上下标。例如: ~~~ $ \sum_{i=1}^n i\quad \prod_{i=1}^n $ $ \sum\limits _{i=1}^n i\quad \prod\limits _{i=1}^n $ \[ \lim_{x\to0}x^2 \quad \int_a^b x^2 dx \] \[ \lim\nolimits _{x\to0}x^2\quad \int\nolimits_a^b x^2 dx \] ~~~ 多重积分可以使用`\iint`, `\iiint`, `\iiiint`, `\idotsint` 等命令输入。 ~~~ \[ \iint\quad \iiint\quad \iiiint\quad \idotsint \] ~~~ ## 分隔符 各种括号用`()`, `[]`, `\{\}`, `\langle\rangle` 等命令表示;注意花括号通常用来输入命令和环境的参数,所以在数学公式中它们前面要加`\`。因为 LaTeX 中`|`和`\|`的应用过于随意,amsmath 宏包推荐用`\lvert\rvert`和`\lVert\rVert`取而代之。 为了调整这些分隔符的大小,amsmath 宏包推荐使用`\big`, `\Big`, `\bigg`, `\Bigg`放在上述括号前面调整大小。 ~~~ \[ \Bigg(\bigg(\Big(\big((x)\big)\Big)\bigg)\Bigg) \] \[ \Bigg[\bigg[\Big[\big[[x]\big]\Big]\bigg]\Bigg] \] \[ \Bigg \{\bigg \{\Big \{\big \{\{x\}\big \}\Big \}\bigg \}\Bigg\} \] \[ \Bigg\langle\bigg\langle\Big\langle\big\langle\langle x \rangle\big\rangle\Big\rangle\bigg\rangle\Bigg\rangle \] \[ \Bigg\lvert\bigg\lvert\Big\lvert\big\lvert\lvert x \rvert\big\rvert\Big\rvert\bigg\rvert\Bigg\rvert \] \[ \Bigg\lVert\bigg\lVert\Big\lVert\big\lVert\lVert x \rVert\big\rVert\Big\rVert\bigg\rVert\Bigg\rVert \] ~~~ [![](http://ww2.sinaimg.cn/large/818901c1jw1e44jk66wwfj204x0a4aa0.jpg)](https://box.kancloud.cn/2015-07-07_559b4727844d9.jpg) ## 省略号 省略号用`\dots`, `\cdots`, `\vdots`, `\ddots` 等命令表示。`\dots` 和`\cdots`的纵向位置不同,前者一般用于有下标的序列。 ~~~ \[ x_1,x_2,\dots ,x_n\quad 1,2,\cdots ,n\quad \vdots\quad \ddots \] ~~~ ## 矩阵 amsmath 的`pmatrix`, `bmatrix`, `Bmatrix`, `vmatrix`, `Vmatrix` 等环境可以在矩阵两边加上各种分隔符。 ~~~ \[ \begin{pmatrix} a&b\\c&d \end{pmatrix} \quad \begin{bmatrix} a&b\\c&d \end{bmatrix} \quad \begin{Bmatrix} a&b\\c&d \end{Bmatrix} \quad \begin{vmatrix} a&b\\c&d \end{vmatrix} \quad \begin{Vmatrix} a&b\\c&d \end{Vmatrix} \] ~~~ 效果图: [![](http://ww2.sinaimg.cn/large/818901c1jw1e44jpqbz2aj208k024744.jpg)](https://box.kancloud.cn/2015-07-07_559b4727b4154.jpg) 使用`smallmatrix`环境,可以生成行内公式的小矩阵。 ~~~ Marry has a little matrix $ ( \begin{smallmatrix} a&b\\c&d \end{smallmatrix} ) $. ~~~ 效果图: [![](http://ww3.sinaimg.cn/large/818901c1jw1e44jsd9ldbj20680200si.jpg)](https://box.kancloud.cn/2015-07-07_559b4727c9241.jpg) ## 多行公式 有的公式特别长,我们需要手动为他们换行;有几个公式是一组,我们需要将他们放在一起;还有些类似分段函数,我们需要给它加上一个左边的花括号。 ### 长公式 #### 不对齐 无须对齐的长公式可以使用`multline`环境。 ~~~ \begin{multline} x = a+b+c+{} \\ d+e+f+g \end{multline} ~~~ 效果: [![](http://ww2.sinaimg.cn/large/818901c1jw1e44jzfychej20dv02sjr6.jpg)](https://box.kancloud.cn/2015-07-07_559b4727ddce6.jpg) 如果不需要编号,可以使用`multiline*`环境代替。 #### 对齐 需要对齐的公式,可以使用`aligned`_次环境_来实现,它必须包含在数学环境之内。 ~~~ \[\begin{aligned} x ={}& a+b+c+{} \\ &d+e+f+g \end{aligned}\] ~~~ 效果图: [![](http://ww3.sinaimg.cn/large/818901c1jw1e44k2acde4j205g02ft8h.jpg)](https://box.kancloud.cn/2015-07-07_559b4727f2d5c.jpg) ### 公式组 无需对齐的公式组可以使用`gather`环境,需要对齐的公式组可以使用`aligned`环境。他们都带有编号,如果不需要编号可以使用带星花的版本。 ~~~ \begin{gather} a = b+c+d \\ x = y+z \end{gather} \begin{align} a &= b+c+d \\ x &= y+z \end{align} ~~~ 效果: [![](http://ww4.sinaimg.cn/large/818901c1jw1e44k5od3xaj209u04lweb.jpg)](https://box.kancloud.cn/2015-07-07_559b47282be3c.jpg) ### 分段函数 分段函数可以用`cases`次环境来实现,它必须包含在数学环境之内。 ~~~ \[ y=\ begin{cases} -x,\quad x\leq 0 \\ x,\quad x>0 \end{cases} \] ~~~ 效果图: [![](http://ww1.sinaimg.cn/large/818901c1jw1e44k7zto1wj205o01pt8i.jpg)](https://box.kancloud.cn/2015-07-07_559b472859954.jpg)