ChatGPT 在页面中呈现的 LaTeX 数学公式很漂亮。但当你试图保存对话时,数学公式就变成了原始的 $$ \int_0^\infty e^{-x^2} dx $$ 源码。或者更糟——变成一堆横向打印的 Unicode 乱码。
为什么会这样,以及如何为每种导出格式解决这个问题。
为什么 LaTeX 在导出时会损坏
ChatGPT 的 Web 客户端使用 KaTeX 渲染 LaTeX——数学公式是一个包含排版 SVG/HTML 的 <span>。实际的 LaTeX 源码作为 data- 属性保留在同一 span 上。
当你复制渲染后的页面(或在 Chrome 中使用“打印为 PDF”)时,浏览器会捕获可见的结果——但只捕获适合布局的内容。长篇的显示公式会被截断。如果字体缺少字形,内联 \Sigma 字符会打印为随机的 Unicode。数据属性——即实际的 LaTeX——会被丢弃。
所以复制粘贴会丢失数学公式。打印为 PDF 会弄乱它们。解决方案是在渲染之前提取 LaTeX 源码,然后在导出中显式渲染它。
各格式操作手册
使用 ChatExport AI 的 PDF 导出。它会提取每个 LaTeX 块作为原始源码,通过捆绑的 KaTeX 渲染为正确的 SVG,然后组成 PDF。内联数学、显示数学、矩阵、大 O 符号、积分——全部排版正确。
对于任何包含数学公式的对话,避免使用 Chrome 内置的打印为 PDF 功能。输出对于任何严肃用途都不可用。
Word (.docx)
.docx 格式有原生的方程类型(Office Math)。ChatExport AI 的 Word 导出 默认将 LaTeX 作为等宽围栏文本输出——Word 可以通过 插入 → 方程 → LaTeX 流程将其转换为排版的数学公式。(直接发出 Office Math 已在路线图中。)
如果你绝对需要文档中立即有排版的数学公式,请导出 PDF 并将 PDF 页面作为图像嵌入 .docx 中。
Markdown
很简单——只需保留定界符。$inline$ 和 $$display$$ 是标准的 CommonMark 数学约定。ChatExport AI 的 Markdown 导出 会逐字节保留它们。
导出的 .md 在以下环境中正常工作:
- Obsidian——自 v0.10 起原生支持数学。
- MkDocs Material——使用
pymdownx.arithmatex扩展。 - VitePress——通过
markdown-it-mathjax3插件。 - Quartz——内置。
- GitHub gists——是的,GitHub 自 2022 年起在 gist 中渲染
$..$数学。
HTML(离线)
这是最持久的格式。ChatExport AI 的 HTML 导出将 KaTeX 捆绑在文件内,因此即使没有网络连接,数学公式也能渲染。结果是单个自包含的 .html,你可以通过电子邮件发送、放入 U 盘或存档十年。
JSON
用于管道:ChatExport AI 的 JSON 导出将 LaTeX 源码作为每个回合的单独字段(content_latex)与渲染的回退一起保留。RAG 系统和微调数据集可以获得干净的 LaTeX 字符串。
常见陷阱
陷阱 1:“在聊天中看起来没问题,但导出时就坏了。” ——这就是关键。聊天显示的是渲染后的输出;导出捕获的是源码。如果导出工具不重新渲染,你就会得到原始的 $$。
陷阱 2:“我从聊天中复制数学公式到 Word,结果全错了。” ——Word 不渲染 LaTeX。请导出到能够渲染的工具。
陷阱 3:“为什么我的希腊字母显示为方框?” ——你的查看器字体缺少字形。HTML / PDF 中的 KaTeX 通过将数学渲染为正确的路径而不是字符来避免这种情况。
当数学公式太长而无法渲染时
有些矩阵和证明比打印页面还宽。ChatExport AI 的 PDF 导出会自动缩小显示数学以适合页面宽度。如果矩阵确实比这更宽,它会将该块切换到横向页面方向。
对于 Markdown,你必须手动拆分矩阵——在静态文档中没有可移植的方式来表示“比页面更宽则滚动”。
试试看
免费安装 ChatExport AI,下次保存的包含大量数学公式的 ChatGPT 对话将得到正确的排版。免费版每天支持 5 次导出。
相关
- ChatGPT 转 PDF 指南
- 如何将 ChatGPT 导出为 Markdown
- 面向学生——数学密集的学习笔记。
- 面向研究人员——LaTeX 密集的研究存档。