Hexo + $\LaTeX$
这篇文章的部分内容已经过时了,尤其是更换渲染器的部分。
kramed
最后一次更新还是2017年,严重缺乏维护,且存在冲突问题,而marked
目前早已支持mathjax
。
hexo的默认渲染器是marked
,并不支持用于渲染数学公式的mathjax
。
想要让hexo支持数学公式的渲染,就需要更换渲染器。
可更换的渲染器有很多,我这里只列举个人试验成功且自认为最简单的方案。
安装过程
安装新渲染器
kramed
是在marked
基础上修改的,支持了mathjax
。你的hexo工程目录下的node_modules中可以找到对应的渲染器文件夹。
可以在你的工程目录下用以下命令卸载marked
安装kramed
:
1 | npm uninstall hexo-renderer-marked --save |
修改配置文件
到主题配置文件中_config.yml
,找到mathjax
的部分,将mathjax
的enable
设为true
。
1 | ... |
文章渲染标签
为加快渲染速度,渲染器只会在标签中有mathjax: true
的文章中使用利用mathjax
渲染。
1 | title: 如何让hexo支持LaTeX数学公式渲染 |
使用
$\LaTeX$公式属于Markdown的扩展语法,主要有两种使用方式:内联公式和行间公式
内联公式
主要是在行内所显示的公式,比如可以使用$\LaTeX$语法写$y=kx+b$。
上面这行的Markdown源码为:
1 | 主要是在行内所显示的公式,比如可以使用$\LaTeX$语法写$y=kx+b$。 |
即:单个$
所括起来的内容便是内联公式。
行间公式
主要是在行间所显示的公式,比如可以:
$$
\LaTeX =kx+b
$$
上面的Markdown源码为:
1 | $$ |
即:两个$
所括起来的内容便是行间公式。
问题解决
大括号渲染出错
可能是正则表达式的问题,导致
1 | \{ \} |
无法正常转义。
想要解决这个问题,只需要用别的LaTeX定界符即可:
1 | \lbrace \rbrace |
多行公式无法换行
同样是正则表达式的问题,\\
被转译成了\
。
简单粗暴的解决办法就是把\\
换成\\\\
,来暴力解决。
Try and have Fun
最后就可以开心使用了:
$$
\lbrace \LaTeX \rbrace \\
$$