为什么 GPT 写出来的 LaTeX 公式会乱码

很多人用 GPT 写论文笔记、数学推导或算法解释时,会遇到一个很烦的问题:正文看起来没问题,但复制到 Obsidian 之后,公式突然渲染失败。

常见原因通常不是公式本身太复杂,而是格式不符合 Obsidian 的 LaTeX 渲染习惯。例如:

  • 行内公式没有统一用 $...$ 包裹。
  • 独立公式没有统一用 $$...$$ 包裹。
  • GPT 把 Markdown 标题符号混进了公式环境。
  • 集合符号 {} 没有转义成 \{ \}
  • 下标、上标、多字符变量没有加花括号。
  • cases 环境没有用 \\ 正确换行。
  • 范数 \|x\| 和绝对值 |x| 混用。

解决办法不要靠每次手动修。最稳定的流程是两步:第一步让 GPT 一开始就按 Obsidian 规则生成,第二步再让 Codex 专门检查和修正 LaTeX。

第一步:先用固定提示词约束 GPT

在让 GPT 写任何包含数学公式的文章之前,先把下面这段提示词发给它:

请记住:以后回答我的问题时,所有数学公式必须兼容 Obsidian 的 LaTeX 渲染规则。行内公式统一使用 $...$ 包裹,独立公式统一使用 $$...$$ 包裹。不要在公式环境中混入 Markdown 标题符号(如 #、##)。所有 LaTeX 特殊字符必须正确转义,例如集合符号使用 \{ \},绝对值和范数区分使用 | | 和 \| \|。所有下标、上标、多字符命令参数都使用花括号,例如 \hat{Y}、x_{i}、^{T}。cases 环境必须使用 \\ 换行。输出公式前检查 LaTeX 语法,确保可以直接复制到 Obsidian 中渲染。

这段提示词的作用,是提前告诉 GPT:不要只写“看起来像 LaTeX”的公式,而是要写可以直接复制到 Obsidian 里渲染的公式。

第二步:把文章交给 Codex 修公式

GPT 生成文章之后,不要急着直接放进 Obsidian。更稳的做法是:

  1. 复制 GPT 生成的整篇文章。
  2. 粘贴到 Codex 的聊天框里。
  3. 让 Codex 只做一件事:检查并修正 Obsidian 兼容的 LaTeX 公式。
  4. 把 Codex 修正后的版本再复制到 Obsidian。

可以给 Codex 这样一句话:

请只修正下面文章中的 LaTeX 公式格式,使其兼容 Obsidian 渲染规则。不要改写正文意思,不要扩写内容,不要删减段落。请检查行内公式、独立公式、上下标、花括号、集合符号、cases 换行、绝对值和范数。

然后把文章粘贴在后面即可。

这个步骤的重点不是让 Codex 重新写文章,而是让它当“公式格式校对员”。这样比自己一个个查 $_^\\ 省心很多。

推荐的最终工作流

最省事的流程可以固定成这样:

GPT 写文章前:先发送 Obsidian LaTeX 规则提示词
        ↓
GPT 生成包含公式的文章
        ↓
复制全文给 Codex
        ↓
Codex 只修 LaTeX 格式,不改正文含义
        ↓
复制修正版到 Obsidian
        ↓
检查预览渲染是否正常

常见错误和正确写法

1. 行内公式

错误写法:

令 x_i 表示第 i 个样本。

更稳的写法:

令 $x_{i}$ 表示第 $i$ 个样本。

2. 独立公式

错误写法:

# L = sum_i loss_i

正确写法:

$$
L = \sum_{i=1}^{n} \ell_{i}
$$

3. 集合符号

错误写法:

A = {x_1, x_2, x_3}

正确写法:

$$
A = \{x_{1}, x_{2}, x_{3}\}
$$

4. 下标和上标

不推荐:

x_i^T W x_i

推荐:

$$
x_{i}^{T} W x_{i}
$$

多字符下标尤其要加花括号:

$$
h_{node}^{(l+1)}
$$

更稳写法是:

$$
h_{\text{node}}^{(l+1)}
$$

5. cases 环境

错误写法:

$$
f(x)=\begin{cases}
x, x>0
0, x\le 0
\end{cases}
$$

正确写法:

$$
f(x)=\begin{cases}
x, & x>0 \\
0, & x\le 0
\end{cases}
$$

注意:cases 环境里每一行之间要用 \\ 换行。

6. 绝对值和范数

绝对值通常写成:

$$
|x|
$$

范数通常写成:

$$
\|x\|_{2}
$$

不要把二者混在一起。比如向量长度更适合写成 x2\|x\|_{2},而不是 x|x|

一个可以直接复制的 Codex 修正提示词

以后你可以把下面这段收藏起来:

请检查并修正下面文章中的 LaTeX 公式,使其兼容 Obsidian 渲染规则:

1. 行内公式统一使用 $...$。
2. 独立公式统一使用 $$...$$。
3. 不要在公式环境中混入 Markdown 标题符号,如 #、##。
4. 集合符号必须写成 \{ \}。
5. 所有下标、上标、多字符命令参数必须使用花括号,例如 x_{i}、\hat{Y}、^{T}。
6. cases 环境必须使用 \\ 换行。
7. 区分绝对值 |x| 和范数 \|x\|。
8. 不要改写正文含义,不要扩写内容,只修公式格式和必要的公式标点。

下面是文章:

把文章粘贴在这段话后面即可。

最后检查清单

复制到 Obsidian 前,可以快速检查这几项:

  • 行内公式是不是 $...$
  • 独立公式是不是 $$...$$
  • 公式块里有没有混入 # 或列表符号。
  • {} 是否需要写成 \{ \}
  • 下标和上标是否写成 x_{i}a^{T}
  • cases 是否用 \\ 换行。
  • 范数是否写成 \|x\|
  • Obsidian 预览模式是否能正常渲染。

这个流程的核心就是一句话:先让 GPT 少犯错,再让 Codex 专门做公式体检,最后再进 Obsidian。