Skip to content

Firstaid for cleveref: not necessarily fully expandable \thepage and a proper German abbreviation for section #1382

@AlMa1r

Description

@AlMa1r

The package cleveref is unfortunately dead since 2018, and the author has not been responsive so far. Therefore, I've been maintaining my own fixes to cleveref. Let me kindly share them and ask you to incorporate them into firstaid. Two problems are addressed: nondefault or formatted page numbers (cf. https://tex.stackexchange.com/questions/613934/strange-incompatibility-between-several-packages-options#comment1533879_613934 and https://tex.stackexchange.com/questions/619875/greekbabel-cleveref-roman-pagenumbering-label#comment1548033_619885) and abbreviating the German name for section, namely, “Abschnitt”, and its plural into “Abschn.” whenever short forms are requested (the long forms are kept as they were, so the user can still choose them if he/she wishes to).

In the following, I provide two diffs: a comparison of my version with the stable version of cleveref and a comparison of my version with the latest version of cleveref (both the stable cleveref and the latest cleveref are quite old). My cleveref.sty version is called my_improved_cleveref.sty below for clarity.

Comparison to the version on CTAN:

$ diff my_improved_cleveref.sty /usr/share/texlive/texmf-dist/tex/latex/cleveref/cleveref.sty
12d11
< %% Improved/hacked by ................, 2024.
15,16c14,15
< \def\packagedate{2021/11/02}
< \def\packageversion{0.21.5.2}
---
> \def\packagedate{2018/03/27}
> \def\packageversion{0.21.4}
76c75
<     \protected@edef\@tempb{\thepage}%
---
>     \edef\@tempb{\thepage}%
88c87
<     \protected@edef\@tempb{\thepage}%
---
>     \edef\@tempb{\thepage}%
4123,4128c4122
< %    \crefname@preamble{section}{Abschnitt}{Abschnitte}%
<     \if@cref@abbrev%
<       \crefname@preamble{section}{Abschn.}{Abschn.}%
<     \else%
<       \crefname@preamble{section}{Abschnitt}{Abschnitte}%
<     \fi%
---
>     \crefname@preamble{section}{Abschnitt}{Abschnitte}%
4205,4222c4199,4201
< %  \crefname{section}{Abschnitt}{Abschnitte}%
<   \if@cref@abbrev%
<     \crefname{section}{Abschn.}{Abschn.}%
<   \else%
<     \crefname{section}{Abschnitt}{Abschnitte}%
<   \fi%
< % \crefname{subsection}{Abschnitt}{Abschnitte}%
<   \if@cref@abbrev%
<     \crefname{subsection}{Abschn.}{Abschn.}%
<   \else%
<     \crefname{subsection}{Abschnitt}{Abschnitte}%
<   \fi%
< %  \crefname{subsubsection}{Abschnitt}{Abschnitte}%
<   \if@cref@abbrev%
<     \crefname{subsubsection}{Abschn.}{Abschn.}%
<   \else%
<     \crefname{subsubsection}{Abschnitt}{Abschnitte}%
<   \fi%
---
>   \crefname{section}{Abschnitt}{Abschnitte}%
>   \crefname{subsection}{Abschnitt}{Abschnitte}%
>   \crefname{subsubsection}{Abschnitt}{Abschnitte}%
4307,4324c4286,4288
< %  \crefname{section}{Abschnitt}{Abschnitte}%
<   \if@cref@abbrev%
<     \crefname{section}{Abschn.}{Abschn.}%
<   \else%
<     \crefname{section}{Abschnitt}{Abschnitte}%
<   \fi%
< %  \crefname{subsection}{Abschnitt}{Abschnitte}%
<   \if@cref@abbrev%
<     \crefname{subsection}{Abschn.}{Abschn.}%
<   \else%
<     \crefname{subsection}{Abschnitt}{Abschnitte}%
<   \fi%
< %  \crefname{subsubsection}{Abschnitt}{Abschnitte}%
<   \if@cref@abbrev%
<     \crefname{subsubsection}{Abschn.}{Abschn.}%
<   \else%
<     \crefname{subsubsection}{Abschnitt}{Abschnitte}%
<   \fi%
---
>   \crefname{section}{Abschnitt}{Abschnitte}%
>   \crefname{subsection}{Abschnitt}{Abschnitte}%
>   \crefname{subsubsection}{Abschnitt}{Abschnitte}%
8076d8039
<   \@crefcopyformats{subsubappendix}{subsubsubappendix}%

Comparison to the author's latest version available from his home page:

$ diff my_improved_cleveref.sty cleveref_0.21.5/cleveref.sty 
12d11
< %% Improved/hacked by ................, 2024.
15,16c14,15
< \def\packagedate{2021/11/02}
< \def\packageversion{0.21.5.2}
---
> \def\packagedate{2018/10/18}
> \def\packageversion{0.21.5}
76c75
<     \protected@edef\@tempb{\thepage}%
---
>     \edef\@tempb{\thepage}%
88c87
<     \protected@edef\@tempb{\thepage}%
---
>     \edef\@tempb{\thepage}%
4123,4128c4122
< %    \crefname@preamble{section}{Abschnitt}{Abschnitte}%
<     \if@cref@abbrev%
<       \crefname@preamble{section}{Abschn.}{Abschn.}%
<     \else%
<       \crefname@preamble{section}{Abschnitt}{Abschnitte}%
<     \fi%
---
>     \crefname@preamble{section}{Abschnitt}{Abschnitte}%
4205,4222c4199,4201
< %  \crefname{section}{Abschnitt}{Abschnitte}%
<   \if@cref@abbrev%
<     \crefname{section}{Abschn.}{Abschn.}%
<   \else%
<     \crefname{section}{Abschnitt}{Abschnitte}%
<   \fi%
< % \crefname{subsection}{Abschnitt}{Abschnitte}%
<   \if@cref@abbrev%
<     \crefname{subsection}{Abschn.}{Abschn.}%
<   \else%
<     \crefname{subsection}{Abschnitt}{Abschnitte}%
<   \fi%
< %  \crefname{subsubsection}{Abschnitt}{Abschnitte}%
<   \if@cref@abbrev%
<     \crefname{subsubsection}{Abschn.}{Abschn.}%
<   \else%
<     \crefname{subsubsection}{Abschnitt}{Abschnitte}%
<   \fi%
---
>   \crefname{section}{Abschnitt}{Abschnitte}%
>   \crefname{subsection}{Abschnitt}{Abschnitte}%
>   \crefname{subsubsection}{Abschnitt}{Abschnitte}%
4307,4324c4286,4288
< %  \crefname{section}{Abschnitt}{Abschnitte}%
<   \if@cref@abbrev%
<     \crefname{section}{Abschn.}{Abschn.}%
<   \else%
<     \crefname{section}{Abschnitt}{Abschnitte}%
<   \fi%
< %  \crefname{subsection}{Abschnitt}{Abschnitte}%
<   \if@cref@abbrev%
<     \crefname{subsection}{Abschn.}{Abschn.}%
<   \else%
<     \crefname{subsection}{Abschnitt}{Abschnitte}%
<   \fi%
< %  \crefname{subsubsection}{Abschnitt}{Abschnitte}%
<   \if@cref@abbrev%
<     \crefname{subsubsection}{Abschn.}{Abschn.}%
<   \else%
<     \crefname{subsubsection}{Abschnitt}{Abschnitte}%
<   \fi%
---
>   \crefname{section}{Abschnitt}{Abschnitte}%
>   \crefname{subsection}{Abschnitt}{Abschnitte}%
>   \crefname{subsubsection}{Abschnitt}{Abschnitte}%

Of course, feel free to remove the superfluous comments.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions