LaTeX 编译失败怎么办?3 步定位错误并修复
编译后先看本次任务状态,再查看第一条实际错误。不要从最后一条报错倒着修:后续消息可能只是同一处问题引起的连锁反应。
第一步:确认本次状态与第一条错误
等待排队或运行中的任务结束。编译完成后,点击顶部“Bug”图标,查看错误列表和“原始日志”。两种常见格式如下:
! Undefined control sequence.
l.42 \texbf{Results}
./main.tex:42: Undefined control sequence.
这里的 \texbf 是拼写错误,应为 \textbf。参考文献处理、超时等失败不一定采用这两种格式,应查看对应失败信息。
第二步:根据文件、行号和上下文定位
l.42 或 main.tex:42 表示发现问题的行,不一定就是最初写错的位置。缺少 } 时,错误可能到下一段才暴露。先确认是主文件、章节还是模板文件,再向前检查括号与环境。
有有效文件名与行号的条目可点击“定位到所在位置”。修正第一处错误后重新编译,再判断还有哪些独立问题。
第三步:在副本中按完整代码块缩小范围
先下载项目源码或保留可恢复记录,再进行大范围排查:
- 先看最近修改的段落。
- 按完整章节、闭合公式、表格或列表划分,不截断命令参数。
- 暂时移除约一半待查内容,保留导言区与被依赖的定义。
- 根据原错误是否仍出现继续缩小;出现新的未定义命令时,先恢复被遗漏的依赖。
有 PDF 不等于没有错误
- 只有警告时可能已经生成 PDF,但仍需检查溢出和排版。
- 修改尚未成功编译时,预览可能仍是旧结果;确认主文件与本次状态。
- “预览含错误,尚未通过验证”表示仍需排查,不能仅凭能看见 PDF 判断成功。
用最小项目对照
在空白测试项目中选择 XeLaTeX,并将下面的完整内容放入主文件。然后逐块加入原项目内容与依赖:
\documentclass[UTF8,a4paper,11pt]{ctexart}
\usepackage{amsmath}
\begin{document}
这是一个可独立测试的最小文档。
\end{document}
三类常见错误
| 提示 | 可能原因 | 处理 |
|---|---|---|
Undefined control sequence | 拼写错误或命令未定义 | 核对拼写、宏定义和对应宏包 |
Missing $ inserted | 数学内容放在普通文本中 | 将数学内容放入 \(...\) 等数学环境 |
Extra }, or forgotten $ | 分组或数学定界符不配对 | 从报错行向前检查括号和数学环境 |
让 Agent 辅助排错
在 Bug 面板点击“AI修复”,会打开 Agent 并提交排错请求。也可在 Chat & Agent 中明确要求:“定位当前项目第一条实际编译错误,只做必要修改,编译后说明剩余问题。”检查修改和本次编译结果,再核对 PDF。
参考文献问题可阅读文献管理教程;AI 生成内容的问题见减少 AI 编译错误。