[Tex/LaTex] Not using abbreviations with cleveref

cleverefcross-referencinghyperref

I’d like to use the cleveref package but I don’t like that it inserts most names as abbreviations; for instance, it will print “… fig. 2.1 …” instead of “… figure 2.1 …”.

Is there a way of changing that without manually changing all the crefnames? There doesn’t seem to be an appropriate option.

Furthermore, when used in conjunction with the hyperref package, only the number is actually linked. The text in front of it (“figure” in my example) isn’t. Can this also be changed (again, without redefining all the commands)?

Best Answer

Short answer

\usepackage[noabbrev,nameinlink]{cleveref}

Long answer

Is there a way of changing that without manually changing all the crefnames? There doesn’t seem to be an appropriate option.

According to the manual:

The default cross-reference names for some languages use common abbreviations for some of the names (e.g. in the default English format, \cref{eq1} will be typeset as eq.~(1)). Some authors may prefer to always use the full name, rather than an abbreviation (equation~(1) instead of eq.~(1)). To disable all use of abbreviations in the default cross-reference names, pass the noabbrev option to the cleveref package

To your second question:

Furthermore, when used in conjunction with the hyperref package, only the number is actually linked. The text in front of it (“figure” in my example) isn’t. Can this also be changed (again, without redefining all the commands)?

According to the manual:

When using the hyperref package, cleveref automatically makes all cross- references into hyperlinks to the corresponding reference. By default, only the label itself forms part of the hyperlink target (i.e. the text you can click on to nav- igate to the cross-reference). The cross-reference name is not part of the hyperlink. By contrast, hyperref’s \autoref command does includes the name as part of the hyperlink. If you prefer to include the names in the hyperlinks when using cleveref, you can pass the nameinlink option to the cleveref package.