Trying to combine Jiwen's patches with https://github.com/latex3/latex2e/issues/1382, I arrived at
--- /home/username/tex/cleveref_0.21.5/cleveref.sty 2018-10-18 18:36:21.000000000 +0200
+++ cleveref.sty 2024-06-19 01:04:26.050825233 +0200
@@ -9,10 +9,11 @@
%% LaTeX package for intelligent cross-referencing.
%%
%% Copyright (C) 2006--2016 Toby Cubitt
+%% Improved/hacked by ................, 2024.
%% See the files README and COPYING.
%%
-\def\packagedate{2018/10/18}
-\def\packageversion{0.21.5}
+\def\packagedate{2024/06/19}
+\def\packageversion{0.21.5.3}
%% This file may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.2
%% of this license or (at your option) any later version.
@@ -72,19 +73,19 @@
\@bsphack%
\edef\@tempa{{page}{\the\c@page}}%
\setcounter{page}{1}%
- \edef\@tempb{\thepage}%
+ \protected@edef\@tempb{\thepage}%
\expandafter\setcounter\@tempa%
\cref@constructprefix{page}{\cref@result}%
\protected@write\@auxout{}%
{\string\newlabel{#1@cref}{{\cref@currentlabel}%
- {[\@tempb][\arabic{page}][\cref@result]\thepage}}}%
+ {[\@tempb][\arabic{page}][\cref@result]\thepage}{}{}{}}}%
\@esphack}%
\def\label@optarg[#1]#2{%
\cref@old@label{#2}%
\@bsphack%
\edef\@tempa{{page}{\the\c@page}}%
\setcounter{page}{1}%
- \edef\@tempb{\thepage}%
+ \protected@edef\@tempb{\thepage}%
\expandafter\setcounter\@tempa%
\cref@constructprefix{page}{\cref@result}%
\protected@edef\cref@currentlabel{%
@@ -92,7 +93,7 @@
\cref@currentlabel\@nil{#1}}%
\protected@write\@auxout{}%
{\string\newlabel{#2@cref}{{\cref@currentlabel}%
- {[\@tempb][\arabic{page}][\cref@result]\thepage}}}%
+ {[\@tempb][\arabic{page}][\cref@result]\thepage}{}{}{}}}%
\@esphack}%
}% end of AtBeginDocument
\let\cref@old@makefntext\@makefntext%
@@ -310,7 +311,7 @@
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter#2%
\expandafter\expandafter\expandafter{%
- \expandafter\@firstoftwo#2}}%
+ \expandafter\@firstoffive#2}}%
\def\cref@getlabel#1#2{%
\cref@getref{#1}{\@tempa}%
\expandafter\@cref@getlabel\@tempa\@nil#2}%
@@ -340,7 +341,7 @@
\expandafter\expandafter\expandafter\def%
\expandafter\expandafter\expandafter#2%
\expandafter\expandafter\expandafter{%
- \expandafter\@secondoftwo#2}}%
+ \expandafter\@secondoffive#2}}%
\def\cpageref@getlabel#1#2{%
\cpageref@getref{#1}{\@tempa}%
\expandafter\@cpageref@getlabel\@tempa\@nil#2}%
@@ -4119,7 +4120,11 @@
\crefname@preamble{page}{Seite}{Seiten}%
\crefname@preamble{part}{Teil}{Teile}%
\crefname@preamble{chapter}{Kapitel}{Kapitel}%
- \crefname@preamble{section}{Abschnitt}{Abschnitte}%
+ \if@cref@abbrev%
+ \crefname@preamble{section}{Abschn.}{Abschn.}%
+ \else%
+ \crefname@preamble{section}{Abschnitt}{Abschnitte}%
+ \fi%
\crefname@preamble{appendix}{Anhang}{Anh\"ange}%
\crefname@preamble{enumi}{Punkt}{Punkte}%
\crefname@preamble{footnote}{Fu\ss note}{Fu\ss noten}%
@@ -4196,9 +4201,15 @@
\crefname{page}{Seite}{Seiten}%
\crefname{part}{Teil}{Teile}%
\crefname{chapter}{Kapitel}{Kapitel}%
- \crefname{section}{Abschnitt}{Abschnitte}%
- \crefname{subsection}{Abschnitt}{Abschnitte}%
- \crefname{subsubsection}{Abschnitt}{Abschnitte}%
+ \if@cref@abbrev%
+ \crefname{section}{Abschn.}{Abschn.}%
+ \crefname{subsection}{Abschn.}{Abschn.}%
+ \crefname{subsubsection}{Abschn.}{Abschn.}%
+ \else%
+ \crefname{section}{Abschnitt}{Abschnitte}%
+ \crefname{subsection}{Abschnitt}{Abschnitte}%
+ \crefname{subsubsection}{Abschnitt}{Abschnitte}%
+ \fi%
\crefname{appendix}{Anhang}{Anh\"ange}%
\crefname{subappendix}{Anhang}{Anh\"ange}%
\crefname{subsubappendix}{Anhang}{Anh\"ange}%
@@ -4283,9 +4294,15 @@
\crefname{page}{Seite}{Seiten}%
\crefname{part}{Teil}{Teile}%
\crefname{chapter}{Kapitel}{Kapitel}%
- \crefname{section}{Abschnitt}{Abschnitte}%
- \crefname{subsection}{Abschnitt}{Abschnitte}%
- \crefname{subsubsection}{Abschnitt}{Abschnitte}%
+ \if@cref@abbrev%
+ \crefname{section}{Abschn.}{Abschn.}%
+ \crefname{subsection}{Abschn.}{Abschn.}%
+ \crefname{subsubsection}{Abschn.}{Abschn.}%
+ \else%
+ \crefname{section}{Abschnitt}{Abschnitte}%
+ \crefname{subsection}{Abschnitt}{Abschnitte}%
+ \crefname{subsubsection}{Abschnitt}{Abschnitte}%
+ \fi%
\crefname{appendix}{Anhang}{Anh\"ange}%
\crefname{subappendix}{Anhang}{Anh\"ange}%
\crefname{subsubappendix}{Anhang}{Anh\"ange}%
@@ -8049,6 +8066,14 @@
%
\let\cref@language\relax%
}% end of \AtBeginDocument
+
+\providecommand*{\@setcpagerefrange}[3]{%
+ \@@setcpagerefrange{#1}{#2}{cref}{#3}}
+\providecommand*{\@setCpagerefrange}[3]{%
+ \@@setcpagerefrange{#1}{#2}{Cref}{#3}}
+\providecommand*{\@setlabelcpagerefrange}[3]{%
+ \@@setcpagerefrange{#1}{#2}{labelcref}{#3}}
+
\InputIfFileExists{cleveref.cfg}%
{\PackageInfo{cleveref}{reading definitions from cleveref.cfg}}{}%
\endinput
To apply, run patch cleveref.sty patchfile on the latest cleveref.sty 0.21.5 from the author's Web page.
We bother abbreviating “Abschnitt” and “Abschnitte” into “Abschn.” only for ngerman, and not for german, since we assume that the pre-1996 German is nowadays used mostly to recompile old documents, and, if you go for the old German, our assumption is that you probably wish to preserve also other historical aspects.
Testing is appreciated.
texdoc afterpagewith the number of times users expect that package to do something vaguely useful.>>/dev/nullso far :-).