Reference:《一份(不太)简短的LaTeX介绍》
放在这里便于查阅。
! Undefined control sequences.
使用了未定义的命令。拼写错误是原因之一,如把 \LaTeX 写作 \Latex 这样。也有可能是
没有调用某个宏包,但用了该宏包定义的命令。! LaTeX error: Environment … undefined.
使用了未定义的环境。
! Missing $ inserted.
缺少数学环境的符号 $。多由于将数学符号用在公式之外而导致。
Runaway argument?
! Paragraph ended before … was complete.
! File ended while scanning definition/use of …
这两个错误主要是由于漏写了包裹命令参数的花括号,导致识别参数时出现错误。许多编
辑器的括号配对功能有助于检查和消除这类错误。
这类错误还有可能是由于前一次编译中断导致 .aux 等辅助文件不完整,再次编译读入不
完整的文件产生错误。解决办法是删除辅助文件并重新编译。! Extra alignment tab has been changed to \cr.
! Misplaced \noalign.
两个错误信息都与表格有关。
前者的字面意义是“一行中使用的列分隔符
&
太多”,有时可能确实是&
的个数和列
格式不匹配,但多数情况是漏掉了行尾的\\
命令。后者常出现于漏掉了行尾的
\\
命令而接着使用\hline
命令画横线的时候。
! LaTeX Error: Lonely \item–perhaps a missing list environment.
! LaTeX Error: Something’s wrong–perhaps a missing \item.
两个错误信息都与列表环境和
\item
命令有关。前者意味着在没有使用列表环境的情况下
用了\item
;后者则相反,是在列表环境中漏了\item
。! I can’t find file `…’.
! LaTeX Error: File `…’ not found.
两个错误都意味着缺少文件。
- 如果使用
\input
或者\include
命令添加文件,出现上述错误的原因当然是文件不
存在或者文件名不对; - 如果错误提示里的文件名带
.cls
或者.sty
扩展名,那么很显然,是因为没有安装
所需的宏包或文档类。
- 如果使用
! LaTeX Error: Missing \begin{document}.
字面上是缺少
\begin{document}
,实际上往往是由于在\begin{document}
之前(导言
区)输入了文字或某些命令。! LaTeX Error: Can be used only in preamble.
与上一条相反,由于将必须用于导言区的命令在
\begin{document}
之后使用而产生。! LaTeX Error: \ begin{…} on input line … ended by \ end{…}.
环境首尾不匹配。比如
\begin{enumerate}
用了\end{itemize}
结尾。或者也可能是由
于漏写了\begin
或者\end
命令。! LaTeX Error: Option clash for package `…’.
以不同选项重复调用宏包造成冲突。有可能是因为其它宏包内部事先调用了这个宏包,用
户再次带选项调用而导致冲突。解决问题的办法是去掉重复调用的宏包。如果宏包允许的
话,尽量使用其定义的命令改变设置,减少宏包选项的使用。! LaTeX Error: Command … already defined,or name \end… illegal …
使用
\newcommand
或\newenvironment
定义已有的命令/环境时产生的错误。如果自己确
实作了定义,可考虑用\renewcommand
或\renewenvironment
定义;如果是宏包定义的
命令产生了这个错误,则属于隐性的宏包冲突。
相比之前的 “Option Clash”,隐性宏包冲突是更难以解决的问题,对各种宏包不熟悉的用
户,尤其是使用模板的用户而言,往往难以下手。用户可尝试查找引起冲突的宏包的帮助
文档。详尽的手册里通常会告知用户这个宏包应当在某个宏包的前面/后面调用,或者不能
与某个宏包一起调用。如果是模板调用了大量宏包导致冲突,可联系模板的作者解决。! LaTeX Error: Unknown option
...' for package
…’.调用宏包时指定了不能被其识别的选项。此时应该查找宏包的帮助文档来解决问题。
! Package `…’ error: …
宏包或文档类自定义的错误,由于不正确地使用宏包里的命令而导致。此时应该查找宏包
的帮助文档来解决问题。