summaryrefslogtreecommitdiff
path: root/macros/latex/base
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-07-06 03:01:05 +0000
committerNorbert Preining <norbert@preining.info>2022-07-06 03:01:05 +0000
commit9f9a07ef2eb0c1f25ce9afc7bb94928956c036ea (patch)
treea706b2c99b27a20164dcda46d097faaa1d42113a /macros/latex/base
parentf1e3d1ca3738aac0ba720e4c1d87795d5d0cdcd9 (diff)
CTAN sync 202207060301
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.txt26
-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.pdfbin1081708 -> 1081839 bytes
-rw-r--r--macros/latex/base/doc.pdfbin755175 -> 755306 bytes
-rw-r--r--macros/latex/base/docstrip.pdfbin503590 -> 503671 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.pdfbin337759 -> 337850 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.pdfbin719928 -> 720074 bytes
-rw-r--r--macros/latex/base/ltcmdhooks-doc.pdfbin478764 -> 478906 bytes
-rw-r--r--macros/latex/base/ltfilehook-code.pdfbin802706 -> 802907 bytes
-rw-r--r--macros/latex/base/ltfilehook-doc.pdfbin548407 -> 548594 bytes
-rw-r--r--macros/latex/base/ltfinal.dtx18
-rw-r--r--macros/latex/base/ltfssbas.dtx66
-rw-r--r--macros/latex/base/ltfssdcl.dtx17
-rw-r--r--macros/latex/base/lthooks-code.pdfbin1096835 -> 1097030 bytes
-rw-r--r--macros/latex/base/lthooks-doc.pdfbin703719 -> 703906 bytes
-rw-r--r--macros/latex/base/ltkeys.dtx9
-rw-r--r--macros/latex/base/ltluatex.pdfbin317700 -> 317700 bytes
-rw-r--r--macros/latex/base/ltmarks-code.pdfbin715597 -> 715715 bytes
-rw-r--r--macros/latex/base/ltmarks-doc.pdfbin587038 -> 587167 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.pdfbin667069 -> 667279 bytes
-rw-r--r--macros/latex/base/ltpara-doc.pdfbin560543 -> 560756 bytes
-rw-r--r--macros/latex/base/ltshipout-code.pdfbin820798 -> 820981 bytes
-rw-r--r--macros/latex/base/ltshipout-doc.pdfbin565087 -> 565273 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.pdfbin5762787 -> 5767995 bytes
-rw-r--r--macros/latex/base/syntonly.pdfbin189835 -> 189919 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 -> 410688 bytes
-rw-r--r--macros/latex/base/usrguide3.tex57
-rw-r--r--macros/latex/base/utf8ienc.pdfbin353408 -> 353634 bytes
-rw-r--r--macros/latex/base/webcomp.pdfbin146198 -> 146198 bytes
96 files changed, 173 insertions, 24 deletions
diff --git a/macros/latex/base/README.md b/macros/latex/base/README.md
index 94ffab343f..8dba55fe14 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 4
+Release 2022-06-01 patch level 5
Overview
--------
diff --git a/macros/latex/base/alltt.pdf b/macros/latex/base/alltt.pdf
index 4e2858abb8..d4173fd416 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 9f7729c703..49ecab6d41 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 eeb9833e3c..217efcf626 100644
--- a/macros/latex/base/changes.txt
+++ b/macros/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/macros/latex/base/classes.pdf b/macros/latex/base/classes.pdf
index ecd3771a6a..f4e8a51d5b 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 8ebd50d30e..c86a168e45 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 3de2f17be5..708ec8a389 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 1655712443..ee3a68232b 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 8adca71d1e..681bc85143 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 0065954929..41b3bd0270 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 8780f6bc20..cf287333f6 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 bb73e9671a..38a18aa70c 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 970be29693..aabccee5eb 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 60ee0c1f66..d95d45ed93 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 9b46aa3f16..a8222b760c 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 0948a425e2..81fc7ecaa7 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 32f0d68c5e..10c6f991ad 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 e0e0229642..063aa537db 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 93661a6441..ff9c9f2890 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 2afb503b8c..cd9871e06e 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 c52adce888..aa3dac63d5 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 a8c5eb1738..9ad793fdfd 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 3c036cbc03..5a8ee46a91 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 0f1d04e66e..c2bf5f2103 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 efadd551fc..298b841732 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 c3c720c399..c5ea646d28 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 12bd4225d7..f584f9915f 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 ec25e3bf8f..2ff4c09418 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 58caa9608f..c29c190154 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 9859b279ef..fafd0c6912 100644
--- a/macros/latex/base/ltfinal.dtx
+++ b/macros/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/macros/latex/base/ltfssbas.dtx b/macros/latex/base/ltfssbas.dtx
index d013ec0ecb..cc43622a4b 100644
--- a/macros/latex/base/ltfssbas.dtx
+++ b/macros/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/macros/latex/base/ltfssdcl.dtx b/macros/latex/base/ltfssdcl.dtx
index 65bc40803e..dd9f12f802 100644
--- a/macros/latex/base/ltfssdcl.dtx
+++ b/macros/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/macros/latex/base/lthooks-code.pdf b/macros/latex/base/lthooks-code.pdf
index 3e1620cef4..250950b91c 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 6bfe835b5f..ae0db8168a 100644
--- a/macros/latex/base/lthooks-doc.pdf
+++ b/macros/latex/base/lthooks-doc.pdf
Binary files differ
diff --git a/macros/latex/base/ltkeys.dtx b/macros/latex/base/ltkeys.dtx
index fbd5ce302a..3de2a0582f 100644
--- a/macros/latex/base/ltkeys.dtx
+++ b/macros/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/macros/latex/base/ltluatex.pdf b/macros/latex/base/ltluatex.pdf
index 7b6cde5ccf..145035b41c 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 361fc4ab29..c1d9b03a2f 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 ba685434cc..2be35c3b57 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 69d04a9bd3..034754546d 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 8ea91c3bf9..990d35848d 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 ca516dabde..d6d78abcc1 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 cf53ab5a0b..55c4f73b7f 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 5a3221eed7..03b34f71f2 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 bf18d49dee..693d87c824 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 2c999c0e8c..a205d98386 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 7387e46621..1b927a766e 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 0a0a949048..7b5b895edf 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 d5244667a8..8ccfc74922 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 c7e7980b03..2a991a0611 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 ff5473b08c..d69729c8c5 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 ca725f5da2..68b649e244 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 c6d94b1531..44b1755b94 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 1990482f55..d852638b7d 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 e724e09151..84f9092d45 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 c989fdc2c3..e2b4c586ed 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 847df58461..9f645aa690 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 54561f9a0e..1356eb153e 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 dd6672c3f8..35e0bda64b 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 4302752b8e..65ebafbf08 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 bd2cb8a2f3..2583506089 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 3ebcc2c282..7069bbd881 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 fc4ff5abb9..ca66955afa 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 29d78c2ff2..f2c8066238 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 c8b648f6c0..142bf7b039 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 57342bb4c6..6c5d647d64 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 926c1a751b..1f0bcbc27a 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 e31c50dc4d..de3a29db79 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 b358d7636f..4a094a88af 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 e2880410b7..db62aea7a8 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 8ab5379cbd..579fd7e2a8 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 6e286d770b..1eaa53b6e1 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 8eae06e555..76c720e3b5 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 8f5432e260..3d7ae3a8d7 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 f571324c86..c0dd1b20ea 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 4ac9d23293..80045a16e1 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 e9c2d13c9d..b068275c12 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 f9fff6ed6b..a677a7f9ec 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 09afa83f4d..ec355c1a3f 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 eaedb2b433..37b91d2231 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{4}
+\def\patch@level{5}
% \end{macrocode}
%
% \begin{macro}{\development@branch@name}
diff --git a/macros/latex/base/ltx3info.pdf b/macros/latex/base/ltx3info.pdf
index 5ddac15016..3b1653af0b 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 14055e1eb6..7e39f14d7e 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 2537c3a8b4..91e05501c9 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 27784384ab..8afd8046aa 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 670b8f5745..316a5afd99 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 c785c45c34..67e5dcf235 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 2f0be88563..be6cc79358 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 1c38fe3062..4bb21df481 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 3f16f3e5d5..625e2df5d4 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 b4fef18899..c93990d55a 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 a78165e060..5edfe4b178 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 5ff3bbba57..650e4ded6a 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 f27f99cb4e..e07b34bdac 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 2dbfa4d7e2..1a4d6d3b01 100644
--- a/macros/latex/base/usrguide3.pdf
+++ b/macros/latex/base/usrguide3.pdf
Binary files differ
diff --git a/macros/latex/base/usrguide3.tex b/macros/latex/base/usrguide3.tex
index efec9ad2a2..a148c77ed5 100644
--- a/macros/latex/base/usrguide3.tex
+++ b/macros/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/macros/latex/base/utf8ienc.pdf b/macros/latex/base/utf8ienc.pdf
index 7069b2eab0..2d31ae6666 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 e94c148935..5282d9681c 100644
--- a/macros/latex/base/webcomp.pdf
+++ b/macros/latex/base/webcomp.pdf
Binary files differ