vscode内置预览(ctrl+shift+v)永远不渲染数学公式,因其基于精简版markdown-it且未集成katex/mathjax,仅作纯文本处理;真正生效的是markdown preview enhanced插件配合ctrl+k m,或手动配置"markdown.preview.math": true及宏定义。

VSCode内置预览(Ctrl+Shift+V)永远不渲染数学公式
这不是插件没装对,是设计如此。VSCode原生Markdown预览器基于精简版markdown-it,压根不加载KaTeX或MathJax;遇到$E=mc^2$或$$\nabla f$$就当纯文本处理,既不报错也不高亮。哪怕装了Markdown All in One,它只负责编辑时语法高亮和补全,不影响预览行为——Ctrl+Shift+V点十次也不会变。
真正起作用的只有两个路径:插件预览命令 or 手动配置
选一个配到底,别混搭。实测最省心的是:Markdown Preview Enhanced + Ctrl+K M唤出独立预览窗口。轻量方案是保留现有工作流,只改settings.json:
- 启用
"markdown.preview.math": true(仅对VSCode内置预览生效,但需配合Markdown All in One4.0+) - 加
"markdown.extension.katex.macros"才能支持\begin{aligned}这类环境 -
Markdown+Math插件单独装没用——它只提供高亮,不参与渲染
公式写错不报错,静默失效是常态
VSCode不会提示“公式语法错误”,只会原样显示。常见翻车点:
- 块级公式必须独占一行:
$$前后不能有空格或文字;text $$E=mc^2$$ more text直接失效 -
\ alpha(反斜杠后带空格)→ 渲染失败;必须是\alpha - 下标多字符不加花括号:
x_100只把1当下标;应写x_{100} -
\Sigma(大写求和)≠\sigma(小写σ);\O不是Ø,要用\text{\O}或\varnothing
KaTeX快但有边界,MathJax全但卡
性能和功能得权衡:
-
KaTeX默认启用,但检测到不支持的命令(如\cancel、\label)会整页fallback回MathJax——必须显式关掉降级:"markdown-preview-enhanced.katexAutoRender": true -
MathJax支持\label/\eqref自动编号,但默认同步加载+无节流,长文档一滚动就卡死;得配"markdown-preview-enhanced.mathTypesetDelay": 300防抖 -
KaTeX不支持动态宏定义(\newcommand)和交叉引用,学术论文慎用
首次用Markdown Preview Enhanced卡在“Loading…”?大概率是KaTeX资源没下完,手动填国内CDN:markdown-preview-enhanced.mathJaxUrl设为"https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css"(截至2026年4月30日有效)。











