
Me preguntaba si es posible utilizar ambas opciones (nombre de referencia completo y abreviaturas de los nombres de referencia) en el cleveref
paquete.
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 \Cref
en \cref
forma 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.