I would not modify the workings of \cref
and friends directly. Instead, I would create a new macro called \pcref
-- short for "parenthetic \cref", I suppose -- as follows:
\newcommand\pcref[1]{(\cref{#1})}
As you can probably guess, \pcref
places round parentheses around the output of \cref
. No need for lots of separate \crefformat
directives. This approach preserves access to the standard definition of \cref
, should the need to do so arise.
For the following screenshot, I loaded the hyperref
package and specified the cleveref
option nameinlink
, in order to make visible what is, and is not, produced by \cref
.

\documentclass{article}
\usepackage[colorlinks,allcolors=blue]{hyperref} % optional
\usepackage[noabbrev,nameinlink]{cleveref}
\newcommand\pcref[1]{(\cref{#1})}
\begin{document}
\begin{figure}[t!] \caption{foo}\label{fig:foo}\end{figure}
\begin{figure}[h!] \caption{bar}\label{fig:bar}\end{figure}
\begin{table}[h!] \caption{foo}\label{tab:foo}\end{table}
\dots\ \pcref{fig:foo}, \pcref{fig:foo,fig:bar}, \pcref{tab:foo,fig:bar}, \dots
\bigskip vs.
\bigskip
\dots\ \cref{fig:foo}, \cref{fig:foo,fig:bar}, \cref{tab:foo,fig:bar}, \dots
\end{document}
\cref
on itself.\cref
for parenthesis-less refs. Is there any good reason against?\makeatletter \let\my@command\cref \renewcommand\cref[1]{[\my@command{#1}]} \makeatother