我在 LaTeX 文档中创建了两个表格:
\begin{table}[hb]
\centering
\begin{tabular}{|c|c|r|}
\hline
... not important...
\end{tabular}
\label{tab:2}
\caption{Določanje prioritet mojstrov znotraj registra AHB0\_EXTPRIO \cite[str.~507]{lpc3141datasheet}.}
\end{table}
和
\begin{landscape}
\begin{table}[ht]
\tiny{
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}
...not important...
\end{tabular}
}
\label{tab:1}
\caption{Tabela kriterijev.}
\end{table}
\end{landscape}
当我引用这两个表时,如下所示:
\ref{tab:1}
\ref{tab:2}
我在文本和标题中得到不同的数字。
- 表格1:标题编号3.1,文中编号3.1.2 (该表位于3.1.2)
- 表 2:标题编号3.2,文中编号3.1.3 (该表位于3.1.3)
看起来我的表格的子部分编号与标题编号不匹配。这是为什么?我该如何解决这个问题?
答案1
引用实际指向的是,\caption
因为这是相关计数器被\refstepcounter
编辑的位置。也就是说,在 LaTeX 读取标题之前,标签将指向标签/引用机制“可见”的最后一个内容。在本例中,这是子节标题。
因此将标签放在计数器后面,它应该可以按预期工作。
引用/标签机制的工作方式如下:
- 各种各样的东西(比如
\section
、\begin{equation}
和\caption
)都用来\refstepcounter
将计数器向前移动,这使得该计数器的值成为引人注目的东西\label
。 - 当你
\label
做某事时,它会将一些内容写入文件,.aux
效果是“如果你看到这个\ref
,请打印一个适当格式的计数器当前值版本。” - 诸如 之类的东西
equation
会告诉\label
你在环境中时要注意方程计数器。 也是如此table
。因此环境外的标签将再次指向该部分。
因此,当您将 放在\label
之前时\caption
,\label
设置为引用设置它的最后一个内容,即子部分。因此标签必须位于标题之后和环境结束之前,才能正确引用表格。
这里有一个小例子来强调上述几点:
\documentclass{article}
\begin{document}
\stepcounter{section} % So that the labels have different values
\section{Example}
\begin{table}
\centering
\begin{tabular}{cc}
a&b\\
c&d
\end{tabular}
\label{tab:wrong}
\caption{This is a table}
\label{tab:right}
\end{table}
\label{tab:doublewrong}
\begin{equation}
x=y
\end{equation}
\label{eq:foo}
Here is some text and a reference to the section: \ref{eq:foo}.
Here are references to the section (\ref{tab:wrong},\ref{tab:doublewrong}) and the table (\ref{tab:right})
\end{document}
答案2
你应该总是把\label
后面放上\caption
,例如
...
\end{tabular}
\caption{Določanje prioritet mojstrov znotraj registra AHB0\_EXTPRIO \cite[str.~507]{lpc3141datasheet}.}
\label{tab:2}
答案3
尝试将其放置\label
在标题中:
\begin{table}
\caption{\label{t:1} Tabe caption.}
\begin{tabular}{c c}
a & b \\
c& d \\
\end{tabular}
\end{table}
为我从事statsoc
文档类工作。