diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex-dev/base/latex.ltx')
-rw-r--r-- | Master/texmf-dist/tex/latex-dev/base/latex.ltx | 127 |
1 files changed, 77 insertions, 50 deletions
diff --git a/Master/texmf-dist/tex/latex-dev/base/latex.ltx b/Master/texmf-dist/tex/latex-dev/base/latex.ltx index b9cf2952fca..bd313da2fe6 100644 --- a/Master/texmf-dist/tex/latex-dev/base/latex.ltx +++ b/Master/texmf-dist/tex/latex-dev/base/latex.ltx @@ -705,7 +705,7 @@ \def\fmtname{LaTeX2e} \edef\fmtversion {2022-06-01} -\def\patch@level{-2} +\def\patch@level{-3} \edef\development@branch@name{develop \the\year-\the\month-\the\day} \iffalse \def\reserved@a#1/#2/#3\@nil{% @@ -853,7 +853,7 @@ \GenericInfo{}{BEGIN module: \new@modulename\space (\new@moduledate)}% \GenericInfo{}{ \@spaces\@spaces\@spaces\space#3\@gobble}% \ifnum\sourceLaTeXdate<% - \expandafter\@parse@version\new@moduledate//00\@nil\relax + \expandafter\@parse@version\new@moduledate//00\@nil\relax \ifnum\expandafter\@parse@version\fmtversion//00\@nil<% \expandafter\@parse@version\new@moduledate//00\@nil\relax \GenericInfo{}{Skipping module \new@modulename}% @@ -868,7 +868,19 @@ \@skipping@moduletrue \expandafter\new@module@skip \fi} -\long\def\new@module@skip#1\IncludeInRelease{\IncludeInRelease} +\long\def\new@module@skip#1\IncludeInRelease{% + \long\def\reserved@a##1\EndModuleRelease{}% + \if\relax\detokenize\expandafter{\reserved@a#1{}{}\EndModuleRelease}\relax + \else + \@latex@error{Missing mandatory \string\IncludeInRelease{0000/00/00}}\@ehc + \expandafter\@secondoftwo + \fi + \@gobble + {\@expandtwoargs\IncludeInRelease + {0000/00/00}{\new@modulename}% + {ERROR! Emergency recovery}% + #1}% + \IncludeInRelease} \def\EndModuleRelease{% \ifx\new@modulename\@empty \@latex@error{Extra \string\EndModuleRelease.}\@eha @@ -1151,7 +1163,6 @@ \cs_new_eq:NN \dimeval \dim_eval:n \cs_new_eq:NN \skipeval \skip_eval:n \ExplSyntaxOff - \ExplSyntaxOn \cs_new_eq:NN \UseName \use:c \cs_new:Npn \ExpandArgs #1 @@ -1162,7 +1173,6 @@ \msg_new:nnn { kernel } { unknown-arg-expansion } { Unknown~arg~expansion~"#1" } \ExplSyntaxOff - %%% From File: ltdefns.dtx \def\two@digits#1{\ifnum#1<10 0\fi\number#1} \protected\long\def\typeout#1{\begingroup @@ -1720,8 +1730,8 @@ \xdef#1{\the\toks@}% \endgroup} %%% From File: ltcmd.dtx -\def\ltcmdversion{v1.0j} -\def\ltcmddate{2021-12-31} +\def\ltcmdversion{v1.0k} +\def\ltcmddate{2022-02-28} \message{document commands,} \ExplSyntaxOn \tl_new:N \l__cmd_arg_spec_tl @@ -4323,6 +4333,9 @@ \cs_new:Npn \IfValueF { \tl_if_novalue:nT } \cs_new:Npn \IfValueT { \tl_if_novalue:nF } \cs_new:Npn \IfValueTF #1#2#3 { \tl_if_novalue:nTF {#1} {#3} {#2} } +\cs_new_eq:NN \IfBlankF \tl_if_blank:nF +\cs_new_eq:NN \IfBlankT \tl_if_blank:nT +\cs_new_eq:NN \IfBlankTF \tl_if_blank:nTF \tl_new:N \ProcessedArgument \cs_new_eq:NN \ReverseBoolean \__cmd_bool_reverse:N \cs_new_eq:NN \SplitArgument \__cmd_split_argument:nnn @@ -13366,7 +13379,12 @@ Type H <return> for immediate help.}% \def\bibcite{\@newl@bel b} \let\citation\@gobble \DeclareRobustCommand\cite{% - \@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}} + \@ifnextchar [{\@tempswatrue\@citex@checkblank}{\@tempswafalse\@citex@checkblank[]}} +\def\@citex@checkblank[#1]#2{% + \IfBlankTF {#2}% + {\@citex[#1]{\space}}% + {\@citex[#1]{#2}}% +} \def\@citex[#1]#2{\leavevmode \let\@citea\@empty \@cite{\@for\@citeb:=#2\do @@ -14363,7 +14381,7 @@ Type H <return> for immediate help.}% \__keys_tmp:nn } \__keys_tmp:nn - { code } { code } + { code:n } { code } { legacy_if_set:n } { if } { tl_set:N } { store } { usage:n } { usage } @@ -14374,15 +14392,17 @@ Type H <return> for immediate help.}% \clist_new:N \l__keys_options_clist \bool_new:N \l__keys_options_loading_bool \cs_new_protected:Npn \__keys_options:Nn #1#2 + { \__keys_options_expand_module:Nn \__keys_options:nN {#2} #1 } +\cs_new_protected:Npn \__keys_options:nN #1#2 { - \cs_gset_nopar:cpn { opt@fam@\@currname.\@currext } {#2} + \cs_gset_nopar:cpn { opt@fam@\@currname.\@currext } {#1} \cs_set_protected:Npn \__keys_option_end: { } \clist_clear:N \l__keys_options_clist - \__keys_options_global:Nn #1 {#2} + \__keys_options_global:Nn #2 {#1} \__keys_options_local: - \keys_if_exist:nnF {#2} { unknown } + \keys_if_exist:nnF {#1} { unknown } { - \keys_define:nn {#2} + \keys_define:nn {#1} { unknown .code:n = { @@ -14391,16 +14411,15 @@ Type H <return> for immediate help.}% } } \cs_set_protected:Npn \__keys_option_end: - { \keys_define:nn {#2} { unknown .undefine: } } + { \keys_define:nn {#1} { unknown .undefine: } } } \bool_set_true:N \l__keys_options_loading_bool - \keys_set:nV {#2} \l__keys_options_clist + \keys_set:nV {#1} \l__keys_options_clist \bool_set_false:N \l__keys_options_loading_bool \AtEndOfPackage { \cs_set_eq:NN \@unprocessedoptions \scan_stop: } \__keys_option_end: - \__keys_options_loaded:n {#2} + \__keys_options_loaded:n {#1} } -\cs_generate_variant:Nn \__keys_options:Nn { NV } \msg_new:nnnn { keys } { option-unknown } { Unknown~option~'#1'~for~package~#2. } { @@ -14464,25 +14483,30 @@ Type H <return> for immediate help.}% \cs_new:Npn \__keys_remove_equals:n #1 { \__keys_remove_equals:w #1 = \s__keys_stop } \cs_new:Npn \__keys_remove_equals:w #1 = #2 \s__keys_stop { \exp_not:n {#1} } -\NewDocumentCommand \DeclareKeys { o +m } - { - \IfNoValueTF {#1} - { \exp_args:NV \keys_define:nn \@currname } - { \keys_define:nn {#1} } - {#2} - } -\NewDocumentCommand \ProcessKeyOptions { o } +\cs_generate_variant:Nn \keys_define:nn { nx } +\cs_new_protected:Npn \__keys_options_expand_module:Nn #1#2 { - \IfNoValueTF {#1} - { \__keys_options:NV \c_true_bool \@currname } - { \__keys_options:Nn \c_true_bool {#1} } + \cs:w __keys_options_expand_module:nN \use:e { \cs_end: {#2} } #1 } -\NewDocumentCommand \ProcessKeyPackageOptions { o } +\cs_new_protected:Npn \__keys_options_expand_module:nN #1#2 + { #2 {#1} } +\NewDocumentCommand \DeclareKeys { O { \@currname } +m } + { \__keys_options_expand_module:Nn \keys_define:nn {#1} {#2} } +\NewDocumentCommand \DeclareUnknownKeyHandler { O { \@currname } +m } { - \IfNoValueTF {#1} - { \__keys_options:NV \c_false_bool \@currname } - { \__keys_options:Nn \c_false_bool {#1} } + \cs_set_protected:cpn { __keys_unknown_handler_ #1 :nn } ##1##2 {#2} + \__keys_options_expand_module:Nn \keys_define:nx {#1} + { + unknown .code:n = + \exp_not:N \exp_args:NV + \exp_not:c { __keys_unknown_handler_ #1 :nn } + \exp_not:N \l_keys_key_str {####1} + } } +\NewDocumentCommand \ProcessKeyOptions { O { \@currname } } + { \__keys_options:Nn \c_true_bool {#1} } +\NewDocumentCommand \ProcessKeyPackageOptions { O { \@currname } } + { \__keys_options:Nn \c_false_bool {#1} } \@onlypreamble \ProcessKeyOptions \@onlypreamble \ProcessKeyPackageOptions \cs_new_protected:Npn \__keys_options_loaded:n #1 @@ -14536,17 +14560,12 @@ Type H <return> for immediate help.}% LaTeX~was~asked~to~set~a~key~called~"#1",~but~this~is~only~allowed~ before~\begin{document}.~You~will~need~to~set~the~key~earlier. } -\NewDocumentCommand \SetKeys { o +m } - { - \IfNoValueTF {#1} - { \keys_set:Vn \@currname } - { \keys_set:nn {#1} } - {#2} - } +\NewDocumentCommand \SetKeys { O { \@currname } +m } + { \__keys_options_expand_module:Nn \keys_set:nn {#1} {#2} } \ExplSyntaxOff %%% From File: ltfilehook.dtx -\providecommand\ltfilehookversion{v1.0l} -\providecommand\ltfilehookdate{2021/08/27} +\providecommand\ltfilehookversion{v1.0m} +\providecommand\ltfilehookdate{2022/03/10} \ExplSyntaxOn \tl_new:N \CurrentFile \tl_new:N \CurrentFilePath @@ -14685,8 +14704,16 @@ Type H <return> for immediate help.}% \cs_new_eq:NN \undeclare@file@substitution \__filehook_subst_remove:n \ExplSyntaxOff \ExplSyntaxOff -\def\set@curr@file#1{% +\def\set@curr@file{% \begingroup + \set@curr@file@aux} +\edef\set@curr@file@nosearch{% + \begingroup + \let\noexpand\input@path\noexpand\@empty + \csname seq_clear:N\endcsname + \expandafter\noexpand\csname l_file_search_path_seq\endcsname + \noexpand\set@curr@file@aux} +\def\set@curr@file@aux#1{% \escapechar\m@ne \let\protect\string \edef~{\string~}% @@ -16650,23 +16677,23 @@ Type H <return> for immediate help.}% \uccode`\^^9e=`\^^d0 % d-bar \lccode`\^^[=`\^^[ % oe in OT1 \fi % End of reset block for 8-bit engines +\ExplSyntaxOn +\protected\def\@expl@text@lowercase@@n{\text_lowercase:n} +\protected\def\@expl@text@uppercase@@n{\text_uppercase:n} +\ExplSyntaxOff + +%% \begin{macrocode} \DeclareRobustCommand{\MakeUppercase}[1]{{% \def\i{I}\def\j{J}% \def\reserved@a##1##2{\let##1##2\reserved@a}% \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}% - \let\UTF@two@octets@noexpand\@empty - \let\UTF@three@octets@noexpand\@empty - \let\UTF@four@octets@noexpand\@empty - \protected@edef\reserved@a{\uppercase{#1}}% + \protected@edef\reserved@a{\@expl@text@uppercase@@n{#1}}% \reserved@a }} \DeclareRobustCommand{\MakeLowercase}[1]{{% \def\reserved@a##1##2{\let##2##1\reserved@a}% \expandafter\reserved@a\@uclclist\reserved@b{\reserved@b\@gobble}% - \let\UTF@two@octets@noexpand\@empty - \let\UTF@three@octets@noexpand\@empty - \let\UTF@four@octets@noexpand\@empty - \protected@edef\reserved@a{\lowercase{#1}}% + \protected@edef\reserved@a{\@expl@text@lowercase@@n{#1}}% \reserved@a }} \def\@uclclist{\oe\OE\o\O\ae\AE |