为什么 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。更稳的做法是:
- 复制 GPT 生成的整篇文章。
- 粘贴到 Codex 的聊天框里。
- 让 Codex 只做一件事:检查并修正 Obsidian 兼容的 LaTeX 公式。
- 把 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}
$$
不要把二者混在一起。比如向量长度更适合写成 ,而不是 。
一个可以直接复制的 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。