LaTeX 编译失败怎么办?3 步定位错误并修复

帮助EasyLaTeX发布于

编译后先看本次任务状态,再查看第一条实际错误。不要从最后一条报错倒着修:后续消息可能只是同一处问题引起的连锁反应。

第一步:确认本次状态与第一条错误

等待排队或运行中的任务结束。编译完成后,点击顶部“Bug”图标,查看错误列表和“原始日志”。两种常见格式如下:

! Undefined control sequence.
l.42 \texbf{Results}
./main.tex:42: Undefined control sequence.

这里的 \texbf 是拼写错误,应为 \textbf。参考文献处理、超时等失败不一定采用这两种格式,应查看对应失败信息。

第二步:根据文件、行号和上下文定位

l.42 或 main.tex:42 表示发现问题的行,不一定就是最初写错的位置。缺少 } 时,错误可能到下一段才暴露。先确认是主文件、章节还是模板文件,再向前检查括号与环境。

有有效文件名与行号的条目可点击“定位到所在位置”。修正第一处错误后重新编译,再判断还有哪些独立问题。

第三步:在副本中按完整代码块缩小范围

先下载项目源码或保留可恢复记录,再进行大范围排查:

  1. 先看最近修改的段落。
  2. 按完整章节、闭合公式、表格或列表划分,不截断命令参数。
  3. 暂时移除约一半待查内容,保留导言区与被依赖的定义。
  4. 根据原错误是否仍出现继续缩小;出现新的未定义命令时,先恢复被遗漏的依赖。

有 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 编译错误。