Cleveref - verwenden Sie sowohl Abkürzungen als auch vollständige Referenznamen

Cleveref - verwenden Sie sowohl Abkürzungen als auch vollständige Referenznamen

Ich habe mich gefragt, ob es möglich ist, beide Optionen (vollständiger Referenzname und Abkürzungen von Referenznamen) im cleverefPaket 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 \Crefin \crefverkü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.

verwandte Informationen