autoref:短标签和长标签

autoref:短标签和长标签

我知道 \autoref 可以生成像定理 12 或 Thm. 12 等这样的引用,其中标签始终相同。有没有办法让 autoref 有短版和长版?有时我会在方程式中引用定理,我不想要命题 12 之类的东西,而是想要一个缩写。在正文中,我总是想要长格式。有没有一种轻松的方法可以做到这一点?

答案1

\autoref我建议您不要使用,而是加载cleveref包,然后将缩写标签分配给\cref(通过\crefname指令),将非缩写标签分配给\Cref(通过\Crefname指令)。

在此处输入图片描述

\documentclass{article}
\usepackage{ntheorem}
\usepackage[colorlinks]{hyperref}
\usepackage[nameinlink]{cleveref} % make look of \cref emulate that of \autoref
\newtheorem{prop}{Proposition}
\crefname{prop}{Prop.}{Props.}             % abbreviated labels
\Crefname{prop}{Proposition}{Propositions} % non-abbreviated labels

\begin{document}
\begin{prop} \label{prop:hello}
Hello.
\end{prop}
\cref{prop:hello}, \Cref{prop:hello}
\end{document}

答案2

以下示例定义了一个宏\shortautoref,它重新定义了 的名称\autoref。作为示例,使用了一个节引用。只需根据需要扩展重新定义的列表即可。

\documentclass{article}
\usepackage[colorlinks]{hyperref}

\newcommand*{\shortautoref}[1]{%
  \begingroup
    \def\sectionautorefname{sec.}%
    \autoref{#1}%
  \endgroup
}

\begin{document}
  \section{First section}
  \label{sec:first}
  Autoref: \autoref{sec:first}\\
  Short autoref: \shortautoref{sec:first}
\end{document}

结果

相关内容