hexo 的 mathjax 渲染
前言
本来 mathjax 的渲染一直用的十分顺手,直到有一天,我打了一个超级复杂的公式,发现渲染出来的效果不太好,于是我开始了寻找解决方案。
比如:
1 | \begin{bmatrix} |
分析问题
hexo 常用的渲染插件为 hexo-renderer-marked,原理是将公式块渲染为一个元素,然后用 MathJax 进行渲染。
但插件会优先转义 Markdown 语法,当语法冲突时,会导致公式无法正常渲染。
解决方案
换渲染插件,使用 hexo-renderer-pandoc。
如果你有下载过任何其他的渲染插件,请务必卸载,否则可能会导致渲染问题。
需要本机下载 Pandoc 并配置环境变量。
1 | npm uninstall hexo-renderer-marked --save |
还要在 hexo 配置文件 _config.yml 中添加以下内容:
1 | pandoc: |
Github Action 自动部署
1 | - name: 安装 Pandoc |
Mathjax 版本
可以自己改 CDN,具体在 主题配置文件 配置项 CDN 处。(一般在文件末尾)
找到 option 中的 mathjax 项,去掉注释,后面加上 CDN 链接。
| 文件名 | 输入格式支持 | 输出格式 | 含可访问性扩展 (assistive / complexity / explorer) | 是否含 Speech Rule Engine | 文件大小 (约) | 推荐用途 | 说明 |
|---|---|---|---|---|---|---|---|
| tex-chtml.js | TeX | CHTML | ❌ 无 | ❌ 无 | ~300KB | 一般网页、轻量渲染 | 最轻版本,只支持 TeX→CHTML |
| tex-svg.js | TeX | SVG | ❌ 无 | ❌ 无 | ~350KB | 需要高质量矢量公式 | 输出为 SVG,适合打印或 PDF |
| tex-mml-chtml.js | TeX + MathML | CHTML | ✅ 有 | ✅ 有 | ~450KB | ✅ 最完整常用版本 | 官方推荐版,支持屏幕阅读器 |
| tex-mml-svg.js | TeX + MathML | SVG | ✅ 有 | ✅ 有 | ~500KB | 可访问 + 高质量公式 | 含语音朗读与 Explorer |
| mml-chtml.js | MathML | CHTML | ⚠️ 部分 | ❌ 无 | ~250KB | 原生 MathML 网站 | 无 TeX 支持 |
| mml-svg.js | MathML | SVG | ⚠️ 部分 | ❌ 无 | ~280KB | MathML + SVG 输出 | 纯 MathML 渲染 |
| tex-mml-chtml-full.js | TeX + MathML + AsciiMath | CHTML | ✅ 有 | ✅ 有 | ~900KB–1MB | 🧩 全功能版(全家桶) | 包含所有输入 / 输出 / 辅助模块 |
| tex-mml-svg-full.js | TeX + MathML + AsciiMath | SVG | ✅ 有 | ✅ 有 | ~1.1MB | 大型项目、演示系统 | 所有模块 + SVG 输出 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 星光light!
评论
