vscode原生预览仅支持commonmark标准语法,不解析mermaid、latex公式等扩展语法,需依赖markdown all in one或markdown preview enhanced等插件注入解析逻辑;pdf导出必须配合pandoc+latex或chrome headless等外部工具链,且中文支持需xelatex引擎与完整latex发行版。

VSCode 本身不提供“实时双屏预览+一键导出 PDF”的开箱即用能力,必须组合插件与外部工具链才能稳定工作;原生预览(Ctrl+Shift+V)不支持公式、Mermaid、自定义 CSS,也不能导出 PDF。
为什么原生预览打不开 Mermaid 或 $$ 公式?
VSCode 内置的 Markdown Preview 只解析标准 CommonMark 语法,对扩展语法零支持。Mermaid 图、LaTeX 数学块、脚注、表格对齐等,全靠插件注入解析逻辑。
- 现象:写好
```mermaid流程图,预览区只显示原始代码块;$$ \alpha + \beta $$渲染成纯文本 - 根本原因:没启用对应语法支持插件,或插件未监听文件保存事件(尤其在 WSL/SSH 远程场景下,
remote.WSL.fileWatcher默认可能关闭) - 解决路径:卸载所有非必要 Markdown 插件,只留
Markdown All in One(基础增强)或Markdown Preview Enhanced(完整渲染),后者更适配导出需求
怎么让右侧预览真正“实时滚动+双击跳回”?
官方插件 Markdown All in One 配合 VSCode 原生预览,是目前唯一在 VSCode 1.80+ 上保持稳定双屏同步的组合。第三方插件如旧版 Markdown Preview Enhanced 已停止维护,常卡死或错位。
- 确保设置里没禁用
markdown.preview.doubleClickToSwitchToEditor—— 否则双击预览区毫无反应 - 快捷键
Ctrl+K V是唤出侧边预览的可靠方式,比右键菜单更少受焦点干扰 - 若预览不自动刷新:检查文件是否被其他进程独占(如 Git LFS 锁定),或尝试关闭再重开预览窗口
PDF 导出为什么总失败或样式发白?
所有“导出 PDF”功能都依赖外部渲染引擎:Markdown PDF 用 Chrome Headless,Markdown Preview Enhanced 可选 Pandoc+LaTeX 或 Puppeteer。没装对依赖,就只能看到白底黑字的网页快照。
- 常见错误:
Error: Command failed: pandoc --version→ 缺 Pandoc;Failed to launch chrome→ 系统没装 Chrome/Edge 或路径不可达 -
Markdown PDF插件默认不读取 VSCode 主题色,导出必为白底;想换风格,必须手动指定markdown-pdf.css路径,且该 CSS 仅支持基础属性(@page、font-family、margin) - 用
Markdown Preview Enhanced导出前,务必先打开它的预览窗口(右键 →Open Preview to the Side),否则右键菜单里压根没有Export to PDF选项
导出 PDF 时最容易忽略的三个细节
不是装了插件就能导出成功。中文文档、页眉页脚、目录层级这些“看起来应该有”的东西,全靠配置补全,漏一项就退回简陋排版。
- Pandoc 导出中文 PDF 必须用
--pdf-engine=xelatex,pdflatex会直接丢字;LaTeX 发行版要装完整版(texlive-full或 MacTeX),精简安装包缺中文字体支持 - 导出 PDF 的 CSS 和导出 HTML 的 CSS 不通用:PDF 渲染器(如 xdvipdfmx)不识别
flex、grid、position: sticky,写了也无效 -
[TOC]目录能生成的前提是预览器识别了标题层级——如果用了自定义 heading ID(如### 标题 {#custom-id}),部分插件会跳过该标题,导致目录断层











