Hexo渲染LaTeX公式

感谢博客:在Hexo中渲染MathJax数学公式Hexo博客中使用Latex在Hexo中渲染MathJax数学公式

Hexo渲染LaTeX公式关键

Hexo渲染主题的两个重要因素:mathjax和kramed,前者是数学公式渲染引擎,后者是Hexo的markdown渲染引擎,hexo默认渲染引擎是marked,但是它不支持mathjax,因此需要替换引擎。

一、Hexo添加mathjax
  1. 如果hexo安装有hexo-math,需要先卸载它。卸载命令:

    1
    npm uninstall hexo-math --save
  2. 安装mathjax,安装命令:

    1
    npm install hexo-renderer-mathjax --save
  3. hexo主题开启mathjax:

    进入主题目录,编辑_config.yml,开启mathjax:

    1
    2
    3
    4
    # MathJax Support
    mathjax:
    enable: true
    per_page: true
  4. hexo博客开启mathjax:

    博客文章的开头加入mathjax:true,具体如下:

    1
    2
    3
    4
    5
    ---
    title: Hexo渲染LaTeX公式关键
    date: 2020-09-30 22:27:01
    mathjax: true
    --

二、hexo切换kramed引擎

  1. 卸载marked引擎

    1
    npm uninstall hexo-renderer-marked --save
  2. 安装kramed引擎

    1
    npm install hexo-renderer-kramed --save
  3. 修改引擎bug

    修改文件/node_modules\kramed\lib\rules\inline.jsescapeem两行,具体修改如下:

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

    这一步是在原基础上取消了对\,{,}的转义(escape)。

    同时把第20行的em变量也要做相应的修改。

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

    重新启动hexo:

    1
    hexo clean && hexo g -d

    问题得到解决。