![LaTEX 无法引用图形。使用 texstudio 作为编辑器](https://linux22.com/image/349979/LaTEX%20%E6%97%A0%E6%B3%95%E5%BC%95%E7%94%A8%E5%9B%BE%E5%BD%A2%E3%80%82%E4%BD%BF%E7%94%A8%20texstudio%20%E4%BD%9C%E4%B8%BA%E7%BC%96%E8%BE%91%E5%99%A8.png)
我有下图:
\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 才能查看参考文献中的标签信息。