如何在博客中插入数学公式

前言

我们在写理工科的博客或者笔记的时候经常需要插入公式。在word中我们可以使用公式编辑器。但是在 markdown 或者其他传统博客平台,如何插入数学公式呢?

下面有几种方法介绍给大家

LaTeX

目前在博客,或者markdown中书写数学公式,主要使用的是LaTeX

LaTeX 是一种基于TEX排版系统,由美国计算机科学莱斯利·兰伯特在20世纪80年代初期开发,利用这种格式系统的处理,即使用户没有排版和程序设计的知识也可以充分发挥由TEX所提供的强大功能,不必一一亲自去设计或校对,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学、物理文档。这个系统同样适用于生成从简单的信件到完整书籍的所有其他种类的文档。

如何在博客中插入数学公式

传统的HTML是不支持直接解析LaTeX数学公式的。我们首先要引入MathJax引擎来帮助解析。

1
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default"></script>

如果使用的是Hexo博客系统的NEXT系列主题,可以直接在配置文件中启用MathJax引擎。具体方法如下

寻找到Third Party Services Settings注释的上下文,在它下文有个MathJax Support注释段,下面就是mathjax配置字段。将enable设置为true即可。

在它下面还可以配置CDN源,也就是MathJax引擎的脚本路径。

中国大陆地区推荐使用bootcss的CDN源,地址为

1
//cdn.bootcss.com/mathjax/2.7.1/latest.js?config=TeX-AMS-MML_HTMLorMML

其他地区推荐使用cloudflare的源。

1
//cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML

这里源没有带上协议头,是为了自适应HTTPHTTPS协议。

如何以图片的方式插入数学公式

为了保证更高的兼容性,保证在某些不支持JavaScript的设备或者笔记软件内也能够正常插入数学公式,可能需要将数学公式转换成图片的方式引入。例如Wikipedia维基百科就是这样做的。

目前有两个公共服务提供在线将数学公式自动转换为图片的服务:Google Chart和forkosh

在HTML中通过直接引入img标签,src为特定的格式,他们的公共服务器会自动将公式转换成对应的图片输出。

使用Google Chart的服务器

1
<img src="http://chart.googleapis.com/chart?cht=tx&chl=在此插入Latex公式" style="border:none;">

使用forkosh服务器

1
<img src="http://www.forkosh.com/mathtex.cgi?在此处插入Latex公式">

LaTeX语法

前面我们只讲到了如何让我们的博客支持这种数学公式,实际上我们还需要了解如何书写语法,让系统解析我们的数学公式。

语法界限

LaTeX语法本质上是由普通的英文字符和标点符号组成,如何让解析器知道我当前输入的是普通的英文字符还是用于提供给公式解析器的LaTeX语法呢?我们需要语法界定符,这个语法界定符号就是美元符号 $ 。语法界定符需要在首尾都使用。

界定符号可以双写也可以单写,他们的区别是:双写会另起新的一行显示公式,单写是在行内直接显示。

1
2
$1+2=3$
$$1+2=3$$

$1+2=3$
$$
1+2=3
$$

上下标

最简单的公式就是数组的下标和次方的上标表示。

下标用下划线 _ ,上标用脱字符 ^

他们的顺序不固定,可以先写下标再写上标,也可以先写上标再写下标。

1
2
3
4
5
$x_1$

$x_1^2$

$x^2_1$

$x_1$
$x_1^2$
$x^2_1$

分组

有的时候我们的求和上标或者下标会出现不止一个数学符号,例如 -1 实际上是由负号和1组成。

我们需要使用大括号 {} ,将他们包裹起来。

1
$\int_a^{-b} f(x)dx$

$\int_a^{-b} f(x)dx$

分式

1
2
$\frac{x+y}{2}$
$\frac{1}{1+\frac{1}{2}}$

$\frac{x+y}{2}$
$\frac{1}{1+\frac{1}{2}}$

求和、积分

求和是 \sum ,积分是 \int ,后面再接上标和下标即可。

1
2
3
4
5
6
7
$\sum_{k=1}^{n}\frac{1}{k}$

$\sum_{k=1}^n\frac{1}{k}$

$\int_a^b f(x)dx$

$\int_a^b f(x)dx$

$$\sum_{k=1}^{n}\frac{1}{k}$$$\sum_{k=1}^{n}\frac{1}{k}$
$\sum_{k=1}^n\frac{1}{k}$
$\int_a^b f(x)dx$
$\int_a^b f(x)dx$
$\sum_{k=1}^n\frac{1}{k}$
$$\int_a^b f(x)dx$$
$\int_a^b f(x)dx$

其他

还有其他语法请参考下面的【参考资料】部分。我平时主要用到的就是分数,积分等等了。

参考资料