通常当我使用\ref
它来引用图形、表格和公式时,我只会得到数字。我的意思是,文档中唯一可点击的部分和显示的部分是数字。我想自动包含图形的名称。因此,当我\ref{}
在图形上使用时,我不需要在前面手动添加文本“图形” \ref{}
。如何实现这一点?
为了清楚地解释我的问题,下面是示例:
原始输入:
\documentclass{article}
\usepackage{graphicx, hyperref, caption}
\begin{document}
the data is shown in Figure \ref{fig:figure}.
\begin{figure}[htb]
\centering
\includegraphics{figure1}
\caption{This is a figure}
\label{fig:figure}
\end{figure}
\end{document}
如您所见,我仍然需要手动添加“图形”文本。我希望只需使用\ref{fig:figure}
答案1
借助该cleveref
包。当然,可以根据您的需要调整输出。如果您想\cref
输出“figure”而不是“fig.”,请将noabbrev
选项添加到cleveref
包中。
关于序言中软件包加载顺序的附注:大多数情况下,加载顺序并不重要,但这里很重要。通常,软件包hyperref
应该是序言中的最后一个软件包,但也有少数例外,例如cleveref
,它应该在之后加载hyperref
。
\documentclass{article}
\usepackage{graphicx, caption}
\usepackage{hyperref}
\usepackage{cleveref}
\begin{document}
with ref: Figure \ref{fig:figure}
with cref: \cref{fig:figure} (For the use in the middle of a sentence)
%If you don't want "fig.", but "figure", add the noabbrev to the cleveref package.
with Cref: \Cref{fig:figure} (For the use as the beginning of a sentence)
\begin{figure}[htb]
\centering
\includegraphics{example-image}
\caption{This is a figure}
\label{fig:figure}
\end{figure}
\end{document}