-
Notifications
You must be signed in to change notification settings - Fork 276
启用 Latex 支持
这里提供三种方案,供君参考。
请确保您使用的 Hexo 版本 >= 5.0。
hexo-math 通过 Hexo 的标签插件功能,实现在博客中嵌入 KaTeX 或 MathJax。
这种方式的优点是:渲染操作在服务端完成,而无需单独在客户端引入任何 JavaScript 库。轻量级,配置简便。
缺点是:由于渲染在服务端完成,渲染出的结果是一张 SVG 图片,无法复制其中的值,更没有右键菜单支持。
在 Hexo 根目录执行:
npm install hexo-math --save
作为最小实现,您可以在任意文章中插入以下内容查看是否渲染成功:
{% mathjax %}
\frac{1}{x^2-1}
{% endmathjax %}
包括 CSS 在内的更多配置,可以参考其官方介绍的内容。
请确保您的 Archer 主题版本 >= 1.6.3。
hexo-renderer-pandoc
是为 Hexo 提供的一款 Markdown 渲染引擎插件,它能够将 Pandoc's Markdown 渲染为 HTML 文档。
这种方式的优点是:能够引入包括右键菜单在内的完整 LaTeX 数学公式支持。
缺点是:配置较繁琐,有第三方软件需求。
Archer 主题已经内置了 MathJax,但是您需要替换 Hexo 默认的 Markdown 渲染引擎来支持解析 LaTeX 数学公式语法。
请留意:替换渲染引擎可能会带来编写上的区别,或导致一些潜在的问题。例如需要修改插入表格和图片的语法等。
首先,确保系统中已经安装了 pandoc
,版本不低于 2.0。特别的,为了通过 Github Actions 实现安装 pandoc
并自动部署 Hexo 博客,您可以参考这个工作流的实现。
接下来,在 Hexo 根目录下执行下面的命令:
# 卸载默认的渲染引擎
npm uninstall hexo-renderer-marked --save
# 安装 hexo-renderer-pandoc
npm install hexo-renderer-pandoc --save
然后,在 Archer 主题目录下的 _config.yml
设置以启用 LaTeX 数学公式:
math:
mathjax:
enable: true
最后,在需要启用 LaTeX 数学公式的文章的 Front-matter 中添加 mathjax: true
字段即可。测试是否启用成功,您可以在这篇文章中添加下面的内容:
\begin{equation}
\left\{
\begin{array}{lr}
x=\dfrac{3\pi}{2}(1+2t)\cos(\dfrac{3\pi}{2}(1+2t)), & \\
y=s, & 0 \leq s \leq L,|t| \leq1. \\
z=\dfrac{3\pi}{2}(1+2t)\sin(\dfrac{3\pi}{2}(1+2t)), &
\end{array}
\right.
\end{equation}
请确保您的 Archer 主题版本 >= 1.6.3。
您也可以更换 Hexo 渲染引擎为 hexo-renderer-kramed
,它基于 Hexo 默认的渲染引擎,对原有 Markdown 语法支持较好,也无需第三方软件。但此渲染引擎也存在一些问题,需要手动编码适配。
在 Hexo 根目录下执行下面的命令:
# 卸载默认的渲染引擎
npm uninstall hexo-renderer-marked --save
# 安装 hexo-renderer-kramed
npm install hexo-renderer-kramed --save
然后,在 Archer 主题目录下的 _config.yml
设置以启用 LaTeX 数学公式:
math:
mathjax:
enable: true
最后,在需要启用 LaTeX 数学公式的文章的 Front-matter 中添加 mathjax: true
字段即可。测试是否启用成功,您可以在这篇文章中添加下面的内容:
\begin{equation}
\left\{
\begin{array}{lr}
x=\dfrac{3\pi}{2}(1+2t)\cos(\dfrac{3\pi}{2}(1+2t)), & \\
y=s, & 0 \leq s \leq L,|t| \leq1. \\
z=\dfrac{3\pi}{2}(1+2t)\sin(\dfrac{3\pi}{2}(1+2t)), &
\end{array}
\right.
\end{equation}
关于手动编码适配的问题,可以参考下面的这些博客: