VSCode 系列 - LaTex 公式渲染配置

VSCode 系列 - LaTex 公式渲染配置

数学引擎介绍

  • MathJax / KaTeX 都是浏览器端LaTeX 数学公式渲染库
  • MathJax / KaTeX 都不是完整的 LaTeX 编译器,只实现了一部分“类似 LaTeX 的数学命令”,而不是整套 LaTeX 宏包系统
  • 简单说:MathJax 更像 LaTeXKaTeX 更快、更轻。
  • 如果最关心 LaTeX 语法兼容性,一般推荐 MathJax
  • MathJax: 目标是尽可能完整地支持 TeX / LaTeX 中的数学命令, MathJax 兼容性更完整,但体积更大、渲染相对更重。
  • KaTeX: 官方维护了一个“支持的 TeX 函数列表”,兼容了相当大一部分常用 LaTeX 数学命令。
    • 只能保证常规符号/环境没有问题(分数、根号、矩阵、积分、求和、cases、对齐环境等),
    • 一些冷门命令、特殊宏包、自定义命令需要手工改写或者会直接报错

👉 LaTeX 兼容性: MathJax > KaTeX

markdown 的渲染机制

  • .md → .pdf

    1
    2
    3
    4
    5
    input.md
    └─(Pandoc 解析 Markdown)
    └─ 生成一个 .tex 中间文件(包含公式的 LaTeX)
    └─ 调用 pdflatex / xelatex / lualatex
    └─ 得到 out.pdf

  • .md → .html

    1
    2
    3
    4
    5
    input.md
    └─(Markdown 解析器:markdown-it / pandoc / remark 等)
    └─ 生成 HTML 页面(.html
    ├─ 方案 1:页面里嵌入 MathJax 脚本
    └─ 方案 2:构建时就用 KaTeX 预渲染公式

  • .md 预览

    1
    2
    3
    4
    input.md (在 VSCode 里打开)
    └─ 内置 markdown-it 解析 Markdown
    └─ 内置 KaTeX 渲染 $...$ / $$...$$
    └─ 在侧边的 WebView 里显示预览

流程 典型实现方式 是否用 LaTeX 编译器 是否用 MathJax/KaTeX
md → PDF(LaTeX 路线) Pandoc → .texxelatex ✅ 是 ❌ 否
md → PDF(HTML 路线) md → HTML → 浏览器打印/Chromium ❌ 否 ✅ 一般用 MathJax/KaTeX
md → HTML Hexo/Hugo/MkDocs/Jekyll + 插件 ❌ 否 ✅ 通常 MathJax 或 KaTeX
md 在 VSCode 预览 内置 Markdown 预览 + KaTeX ❌ 否 ✅(默认 KaTeX)
md 在 VSCode + MPE 等 扩展自己加载 MathJax/KaTeX ❌ 否(除非扩展特意调用 LaTeX) ✅ 视扩展而定

安装支持 MathJax 的预览插件

  1. 安装 Markdown Preview Enhanced(MPE) 插件

  2. 使用 MPE插件预览:

    • Ctrl+Shift+PMarkdown Preview Enhanced: Open Preview to the Side → 回车
    • 或者 右键编辑区Markdown Preview Enhanced: Open Preview to the Side
    • 注意:MPE 默认用 KaTeX 渲染公式,不支持 LaTex 语言的 align 等公式环境和 \label\eqref 等公式引用命令。 KaTeX 的具体渲染情况见下图。
图1.错误渲染

VS Code 配置 MPE 的数学引擎为 MathJax

  1. 修改 MPE 插件的数学引擎为 MathJax因为 MPE 默认用 KaTeX 渲染公式,需要把 MPE 的数学引擎改成 MathJax,具体操作如下

    • ctrl + ,Settings 页面 → Code Actions on Save 选项 → 点击 Edit in settings.json
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      {
      "editor.fontSize": 20,
      "terminal.integrated.commandsToSkipShell": [
      "language-julia.interrupt"
      ],
      "julia.symbolCacheDownload": true,
      "editor.codeActionsOnSave": {


      },
      // 添加下面这一行
      "markdown-preview-enhanced.mathRenderingOption": "MathJax",
      }
    • 做完上述操作后,重新预览 Markdown 文件,公式应该就能正确渲染了,但是引用公式的编号会错误,例如 \eqref{eq:exp} 等都不能正常显示。
    图2.正确渲染但引用错误
  2. 修改 MPE 的设置文件 config.js 开启公式自动编号和引用Ctrl + Shift + P → 输入 Markdown Preview Enhanced: Open Config Script (Global) → 回车 → 弹出 config.js文件,进行如下修改:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    ({
    katexConfig: {
    "macros": {}
    },

    mathjaxConfig: {
    tex: { tags: 'all' }, // ★关键:给所有行间公式自动编号,支持 \label / \eqref
    options: {},
    loader: {}
    },

    mermaidConfig: {
    "startOnLoad": false
    },
    })
    tags: 'all'MathJax v3 推荐的写法,实测在 MPE 里可以让所有 display 公式自动编号,并且 \label / \eqref 生效。

图3.正确渲染且正确错误

如果同时装了 Markdown All in One 等其他 Markdown 插件,预览冲突的话,可以把其他插件的 自动打开预览 功能关掉,只保留 MPE自动打开预览 功能即可。


VSCode 系列 - LaTex 公式渲染配置
http://yylustb.github.io/2025/11/17/software/vscode/vscode_math/
作者
yylustb
发布于
2025年11月17日
许可协议