我有下图:
\begin{figure}[h!]
\begin{center}
\includegraphics[scale=1]{image/a.pdf}
\caption{a}
\end{center}
\label{fig:a}
\end{figure}
并在文本中间的某处调用它:
\ref{fig:a}
pdf 中的输出仅显示为:
Figure ??
我必须改变什么?
编辑:我将命令\lable{fig:a}
上移:
\begin{figure}[h!]
\begin{center}
\includegraphics[scale=1]{image/a.pdf}
\caption{a}
\label{fig:a}
\end{center}
\end{figure}
答案1
您的代码存在几个问题。首先你不应该使用center
环境,而\centering
应该将单个图形居中。然后你应该注意:\label
应该始终与要标记的元素位于同一组级别,并且位于该元素后面(或有时位于其内部)。这里的\label
应该指的是 的计数器\caption
。因此\label
通常应放置在 后面\caption
:
\documentclass{article}
\usepackage{mwe}
\begin{document}
See figure~\ref{fig:a}.
\begin{figure}
\centering
\includegraphics{example-image}
\caption{a}
\label{fig:a}
\end{figure}
\end{document}
尽管如此,在第一次运行 LaTeX 后你仍然会得到??
:
这是因为\label
只将标签信息写入 -file ,而 LaTeX 在下次运行 LaTeX时aux
从 -file 读取它。因此总是显示上次运行 LaTeX 的信息,而不是当前运行 LaTeX 的信息。aux
\begin{document}
\ref
第二次运行 LaTeX 后,你会看到:
因此,如果添加新标签,则始终需要至少运行两次 LaTeX 才能查看参考文献中的标签信息。