因为数学公式的写法是LaTeX非常重要的一部分内容,而且相对比较独立,因此将这部分单独整理为一篇博客,也方便日后进行查阅。

基本概念

行内公式与行间公式

  • 行内公式:两个美元符号扩起来$ 公式 $,或者\( 公式 \)
  • 行间公式:
    • 不带编号的写法:两对美元符号扩起来$$ 公式 $$,或者\[ 公式 \]
    • 带自动编号的写法:\begin{equation} 公式 \end{equation}

amsmath宏包

LaTeX排版数学公式最常用的即为amsmath宏包,其是由美国数学学会AMS(American mathematical society)设计开发的。
若无特别说明,下文中的所有介绍都是基于amsmath宏包的。
一般常用的数学宏包:\usepackage{amsmath, amssymb, mathtools}

数学模式

  • 数学模式中空格会被忽略(也不能输入单独的空行),也不能直接输入汉字,若要输入汉字需要使用\text命令,如$a+b=3 \text{加法}$
  • 因为空格不显示,所以多个公式字母排列时,每个都需要加入数学模式,如$a$, $b$, $c$, $d$

在markdown中使用LaTex公式

  1. 导入MathJax引擎, 在文章的任意地方加入以下代码即可:
    <script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-MML-AM_CHTML' async></script>
  2. 使用LaTex语法写公式。
  • 注1:MathJax引擎本质是一个js脚本,把页面中的LaTex代码翻译成数学公式。
  • 注2:工作流程:Markdown先把代码按Markdown语法翻译一遍,因此一些\和特殊字符的组合,要对反斜杠进行转义,如\\{;之后再由js脚本对翻译为数学公式。
  • 注3:这个脚本只能识别\( 公式 \)形式的行内公式,且需要写成\\( 公式 \\)形式。因为markdown中\也是转义符,因此需要两个斜杠\\来表达反斜杠的本身含义。
  • 注4:markdown中使用LaTex,若使用了A_{xxx}这种复合下标(下划线和花括号连用),且前面的公式还出现了下划线,公式就会出错。
    原因:markdown将两个下划线作为斜体符号进行了翻译,公式就无法正常解析了。
    解决:在两个下划线前分别加反斜杠,\_,对下划线进行转义。

数学公式结构

在这一节中介绍一些数学公式的常用结构,这些结构构成了数学公式的整体骨架,而如何填充这些骨架(使用各种数学符号)则会在下一节中介绍。

上标和下标

  • ^表示上标,_表示下标,默认将这两个符号后的第一个字母作为上/下标,如果上下标有多个字母,则要用{}括起来。
    如:z_{i+2} = x^{k+2}+y_2
    $$z_{i+2} = x^{k+2}+y_2$$
  • 上下标同时出现时,先后次序并不重要,二者不互相影响。

上划线与花括号

  • 短上划线:\bar{A},\(\bar{A}\),通常用于大写字母的上划线(用\overline会很长)。
  • 上划线:\overline{a+b}=\overline{a}+\overline{b}, \(\overline{a+b}=\overline{a}+\overline{b}\)
  • 上箭头:\overrightarrow{AB}, \(\overrightarrow{AB}\)
  • 上、下花括号:\overbrace{a_0, a_1, \dots, a_n}^{\text{共 $n+1$ 项}}, \(\overbrace{a_0, a_1, \dots, a_n}^{\text{共 $n+1$ 项}}\),可通过上标来作标注。
    下花括号:\underbrace{}

矩阵

各种矩阵形式

  • amsmath提供了一系列矩阵命令,对应于矩阵相关的各种表现形式,如下所示:

各种矩阵形式

  • 矩阵中不同的列使用&分隔,不同的行使用\\分隔
    $$
    \begin{pmatrix}
    1 & 2 & 3 \\
    4 & 5 & 6 \\
    7 & 8 & 9
    \end{pmatrix}
    $$
1
2
3
4
5
6
7
$$
\begin{pmatrix}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9
\end{pmatrix}
$$
  • 若把矩阵放在行内公式中,正常的矩阵会显得很大,这时可以用\smallmatrix环境,只是其不在矩阵外面加括号,需要手动加上。示例:

行内矩阵

矩阵中的省略号

  • 矩阵中常用的省略号有:\cdots横向点,\vdots竖向点,\ddtots斜向点。
  • 示例
    $$
    \begin{pmatrix}
    a_{11} & \cdots & a_{1n} \\
    & \ddots & \vdots \\
    0 & & a_{nn}
    \end{pmatrix}_{n\times n}
    $$
    1
    2
    3
    4
    5
    6
    7
    $$
    \begin{pmatrix}
    a_{11} & \cdots & a_{1n} \\
    & \ddots & \vdots \\
    0 & & a_{nn}
    \end{pmatrix}_{n\times n}
    $$

分块矩阵

需要用到横线来分隔矩阵的各个部分,使用array环境,参考刘海洋书5.1节。

数学符号

数学公式中符号可大致分为五大类:字母符号、数学算子、二元运算符与关系符、括号与定界符、标点。下面来分别介绍:

字母符号

  • 字母是数学公式中的最基本内容,可以输入的有拉丁字母(\(A、B、c、d\)等)和希腊字母(\(\alpha, \beta, \Delta, \Theta\))等。
  • 希腊字母直接用\字母名即可,如\alpha为\(\alpha\),\beta为\(\beta\),\theta为\(\theta\)

  • 公式中的字母默认是斜体显示,但一些常量规定用直立罗马体显示,命令为\mathrm{}
    包括:圆周率pi,自然对数的底 e,微分符号 d,虚数单位 i
    可定义新命令来简化公式:\newcommand{\mpi}{mathrm{\pi}}

  • 空集:\varnothing \(\varnothing\)

  • 大写字母的黑板粗体显示:\(\mathbb{R}\), \(\mathbb{N}\), \(\mathbb{X}\)
    使用amssymb宏包,命令为\mathbb{R}

  • 希伯来字母:\aleph:\(\aleph\)

  • 附:希腊字母表

数学算子

数学算子按显示形式,大致可以分为两类,一类为大小会随着行间公式&行内公式而改变的,称为巨算子(large operator),如求和\(\sum\)、积分\(\int\);一类则是普通的数学算子。

积分符号

因为积分符号有较多的格式要求,因此单独拿出来说。

  • 积分号要求正体显示
  • 积分号前与被积函数要留一定间隔,通过\,来实现
  • 单个积分符号上下限放角标位置(默认格式),多重积分有时则需要放在上下限的位置(\limits命令设置)
    1
    2
    3
    \newcommand{\diff}{\mathrm{d}}
    \int_a^b f(x) \, \diff x % 单个积分
    \iint_\limits{0<x,y<1}f(x,y) \, \diff x \diff y % 多重积分

$$
\newcommand{\diff}{\mathrm{d}}
\int_a^b f(x) \, \diff x \\
\iint_\limits{0<x,y<1}f(x,y) \, \diff x \diff y
$$

一些文字名称的算子

通常为各种函数名,这类算子也需要正体显示。

自定义算子

在概率论中,期望E()、方差Var()函数需要正体显示为算子,但默认没有定义,这里我们可以单独将其进行定义。
\DeclareMathOperator定义不带上下限的算子,\DeclareMathOperator*定义带上下限的算子。

1
2
3
% 导言区定义
\DeclareMathOperator{\var}{Var}
\DeclareMathOperator{\E}{E}

二元运算符与关系符

常用二元运算符:

可直接从键盘输入的二元运算符有:+ - * / = > < :,其他常用运算符

名称 公式 效果
\times(叉乘)或\cdot(点乘) \(a\times b\), \(a\cdot b\)
\div/ \(a\div b\), \(a/b\)
小于等于 \leq \(a \leq b\)
大于等于 \geq \(a \geq b\)
属于/不属于 \in \notin \(a \in S\)
包含于/真包含于 \subset \subseteq \(A \subset B\)

括号与定界符

LaTeX中常用括号如下:

名称 公式 效果
圆括号() ( ) \(a)\)
方括号[] [ ] \([a]\)
花括号 \{ \} \(\{a\}\)
  • 竖线 | :可以直接使用|,也可以使用\lvert a \rvert组合表示,\(\lvert a \rvert\)
    双竖线:表示范数,\lVert a \rVert,\(\lVert a \rVert\)
    可以定义新的命令来简化表示

    1
    2
    3
    4
    $$
    \newcommand{\abs[1]}{\lvert #1 \rvert} % 导言区定义
    \abs{x+y} \le \abs{x} + \abs{y}
    $$
  • 定界符
    定界符(delimeter)意思是标识内容起始、终止的符号,在LaTeX中各种括号以及竖线|都是定界符
    定界符的一个特性是其大小可随着所标识内容的大小而改变。

  • 大小可变的定界符:
    使用\left\right命令可使得定界符按中间内容的大小来改变,命令格式为\left open-delimeter 内容 \right end-delimeter
    两边的定界符无需保持一致,eg. 可以一边是(另一边是]表示半开半闭区间。
    \left\right必须成对出现,如果只有一边需要定界符(如左边),可用\right .(在右边加句号)表示空的定界符。

    1
    2
    3
    $$
    \left. \int_0^xf(t) \, \mathrm{d}t \right \vert_{x=1}
    $$

$$
\left. \int_0^xf(t) \, \mathrm{d}t \right \vert_{x=1}
$$

  • 此外还可通过\middle命令来为\left\right的中间加入一个可变大小的定界符。

标点符号

常用标点符号

公式中常用的标点符号如下,都可以通过英文键盘直接输入

省略号

省略号类型 命令 效果
通用省略号 \dots \(\dots\)
横向、圆点在底部 \ldots \(1,2,\dots ,n\)
横向、圆点在中间 \cdots \(1+2+\cdots +n\)
纵向圆点 \vdots \(\vdots\)
斜向圆点 \ddots \(\ddots\)
  • \ldots位置较低,多用于逗号之间,如\(1,2,\dots ,n\)
    \cdots位置较高,用于运算符之间,如\(1+2+\cdots +n\)
    大体原则是省略号与前后符号高度一致,使用amsmath,可使用\dots命令,其可自动根据周围来调整省略号高度,使用正确的省略号。

其他符号总结

名称 LaTex语法 示例
分数 \frac {a} {b} \(\frac {a} {b}\)
求导符号 即为单引号' \(a_0’=a_0’’\)
平方根 \sqrt{a*x+b} \(\sqrt{a*x+b}\)
n次方根 \sqrt[n]{a*x+b} \(\sqrt[n]{a*x+b}\)
极限 \lim_{n \rightarrow 0} (\sin{x} / x) \(\lim_{n \rightarrow 0} (\sin{x} / x)\)
求和 \sum_{i=0}^n i \(\sum_{i=0}^n i\)
求积/连乘 \prod_{i=0}^n i \(\prod_{i=0}^n i\)
偏微分算子 \partial \(\partial\)
梯度算子 \nabla \(\nabla\)
Laplace算子 \Delta \(\Delta\)
向量符号 \vec{a} \(\vec{a}\)
二项式系数 \binom nk \(\binom nk\)
角度符号 ^{\circ} \(90^{\circ}\)
加帽 \hat a \(\hat a\)(a帽)
  • 求和、连乘符号的多行下标显示:
    1
    \sum_{\substack{0<i<10 \\ 10<j<15}} A_{ij}

多行公式

对于行间公式$$ xxx $$,空格会被忽略,也不允许出现单独的空行,换行符\\也不起作用,因此如果要输入多行公式的话必须使用其他的环境。

罗列多个公式

  • 最常用的情形即将多个公式摆在一起,因为正常公式中不能换行,因此可使用begin{align}环境,在align环境中允许通过换行符\\来进行换行。
  • align环境本身就是数学环境(类似equation环境),表示行间公式,因此外面就不能再重复写$$ $$了。
  • align环境中各公式默认居中对齐,但也使用&符号进行分组对齐。
  • \notag命令使得该行公式不进行编号,适合连等公式的情形(只有最后一行公式需要编号)。

公式举例

  • &符号一般放在等号=前面,来保证正确的对齐间距
    $$
    \begin{align}
    x &= t + \cos t +1 \\
    y &= 2\sin t
    \end{align}
    $$

    1
    2
    3
    4
    \begin{align}
    x &= t + \cos t +1 \\
    y &= 2\sin t
    \end{align}
  • 如何在不影响公式对齐的情况下插入文字:mathtools宏包的 \shortintertext命令

1
2
3
4
5
\begin{align}
x^2+2x &= -1 \\
\shortintertext{移项得}
x^2+2x+1 &= 0
\end{align}

  • 如何排版连等公式:使用空分组来使空白处对齐
    注:连等公式只需要一个标号即可。
    1
    2
    3
    4
    5
    \begin{align}
    x &= (a+b)(a^2-ab+b^2) \notag \\
    &= a^3-a^2b+ab^2+a^2-ab^2+b^3 \\ % 只在这一行进行公式编号
    &= a^3+b^3 \notag
    \end{align}

  • 如何进行子公式编号:\begin{subequations}环境
    subequations环境中的子公式会共用一个数字主编号,里面再使用字母进行子公式编号。
    subequations环境中的主公式和子公式都可进行label设定标签。
1
2
3
4
5
6
7
\begin{subequations}
\begin{align}
x &= t + \cos t +1 \\
y &= 2\sin t \\
z &= 6\cos t
\end{align}
\end{subequations}

align环境中&的对齐方式

  • 假设有n个&,会将一行分为n+1列,从左向右两个列分为一组(如1、2列为一组,3、4列为一组…,若有奇数列,则最后一列单独为一组)。每一行的&数量要保证相同,否则对齐格式会乱。
  • 首先明确,LaTex对齐方式包括组内对齐和组间对齐。
    • 组内对齐:两列一组,在组内部,第一列向右对齐,第二列向左对齐,即两列在所在位置上向中间对齐。
    • 组间对齐:首先,不同行的对应组会根据组的中线进行对齐,因为每行组数是一样的,因此为保证组的中线在同一位置,会统一固定组的长度,因此若公式较短就会出现空白。
  • 其次在中线对齐的基础上,第一组会紧靠页左侧,最后一组则紧靠页右侧,紧靠页左/右侧就是将最长的一组紧靠上去,也就是说对于长度不一样的行,较短的那一行是靠不上去的(因为首先要保证组的中线对齐)。

如何组合多个公式

有时我们需要将多个公式组合为一个大公式块,然后对整个公式块进行一定的操作,这时就不能使用换行公式的写法了(因为align本身就是数学环境了,其外不能再嵌套一层数学环境)。

分段函数(条件函数)的表示

  • 对于分段函数,可使用cases环境和mathtools宏包提供的dcases环境,推荐使用后者,公式的字号会更小一点,显得更紧凑。
  • dcases的效果是将多个子公式合成一个大公式块,公式中使用&分隔值和后面的操作,最后再在公式块前加上花括号。
  • 示例
    $$
    f(x)=
    \begin{cases}
    x^2+3, & x<3 \\
    x^3+2, & x\geq3
    \end{cases}
    $$
1
2
3
4
5
6
7
8
% \usepackage{mathtools}
$$
f(x)=
\begin{dcases}
x^2+3, & x<3 \\\\
x^3+2, & x\geq3
\end{dcases}
$$

更一般的公式块组合

  • dcases环境毕竟非常特殊,只适用于分段函数的情形,下面介绍aligned环境,其是一种更一般的公式组合方式。
  • alignedalign环境的变体,使用方式基本一样,只是因为其本身不是数学环境,只是用来组合多个子公式的,因此可以在行间公式环境中使用。
  • 多个子公式组合后就相当于是一个公式了,可以被当作一个公式来对待。
  • 示例
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $$
    \begin{aligned}
    x+y+z &= 10 \\
    x+y &= -1
    \end{aligned}
    \implies
    \begin{aligned}
    xy &= 2 \\
    z &= 3
    \end{aligned}
    $$

$$
\begin{aligned}
x+y+z &= 10 \\
x+y &= -1
\end{aligned}
\implies
\begin{aligned}
xy &= 2 \\
z &= 3
\end{aligned}
$$


Post Date: 2018-01-19

版权声明: 本文为原创文章,转载请注明出处