Skip to content

Hexo LaTeX数学公式渲染

Hexo支持多种Markdown渲染引擎,其中对数学公式渲染支持最好的当属hexo-render-pandoc。因此,这里只介绍使用Pandoc渲染LaTeX数学公式的方法。

操作方法

  1. 首先在电脑本地安装Pandoc,并确保被添加在系统变量中。
  2. 卸载原有的渲染引擎
    1
    2
    npm uninstall hexo-math --save
    npm uninstall hexo-renderer-marked --save
  3. 安装渲染引擎和插件
    1
    2
    npm install hexo-renderer-pandoc --save
    npm install hexo-filter-mathjax --save
  4. 修改Hexo根目录的_config.yml配置文件
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    mathjax:
    tags: none # or 'ams' or 'all'
    single_dollars: true # enable single dollar signs as in-line math delimiters
    cjk_width: 0.9 # relative CJK char width
    normal_width: 0.6 # relative normal (monospace) width
    append_css: true # add CSS to pages rendered by MathJax
    every_page: false # if true, every page will be rendered by MathJax regardless the `mathjax` setting in Front-matter
    packages: # extra packages to load
    extension_options: {}
    # you can put your extension options here
    # see http://docs.mathjax.org/en/latest/options/input/tex.html#tex-extension-options for more detail
    此配置是对插件hexo-filter-mathjax进行设置,详细设置可以参考该插件的主页。
  5. 如果在上一步配置了every_page: false,即默认不开启数学公式渲染功能,则只在需要渲染LaTeXMarkdown文件前部添加mathjax选项
    1
    2
    3
    4
    5
    6
    ---
    title: Hexo LaTeX数学公式渲染
    date: 2025-05-24 09:02:06
    category: Hexo
    mathjax: true
    ---
  6. 清除之前的渲染结果hexo clean
  7. 重新编译hexo g

问题

Pandoc自动图注渲染

使用pandoc渲染会自动为图片添加题注,如果想要去掉图注,在_config.yml中设置

1
2
3
pandoc:
extensions:
- '-implicit_figures'

LaTeX行内数学公式渲染

按照hexo-filter-mathjax的说明,行内公式($...$)的起始$符号后面不能有空格,结束$符号前面也不能有空格,实际测试中则相反——起始$符号后面需有空格,结束$符号前面也需要空格,才能正确渲染。

  • $Ax=b$Ax = b
  • $ Ax=b $

MathJax包的使用

hexo-filter-mathjax默认启用的所有包,但在行内公式使用时需要进行转义。

行间公式

1
$$ \boldsymbol{Ax}=\color{red}\boldsymbol{b} $$

行内公式

1
$ \\boldsymbol{Ax}=\\color{red}\\boldsymbol{b} $

备注

LaTeX数学公式渲染存在的问题可能与主题有关系,需自行尝试和适配。此外,如果主题内置了数学公式渲染功能,可能需要禁用主题的数学公式渲染功能。

测试

1
2
3
4
5
6
$$
y(t)=\begin{cases}
0, & x(t)<0 \\
x(t)+x(t-2), & x(t) +2\geqslant 0
\end{cases}
$$

1
$$i\hbar\frac{\partial}{\partial t}\psi=-\frac{\hbar^2}{2m}\nabla^2\psi+V\psi$$

1
2
3
4
5
6
7
8
$$
\begin{aligned}
\nabla\cdot\vec{E}&=\frac{\rho}{\epsilon_0}\\
\nabla\cdot\vec{B}&=0\\
\nabla\times\vec{E}&=-\frac{\partial B}{\partial t}\\
\nabla\times\vec{B}&=\mu_0\left(\vec{J}+\epsilon_0\frac{\partial E}{\partial t}\right)
\end{aligned}
$$

参考资料

  1. Hexo支持LaTeX数学公式渲染
  2. 彻底解决Hexo的数学公式渲染问题
  3. mathjax渲染异常与hexo prism高亮无效bug
  4. MathJax Documentation