Hexo Mathjax下标的问题
不得不说Hexo虽然优点不少,但是毕竟年轻,问题也比较多。在Latex里下标是用_
来表示下标,但是在Hexo里_
会被渲染成<em>
标签,导致数学公式里出现多个下标被当成加粗,如$x_1 x_2$
会变成$x1 x2$,不是我们想要的,所以要怎么办?
在网上找了找,发现一个不是很好的解决方法,就是把Hexo对_
的渲染删掉,找到博客根目录下的,_node_modules/hexo-renderer-marked/node_modules/marked/lib/marked.js
,
在em
的正则匹配里删掉关于_
的内容,如下,
1 | em: /^\b_((?:[^_]|__)+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/, |
改成1
em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
还有一处,1
em: /^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/
改成1
em: /^\*(?=\S)([\s\S]*?\S)\*(?!\*)/
然后就解决了,不过这方法有明显的缺点,其一就是以后加粗只能用*
了,而且这个插件更新的话,可能还要再改一次,由于对Hexo代码了解少,目前也只能这样了。
参考链接:
- 本文链接:http://shengdie.github.io/2016/10/20/math-lower-index/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!
分享