因为数学公式的写法是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公式
- 导入MathJax引擎, 在文章的任意地方加入以下代码即可:
<script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.4/MathJax.js?config=TeX-MML-AM_CHTML' async></script>
- 使用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 | $$ |
- 若把矩阵放在行内公式中,正常的矩阵会显得很大,这时可以用
\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 | \begin{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 | \begin{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 | % \usepackage{mathtools} |
更一般的公式块组合
dcases
环境毕竟非常特殊,只适用于分段函数的情形,下面介绍aligned
环境,其是一种更一般的公式组合方式。aligned
是align
环境的变体,使用方式基本一样,只是因为其本身不是数学环境,只是用来组合多个子公式的,因此可以在行间公式环境中使用。- 多个子公式组合后就相当于是一个公式了,可以被当作一个公式来对待。
- 示例
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
版权声明: 本文为原创文章,转载请注明出处