Hexo博客中使用Latex

    技术2023-05-22  84

     博客中不支持Latex是万万不行滴,而Hexo默认的渲染引擎是marked,但是marked不支持mathjax,所以需要更换Hexo的渲染引擎为hexo-renderer-kramed,主要步骤如下:

    安装Kramed

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

    更改文件配置

    打开/node_modules/hexo-renderer-kramed/lib/renderer.js 将:

    // Change inline math rule function formatText(text) { // Fit kramed's rule: $$ + \1 + $$ return text.replace(/`\$(.*?)\$`/g, '$$$$$1$$$$'); }

    修改为:

    // Change inline math rule function formatText(text) { return text; }

    停用hexo-math并安装mathjax

    卸载hexo-math

    npm uninstall hexo-math --save

    安装hexo-renderer-mathjax

    npm install hexo-renderer-mathjax --save

    更新Mathjax配置文件

    打开/node_modules/hexo-renderer-mathjax/mathjax.html 将最后一行的<script>改为:

    <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 更改后为:

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

    开启mathjax

    打开主题目录下的config.yml文件(注意这里是所使用主题的yml文件,不是hexo的yml文件) 加入下面这句:

    mathjax: true

    并且写博客的时候需要开启Latex就需要加上头开启Mathjax: 例如:

    title: Python向信号中添加不同强度dB的噪声 date: 2019-10-23 14:05:37 tags: [噪声, ECG] categories: [Python] mathjax: true

    👉 原博文,我仅仅是记录一下

    Processed: 0.020, SQL: 10