首先恭喜你看到这里。如果前面的几个文档你都认真编译过了,那么你已经可以胜任许多文档的排版工作。下面我们进入 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}
egin{document}
Einstein "s $E=mc^2$.
[ E=mc^2. ]
egin{equation}
E=mc^2.
end{equation}
end{document}
值得一提的是,行内公式和行间公式对标点的要求是不同的。行内公式的标点,应该放在数学模式的限定符之外,而行间公式则应该放在数学模式限定符之内。
在数学模式中,需要表示上标,可以使用^
来实现(下标则是_
)。它默认只作用于之后的一个字符,如果想对连续的几个字符起作用,请将这些字符用花括号{}
括起来,例如:
[ z = rcdot e^{2pi i}. ]
根式与分式
根式用sqrt{·}
来表示,分式用frac{·}{·}
来表示(第一个参数为分子,第二个为分母)。
示例代码(请保存后,使用 XeLaTeX 编译,查看效果):
documentclass{article}
%
% 数学环境支持
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
usepackage{amsmath}
egin{document}
$sqrt{x}$, $frac{1}{2}$.
[ sqrt{x}, ]
[ frac{1}{2}. ]
end{document}
可以发现,在行间公式和行内公式中,分式的输出效果是有差异的。如果要强制行内模式的分式显示为行间模式的大小,可以使用dfrac
, 反之可以使用 frac
。
运算符
一些小的运算符,可以在数学模式下直接输入;另一些需要用控制序列生成,如
[ pm; imes ; div; cdot; cap; cup;
geq; leq;
eq; approx ; equiv ]
连加、连乘、极限、积分等大型运算符分别用sum
, prod
, lim
, int
生成。他们的上下标在行内公式中被压缩,以适应行高。我们可以用limits
和
olimits
来强制显式地指定是否压缩这些上下标。例如:
$ sum_{i=1}^n iquad prod_{i=1}^n $
$ sumlimits _{i=1}^n iquad prodlimits _{i=1}^n $
[ lim_{x o0}x^2 quad int_a^b x^2 dx ]
[ lim
olimits _{x o0}x^2quad int
olimits_a^b x^2 dx ]
多重积分可以使用iint
, iiint
, iiiint
, idotsint
等命令输入。
[ iintquad iiintquad iiiintquad idotsint ]
分隔符
各种括号用()
, []
, {}
, langle
angle
等命令表示;注意花括号通常用来输入命令和环境的参数,所以在数学公式中它们前面要加。因为 LaTeX 中
|
和|
的应用过于随意,amsmath 宏包推荐用lvert
vert
和lVert
Vert
取而代之。
为了调整这些分隔符的大小,amsmath 宏包推荐使用ig
, Big
, igg
, Bigg
放在上述括号前面调整大小。
[ Bigg(igg(Big(ig((x)ig)Big)igg)Bigg) ]
[ Bigg[igg[Big[ig[[x]ig]Big]igg]Bigg] ]
[ Bigg {igg {Big {ig {{x}ig }Big }igg }Bigg} ]
[ BigglangleigglangleBiglangleiglanglelangle x
angleig
angleBig
angleigg
angleBigg
angle ]
[ BigglvertigglvertBiglvertiglvertlvert x
vertig
vertBig
vertigg
vertBigg
vert ]
[ BigglVertigglVertBiglVertiglVertlVert x
Vertig
VertBig
Vertigg
VertBigg
Vert ]
省略号
省略号用dots
, cdots
, vdots
, ddots
等命令表示。dots
和cdots
的纵向位置不同,前者一般用于有下标的序列。
[ x_1,x_2,dots ,x_nquad 1,2,cdots ,nquad
vdotsquad ddots ]
矩阵
amsmath 的pmatrix
, bmatrix
, Bmatrix
, vmatrix
, Vmatrix
等环境可以在矩阵两边加上各种分隔符。
[ egin{pmatrix} a&bc&d end{pmatrix} quad
egin{bmatrix} a&bc&d end{bmatrix} quad
egin{Bmatrix} a&bc&d end{Bmatrix} quad
egin{vmatrix} a&bc&d end{vmatrix} quad
egin{Vmatrix} a&bc&d end{Vmatrix} ]
效果图:
使用smallmatrix
环境,可以生成行内公式的小矩阵。
Marry has a little matrix $ ( egin{smallmatrix} a&bc&d end{smallmatrix} ) $.
效果图:
多行公式
有的公式特别长,我们需要手动为他们换行;有几个公式是一组,我们需要将他们放在一起;还有些类似分段函数,我们需要给它加上一个左边的花括号。
长公式
不对齐
无须对齐的长公式可以使用multline
环境。
egin{multline}
x = a+b+c+{}
d+e+f+g
end{multline}
效果:
如果不需要编号,可以使用multiline*
环境代替。
对齐
需要对齐的公式,可以使用aligned
_次环境_来实现,它必须包含在数学环境之内。
[egin{aligned}
x ={}& a+b+c+{}
&d+e+f+g
end{aligned}]
效果图:
公式组
无需对齐的公式组可以使用gather
环境,需要对齐的公式组可以使用aligned
环境。他们都带有编号,如果不需要编号可以使用带星花的版本。
egin{gather}
a = b+c+d
x = y+z
end{gather}
egin{align}
a &= b+c+d
x &= y+z
end{align}
效果:
分段函数
分段函数可以用cases
次环境来实现,它必须包含在数学环境之内。
[ y= begin{cases}
-x,quad xleq 0
x,quad x>0
end{cases} ]
效果图: