Cleveref - use abreviações e nomes de referência completos

Cleveref - use abreviações e nomes de referência completos

Fiquei me perguntando se é possível usar as duas opções (nome de referência completo e abreviações de nomes de referência) no cleverefpacote.

O caso em questão é um documento contendo referências em modo texto e referências acima =de sinais em modo matemático (por exemplo, no exemplo abaixo). Idealmente, eu gostaria de usar o nome de referência completo (Teorema 0.1) em modo texto, enquanto uso a versão abreviada (Thm. 0.1 ou algo parecido) em casos como $\stackrel{\text{\Cref{th:theorem1}}}{=}$por motivos de espaço necessário para imprimir a referência acima do =sinal.

Alguém sabe como alcançar isso?

Abaixo está um exemplo mínimo de trabalho:

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

Responder1

Obrigado ao leandriis por dar a dica:smartef - usando referências abreviadas e completas?

Esta solução modificada funciona para ambos \Crefe \crefna forma abreviada e não 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 seja útil.

informação relacionada