summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/latex/base/README.md2
-rw-r--r--Master/texmf-dist/doc/latex/base/alltt.pdfbin223831 -> 223831 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/cfgguide.pdfbin242888 -> 242888 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/changes.txt26
-rw-r--r--Master/texmf-dist/doc/latex/base/classes.pdfbin560350 -> 560350 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/clsguide.pdfbin402780 -> 402780 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/cmfonts.pdfbin292376 -> 292376 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/cyrguide.pdfbin239689 -> 239689 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/doc-code.pdfbin1081708 -> 1081839 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/doc.pdfbin755175 -> 755306 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/docstrip.pdfbin503590 -> 503671 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/encguide.pdfbin1318126 -> 1318126 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/exscale.pdfbin204711 -> 204711 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/fix-cm.pdfbin287733 -> 287733 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/fntguide.pdfbin502880 -> 502880 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/graphpap.pdfbin161713 -> 161713 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ifthen.pdfbin221211 -> 221211 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/inputenc.pdfbin318204 -> 318204 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/lamport-manual.pdfbin170878 -> 170878 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/latexrelease.pdfbin281906 -> 281906 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/latexsym.pdfbin200760 -> 200760 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/lb2.pdfbin252140 -> 252140 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/letter.pdfbin337759 -> 337850 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/lgc2.pdfbin215684 -> 215684 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/lppl.pdfbin132382 -> 132382 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltcmdhooks-code.pdfbin719928 -> 720074 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltcmdhooks-doc.pdfbin478764 -> 478906 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltfilehook-code.pdfbin802706 -> 802907 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltfilehook-doc.pdfbin548407 -> 548594 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/lthooks-code.pdfbin1096835 -> 1097030 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/lthooks-doc.pdfbin703719 -> 703906 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltluatex.pdfbin317700 -> 317700 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltmarks-code.pdfbin715597 -> 715715 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltmarks-doc.pdfbin587038 -> 587167 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews.pdfbin1180993 -> 1180993 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews01.pdfbin161518 -> 161518 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews02.pdfbin159792 -> 159792 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews03.pdfbin159332 -> 159332 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews04.pdfbin152525 -> 152525 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews05.pdfbin174494 -> 174494 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews06.pdfbin142849 -> 142849 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews07.pdfbin137811 -> 137811 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews08.pdfbin155053 -> 155053 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews09.pdfbin129570 -> 129570 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews10.pdfbin169416 -> 169416 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews11.pdfbin111948 -> 111948 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews12.pdfbin156551 -> 156551 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews13.pdfbin182225 -> 182225 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews14.pdfbin170473 -> 170473 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews15.pdfbin130309 -> 130309 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews16.pdfbin138073 -> 138073 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews17.pdfbin166228 -> 166228 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews18.pdfbin38033 -> 38033 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews19.pdfbin230028 -> 230028 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews20.pdfbin318548 -> 318548 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews21.pdfbin244867 -> 244867 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews22.pdfbin317773 -> 317773 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews23.pdfbin286591 -> 286591 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews24.pdfbin265279 -> 265279 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews25.pdfbin204935 -> 204935 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews26.pdfbin379462 -> 379462 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews27.pdfbin250592 -> 250592 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews28.pdfbin376643 -> 376643 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews29.pdfbin455107 -> 455107 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews30.pdfbin511909 -> 511909 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews31.pdfbin526323 -> 526323 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews32.pdfbin546160 -> 546160 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews33.pdfbin522412 -> 522412 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews34.pdfbin508044 -> 508044 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltnews35.pdfbin563513 -> 563513 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltpara-code.pdfbin667069 -> 667279 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltpara-doc.pdfbin560543 -> 560756 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltshipout-code.pdfbin820798 -> 820981 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltshipout-doc.pdfbin565087 -> 565273 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltx3info.pdfbin219349 -> 219349 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/ltxdoc.pdfbin242645 -> 242645 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/makeindx.pdfbin165821 -> 165821 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/modguide.pdfbin243605 -> 243605 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/nfssfont.pdfbin211180 -> 211180 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/proc.pdfbin227059 -> 227059 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/slides.pdfbin375518 -> 375518 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/slifonts.pdfbin234191 -> 234191 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/source2e.pdfbin5762787 -> 5767995 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/syntonly.pdfbin189835 -> 189919 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/tlc2.pdfbin290615 -> 290615 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/tulm.pdfbin162772 -> 162772 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/usrguide.pdfbin430994 -> 430994 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/usrguide3.pdfbin403394 -> 410688 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/usrguide3.tex57
-rw-r--r--Master/texmf-dist/doc/latex/base/utf8ienc.pdfbin353408 -> 353634 bytes
-rw-r--r--Master/texmf-dist/doc/latex/base/webcomp.pdfbin146198 -> 146198 bytes
-rw-r--r--Master/texmf-dist/source/latex/base/ltfinal.dtx18
-rw-r--r--Master/texmf-dist/source/latex/base/ltfssbas.dtx66
-rw-r--r--Master/texmf-dist/source/latex/base/ltfssdcl.dtx17
-rw-r--r--Master/texmf-dist/source/latex/base/ltkeys.dtx9
-rw-r--r--Master/texmf-dist/source/latex/base/ltvers.dtx2
-rw-r--r--Master/texmf-dist/tex/latex/base/latex.ltx31
-rw-r--r--Master/texmf-dist/tex/latex/base/latexrelease.sty26
98 files changed, 219 insertions, 35 deletions
diff --git a/Master/texmf-dist/doc/latex/base/README.md b/Master/texmf-dist/doc/latex/base/README.md
index 94ffab343f4..8dba55fe14f 100644
--- a/Master/texmf-dist/doc/latex/base/README.md
+++ b/Master/texmf-dist/doc/latex/base/README.md
@@ -1,7 +1,7 @@
The LaTeX kernel
================
-Release 2022-06-01 patch level 4
+Release 2022-06-01 patch level 5
Overview
--------
diff --git a/Master/texmf-dist/doc/latex/base/alltt.pdf b/Master/texmf-dist/doc/latex/base/alltt.pdf
index 4e2858abb80..d4173fd4169 100644
--- a/Master/texmf-dist/doc/latex/base/alltt.pdf
+++ b/Master/texmf-dist/doc/latex/base/alltt.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/cfgguide.pdf b/Master/texmf-dist/doc/latex/base/cfgguide.pdf
index 9f7729c703c..49ecab6d416 100644
--- a/Master/texmf-dist/doc/latex/base/cfgguide.pdf
+++ b/Master/texmf-dist/doc/latex/base/cfgguide.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/changes.txt b/Master/texmf-dist/doc/latex/base/changes.txt
index eeb9833e3c7..217efcf626c 100644
--- a/Master/texmf-dist/doc/latex/base/changes.txt
+++ b/Master/texmf-dist/doc/latex/base/changes.txt
@@ -11,8 +11,30 @@ All changes above are only part of the development branch for the next release.
================================================================================
#########################
+# 2022-06-01 PL5 Release
+#########################
+
+2022-07-05 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * ltkeys.dtx (subsection{Main mechanism})
+ Correct name of store for raw class options list
+ Support \CurrentOption in unknown keys
+
+2022-07-04 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
+
+ * ltfssbas.dtx, ltfssdcl.dtx:
+ Ignore spaces if necessary, i.e., after display math done with $$ (gh/886)
+
+2022-07-04 Joseph Wright <Joseph.Wright@latex-project.org>
+
+ * ltfinal.dtx
+ Introduce \MakeTitlecase, \CaseSwitch and \DeclareCaseChangeEquivalent
+ as LaTeX2e names for expl3 case changing hooks, needed to support
+ some customisation requirements (e.g. biblatex)
+
+#########################
# 2022-06-01 PL4 Release
-########################
+#########################
2022-06-30 David Carlisle <David.Carlisle@latex-project.org>
@@ -22,7 +44,7 @@ All changes above are only part of the development branch for the next release.
#########################
# 2022-06-01 PL3 Release
-########################
+#########################
2022-06-23 Frank Mittelbach <Frank.Mittelbach@latex-project.org>
diff --git a/Master/texmf-dist/doc/latex/base/classes.pdf b/Master/texmf-dist/doc/latex/base/classes.pdf
index ecd3771a6ae..f4e8a51d5b3 100644
--- a/Master/texmf-dist/doc/latex/base/classes.pdf
+++ b/Master/texmf-dist/doc/latex/base/classes.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/clsguide.pdf b/Master/texmf-dist/doc/latex/base/clsguide.pdf
index 8ebd50d30ec..c86a168e45b 100644
--- a/Master/texmf-dist/doc/latex/base/clsguide.pdf
+++ b/Master/texmf-dist/doc/latex/base/clsguide.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/cmfonts.pdf b/Master/texmf-dist/doc/latex/base/cmfonts.pdf
index 3de2f17be54..708ec8a3896 100644
--- a/Master/texmf-dist/doc/latex/base/cmfonts.pdf
+++ b/Master/texmf-dist/doc/latex/base/cmfonts.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/cyrguide.pdf b/Master/texmf-dist/doc/latex/base/cyrguide.pdf
index 1655712443e..ee3a68232b0 100644
--- a/Master/texmf-dist/doc/latex/base/cyrguide.pdf
+++ b/Master/texmf-dist/doc/latex/base/cyrguide.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/doc-code.pdf b/Master/texmf-dist/doc/latex/base/doc-code.pdf
index 8adca71d1e3..681bc851436 100644
--- a/Master/texmf-dist/doc/latex/base/doc-code.pdf
+++ b/Master/texmf-dist/doc/latex/base/doc-code.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/doc.pdf b/Master/texmf-dist/doc/latex/base/doc.pdf
index 0065954929d..41b3bd0270b 100644
--- a/Master/texmf-dist/doc/latex/base/doc.pdf
+++ b/Master/texmf-dist/doc/latex/base/doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/docstrip.pdf b/Master/texmf-dist/doc/latex/base/docstrip.pdf
index 8780f6bc20d..cf287333f6b 100644
--- a/Master/texmf-dist/doc/latex/base/docstrip.pdf
+++ b/Master/texmf-dist/doc/latex/base/docstrip.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/encguide.pdf b/Master/texmf-dist/doc/latex/base/encguide.pdf
index bb73e9671a3..38a18aa70c9 100644
--- a/Master/texmf-dist/doc/latex/base/encguide.pdf
+++ b/Master/texmf-dist/doc/latex/base/encguide.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/exscale.pdf b/Master/texmf-dist/doc/latex/base/exscale.pdf
index 970be296934..aabccee5ebb 100644
--- a/Master/texmf-dist/doc/latex/base/exscale.pdf
+++ b/Master/texmf-dist/doc/latex/base/exscale.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/fix-cm.pdf b/Master/texmf-dist/doc/latex/base/fix-cm.pdf
index 60ee0c1f66c..d95d45ed93c 100644
--- a/Master/texmf-dist/doc/latex/base/fix-cm.pdf
+++ b/Master/texmf-dist/doc/latex/base/fix-cm.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/fntguide.pdf b/Master/texmf-dist/doc/latex/base/fntguide.pdf
index 9b46aa3f16c..a8222b760c9 100644
--- a/Master/texmf-dist/doc/latex/base/fntguide.pdf
+++ b/Master/texmf-dist/doc/latex/base/fntguide.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/graphpap.pdf b/Master/texmf-dist/doc/latex/base/graphpap.pdf
index 0948a425e27..81fc7ecaa7a 100644
--- a/Master/texmf-dist/doc/latex/base/graphpap.pdf
+++ b/Master/texmf-dist/doc/latex/base/graphpap.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ifthen.pdf b/Master/texmf-dist/doc/latex/base/ifthen.pdf
index 32f0d68c5e8..10c6f991add 100644
--- a/Master/texmf-dist/doc/latex/base/ifthen.pdf
+++ b/Master/texmf-dist/doc/latex/base/ifthen.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/inputenc.pdf b/Master/texmf-dist/doc/latex/base/inputenc.pdf
index e0e02296423..063aa537db5 100644
--- a/Master/texmf-dist/doc/latex/base/inputenc.pdf
+++ b/Master/texmf-dist/doc/latex/base/inputenc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/lamport-manual.pdf b/Master/texmf-dist/doc/latex/base/lamport-manual.pdf
index 93661a64414..ff9c9f2890b 100644
--- a/Master/texmf-dist/doc/latex/base/lamport-manual.pdf
+++ b/Master/texmf-dist/doc/latex/base/lamport-manual.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/latexrelease.pdf b/Master/texmf-dist/doc/latex/base/latexrelease.pdf
index 2afb503b8ca..cd9871e06e8 100644
--- a/Master/texmf-dist/doc/latex/base/latexrelease.pdf
+++ b/Master/texmf-dist/doc/latex/base/latexrelease.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/latexsym.pdf b/Master/texmf-dist/doc/latex/base/latexsym.pdf
index c52adce8883..aa3dac63d57 100644
--- a/Master/texmf-dist/doc/latex/base/latexsym.pdf
+++ b/Master/texmf-dist/doc/latex/base/latexsym.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/lb2.pdf b/Master/texmf-dist/doc/latex/base/lb2.pdf
index a8c5eb17380..9ad793fdfde 100644
--- a/Master/texmf-dist/doc/latex/base/lb2.pdf
+++ b/Master/texmf-dist/doc/latex/base/lb2.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/letter.pdf b/Master/texmf-dist/doc/latex/base/letter.pdf
index 3c036cbc036..5a8ee46a915 100644
--- a/Master/texmf-dist/doc/latex/base/letter.pdf
+++ b/Master/texmf-dist/doc/latex/base/letter.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/lgc2.pdf b/Master/texmf-dist/doc/latex/base/lgc2.pdf
index 0f1d04e66e6..c2bf5f2103c 100644
--- a/Master/texmf-dist/doc/latex/base/lgc2.pdf
+++ b/Master/texmf-dist/doc/latex/base/lgc2.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/lppl.pdf b/Master/texmf-dist/doc/latex/base/lppl.pdf
index efadd551fca..298b841732f 100644
--- a/Master/texmf-dist/doc/latex/base/lppl.pdf
+++ b/Master/texmf-dist/doc/latex/base/lppl.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltcmdhooks-code.pdf b/Master/texmf-dist/doc/latex/base/ltcmdhooks-code.pdf
index c3c720c3999..c5ea646d287 100644
--- a/Master/texmf-dist/doc/latex/base/ltcmdhooks-code.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltcmdhooks-code.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltcmdhooks-doc.pdf b/Master/texmf-dist/doc/latex/base/ltcmdhooks-doc.pdf
index 12bd4225d7f..f584f9915f4 100644
--- a/Master/texmf-dist/doc/latex/base/ltcmdhooks-doc.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltcmdhooks-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltfilehook-code.pdf b/Master/texmf-dist/doc/latex/base/ltfilehook-code.pdf
index ec25e3bf8f6..2ff4c09418d 100644
--- a/Master/texmf-dist/doc/latex/base/ltfilehook-code.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltfilehook-code.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltfilehook-doc.pdf b/Master/texmf-dist/doc/latex/base/ltfilehook-doc.pdf
index 58caa9608f5..c29c1901546 100644
--- a/Master/texmf-dist/doc/latex/base/ltfilehook-doc.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltfilehook-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/lthooks-code.pdf b/Master/texmf-dist/doc/latex/base/lthooks-code.pdf
index 3e1620cef41..250950b91cb 100644
--- a/Master/texmf-dist/doc/latex/base/lthooks-code.pdf
+++ b/Master/texmf-dist/doc/latex/base/lthooks-code.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/lthooks-doc.pdf b/Master/texmf-dist/doc/latex/base/lthooks-doc.pdf
index 6bfe835b5fb..ae0db8168aa 100644
--- a/Master/texmf-dist/doc/latex/base/lthooks-doc.pdf
+++ b/Master/texmf-dist/doc/latex/base/lthooks-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltluatex.pdf b/Master/texmf-dist/doc/latex/base/ltluatex.pdf
index 7b6cde5ccf1..145035b41cd 100644
--- a/Master/texmf-dist/doc/latex/base/ltluatex.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltluatex.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltmarks-code.pdf b/Master/texmf-dist/doc/latex/base/ltmarks-code.pdf
index 361fc4ab29f..c1d9b03a2f3 100644
--- a/Master/texmf-dist/doc/latex/base/ltmarks-code.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltmarks-code.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltmarks-doc.pdf b/Master/texmf-dist/doc/latex/base/ltmarks-doc.pdf
index ba685434ccb..2be35c3b577 100644
--- a/Master/texmf-dist/doc/latex/base/ltmarks-doc.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltmarks-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews.pdf b/Master/texmf-dist/doc/latex/base/ltnews.pdf
index 69d04a9bd39..034754546d9 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews01.pdf b/Master/texmf-dist/doc/latex/base/ltnews01.pdf
index 8ea91c3bf9d..990d35848d2 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews01.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews01.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews02.pdf b/Master/texmf-dist/doc/latex/base/ltnews02.pdf
index ca516dabdea..d6d78abcc1b 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews02.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews02.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews03.pdf b/Master/texmf-dist/doc/latex/base/ltnews03.pdf
index cf53ab5a0b7..55c4f73b7fa 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews03.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews03.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews04.pdf b/Master/texmf-dist/doc/latex/base/ltnews04.pdf
index 5a3221eed71..03b34f71f2e 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews04.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews04.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews05.pdf b/Master/texmf-dist/doc/latex/base/ltnews05.pdf
index bf18d49deeb..693d87c8249 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews05.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews05.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews06.pdf b/Master/texmf-dist/doc/latex/base/ltnews06.pdf
index 2c999c0e8c2..a205d98386c 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews06.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews06.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews07.pdf b/Master/texmf-dist/doc/latex/base/ltnews07.pdf
index 7387e466219..1b927a766e7 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews07.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews07.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews08.pdf b/Master/texmf-dist/doc/latex/base/ltnews08.pdf
index 0a0a9490483..7b5b895edfd 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews08.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews08.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews09.pdf b/Master/texmf-dist/doc/latex/base/ltnews09.pdf
index d5244667a86..8ccfc749224 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews09.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews09.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews10.pdf b/Master/texmf-dist/doc/latex/base/ltnews10.pdf
index c7e7980b031..2a991a06114 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews10.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews10.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews11.pdf b/Master/texmf-dist/doc/latex/base/ltnews11.pdf
index ff5473b08cb..d69729c8c52 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews11.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews11.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews12.pdf b/Master/texmf-dist/doc/latex/base/ltnews12.pdf
index ca725f5da2b..68b649e2444 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews12.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews12.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews13.pdf b/Master/texmf-dist/doc/latex/base/ltnews13.pdf
index c6d94b1531a..44b1755b94b 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews13.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews13.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews14.pdf b/Master/texmf-dist/doc/latex/base/ltnews14.pdf
index 1990482f55d..d852638b7d5 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews14.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews14.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews15.pdf b/Master/texmf-dist/doc/latex/base/ltnews15.pdf
index e724e091517..84f9092d454 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews15.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews15.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews16.pdf b/Master/texmf-dist/doc/latex/base/ltnews16.pdf
index c989fdc2c3b..e2b4c586ed5 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews16.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews16.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews17.pdf b/Master/texmf-dist/doc/latex/base/ltnews17.pdf
index 847df58461a..9f645aa690d 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews17.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews17.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews18.pdf b/Master/texmf-dist/doc/latex/base/ltnews18.pdf
index 54561f9a0eb..1356eb153e6 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews18.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews18.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews19.pdf b/Master/texmf-dist/doc/latex/base/ltnews19.pdf
index dd6672c3f8a..35e0bda64b5 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews19.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews19.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews20.pdf b/Master/texmf-dist/doc/latex/base/ltnews20.pdf
index 4302752b8e7..65ebafbf08a 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews20.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews20.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews21.pdf b/Master/texmf-dist/doc/latex/base/ltnews21.pdf
index bd2cb8a2f3e..25835060896 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews21.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews21.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews22.pdf b/Master/texmf-dist/doc/latex/base/ltnews22.pdf
index 3ebcc2c2826..7069bbd8818 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews22.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews22.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews23.pdf b/Master/texmf-dist/doc/latex/base/ltnews23.pdf
index fc4ff5abb96..ca66955afad 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews23.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews23.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews24.pdf b/Master/texmf-dist/doc/latex/base/ltnews24.pdf
index 29d78c2ff2f..f2c8066238f 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews24.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews24.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews25.pdf b/Master/texmf-dist/doc/latex/base/ltnews25.pdf
index c8b648f6c08..142bf7b0396 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews25.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews25.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews26.pdf b/Master/texmf-dist/doc/latex/base/ltnews26.pdf
index 57342bb4c6a..6c5d647d648 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews26.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews26.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews27.pdf b/Master/texmf-dist/doc/latex/base/ltnews27.pdf
index 926c1a751be..1f0bcbc27ac 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews27.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews27.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews28.pdf b/Master/texmf-dist/doc/latex/base/ltnews28.pdf
index e31c50dc4db..de3a29db793 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews28.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews28.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews29.pdf b/Master/texmf-dist/doc/latex/base/ltnews29.pdf
index b358d7636f3..4a094a88af0 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews29.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews29.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews30.pdf b/Master/texmf-dist/doc/latex/base/ltnews30.pdf
index e2880410b73..db62aea7a8e 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews30.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews30.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews31.pdf b/Master/texmf-dist/doc/latex/base/ltnews31.pdf
index 8ab5379cbd8..579fd7e2a85 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews31.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews31.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews32.pdf b/Master/texmf-dist/doc/latex/base/ltnews32.pdf
index 6e286d770ba..1eaa53b6e1c 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews32.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews32.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews33.pdf b/Master/texmf-dist/doc/latex/base/ltnews33.pdf
index 8eae06e555b..76c720e3b5d 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews33.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews33.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews34.pdf b/Master/texmf-dist/doc/latex/base/ltnews34.pdf
index 8f5432e260d..3d7ae3a8d7d 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews34.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews34.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltnews35.pdf b/Master/texmf-dist/doc/latex/base/ltnews35.pdf
index f571324c86c..c0dd1b20ea9 100644
--- a/Master/texmf-dist/doc/latex/base/ltnews35.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltnews35.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltpara-code.pdf b/Master/texmf-dist/doc/latex/base/ltpara-code.pdf
index 4ac9d23293a..80045a16e1b 100644
--- a/Master/texmf-dist/doc/latex/base/ltpara-code.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltpara-code.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltpara-doc.pdf b/Master/texmf-dist/doc/latex/base/ltpara-doc.pdf
index e9c2d13c9d0..b068275c12e 100644
--- a/Master/texmf-dist/doc/latex/base/ltpara-doc.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltpara-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltshipout-code.pdf b/Master/texmf-dist/doc/latex/base/ltshipout-code.pdf
index f9fff6ed6bb..a677a7f9ec0 100644
--- a/Master/texmf-dist/doc/latex/base/ltshipout-code.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltshipout-code.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltshipout-doc.pdf b/Master/texmf-dist/doc/latex/base/ltshipout-doc.pdf
index 09afa83f4d2..ec355c1a3f6 100644
--- a/Master/texmf-dist/doc/latex/base/ltshipout-doc.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltshipout-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltx3info.pdf b/Master/texmf-dist/doc/latex/base/ltx3info.pdf
index 5ddac150166..3b1653af0b5 100644
--- a/Master/texmf-dist/doc/latex/base/ltx3info.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltx3info.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/ltxdoc.pdf b/Master/texmf-dist/doc/latex/base/ltxdoc.pdf
index 14055e1eb66..7e39f14d7ee 100644
--- a/Master/texmf-dist/doc/latex/base/ltxdoc.pdf
+++ b/Master/texmf-dist/doc/latex/base/ltxdoc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/makeindx.pdf b/Master/texmf-dist/doc/latex/base/makeindx.pdf
index 2537c3a8b4a..91e05501c92 100644
--- a/Master/texmf-dist/doc/latex/base/makeindx.pdf
+++ b/Master/texmf-dist/doc/latex/base/makeindx.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/modguide.pdf b/Master/texmf-dist/doc/latex/base/modguide.pdf
index 27784384ab5..8afd8046aac 100644
--- a/Master/texmf-dist/doc/latex/base/modguide.pdf
+++ b/Master/texmf-dist/doc/latex/base/modguide.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/nfssfont.pdf b/Master/texmf-dist/doc/latex/base/nfssfont.pdf
index 670b8f57457..316a5afd994 100644
--- a/Master/texmf-dist/doc/latex/base/nfssfont.pdf
+++ b/Master/texmf-dist/doc/latex/base/nfssfont.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/proc.pdf b/Master/texmf-dist/doc/latex/base/proc.pdf
index c785c45c343..67e5dcf2356 100644
--- a/Master/texmf-dist/doc/latex/base/proc.pdf
+++ b/Master/texmf-dist/doc/latex/base/proc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/slides.pdf b/Master/texmf-dist/doc/latex/base/slides.pdf
index 2f0be88563a..be6cc79358b 100644
--- a/Master/texmf-dist/doc/latex/base/slides.pdf
+++ b/Master/texmf-dist/doc/latex/base/slides.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/slifonts.pdf b/Master/texmf-dist/doc/latex/base/slifonts.pdf
index 1c38fe30626..4bb21df4817 100644
--- a/Master/texmf-dist/doc/latex/base/slifonts.pdf
+++ b/Master/texmf-dist/doc/latex/base/slifonts.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/source2e.pdf b/Master/texmf-dist/doc/latex/base/source2e.pdf
index 3f16f3e5d5b..625e2df5d4c 100644
--- a/Master/texmf-dist/doc/latex/base/source2e.pdf
+++ b/Master/texmf-dist/doc/latex/base/source2e.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/syntonly.pdf b/Master/texmf-dist/doc/latex/base/syntonly.pdf
index b4fef188999..c93990d55a5 100644
--- a/Master/texmf-dist/doc/latex/base/syntonly.pdf
+++ b/Master/texmf-dist/doc/latex/base/syntonly.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/tlc2.pdf b/Master/texmf-dist/doc/latex/base/tlc2.pdf
index a78165e060e..5edfe4b1781 100644
--- a/Master/texmf-dist/doc/latex/base/tlc2.pdf
+++ b/Master/texmf-dist/doc/latex/base/tlc2.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/tulm.pdf b/Master/texmf-dist/doc/latex/base/tulm.pdf
index 5ff3bbba575..650e4ded6a7 100644
--- a/Master/texmf-dist/doc/latex/base/tulm.pdf
+++ b/Master/texmf-dist/doc/latex/base/tulm.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/usrguide.pdf b/Master/texmf-dist/doc/latex/base/usrguide.pdf
index f27f99cb4e8..e07b34bdaca 100644
--- a/Master/texmf-dist/doc/latex/base/usrguide.pdf
+++ b/Master/texmf-dist/doc/latex/base/usrguide.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/usrguide3.pdf b/Master/texmf-dist/doc/latex/base/usrguide3.pdf
index 2dbfa4d7e2b..1a4d6d3b018 100644
--- a/Master/texmf-dist/doc/latex/base/usrguide3.pdf
+++ b/Master/texmf-dist/doc/latex/base/usrguide3.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/usrguide3.tex b/Master/texmf-dist/doc/latex/base/usrguide3.tex
index efec9ad2a2c..a148c77ed57 100644
--- a/Master/texmf-dist/doc/latex/base/usrguide3.tex
+++ b/Master/texmf-dist/doc/latex/base/usrguide3.tex
@@ -37,7 +37,7 @@
\author{\copyright~Copyright 2020-2022, \LaTeX\ Project Team.\\
All rights reserved.}
-\date{2022-02-19}
+\date{2022-07-05}
\NewDocumentCommand\cs{m}{\texttt{\textbackslash\detokenize{#1}}}
\NewDocumentCommand\marg{m}{\arg{#1}}
@@ -1054,4 +1054,59 @@ it is set to \dimeval{\topskip+\baselineskip*\inteval{40-1}}, given
the values \cs{topskip} (\dimeval{\topskip}) and \cs{baselineskip}
(\dimeval{\baselineskip}) in the current document.
+\section{Case changing}
+
+\TeX{} provides two primitives \cs{uppercase} and \cs{lowercase} for changing
+the case of text. However, these have a range of limitations: they only change
+the case of explicit characters, do not account for the surrounding context, do
+not support UTF-8 input with 8-bit engines, etc. To overcome this problem,
+\LaTeX{} provides the commands \cs{MakeUppercase}, \cs{MakeLowercase} and
+\cs{MakeTitlecase}: these offer significant enhancement over the \TeX{}
+primitives. These commands are engine-robust (\cs{protected}), and so
+can be used in moving arguments.
+
+Upper- and lower-casing are well-understood in general conversation.
+Titlecasing here follows the definition given by the Unicode Consortium: the
+first character of the input will be converted to (broadly) uppercase, and the
+rest of the input to lowercase. The full range of Unicode UTF-8 input can be
+supported, with the proviso that at present the characters set up with 8-bit
+engines match those available in standard input encodings (|T1|, |T2|, |LGR|).
+\begin{quotation}
+ \begin{tabular}{rl}
+ |\MakeUppercase{hello WORLD ßüé}| & \MakeUppercase{hello WORLD ßüé} \\
+ |\MakeLowercase{hello WORLD ßüé}| & \MakeLowercase{hello WORLD ßüé} \\
+ |\MakeTitlecase{hello WORLD ßüé}| & \MakeTitlecase{hello WORLD ßüé} \\
+ \end{tabular}
+\end{quotation}
+
+The input given to these commands is `expanded' before case changing is
+applied. This means that any commands within the input that convert to pure
+text will be case changed. Mathematical content is automatically excluded, as
+are the arguments to the commands \cs{label}, \cs{ref}, \cs{cite}, \cs{begin}
+and \cs{end}. Additional exclusions can be added using the command
+\cs{AddToNoCaseChangeList}. Input can be excluded from case changing using the
+command \cs{NoCaseChange}.
+\begin{quotation}
+ \begin{tabular}{rl}
+ |\MakeUppercase{Some text $y = mx + c$}|
+ & \MakeUppercase{Some text $y = mx + c$} \\
+ |\MakeUppercase{\NoCaseChange{iPhone}}|
+ & \MakeLowercase{\NoCaseChange{iPhone}} \\
+ \end{tabular}
+\end{quotation}
+
+To allow robust commands to be used within case changing \emph{and} to produce
+the expected output, two additional control commands are available.
+\cs{CaseSwitch} allows the user to specify the result for the four possible
+cases
+\begin{itemize}
+ \item No case changing
+ \item Uppercasing
+ \item Lowercasing
+ \item Titlecasing (only applies for the start of the input)
+\end{itemize}
+The command \cs{DeclareCaseChangeEquivalent} provides a way to substitute a
+command by an alternative version when it is found inside a case changing
+situation.
+
\end{document}
diff --git a/Master/texmf-dist/doc/latex/base/utf8ienc.pdf b/Master/texmf-dist/doc/latex/base/utf8ienc.pdf
index 7069b2eab09..2d31ae6666c 100644
--- a/Master/texmf-dist/doc/latex/base/utf8ienc.pdf
+++ b/Master/texmf-dist/doc/latex/base/utf8ienc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/base/webcomp.pdf b/Master/texmf-dist/doc/latex/base/webcomp.pdf
index e94c1489355..5282d9681cf 100644
--- a/Master/texmf-dist/doc/latex/base/webcomp.pdf
+++ b/Master/texmf-dist/doc/latex/base/webcomp.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/base/ltfinal.dtx b/Master/texmf-dist/source/latex/base/ltfinal.dtx
index 9859b279efe..fafd0c69126 100644
--- a/Master/texmf-dist/source/latex/base/ltfinal.dtx
+++ b/Master/texmf-dist/source/latex/base/ltfinal.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltfinal.dtx}
- [2022/06/30 v2.2v LaTeX Kernel (Final Settings)]
+ [2022/07/05 v2.2w LaTeX Kernel (Final Settings)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltfinal.dtx}
@@ -1063,9 +1063,12 @@
% \end{macrocode}
%
% \begin{macro}{\MakeUppercase}
-% \begin{macro}{\MakeUppercase}
+% \begin{macro}{\MakeLowercase}
+% \begin{macro}{\MakeTitlecase}
% \begin{macro}{\NoCaseChange}
% \begin{macro}{\AddToNoCaseChangeList}
+% \begin{macro}{\CaseSwitch}
+% \begin{macro}{\DeclareCaseChangeEquivalent}
% \begin{macro}{\@uclclist}
%
%
@@ -1081,7 +1084,8 @@
% {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.
+% \changes{v2.2w}{2022/07/04}{Introduced \cs{CaseSwitch}, \cs{DeclareCaseChangeEquivalent} and \cs{MakeTitlecase} to support hooking into case changing gh/889}%
+% Wrappers around the L3 case changing functions.
% |\protected| to make them mostly safe as replacements for |uppercase|
% and |\lowercase|.
%
@@ -1109,6 +1113,8 @@
\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}}
+\cs_new_protected_nopar:cpn{MakeTitlecase~}{\text_titlecase:n}
+\cs_set_nopar:Npx\MakeTitlecase#1{\use:c{MakeTitlecase~}{#1}}
% \end{macrocode}
%
% \changes{v2.2u}{2022/06/02}{Add \cs{NoCaseChange}}
@@ -1123,6 +1129,9 @@
{\tl_put_right:Nn \l_text_case_exclude_arg_tl}
\AddToNoCaseChangeList{ \NoCaseChange }
\cs_new_protected:Npn \NoCaseChange #1 {#1}
+\cs_new_eq:NN \CaseSwitch \text_case_switch:nnnn
+\cs_new_eq:NN \DeclareCaseChangeEquivalent
+ \text_declare_case_equivalent:Nn
\ExplSyntaxOff
% \end{macrocode}
%
@@ -1138,6 +1147,9 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
%
% \changes{v1.0h}{1994/05/13}{Added output enc stuff}
% \changes{v1.0i}{1994/05/16}{moved output enc stuff to lfonts}
diff --git a/Master/texmf-dist/source/latex/base/ltfssbas.dtx b/Master/texmf-dist/source/latex/base/ltfssbas.dtx
index d013ec0ecbc..cc43622a4bc 100644
--- a/Master/texmf-dist/source/latex/base/ltfssbas.dtx
+++ b/Master/texmf-dist/source/latex/base/ltfssbas.dtx
@@ -35,7 +35,7 @@
%
%
\ProvidesFile{ltfssbas.dtx}
- [2021/06/09 v3.2j LaTeX Kernel (NFSS Basic Macros)]
+ [2022/07/04 v3.2k LaTeX Kernel (NFSS Basic Macros)]
% \iffalse
\documentclass{ltxdoc}
\begin{document}
@@ -1127,26 +1127,72 @@
% \end{macro}
%
%
-% \begin{macro}{\frozen@everymath}
+%
+
+%
+% \begin{macro}{\frozen@everydisplay}
% \changes{v2.1a}{1994/01/17}{New math font setup}
% Now we define the behaviour of the frozen hooks: first
% check the math setup then call the user hook.
+%
+% The check code may push tokens after the math formula with
+% \cs{aftergroup} and they would prevent a \verb=$$= from dropping
+% following spaces. We therefore use a switch to be set as the
+% first thing after the group so that following code can determine
+% if there was a display or some inline math (in the latter case
+% we better not drop spaces).
+% After setting the switch we also have to place \cs{ignorespaces}
+% because setting the switch may be the only thing that happens
+% after the display.
+% \changes{v3.2k}{2022/07/04}{Ignore spaces if necessary (gh/886)}
+% The issue with handling of spaces was found in 2022, but it is
+% really a bug fix for the code added in 2021/11.
% \begin{macrocode}
-\frozen@everymath = {\check@mathfonts
- \the\everymath}
+%</2ekernel>
+%<latexrelease>\IncludeInRelease{2021/11/15}
+%<latexrelease> {\frozen@everydisplay}{Handle spaces after math}%
+%<*2ekernel|latexrelease>
+\frozen@everydisplay = {%
+ \aftergroup\@ignoretrue \aftergroup\ignorespaces
+ \check@mathfonts
+ \the\everydisplay}
% \end{macrocode}
% \end{macro}
-%
-%
-% \begin{macro}{\frozen@everydisplay}
+
+
+% \begin{macro}{\frozen@everymath}
% \changes{v2.1a}{1994/01/17}{New math font setup}
-% Ditto for the display hook.
+% \changes{v3.2k}{2022/07/04}{Ignore spaces if necessary (gh/886)}
+% The frozen code for inline math is similar, except that here we
+% do not want to drop following spaces.
% \begin{macrocode}
-\frozen@everydisplay = {\check@mathfonts
- \the\everydisplay}
+\frozen@everymath = {%
+ \aftergroup\@ignorefalse
+ \check@mathfonts
+ \the\everymath}
% \end{macrocode}
% \end{macro}
%
+% \begin{macrocode}
+%</2ekernel|latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<latexrelease>\IncludeInRelease{2020/10/01}
+%<latexrelease> {\frozen@everydisplay}{Handle spaces after math}%
+%<latexrelease>
+%<latexrelease>\frozen@everydisplay = {\check@mathfonts
+%<latexrelease> \the\everydisplay}
+%<latexrelease>\frozen@everymath = {\check@mathfonts
+%<latexrelease> \the\everymath}
+%<latexrelease>
+%<latexrelease>\EndIncludeInRelease
+%<*2ekernel>
+% \end{macrocode}
+%
+%
+%
+%
+%
+%
% \changes{v3.0q}{1996/07/27}{\cs{if@inmath} switch removed}
%
% \begin{macro}{\curr@math@size}
diff --git a/Master/texmf-dist/source/latex/base/ltfssdcl.dtx b/Master/texmf-dist/source/latex/base/ltfssdcl.dtx
index 65bc40803e9..dd9f12f802c 100644
--- a/Master/texmf-dist/source/latex/base/ltfssdcl.dtx
+++ b/Master/texmf-dist/source/latex/base/ltfssdcl.dtx
@@ -36,7 +36,7 @@
%
%
\ProvidesFile{ltfssdcl.dtx}
- [2021/10/15 v3.0y LaTeX Kernel (NFSS Declarative Interface)]
+ [2022/07/04 v3.0z LaTeX Kernel (NFSS Declarative Interface)]
% \iffalse
\documentclass{ltxdoc}
\begin{document}
@@ -602,8 +602,8 @@
% math mode, so we use some recursive \cs{group_insert_after:N} for this
% before we execute \cs{mv@\meta{version}@reset}.
% \begin{macrocode}
- \group_insert_after:N \__nfss_init_mv_freeze:N \exp_after:wN
- \group_insert_after:N \cs:w mv@#1@reset \cs_end:
+ \group_insert_after:N \__nfss_init_mv_freeze:N
+ \exp_after:wN \group_insert_after:N \cs:w mv@#1@reset \cs_end:
% \end{macrocode}
% The \cs{check@mathfonts} is called at the very beginning of each
% math formula, so it is a good way to hook in the resetting.
@@ -650,6 +650,17 @@
% \begin{macrocode}
\@font@info{No~ math~ alphabet~ change~ to~ frozen~ version~ #1}
}
+% \end{macrocode}
+% If this is executed after a math display, we may have to arrange
+% for ignoring spaces, because they are now hidden if
+% the tokens from above intervene. This is signaled by the 2e
+% switch \texttt{@ignore} which is set in \cs{frozen@everymath} and
+% \cs{frozen@everydisplay}.
+%
+% This is all 2e code so we use that syntax.
+% \changes{v3.0z}{2022/07/04}{Ignore spaces if necessary (gh/886)}
+% \begin{macrocode}
+ \if@ignore \ignorespaces \fi
}
}
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/base/ltkeys.dtx b/Master/texmf-dist/source/latex/base/ltkeys.dtx
index fbd5ce302af..3de2a0582f1 100644
--- a/Master/texmf-dist/source/latex/base/ltkeys.dtx
+++ b/Master/texmf-dist/source/latex/base/ltkeys.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltkeys.dtx}
- [2022/06/20 v1.0h LaTeX Kernel (Kevyal options)]
+ [2022/07/05 v1.0i LaTeX Kernel (Kevyal options)]
% \iffalse
\documentclass{l3doc}
\GetFileInfo{ltkeys.dtx}
@@ -205,6 +205,7 @@
% \begin{macro}{\@@_options_aux:n}
% \changes{v1.0b}{2022/01/15}
% {Clear option list in end-of-package hook}
+% \changes{v1.0i}{2022/07/05}{Support \cs{CurrentOption}}
% \begin{macro}{\@@_options_end:}
% The main function calls functions to collect up the global and local
% options into \cs{l_@@_options_clist} before calling the
@@ -239,7 +240,8 @@
{ \keys_define:nn {#1} { unknown .undefine: } }
}
\bool_set_true:N \l_@@_options_loading_bool
- \keys_set:nV {#1} \l_@@_options_clist
+ \clist_map_variable:NNn \l_@@_options_clist \CurrentOption
+ { \keys_set:nV {#1} \CurrentOption }
\bool_set_false:N \l_@@_options_loading_bool
\AtEndOfPackage { \cs_set_eq:NN \@unprocessedoptions \scan_stop: }
\@@_option_end:
@@ -283,6 +285,7 @@
% \changes{v1.0h}{2022/06/20}{Use raw options data}
% \begin{macro}{\@@_options_class:nnn}
% \changes{v1.0h}{2022/06/20}{New function}
+% \changes{v1.0i}{2022/07/05}{Correct naming of raw class options storage}
% For classes, each option (stripped of any content after |=|)
% is checked for existence as a key. If found, the option is added to
% the combined list for processing. On the other hand, unused options
@@ -316,7 +319,7 @@
{
\str_if_eq:eeF
{ \exp_not:v { @raw@opt@ \@currname . \@currext } }
- { \exp_not:V \@raw@classoption }
+ { \exp_not:V \@raw@classoptionslist }
{ \clist_put_right:Nn \@unusedoptionlist {#1} }
}
}
diff --git a/Master/texmf-dist/source/latex/base/ltvers.dtx b/Master/texmf-dist/source/latex/base/ltvers.dtx
index eaedb2b4336..37b91d2231c 100644
--- a/Master/texmf-dist/source/latex/base/ltvers.dtx
+++ b/Master/texmf-dist/source/latex/base/ltvers.dtx
@@ -115,7 +115,7 @@
{2022-06-01}
%</2ekernel|latexrelease>
%<*2ekernel>
-\def\patch@level{4}
+\def\patch@level{5}
% \end{macrocode}
%
% \begin{macro}{\development@branch@name}
diff --git a/Master/texmf-dist/tex/latex/base/latex.ltx b/Master/texmf-dist/tex/latex/base/latex.ltx
index 1baefa263a8..f5fedd82076 100644
--- a/Master/texmf-dist/tex/latex/base/latex.ltx
+++ b/Master/texmf-dist/tex/latex/base/latex.ltx
@@ -706,7 +706,7 @@
\def\fmtname{LaTeX2e}
\edef\fmtversion
{2022-06-01}
-\def\patch@level{4}
+\def\patch@level{5}
\edef\development@branch@name{}
\iffalse
\def\reserved@a#1/#2/#3\@nil{%
@@ -7745,10 +7745,16 @@ Type H <return> for immediate help.}%
\let\frozen@everydisplay\everydisplay
\newtoks\everymath
\newtoks\everydisplay
-\frozen@everymath = {\check@mathfonts
- \the\everymath}
-\frozen@everydisplay = {\check@mathfonts
- \the\everydisplay}
+
+\frozen@everydisplay = {%
+ \aftergroup\@ignoretrue \aftergroup\ignorespaces
+ \check@mathfonts
+ \the\everydisplay}
+
+\frozen@everymath = {%
+ \aftergroup\@ignorefalse
+ \check@mathfonts
+ \the\everymath}
\let\curr@math@size\@empty
\def\pickup@font{%
\expandafter \ifx \font@name \relax
@@ -9066,8 +9072,8 @@ Type H <return> for immediate help.}%
(local:~ \int_use:N\c@localmathalphabets) }
\cs_gset_eq:cc { mv@#1@frozen }{ mv@#1 }
\tl_gset:cx { g__nfss_frozen_mv_ #1 _tl }{ \int_use:c { c@mv@#1 } }
- \group_insert_after:N \__nfss_init_mv_freeze:N \exp_after:wN
- \group_insert_after:N \cs:w mv@#1@reset \cs_end:
+ \group_insert_after:N \__nfss_init_mv_freeze:N
+ \exp_after:wN \group_insert_after:N \cs:w mv@#1@reset \cs_end:
\tl_gput_right:No \check@mathfonts
{
\exp_after:wN \group_insert_after:N \cs:w mv@#1@reset \cs_end:
@@ -9088,6 +9094,7 @@ Type H <return> for immediate help.}%
{
\@font@info{No~ math~ alphabet~ change~ to~ frozen~ version~ #1}
}
+ \if@ignore \ignorespaces \fi
}
}
\cs_new_protected:Npn \__nfss_init_mv_freeze:N #1 {%
@@ -14840,7 +14847,8 @@ Type H <return> for immediate help.}%
{ \keys_define:nn {#1} { unknown .undefine: } }
}
\bool_set_true:N \l__keys_options_loading_bool
- \keys_set:nV {#1} \l__keys_options_clist
+ \clist_map_variable:NNn \l__keys_options_clist \CurrentOption
+ { \keys_set:nV {#1} \CurrentOption }
\bool_set_false:N \l__keys_options_loading_bool
\AtEndOfPackage { \cs_set_eq:NN \@unprocessedoptions \scan_stop: }
\__keys_option_end:
@@ -14887,7 +14895,7 @@ Type H <return> for immediate help.}%
{
\str_if_eq:eeF
{ \exp_not:v { @raw@opt@ \@currname . \@currext } }
- { \exp_not:V \@raw@classoption }
+ { \exp_not:V \@raw@classoptionslist }
{ \clist_put_right:Nn \@unusedoptionlist {#1} }
}
}
@@ -17133,10 +17141,15 @@ Type H <return> for immediate help.}%
\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}}
+\cs_new_protected_nopar:cpn{MakeTitlecase~}{\text_titlecase:n}
+\cs_set_nopar:Npx\MakeTitlecase#1{\use:c{MakeTitlecase~}{#1}}
\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}
+\cs_new_eq:NN \CaseSwitch \text_case_switch:nnnn
+\cs_new_eq:NN \DeclareCaseChangeEquivalent
+ \text_declare_case_equivalent:Nn
\ExplSyntaxOff
\def\@uclclist{\oe\OE\o\O\ae\AE
\dh\DH\dj\DJ\l\L\ng\NG\ss\SS\ij\IJ\th\TH}
diff --git a/Master/texmf-dist/tex/latex/base/latexrelease.sty b/Master/texmf-dist/tex/latex/base/latexrelease.sty
index ed02bee3775..33493b9bef5 100644
--- a/Master/texmf-dist/tex/latex/base/latexrelease.sty
+++ b/Master/texmf-dist/tex/latex/base/latexrelease.sty
@@ -8120,6 +8120,27 @@ of this package available from CTAN}
\ignorespaces}
\EndIncludeInRelease
+\IncludeInRelease{2021/11/15}
+ {\frozen@everydisplay}{Handle spaces after math}%
+\frozen@everydisplay = {%
+ \aftergroup\@ignoretrue \aftergroup\ignorespaces
+ \check@mathfonts
+ \the\everydisplay}
+
+\frozen@everymath = {%
+ \aftergroup\@ignorefalse
+ \check@mathfonts
+ \the\everymath}
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}
+ {\frozen@everydisplay}{Handle spaces after math}%
+
+\frozen@everydisplay = {\check@mathfonts
+ \the\everydisplay}
+\frozen@everymath = {\check@mathfonts
+ \the\everymath}
+
+\EndIncludeInRelease
\IncludeInRelease{2020/02/02}%
{\LoadFontDefinitionFile}{Loading .fd files}%
\def\LoadFontDefinitionFile#1#2{%
@@ -9227,8 +9248,8 @@ of this package available from CTAN}
(local:~ \int_use:N\c@localmathalphabets) }
\cs_gset_eq:cc { mv@#1@frozen }{ mv@#1 }
\tl_gset:cx { g__nfss_frozen_mv_ #1 _tl }{ \int_use:c { c@mv@#1 } }
- \group_insert_after:N \__nfss_init_mv_freeze:N \exp_after:wN
- \group_insert_after:N \cs:w mv@#1@reset \cs_end:
+ \group_insert_after:N \__nfss_init_mv_freeze:N
+ \exp_after:wN \group_insert_after:N \cs:w mv@#1@reset \cs_end:
\tl_gput_right:No \check@mathfonts
{
\exp_after:wN \group_insert_after:N \cs:w mv@#1@reset \cs_end:
@@ -9249,6 +9270,7 @@ of this package available from CTAN}
{
\@font@info{No~ math~ alphabet~ change~ to~ frozen~ version~ #1}
}
+ \if@ignore \ignorespaces \fi
}
}
\cs_new_protected:Npn \__nfss_init_mv_freeze:N #1 {%