我知道 \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}