跳到主要内容

数学公式

主题有两种方式开启对 LaTeX 数学公式的支持,但都需要先进行以下操作。

前置准备​

  • 移除 Hexo 默认的 markdown 渲染插件 hexo-renderer-marked,并安装 hexo-renderer-pandoc。如果安装了其他的 markdown 渲染插件也请移除!
npm uninstall hexo-renderer-marked
npm install hexo-renderer-pandoc

方法一:主题预置 Latex 解析​

直接在配置文件中开启 mathjax 即可使用:

mathjax: true # 加载 LaTeX 数学公式库(默认从 npmmirror CDN 加载)

也可以填脚本完整 URL 覆盖默认 CDN(npmmirror,阿里国内镜像;若网络无法访问会导致公式一直显示为原始 $...$ 文本):

# 本地文件(推荐:下载 tex-svg.js 放到站点的 source/vendors/ 下,零外部依赖;
# SVG 输出版无需额外字体文件)
mathjax: /vendors/tex-svg.js

# 或其他可达 CDN 的完整 URL
mathjax: https://registry.npmmirror.com/mathjax/3.2.2/files/es5/tex-svg.js

脚本源不可达时,主题会在正文顶部显示可见的失败提示(而非无限等待),保留原始文本可读。

主题已在脚本加载前注入配置,默认启用 $...$ 行内公式与 $$...$$ 块级公式(MathJax 3 出于历史原因默认不识别 $ 分隔符)。若你自行定义了 window.MathJax 配置,主题不会覆盖。

注意:默认的 hexo-renderer-marked 会破坏 LaTeX 中的 \\(矩阵换行、多行推导对齐都会失效),请务必按前置准备改用 hexo-renderer-pandoc,或自行在公式外做转义保护。

方法二:第三方插件服务端渲染​

使用第三方插件 hexo-filter-mathjax 进行服务端渲染,并关闭配置文件中的 mathjax: false:

mathjax: false

从访问性能来讲,推荐使用第二种方法(服务端渲染),避免在浏览器端加载并执行 MathJax。