diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/base')
23 files changed, 861 insertions, 277 deletions
diff --git a/Master/texmf-dist/tex/latex/base/alltt.sty b/Master/texmf-dist/tex/latex/base/alltt.sty index 78c5e6a9241..2cbaf54abb0 100644 --- a/Master/texmf-dist/tex/latex/base/alltt.sty +++ b/Master/texmf-dist/tex/latex/base/alltt.sty @@ -49,7 +49,7 @@ %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{alltt} - [2024/02/08 v2.0g defines alltt environment] + [2024/07/07 v2.0g defines alltt environment] \begingroup \lccode`\~=`\' \lowercase{\endgroup diff --git a/Master/texmf-dist/tex/latex/base/article.cls b/Master/texmf-dist/tex/latex/base/article.cls index 869bdc0db41..0dcb9da0226 100644 --- a/Master/texmf-dist/tex/latex/base/article.cls +++ b/Master/texmf-dist/tex/latex/base/article.cls @@ -43,7 +43,7 @@ %% extension .ins) which are part of the distribution. \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesClass{article} - [2024/02/08 v1.4n + [2024/06/29 v1.4n Standard LaTeX document class] \newcommand\@ptsize{} \newif\if@restonecol diff --git a/Master/texmf-dist/tex/latex/base/bk10.clo b/Master/texmf-dist/tex/latex/base/bk10.clo index ba4701bead9..958c45b467e 100644 --- a/Master/texmf-dist/tex/latex/base/bk10.clo +++ b/Master/texmf-dist/tex/latex/base/bk10.clo @@ -42,7 +42,7 @@ %% and covered by LPPL is defined by the unpacking scripts (with %% extension .ins) which are part of the distribution. \ProvidesFile{bk10.clo} - [2024/02/08 v1.4n + [2024/06/29 v1.4n Standard LaTeX file (size option)] \renewcommand\normalsize{% \@setfontsize\normalsize\@xpt\@xiipt diff --git a/Master/texmf-dist/tex/latex/base/bk11.clo b/Master/texmf-dist/tex/latex/base/bk11.clo index c0a4a4420f1..cbcbd0dae62 100644 --- a/Master/texmf-dist/tex/latex/base/bk11.clo +++ b/Master/texmf-dist/tex/latex/base/bk11.clo @@ -42,7 +42,7 @@ %% and covered by LPPL is defined by the unpacking scripts (with %% extension .ins) which are part of the distribution. \ProvidesFile{bk11.clo} - [2024/02/08 v1.4n + [2024/06/29 v1.4n Standard LaTeX file (size option)] \renewcommand\normalsize{% \@setfontsize\normalsize\@xipt{13.6}% diff --git a/Master/texmf-dist/tex/latex/base/bk12.clo b/Master/texmf-dist/tex/latex/base/bk12.clo index c4a5e3c2457..ccdb40f6d42 100644 --- a/Master/texmf-dist/tex/latex/base/bk12.clo +++ b/Master/texmf-dist/tex/latex/base/bk12.clo @@ -42,7 +42,7 @@ %% and covered by LPPL is defined by the unpacking scripts (with %% extension .ins) which are part of the distribution. \ProvidesFile{bk12.clo} - [2024/02/08 v1.4n + [2024/06/29 v1.4n Standard LaTeX file (size option)] \renewcommand\normalsize{% \@setfontsize\normalsize\@xiipt{14.5}% diff --git a/Master/texmf-dist/tex/latex/base/book.cls b/Master/texmf-dist/tex/latex/base/book.cls index 2838b7f1ce3..e73e83ea3c0 100644 --- a/Master/texmf-dist/tex/latex/base/book.cls +++ b/Master/texmf-dist/tex/latex/base/book.cls @@ -43,7 +43,7 @@ %% extension .ins) which are part of the distribution. \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesClass{book} - [2024/02/08 v1.4n + [2024/06/29 v1.4n Standard LaTeX document class] \newcommand\@ptsize{} \newif\if@restonecol diff --git a/Master/texmf-dist/tex/latex/base/checkencodingsubset.tex b/Master/texmf-dist/tex/latex/base/checkencodingsubset.tex index 02410ad693a..54663361c3d 100644 --- a/Master/texmf-dist/tex/latex/base/checkencodingsubset.tex +++ b/Master/texmf-dist/tex/latex/base/checkencodingsubset.tex @@ -42,8 +42,8 @@ %% and covered by LPPL is defined by the unpacking scripts (with %% extension .ins) which are part of the distribution. %%% From File: lttextcomp.dtx -\Providesfile{checkencodingsubset.tex} - [2024/01/27 v0.5a Figure out safe TS1 encoding subsets] +\ProvidesFile{checkencodingsubset.tex} + [2024/10/18 v0.5b Figure out safe TS1 encoding subsets] \let\typeoutdetails\typeout \def\doesglyphexist#1#2{\iffontchar\testFont #1 0\else 1\relax \fi} \def\glyphmissingdetails#1#2{\iffontchar\testFont #1 \else diff --git a/Master/texmf-dist/tex/latex/base/doc.sty b/Master/texmf-dist/tex/latex/base/doc.sty index ea693f4ff1d..31930d29767 100644 --- a/Master/texmf-dist/tex/latex/base/doc.sty +++ b/Master/texmf-dist/tex/latex/base/doc.sty @@ -52,7 +52,7 @@ \DeclareCurrentRelease{v3}{2022-06-01} \ProvidesPackage{doc} - [2024/04/26 v3.0p + [2024/10/23 v3.0q Standard LaTeX documentation package V3 (FMi)] %% %% Package `doc' to use with LaTeX 2e @@ -908,15 +908,6 @@ \expandafter\let\expandafter\doc@eoph@@k\csname doc.sty-h@@k\endcsname \RequirePackage{hypdoc} \expandafter\let\csname doc.sty-h@@k\endcsname\doc@eoph@@k - \let\PrintDescribeMacro \@@PrintDescribeMacro - \let\PrintDescribeEnv \@@PrintDescribeEnv - \let\PrintMacroName \@@PrintMacroName - \let\PrintEnvName \@@PrintEnvName - \let\SpecialUsageIndex \@@SpecialUsageIndex - \let\SpecialEnvIndex \@@SpecialEnvIndex - \let\SortIndex \@@SortIndex - \let\DescribeMacro \@@DescribeMacro - \let\DescribeEnv \@@DescribeEnv \ifx\special@index\@gobble % do we write index entries at all? \else \ifcodeline@index @@ -1242,6 +1233,7 @@ idxgroup = environments , printtype = \textit{env.} ]{Env}{environment} +\AddToHook{package/hypdoc/before}{% \let\@@PrintDescribeMacro \PrintDescribeMacro \let\@@PrintDescribeEnv \PrintDescribeEnv \let\@@PrintMacroName \PrintMacroName @@ -1251,6 +1243,18 @@ \let\@@SortIndex \SortIndex \let\@@DescribeMacro \DescribeMacro \let\@@DescribeEnv \DescribeEnv +} +\AddToHook{package/hypdoc/after}{% + \let\PrintDescribeMacro \@@PrintDescribeMacro + \let\PrintDescribeEnv \@@PrintDescribeEnv + \let\PrintMacroName \@@PrintMacroName + \let\PrintEnvName \@@PrintEnvName + \let\SpecialUsageIndex \@@SpecialUsageIndex + \let\SpecialEnvIndex \@@SpecialEnvIndex + \let\SortIndex \@@SortIndex + \let\DescribeMacro \@@DescribeMacro + \let\DescribeEnv \@@DescribeEnv +} \DeclareRobustCommand\cs[1]{\texttt{\bslash #1}} \AddToHook{class/amsdtx/after}{% diff --git a/Master/texmf-dist/tex/latex/base/fontmath.cfg b/Master/texmf-dist/tex/latex/base/fontmath.cfg index eca079d15b3..a50cabda404 100644 --- a/Master/texmf-dist/tex/latex/base/fontmath.cfg +++ b/Master/texmf-dist/tex/latex/base/fontmath.cfg @@ -37,7 +37,7 @@ %% %%% From File: fontdef.dtx \ProvidesFile{fontmath.cfg} - [2024/02/09 v3.0i LaTeX Kernel + [2024/09/03 v3.0k LaTeX Kernel (Uncustomized math font setup) ] %% diff --git a/Master/texmf-dist/tex/latex/base/fontmath.ltx b/Master/texmf-dist/tex/latex/base/fontmath.ltx index a7dd9cc44ad..29f871ac4d5 100644 --- a/Master/texmf-dist/tex/latex/base/fontmath.ltx +++ b/Master/texmf-dist/tex/latex/base/fontmath.ltx @@ -37,7 +37,7 @@ %% %%% From File: fontdef.dtx \ProvidesFile{fontmath.ltx} - [2024/02/09 v3.0i LaTeX Kernel + [2024/09/03 v3.0k LaTeX Kernel (Math font setup) ] \typeout{=== Don't modify this file, use a .cfg file instead ===^^J} diff --git a/Master/texmf-dist/tex/latex/base/fonttext.cfg b/Master/texmf-dist/tex/latex/base/fonttext.cfg index b37c4407d63..dbb0e2e99c5 100644 --- a/Master/texmf-dist/tex/latex/base/fonttext.cfg +++ b/Master/texmf-dist/tex/latex/base/fonttext.cfg @@ -37,7 +37,7 @@ %% %%% From File: fontdef.dtx \ProvidesFile{fonttext.cfg} - [2024/02/09 v3.0i LaTeX Kernel + [2024/09/03 v3.0k LaTeX Kernel (Uncustomized text font setup) ] %% diff --git a/Master/texmf-dist/tex/latex/base/fonttext.ltx b/Master/texmf-dist/tex/latex/base/fonttext.ltx index ec6ce8ed910..bd2ebea0874 100644 --- a/Master/texmf-dist/tex/latex/base/fonttext.ltx +++ b/Master/texmf-dist/tex/latex/base/fonttext.ltx @@ -37,7 +37,7 @@ %% %%% From File: fontdef.dtx \ProvidesFile{fonttext.ltx} - [2024/02/09 v3.0i LaTeX Kernel + [2024/09/03 v3.0k LaTeX Kernel (Text font setup) ] \typeout{=== Don't modify this file, use a .cfg file instead ===^^J} @@ -77,9 +77,17 @@ \endgroup \begingroup \nfss@catcodes +\input {t1cmss.fd} +\input {t1cmtt.fd} \input {ot1cmss.fd} \input {ot1cmtt.fd} \endgroup +\ifx\Umathcode\@undefined\else +\begingroup +\nfss@catcodes +\input {ts1cmr.fd} +\endgroup +\fi \DeclareErrorFont{OT1}{cmr}{m}{n}{10} \ifx\Umathcode\@undefined \newcommand\encodingdefault{OT1} diff --git a/Master/texmf-dist/tex/latex/base/latex.ltx b/Master/texmf-dist/tex/latex/base/latex.ltx index 62e8e24515e..614ae7a33dd 100644 --- a/Master/texmf-dist/tex/latex/base/latex.ltx +++ b/Master/texmf-dist/tex/latex/base/latex.ltx @@ -709,8 +709,8 @@ %%% From File: ltvers.dtx \def\fmtname{LaTeX2e} \edef\fmtversion - {2024-06-01} -\def\patch@level{2} + {2024-11-01} +\def\patch@level{0} \edef\development@branch@name{} \iffalse \def\reserved@a#1/#2/#3\@nil{% @@ -1811,8 +1811,8 @@ \xdef#1{\the\toks@}% \endgroup} %%% From File: ltcmd.dtx -\def\ltcmdversion{v1.2e} -\def\ltcmddate{2024-04-17} +\def\ltcmdversion{v1.2f} +\def\ltcmddate{2024-07-06} \message{document commands,} \ExplSyntaxOn \tl_new:N \l__cmd_arg_spec_tl @@ -2030,23 +2030,15 @@ } \cs_new_protected:Npn \__cmd_declare_env:nnnn #1#2 { - \str_set:Nx \l__cmd_environment_str {#1} - \str_set:Nx \l__cmd_environment_str - { \tl_trim_spaces:o { \l__cmd_environment_str } } - \cs_if_exist:cTF { \l__cmd_environment_str } - { - \msg_info:nnxx { cmd } { redefine-env } - { \l__cmd_environment_str } { \tl_to_str:n {#2} } - } - { - \msg_info:nnxx { cmd } { define-env } - { \l__cmd_environment_str } { \tl_to_str:n {#2} } - } + \str_set:Nn \l__cmd_environment_str {#1} + \cs_if_exist:cTF { #1 } + { \msg_info:nnnn { cmd } { redefine-env } { #1 } { #2 } } + { \msg_info:nnnn { cmd } { define-env } { #1 } { #2 } } \bool_set_false:N \l__cmd_expandable_bool \bool_set_true:N \l__cmd_environment_bool - \exp_args:NV \__cmd_declare_env_internal:nnnn - \l__cmd_environment_str {#2} + \__cmd_declare_env_internal:nnnn {#1} {#2} } +\cs_generate_variant:Nn \__cmd_declare_env:nnnn { e } \cs_new_protected:Npn \__cmd_declare_env_internal:nnnn #1#2#3#4 { \exp_args:Nc \__cmd_declare_cmd_internal:Nnnn { environment~ #1 } {#2} @@ -4556,24 +4548,54 @@ } \cs_new_protected:Npn \NewDocumentEnvironment #1#2#3#4 { + \__cmd_new_env:ennn { \tl_trim_spaces:e {#1} } {#2} {#3} {#4} + } +\cs_new_protected:Npn \RenewDocumentEnvironment #1#2#3#4 + { + \__cmd_renew_env:ennn { \tl_trim_spaces:e {#1} } {#2} {#3} {#4} + } +\cs_new_protected:Npn \ProvideDocumentEnvironment #1#2#3#4 + { + \__cmd_provide_env:ennn { \tl_trim_spaces:e {#1} } {#2} {#3} {#4} + } +\cs_new_protected:Npn \DeclareDocumentEnvironment #1#2#3#4 + { + \__cmd_declare_env:ennn { \tl_trim_spaces:e {#1} } {#2} {#3} {#4} + } +\cs_new_protected:Npn \__cmd_new_env:nnnn #1 + { \cs_if_exist:cTF {#1} - { \msg_error:nnx { cmd } { env-already-defined } {#1} } + { + \msg_error:nnx { cmd } { env-already-defined } {#1} + \use_none:nnn + } { \cs_if_exist:cTF { end #1 } - { \msg_error:nnx { cmd } { env-end-already-defined } {#1} } - { \__cmd_declare_env:nnnn {#1} {#2} {#3} {#4} } + { + \msg_error:nnx { cmd } { env-end-already-defined } {#1} + \use_none:nnn + } + { \__cmd_declare_env:nnnn {#1} } } } -\cs_new_protected:Npn \RenewDocumentEnvironment #1#2#3#4 +\cs_new_protected:Npn \__cmd_renew_env:nnnn #1 { \cs_if_exist:cTF {#1} - { \__cmd_declare_env:nnnn {#1} {#2} {#3} {#4} } - { \msg_error:nnx { cmd } { env-undefined } {#1} } + { \__cmd_declare_env:nnnn {#1} } + { + \msg_error:nnx { cmd } { env-undefined } {#1} + \use_none:nnn + } } -\cs_new_protected:Npn \ProvideDocumentEnvironment #1#2#3#4 - { \cs_if_exist:cF {#1} { \__cmd_declare_env:nnnn {#1} {#2} {#3} {#4} } } -\cs_new_protected:Npn \DeclareDocumentEnvironment #1#2#3#4 - { \__cmd_declare_env:nnnn {#1} {#2} {#3} {#4} } +\cs_new_protected:Npn \__cmd_provide_env:nnnn #1 + { + \cs_if_exist:cTF {#1} + { \use_none:nnn } + { \__cmd_declare_env:nnnn {#1} } + } +\cs_generate_variant:Nn \__cmd_new_env:nnnn { e } +\cs_generate_variant:Nn \__cmd_renew_env:nnnn { e } +\cs_generate_variant:Nn \__cmd_provide_env:nnnn { e } \cs_new_protected:Npn \NewExpandableDocumentCommand #1#2#3 { \__cmd_check_definable:nNT {#1} \NewExpandableDocumentCommand @@ -4842,17 +4864,19 @@ } } } -\cs_new:Npn \__hook_parse_label_default:n #1 +\cs_new:Npn \__hook_parse_label_default:nN #1#2 { \tl_if_novalue:nTF {#1} { \__hook_currname_or_default: } - { \tl_trim_spaces_apply:nN {#1} \__hook_parse_dot_label:n } + { \tl_trim_spaces_apply:nN {#1} \__hook_parse_dot_label:nN #2 } } -\cs_new:Npn \__hook_parse_dot_label:n #1 +\cs_new:Npn \__hook_parse_dot_label:nN #1#2 { \tl_if_empty:nTF {#1} { - \msg_expandable_error:nn { hooks } { empty-label } + \bool_if:NTF #2 + { \msg_expandable_error:nn { hooks } { empty-label } } + { \msg_expandable_error:nn { hooks } { empty-hook } } \__hook_currname_or_default: } { @@ -4907,24 +4931,24 @@ \cs_new_protected:Npn \__hook_normalize_hook_args:Nn #1 #2 { \__hook_normalize_hook_args_aux:Nn #1 - { { \__hook_parse_label_default:n {#2} } } + { { \__hook_parse_label_default:nN {#2} \c_false_bool } } } \cs_new_protected:Npn \__hook_normalize_hook_args:Nnn #1 #2 #3 { \__hook_normalize_hook_args_aux:Nn #1 { - { \__hook_parse_label_default:n {#2} } - { \__hook_parse_label_default:n {#3} } + { \__hook_parse_label_default:nN {#2} \c_false_bool } + { \__hook_parse_label_default:nN {#3} \c_true_bool } } } \cs_new_protected:Npn \__hook_normalize_hook_rule_args:Nnnnn #1 #2 #3 #4 #5 { \__hook_normalize_hook_args_aux:Nn #1 { - { \__hook_parse_label_default:n {#2} } - { \__hook_parse_label_default:n {#3} } + { \__hook_parse_label_default:nN {#2} \c_false_bool } + { \__hook_parse_label_default:nN {#3} \c_true_bool } { \tl_trim_spaces:n {#4} } - { \__hook_parse_label_default:n {#5} } + { \__hook_parse_label_default:nN {#5} \c_true_bool } } } \tl_gset:Nn \g__hook_hook_curr_name_tl { top-level } @@ -5789,7 +5813,9 @@ { #2 { The~hook~is~empty } } { \__hook_log_line:x { Code~chunks: } - \prop_if_empty:cTF { g__hook_#1_code_prop } + \bool_lazy_or:nnTF + { ! \prop_if_exist_p:c { g__hook_#1_code_prop } } + { \prop_if_empty_p:c { g__hook_#1_code_prop } } { \__hook_log_line_indent:x { --- } } { \prop_map_inline:cn { g__hook_#1_code_prop } @@ -5884,16 +5910,19 @@ } \cs_new_protected:Npn \__hook_list_rules:nn #1 #2 { - \cs_set_protected:Npn \__hook_tmp:w ##1 ##2 ##3 {#2} - \prop_map_inline:cn { g__hook_#1_code_prop } + \prop_if_exist:cT { g__hook_#1_code_prop } { + \cs_set_protected:Npn \__hook_tmp:w ##1 ##2 ##3 {#2} \prop_map_inline:cn { g__hook_#1_code_prop } { - \__hook_if_label_case:nnnnn {##1} {####1} - { \prop_map_break: } - { \__hook_list_one_rule:nnn {##1} {####1} } - { \__hook_list_one_rule:nnn {####1} {##1} } - {#1} + \prop_map_inline:cn { g__hook_#1_code_prop } + { + \__hook_if_label_case:nnnnn {##1} {####1} + { \prop_map_break: } + { \__hook_list_one_rule:nnn {##1} {####1} } + { \__hook_list_one_rule:nnn {####1} {##1} } + {#1} + } } } } @@ -6220,6 +6249,10 @@ Empty~code~label~\msg_line_context:.~ Using~'\__hook_currname_or_default:'~instead. } +\msg_new:nnn { hooks } { empty-hook } + { + Empty~hook~name~\msg_line_context:. + } \msg_new:nnn { hooks } { no-default-label } { Missing~(empty)~default~label~\msg_line_context:. \\ @@ -6358,6 +6391,8 @@ \NewDocumentCommand \ClearHookRule { m m m } { \hook_gset_rule:nnnn {#1}{#2}{unrelated}{#3} } \cs_new_eq:NN \IfHookEmptyTF \hook_if_empty:nTF +\cs_new_eq:NN \IfHookEmptyT \hook_if_empty:nT +\cs_new_eq:NN \IfHookEmptyF \hook_if_empty:nF \cs_new_eq:NN \IfHookExistsTF \__hook_if_usable:nTF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \cs_new_protected:Npn \hook_disable:n @@ -6957,7 +6992,7 @@ { \cs_generate_from_arg_count:cNnn { __socket_#1_plug_#2:w } - \cs_new_protected:Npn + \cs_new:Npn { \int_use:c { c__socket_#1_args_int } } {#3} \seq_put_right:cn { l__socket_#1_plugs_seq } {#2} @@ -6976,7 +7011,7 @@ { \cs_generate_from_arg_count:cNnn { __socket_#1_plug_#2:w } - \cs_set_protected:Npn + \cs_set:Npn { \int_use:c { c__socket_#1_args_int } } {#3} \__socket_debug_term:n @@ -7016,6 +7051,10 @@ \cs_new_eq:NN \socket_use:nn \socket_use:nw % socket with one input \cs_new_eq:NN \socket_use:nnn \socket_use:nw % socket with two inputs \cs_new_eq:NN \socket_use:nnnn \socket_use:nw % socket with three inputs +\cs_new:Npn \socket_use_expandable:nw #1 { + \use:c { __socket_#1_plug_ \str_use:c { l__socket_#1_plug_str } :w } +} +\cs_new_eq:NN \socket_use_expandable:n \socket_use_expandable:nw % socket with no inputs \msg_new:nnnn { socket } { already-declared } { Socket~ '#1'~ already~ declared! } @@ -7890,23 +7929,33 @@ } \cs_new_protected:Npn \__template_assign_variable: { - \__template_assign_variable:c + \exp_args:Ne \__template_assign_variable:n { - \__template_map_var_type: _ - \bool_if:NT \l__template_global_bool { g } set:Nn + \__template_map_var_type: + _ + \bool_if:NT \l__template_global_bool { g } + set:N } } -\cs_new_protected:Npn \__template_assign_variable:N #1 +\cs_new_protected:Npn \__template_assign_variable:n #1 { - \__template_if_key_value:VT \l__template_value_tl - { \__template_key_to_value: } - \tl_put_right:Ne \l__template_assignments_tl + \__template_if_key_value:VTF \l__template_value_tl { - #1 \exp_not:V \l__template_var_tl - { \exp_not:V \l__template_value_tl } + \__template_key_to_value: + \tl_put_right:Ne \l__template_assignments_tl + { + \exp_not:c { #1 V } \exp_not:V \l__template_var_tl + \exp_not:V \l__template_value_tl + } + } + { + \tl_put_right:Ne \l__template_assignments_tl + { + \exp_not:c { #1 n } \exp_not:V \l__template_var_tl + { \exp_not:V \l__template_value_tl } + } } } -\cs_generate_variant:Nn \__template_assign_variable:N { c } \cs_new_protected:Npn \__template_key_to_value: { \exp_after:wN \__template_key_to_value_auxi:w \l__template_value_tl } \cs_new_protected:Npn \__template_key_to_value_auxi:w \KeyValue #1 @@ -8524,6 +8573,8 @@ Type H <return> for immediate help.}% \@latex@error{% Bad \protect\line\space or \protect\vector \space argument}\@ehb} +\gdef\@LRmoderr{% + \@latex@error{Not allowed in LR mode}\@ehb} \gdef\@parmoderr{% \@latex@error{Not in outer par mode}\@ehb} \gdef\@fltovf{% @@ -8696,6 +8747,8 @@ Type H <return> for immediate help.}% \let \IfDocumentMetadataTF \@firstoftwo \DocumentMetadata } +\ExplSyntaxOn +\int_new:N\g__kernel_target_int \NewDocumentCommand\MakeLinkTarget{sO{}m}{% \ifvmode \special{}% @@ -8703,8 +8756,19 @@ Type H <return> for immediate help.}% \@savsf\spacefactor \smash{}% \spacefactor\@savsf - \fi} -\NewDocumentCommand\LinkTargetOn{}{} + \fi + \IfBooleanTF {#1} + { + \tl_gset:Ne \@currentHref {#3} + } + { + \int_gincr:N\g__kernel_target_int + \tl_gset:Ne \@currentHref {target*.\int_use:N\g__kernel_target_int} + } + \UseTaggingSocket{recordtarget} + } +\ExplSyntaxOff + \NewDocumentCommand\LinkTargetOn{}{} \NewDocumentCommand\LinkTargetOff{}{} \NewDocumentCommand\NextLinkTarget{m}{} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -8817,50 +8881,46 @@ Type H <return> for immediate help.}% \fi \fi \fi} -\def\addvspace#1{% - \ifvmode - \if@minipage\else - \ifdim \lastskip =\z@ - \@vspace@calcify{#1}% - \else - \setlength\@tempskipb{#1}% - \@xaddvskip - \fi - \fi +\protected\def\addvspace#1{% + \ifhmode \ifinner \@LRmoderr \else \par \fi \fi + \if@minipage\else + \ifdim \lastskip =\z@ + \@vspace@calcify{#1}% + \else + \setlength\@tempskipb{#1}% + \@xaddvskip + \fi + \fi +} +\protected\def\addpenalty#1{% + \ifhmode \ifinner \@LRmoderr \else \par \fi \fi + \if@minipage \else - \@noitemerr - \fi} -\def\addpenalty#1{% - \ifvmode - \if@minipage + \if@nobreak \else - \if@nobreak + \ifdim\lastskip=\z@ + \penalty#1\relax \else - \ifdim\lastskip=\z@ - \penalty#1\relax - \else - \@tempskipb\lastskip - \begingroup - \@tempskipa\@tempskipb - \advance \@tempskipb - \ifdim\prevdepth>\maxdepth\maxdepth\else - \ifdim \prevdepth = -\@m\p@ \z@ \else \prevdepth \fi - \fi - \vskip -\@tempskipb - \penalty#1% - \ifdim\@tempskipa=\@tempskipb - \else - \advance\@tempskipb -\@tempskipa - \vskip \@tempskipb + \@tempskipb\lastskip + \begingroup + \@tempskipa\@tempskipb + \advance \@tempskipb + \ifdim\prevdepth>\maxdepth\maxdepth\else + \ifdim \prevdepth = -\@m\p@ \z@ \else \prevdepth \fi \fi - \vskip \@tempskipa - \endgroup - \fi + \vskip -\@tempskipb + \penalty#1% + \ifdim\@tempskipa=\@tempskipb + \else + \advance\@tempskipb -\@tempskipa + \vskip \@tempskipb + \fi + \vskip \@tempskipa + \endgroup \fi \fi - \else - \@noitemerr - \fi}% + \fi +} \DeclareRobustCommand\vspace{\@ifstar\@vspacer\@vspace} \def\@vspace #1{% \ifvmode @@ -9625,6 +9685,8 @@ Type H <return> for immediate help.}% \global\expandafter\let\csname cl@#1\endcsname\@empty \@addtoreset{#1}{@ckpt}% \global\expandafter\let\csname p@#1\endcsname\@empty + \expandafter\xdef\csname theH#1\endcsname{% + \noexpand\the\noexpand\value{#1}}% \expandafter \ifx\csname the#1\endcsname\relax \expandafter @@ -9634,7 +9696,11 @@ Type H <return> for immediate help.}% \@latex@warning{Command `\string\the#1' already defined -- not changed}% \fi} -\def\@addtoreset#1#2{\expandafter\@cons\csname cl@#2\endcsname {{#1}}} +\def\@addtoreset#1#2{\expandafter\@cons\csname cl@#2\endcsname {{#1}}% + \expandafter\xdef\csname theH#1\endcsname{% + \expandafter\noexpand\csname theH#2\endcsname.% + \noexpand\the\noexpand\value{#1}}% +} \def\@removefromreset#1#2{% \@ifundefined{c@#2}\relax {\begingroup @@ -9728,7 +9794,8 @@ Type H <return> for immediate help.}% \def\newlength#1{\@ifdefinable#1{\newskip#1}} \def\setlength#1#2{#1 #2\relax} \def\addtolength#1#2{\advance#1 #2\relax} -\def\@settodim#1#2#3{\setbox\@tempboxa\hbox{{#3}}#2#1\@tempboxa +\def\@settodim#1#2#3{\setbox\@tempboxa\hbox + {{\SuspendTagging{\@settodim}#3\ResumeTagging{\@settodim}}}#2#1\@tempboxa \setbox\@tempboxa\box\voidb@x} \DeclareRobustCommand\settoheight{\@settodim\ht} \DeclareRobustCommand\settodepth {\@settodim\dp} @@ -10201,6 +10268,7 @@ Type H <return> for immediate help.}% \hbadness\@M \hfuzz\maxdimen \tracingonline\z@ + \tracinglostchars\z@ \everypar={}% \leftskip\z@skip \rightskip\z@skip @@ -13273,11 +13341,27 @@ Type H <return> for immediate help.}% \endgroup \@esphack} \def\@currentcounter{} -\def\refstepcounter#1{\stepcounter{#1}% +\NewSocket{refstepcounter}{1} +\NewSocket{refstepcounter/target}{1} +\NewSocketPlug{refstepcounter/target}{kernel} + {\xdef\@currentHref {#1.\csname theH#1\endcsname}}% +\AssignSocketPlug{refstepcounter/target}{kernel} +\def\refstepcounter#1{% + \UseSocket{refstepcounter}{% + \stepcounter{#1}% \edef\@currentcounter{#1}% \protected@edef\@currentlabel {\csname p@#1\expandafter\endcsname\csname the#1\endcsname}% + \UseSocket{refstepcounter/target}{#1}% + \UseTaggingSocket{recordtarget}% + }% } +\def\@kernel@refstepcounter#1{% + \UseSocket{refstepcounter}{% + \stepcounter{#1}% + \edef\@currentcounter{#1}% + \protected@edef\@currentlabel + {\csname p@#1\expandafter\endcsname\csname the#1\endcsname}}}% \def\labelformat#1{\expandafter\def\csname p@#1\endcsname##1} \def\@kernel@Ref#1{\protected@edef\@tempa{\@kernel@ref{#1}}% \expandafter\MakeUppercase\@tempa} @@ -13337,14 +13421,11 @@ Type H <return> for immediate help.}% \cs_generate_variant:Nn \property_record:nn { nV , ee, oo } \cs_new_protected:Npn \__property_record:nn #1#2 { - \legacy_if:nT { @filesw } + \protected@write \@auxout {} { - \protected@write \@auxout {} - { - \token_to_str:N \new@label@record - {#1} - { \clist_map_function:nN {#2} \__property_record_value:n } - } + \token_to_str:N \new@label@record + {#1} + { \clist_map_function:nN {#2} \__property_record_value:n } } } \cs_generate_variant:Nn \__property_record:nn { e } @@ -13467,8 +13548,8 @@ Type H <return> for immediate help.}% } \prg_generate_conditional_variant:Nnn \property_if_recorded:n {e} {TF} \cs_new_eq:NN \IfLabelExistsTF \property_if_recorded:eTF -\cs_new:Npn \IfLabelExistsT #1#2 {\property_if_exist:eTF {#1}{#2}{} } -\cs_new:Npn \IfLabelExistsF #1 {\property_if_exist:eTF {#1}{} } +\cs_new:Npn \IfLabelExistsT #1#2 {\property_if_recorded:eTF {#1}{#2}{} } +\cs_new:Npn \IfLabelExistsF #1 {\property_if_recorded:eTF {#1}{} } \prg_new_conditional:Npnn \property_if_recorded:nn #1#2 { p , T , F, TF } % #1 label #2 property { @@ -13482,6 +13563,8 @@ Type H <return> for immediate help.}% } \prg_generate_conditional_variant:Nnn \property_if_recorded:nn {ee} {TF} \cs_new_eq:NN \IfPropertyRecordedTF \property_if_recorded:eeTF +\cs_new:Npn \IfPropertyRecordedT #1#2#3 { \property_if_recorded:eeTF {#1}{#2}{#3}{} } +\cs_new:Npn \IfPropertyRecordedF #1#2#3 { \property_if_recorded:eeTF {#1}{#2}{}{#3} } \cs_new_protected:Npn \property_ref_undefined_warn: { \flag_if_raised:nT { l__property_ref_flag } @@ -13644,7 +13727,7 @@ Type H <return> for immediate help.}% \def\stop{\clearpage\deadcycles\z@\let\par\@@par\@@end} \everypar{\@nodocument} %% To get an error if text appears before the \nullfont %% \begin{document} -\DeclareRobustCommand*\begin[1]{% +\protected\def\begin#1{% \UseHook{env/#1/before}% \@ifundefined{#1}% {\def\reserved@a{\@latex@error{Environment #1 undefined}\@eha}}% @@ -13662,6 +13745,7 @@ Type H <return> for immediate help.}% \fi \UseHook{env/#1/begin}% } + \edef\end {\unexpanded{% \romannumeral @@ -13680,13 +13764,14 @@ Type H <return> for immediate help.}% }% \expandafter\noexpand\csname end \endcsname } + \@namedef{end }#1{% \romannumeral \IfHookEmptyTF{env/#1/end}% {\expandafter\z@}% {\z@\UseHook{env/#1/end}}% \csname end#1\endcsname\@checkend{#1}% - \expandafter\endgroup\if@endpe\@doendpe\fi + \endgroup \UseHook{env/#1/after}% \if@ignore\@ignorefalse\ignorespaces\fi } @@ -14233,11 +14318,20 @@ Type H <return> for immediate help.}% \def\@doendpe{\@endpetrue \def\par{\@restorepar \clubpenalty\@clubpenalty - \everypar{}\par\@endpefalse}\everypar - {{\setbox\z@\lastbox}% - \everypar{}\@endpefalse}} + \@endpefalse + \everypar{}\par}% + \everypar + {{\setbox\z@\lastbox}% + \everypar{}\@endpefalse}} \newif\if@endpe -\@endpefalse +\def\@endpefalse{\global\let\if@endpe\iffalse} +\def\@endpetrue {% + \global\let\if@endpe\iftrue + \ifnum\currentgrouplevel>\z@ + \aftergroup\propagate@doendpe + \fi +} +\def\propagate@doendpe{\if@endpe \@doendpe \fi} \def\@mklab#1{\hfil #1} \def\item{% \@inmatherr\item @@ -14405,12 +14499,14 @@ Type H <return> for immediate help.}% \kern\z@}} \let\set@color\relax \let\color@begingroup\begingroup -\def\color@endgroup{\endgraf\endgroup} \def\color@setgroup{\color@begingroup} % changed further in color package \let\normalcolor\relax % remains untouched; only changed in a color package \def\color@hbox{\hbox\bgroup\color@begingroup} \def\color@vbox{\vbox\bgroup\color@begingroup} \def\color@endbox{\color@endgroup\egroup} + +\def\color@endgroup{\endgraf\@endpefalse\endgroup} + \def\newsavebox#1{\@ifdefinable{#1}{\newbox#1}} \DeclareRobustCommand\savebox[1]{% \@ifnextchar(%) @@ -16072,7 +16168,6 @@ Type H <return> for immediate help.}% %% Copyright (C) 2022-2024 %% Frank Mittelbach, The LaTeX Project %%% From File: ltmarks.dtx -%% \end{function} \ExplSyntaxOn \seq_new:N \g__mark_classes_seq @@ -16425,6 +16520,12 @@ Type H <return> for immediate help.}% \NewExpandableDocumentCommand \IfMarksEqualTF {O{page}mmm} { \mark_if_eq:nnnnTF {#1}{#2}{#3}{#4} } +\NewExpandableDocumentCommand \IfMarksEqualT {O{page}mmm} { + \mark_if_eq:nnnnT {#1}{#2}{#3}{#4} +} +\NewExpandableDocumentCommand \IfMarksEqualF {O{page}mmm} { + \mark_if_eq:nnnnF {#1}{#2}{#3}{#4} +} \cs_new_protected:Npn \__mark_update_singlecol_structures: { \box_if_vertical:NTF \@outputbox { @@ -16780,7 +16881,9 @@ Type H <return> for immediate help.}% \@onlypreamble\DeclareOption \@onlypreamble\@declareoption \@onlypreamble\@defdefault@ds -\def\@remove@eq@value#1=#2\@nil{#1} +\ExplSyntaxOn +\def\@remove@eq@value#1=#2\@nil{\tl_trim_spaces:n{#1}} +\ExplSyntaxOff \def\OptionNotUsed{% \ifx\@currext\@clsextension \xdef\@unusedoptionlist{% @@ -17133,7 +17236,11 @@ Type H <return> for immediate help.}% \ifx\@currext\@clsextension document class% \else - package% + \ifx\@currext\@pkgextension + package% + \else + file% + \fi \fi} \@onlypreamble\@cls@pkg \def\@unknownoptionerror{% @@ -17337,6 +17444,13 @@ Type H <return> for immediate help.}% \pkgcls@debug{\@spaces 4: #4}% \def\pkgcls@name{#1}% % for info message \def\pkgcls@arg {#3}% % for info message + \edef\pkgcls@ext{% + \ifx#4\@clsextension document class\else + \ifx#4\@pkgextension package\else + file + \fi + \fi + }% % for info message \pkgcls@parse@date@arg{#3}% \let\pkgcls@candidate\@empty \begingroup @@ -17378,7 +17492,7 @@ Type H <return> for immediate help.}% \ifnum \@parse@version0#1//00\@nil > \pkgcls@targetdate \@latex@warning@no@line{Suspicious rollback/min-date date given\MessageBreak A minimal date of #1 has been specified for - \@cls@pkg\MessageBreak '\pkgcls@name'.\MessageBreak + \pkgcls@ext\MessageBreak '\pkgcls@name'.\MessageBreak But this is in conflict with a rollback request to \requestedpatchdate} \fi @@ -17434,6 +17548,7 @@ Type H <return> for immediate help.}% \def\pkgcls@use@this@release#1#2{% \pkgcls@show@selection{#1}{#2}% \pkgcls@targetdate\z@ + \@addtofilelist{#1}% \@@input #1\relax \endinput } @@ -17526,7 +17641,40 @@ Type H <return> for immediate help.}% { \q_recursion_tail } { } \q_recursion_stop \group_end: +\cs_new_protected:cpn { \c__keys_props_root_str .pass-to-packages } + { + \bool_if:NTF \l__keys_no_value_bool + { \__keys_scope:n { true } } + { \__keys_scope:n } + } +\cs_new_protected:Npn \__keys_scope:n #1 + { + \str_case:nnF {#1} + { + { true } + { \__keys_scope:N \clist_put_right:NV } + { false } + { \__keys_scope:N \clist_remove_all:NV } + } + { + \msg_error:nnnn { keys } + { choice-unknown } + { .pass-to-packages } + {#1} + } + } +\cs_new_protected:Npn \__keys_scope:N #1 + { + \exp_after:wN \__keys_find_key_module:wNN + \l_keys_path_str \s__keys_stop + \l_keys_key_tl \l_keys_key_str + #1 \l__keys_forced_global_clist \l_keys_key_str + } +\cs_generate_variant:Nn \clist_if_in:NnT { Ne } +\cs_generate_variant:Nn \clist_if_in:NnTF { Ne } \cs_generate_variant:Nn \clist_put_right:Nn { Nv } +\clist_new:N \l__keys_class_only_clist +\clist_new:N \l__keys_forced_global_clist \clist_new:N \l__keys_options_clist \bool_new:N \l__keys_options_loading_bool \cs_new_protected:Npn \__keys_options:n #1 @@ -17579,18 +17727,11 @@ Type H <return> for immediate help.}% { \cs_if_free:cF { @raw@opt@ \@currname . \@currext } { - \keys_if_exist:nnTF {#1} { unknown } - { - \clist_put_right:Nv \l__keys_options_clist - { @raw@opt@ \@currname . \@currext } - } + \clist_map_inline:cn { @raw@opt@ \@currname . \@currext } { - \clist_map_inline:cn { @raw@opt@ \@currname . \@currext } - { - \exp_args:Ne \__keys_options_class:nnn - { \tl_trim_spaces:e { \__keys_remove_equals:n {##1} } } - {##1} {#1} - } + \exp_args:Ne \__keys_options_class:nnn + { \tl_trim_spaces:e { \__keys_remove_equals:n {##1} } } + {##1} {#1} } } } @@ -17598,14 +17739,23 @@ Type H <return> for immediate help.}% { \keys_if_exist:nnTF {#3} {#1} { - \clist_put_right:Nn \l__keys_options_clist {#2} - \clist_remove_all:Nn \@unusedoptionlist {#1} + \__keys_options_class:nn {#1} {#2} + \clist_put_right:Ne \l__keys_class_only_clist { \tl_to_str:n {#1} } } { - \clist_if_in:NnF \@unusedoptionlist {#1} - { \clist_put_right:Nn \@unusedoptionlist {#1} } + \keys_if_exist:nnTF {#3} { unknown } + { \__keys_options_class:nn {#1} {#2} } + { + \clist_if_in:NnF \@unusedoptionlist {#1} + { \clist_put_right:Nn \@unusedoptionlist {#1} } + } } } +\cs_new_protected:Npn \__keys_options_class:nn #1#2 + { + \clist_remove_all:Nn \@unusedoptionlist {#1} + \clist_put_right:Nn \l__keys_options_clist {#2} + } \cs_new_protected:Npn \__keys_options_package:n #1 { \clist_map_inline:Nn \@raw@classoptionslist @@ -17619,10 +17769,19 @@ Type H <return> for immediate help.}% { \keys_if_exist:nnT {#3} {#1} { - \clist_put_right:Nn \l__keys_options_clist {#2} - \clist_remove_all:Nn \@unusedoptionlist {#1} + \clist_if_in:NeTF \l__keys_class_only_clist { \tl_to_str:n {#1} } + { + \clist_if_in:NeT \l__keys_forced_global_clist { \tl_to_str:n {#1} } + { \__keys_options_package:nn {#1} {#2} } + } + { \__keys_options_package:nn {#1} {#2} } } } +\cs_new_protected:Npn \__keys_options_package:nn #1#2 + { + \clist_put_right:Nn \l__keys_options_clist {#2} + \clist_remove_all:Nn \@unusedoptionlist {#1} + } \cs_new_protected:Npn \__keys_options_local: { \cs_if_eq:NNF \@currext \@clsextension @@ -19527,17 +19686,11 @@ Type H <return> for immediate help.}% \let\dblfigrule=\relax %%% From File: lttagging.dtx \ExplSyntaxOn -\cs_new_eq:NN \SuspendTagging \use_none:n -\cs_new_eq:NN \ResumeTagging \use_none:n -\AddToHook{begindocument/before}{ - \cs_if_exist:NT \tag_stop:n - { - \cs_set:Npn \SuspendTagging #1 { - \tag_stop:n {#1} - } - \cs_set:Npn \ResumeTagging #1 { \tag_start:n {#1} } - } -} + +\cs_new_eq:NN \tag_suspend:n \use_none:n +\cs_new_eq:NN \tag_resume:n \use_none:n +\cs_new_protected:Npn \SuspendTagging #1 { \tag_suspend:n {#1} } +\cs_new_protected:Npn \ResumeTagging #1 { \tag_resume:n {#1} } \AddToHook{begindocument}[kernel]{ \cs_if_exist:NF \tag_if_active:T { @@ -19545,19 +19698,63 @@ Type H <return> for immediate help.}% { \prg_return_false: } } } +\cs_new:Npn \tag_socket_use_expandable:n #1 { } \cs_new_protected:Npn \tag_socket_use:n #1 { } \cs_new_protected:Npn \tag_socket_use:nn #1#2 { } +\cs_new_protected:Npn \tag_socket_use:nnn #1#2#3 { #3 } \cs_new_protected:Npn \UseTaggingSocket #1 { \int_case:nnF { \int_use:c { c__socket_tagsupport/#1_args_int } } { 0 \prg_do_nothing: 1 \use_none:n - 2 \use_none:nn + 2 \use_ii:nn + } + \ERRORusetaggingsocket % that should get a proper error message +} +\cs_new:Npn \UseExpandableTaggingSocket #1 { + \int_case:nnF + { \int_use:c { c__socket_tagsupport/#1_args_int } } + { + 0 \prg_do_nothing: + 1 \use_none:n + 2 \use_ii:nn } \ERRORusetaggingsocket % that should get a proper error message } +\int_new:N \l__tag_block_flattened_level_int +\NewSocket{tagsupport/para/restore}{0} +\NewSocketPlug{tagsupport/para/restore}{default} + { + \tl_set:Nn \l__tag_para_main_tag_tl {text-unit} + \tl_set_eq:NN \l__tag_para_tag_tl\l__tag_para_tag_default_tl + \bool_set_false:N\l__tag_para_flattened_bool + \int_zero:N \l__tag_block_flattened_level_int + \bool_set_true:N \l__tag_para_bool + } +\AssignSocketPlug{tagsupport/para/restore}{default} + + +\NewSocket{tagsupport/recordtarget}{0} +\NewSocketPlug{tagsupport/recordtarget}{kernel} + { + \tl_if_blank:VF \@currentHref + { + \prop_gput:Nee + \g__tag_struct_dest_num_prop + {\@currentHref} + {\tag_get:n{struct_num}} + } + } +\AssignSocketPlug{tagsupport/recordtarget}{kernel} \ExplSyntaxOff + +\NewSocket{tagsupport/toc/contentsline/before}{1} +\NewSocket{tagsupport/toc/contentsline/after}{1} +\NewSocket{tagsupport/toc/starttoc/before}{1} +\NewSocket{tagsupport/toc/starttoc/after}{1} +\NewSocket{tagsupport/toc/leaders/before}{0} +\NewSocket{tagsupport/toc/leaders/after}{0} \NewSocket{tagsupport/tbl/cell/begin}{0} \NewSocket{tagsupport/tbl/cell/end}{0} \NewSocket{tagsupport/tbl/row/begin}{0} @@ -19565,7 +19762,9 @@ Type H <return> for immediate help.}% \NewSocket{tagsupport/tbl/pcell/begin}{0} \NewSocket{tagsupport/tbl/pcell/end}{0} \NewSocket{tagsupport/tbl/init}{0} +\NewSocket{tagsupport/tbl/init/celldata}{0} \NewSocket{tagsupport/tbl/finalize}{0} +\NewSocket{tagsupport/tbl/restore/celldata}{0} \NewSocket{tagsupport/tbl/colspan}{1} @@ -19577,6 +19776,16 @@ Type H <return> for immediate help.}% \NewSocket{tagsupport/tbl/longtable/finalize}{0} \NewSocket{tagsupport/tbl/longtable/head}{0} \NewSocket{tagsupport/tbl/longtable/foot}{0} +\NewSocket{tagsupport/tbl/leaders/begin}{0} +\NewSocket{tagsupport/tbl/leaders/end}{0} +\NewSocket{tagsupport/float/hmode/begin}{0} +\NewSocket{tagsupport/float/hmode/end}{0} +\NewSocket{tagsupport/float/begin}{0} +\NewSocket{tagsupport/float/end}{0} +\NewSocket{tagsupport/caption/begin}{1} +\NewSocket{tagsupport/caption/end}{0} +\NewSocket{tagsupport/caption/label/begin}{0} +\NewSocket{tagsupport/caption/label/end}{0} \ExplSyntaxOn \int_new:N \g__tbl_col_int \int_new:N \g__tbl_row_int @@ -19650,6 +19859,7 @@ Type H <return> for immediate help.}% { max:~ \l__tbl_saved_table_cols_tl } ) } + \UseTaggingSocket{tbl/init/celldata} \int_gzero:N \g__tbl_row_int \int_gzero:N \g__tbl_col_int \tl_gset:Nn \g__tbl_span_tl {1} @@ -19685,6 +19895,7 @@ Type H <return> for immediate help.}% \int_gset:Nn \g__tbl_row_int { \l__tbl_saved_row_tl } \tl_gset_eq:NN \g__tbl_span_tl \l__tbl_saved_span_tl \tl_gset_eq:NN \g__tbl_table_cols_tl \l__tbl_saved_table_cols_tl + \UseTaggingSocket{tbl/restore/celldata} \__tbl_trace:n { ==>~ restored~cell~data:~ \int_use:N \g__tbl_row_int, \int_use:N \g__tbl_col_int, @@ -19715,7 +19926,6 @@ Type H <return> for immediate help.}% \crcr } \ExplSyntaxOff -\let\@kernel@refstepcounter\refstepcounter \def\hyper@nopatch@longtable{} %%% From File: ltfinal.dtx \tracingstats1 diff --git a/Master/texmf-dist/tex/latex/base/latexrelease.sty b/Master/texmf-dist/tex/latex/base/latexrelease.sty index 51bccae7522..13f0c665a0f 100644 --- a/Master/texmf-dist/tex/latex/base/latexrelease.sty +++ b/Master/texmf-dist/tex/latex/base/latexrelease.sty @@ -122,6 +122,13 @@ \pkgcls@debug{\@spaces 4: #4}% \def\pkgcls@name{#1}% % for info message \def\pkgcls@arg {#3}% % for info message + \edef\pkgcls@ext{% + \ifx#4\@clsextension document class\else + \ifx#4\@pkgextension package\else + file + \fi + \fi + }% % for info message \pkgcls@parse@date@arg{#3}% \let\pkgcls@candidate\@empty \begingroup @@ -163,7 +170,7 @@ \ifnum \@parse@version0#1//00\@nil > \pkgcls@targetdate \@latex@warning@no@line{Suspicious rollback/min-date date given\MessageBreak A minimal date of #1 has been specified for - \@cls@pkg\MessageBreak '\pkgcls@name'.\MessageBreak + \pkgcls@ext\MessageBreak '\pkgcls@name'.\MessageBreak But this is in conflict with a rollback request to \requestedpatchdate} \fi @@ -219,6 +226,7 @@ \def\pkgcls@use@this@release#1#2{% \pkgcls@show@selection{#1}{#2}% \pkgcls@targetdate\z@ + \@addtofilelist{#1}% \@@input #1\relax \endinput } @@ -293,7 +301,7 @@ } %%% From File: ltvers.dtx \edef\latexreleaseversion - {2024-06-01} + {2024-11-01} \newif\if@includeinrelease \@includeinreleasefalse \def\IncludeInRelease#1{% @@ -424,7 +432,7 @@ \@skipping@modulefalse \fi} \ProvidesPackage{latexrelease} - [2022/11/14 v1.0p LaTeX release emulation and tests + [2024/08/11 v1.0p LaTeX release emulation and tests (including releases up to \latexreleaseversion)] \NeedsTeXFormat{LaTeX2e}[1996/06/01] \@ifundefined{sourceLaTeXdate}{% @@ -1982,8 +1990,8 @@ of this package available from CTAN} \EndIncludeInRelease %%% From File: ltcmd.dtx -\def\ltcmdversion{v1.2e} -\def\ltcmddate{2024-04-17} +\def\ltcmdversion{v1.2f} +\def\ltcmddate{2024-07-06} \edef\@latexrelease@catcode@null{\the\catcode`\^^@ } \catcode`\^^@=12 \ExplSyntaxOn @@ -2202,6 +2210,22 @@ of this package available from CTAN} { \cs_set_nopar:cpx } { \l__cmd_function_tl \c_space_tl } ##1##2 { ##1 {##2} } } +\IncludeInRelease{2024/11/01}{\__cmd_declare_env:nnnn}% + {Use~space-trimmed~envname~directly} +\cs_new_protected:Npn \__cmd_declare_env:nnnn #1#2 + { + \str_set:Nn \l__cmd_environment_str {#1} + \cs_if_exist:cTF { #1 } + { \msg_info:nnnn { cmd } { redefine-env } { #1 } { #2 } } + { \msg_info:nnnn { cmd } { define-env } { #1 } { #2 } } + \bool_set_false:N \l__cmd_expandable_bool + \bool_set_true:N \l__cmd_environment_bool + \__cmd_declare_env_internal:nnnn {#1} {#2} + } +\cs_generate_variant:Nn \__cmd_declare_env:nnnn { e } +\EndIncludeInRelease +\IncludeInRelease{2024/06/01}{\__cmd_declare_env:nnnn}% + {Use~space-trimmed~envname~directly} \cs_new_protected:Npn \__cmd_declare_env:nnnn #1#2 { \str_set:Nx \l__cmd_environment_str {#1} @@ -2221,6 +2245,8 @@ of this package available from CTAN} \exp_args:NV \__cmd_declare_env_internal:nnnn \l__cmd_environment_str {#2} } + +\EndIncludeInRelease \cs_new_protected:Npn \__cmd_declare_env_internal:nnnn #1#2#3#4 { \exp_args:Nc \__cmd_declare_cmd_internal:Nnnn { environment~ #1 } {#2} @@ -4799,6 +4825,61 @@ of this package available from CTAN} \__cmd_check_definable:nNT {#1} \DeclareDocumentCommand { \__cmd_declare_cmd:Nnn #1 {#2} {#3} } } +\IncludeInRelease{2024/11/01}{\NewDocumentEnvironment}% + {Trim~spaces~from~envname~first} +\cs_new_protected:Npn \NewDocumentEnvironment #1#2#3#4 + { + \__cmd_new_env:ennn { \tl_trim_spaces:e {#1} } {#2} {#3} {#4} + } +\cs_new_protected:Npn \RenewDocumentEnvironment #1#2#3#4 + { + \__cmd_renew_env:ennn { \tl_trim_spaces:e {#1} } {#2} {#3} {#4} + } +\cs_new_protected:Npn \ProvideDocumentEnvironment #1#2#3#4 + { + \__cmd_provide_env:ennn { \tl_trim_spaces:e {#1} } {#2} {#3} {#4} + } +\cs_new_protected:Npn \DeclareDocumentEnvironment #1#2#3#4 + { + \__cmd_declare_env:ennn { \tl_trim_spaces:e {#1} } {#2} {#3} {#4} + } +\cs_new_protected:Npn \__cmd_new_env:nnnn #1 + { + \cs_if_exist:cTF {#1} + { + \msg_error:nnx { cmd } { env-already-defined } {#1} + \use_none:nnn + } + { + \cs_if_exist:cTF { end #1 } + { + \msg_error:nnx { cmd } { env-end-already-defined } {#1} + \use_none:nnn + } + { \__cmd_declare_env:nnnn {#1} } + } + } +\cs_new_protected:Npn \__cmd_renew_env:nnnn #1 + { + \cs_if_exist:cTF {#1} + { \__cmd_declare_env:nnnn {#1} } + { + \msg_error:nnx { cmd } { env-undefined } {#1} + \use_none:nnn + } + } +\cs_new_protected:Npn \__cmd_provide_env:nnnn #1 + { + \cs_if_exist:cTF {#1} + { \use_none:nnn } + { \__cmd_declare_env:nnnn {#1} } + } +\cs_generate_variant:Nn \__cmd_new_env:nnnn { e } +\cs_generate_variant:Nn \__cmd_renew_env:nnnn { e } +\cs_generate_variant:Nn \__cmd_provide_env:nnnn { e } +\EndIncludeInRelease +\IncludeInRelease{2024/06/01}{\NewDocumentEnvironment}% + {Trim~spaces~from~envname~first} \cs_new_protected:Npn \NewDocumentEnvironment #1#2#3#4 { \cs_if_exist:cTF {#1} @@ -4819,6 +4900,14 @@ of this package available from CTAN} { \cs_if_exist:cF {#1} { \__cmd_declare_env:nnnn {#1} {#2} {#3} {#4} } } \cs_new_protected:Npn \DeclareDocumentEnvironment #1#2#3#4 { \__cmd_declare_env:nnnn {#1} {#2} {#3} {#4} } +\cs_undefine:N \__cmd_new_env:nnnn +\cs_undefine:N \__cmd_new_env:ennn +\cs_undefine:N \__cmd_renew_env:nnnn +\cs_undefine:N \__cmd_renew_env:ennn +\cs_undefine:N \__cmd_provide_env:nnnn +\cs_undefine:N \__cmd_provide_env:ennn + +\EndIncludeInRelease \cs_new_protected:Npn \NewExpandableDocumentCommand #1#2#3 { \__cmd_check_definable:nNT {#1} \NewExpandableDocumentCommand @@ -5242,17 +5331,19 @@ of this package available from CTAN} {Providing~hooks} \cs_gset_protected:Npn \hook_activate_generic:n #1 { } \EndIncludeInRelease -\cs_new:Npn \__hook_parse_label_default:n #1 +\cs_new:Npn \__hook_parse_label_default:nN #1#2 { \tl_if_novalue:nTF {#1} { \__hook_currname_or_default: } - { \tl_trim_spaces_apply:nN {#1} \__hook_parse_dot_label:n } + { \tl_trim_spaces_apply:nN {#1} \__hook_parse_dot_label:nN #2 } } -\cs_new:Npn \__hook_parse_dot_label:n #1 +\cs_new:Npn \__hook_parse_dot_label:nN #1#2 { \tl_if_empty:nTF {#1} { - \msg_expandable_error:nn { hooks } { empty-label } + \bool_if:NTF #2 + { \msg_expandable_error:nn { hooks } { empty-label } } + { \msg_expandable_error:nn { hooks } { empty-hook } } \__hook_currname_or_default: } { @@ -5307,24 +5398,24 @@ of this package available from CTAN} \cs_new_protected:Npn \__hook_normalize_hook_args:Nn #1 #2 { \__hook_normalize_hook_args_aux:Nn #1 - { { \__hook_parse_label_default:n {#2} } } + { { \__hook_parse_label_default:nN {#2} \c_false_bool } } } \cs_new_protected:Npn \__hook_normalize_hook_args:Nnn #1 #2 #3 { \__hook_normalize_hook_args_aux:Nn #1 { - { \__hook_parse_label_default:n {#2} } - { \__hook_parse_label_default:n {#3} } + { \__hook_parse_label_default:nN {#2} \c_false_bool } + { \__hook_parse_label_default:nN {#3} \c_true_bool } } } \cs_new_protected:Npn \__hook_normalize_hook_rule_args:Nnnnn #1 #2 #3 #4 #5 { \__hook_normalize_hook_args_aux:Nn #1 { - { \__hook_parse_label_default:n {#2} } - { \__hook_parse_label_default:n {#3} } + { \__hook_parse_label_default:nN {#2} \c_false_bool } + { \__hook_parse_label_default:nN {#3} \c_true_bool } { \tl_trim_spaces:n {#4} } - { \__hook_parse_label_default:n {#5} } + { \__hook_parse_label_default:nN {#5} \c_true_bool } } } \tl_gset:Nn \g__hook_hook_curr_name_tl { top-level } @@ -6774,7 +6865,9 @@ of this package available from CTAN} { #2 { The~hook~is~empty } } { \__hook_log_line:x { Code~chunks: } - \prop_if_empty:cTF { g__hook_#1_code_prop } + \bool_lazy_or:nnTF + { ! \prop_if_exist_p:c { g__hook_#1_code_prop } } + { \prop_if_empty_p:c { g__hook_#1_code_prop } } { \__hook_log_line_indent:x { --- } } { \prop_map_inline:cn { g__hook_#1_code_prop } @@ -6981,16 +7074,19 @@ of this package available from CTAN} } \cs_new_protected:Npn \__hook_list_rules:nn #1 #2 { - \cs_set_protected:Npn \__hook_tmp:w ##1 ##2 ##3 {#2} - \prop_map_inline:cn { g__hook_#1_code_prop } + \prop_if_exist:cT { g__hook_#1_code_prop } { + \cs_set_protected:Npn \__hook_tmp:w ##1 ##2 ##3 {#2} \prop_map_inline:cn { g__hook_#1_code_prop } { - \__hook_if_label_case:nnnnn {##1} {####1} - { \prop_map_break: } - { \__hook_list_one_rule:nnn {##1} {####1} } - { \__hook_list_one_rule:nnn {####1} {##1} } - {#1} + \prop_map_inline:cn { g__hook_#1_code_prop } + { + \__hook_if_label_case:nnnnn {##1} {####1} + { \prop_map_break: } + { \__hook_list_one_rule:nnn {##1} {####1} } + { \__hook_list_one_rule:nnn {####1} {##1} } + {#1} + } } } } @@ -7528,6 +7624,10 @@ of this package available from CTAN} Empty~code~label~\msg_line_context:.~ Using~'\__hook_currname_or_default:'~instead. } +\msg_new:nnn { hooks } { empty-hook } + { + Empty~hook~name~\msg_line_context:. + } \msg_new:nnn { hooks } { no-default-label } { Missing~(empty)~default~label~\msg_line_context:. \\ @@ -7705,6 +7805,8 @@ of this package available from CTAN} \NewDocumentCommand \ClearHookRule { m m m } { \hook_gset_rule:nnnn {#1}{#2}{unrelated}{#3} } \cs_new_eq:NN \IfHookEmptyTF \hook_if_empty:nTF +\cs_new_eq:NN \IfHookEmptyT \hook_if_empty:nT +\cs_new_eq:NN \IfHookEmptyF \hook_if_empty:nF \cs_new_eq:NN \IfHookExistsTF \__hook_if_usable:nTF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \cs_new_protected:Npn \hook_disable:n @@ -8540,7 +8642,7 @@ of this package available from CTAN} { \cs_generate_from_arg_count:cNnn { __socket_#1_plug_#2:w } - \cs_new_protected:Npn + \cs_new:Npn { \int_use:c { c__socket_#1_args_int } } {#3} \seq_put_right:cn { l__socket_#1_plugs_seq } {#2} @@ -8559,7 +8661,7 @@ of this package available from CTAN} { \cs_generate_from_arg_count:cNnn { __socket_#1_plug_#2:w } - \cs_set_protected:Npn + \cs_set:Npn { \int_use:c { c__socket_#1_args_int } } {#3} \__socket_debug_term:n @@ -8599,6 +8701,10 @@ of this package available from CTAN} \cs_new_eq:NN \socket_use:nn \socket_use:nw % socket with one input \cs_new_eq:NN \socket_use:nnn \socket_use:nw % socket with two inputs \cs_new_eq:NN \socket_use:nnnn \socket_use:nw % socket with three inputs +\cs_new:Npn \socket_use_expandable:nw #1 { + \use:c { __socket_#1_plug_ \str_use:c { l__socket_#1_plug_str } :w } +} +\cs_new_eq:NN \socket_use_expandable:n \socket_use_expandable:nw % socket with no inputs \msg_new:nnnn { socket } { already-declared } { Socket~ '#1'~ already~ declared! } @@ -9489,23 +9595,33 @@ of this package available from CTAN} } \cs_new_protected:Npn \__template_assign_variable: { - \__template_assign_variable:c + \exp_args:Ne \__template_assign_variable:n { - \__template_map_var_type: _ - \bool_if:NT \l__template_global_bool { g } set:Nn + \__template_map_var_type: + _ + \bool_if:NT \l__template_global_bool { g } + set:N } } -\cs_new_protected:Npn \__template_assign_variable:N #1 +\cs_new_protected:Npn \__template_assign_variable:n #1 { - \__template_if_key_value:VT \l__template_value_tl - { \__template_key_to_value: } - \tl_put_right:Ne \l__template_assignments_tl + \__template_if_key_value:VTF \l__template_value_tl + { + \__template_key_to_value: + \tl_put_right:Ne \l__template_assignments_tl + { + \exp_not:c { #1 V } \exp_not:V \l__template_var_tl + \exp_not:V \l__template_value_tl + } + } { - #1 \exp_not:V \l__template_var_tl - { \exp_not:V \l__template_value_tl } + \tl_put_right:Ne \l__template_assignments_tl + { + \exp_not:c { #1 n } \exp_not:V \l__template_var_tl + { \exp_not:V \l__template_value_tl } + } } } -\cs_generate_variant:Nn \__template_assign_variable:N { c } \cs_new_protected:Npn \__template_key_to_value: { \exp_after:wN \__template_key_to_value_auxi:w \l__template_value_tl } \cs_new_protected:Npn \__template_key_to_value_auxi:w \KeyValue #1 @@ -10090,6 +10206,32 @@ of this package available from CTAN} \let \IfDocumentMetadataTF \@firstoftwo \DocumentMetadata } +\IncludeInRelease{2024/11/01}% + {\MakeLinkTarget}{Record target name for tagging support}% +\ExplSyntaxOn +\int_new:N\g__kernel_target_int +\NewDocumentCommand\MakeLinkTarget{sO{}m}{% + \ifvmode + \special{}% + \else + \@savsf\spacefactor + \smash{}% + \spacefactor\@savsf + \fi + \IfBooleanTF {#1} + { + \tl_gset:Ne \@currentHref {#3} + } + { + \int_gincr:N\g__kernel_target_int + \tl_gset:Ne \@currentHref {target*.\int_use:N\g__kernel_target_int} + } + \UseTaggingSocket{recordtarget} + } +\ExplSyntaxOff +\EndIncludeInRelease +\IncludeInRelease{2022/06/01}% + {\MakeLinkTarget}{Record target name for tagging support}% \NewDocumentCommand\MakeLinkTarget{sO{}m}{% \ifvmode \special{}% @@ -10098,7 +10240,8 @@ of this package available from CTAN} \smash{}% \spacefactor\@savsf \fi} -\NewDocumentCommand\LinkTargetOn{}{} +\EndIncludeInRelease + \NewDocumentCommand\LinkTargetOn{}{} \NewDocumentCommand\LinkTargetOff{}{} \NewDocumentCommand\NextLinkTarget{m}{} \IncludeInRelease{0000/00/00}{ltmeta}% @@ -10258,6 +10401,20 @@ of this package available from CTAN} \fi \fi}% \EndIncludeInRelease +\IncludeInRelease{2024/11/01}% + {\addvspace}{drop unnecessary no-item error}% +\protected\def\addvspace#1{% + \ifhmode \ifinner \@LRmoderr \else \par \fi \fi + \if@minipage\else + \ifdim \lastskip =\z@ + \@vspace@calcify{#1}% + \else + \setlength\@tempskipb{#1}% + \@xaddvskip + \fi + \fi +} +\EndIncludeInRelease \IncludeInRelease{2020/10/01}% {\addvspace}{\addvspace calc support}% \def\addvspace#1{% @@ -10291,6 +10448,38 @@ of this package available from CTAN} \@noitemerr \fi} \EndIncludeInRelease +\IncludeInRelease{2024/11/01}% + {\addpenalty}{\addpenalty drop error}% +\protected\def\addpenalty#1{% + \ifhmode \ifinner \@LRmoderr \else \par \fi \fi + \if@minipage + \else + \if@nobreak + \else + \ifdim\lastskip=\z@ + \penalty#1\relax + \else + \@tempskipb\lastskip + \begingroup + \@tempskipa\@tempskipb + \advance \@tempskipb + \ifdim\prevdepth>\maxdepth\maxdepth\else + \ifdim \prevdepth = -\@m\p@ \z@ \else \prevdepth \fi + \fi + \vskip -\@tempskipb + \penalty#1% + \ifdim\@tempskipa=\@tempskipb + \else + \advance\@tempskipb -\@tempskipa + \vskip \@tempskipb + \fi + \vskip \@tempskipa + \endgroup + \fi + \fi + \fi +} +\EndIncludeInRelease \IncludeInRelease{2015/01/01}% {\addpenalty}{\addpenalty}% \def\addpenalty#1{% @@ -11227,6 +11416,54 @@ of this package available from CTAN} {Reset nested counters}%% \def\@stpelt#1{\global\csname c@#1\endcsname \z@}% \EndIncludeInRelease +\IncludeInRelease{2024/11/01}{\@definecounter} + {provide theHfoo commands}% +\def\@definecounter#1{\expandafter\newcount\csname c@#1\endcsname + \setcounter{#1}\z@ + \global\expandafter\let\csname cl@#1\endcsname\@empty + \@addtoreset{#1}{@ckpt}% + \global\expandafter\let\csname p@#1\endcsname\@empty + \expandafter\xdef\csname theH#1\endcsname{% + \noexpand\the\noexpand\value{#1}}% + \expandafter + \ifx\csname the#1\endcsname\relax + \expandafter + \gdef\csname the#1\expandafter\endcsname\expandafter + {\expandafter\@arabic\csname c@#1\endcsname}% + \else + \@latex@warning{Command `\string\the#1' already + defined -- not changed}% + \fi} +\EndIncludeInRelease +\IncludeInRelease{0000/00/00}{\@definecounter} + {provide theHfoo commands}%% +\def\@definecounter#1{\expandafter\newcount\csname c@#1\endcsname + \setcounter{#1}\z@ + \global\expandafter\let\csname cl@#1\endcsname\@empty + \@addtoreset{#1}{@ckpt}% + \global\expandafter\let\csname p@#1\endcsname\@empty + \expandafter + \ifx\csname the#1\endcsname\relax + \expandafter + \gdef\csname the#1\expandafter\endcsname\expandafter + {\expandafter\@arabic\csname c@#1\endcsname}% + \else + \@latex@warning{Command `\string\the#1' already + defined -- not changed}% + \fi} +\EndIncludeInRelease +\IncludeInRelease{2024/11/01}{\@addtoreset} + {provide theHfoo commands}% +\def\@addtoreset#1#2{\expandafter\@cons\csname cl@#2\endcsname {{#1}}% + \expandafter\xdef\csname theH#1\endcsname{% + \expandafter\noexpand\csname theH#2\endcsname.% + \noexpand\the\noexpand\value{#1}}% +} +\EndIncludeInRelease +\IncludeInRelease{0000/00/00}{\@addtoreset} + {provide theHfoo commands}%% +\def\@addtoreset#1#2{\expandafter\@cons\csname cl@#2\endcsname {{#1}}} +\EndIncludeInRelease \IncludeInRelease{2018-04-01} {\@removefromreset}{Add interfaces}% \def\@removefromreset#1#2{% @@ -11359,6 +11596,17 @@ of this package available from CTAN} {\setlength}{Using \setlength with \dimen0}% \def\setlength#1#2{#1#2\relax} \EndIncludeInRelease +\IncludeInRelease{2024/11/01}% + {\@settodim}{suspend tagging}% +\def\@settodim#1#2#3{\setbox\@tempboxa\hbox + {{\SuspendTagging{\@settodim}#3\ResumeTagging{\@settodim}}}#2#1\@tempboxa + \setbox\@tempboxa\box\voidb@x} +\EndIncludeInRelease +\IncludeInRelease{0000/00/00}% + {\@settodim}{suspend tagging}% +\def\@settodim#1#2#3{\setbox\@tempboxa\hbox{{#3}}#2#1\@tempboxa + \setbox\@tempboxa\box\voidb@x} +\EndIncludeInRelease %%% From File: ltfssbas.dtx %% Copyright (C) 1989-2002 Frank Mittelbach and Rainer Sch\"opf \IncludeInRelease{2020/02/02}% @@ -11664,6 +11912,7 @@ of this package available from CTAN} \hbadness\@M \hfuzz\maxdimen \tracingonline\z@ + \tracinglostchars\z@ \everypar={}% \leftskip\z@skip \rightskip\z@skip @@ -14575,11 +14824,42 @@ of this package available from CTAN} \IncludeInRelease{2022/06/01}% {\Ref}{Add starred version}% \def\@currentcounter{} -\def\refstepcounter#1{\stepcounter{#1}% +\EndIncludeInRelease +\IncludeInRelease{2024/11/01}% + {\@currentHref}{set theHcounter representation}% +\NewSocket{refstepcounter}{1} +\NewSocket{refstepcounter/target}{1} +\NewSocketPlug{refstepcounter/target}{kernel} + {\xdef\@currentHref {#1.\csname theH#1\endcsname}}% +\AssignSocketPlug{refstepcounter/target}{kernel} +\def\refstepcounter#1{% + \UseSocket{refstepcounter}{% + \stepcounter{#1}% \edef\@currentcounter{#1}% \protected@edef\@currentlabel {\csname p@#1\expandafter\endcsname\csname the#1\endcsname}% + \UseSocket{refstepcounter/target}{#1}% + \UseTaggingSocket{recordtarget}% + }% +} +\def\@kernel@refstepcounter#1{% + \UseSocket{refstepcounter}{% + \stepcounter{#1}% + \edef\@currentcounter{#1}% + \protected@edef\@currentlabel + {\csname p@#1\expandafter\endcsname\csname the#1\endcsname}}}% +\EndIncludeInRelease +\IncludeInRelease{2022/06/01}% + {\@currentHref}{set theHcounter representation}% +\def\refstepcounter#1{\stepcounter{#1}% + \edef\@currentcounter{#1}% + \protected@edef\@currentlabel + {\csname p@#1\expandafter\endcsname\csname the#1\endcsname}% } +\let\@kernel@refstepcounter\refstepcounter +\EndIncludeInRelease +\IncludeInRelease{2022/06/01}% + {\Ref}{Add starred version}% \def\labelformat#1{\expandafter\def\csname p@#1\endcsname##1} \def\@kernel@Ref#1{\protected@edef\@tempa{\@kernel@ref{#1}}% \expandafter\MakeUppercase\@tempa} @@ -14685,14 +14965,11 @@ of this package available from CTAN} \cs_generate_variant:Nn \property_record:nn { nV , ee, oo } \cs_new_protected:Npn \__property_record:nn #1#2 { - \legacy_if:nT { @filesw } + \protected@write \@auxout {} { - \protected@write \@auxout {} - { - \token_to_str:N \new@label@record - {#1} - { \clist_map_function:nN {#2} \__property_record_value:n } - } + \token_to_str:N \new@label@record + {#1} + { \clist_map_function:nN {#2} \__property_record_value:n } } } \cs_generate_variant:Nn \__property_record:nn { e } @@ -14815,8 +15092,8 @@ of this package available from CTAN} } \prg_generate_conditional_variant:Nnn \property_if_recorded:n {e} {TF} \cs_new_eq:NN \IfLabelExistsTF \property_if_recorded:eTF -\cs_new:Npn \IfLabelExistsT #1#2 {\property_if_exist:eTF {#1}{#2}{} } -\cs_new:Npn \IfLabelExistsF #1 {\property_if_exist:eTF {#1}{} } +\cs_new:Npn \IfLabelExistsT #1#2 {\property_if_recorded:eTF {#1}{#2}{} } +\cs_new:Npn \IfLabelExistsF #1 {\property_if_recorded:eTF {#1}{} } \prg_new_conditional:Npnn \property_if_recorded:nn #1#2 { p , T , F, TF } % #1 label #2 property { @@ -14830,6 +15107,8 @@ of this package available from CTAN} } \prg_generate_conditional_variant:Nnn \property_if_recorded:nn {ee} {TF} \cs_new_eq:NN \IfPropertyRecordedTF \property_if_recorded:eeTF +\cs_new:Npn \IfPropertyRecordedT #1#2#3 { \property_if_recorded:eeTF {#1}{#2}{#3}{} } +\cs_new:Npn \IfPropertyRecordedF #1#2#3 { \property_if_recorded:eeTF {#1}{#2}{}{#3} } \cs_new_protected:Npn \property_ref_undefined_warn: { \flag_if_raised:nT { l__property_ref_flag } @@ -14943,6 +15222,9 @@ of this package available from CTAN} \NewHook{enddocument/afteraux} \NewHook{enddocument/info} \NewHook{enddocument/end} +\RemoveFromHook{enddocument/info}[kernel/filelist] +\RemoveFromHook{enddocument/info}[kernel/warnings] +\RemoveFromHook{enddocument/info}[kernel/release] \AddToHook{enddocument/info}[kernel/filelist]{\@dofilelist} \AddToHook{enddocument/info}[kernel/warnings]{\@enddocument@kernel@warnings} \AddToHook{enddocument/info}[kernel/release]{% @@ -15004,6 +15286,9 @@ of this package available from CTAN} \NewHook{enddocument/afteraux} \NewHook{enddocument/info} \NewHook{enddocument/end} +\RemoveFromHook{enddocument/info}[kernel/filelist] +\RemoveFromHook{enddocument/info}[kernel/warnings] +\RemoveFromHook{enddocument/info}[kernel/release] \AddToHook{enddocument/info}[kernel/filelist]{\@dofilelist} \AddToHook{enddocument/info}[kernel/warnings]{\@enddocument@kernel@warnings} \AddToHook{enddocument/info}[kernel/release]{% @@ -15127,7 +15412,7 @@ of this package available from CTAN} \EndIncludeInRelease \IncludeInRelease{2020/10/01}% {\begin}{Use hook system}% -\DeclareRobustCommand*\begin[1]{% +\protected\def\begin#1{% \UseHook{env/#1/before}% \@ifundefined{#1}% {\def\reserved@a{\@latex@error{Environment #1 undefined}\@eha}}% @@ -15145,34 +15430,6 @@ of this package available from CTAN} \fi \UseHook{env/#1/begin}% } -\edef\end - {\unexpanded{% - \romannumeral - \ifx\protect\@typeset@protect - \expandafter %1 - \expandafter %2 - \expandafter %1 - \expandafter %3 expands the \csname inside \end<space> - \expandafter %1 - \expandafter %2 expands \end<space> - \expandafter %1 expands the \else - \z@ - \else - \expandafter\z@\expandafter\protect - \fi - }% - \expandafter\noexpand\csname end \endcsname - } -\@namedef{end }#1{% - \romannumeral - \IfHookEmptyTF{env/#1/end}% - {\expandafter\z@}% - {\z@\UseHook{env/#1/end}}% - \csname end#1\endcsname\@checkend{#1}% - \expandafter\endgroup\if@endpe\@doendpe\fi - \UseHook{env/#1/after}% - \if@ignore\@ignorefalse\ignorespaces\fi -} \EndIncludeInRelease \IncludeInRelease{2019/10/01}% {\begin}{Making \begin/\end robust}% @@ -15184,6 +15441,23 @@ of this package available from CTAN} \csname #1\endcsname}}% \@ignorefalse \begingroup\@endpefalse\reserved@a} +\EndIncludeInRelease +\IncludeInRelease{0000/00/00}% + {\begin}{Making \begin/\end robust}% +\def\begin#1{% + \@ifundefined{#1}% + {\def\reserved@a{\@latex@error{Environment #1 undefined}\@eha}}% + {\def\reserved@a{\def\@currenvir{#1}% + \edef\@currenvline{\on@line}% + \csname #1\endcsname}}% + \@ignorefalse + \begingroup\@endpefalse\reserved@a} + +\expandafter\let\csname begin \endcsname\@undefined + +\EndIncludeInRelease +\IncludeInRelease{2019/10/01}% + {\end}{Making \begin/\end robust}% \edef\end {\unexpanded{% \romannumeral @@ -15202,27 +15476,52 @@ of this package available from CTAN} }% \expandafter\noexpand\csname end \endcsname } -\@namedef{end }#1{% - \csname end#1\endcsname\@checkend{#1}% - \expandafter\endgroup\if@endpe\@doendpe\fi - \if@ignore\@ignorefalse\ignorespaces\fi} \EndIncludeInRelease \IncludeInRelease{0000/00/00}% - {\begin}{Making \begin/\end robust}% -\def\begin#1{% - \@ifundefined{#1}% - {\def\reserved@a{\@latex@error{Environment #1 undefined}\@eha}}% - {\def\reserved@a{\def\@currenvir{#1}% - \edef\@currenvline{\on@line}% - \csname #1\endcsname}}% - \@ignorefalse - \begingroup\@endpefalse\reserved@a} + {\end}{Making \begin/\end robust}% \def\end#1{% \csname end#1\endcsname\@checkend{#1}% \expandafter\endgroup\if@endpe\@doendpe\fi \if@ignore\@ignorefalse\ignorespaces\fi} -\expandafter\let\csname begin \endcsname\@undefined +\EndIncludeInRelease +\IncludeInRelease{2024/11/01}% + {\end!space}{New @endpe handling}% +\@namedef{end }#1{% + \romannumeral + \IfHookEmptyTF{env/#1/end}% + {\expandafter\z@}% + {\z@\UseHook{env/#1/end}}% + \csname end#1\endcsname\@checkend{#1}% + \endgroup + \UseHook{env/#1/after}% + \if@ignore\@ignorefalse\ignorespaces\fi +} +\EndIncludeInRelease +\IncludeInRelease{2020/10/01}% + {\end!space}{Use hook system}% + +\@namedef{end }#1{% + \romannumeral + \IfHookEmptyTF{env/#1/end}% + {\expandafter\z@}% + {\z@\UseHook{env/#1/end}}% + \csname end#1\endcsname\@checkend{#1}% + \expandafter\endgroup\if@endpe\@doendpe\fi + \UseHook{env/#1/after}% + \if@ignore\@ignorefalse\ignorespaces\fi +} +\EndIncludeInRelease +\IncludeInRelease{2019/10/01}% + {\end!space}{Making \begin/\end robust}% + +\@namedef{end }#1{% + \csname end#1\endcsname\@checkend{#1}% + \expandafter\endgroup\if@endpe\@doendpe\fi + \if@ignore\@ignorefalse\ignorespaces\fi} +\EndIncludeInRelease +\IncludeInRelease{0000/00/00}% + {\end!space}{Making \begin/\end robust}% \expandafter\let\csname end \endcsname\@undefined \EndIncludeInRelease @@ -15697,6 +15996,25 @@ of this package available from CTAN} \let\leqno\@kernel@leqno \EndIncludeInRelease %%% From File: ltlists.dtx +\IncludeInRelease{2024/11/01}% + {\@endpetrue}{New @endpe handling}% +\def\@endpefalse{\global\let\if@endpe\iffalse} +\def\@endpetrue {% + \global\let\if@endpe\iftrue + \ifnum\currentgrouplevel>\z@ + \aftergroup\propagate@doendpe + \fi +} +\def\propagate@doendpe{\if@endpe \@doendpe \fi} +\EndIncludeInRelease +\IncludeInRelease{0000/00/00}% + {\@endpetrue}{New @endpe handling}% + + +\def\@endpefalse{\let\if@endpe\iffalse} +\def\@endpetrue{\let\if@endpe\iftrue} + +\EndIncludeInRelease %%% From File: ltboxes.dtx \IncludeInRelease{2015/01/01}% {\makebox}{Make \makebox robust}% @@ -15776,7 +16094,6 @@ of this package available from CTAN} \IncludeInRelease{2021/06/01}% {\color@begingroup}{color group settings}% \let\color@begingroup\begingroup -\def\color@endgroup{\endgraf\endgroup} \def\color@setgroup{\color@begingroup} % changed further in color package \let\normalcolor\relax % remains untouched; only changed in a color package \def\color@hbox{\hbox\bgroup\color@begingroup} @@ -15787,7 +16104,6 @@ of this package available from CTAN} {\color@begingroup}{color group settings}% \let\color@begingroup\relax -\let\color@endgroup\relax \let\color@setgroup\relax \let\normalcolor\relax \let\color@hbox\relax @@ -15795,6 +16111,22 @@ of this package available from CTAN} \let\color@endbox\relax \EndIncludeInRelease +\IncludeInRelease{2024/11/01}% + {\color@endgroup}{color group settings}% +\def\color@endgroup{\endgraf\@endpefalse\endgroup} + +\EndIncludeInRelease +\IncludeInRelease{2021/06/01}% + {\color@endgroup}{color group settings}% +\def\color@endgroup{\endgraf\endgroup} + +\EndIncludeInRelease +\IncludeInRelease{0000/00/00}% + {\color@endgroup}{color group settings}% + +\let\color@endgroup\relax + +\EndIncludeInRelease \IncludeInRelease{2015/01/01}% {\savebox}{Make \savebox robust}% \DeclareRobustCommand\savebox[1]{% @@ -17187,7 +17519,6 @@ of this package available from CTAN} %% Copyright (C) 2022-2024 %% Frank Mittelbach, The LaTeX Project %%% From File: ltmarks.dtx -%% \end{function} \ExplSyntaxOn \NewModuleRelease{2022/06/01}{ltmarks} @@ -17493,6 +17824,12 @@ of this package available from CTAN} \NewExpandableDocumentCommand \IfMarksEqualTF {O{page}mmm} { \mark_if_eq:nnnnTF {#1}{#2}{#3}{#4} } +\NewExpandableDocumentCommand \IfMarksEqualT {O{page}mmm} { + \mark_if_eq:nnnnT {#1}{#2}{#3}{#4} +} +\NewExpandableDocumentCommand \IfMarksEqualF {O{page}mmm} { + \mark_if_eq:nnnnF {#1}{#2}{#3}{#4} +} \cs_new_protected:Npn \__mark_update_singlecol_structures: { \box_if_vertical:NTF \@outputbox { @@ -18003,7 +18340,9 @@ of this package available from CTAN} \EndIncludeInRelease \IncludeInRelease{2021/06/01}% {\OptionNotUsed}{filter unused option list}% -\def\@remove@eq@value#1=#2\@nil{#1} +\ExplSyntaxOn +\def\@remove@eq@value#1=#2\@nil{\tl_trim_spaces:n{#1}} +\ExplSyntaxOff \def\OptionNotUsed{% \ifx\@currext\@clsextension \xdef\@unusedoptionlist{% @@ -18466,6 +18805,29 @@ of this package available from CTAN} \DeclareRobustCommand\AtEndDocument{\g@addto@macro\@enddocumenthook} \EndIncludeInRelease +\IncludeInRelease{2024/11/01}% + {\@cls@pkg}{Allow for more extensions}% +\def\@cls@pkg{% + \ifx\@currext\@clsextension + document class% + \else + \ifx\@currext\@pkgextension + package% + \else + file% + \fi + \fi} +\EndIncludeInRelease +\IncludeInRelease{0000/00/00}% + {\@cls@pkg}{Allow for more extensions}% + +\def\@cls@pkg{% + \ifx\@currext\@clsextension + document class% + \else + package% + \fi} +\EndIncludeInRelease \IncludeInRelease{2020/10/01}% {\filec@ntents}{Define \q@curr@file directly (gh/220)}% \def\filecontents{\@tempswatrue\@fileswtrue diff --git a/Master/texmf-dist/tex/latex/base/letter.cls b/Master/texmf-dist/tex/latex/base/letter.cls index f39504c561e..484203d5777 100644 --- a/Master/texmf-dist/tex/latex/base/letter.cls +++ b/Master/texmf-dist/tex/latex/base/letter.cls @@ -43,7 +43,7 @@ %% extension .ins) which are part of the distribution. \NeedsTeXFormat{LaTeX2e}[1996/06/01] \ProvidesClass{letter} - [2021/12/07 v1.3c + [2024/08/12 v1.3c Standard LaTeX document class] \newcommand\@ptsize{} \DeclareOption{a4paper} diff --git a/Master/texmf-dist/tex/latex/base/ltluatex.lua b/Master/texmf-dist/tex/latex/base/ltluatex.lua index e92a27eb3a4..8a650531558 100644 --- a/Master/texmf-dist/tex/latex/base/ltluatex.lua +++ b/Master/texmf-dist/tex/latex/base/ltluatex.lua @@ -64,7 +64,7 @@ local function provides_module(info) luatexbase_log( "Lua module: " .. info.name .. spaced(info.date) - .. spaced(info.version) + .. spaced(info.version and string_gsub(info.version or "","^(%d)","v%1")) .. spaced(info.description) ) modules[info.name] = info @@ -301,7 +301,7 @@ local callbacklist = setmetatable({}, { end list[i] = current.value else - -- Cycle occured. TODO: Show cycle for debugging + -- Cycle occurred. TODO: Show cycle for debugging -- list[i] = ... local remaining = {} for name, entry in next, meta do @@ -335,7 +335,7 @@ local callbacklist = setmetatable({}, { for i=2, length//2 do cycle[i], cycle[length + 1 - i] = cycle[length + 1 - i], cycle[i] end - error('Cycle occured at ' .. table.concat(cycle, ' -> ', 1, length)) + error('Cycle occurred at ' .. table.concat(cycle, ' -> ', 1, length)) end end end diff --git a/Master/texmf-dist/tex/latex/base/ltluatex.tex b/Master/texmf-dist/tex/latex/base/ltluatex.tex index 2747e4f56f3..fc23e470097 100644 --- a/Master/texmf-dist/tex/latex/base/ltluatex.tex +++ b/Master/texmf-dist/tex/latex/base/ltluatex.tex @@ -47,7 +47,7 @@ #1#2[#3]{\endgroup\immediate\write-1{File: #1 #3}} \fi \ProvidesFile{ltluatex.tex} -[2024/02/11 v1.2c +[2024/08/16 v1.2e LuaTeX support for plain TeX (core)% ] \edef\etatcatcode{\the\catcode`\@} diff --git a/Master/texmf-dist/tex/latex/base/preload.cfg b/Master/texmf-dist/tex/latex/base/preload.cfg index 2e89d1f4e74..c10298c491c 100644 --- a/Master/texmf-dist/tex/latex/base/preload.cfg +++ b/Master/texmf-dist/tex/latex/base/preload.cfg @@ -37,7 +37,7 @@ %% %%% From File: fontdef.dtx \ProvidesFile{preload.cfg} - [2024/02/09 v3.0i LaTeX Kernel + [2024/09/03 v3.0k LaTeX Kernel (Uncustomized preload font setup) ] %% diff --git a/Master/texmf-dist/tex/latex/base/report.cls b/Master/texmf-dist/tex/latex/base/report.cls index cb7a32f536d..b0f60a1f5db 100644 --- a/Master/texmf-dist/tex/latex/base/report.cls +++ b/Master/texmf-dist/tex/latex/base/report.cls @@ -43,7 +43,7 @@ %% extension .ins) which are part of the distribution. \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesClass{report} - [2024/02/08 v1.4n + [2024/06/29 v1.4n Standard LaTeX document class] \newcommand\@ptsize{} \newif\if@restonecol diff --git a/Master/texmf-dist/tex/latex/base/shortvrb.sty b/Master/texmf-dist/tex/latex/base/shortvrb.sty index c0266dd6930..4a9ae8833df 100644 --- a/Master/texmf-dist/tex/latex/base/shortvrb.sty +++ b/Master/texmf-dist/tex/latex/base/shortvrb.sty @@ -43,7 +43,7 @@ %% extension .ins) which are part of the distribution. \NeedsTeXFormat{LaTeX2e}[1994/12/01] \ProvidesPackage{shortvrb} - [2024/04/26 v3.0p + [2024/10/23 v3.0q Standard LaTeX documentation package V3 (FMi)] %% %% Package `doc' to use with LaTeX 2e diff --git a/Master/texmf-dist/tex/latex/base/size10.clo b/Master/texmf-dist/tex/latex/base/size10.clo index 11be942b3e9..a2c22c047f8 100644 --- a/Master/texmf-dist/tex/latex/base/size10.clo +++ b/Master/texmf-dist/tex/latex/base/size10.clo @@ -42,7 +42,7 @@ %% and covered by LPPL is defined by the unpacking scripts (with %% extension .ins) which are part of the distribution. \ProvidesFile{size10.clo} - [2024/02/08 v1.4n + [2024/06/29 v1.4n Standard LaTeX file (size option)] \renewcommand\normalsize{% \@setfontsize\normalsize\@xpt\@xiipt diff --git a/Master/texmf-dist/tex/latex/base/size11.clo b/Master/texmf-dist/tex/latex/base/size11.clo index a36fb7931ba..0259727c40c 100644 --- a/Master/texmf-dist/tex/latex/base/size11.clo +++ b/Master/texmf-dist/tex/latex/base/size11.clo @@ -42,7 +42,7 @@ %% and covered by LPPL is defined by the unpacking scripts (with %% extension .ins) which are part of the distribution. \ProvidesFile{size11.clo} - [2024/02/08 v1.4n + [2024/06/29 v1.4n Standard LaTeX file (size option)] \renewcommand\normalsize{% \@setfontsize\normalsize\@xipt{13.6}% diff --git a/Master/texmf-dist/tex/latex/base/size12.clo b/Master/texmf-dist/tex/latex/base/size12.clo index aa9f0808f73..e1dd32b0325 100644 --- a/Master/texmf-dist/tex/latex/base/size12.clo +++ b/Master/texmf-dist/tex/latex/base/size12.clo @@ -42,7 +42,7 @@ %% and covered by LPPL is defined by the unpacking scripts (with %% extension .ins) which are part of the distribution. \ProvidesFile{size12.clo} - [2024/02/08 v1.4n + [2024/06/29 v1.4n Standard LaTeX file (size option)] \renewcommand\normalsize{% \@setfontsize\normalsize\@xiipt{14.5}% |