音ノ木坂学院

叶え!みんなの夢――

0%

Hexo使用hexo-math插件支持MathJax

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

删除过时内容,使用hexo: 5.1.1,hexo-cli: 4.2.0,hexo-math: 4.0.0。
需要注意,新版的math标签改成了mathjax标签,需要更新旧的公式才能使用,不然hexo g的时候会报错。

在hexo安装目录下执行

1
npm install hexo-math --save

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

1
2
3
4
5
6
7
8
9
10
11
12
13
# _config.yml
math:
katex:
css: 'https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/katex.min.css'
options:
throwOnError: false
mathjax:
css: 'https://cdn.jsdelivr.net/npm/hexo-math@4.0.0/dist/style.css'
options:
conversion:
display: false
tex:
svg:

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

1
2
mathjax:
enable: true

在需要插入数学公式的文章md头中加入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
---
katex:
output: 'mathml'
felqn: true
minRuleThickness: 0.05
throwOnError: true
mathjax:
conversion:
em: 14
tex:
tags: 'ams'
svg:
exFactor: 0.03
---

最后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 {% mathjax %}\cos 2\theta = \cos^2 \theta - \sin^2 \theta =  2 \cos^2 \theta - 1 {% endmathjax %} is inline

使用Tag的多行块:

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