在Hexo中插入LaTeX公式测试
1. 安装hexo-math
在hexo博客的根目录下执行如下命令,安装hexo-math
。1
npm install hexo-math --save
2. 修改配置文件
2.1. 修改博客配置文件
接下来在你博客的配置文件config.yml
加上如下的配置
1 | config.yml |
2.2. 修改主题配置文件
在博客主题配置文件config.yml
开启mathjax
,不同博客主题可能修改的不太一样。我用的是even,做如下修改即可。1
2# LaTeX support (via MathJax)
latex: true
3. 实践
写一篇博客,插入如下源码进行测试。
1 | Simple inline $ a = b + c $. |
现实效果如下:
Simple inline $ a = b + c $
$$
\frac{|ax + by + c|}{\sqrt{a^{2}+b^{2}}}
$$
4. 存在的问题
Marked.js和MathJax共存时可能会发生一些渲染冲突。如下面的LaTeX源码,在不处理冲突时便会导致公式内的换行失效。
1 | $$ |
现在./node_modules/marked/lib/marked.js
文件内做如下修改。
4.1. 修改1
1 | escape: /^\\([\\`*{}\[\]()# +\-.!_>])/, |
替换成
1 | escape: /^\\([`*\[\]()# +\-.!_>])/, |
4.2. 修改2
1 | em: /^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/, |
替换成
1 | em:/^\*((?:\*\*|[\s\S])+?)\*(?!\*)/, |
执行hexo clean
,重启hexo之后便可以看到正常的显示效果。
$$
\begin{eqnarray}
\nabla\cdot\vec{E} &=& \frac{\rho}{\epsilon_0} \\
\nabla\cdot\vec{B} &=& 0 \\
\nabla\times\vec{E} &=& -\frac{\partial B}{\partial t} \\
\nabla\times\vec{B} &=& \mu_0\left(\vec{J}+\epsilon_0\frac{\partial E}{\partial t} \right)
\end{eqnarray}
$$
参考
Author: Hatton.Liu
Link: http://hattonl.github.io/2020/02/13/hexo-latex-test/
License: 知识共享署名-非商业性使用 4.0 国际许可协议