hexo中使用LaTex公式的开启方法

hexo中使用LaTex公式的开启方法

如果你的hexo 主题就是next的那么就不需要下面的3, 4步(因为hexomathjax的配置), 只需要1, 2, 5, 6, 7, 8
第2步和第8步是注意点

第一步: 安装Kramed

更换hexo的markdown渲染引擎为hexo-renderer-kramed, 用来支持mathjax公式输出

1
2
npm uninstall hexo-renderer-marked --save
npm install hexo-renderer-kramed --save

hexopackage.json中显示如下

1

第二步: 更改kramed文件配置(重点, 不然实现不了行间)

打开文件/node_modules/hexo-renderer-kramed/lib/renderer.js, 作如下更改:

1
2
3
4
5
6
7
// Change inline math rule
function formatText(text) {
// Fit kramed's rule: $$ + \1 + $$
// return text.replace(/`\$(.*?)\$`/g, '$$$$$1$$$$');
// 第67行直接返回text
return text;
}

2.png

第三步: 停止使用hexo-math 并安装mathjax

虽然在package.json中看不到hexo-math , 但还是要卸载

1
2
npm uninstall hexo-math --save
npm install hexo-renderer-mathjax --save

3.png

第四步: 更新 Mathjax 的 配置文件

打开/node_modules/hexo-renderer-mathjax/mathjax.html
如图所示更改<script>为:只是改域名, 后面的config别变

1
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js"></script>

最新的mathjax的cdn地址去这里搜索

4.png

第五步: 更改默认转义规则

因为LaTeXmarkdown语法有语义冲突,所以 hexo 默认的转义规则会将一些字符进行转义,所以我们需要对默认的规则进行修改.
打开/node_modules\kramed\lib\rules\inline.js

改两个rule

1
2
escape: /^\\([`*\[\]()#$+\-.!_>])/,
em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,

5.png

第六步: 开启mathjax

打开/themes/next主题目录下的_config.yml文件
不同的主题不同的配置文件不同, 找你安装的主题是啥

我们需要在_config.yml文件 中开启 Mathjax,(不同的主题配置方法略微有区别)

6.png

第七步: 在new 一个文章的时候加上mathjax: true

7.png

第八步: 重新生成 hexo clean+ hexo g