我正在使用\autoref
包装中附带的标签超链接用于引用我的算法、图表等。我读到它会自动调整参考文本的大小写,但它不适用于我的设置。当我编译代码时,所有内容(页面、文本、链接)都正确放置,除了以下示例中的大小写:
如图 9.7 所示,这 [...]
备注:我的设置可能有问题 - 文本部分(如章节、节、小节)的链接以及“算法”(algorithm2e.sty)等浮动环境的大小写都正确。引用图形和公式时大小写错误。
答案1
hyperref.sty
确实包括以下代码片段(有时带有名称,但并不总是大写):
\def\HyLang@english{%
\def\equationautorefname{Equation}%
\def\footnoteautorefname{footnote}%
\def\itemautorefname{item}%
\def\figureautorefname{Figure}%
\def\tableautorefname{Table}%
\def\partautorefname{Part}%
\def\appendixautorefname{Appendix}%
\def\chapterautorefname{chapter}%
\def\sectionautorefname{section}%
\def\subsectionautorefname{subsection}%
\def\subsubsectionautorefname{subsubsection}%
\def\paragraphautorefname{paragraph}%
\def\subparagraphautorefname{subparagraph}%
\def\FancyVerbLineautorefname{line}%
\def\theoremautorefname{Theorem}%
\def\pageautorefname{page}%
}
解决方案:重新定义“有问题的”名称宏。
\documentclass{article}
\usepackage{hyperref}
\renewcommand*{\figureautorefname}{figure}
\begin{document}
\begin{figure}
\centering
\rule{1cm}{1cm}
\caption{foo}\label{fig:foo}
\end{figure}
As shown in \autoref{fig:foo}~\dots
\end{document}
答案2
如..所示通过步调一致您可以使用cleveref
控制大小写。只需加载cleveref
,但请确保在 之后加载hyperref
,并使用\cref
进行小写交叉引用,\Cref
使用 进行大写交叉引用。除了能够处理大小写之外,cleveref
还可以处理标签范围和比 更多的语言\autoref
。
以下是如何使用它的示例:
\documentclass{article}
\usepackage{mwe}
\usepackage{hyperref}
\usepackage{cleveref}% Has to be loaded after hyperref
\begin{document}
\begin{figure}
\centering
\includegraphics[width=.48\linewidth]{example-image-a}
\caption{foo}\label{fig:foo}
\end{figure}
As shown in \cref{fig:foo}~\dots
\Cref{fig:foo} shows~\dots
\end{document}
请注意,如果您希望交叉引用链接包含名称,例如“图 1”,而不仅仅是“1”,则必须cleveref
使用选项加载nameinlink
。还请注意,如果您希望它不是缩写交叉引用名称,例如“图 1”而不是“图 1”,您必须cleveref
使用选项加载noabbrev
。