Cleveref: utilice abreviaturas y nombres de referencia completos

Cleveref: utilice abreviaturas y nombres de referencia completos

Me preguntaba si es posible utilizar ambas opciones (nombre de referencia completo y abreviaturas de los nombres de referencia) en el cleverefpaquete.

El caso que nos ocupa es un documento que contiene referencias en modo texto y referencias sobre =signos en modo matemático (por ejemplo, en el ejemplo siguiente). Idealmente, me gustaría usar el nombre completo de la referencia (Teorema 0.1) en modo texto, mientras uso la versión abreviada (Thm. 0.1 o algo así) en casos como $\stackrel{\text{\Cref{th:theorem1}}}{=}$por razones del espacio requerido para imprimir la referencia encima del =signo.

¿Alguien sabe como lograr esto?

A continuación se muestra un ejemplo de trabajo mínimo:

\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}

Respuesta1

Gracias a leandriis por dar la pista:Cleveref: ¿utiliza referencias tanto abreviadas como completas?

Esta solución modificada funciona tanto \Crefen \crefforma abreviada como no abreviada:

\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}}}

Espero que sea util.

información relacionada