Autoref 插入的文本大小写不正确

Autoref 插入的文本大小写不正确

我正在使用\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

相关内容