Hexo使用hexo-math插件支持MathJax

MathJax是使用LaTeX方式输入数学公式的好工具。Hexo虽然可以直接使用mathjax,但是存在一些不方便之处。使用hexo-math这个插件可以大大方便使用。
使用Hexo 3.2.0,主题NexT 5.0.1,hexo-math 3.0.0安装方式如下

在hexo安装目录下执行

1
npm install hexo-math --save

然后编辑站点根目录下的_config.yml,添加

1
2
3
4
5
6
math:
engine: 'mathjax' # or 'katex'
mathjax:
src: custom_mathjax_source
config:
# MathJax config

之后进入theme的目录,编辑主题的_config.yml,找到mathjax字段。NexT 5.0.1中默认mathjax是禁用,需要改成

1
2
mathjax:
enable: true

最后hexo g,就可以部署或者运行server查看效果了。


几个测试例子
使用$的一行代码:

1
Simple inline $a = b + c$.

Simple inline $a = b + c$.

使用$$的多行代码:

1
2
3
4
$$\frac{\partial u}{\partial t}
= h^2 \left( \frac{\partial^2 u}{\partial x^2} +
\frac{\partial^2 u}{\partial y^2} +
\frac{\partial^2 u}{\partial z^2}\right)$$

$$\frac{\partial u}{\partial t}
= h^2 \left( \frac{\partial^2 u}{\partial x^2} +
\frac{\partial^2 u}{\partial y^2} +
\frac{\partial^2 u}{\partial z^2}\right)$$

使用Tag的块:

1
This equation {% math %}\cos 2\theta = \cos^2 \theta - \sin^2 \theta = 2 \cos^2 \theta - 1 {% endmath %} is inline

This equation $\cos 2\theta = \cos^2 \theta - \sin^2 \theta = 2 \cos^2 \theta - 1$ is inline.

使用Tag的多行块:

1
2
3
4
5
6
7
{% math %}
\begin{aligned}
\dot{x} & = \sigma(y-x) \\
\dot{y} & = \rho x - y - xz \\
\dot{z} & = -\beta z + xy
\end{aligned}
{% endmath %}

$$\begin{aligned} \dot{x} & = \sigma(y-x) \\ \dot{y} & = \rho x - y - xz \\ \dot{z} & = -\beta z + xy \end{aligned}$$