前言

搭建的博客在使用Math引擎构建数学公式的时候遇到了几个问题。

  • 显示公式出错,显示的是语法错误
  • 不能使用$...$行内公式
  • 显示的公式十分丑

在网上也看到了很多的答案,但是都不是很靠谱啊。真的是个大坑啊啊啊,看官方文档看了好久,然后又去找的Hexo的实现方法。emmm,索性解决了。

找到自己模板配置

1
2
3
cd themes/maupassant/
# 找到head的配置文件,我的模板中head等的配置文件是在这里,其他的可以自己找找
cd layout/_partial/

layout/_partial/下就是该模板的配置信息了,然后看一下是否有mathjax.pug(部分模板是html格式或其他格式,无所谓),如果有的话,选择方案一,如果没有,选择方案二。

优先推荐方案一,因为这样可以只在使用mathjax的页面进行渲染,速度更加快。

解决方案一

只需要修改mathjax.pug

在某些模板中,有着自己的mathjax.pug,那么只需要将js相应部分改为以下的pug代码即可。

1
2
3
4
5
6
7
8
9
10
11
12
script(type="text/x-mathjax-config").
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX", "output/HTML-CSS"],
tex2jax: {
inlineMath: [ ['$','$'], ["\\(","\\)"] ],
displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
processEscapes: true
},
"HTML-CSS": { fonts: ["TeX"] }
});
script(type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js")

解决方案二

若mathjax不是单独配置的话,按照以下步骤进行。

关闭hexo本身的mathjax

关闭hexo本身的mathjax,也就是在HEXO目录下的_config.yml,改为

1
mathjax: false

然后关闭相应文章的front-matter中的mathjax: true

修改主题模板

1
2
# 修改head.pug,为了让全局页面中加入mathjax
vim head.pug

然后就在其中加入我们需要的mathjax

1
2
3
4
5
6
7
8
9
10
11
12
script(type="text/x-mathjax-config").
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX", "output/HTML-CSS"],
tex2jax: {
inlineMath: [ ['$','$'], ["\\(","\\)"] ],
displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
processEscapes: true
},
"HTML-CSS": { fonts: ["TeX"] }
});
script(type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js")

因为pug格式和html相似,因此如果格式是html的话,可以自己更改一下。

修改前后对比

修改前

修改前的0-1损失函数

修改后

$$L(Y,f(x))=\begin{cases}
1,& Y \ne f(X)\\
0,& Y = f(X)
\end{cases}$$

$$
\begin{matrix}
1 & x & x^2 \\
1 & y & y^2 \\
1 & z & z^2 \\
\end{matrix}
$$

PS:在该版本中,换行符是\\\,而不是两个\,请在测试的时候注意一下。