在Hexo博客中使用MathJax

之前一直用的是MathTex来插入公式,不过,这个方式相当于插入了一张在线图片,显示效果不是很好。终于闲下来,有机会琢磨一下怎么用MathJax了。

配置MathJax

Step 1 安装插件

有大神写好的部署MathJax的插件,可以一键安装。在博客文件夹下执行:

npm install hexo-math --save
hexo math install

Step 2 修改转义字符

MathJax的语法会用到\\等会被marked渲染引擎转义的字符,所以需要修改默认的转义字符。

定位到./node_modules/marked/lib/中(也可能是:hexo\node_modules\hexo-renderer-marked\node_modules\marked\lib),用文本编辑器打开marked.js

escape: /^\\([\\`*{}\[\]()# +\-.!_>])/,

改为

escape: /^\\([`*\[\]()# +\-.!_>])/,

em: /^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,

改为

em:/^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,

如果到这里还是不起作用,只好暴力修改返回值了

return '<em>' + text + '</em>';

改为

return '_' + text + '_';

需要用斜体的话,就手动加em标签

MathJax 基本语法备忘

查了一下,已经有人总结的很好了,就不再做重复工作了。

Mathjax与LaTex公式简介 by Ryan Zhao

迄今为止遇到的问题

  1. 加粗希腊字母
    使用\boldsymbol{\beta}即可
  2. 在表格中显示 | 字符(pipe character)
    使用&#124(后面加一个英语分号)来代替,这种方法对于公式中的|也有用。公式中的|也可以用\mid来表示。
  3. 输入条件独立符号 $\perp\!\!\!\perp$
    Latex没有原生的命令,可以使用\perp\!\!\!\perp,条件不独立用\not\!\perp\!\!\!\perp

    参考资料

1. 搭建一个支持LaTEX的hexo博客 by 薛定谔的死猫