更新时间:2019.10.02
1. 序言
当我们首次在文档中输入公式的时候,我们首先想到的是word,毕竟这是我们极为常用的三件套之一。事实上,使用word的墨迹公式(磨叽???)写一个简单的数学公式也还是比较方便的。然而,当我们需要大量输入复杂的数学公式时,用word就十分崩溃了。这一天,我终于想起一度被word所支配的恐怖和手输了一晚上数学公式的屈辱???。
为了不让噩梦重现,下面来总结一下latex这个无敌排版工具的常用用法(分成几篇来讲)。当然,学习latex不但对日后的论文科研有极大的好处,而且jupyter notebook上也支持latex的输入。
2. 命令介绍
在提及怎么进行公式输入之前,我们先了解一下latex的命令是长什么样子的。
-
无参数命令:主要是以\command的形式输入,例如
\hline
-
有n个参数命令:主要是以\command{parameter 1}{parameter 2}\(\cdots\){parameter n}的形式输入,例如
\begin{equation}
。 -
有备选参数的命令:主要是以\command[arg] {parameter 1}{parameter 2}\(\cdots\){parameter n}的形式输入,例如
\sqrt[n]{x^2 + y^2}
3. 公式输入
在latex中,有多种公式输入的方式,比如说行内公式与行间公式,又或者直接使用\begin{}
和\end{}
的命令
3.1 无编号公式
我通常使用的都是无编号公式,毕竟不是在写论文,基本都不需要对公式进行编号,而无编号公式主要分为两种输入方式。
3.1.1 行内公式
直接使用一组$
包着想要输入的内容,来具体看一个例子:
随机变量$X$的分布函数为$F(x)$,求出它的对应的密度函数$f(x)$
显示效果:
随机变量\(X\)的分布函数为\(F(x)\),求出它的对应的密度函数\(f(x)\)
3.1.2 行间公式
与行内公式稍有不同,行间公式是使用一组$$
包着想要输入的内容,来具体看一个例子:
我们熟知的勾股定理是:$$a^2 + b^2 = c^2$$
显示效果:
我们熟知的勾股定理是:$$a^2 + b^2 = c^2$$
3.2 有编号公式
有时我们在写论文的时候,要对公式进行编号标注,这时可以使用以下几种方式:
3.2.1 手动编号
比较简便的方法就是在公式里直接加上\tag{}
,其中{}
里放编号。这种方式的好处是,我们能够对编号进行多样的设置
$$a^2 + b^2 = c^2 \tag{1.1}$$
$$a^2 + b^2 = c^2 \tag{no.1}$$
显示效果:
\]
\]
3.2.2自动编号
我们可以使用\begin{equation}
和\end{equation}
进行公式输入,其中要注意的是begin和end是一组命令,要同时使用,并且编号不能够修改。
\begin{equation}
a^2 + b^2 = c^2
\end{equation}
显示效果:
\begin{equation}
a^2 + b^2 = c^2
\end{equation}
此外,在有的支持latex的编辑器中,也可以使用\label{}
来添加公式标签,使用\ref{}
来引用编号
\begin{equation}\label{eq2}
a^2 + b^2 = c^2
\end{equation}
这是第(\ref{eq2})个公式
显示效果:
\begin{equation}\label{eq2}
a^2 + b^2 = c^2
\end{equation}
这是第(\ref{eq2})的公式
3.2.3 等式对齐
当我们需要输入多个有编号的公式,并且要让它们自动对齐时,可以使用参数align
<!--不加align参数-->
\begin{equation}
x + y = 1\\\\
2x + y \neq 1\\\\
3x +4y \leq 2\\\\
4x \geq y
\end{equation}
显示效果:
\begin{equation}
x + y = 1\\
2x + y \neq 1\\
3x +4y \leq 2\\
4x \geq y
\end{equation}
-
tip1:博客园中的
\\
是代表转义后的\
,实际上,在有些编辑工具中,直接\\
就能直接换行了(像jupyter notebook),并不需要使用\\\\
-
tip2:在latex中,不等于\(\neq\)使用
$\neq$
表示,小于等于\(\leq\)使用$\leq$
表示,大于等于\(\geq\)使用$\geq$
表示 - ps:可以看到,输入的公式被看成了一个整体,并没有分别对这些公式进行编号。
<!--使用align参数-->
\begin{align}
x + y = 1\\\\
2x + y \neq 1\\\\
3x +4y \leq 2\\\\
4x \geq y
\end{align}
显示效果:
\begin{align}
x + y = 1 \\
2x + y \neq 1 \\
3x +4y \leq 2 \\
4x \geq y
\end{align}
- ps:可以看到,输入的公式被分别进行编号。
3.2.4 分开输入
当公式很长,无法在一行中显示;又或者在分步计算时,需要将公式拆分,这时可以使用split
参数
\begin{equation}
\begin{split}
(x + y)(x + 4y) & = x^2 + 4xy + xy + 4y^2\\\\
& = x^2 +5xy + 4y^2
\end{split}
\end{equation}
\begin{equation}
\begin{split}
(x + y)(x + 4y) & = x^2 + 4xy + xy + 4y^2\\
& = x^2 +5xy + 4y^2
\end{split}
\end{equation}
3.2.5 分类输入
当一个公式是分段函数时,就需要使用cases
参数
\begin{equation}
a_{i1}A_{j1} + a_{i2}A_{j2} + \cdots + a_{in}A_{jn} =
\begin{cases}
\begin{vmatrix}A\end{vmatrix},& i =j\\\\
0, & i \neq j
\end{cases}
\end{equation}
\begin{equation}
a_{i1}A_{j1} + a_{i2}A_{j2} + \cdots + a_{in}A_{jn} =
\begin{cases}
\begin{vmatrix}A\end{vmatrix},& i =j\\
0, & i \neq j
\end{cases}
\end{equation}
-
ps:如果每个情况的公式都要有编号,可以使用
numcases
参数,但是要在专门的latex套件中调用cases
宏包