LaTeX \label 命令详解
LaTeX \label 命令详解
\label{key} 记录在此之前最后一个被递增的计数器及其当前页码,供 \ref 和 \pageref 使用。放错位置(如放到 \caption 之前),引用编号即指向错误对象。
1. \label 的工作原理
\label{key} 不生成可见文字,只做两件事:
- 记录当前页码(供
\pageref使用) - 记录最近一次被递增的计数器及其当前值(供
\ref使用)
\label 只向后看——它总是引用在此之前编号过的对象。
1 | \section{引言} |
\section{引言}递增 section 计数器 →\label{sec:intro}快照该值\label本身不触发计数器递增,仅记录快照
2. 正确放置 \label 的位置
2.1 章节标题
对于 \section、\subsection 等,\label 放在标题命令之后即可:
1 | \section{实验方法} |
注意:不要放在 \section 之前——那会记录到上一个编号对象:
1 | \label{sec:method} % 错误!记录的是前一个编号 |
2.2 公式
在公式环境中,\label 放在公式内部即可:
1 | \begin{equation} |
对于 align、gather 等多行公式环境,每条 \\ 之前的行都可以有自己的 \label:
1 | \begin{align} |
2.3 列表项
在 enumerate 列表中使用 \label,必须放在 \item 之后:
1 | \begin{enumerate} |
3. 浮动体中的 \label
浮动体(figure、table)中使用 \label 是最容易出错的地方。核心规则只有一条:
\label必须跟在\caption命令后面,并且两者都要处在浮动体环境内部。
3.1 正确写法
1 | \begin{figure}[htbp] |
或者把 \label 放进 \caption 的参数里:
1 | \begin{figure}[htbp] |
3.2 为什么必须放在 \caption 之后
\label 记录最近被递增的计数器。\caption 递增 figure/table 计数器——\label 只有在其之后才能拿到正确的编号值。
\label 放在 \caption 之前 → 记录的是上一个对象的编号:
1 | \begin{figure}[htbp] |
3.3 为什么 \label 必须在浮动体内部
浮动体会自动漂移。\label 放在浮动体外部意味着它的最终页码与 \caption 不同,\pageref 返回错误页码:
1 | \begin{figure}[htbp] |
规则:**\label 必须与目标对象处于同一环境,紧跟 \caption 之后。**
4. \label 与 \captionof
\captionof 同样递增对应计数器,\label 规则不变——紧跟 \captionof 之后:
1 | \begin{center} |
5. 交叉引用:\ref 与 \pageref
\label 记录的信息需要通过 \ref 和 \pageref 来读取:
| 命令 | 作用 | 示例输出 |
|---|---|---|
\ref{key} |
返回计数器编号 | “3.2”、”1”、”I”(罗马数字) |
\pageref{key} |
返回对象所在页码 | “24”、”156” |
\nameref{key} |
返回对象标题文字 | “实验方法” |
\nameref 需要 hyperref 宏包。编号中包含章节号(如 “图 3.2”)需在导言区配置 \numberwithin{figure}{section}。
引用示例:
1 | 如图 \ref{fig:example} 所示,详见第 \pageref{fig:example} 页。 |
6. 常见错误与排查
| 错误 | 原因 | 解决方法 |
|---|---|---|
| 引用编号全为 0 或不正确 | \label 放在了 \caption 之前 |
将 \label 移到 \caption 之后 |
| 引用编号指向了错误的章/图 | \label 放在了编号命令(\section、\caption)之前 |
确保 \label 紧跟目标对象之后 |
\pageref 返回的页码不对 |
\label 放在了浮动体外部 |
将 \label 移入浮动体内部 |
| 编译出现 “undefined reference” 警告 | 首次编译时 .aux 文件尚未生成 |
再编译一次即可,连续编译两次是正常的 LaTeX 工作流 |
?? 出现在输出中 |
\label 的 key 拼写错误或未定义 |
检查 \label{key} 和 \ref{key} 的 key 是否一致 |
7. 小结
\label 的正确用法浓缩为三条规则:
\label总是记录在此之前最后一个编号对象——它只向后看,不向前看- 在章节、公式、列表等非浮动环境中,
\label紧跟目标命令之后即可 - 在浮动体(
figure、table)中,\label必须放在\caption之后、浮动体环境内部——或者直接写在\caption参数里
记住这三条,\label 的交叉引用就不会再出错了。
