怎么在hexo博客中使用latex格式的数学公式
第一步:安装Kramed
hexo 默认的渲染引擎是 marked,但是 marked 不支持 mathjax。,所以需要更换Hexo的markdown渲染引擎为hexo-renderer-kramed引擎,后者支持mathjax公式输出。1
2npm uninstall hexo-renderer-marked --save
npm install hexo-renderer-kramed --save
第二步:更改文件的配置
打开/node_modules/hexo-renderer-kramed/lib/renderer.js
,将其中的:1
2
3
4
5// Change inline math rule
function formatText(text) {
// Fit kramed's rule: $$ + \1 + $$
return text.replace(/`\$(.*?)\$`/g, '$$$$$1$$$$');
}
更改为:1
2
3
4// Change inline math rule
function formatText(text) {
return text;
}
第三步:换包,原有的hexo-math停用,使用新的mathjax包
- 卸载hexo-math:
1
npm uninstall hexo-math --save
- 安装hexo-renderer-mathjax包:
1
npm install hexo-renderer-mathjax --save
第四步更新刚安装的mathjax中的配置
打开/node_modules/hexo-renderer-mathjax/mathjax.html
注释掉原本最后一行的script引用,使用新的引用:1
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_CHTML"></script>
第五步:更改默认转义规则
因为LaTeX与markdown语法有语义冲突,所以 hexo 默认的转义规则会将一些字符进行转义,所以我们需要对默认的规则进行修改.
打开/node_modules\kramed\lib\rules\inline.js
- 将更改为
1
escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/,
1
escape: /^\\([`*\[\]()# +\-.!_>])/,
- 将更改为
1
em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
1
em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
第六步
因为我使用的使yilia的主题,所以只要修改yilia的配置文件就可以,别的主题大同小异。
打开/themes/yilia
主题目录下的config.yml
文件。我们需要在config.yml
文件 中开启 Mathjax, 找到 mathjax 字段并将值从默认的false
改为true
额外注意事项
在写文章的时候要在顶部的说明中开启mathjax,即在文章顶部应该是这样的:
最终我们就可以在自己的文章中使用数学公式了。title: * date: * tags: * mathjax: true `
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 icimence's Tech Blog!
评论