CorTeX 文档打开 CorTeX
打开 CorTeX
浏览全部主题

修复“Undefined control sequence”

将未知命令追溯到拼写、缺失宏包、不可用定义或作用域问题。

本页内容

Undefined control sequence 表示 LaTeX 不认识刚读到的命令。常见原因是拼写错误、宏包未加载、项目宏在定义前被使用,或定义已超出作用域。

找出未知命令#

打开问题,检查第一个错误。编译上下文通常会在报告行附近显示命令。修改导言区前,先核对拼写和大小写。

The domain is \(\mathbb{R}\). % Error unless a package defines \mathbb
The estimate is \(\alhpa\).   % Typo: the command is \alpha
The domain is \(\R\).         % Error unless the project defines \R

在项目中搜索该命令。对能够识别的定义,可以使用转到定义跨文件查看。如果命令来自论文或模板,应检查引入它的源代码,而不是根据名称猜测。

按原因修复#

对于文档明确说明的宏包命令,在导言区加载所属宏包一次。对于项目缩写,应在使用前定义:

LaTeX 源代码
\documentclass{article}
\usepackage{amssymb}
\newcommand{\R}{\mathbb{R}}
\begin{document}
The function maps \(\R\) to \(\R\).
\end{document}

如果希望在同名命令已被定义时报告错误,使用 \newcommand。放在分组或环境内部的定义,可能在右花括号或 \end 处失效;供整篇文档使用的定义应放到主导言区。如果定义位于 macros.tex,确认主文档在首次使用之前加载该文件。

不要试探性堆加宏包#

不要不断添加无关宏包直到错误消失。宏包可能改变其他命令、选项、间距和模板行为。请在宏包或投稿方文档中查明命令来源,确认所选 TeX Live 快照包含该宏包,然后只加载真正需要的宏包。

如果定义文件、.sty.cls 无法加载,请先修复找不到文件的错误。如果命令只在特定引擎或文档类下定义,应选择要求的引擎、文档类,或使用支持的替代方式,不要直接复制模板内部定义。

每次修复后重新编译,确认原命令已正确解析,且 PDF 使用预期符号;仅仅换成另一条首个错误还不算完成。若有多项无关故障,请返回解决 LaTeX 编译问题,始终从当前第一个错误继续。