以此为例
\begin{figure}[htbp]
\centering
\includegraphics[keepaspectratio, width=0.8\linewidth]{transformer_img.pdf}
\caption{Transformer}
\label{fig:transformer}
\end{figure}
我在网上搜索过,但没有找到类似的问题?很多问题都是这样的将 \label 嵌套在 \caption 中和将 \label 放在 \caption 外面有什么区别吗?没有告诉我它们之间的区别。
我想知道人们在哪里学到这个基础知识?
另外,据我模糊的理解,使用后,\label{fig:transformer}
我可以使用 在任何地方交叉引用该图\ref{fig:transformer}
。对吗?除此之外,还可以在哪里\label
使用?
答案1
以下是我针对入门到中级水平所表达的一些想法。
对于浮动环境 —— 包括
figure
和table
环境,\caption
可以在不使用的情况下使用\label
,但\label
没有\caption
不会产生所需的结果。LaTeX 内核提供的两个浮动环境分别称为
figure
和table
。这两个环境都可以接受一个或多个\caption
指令。一些 LaTeX 软件包要么提供“开箱即用”的附加“浮动”环境(例如,软件包algorithm
提供algorithm
float ),要么让用户相当直接地从头开始创建新的浮动环境。LaTeX 内核提供的主要交叉引用机制建立在
\label
和\ref
语句之上。如果放置正确,则会在和 最近增加的 LaTeX 计数器变量的值
\label{<arg>}
之间建立关联。相反,输出与 关联的计数器的值。<arg>
\ref{<arg>}
<arg>
上面使用的条件“如果放置正确”意味着,对于
figure
和table
浮动,\label
指令必须紧随其后指令\caption
。为什么?因为指令分别递增了称为和 的\caption
计数器。顺便说一句,指令是放在指令参数内部还是外部(但在之后)并不重要。(“外部但在之后”是指指令应该放在figure
table
\label
\caption
\label
前\label
当前浮动环境结束。实际上,如果你在 之后立即放置 ,就不会出错\caption
。几个 LaTeX 软件包,包括prettyref,智能参考,花哨的,超链接, 和聪明人,提供了创建交叉引用的其他可能性。其中一些包(尤其是
hyperref
和cleveref
)修改了基本指令的默认属性\label
。有关这些包的更多信息,请参阅帖子交叉引用包:使用哪一个,哪些有冲突?
希望这可以帮助。