From d43e1a067f81785ef853564816e403766ff3586f Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 6 Jul 2022 20:20:37 +0000 Subject: latex (6jul22) git-svn-id: svn://tug.org/texlive/trunk@63825 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/base/ltfinal.dtx | 18 +++++-- Master/texmf-dist/source/latex/base/ltfssbas.dtx | 66 ++++++++++++++++++++---- Master/texmf-dist/source/latex/base/ltfssdcl.dtx | 17 ++++-- Master/texmf-dist/source/latex/base/ltkeys.dtx | 9 ++-- Master/texmf-dist/source/latex/base/ltvers.dtx | 2 +- 5 files changed, 92 insertions(+), 20 deletions(-) (limited to 'Master/texmf-dist/source') 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} +% +%\IncludeInRelease{2021/11/15} +% {\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} +% +%\EndIncludeInRelease +%\IncludeInRelease{2020/10/01} +% {\frozen@everydisplay}{Handle spaces after math}% +% +%\frozen@everydisplay = {\check@mathfonts +% \the\everydisplay} +%\frozen@everymath = {\check@mathfonts +% \the\everymath} +% +%\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> -\def\patch@level{4} +\def\patch@level{5} % \end{macrocode} % % \begin{macro}{\development@branch@name} -- cgit v1.2.3