为什么使用 \ref{fig:customers} 显示标签时缺少“Figure”一词?

为什么使用 \ref{fig:customers} 显示标签时缺少“Figure”一词?

我有一张需要引用的图,如下所示。为什么显示\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

对某些特定计数器的引用的默认行为不提供该计数器的名称(比如figuretable等等)。

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}

在此处输入图片描述

相关内容