今天寫博客時需要用到LaTeX,但使用了晚上說的各種方法依然無法成功,折騰了一晚上終于可以了,給同樣困惑的小伙伴一些參考。
配置信息
這是我的hexo版本和package信息(與LaTeX相關(guān)):
"hexo": "^3.5.0",
"hexo-math": "^3.0.4",
"hexo-renderer-kramed": "^0.1.4",
安裝插件
首先我們需要安裝Mathjax插件
npm install hexo-math --save
更換Hexo的markdown渲染引擎,[hexo-renderer-kramed][1]引擎是在默認的渲染引擎[hexo-renderer-marked][2]的基礎(chǔ)上修改了一些bug,兩者比較接近,也比較輕量級。
npm uninstall hexo-renderer-marked --save
npm install hexo-renderer-kramed --save
解決語義沖突
由于LaTeX與markdown語法有語義沖突,在markdown中,斜體和加粗可以用*或者_表示,在這里我們修改變量,將_用于LaTeX,而使用*表示markdown中的斜體和加粗。
在博客根目錄下,進入node_modules\kramed\lib\rules\inline.js,把第11行的escape變量的值做相應(yīng)的修改:
//escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/,
escape: /^\\([`*\[\]()#$+\-.!_>])/,
這一步是在原基礎(chǔ)上取消了對,{,}的轉(zhuǎn)義(escape)。
同時把第20行的em變量也要做相應(yīng)的修改:
// em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
更改配置文件
這里是最重要的一步,我找了好久才在[這個網(wǎng)站][3]中找到適用的解決辦法。
進入到主題目錄,找到_config.yml配置問題,把mathjax默認的false修改為true,并更換cdn的url,具體如下:
# MathJax Support
mathjax:
enable: true
per_page: true
#cdn: //cdn.bootcss.com/mathjax/2.7.1/latest.js?config=TeX-AMS-MML_HTMLorMML
cdn: //cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML
寫博客
在每次需要用LaTeX渲染的博文中,在文章的Front-matter里打開mathjax開關(guān),具體如下:
---
title: index.html
date: 2018-2-8 21:01:30
tags:
mathjax: true
--
測試
輸入:
$$lim_{1\to+\infty}P(|\frac{1}{n}\sum_i^nX_i-\mu|<\epsilon)=1, i=1,...,n$$
看是否能正常顯示。
[1]: https://github.com/sun11/hexo-renderer-kramed
[2]: https://github.com/hexojs/hexo-renderer-marked
[3]: https://github.com/iissnan/hexo-theme-next/issues/1774