解决Hexo下LaTex无法显示的问题

解决Hexo下LaTex无法显示的问题

配置信息

安装Mathjax插件

1
npm install hexo-math --save

更换Hexo的markdown渲染引擎,[hexo-renderer-kramed][1]引擎是在默认的渲染引擎[hexo-renderer-marked][2]的基础上修改了一些bug,两者比较接近,也比较轻量级。

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

更改配置文件

​ 在主题配置文件_config.yml中(theme\next_config.yml)修改配置:

1
2
3
4
5
6
math:
enable: true
per_page: true
engine: mathjax
mathjax:
cdn: //cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML

解决语义冲突

由于LaTeX与markdown语法有语义冲突,在markdown中,斜体和加粗可以用或者_表示,在这里我们修改变量,将_用于LaTeX,而使用表示markdown中的斜体和加粗。
在博客根目录下,进入node_modules\kramed\lib\rules\inline.js,把第11行的escape变量的值做相应的修改:

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

Reference:

hexo下LaTeX无法显示的解决方案

Hexo中的LaTex公式渲染问题