解决Hexo中渲染MathJax数学公式问题
文章摘要
HrnAI
文章摘要初始化中...
解决了在Hexo中书写MathJax公式时出现了渲染问题
介绍作者 JayHrn
生成本文简介
推荐相关文章
前往主页
看看其他文章
此内容由作者归纳总结,仅用于文章内容的解释与总结,如有不当之处,请予指正!
反馈最近这几天开始准备数学建模比赛了,于是便接触到了许多的数学公式,俗话说
好记性不如烂笔头
于是我便想着开始写一些文章来记录自己的学习过程,刚好暑假搞了博客,便想着用博客来记录吧。
上个学期末就用Typora来记录了自己的Leetcode
学习,当时用的就是MathJax
来编写数学公式,已经有点习惯于MathJax
的语法了,便继续使用,但是在这两天编写时发现许多的数学公式在渲染的时候会出现许多的问题,总是会出现渲染失败的问题,于是便去网上找了下解决方案,终于在CSDN上找到了解决方案。
教程
更换渲染引擎
1
2npm uninstall hexo-renderer-marked --save
npm install hexo-renderer-kramed --save解决语义冲突问题
其实我们的
MathJax
在渲染数学公式的时候,大部分是因为语义冲突导致渲染失败了,我们会发现明明是渲染公式的,文字并没有写入公式里面,公式没有被渲染文字反而被渲染了,其实这种情况一般就是语义发生了冲突。解决方案:进入
node_modules\kramed\lib\rules\inline.js
,修改如下两行1
2
3
4
5- escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/,
+ escape: /^\\([`*\[\]()#$+\-.!_>])/
...
- em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
+ em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/开启
MathJax
如果存在两个括号导致渲染出问题的情况,可以在两个连续的括号之间加上一个空格便可以解决,如下
1 | $ {\forall} v {\in} V - \{{s,t}\} $ |
需要改成如下便可以正确展示公式
1 | $ {\forall} v {\in} V - \{ {s,t} \} $ |
更多关于MathJax内容,请见MathJax Documentation
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用CC BY-NC-SA 4.0协议,完整转载请注明来自JayHrn
评论
匿名评论
隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果