vscode 默认禁用 markdown 预览中的 latex 渲染,需手动启用 markdown.preview.math 设置;行内公式用 $...$(无空格),块级公式用 $$...$$(前后必须空行),且文件须保存、预览需重启,否则公式仅显示为纯文本。

VSCode 默认不渲染 LaTeX 数学公式,必须显式启用 markdown.preview.math 设置,否则所有 $E = mc^2$ 和 $$\int$$ 都会原样显示为纯文本——这不是插件问题,是原生预览的默认关闭行为。
为什么 $E=mc^2$ 在预览里没变公式?
最常见原因是设置未开启或预览未刷新。VSCode 原生 Markdown 预览引擎(基于 markdown-it)默认禁用数学解析,哪怕你写了完全合法的 KaTeX 语法,也会被当作文本透传。
- 检查设置:打开
Cmd + ,(macOS)或Ctrl + ,(Windows/Linux),搜索markdown.preview.math,确保勾选 - 确认文件已保存:
Ctrl + S后再触发预览,未保存内容不会更新渲染 - 重启预览:关闭当前预览窗格,重新按
Cmd + Shift + V或Ctrl + Shift + V打开,不能只靠滚动同步 - 注意空行要求:
$$块级公式前后必须各有一行空白,否则会被当作普通段落处理
用 $ 还是 $$?行内与块级公式的语法边界
VSCode 原生预览只支持标准 KaTeX 行内/块级分隔符,不识别 \( \) 或 \[ \],也不接受中文符号、全角美元符或混用反引号。
将 Markdown 格式的回复转换为适合 Telegram 的富文本,避免渲染错误。适用于用户偏好 Markdown 但目标平台为 Telegram 的场景。
- 行内公式必须用单个
$包裹,例如:$\alpha + \beta = \gamma$,且前后不能有空格($ \alpha $会失效) - 块级公式必须用独立的
$$开头和结尾,且上下必须为空行;$$a^2 + b^2 = c^2$$若紧贴上一段文字,将无法渲染 - 避免嵌套:不要在
$$内部再写$,KaTeX 不支持嵌套美元符号解析 - 转义冲突:若需显示字面量
$,用反斜杠转义:\$
装了 Markdown All in One 却还是不渲染?
这个插件本身不接管数学渲染逻辑,它只是提供快捷键和目录生成;数学能力仍依赖 VSCode 原生的 markdown.preview.math 开关。如果开了插件却没效果,大概率是设置没开,或者你误装了冲突插件。
- 禁用
Markdown Preview Enhanced:它会完全替换原生预览引擎,导致markdown.preview.math失效,且常引发同步卡顿 - 检查语言模式:右下角状态栏必须显示
Markdown,不是Plain Text;粘贴内容后需手动点击切换 - 插件宏定义无效:如
"markdown.extension.katex.macros"是Markdown All in One的私有配置项,对原生预览无作用 - 版本兼容性:该设置在 VSCode 1.84+ 才稳定生效,旧版本即使勾选也可能静默忽略
公式渲染失败但没报错,怎么快速定位?
VSCode 不会弹出数学语法错误提示,失败时仅表现为“原样输出”,所以得靠最小可验证案例反向排除。
- 新建
test.md,只写三行:行内:$\sin x$+ 空行 +$$\sum_{i=1}^n i = \frac{n(n+1)}{2}$$+ 空行 - 确保文件已保存、语言模式为 Markdown、
markdown.preview.math已启用、预览用Cmd + Shift + V侧边打开 - 若仍失败,打开开发者工具(
Cmd + Shift + P→Developer: Toggle Developer Tools),切到 Console 标签,看是否有KaTeX parse error或Failed to load resource - 常见静默坑:路径含中文、工作区路径有空格、设置了
markdown.preview.enableScripts: false(虽不影响 KaTeX,但某些扩展依赖它)
真正容易被忽略的是空行规则和保存动作——公式语法再正确,缺一个空行或没按 Ctrl + S,就永远只是代码,不是数学表达式。










