I'm using enumitem and cleveref packages and I would like to enforce a different behaviour of \ref and \cref for {enumerate} lists.
More precisely, whenever I have lists in a theorem environment I add a label=... and ref=... options to enumerate so to include theorem prefix (Thm, Lem, Prop, ...) and corresponding number.
However, in the proof of the theorem I would like to avoid such redundant prefix, and I was hoping to achieve this by specifying different behaviours of \ref and \cref commands. The problem would be solved if enumitem offered a cref=... option to enumerate environment, which however is not the case.
EDIT: I changed the MWE to remove possible ambiguities.
I'm posting the following MWE hoping that it can help clarify what I want: specifically, (notice the different use of \ref and \cref for referring to items in the same Theorem being proved or in the external Theorem, which, however, are typeset the same) I would like to eliminate the prefix "Thm. 1.2" when referencing the items of the Theorem in its proof.
And yes, everything should be compatible with hyperref...
\documentclass[english]{amsart}
\usepackage[english]{babel}
\usepackage{enumitem}
\usepackage[colorlinks=true]{hyperref}
\usepackage{amsthm}
\usepackage{cleveref}
\newtheorem{thm}{Theorem}[section]
% cleveref options for thm
\crefname{thm}{Thm.}{Thm.}
\crefformat{thm}{#2Thm. #1#3}
% cleveref options for enumi: remove "item "
\crefformat{enumi}{#2#1#3}
\begin{document}
\section{First section}
\begin{thm}\label{Thm:One}
The following properties hold:
\begin{enumerate}[{label=(\alph*)},{ref=\cref{Thm:One}(\alph*)}]
\item\label{Thm:One:1} \(1>0\)
\item\label{Thm:One:2} \(0<1\)
\end{enumerate}
\end{thm}
\begin{thm}\label{Thm:Two}
The following properties hold:
\begin{enumerate}[{label=(\alph*)},{ref=\cref{Thm:Two}(\alph*)}]
\item\label{Thm:Two:1} \(2>1\)
\item\label{Thm:Two:2} \(1<2\)
\end{enumerate}
\begin{proof}
\ref{Thm:Two:1} follows from \cref{Thm:One:1} by adding 1 on both sides and similarly \ref{Thm:Two:2} follows from \cref{Thm:One:2}.
\end{proof}
\end{thm}
\end{document}



\refand\crefwould still behave the same also inproofenvirinoment. I mean, what if I want to refer to an external Lemma in the proof? – AndreasT Mar 07 '16 at 20:54\refand\cref– AndreasT Mar 07 '16 at 21:08outer\crefformat, i.e. a wrapper command – Mar 07 '16 at 21:33\Lemcrefextand\Thmcrefext(and possibly others) with in a single\crefextas follows, right?\newcommand{\crefext}[1]{%
\begingroup
\crefformat{lem}{##2Lem. ##1##3}
\crefformat{thm}{##2Thm. ##1##3}
...
\cref{#1}%
\endgroup
}
– AndreasT Mar 07 '16 at 22:01\crefformat{thm}{#2Thm. #1#3}to either\crefformat{thm}{#2Thm.\ #1#3}or\crefformat{thm}{#2Thm.~#1#3}. (I prefer the second form...) (ii) There seems to be spurious space before "Lem."; add a%character after\crefformat{lem}{##2Lem.\ ##1##3}to fix this. – Mico Mar 08 '16 at 09:12