我有一张需要引用的图,如下所示。为什么显示\ref{fig:customers}
标签时缺少“图”字?只显示图号:“3.2”。我怎样才能将其更改为“图 3.2”?
Potential customers are listed in the `\ref{fig:customers}` below.
\begin{figure}[htbp!]
\centering
\includegraphics[scale=0.8]{needs_customers.png}
%[clip=true]
\caption{Potential Customers, Requirement and Constraints}
\label{fig:customers}
\end{figure}
答案1
有一些软件包可以做到这一点。其中之一是hyperref
:
\documentclass{scrartcl}
\usepackage{graphicx}
\usepackage{hyperref}
\begin{document}
\begin{figure}
\centering
\includegraphics[width=0.2\textwidth]{example-image}
\caption{An example}
\label{fig:example}
\end{figure}
Please see \autoref{fig:example}.
\end{document}
另一个选项是cleveref
-package:
\documentclass{scrartcl}
\usepackage{graphicx}
\usepackage{cleveref}
\begin{document}
\begin{figure}
\centering
\includegraphics[width=0.2\textwidth]{example-image}
\caption{An example}
\label{fig:example}
\end{figure}
Please see \cref{fig:example}
\end{document}
答案2
对某些特定计数器的引用的默认行为不提供该计数器的名称(比如figure
或table
等等)。
hyperref
并且cleveref
其他软件包提供了这个缺失的功能,但是,可能还有其他软件包。
这里我提出了一个有效且相当快的解决方案,如果没有其他包的话(有时这是出版商和他们奇怪的设置所要求的!)
无需特殊包:将\p@figure
引用格式化程序宏更改为使用\figurename
。
这里使用包hyperref
来表明的重新定义\p@figure
仍然适用于hyperref
。
\documentclass{article}
\usepackage{graphicx}
\usepackage{hyperref}
\makeatletter
\renewcommand{\p@figure}{\figurename\ }
\makeatother
\begin{document}
You must see the incredible \ref{fig:foo}.
\clearpage
\begin{figure}
\centering
\caption{Foo caption}
\label{fig:foo}
\end{figure}
\end{document}