
Ich habe mich gefragt, ob es möglich ist, beide Optionen (vollständiger Referenzname und Abkürzungen von Referenznamen) im cleveref
Paket zu verwenden.
Im vorliegenden Fall handelt es sich um ein Dokument, das sowohl Referenzen im Textmodus als auch Referenzen über =
Vorzeichen im Mathematikmodus enthält (z. B. im folgenden Beispiel). Idealerweise würde ich im Textmodus den vollständigen Referenznamen (Theorem 0.1) verwenden, während ich in Fällen, in denen beispielsweise $\stackrel{\text{\Cref{th:theorem1}}}{=}$
der Platzbedarf für den Ausdruck der Referenz über dem =
Vorzeichen zu gering ist, die abgekürzte Version (Thm. 0.1 oder so ähnlich) verwenden möchte.
Weiß jemand, wie das erreicht wird?
Unten sehen Sie ein minimal funktionierendes Beispiel:
\documentclass[a4paper,english]{scrbook}
\usepackage{amsthm}
\usepackage{amsmath}
\usepackage[nameinlink, noabbrev]{cleveref}
\newtheorem{theorem}{Theorem}[chapter]
\newtheorem*{theorem*}{Theorem}
\begin{document}
\begin{theorem}\label{th:theorem1}
If $A$ is closed, then $A$ is closed.
\end{theorem}
\begin{proof}
Left to the reader.
\end{proof}
In \Cref{th:theorem1} we have seen that ...
\begin{equation}
a + b \stackrel{\text{\Cref{th:theorem1}}}{=} 0\,.
\end{equation}
\end{document}
Antwort1
Danke an leandriis für den Hinweis:cleveref – sowohl Kurz- als auch Langformreferenzen verwenden?
Diese modifizierte Lösung funktioniert sowohl \Cref
in \cref
verkürzter als auch in unverkürzter Form:
\usepackage[nameinlink, noabbrev]{cleveref}
\DeclareRobustCommand{\abbrevcrefs}{%
\Crefname{theorem}{Thm.}{Thms.}%
\Crefname{example}{Ex.}{Exs.}%
\crefname{equation}{eqn.}{eqns.}%
}
\DeclareRobustCommand{\Cshref}[1]{{\abbrevcrefs\Cref{#1}}}
\DeclareRobustCommand{\cshref}[1]{{\abbrevcrefs\cref{#1}}}
Ich hoffe, es wird hilfreich sein.