本文首發(fā)于我的個人博客Suixin's blog
Markdown中插入數學公式是常有的事玷氏,而Hexo博客框架主要是Markdown格式的文檔,如果不能正常渲染Latex公式,那豈不gg……
下面來看看Hexo渲染數學公式遇到的問題以及解決方案。
渲染下劃線的問題
_
在Latex公式中代表腳標,是非常常用的符號,而在Markdown中代表斜體斩萌,如果直接使用,將會產生公式無法渲染的問題屏轰,因為被Hexo強制渲染成了<em>
標簽颊郎。
如何解決呢?更換Hexo默認的Markdown渲染引擎霎苗!
Hexo默認的渲染引擎為hexo-renderer-marked姆吭,這里將其更換為hexo-renderer-kramed,該引擎在前者的基礎上修復了一些bug唁盏,具體操作:
npm uninstall hexo-renderer-marked --save
npm install hexo-renderer-kramed --save
行內公式的問題
執(zhí)行上述操作后内狸,雖然塊狀公式的渲染問題解決了,但發(fā)現行內公式仍然是老樣子厘擂,無法成功渲染昆淡,這是因為hexo-renderer-kramed也有語義沖突的問題,這里我們直接修改轉義即可刽严。打開文件\node_modules\kramed\lib\rules\inline.js
昂灵,修改其中一行
// em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
把之前的em
轉義注釋掉,添加新的即可完美解決。
雙花括號的問題
除此之外眨补,如果在公式內連續(xù)使用兩個花括號管削,如
\frac{1}{{(2\pi)}^\frac{D}{2}}
時會渲染失敗
渲染報錯
此時必須在兩個花括號中間加一個空格,
\frac{1}{ {(2\pi)}^\frac{D}{2} }
即可正常渲染注:上述操作完成后均需重啟Hexo撑螺,即
hexo clean
hexo g
hexo s