说明
1. 部分参考自博客[始终]上文章:解决MathJax与Markdown的冲突
2. 部分参考自博客[天空的城]上的文章:Hexo下mathjax的转义问题
启用Mathjax插件
安装:
cd
进入Hexo的根目录1
npm install hexo-math --save
配置
在站点配置文件
_config.yml
中加入下述代码:1
2
3
4
5
6
7
8
9
10
11math:
engine: 'mathjax' # or 'katex'
mathjax:
src: custom_mathjax_source
config:
# MathJax config
katex:
css: custom_css_source
js: custom_js_source # not used
config:
# KaTeX config
NexT如何集成mathjax?
可以在next
文件中的主题配置文件_config.xml
下做类似如下配置后便可用:
1 | # MathJax Support |
如果框架不提供配置怎么集成mathjax?
只要在需要集成的页面上加载一个script即可
1 | <script type="text/javascript" |
如何复制别人的mathjax代码?
可以查看网页源码。
可以直接在公式上右键,按照如下图的操作后便可看到代码。
在线识别手写数学公式并转换为的mathjax代码网站
MathJax与Markdown的冲突
MathJax是一个JavaScript引擎,能够将LaTeX语法书写的公式在网页上显示出来。Markdown是一种轻量级的标记语言。用Markdown书写的文章,可以用Markdown解释器处理成标准的HTML文档。因此Markdown很适合用来写博客。
在Markdown中,下划线_
被保留,用作标记符号。比如_Slant_
会生成倾斜的_Slant_。在LaTeX中,下划线_
被用作下标记号。比如x_i
会生成\(x_i\)。
由于 Markdown 在 MathJax 之前起作用,有时下标记号会被 Markdown
吃掉,变成 HTML 标记<i>
而失去 LaTeX
的下标效果,造成数学公式显示不正常。
比如This is an example: $f_i = f_{i + 1}$
里的两个下划线会被Markdown理解成倾斜的标记,显示成这样:
解决方案
更换Hexo的markdown引擎
把Hexo默认的渲染markdown的引擎替换成插件pandoc(hexo-renderer-pandoc)进行渲染。但pandoc的语法与markdown有些微的差异,需要注意。
安装pandoc
cd
进入Hexo的根目录,卸载Hexo默认的markd,再安装pandoc1
2npm uninstall hexo-renderer-marked --save
npm install hexo-renderer-pandoc --save