必须安装官方 markdownpreview 插件并配置 mathjax v2.7.9 cdn,行内公式用 $e=mc^2$、块级公式用 $$\int_0^\infty e^{-x}dx = 1$$,且必须通过浏览器预览(ctrl+shift+p → preview in browser),侧边栏不执行 js,公式永不渲染。

必须用 MarkdownPreview,别装 Markdown Preview Plus
Sublime Text 里没有官方或主流维护的 Markdown Preview Plus 插件——你搜到的多半是拼写错误、过时 fork 或个人魔改版。它不支持 MathJax,配置了也白搭。enable_mathjax 字段会被忽略,预览永远显示 $E=mc^2$ 而不是渲染结果。
正确做法是:
- 卸载所有名称含
Preview Plus、Enhanced Plus的插件 - 通过 Package Control → Install Package → 搜索并安装
MarkdownPreview(作者:facelessuser) - 安装后检查
Packages/MarkdownPreview/目录下是否存在js/math_config.js,没有说明安装不完整
MathJax 必须用 v2.7.9 CDN,v3 地址直接失效
MarkdownPreview v3.0.x 硬编码依赖 MathJax v2,用 v3 的 CDN(比如 https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js)会导致控制台报 ReferenceError: MathJax is not defined,公式块彻底空白。
Settings – User 中必须写死这一行:
"mathjax CDN": "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.9/MathJax.js?config=TeX-AMS_HTML"
注意两点:
- 不能省略
?config=TeX-AMS_HTML—— 这是启用\begin{aligned}和基础 LaTeX 命令的关键参数 - 本地离线部署不可行:插件未提供 MathJax 本地路径支持,硬改 JS 会因路径解析失败而静默跳过
公式语法容错率极低,空格和下划线就是致命点
MathJax v2.7.9 只稳定支持 TeX-AMS_HTML 配置下的语法,不是所有 LaTeX 写法都可用。常见“写了但不显示”,往往是因为被当成纯文本吞掉了:
- 行内公式必须写成
$E=mc^2$,$ E = mc^2 $(含空格)❌ - 块级公式必须写成
$$\int_0^\infty e^{-x}dx = 1$$,前后不能有字符(比如$$$$. $$❌) - 下划线必须转义:
a_b❌ →a\_b✅ - 大括号要用
\lbrace/\rbrace或\left\{/\right\},原生{a+b}不识别 - 多行对齐只认
\begin{aligned}...\end{aligned},\begin{align}默认不启用
预览必须走浏览器,侧边栏永远不渲染公式
这是最常被忽略的致命点:Preview in Sidebar 是纯 HTML 渲染器,不执行任何 JS,MathJax.js 根本不会下载。你看到的 $$\int_0^\infty$$ 就是源码原样输出,不是“没配好”,而是压根没触发解析流程。
唯一有效路径是:
-
Ctrl+Shift+P→ 输入Markdown Preview: Preview in Browser - 或右键文件 →
Open Preview in Browser(效果相同,且自动刷新) - 浏览器地址栏应显示
file:///路径;开发者工具 Network 标签页能看到MathJax.js请求成功 - Chrome/Edge 用户需关闭
chrome://settings/privacy中的“使用预测服务加载网页”,否则本地file://协议会被拦截
真正卡住人的地方,往往不是配置错,而是盯着侧边栏看半天,其实连 MathJax 的请求都没发出去。











