summaryrefslogtreecommitdiff
path: root/macros/latex/base
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-07-03 03:01:27 +0000
committerNorbert Preining <norbert@preining.info>2022-07-03 03:01:27 +0000
commit34d318af65decbdb242ae03b64bf3f53266067b6 (patch)
tree8f7b62a7596d15dc07100cce5885a4ce07c17fa1 /macros/latex/base
parentcd3bef34bd0bfcf1625056fd2f2832328c516179 (diff)
CTAN sync 202207030301
Diffstat (limited to 'macros/latex/base')
-rw-r--r--macros/latex/base/README.md2
-rw-r--r--macros/latex/base/alltt.pdfbin223831 -> 223831 bytes
-rw-r--r--macros/latex/base/cfgguide.pdfbin242888 -> 242888 bytes
-rw-r--r--macros/latex/base/changes.txt10
-rw-r--r--macros/latex/base/classes.pdfbin560350 -> 560350 bytes
-rw-r--r--macros/latex/base/clsguide.pdfbin402780 -> 402780 bytes
-rw-r--r--macros/latex/base/cmfonts.pdfbin292376 -> 292376 bytes
-rw-r--r--macros/latex/base/cyrguide.pdfbin239689 -> 239689 bytes
-rw-r--r--macros/latex/base/doc-code.pdfbin1081571 -> 1081708 bytes
-rw-r--r--macros/latex/base/doc.pdfbin755033 -> 755175 bytes
-rw-r--r--macros/latex/base/docstrip.pdfbin503609 -> 503590 bytes
-rw-r--r--macros/latex/base/encguide.pdfbin1318126 -> 1318126 bytes
-rw-r--r--macros/latex/base/exscale.pdfbin204711 -> 204711 bytes
-rw-r--r--macros/latex/base/fix-cm.pdfbin287733 -> 287733 bytes
-rw-r--r--macros/latex/base/fntguide.pdfbin502880 -> 502880 bytes
-rw-r--r--macros/latex/base/graphpap.pdfbin161713 -> 161713 bytes
-rw-r--r--macros/latex/base/ifthen.pdfbin221211 -> 221211 bytes
-rw-r--r--macros/latex/base/inputenc.pdfbin318204 -> 318204 bytes
-rw-r--r--macros/latex/base/lamport-manual.pdfbin170878 -> 170878 bytes
-rw-r--r--macros/latex/base/latexrelease.pdfbin281906 -> 281906 bytes
-rw-r--r--macros/latex/base/latexsym.pdfbin200760 -> 200760 bytes
-rw-r--r--macros/latex/base/lb2.pdfbin252140 -> 252140 bytes
-rw-r--r--macros/latex/base/letter.pdfbin337538 -> 337759 bytes
-rw-r--r--macros/latex/base/lgc2.pdfbin215684 -> 215684 bytes
-rw-r--r--macros/latex/base/lppl.pdfbin132382 -> 132382 bytes
-rw-r--r--macros/latex/base/ltcmdhooks-code.pdfbin719972 -> 719928 bytes
-rw-r--r--macros/latex/base/ltcmdhooks-doc.pdfbin478816 -> 478764 bytes
-rw-r--r--macros/latex/base/ltfilehook-code.pdfbin802756 -> 802706 bytes
-rw-r--r--macros/latex/base/ltfilehook-doc.pdfbin548445 -> 548407 bytes
-rw-r--r--macros/latex/base/ltfinal.dtx100
-rw-r--r--macros/latex/base/lthooks-code.pdfbin1096561 -> 1096835 bytes
-rw-r--r--macros/latex/base/lthooks-doc.pdfbin703458 -> 703719 bytes
-rw-r--r--macros/latex/base/ltluatex.pdfbin317700 -> 317700 bytes
-rw-r--r--macros/latex/base/ltmarks-code.pdfbin715397 -> 715597 bytes
-rw-r--r--macros/latex/base/ltmarks-doc.pdfbin586840 -> 587038 bytes
-rw-r--r--macros/latex/base/ltnews.pdfbin1180993 -> 1180993 bytes
-rw-r--r--macros/latex/base/ltnews01.pdfbin161518 -> 161518 bytes
-rw-r--r--macros/latex/base/ltnews02.pdfbin159792 -> 159792 bytes
-rw-r--r--macros/latex/base/ltnews03.pdfbin159332 -> 159332 bytes
-rw-r--r--macros/latex/base/ltnews04.pdfbin152525 -> 152525 bytes
-rw-r--r--macros/latex/base/ltnews05.pdfbin174494 -> 174494 bytes
-rw-r--r--macros/latex/base/ltnews06.pdfbin142849 -> 142849 bytes
-rw-r--r--macros/latex/base/ltnews07.pdfbin137811 -> 137811 bytes
-rw-r--r--macros/latex/base/ltnews08.pdfbin155053 -> 155053 bytes
-rw-r--r--macros/latex/base/ltnews09.pdfbin129570 -> 129570 bytes
-rw-r--r--macros/latex/base/ltnews10.pdfbin169416 -> 169416 bytes
-rw-r--r--macros/latex/base/ltnews11.pdfbin111948 -> 111948 bytes
-rw-r--r--macros/latex/base/ltnews12.pdfbin156551 -> 156551 bytes
-rw-r--r--macros/latex/base/ltnews13.pdfbin182225 -> 182225 bytes
-rw-r--r--macros/latex/base/ltnews14.pdfbin170473 -> 170473 bytes
-rw-r--r--macros/latex/base/ltnews15.pdfbin130309 -> 130309 bytes
-rw-r--r--macros/latex/base/ltnews16.pdfbin138073 -> 138073 bytes
-rw-r--r--macros/latex/base/ltnews17.pdfbin166228 -> 166228 bytes
-rw-r--r--macros/latex/base/ltnews18.pdfbin38033 -> 38033 bytes
-rw-r--r--macros/latex/base/ltnews19.pdfbin230028 -> 230028 bytes
-rw-r--r--macros/latex/base/ltnews20.pdfbin318548 -> 318548 bytes
-rw-r--r--macros/latex/base/ltnews21.pdfbin244867 -> 244867 bytes
-rw-r--r--macros/latex/base/ltnews22.pdfbin317773 -> 317773 bytes
-rw-r--r--macros/latex/base/ltnews23.pdfbin286591 -> 286591 bytes
-rw-r--r--macros/latex/base/ltnews24.pdfbin265279 -> 265279 bytes
-rw-r--r--macros/latex/base/ltnews25.pdfbin204935 -> 204935 bytes
-rw-r--r--macros/latex/base/ltnews26.pdfbin379462 -> 379462 bytes
-rw-r--r--macros/latex/base/ltnews27.pdfbin250592 -> 250592 bytes
-rw-r--r--macros/latex/base/ltnews28.pdfbin376643 -> 376643 bytes
-rw-r--r--macros/latex/base/ltnews29.pdfbin455107 -> 455107 bytes
-rw-r--r--macros/latex/base/ltnews30.pdfbin511909 -> 511909 bytes
-rw-r--r--macros/latex/base/ltnews31.pdfbin526323 -> 526323 bytes
-rw-r--r--macros/latex/base/ltnews32.pdfbin546160 -> 546160 bytes
-rw-r--r--macros/latex/base/ltnews33.pdfbin522412 -> 522412 bytes
-rw-r--r--macros/latex/base/ltnews34.pdfbin508044 -> 508044 bytes
-rw-r--r--macros/latex/base/ltnews35.pdfbin563513 -> 563513 bytes
-rw-r--r--macros/latex/base/ltpara-code.pdfbin666840 -> 667069 bytes
-rw-r--r--macros/latex/base/ltpara-doc.pdfbin560311 -> 560543 bytes
-rw-r--r--macros/latex/base/ltshipout-code.pdfbin820621 -> 820798 bytes
-rw-r--r--macros/latex/base/ltshipout-doc.pdfbin564929 -> 565087 bytes
-rw-r--r--macros/latex/base/ltvers.dtx2
-rw-r--r--macros/latex/base/ltx3info.pdfbin219349 -> 219349 bytes
-rw-r--r--macros/latex/base/ltxdoc.pdfbin242645 -> 242645 bytes
-rw-r--r--macros/latex/base/makeindx.pdfbin165821 -> 165821 bytes
-rw-r--r--macros/latex/base/modguide.pdfbin243605 -> 243605 bytes
-rw-r--r--macros/latex/base/nfssfont.pdfbin211180 -> 211180 bytes
-rw-r--r--macros/latex/base/proc.pdfbin227059 -> 227059 bytes
-rw-r--r--macros/latex/base/slides.pdfbin375518 -> 375518 bytes
-rw-r--r--macros/latex/base/slifonts.pdfbin234191 -> 234191 bytes
-rw-r--r--macros/latex/base/source2e.pdfbin5764026 -> 5762787 bytes
-rw-r--r--macros/latex/base/syntonly.pdfbin189620 -> 189835 bytes
-rw-r--r--macros/latex/base/tlc2.pdfbin290615 -> 290615 bytes
-rw-r--r--macros/latex/base/tulm.pdfbin162772 -> 162772 bytes
-rw-r--r--macros/latex/base/usrguide.pdfbin430994 -> 430994 bytes
-rw-r--r--macros/latex/base/usrguide3.pdfbin403394 -> 403394 bytes
-rw-r--r--macros/latex/base/utf8ienc.pdfbin353565 -> 353408 bytes
-rw-r--r--macros/latex/base/webcomp.pdfbin146198 -> 146198 bytes
92 files changed, 51 insertions, 63 deletions
diff --git a/macros/latex/base/README.md b/macros/latex/base/README.md
index c47dd030da..94ffab343f 100644
--- a/macros/latex/base/README.md
+++ b/macros/latex/base/README.md
@@ -1,7 +1,7 @@
The LaTeX kernel
================
-Release 2022-06-01 patch level 3
+Release 2022-06-01 patch level 4
Overview
--------
diff --git a/macros/latex/base/alltt.pdf b/macros/latex/base/alltt.pdf
index 9f887a76b7..4e2858abb8 100644
--- a/macros/latex/base/alltt.pdf
+++ b/macros/latex/base/alltt.pdf
Binary files differ
diff --git a/macros/latex/base/cfgguide.pdf b/macros/latex/base/cfgguide.pdf
index d710510a5f..9f7729c703 100644
--- a/macros/latex/base/cfgguide.pdf
+++ b/macros/latex/base/cfgguide.pdf
Binary files differ
diff --git a/macros/latex/base/changes.txt b/macros/latex/base/changes.txt
index dff00a293c..eeb9833e3c 100644
--- a/macros/latex/base/changes.txt
+++ b/macros/latex/base/changes.txt
@@ -11,6 +11,16 @@ All changes above are only part of the development branch for the next release.
================================================================================
#########################
+# 2022-06-01 PL4 Release
+########################
+
+2022-06-30 David Carlisle <David.Carlisle@latex-project.org>
+
+ * ltfinal.dtx: update MakeUppercase and \MakeLowercase fo gh/881
+ \protectd@edef no longer needed with latest l3 code.
+ added \AddToNoCaseChangeList
+
+#########################
# 2022-06-01 PL3 Release
########################
diff --git a/macros/latex/base/classes.pdf b/macros/latex/base/classes.pdf
index b9345652b8..ecd3771a6a 100644
--- a/macros/latex/base/classes.pdf
+++ b/macros/latex/base/classes.pdf
Binary files differ
diff --git a/macros/latex/base/clsguide.pdf b/macros/latex/base/clsguide.pdf
index 00cd1a4ad5..8ebd50d30e 100644
--- a/macros/latex/base/clsguide.pdf
+++ b/macros/latex/base/clsguide.pdf
Binary files differ
diff --git a/macros/latex/base/cmfonts.pdf b/macros/latex/base/cmfonts.pdf
index dd5e14a97d..3de2f17be5 100644
--- a/macros/latex/base/cmfonts.pdf
+++ b/macros/latex/base/cmfonts.pdf
Binary files differ
diff --git a/macros/latex/base/cyrguide.pdf b/macros/latex/base/cyrguide.pdf
index e8e81049fb..1655712443 100644
--- a/macros/latex/base/cyrguide.pdf
+++ b/macros/latex/base/cyrguide.pdf
Binary files differ
diff --git a/macros/latex/base/doc-code.pdf b/macros/latex/base/doc-code.pdf
index 774c28486d..8adca71d1e 100644
--- a/macros/latex/base/doc-code.pdf
+++ b/macros/latex/base/doc-code.pdf
Binary files differ
diff --git a/macros/latex/base/doc.pdf b/macros/latex/base/doc.pdf
index b21f566be5..0065954929 100644
--- a/macros/latex/base/doc.pdf
+++ b/macros/latex/base/doc.pdf
Binary files differ
diff --git a/macros/latex/base/docstrip.pdf b/macros/latex/base/docstrip.pdf
index 8aafec0c57..8780f6bc20 100644
--- a/macros/latex/base/docstrip.pdf
+++ b/macros/latex/base/docstrip.pdf
Binary files differ
diff --git a/macros/latex/base/encguide.pdf b/macros/latex/base/encguide.pdf
index 8a8ce0ba1a..bb73e9671a 100644
--- a/macros/latex/base/encguide.pdf
+++ b/macros/latex/base/encguide.pdf
Binary files differ
diff --git a/macros/latex/base/exscale.pdf b/macros/latex/base/exscale.pdf
index a5fab96b37..970be29693 100644
--- a/macros/latex/base/exscale.pdf
+++ b/macros/latex/base/exscale.pdf
Binary files differ
diff --git a/macros/latex/base/fix-cm.pdf b/macros/latex/base/fix-cm.pdf
index 57acd53e54..60ee0c1f66 100644
--- a/macros/latex/base/fix-cm.pdf
+++ b/macros/latex/base/fix-cm.pdf
Binary files differ
diff --git a/macros/latex/base/fntguide.pdf b/macros/latex/base/fntguide.pdf
index 220d3fcbe5..9b46aa3f16 100644
--- a/macros/latex/base/fntguide.pdf
+++ b/macros/latex/base/fntguide.pdf
Binary files differ
diff --git a/macros/latex/base/graphpap.pdf b/macros/latex/base/graphpap.pdf
index 6ce2bbfcbe..0948a425e2 100644
--- a/macros/latex/base/graphpap.pdf
+++ b/macros/latex/base/graphpap.pdf
Binary files differ
diff --git a/macros/latex/base/ifthen.pdf b/macros/latex/base/ifthen.pdf
index 32ead9ec74..32f0d68c5e 100644
--- a/macros/latex/base/ifthen.pdf
+++ b/macros/latex/base/ifthen.pdf
Binary files differ
diff --git a/macros/latex/base/inputenc.pdf b/macros/latex/base/inputenc.pdf
index 7b9930cb84..e0e0229642 100644
--- a/macros/latex/base/inputenc.pdf
+++ b/macros/latex/base/inputenc.pdf
Binary files differ
diff --git a/macros/latex/base/lamport-manual.pdf b/macros/latex/base/lamport-manual.pdf
index 16815fee18..93661a6441 100644
--- a/macros/latex/base/lamport-manual.pdf
+++ b/macros/latex/base/lamport-manual.pdf
Binary files differ
diff --git a/macros/latex/base/latexrelease.pdf b/macros/latex/base/latexrelease.pdf
index 228ca28e22..2afb503b8c 100644
--- a/macros/latex/base/latexrelease.pdf
+++ b/macros/latex/base/latexrelease.pdf
Binary files differ
diff --git a/macros/latex/base/latexsym.pdf b/macros/latex/base/latexsym.pdf
index 3bbca0c844..c52adce888 100644
--- a/macros/latex/base/latexsym.pdf
+++ b/macros/latex/base/latexsym.pdf
Binary files differ
diff --git a/macros/latex/base/lb2.pdf b/macros/latex/base/lb2.pdf
index 0997168916..a8c5eb1738 100644
--- a/macros/latex/base/lb2.pdf
+++ b/macros/latex/base/lb2.pdf
Binary files differ
diff --git a/macros/latex/base/letter.pdf b/macros/latex/base/letter.pdf
index 42e905bb3e..3c036cbc03 100644
--- a/macros/latex/base/letter.pdf
+++ b/macros/latex/base/letter.pdf
Binary files differ
diff --git a/macros/latex/base/lgc2.pdf b/macros/latex/base/lgc2.pdf
index 1eac921027..0f1d04e66e 100644
--- a/macros/latex/base/lgc2.pdf
+++ b/macros/latex/base/lgc2.pdf
Binary files differ
diff --git a/macros/latex/base/lppl.pdf b/macros/latex/base/lppl.pdf
index 079d063b5c..efadd551fc 100644
--- a/macros/latex/base/lppl.pdf
+++ b/macros/latex/base/lppl.pdf
Binary files differ
diff --git a/macros/latex/base/ltcmdhooks-code.pdf b/macros/latex/base/ltcmdhooks-code.pdf
index ef9f76d5c9..c3c720c399 100644
--- a/macros/latex/base/ltcmdhooks-code.pdf
+++ b/macros/latex/base/ltcmdhooks-code.pdf
Binary files differ
diff --git a/macros/latex/base/ltcmdhooks-doc.pdf b/macros/latex/base/ltcmdhooks-doc.pdf
index 3218ee107d..12bd4225d7 100644
--- a/macros/latex/base/ltcmdhooks-doc.pdf
+++ b/macros/latex/base/ltcmdhooks-doc.pdf
Binary files differ
diff --git a/macros/latex/base/ltfilehook-code.pdf b/macros/latex/base/ltfilehook-code.pdf
index 21c9f0aad9..ec25e3bf8f 100644
--- a/macros/latex/base/ltfilehook-code.pdf
+++ b/macros/latex/base/ltfilehook-code.pdf
Binary files differ
diff --git a/macros/latex/base/ltfilehook-doc.pdf b/macros/latex/base/ltfilehook-doc.pdf
index 24f1dce56a..58caa9608f 100644
--- a/macros/latex/base/ltfilehook-doc.pdf
+++ b/macros/latex/base/ltfilehook-doc.pdf
Binary files differ
diff --git a/macros/latex/base/ltfinal.dtx b/macros/latex/base/ltfinal.dtx
index b1b8ff953b..9859b279ef 100644
--- a/macros/latex/base/ltfinal.dtx
+++ b/macros/latex/base/ltfinal.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltfinal.dtx}
- [2022/06/02 v2.2u LaTeX Kernel (Final Settings)]
+ [2022/06/30 v2.2v LaTeX Kernel (Final Settings)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltfinal.dtx}
@@ -1065,9 +1065,7 @@
% \begin{macro}{\MakeUppercase}
% \begin{macro}{\MakeUppercase}
% \begin{macro}{\NoCaseChange}
-% \begin{macro}{\@uclclist}
-% \begin{macro}{\@expl@text@lowercase@@n}
-% \begin{macro}{\@expl@text@uppercase@@n}
+% \begin{macro}{\AddToNoCaseChangeList}
% \begin{macro}{\@uclclist}
%
%
@@ -1077,84 +1075,64 @@
% And whilst we're doing things with uc/lc tables, here are two
% commands to upper- and lower-case a string.
%
-% \emph{Note} that this implementation is subject to change! At
-% the moment we're not providing any way to extend the list of
-% uc/lc commands, since finding a good interface is difficult.
-% These commands have some nasty features, such as uppercasing
-% mathematics, environment names, labels, etc. A much better
-% long-term solution is to use all-caps fonts, but these aren't
-% generally available.
%
+% \changes{v2.1h}{2019/09/14}{Expand UTF8 chars when case changing (github/177)}
+% \changes{v2.2r}{2022/02/20}
+% {Use \cs{@expl@text@uppercase@@n}, removing local redefinition of \cs{UTF@two@octets@noexpand}}%
+% \changes{v2.2t}{2022/04/21}{Support \cs{noexpand} in argument of \cs{@expl@text@uppercase@@n}}
+% \changes{v2.2v}{2022/06/30}{Just use \cs{text_lowercase:n} without \cs{protectd@edf} gh/881x}%
% Two wrappers around the L3 case changing functions.
% |\protected| to make them mostly safe as replacements for |uppercase|
% and |\lowercase|.
+%
+% In
+%\begin{verbatim}
+% \markboth{\MakeUppercase\contentsname}
+% {\MakeUppercase\contentsname}
+%\end{verbatim}
+% then the uppercasing is only done to the first letter of the
+% contents name, since the mark expands out to:
+%\begin{verbatim}
+% \mark{\MakeUppercase Table of Contents}
+% {\MakeUppercase Table of Contents}
+%\end{verbatim}
+% In order to get round this, we redefine |\MakeUppercase| and
+% |\MakeLowercase| to grab their argument and brace it.
+%
+% Earlier versions needed to procsss |\@uclclist| in an |\edef|
+% to handle legacy input encodings, but recent (2022) expl3 versions
+% handle non-UTF8 text natively so we simply call the |\text_...case:n|
+% functions.
% \begin{macrocode}
\ExplSyntaxOn
-\protected\def\@expl@text@lowercase@@n{\text_lowercase:n}
-\protected\def\@expl@text@uppercase@@n{\text_uppercase:n}
+\cs_new_protected_nopar:cpn{MakeUppercase~}{\text_uppercase:n}
+\cs_set_nopar:Npx\MakeUppercase#1{\use:c{MakeUppercase~}{#1}}
+\cs_new_protected_nopar:cpn{MakeLowercase~}{\text_lowercase:n}
+\cs_set_nopar:Npx\MakeLowercase#1{\use:c{MakeLowercase~}{#1}}
% \end{macrocode}
%
% \changes{v2.2u}{2022/06/02}{Add \cs{NoCaseChange}}
+% \changes{v2.2u}{2022/06/30}{Add \cs{AddToNoCaseChangeList}}
% |\NoCaseChange| protects its argument from the case change functions.
+%
+% |\AddToNoCaseChangeList| Allows new commands to protect their arguments, eg
+% |AddToNoCaseChangeList{\eqref}| would protect the argument of |\eqref|
+% in the same way as the argument of |\ref|.
% \begin{macrocode}
-\tl_put_right:Nn \l_text_case_exclude_arg_tl { \NoCaseChange }
+\cs_new_protected_nopar:Npn\AddToNoCaseChangeList
+ {\tl_put_right:Nn \l_text_case_exclude_arg_tl}
+\AddToNoCaseChangeList{ \NoCaseChange }
\cs_new_protected:Npn \NoCaseChange #1 {#1}
\ExplSyntaxOff
% \end{macrocode}
%
-% \begin{macrocode}
-\DeclareRobustCommand{\MakeUppercase}[1]{{%
- \def\i{I}\def\j{J}%
- \def\reserved@a##1##2{\let##1##2\reserved@a}%
- \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
-% \end{macrocode}
-% Tell UTF-8 processing to process chars even though we are in an \cs{protected@edef}.
-% \changes{v2.1h}{2019/09/14}{Expand UTF8 chars when case changing (github/177)}
-% \changes{v2.2r}{2022/02/20}
-% {Use \cs{@expl@text@uppercase@@n}, removing local redefinition of \cs{UTF@two@octets@noexpand}}%
-% \changes{v2.2t}{2022/04/21}{Support \cs{noexpand} in argument of \cs{@expl@text@uppercase@@n}}
-% \begin{macrocode}
- \protected@edef\reserved@a{\@expl@text@uppercase@@n{\noexpand\unexpanded{#1}}}%
- \reserved@a
- }}
-\DeclareRobustCommand{\MakeLowercase}[1]{{%
- \def\reserved@a##1##2{\let##2##1\reserved@a}%
- \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}%
- \protected@edef\reserved@a{\@expl@text@lowercase@@n{\noexpand\unexpanded{#1}}}%
- \reserved@a
- }}
-% \end{macrocode}
-%
% \changes{v2.2q}{2021/09/06}{Correctly upper and lowercase
% \cs{ij} and \cs{IJ} (gh/658)}
% \begin{macrocode}
\def\@uclclist{\oe\OE\o\O\ae\AE
\dh\DH\dj\DJ\l\L\ng\NG\ss\SS\ij\IJ\th\TH}
% \end{macrocode}
-% The above code works, but has the nasty side-effect that if you
-% say something like:
-%\begin{verbatim}
-% \markboth{\MakeUppercase\contentsname}
-% {\MakeUppercase\contentsname}
-%\end{verbatim}
-% then the uppercasing is only done to the first letter of the
-% contents name, since the mark expands out to:
-%\begin{verbatim}
-% \mark{\protect\MakeUppercase Table of Contents}
-% {\protect\MakeUppercase Table of Contents}
-%\end{verbatim}
-% In order to get round this, we redefine |\MakeUppercase| and
-% |\MakeLowercase| to grab their argument and brace it. This is a
-% very low-level hack, and is \emph{not} recommended practice!
-% This is an instance of a general problem that makes it unsafe to
-% grab arguments unbraced, and probably needs a more general
-% solution. For the moment though, this hack will do:
-% \begin{macrocode}
-\protected@edef\MakeUppercase#1{\MakeUppercase{#1}}
-\protected@edef\MakeLowercase#1{\MakeLowercase{#1}}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
+%
% \end{macro}
% \end{macro}
% \end{macro}
diff --git a/macros/latex/base/lthooks-code.pdf b/macros/latex/base/lthooks-code.pdf
index c0efdabc3d..3e1620cef4 100644
--- a/macros/latex/base/lthooks-code.pdf
+++ b/macros/latex/base/lthooks-code.pdf
Binary files differ
diff --git a/macros/latex/base/lthooks-doc.pdf b/macros/latex/base/lthooks-doc.pdf
index ec7370aa6c..6bfe835b5f 100644
--- a/macros/latex/base/lthooks-doc.pdf
+++ b/macros/latex/base/lthooks-doc.pdf
Binary files differ
diff --git a/macros/latex/base/ltluatex.pdf b/macros/latex/base/ltluatex.pdf
index 10dc990168..7b6cde5ccf 100644
--- a/macros/latex/base/ltluatex.pdf
+++ b/macros/latex/base/ltluatex.pdf
Binary files differ
diff --git a/macros/latex/base/ltmarks-code.pdf b/macros/latex/base/ltmarks-code.pdf
index cb9e237392..361fc4ab29 100644
--- a/macros/latex/base/ltmarks-code.pdf
+++ b/macros/latex/base/ltmarks-code.pdf
Binary files differ
diff --git a/macros/latex/base/ltmarks-doc.pdf b/macros/latex/base/ltmarks-doc.pdf
index 4ff796fe02..ba685434cc 100644
--- a/macros/latex/base/ltmarks-doc.pdf
+++ b/macros/latex/base/ltmarks-doc.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews.pdf b/macros/latex/base/ltnews.pdf
index f6729401fe..69d04a9bd3 100644
--- a/macros/latex/base/ltnews.pdf
+++ b/macros/latex/base/ltnews.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews01.pdf b/macros/latex/base/ltnews01.pdf
index 73181eff28..8ea91c3bf9 100644
--- a/macros/latex/base/ltnews01.pdf
+++ b/macros/latex/base/ltnews01.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews02.pdf b/macros/latex/base/ltnews02.pdf
index 784e30f5c6..ca516dabde 100644
--- a/macros/latex/base/ltnews02.pdf
+++ b/macros/latex/base/ltnews02.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews03.pdf b/macros/latex/base/ltnews03.pdf
index 30a898f879..cf53ab5a0b 100644
--- a/macros/latex/base/ltnews03.pdf
+++ b/macros/latex/base/ltnews03.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews04.pdf b/macros/latex/base/ltnews04.pdf
index 3c4cb06045..5a3221eed7 100644
--- a/macros/latex/base/ltnews04.pdf
+++ b/macros/latex/base/ltnews04.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews05.pdf b/macros/latex/base/ltnews05.pdf
index 9cb2c67ca1..bf18d49dee 100644
--- a/macros/latex/base/ltnews05.pdf
+++ b/macros/latex/base/ltnews05.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews06.pdf b/macros/latex/base/ltnews06.pdf
index 7077d315f7..2c999c0e8c 100644
--- a/macros/latex/base/ltnews06.pdf
+++ b/macros/latex/base/ltnews06.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews07.pdf b/macros/latex/base/ltnews07.pdf
index 44eb2b230f..7387e46621 100644
--- a/macros/latex/base/ltnews07.pdf
+++ b/macros/latex/base/ltnews07.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews08.pdf b/macros/latex/base/ltnews08.pdf
index 440028e38c..0a0a949048 100644
--- a/macros/latex/base/ltnews08.pdf
+++ b/macros/latex/base/ltnews08.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews09.pdf b/macros/latex/base/ltnews09.pdf
index fdd182e469..d5244667a8 100644
--- a/macros/latex/base/ltnews09.pdf
+++ b/macros/latex/base/ltnews09.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews10.pdf b/macros/latex/base/ltnews10.pdf
index 2bfcaa976e..c7e7980b03 100644
--- a/macros/latex/base/ltnews10.pdf
+++ b/macros/latex/base/ltnews10.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews11.pdf b/macros/latex/base/ltnews11.pdf
index a507401847..ff5473b08c 100644
--- a/macros/latex/base/ltnews11.pdf
+++ b/macros/latex/base/ltnews11.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews12.pdf b/macros/latex/base/ltnews12.pdf
index 0726dec586..ca725f5da2 100644
--- a/macros/latex/base/ltnews12.pdf
+++ b/macros/latex/base/ltnews12.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews13.pdf b/macros/latex/base/ltnews13.pdf
index d3a58cef1e..c6d94b1531 100644
--- a/macros/latex/base/ltnews13.pdf
+++ b/macros/latex/base/ltnews13.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews14.pdf b/macros/latex/base/ltnews14.pdf
index 27c65c26a3..1990482f55 100644
--- a/macros/latex/base/ltnews14.pdf
+++ b/macros/latex/base/ltnews14.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews15.pdf b/macros/latex/base/ltnews15.pdf
index 7d2af1f10f..e724e09151 100644
--- a/macros/latex/base/ltnews15.pdf
+++ b/macros/latex/base/ltnews15.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews16.pdf b/macros/latex/base/ltnews16.pdf
index c56e7d6265..c989fdc2c3 100644
--- a/macros/latex/base/ltnews16.pdf
+++ b/macros/latex/base/ltnews16.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews17.pdf b/macros/latex/base/ltnews17.pdf
index f45f35fca1..847df58461 100644
--- a/macros/latex/base/ltnews17.pdf
+++ b/macros/latex/base/ltnews17.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews18.pdf b/macros/latex/base/ltnews18.pdf
index 3ee9260e11..54561f9a0e 100644
--- a/macros/latex/base/ltnews18.pdf
+++ b/macros/latex/base/ltnews18.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews19.pdf b/macros/latex/base/ltnews19.pdf
index 2bce443bfe..dd6672c3f8 100644
--- a/macros/latex/base/ltnews19.pdf
+++ b/macros/latex/base/ltnews19.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews20.pdf b/macros/latex/base/ltnews20.pdf
index 7aff610359..4302752b8e 100644
--- a/macros/latex/base/ltnews20.pdf
+++ b/macros/latex/base/ltnews20.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews21.pdf b/macros/latex/base/ltnews21.pdf
index 8ad52e57e3..bd2cb8a2f3 100644
--- a/macros/latex/base/ltnews21.pdf
+++ b/macros/latex/base/ltnews21.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews22.pdf b/macros/latex/base/ltnews22.pdf
index 130e4023f8..3ebcc2c282 100644
--- a/macros/latex/base/ltnews22.pdf
+++ b/macros/latex/base/ltnews22.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews23.pdf b/macros/latex/base/ltnews23.pdf
index 4bde7df96a..fc4ff5abb9 100644
--- a/macros/latex/base/ltnews23.pdf
+++ b/macros/latex/base/ltnews23.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews24.pdf b/macros/latex/base/ltnews24.pdf
index 543974bd72..29d78c2ff2 100644
--- a/macros/latex/base/ltnews24.pdf
+++ b/macros/latex/base/ltnews24.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews25.pdf b/macros/latex/base/ltnews25.pdf
index 5096ce13cb..c8b648f6c0 100644
--- a/macros/latex/base/ltnews25.pdf
+++ b/macros/latex/base/ltnews25.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews26.pdf b/macros/latex/base/ltnews26.pdf
index 8a0d447019..57342bb4c6 100644
--- a/macros/latex/base/ltnews26.pdf
+++ b/macros/latex/base/ltnews26.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews27.pdf b/macros/latex/base/ltnews27.pdf
index 064f695055..926c1a751b 100644
--- a/macros/latex/base/ltnews27.pdf
+++ b/macros/latex/base/ltnews27.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews28.pdf b/macros/latex/base/ltnews28.pdf
index 750ed1b191..e31c50dc4d 100644
--- a/macros/latex/base/ltnews28.pdf
+++ b/macros/latex/base/ltnews28.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews29.pdf b/macros/latex/base/ltnews29.pdf
index 115b32cc19..b358d7636f 100644
--- a/macros/latex/base/ltnews29.pdf
+++ b/macros/latex/base/ltnews29.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews30.pdf b/macros/latex/base/ltnews30.pdf
index c9b78adb0a..e2880410b7 100644
--- a/macros/latex/base/ltnews30.pdf
+++ b/macros/latex/base/ltnews30.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews31.pdf b/macros/latex/base/ltnews31.pdf
index 48d3e7371e..8ab5379cbd 100644
--- a/macros/latex/base/ltnews31.pdf
+++ b/macros/latex/base/ltnews31.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews32.pdf b/macros/latex/base/ltnews32.pdf
index 2fa918fa1f..6e286d770b 100644
--- a/macros/latex/base/ltnews32.pdf
+++ b/macros/latex/base/ltnews32.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews33.pdf b/macros/latex/base/ltnews33.pdf
index 1da0af6f08..8eae06e555 100644
--- a/macros/latex/base/ltnews33.pdf
+++ b/macros/latex/base/ltnews33.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews34.pdf b/macros/latex/base/ltnews34.pdf
index 6aaba125eb..8f5432e260 100644
--- a/macros/latex/base/ltnews34.pdf
+++ b/macros/latex/base/ltnews34.pdf
Binary files differ
diff --git a/macros/latex/base/ltnews35.pdf b/macros/latex/base/ltnews35.pdf
index 99dabd3c98..f571324c86 100644
--- a/macros/latex/base/ltnews35.pdf
+++ b/macros/latex/base/ltnews35.pdf
Binary files differ
diff --git a/macros/latex/base/ltpara-code.pdf b/macros/latex/base/ltpara-code.pdf
index 9fbfe900ca..4ac9d23293 100644
--- a/macros/latex/base/ltpara-code.pdf
+++ b/macros/latex/base/ltpara-code.pdf
Binary files differ
diff --git a/macros/latex/base/ltpara-doc.pdf b/macros/latex/base/ltpara-doc.pdf
index a341bb2bb7..e9c2d13c9d 100644
--- a/macros/latex/base/ltpara-doc.pdf
+++ b/macros/latex/base/ltpara-doc.pdf
Binary files differ
diff --git a/macros/latex/base/ltshipout-code.pdf b/macros/latex/base/ltshipout-code.pdf
index 9551cb3aec..f9fff6ed6b 100644
--- a/macros/latex/base/ltshipout-code.pdf
+++ b/macros/latex/base/ltshipout-code.pdf
Binary files differ
diff --git a/macros/latex/base/ltshipout-doc.pdf b/macros/latex/base/ltshipout-doc.pdf
index 67e30a163e..09afa83f4d 100644
--- a/macros/latex/base/ltshipout-doc.pdf
+++ b/macros/latex/base/ltshipout-doc.pdf
Binary files differ
diff --git a/macros/latex/base/ltvers.dtx b/macros/latex/base/ltvers.dtx
index 89ab33f1af..eaedb2b433 100644
--- a/macros/latex/base/ltvers.dtx
+++ b/macros/latex/base/ltvers.dtx
@@ -115,7 +115,7 @@
{2022-06-01}
%</2ekernel|latexrelease>
%<*2ekernel>
-\def\patch@level{3}
+\def\patch@level{4}
% \end{macrocode}
%
% \begin{macro}{\development@branch@name}
diff --git a/macros/latex/base/ltx3info.pdf b/macros/latex/base/ltx3info.pdf
index 6df2a246b9..5ddac15016 100644
--- a/macros/latex/base/ltx3info.pdf
+++ b/macros/latex/base/ltx3info.pdf
Binary files differ
diff --git a/macros/latex/base/ltxdoc.pdf b/macros/latex/base/ltxdoc.pdf
index 0e7de2480e..14055e1eb6 100644
--- a/macros/latex/base/ltxdoc.pdf
+++ b/macros/latex/base/ltxdoc.pdf
Binary files differ
diff --git a/macros/latex/base/makeindx.pdf b/macros/latex/base/makeindx.pdf
index 04f209e57d..2537c3a8b4 100644
--- a/macros/latex/base/makeindx.pdf
+++ b/macros/latex/base/makeindx.pdf
Binary files differ
diff --git a/macros/latex/base/modguide.pdf b/macros/latex/base/modguide.pdf
index 8334721047..27784384ab 100644
--- a/macros/latex/base/modguide.pdf
+++ b/macros/latex/base/modguide.pdf
Binary files differ
diff --git a/macros/latex/base/nfssfont.pdf b/macros/latex/base/nfssfont.pdf
index 1e6554b553..670b8f5745 100644
--- a/macros/latex/base/nfssfont.pdf
+++ b/macros/latex/base/nfssfont.pdf
Binary files differ
diff --git a/macros/latex/base/proc.pdf b/macros/latex/base/proc.pdf
index 7e1fdf258c..c785c45c34 100644
--- a/macros/latex/base/proc.pdf
+++ b/macros/latex/base/proc.pdf
Binary files differ
diff --git a/macros/latex/base/slides.pdf b/macros/latex/base/slides.pdf
index ef9263a7d9..2f0be88563 100644
--- a/macros/latex/base/slides.pdf
+++ b/macros/latex/base/slides.pdf
Binary files differ
diff --git a/macros/latex/base/slifonts.pdf b/macros/latex/base/slifonts.pdf
index c4cc655c47..1c38fe3062 100644
--- a/macros/latex/base/slifonts.pdf
+++ b/macros/latex/base/slifonts.pdf
Binary files differ
diff --git a/macros/latex/base/source2e.pdf b/macros/latex/base/source2e.pdf
index c576eb55ee..3f16f3e5d5 100644
--- a/macros/latex/base/source2e.pdf
+++ b/macros/latex/base/source2e.pdf
Binary files differ
diff --git a/macros/latex/base/syntonly.pdf b/macros/latex/base/syntonly.pdf
index 19545566b1..b4fef18899 100644
--- a/macros/latex/base/syntonly.pdf
+++ b/macros/latex/base/syntonly.pdf
Binary files differ
diff --git a/macros/latex/base/tlc2.pdf b/macros/latex/base/tlc2.pdf
index 74efbe951e..a78165e060 100644
--- a/macros/latex/base/tlc2.pdf
+++ b/macros/latex/base/tlc2.pdf
Binary files differ
diff --git a/macros/latex/base/tulm.pdf b/macros/latex/base/tulm.pdf
index 134b620c0b..5ff3bbba57 100644
--- a/macros/latex/base/tulm.pdf
+++ b/macros/latex/base/tulm.pdf
Binary files differ
diff --git a/macros/latex/base/usrguide.pdf b/macros/latex/base/usrguide.pdf
index 904a9de82b..f27f99cb4e 100644
--- a/macros/latex/base/usrguide.pdf
+++ b/macros/latex/base/usrguide.pdf
Binary files differ
diff --git a/macros/latex/base/usrguide3.pdf b/macros/latex/base/usrguide3.pdf
index e9ba6f765b..2dbfa4d7e2 100644
--- a/macros/latex/base/usrguide3.pdf
+++ b/macros/latex/base/usrguide3.pdf
Binary files differ
diff --git a/macros/latex/base/utf8ienc.pdf b/macros/latex/base/utf8ienc.pdf
index 8d4067767f..7069b2eab0 100644
--- a/macros/latex/base/utf8ienc.pdf
+++ b/macros/latex/base/utf8ienc.pdf
Binary files differ
diff --git a/macros/latex/base/webcomp.pdf b/macros/latex/base/webcomp.pdf
index 290facef37..e94c148935 100644
--- a/macros/latex/base/webcomp.pdf
+++ b/macros/latex/base/webcomp.pdf
Binary files differ