「安利」使用 LaTeX 编辑数学公式

  优雅地展示数学公式

Posted by StandHR on August 21, 2018
View times

1. 前言

在网页或者书本上,我们经常会看到很多排版优美的数学公式。可是目前已有的公式编辑器,要么使用方法复杂,要么功能过于简陋,总是很难满足我们的需求。于是当我们需要插入公式时,往往直接通过截图这种简单粗暴的方法来解决。

LaTeX 是一个非常强大的排版工具,通过各种 package 资源几乎能构造出你需要的任何效果,编辑数学公式更不在话下。本文将介绍如何使用 LaTeX 来编辑数学公式,只会使用到 LaTeX 最基础的语法,即使你从未接触过 LaTeX 也可以轻松上手。

通过本文,你将知道:

  • 数学符号的表示和数学公式的构造
  • 数学公式的排版
  • 使用 MathJax 引擎在网页上显示公式

2. 基础知识

LaTeX 的数学模式有两种:行内模式(inline)和行间模式(display)。前者在正文的行文中,插入数学公式;后者独立排列单独成行,并自动居中。在行文中,使用 $ ... $ 可以插入行内公式,使用 $$ ... $$ 可以插入行间公式。

行内公式也可以使用 \(...\) 或者 \begin{math} ... \end{math} 来插入。 行间公式也可以使用\[ ... \]  或者 \begin{displaymath} ... \end{displaymath} 来插入。

LaTeX 中最常用的特殊符号是 {}\{} 会把包含在中间的元素看成一个整体,\ 后面则接一些字母用来表示符号。

例如 \alpha 表示罗马符号 $\alpha$,\in 表示集合属于符号 $\in$。

还有一些数学结构需要结合使用 {}\,例如 \frac{a-1}{2} 表示 $\frac{a-1}{2}$,\sqrt{a+b} 表示 $\sqrt{a+b}$。

上标 ^ 和下标 _ 也是使用非常频繁的两个符号,例如 a^3 表示 $a^3$,a_1 表示 $a_1$。也可以和其他符号结合使用,例如 \sum_{i=1}^{10} 表示 $\sum_{i=1}^{10}$。

3. 基本数学符号

3.1 强调模式

强调模式是指在基础符号上加一些修饰符,常用的模式有:

除此以外,加粗斜体等也是常用的字体效果:

除了 $\text{\vec{}}$ 可以表示向量,使用更为普遍的是:

3.2 希腊字母

3.3 二元运算

3.4 关系运算

3.5 大尺寸运算符

3.6 箭头符号

3.7 分隔符号

你还可以使用 \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\}

3.8 杂类符号

3.9 曲线函数符号

3.10 数学字母

4. 数学公式的构造

数学公式一般包含一定的数学结构,例如分号、开根号等等,LaTeX 也提供了相应的符号:

下面我们使用上面的结构,构造一些简单的数学公式

x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}
\dbinom{n}{r}=\binom{n}{n-r}=C^n_r=C^n_{n-r}
\begin{matrix} \int_{-N}^{N} e^x\, dx\end{matrix}
y_{MAP}=\mathop{\arg\max}_Y P(Y \mid X)

5. 数学公式的排版

5.1 矩阵

最常见的排版就是矩阵(LaTeX 使用 \\ 换行):

\begin{matrix} x&y\\z&v \end{matrix}
\begin{vmatrix} x&y\\z&v \end{vmatrix}
\begin{bmatrix} x&y\\z&v \end{bmatrix}
\begin{pmatrix} x&y\\z&v \end{pmatrix}

5.2 分段函数

分段函数可以用 cases 来实现:

y=\begin{cases}
-x,& x\leq 0 \\
x,& x>0
\end{cases}

5.3 对齐

需要对齐的公式,可以使用 align 来实现,对齐则使用 & 来实现。

\begin{align}
x = a&+b+c+ \\
d&+e+f+g
\end{align}

5.4 公式组

无需对齐的公式组可以使用 gather 环境,需要对齐的公式组可以使用 align 环境。

\begin{gather}
a = b+c+d \\
x = y+z
\end{gather}
\begin{align}
a &= b+c+d \\
x &= y+z
\end{align}

6. 使用 MathJax 引擎在网页上显示公式

MathJax 是一个 javaScript 引擎,用来在网页上显示数学公式。无论是使用 LaTeX、MathML 或者 AsciiMath 符号,这些公式都会被 javascript 处理为 HTML、SVG 或者 MathML 符号。

在网页中使用 MathJax 来渲染 LaTeX 公式非常简单,只需要在网页中引入 MathJax 的 js 脚本:

<script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML' async></script>

当然,你也可以加载国内 Bootstrap 中文网提供的免费 CDN 服务。

上面的代码使用默认配置来使用 MathJax 引擎,解析行间公式使用 $$...$$ 或者 \[...\],行内公式则是 \(...\)。我们也可以自定义 MathJax 引擎的配置,例如我们可以为行内公式添加解析符 $...$

<script type="text/x-mathjax-config">
MathJax.Hub.Config({
  tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}
});
</script>

7.小工具

你难免会遇到忘记或不知道公式对应的LaTeX表达式,这时候可以到这个 Math 网站上绘制公式,网站会在一旁生成对应表达式。

Mac系统自带的Grapher软件也可以方便的输入数学公式,得到你的公式后,在编辑栏右键菜单会有拷贝LaTeX表达式选项。

Have a good Time!

参考