Hexo博客LaTeX公式的显示
前言
整理数据结构和操作系统复习资料时发现,出现了许多公式,想到大一选修课选过LaTeX,就在编辑器Typora试了一下,发现本地是正常显示的,Markdown语法是支持\(\LaTeX\)的
但是部署到hexo以后,发现公式无法正常显示,只能显示出LaTeX语法对应代码
于是尝试去对应主题的官网上查找资料,发现Butterfly主题内置了两种LaTeX渲染:mathjax和KaTeX
把mathjax在config文件中设为true,重新部署,发现仍有一些公式无法正常显示,于是就去找对应解决方案
以下就是解决方案
步骤
卸载已有渲染器
在博客目录下打开cmd,输入
1 | npm un hexo-math |
卸载掉以上两个渲染器
安装hexo-renderer-pandoc渲染器
接着在cmd里输入
1 | npm i hexo-renderer-pandoc |
下载安装Pandoc
前往官网Pandoc - Installing pandoc,安装最新版Pandoc
安装好后cmd输入
1 | pandoc -v |
有正常输出即安装成功
我的输出如下
1 | pandoc 3.1 |
在config文件中打开mathjax或KaTeX
主题一般自带这两个插件
找到主题对应config文件,Ctrl+F搜索tex,就能搜到LaTeX公式相关插件
mathjax和KaTeX两者只能选择其一开启
mathjax功能貌似比KaTeX高级一些,我就用mathjax
1 | # MathJax |
保存退出后重新部署就可以正常显示LaTeX公式了
LaTeX相关
行内公式的用法和LaTeX一致,用两个$符号包住公式就可以正常显示,如
1 | $\log_2{n^2}$ |
显示为\(\log_2{n^2}\)
我在使用LaTeX时经常用\[ \]
来表示行间公式,但是Markdown语法中不支持用这种写法编辑行间公式
如果要写行间公式,就需要用两个$符号,再输入回车,打开Markdown的公式
如果要换行,就需要加上\begin{align} \end{align}
或\begin{gather} \end{gather}
其中不带编号的版本为\begin{align*} \end{align*}
或\begin{gather*} \end{gather*}
然后再在末尾加\\
才能正常换行
更详细的用法,比如等号对齐,可以查看lshort-zh-cn,写LaTeX必备
比如
1 | $$ |
的显示结果为 \[ a+b=c\\ x+y=z\\ \] 作为对比,下方代码
1 | $$ |
的显示结果为 \[ \begin{align*} a+b=c \\ x+y=z \\ \end{align*} \]
然后再用LaTeX的数学公式语法,就能正常显示
补充:cases*环境,在typora里可以正常显示,但hexo上就不能
解决办法:换为cases环境,不加*