diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex-dev')
74 files changed, 2285 insertions, 821 deletions
diff --git a/Master/texmf-dist/tex/latex-dev/amsmath/amsmath.sty b/Master/texmf-dist/tex/latex-dev/amsmath/amsmath.sty index 63f578290a7..4e3165add6a 100644 --- a/Master/texmf-dist/tex/latex-dev/amsmath/amsmath.sty +++ b/Master/texmf-dist/tex/latex-dev/amsmath/amsmath.sty @@ -26,7 +26,7 @@ \DeclareRelease{}{1994-06-01}{amsmath-2018-12-01.sty} \DeclareRelease{}{2018-12-01}{amsmath-2018-12-01.sty} \DeclareCurrentRelease{}{2019-04-01} -\ProvidesPackage{amsmath}[2024/05/23 v2.17q AMS math features] +\ProvidesPackage{amsmath}[2024/11/05 v2.17t AMS math features] \edef\@temp{\catcode 96=\number\catcode 96 } \catcode\string `\`=12 \def\do#1{\catcode\number`#1=\number\catcode`#1} diff --git a/Master/texmf-dist/tex/latex-dev/base/alltt.sty b/Master/texmf-dist/tex/latex-dev/base/alltt.sty index 78c5e6a9241..2cbaf54abb0 100644 --- a/Master/texmf-dist/tex/latex-dev/base/alltt.sty +++ b/Master/texmf-dist/tex/latex-dev/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-dev/base/article.cls b/Master/texmf-dist/tex/latex-dev/base/article.cls index 869bdc0db41..0dcb9da0226 100644 --- a/Master/texmf-dist/tex/latex-dev/base/article.cls +++ b/Master/texmf-dist/tex/latex-dev/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-dev/base/bk10.clo b/Master/texmf-dist/tex/latex-dev/base/bk10.clo index ba4701bead9..958c45b467e 100644 --- a/Master/texmf-dist/tex/latex-dev/base/bk10.clo +++ b/Master/texmf-dist/tex/latex-dev/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-dev/base/bk11.clo b/Master/texmf-dist/tex/latex-dev/base/bk11.clo index c0a4a4420f1..cbcbd0dae62 100644 --- a/Master/texmf-dist/tex/latex-dev/base/bk11.clo +++ b/Master/texmf-dist/tex/latex-dev/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-dev/base/bk12.clo b/Master/texmf-dist/tex/latex-dev/base/bk12.clo index c4a5e3c2457..ccdb40f6d42 100644 --- a/Master/texmf-dist/tex/latex-dev/base/bk12.clo +++ b/Master/texmf-dist/tex/latex-dev/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-dev/base/book.cls b/Master/texmf-dist/tex/latex-dev/base/book.cls index 2838b7f1ce3..e73e83ea3c0 100644 --- a/Master/texmf-dist/tex/latex-dev/base/book.cls +++ b/Master/texmf-dist/tex/latex-dev/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-dev/base/checkencodingsubset.tex b/Master/texmf-dist/tex/latex-dev/base/checkencodingsubset.tex index 02410ad693a..54663361c3d 100644 --- a/Master/texmf-dist/tex/latex-dev/base/checkencodingsubset.tex +++ b/Master/texmf-dist/tex/latex-dev/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-dev/base/doc.sty b/Master/texmf-dist/tex/latex-dev/base/doc.sty index 16b0fbc897d..31930d29767 100644 --- a/Master/texmf-dist/tex/latex-dev/base/doc.sty +++ b/Master/texmf-dist/tex/latex-dev/base/doc.sty @@ -52,7 +52,7 @@ \DeclareCurrentRelease{v3}{2022-06-01} \ProvidesPackage{doc} - [2024/06/04 v3.0q + [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-dev/base/fontmath.cfg b/Master/texmf-dist/tex/latex-dev/base/fontmath.cfg index eca079d15b3..a50cabda404 100644 --- a/Master/texmf-dist/tex/latex-dev/base/fontmath.cfg +++ b/Master/texmf-dist/tex/latex-dev/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-dev/base/fontmath.ltx b/Master/texmf-dist/tex/latex-dev/base/fontmath.ltx index a7dd9cc44ad..29f871ac4d5 100644 --- a/Master/texmf-dist/tex/latex-dev/base/fontmath.ltx +++ b/Master/texmf-dist/tex/latex-dev/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-dev/base/fonttext.cfg b/Master/texmf-dist/tex/latex-dev/base/fonttext.cfg index b37c4407d63..dbb0e2e99c5 100644 --- a/Master/texmf-dist/tex/latex-dev/base/fonttext.cfg +++ b/Master/texmf-dist/tex/latex-dev/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-dev/base/fonttext.ltx b/Master/texmf-dist/tex/latex-dev/base/fonttext.ltx index ec6ce8ed910..bd2ebea0874 100644 --- a/Master/texmf-dist/tex/latex-dev/base/fonttext.ltx +++ b/Master/texmf-dist/tex/latex-dev/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-dev/base/latex.ltx b/Master/texmf-dist/tex/latex-dev/base/latex.ltx index 66ee8826d2a..ff8f27d5d8f 100644 --- a/Master/texmf-dist/tex/latex-dev/base/latex.ltx +++ b/Master/texmf-dist/tex/latex-dev/base/latex.ltx @@ -709,8 +709,8 @@ %%% From File: ltvers.dtx \def\fmtname{LaTeX2e} \edef\fmtversion - {2024-11-01} -\def\patch@level{1} + {2025-06-01} +\def\patch@level{0} \edef\development@branch@name{develop \the\year-\the\month-\the\day} \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 + { + \__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 @@ -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{% @@ -8587,10 +8638,10 @@ Type H <return> for immediate help.}% \newtoks \everypar \tl_gput_right:Nx \g__para_standard_everypar_tl { - \exp_not:N \the - \exp_not:N \toks - \the \allocationnumber - \c_space_tl + \exp_not:N \the + \exp_not:N \toks + \the \allocationnumber + \c_space_tl } \box_new:N \g_para_indent_box @@ -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{% @@ -17445,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 } @@ -17537,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 @@ -17590,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} } } } @@ -17609,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 @@ -17630,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 @@ -19538,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 { @@ -19556,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} @@ -19576,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} @@ -19588,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 @@ -19661,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} @@ -19696,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, @@ -19726,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-dev/base/latexrelease.sty b/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty index 5a696389f15..993c99f1c07 100644 --- a/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty +++ b/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty @@ -226,6 +226,7 @@ \def\pkgcls@use@this@release#1#2{% \pkgcls@show@selection{#1}{#2}% \pkgcls@targetdate\z@ + \@addtofilelist{#1}% \@@input #1\relax \endinput } @@ -300,7 +301,7 @@ } %%% From File: ltvers.dtx \edef\latexreleaseversion - {2024-11-01} + {2025-06-01} \newif\if@includeinrelease \@includeinreleasefalse \def\IncludeInRelease#1{% @@ -431,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}{% @@ -1989,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 @@ -2209,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} @@ -2228,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} @@ -4806,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} @@ -4826,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 @@ -5249,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: } { @@ -5314,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 } @@ -6781,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 } @@ -6988,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} + } } } } @@ -7535,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:. \\ @@ -7712,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 @@ -8547,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} @@ -8566,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 @@ -8606,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! } @@ -9496,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 @@ -9926,6 +10035,13 @@ of this package available from CTAN} \msg_error:nnnn { hooks }{ para-mode }{begin}{horizontal} \fi: \__para_handle_indent: } +\cs_set:Npn \__para_tmp:w #1#2#3#4#5 { } +\tl_gput_right:Nx \g__para_standard_everypar_tl { + \exp_not:N \the + \exp_not:N \toks + \exp_after:wN \__para_tmp:w \token_to_meaning:N \everypar + \c_space_tl +} \EndIncludeInRelease \IncludeInRelease{2021/06/01} {\g__para_standard_everypar_tl}{minipage~ fix} @@ -9962,10 +10078,10 @@ of this package available from CTAN} \newtoks \everypar \tl_gput_right:Nx \g__para_standard_everypar_tl { - \exp_not:N \the - \exp_not:N \toks - \the \allocationnumber - \c_space_tl + \exp_not:N \the + \exp_not:N \toks + \the \allocationnumber + \c_space_tl } \box_new:N \g_para_indent_box @@ -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{% diff --git a/Master/texmf-dist/tex/latex-dev/base/letter.cls b/Master/texmf-dist/tex/latex-dev/base/letter.cls index f39504c561e..484203d5777 100644 --- a/Master/texmf-dist/tex/latex-dev/base/letter.cls +++ b/Master/texmf-dist/tex/latex-dev/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-dev/base/ltluatex.lua b/Master/texmf-dist/tex/latex-dev/base/ltluatex.lua index e92a27eb3a4..8a650531558 100644 --- a/Master/texmf-dist/tex/latex-dev/base/ltluatex.lua +++ b/Master/texmf-dist/tex/latex-dev/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-dev/base/ltluatex.tex b/Master/texmf-dist/tex/latex-dev/base/ltluatex.tex index 2747e4f56f3..fc23e470097 100644 --- a/Master/texmf-dist/tex/latex-dev/base/ltluatex.tex +++ b/Master/texmf-dist/tex/latex-dev/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-dev/base/preload.cfg b/Master/texmf-dist/tex/latex-dev/base/preload.cfg index 2e89d1f4e74..c10298c491c 100644 --- a/Master/texmf-dist/tex/latex-dev/base/preload.cfg +++ b/Master/texmf-dist/tex/latex-dev/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-dev/base/report.cls b/Master/texmf-dist/tex/latex-dev/base/report.cls index cb7a32f536d..b0f60a1f5db 100644 --- a/Master/texmf-dist/tex/latex-dev/base/report.cls +++ b/Master/texmf-dist/tex/latex-dev/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-dev/base/shortvrb.sty b/Master/texmf-dist/tex/latex-dev/base/shortvrb.sty index 8caa7e43a8b..4a9ae8833df 100644 --- a/Master/texmf-dist/tex/latex-dev/base/shortvrb.sty +++ b/Master/texmf-dist/tex/latex-dev/base/shortvrb.sty @@ -43,7 +43,7 @@ %% extension .ins) which are part of the distribution. \NeedsTeXFormat{LaTeX2e}[1994/12/01] \ProvidesPackage{shortvrb} - [2024/06/04 v3.0q + [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-dev/base/size10.clo b/Master/texmf-dist/tex/latex-dev/base/size10.clo index 11be942b3e9..a2c22c047f8 100644 --- a/Master/texmf-dist/tex/latex-dev/base/size10.clo +++ b/Master/texmf-dist/tex/latex-dev/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-dev/base/size11.clo b/Master/texmf-dist/tex/latex-dev/base/size11.clo index a36fb7931ba..0259727c40c 100644 --- a/Master/texmf-dist/tex/latex-dev/base/size11.clo +++ b/Master/texmf-dist/tex/latex-dev/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-dev/base/size12.clo b/Master/texmf-dist/tex/latex-dev/base/size12.clo index aa9f0808f73..e1dd32b0325 100644 --- a/Master/texmf-dist/tex/latex-dev/base/size12.clo +++ b/Master/texmf-dist/tex/latex-dev/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}% diff --git a/Master/texmf-dist/tex/latex-dev/firstaid/latex2e-first-aid-for-external-files.ltx b/Master/texmf-dist/tex/latex-dev/firstaid/latex2e-first-aid-for-external-files.ltx index d2317b204af..5c9dc62b9b9 100644 --- a/Master/texmf-dist/tex/latex-dev/firstaid/latex2e-first-aid-for-external-files.ltx +++ b/Master/texmf-dist/tex/latex-dev/firstaid/latex2e-first-aid-for-external-files.ltx @@ -34,8 +34,8 @@ %% %% The LaTeX Project and any individual authors listed elsewhere %% in this file. -\def\LaTeXFirstAidDate{2024/03/20} -\def\LaTeXFirstAidVersion{v1.1e} +\def\LaTeXFirstAidDate{2024/10/16} +\def\LaTeXFirstAidVersion{v1.1g} \ProvidesFile{latex2e-first-aid-for-external-files.ltx} [\LaTeXFirstAidDate\space \LaTeXFirstAidVersion\space LaTeX kernel fixes to external files and packages] @@ -228,8 +228,41 @@ {[\@tempb][\arabic{page}][\cref@result]\thepage}{}{}{}}}% <------- five \@esphack}% } + \newcommand\firstaid@cref@smugglelabel{\let\cref@currentlabel\cref@gcurrentlabel@temp} + \newcommand\firstaid@cref@updatelabeldata[1]{% + \cref@constructprefix{#1}{\cref@result}% + \@ifundefined{cref@#1@alias}% + {\def\@tempa{#1}}% + {\def\@tempa{\csname cref@#1@alias\endcsname}}% + \protected@xdef\cref@gcurrentlabel@temp{% + [\@tempa][\arabic{#1}][\cref@result]% + \csname p@#1\endcsname\csname the#1\endcsname}% + \aftergroup\firstaid@cref@smugglelabel + } + \AddToHook{label}[firstaid/cleveref] + {\ifx + \@currentcounter\@empty + \else + \firstaid@cref@updatelabeldata{\@currentcounter} + \fi} }% } +\AddToHook{package/arydshln/after}[firstaid]{% + \FirstAidNeededT{arydshln}{sty}{2019/02/21 v1.76 } + {% +\protected\def\adl@@vlineL#1#2#3#4{\adl@ivline#4\@nil{#1}{#2}% + \xdef\adl@colsL{\adl@colsL + \@elt{#3}{\number\@tempcnta}{\number\@tempcntb}% + {\adl@dashcolor}{\adl@gapcolor}}}% +\protected\def\adl@@vlineR#1#2#3#4{\adl@ivline#4\@nil{#1}{#2}% + \xdef\adl@colsR{% + \@elt{#3}{\number\@tempcnta}{\number\@tempcntb}% + {\adl@dashcolor}{\adl@gapcolor}% + \adl@colsR}}% +\let\adl@act@@vlineL\adl@@vlineL +\let\adl@act@@vlineR\adl@@vlineR + }% +} \endinput %% %% End of file `latex2e-first-aid-for-external-files.ltx'. diff --git a/Master/texmf-dist/tex/latex-dev/graphics/color.sty b/Master/texmf-dist/tex/latex-dev/graphics/color.sty index 7083345d319..6eac5d7e41a 100644 --- a/Master/texmf-dist/tex/latex-dev/graphics/color.sty +++ b/Master/texmf-dist/tex/latex-dev/graphics/color.sty @@ -25,7 +25,7 @@ %% \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{color} - [2024/01/14 v1.3d Standard LaTeX Color (DPC)] + [2024/06/23 v1.3e Standard LaTeX Color (DPC)] \edef\Gin@codes{% \catcode`\noexpand\^^A\the\catcode`\^^A\relax \catcode`\noexpand\"\the\catcode`\"\relax @@ -170,7 +170,7 @@ \input{mathcolor.ltx} \def\color@setgroup{\begingroup\set@color} \let\color@begingroup\begingroup -\def\color@endgroup{\endgraf\endgroup} +\def\color@endgroup{\endgraf\@endpefalse\endgroup} \def\color@hbox{\hbox\bgroup\color@begingroup} \def\color@vbox{\vbox\bgroup\color@begingroup} \def\color@endbox{\color@endgroup\egroup} diff --git a/Master/texmf-dist/tex/latex-dev/graphics/graphics.sty b/Master/texmf-dist/tex/latex-dev/graphics/graphics.sty index 9d6e6c3b176..bbbe11f3325 100644 --- a/Master/texmf-dist/tex/latex-dev/graphics/graphics.sty +++ b/Master/texmf-dist/tex/latex-dev/graphics/graphics.sty @@ -30,7 +30,7 @@ \DeclareCurrentRelease{}{2019-10-01} \ProvidesPackage{graphics} - [2024/05/23 v1.4g Standard LaTeX Graphics (DPC,SPQR)] + [2024/08/06 v1.4g Standard LaTeX Graphics (DPC,SPQR)] \edef\Gin@codes{% \catcode`\noexpand\^^A\the\catcode`\^^A\relax \catcode`\noexpand\"\the\catcode`\"\relax diff --git a/Master/texmf-dist/tex/latex-dev/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex-dev/l3kernel/expl3-code.tex index 54aa898cc98..552e502f817 100644 --- a/Master/texmf-dist/tex/latex-dev/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex-dev/l3kernel/expl3-code.tex @@ -75,7 +75,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2024-07-20}% +\def\ExplFileDate{2024-11-02}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -716,7 +716,6 @@ Type H <return> for immediate help}\def~{\errmessage{% \__kernel_primitive:NN \pdfoutline \tex_pdfoutline:D \__kernel_primitive:NN \pdfoutput \tex_pdfoutput:D \__kernel_primitive:NN \pdfpageattr \tex_pdfpageattr:D - \__kernel_primitive:NN \pdfpagesattr \tex_pdfpagesattr:D \__kernel_primitive:NN \pdfpagebox \tex_pdfpagebox:D \__kernel_primitive:NN \pdfpageref \tex_pdfpageref:D \__kernel_primitive:NN \pdfpageresources \tex_pdfpageresources:D @@ -1313,13 +1312,11 @@ Type H <return> for immediate help}\def~{\errmessage{% \__kernel_primitive:NN \ybaselineshift \tex_ybaselineshift:D \__kernel_primitive:NN \yoko \tex_yoko:D \__kernel_primitive:NN \vfi \tex_vfi:D - \__kernel_primitive:NN \currentcjktoken \tex_currentcjktoken:D \__kernel_primitive:NN \disablecjktoken \tex_disablecjktoken:D \__kernel_primitive:NN \enablecjktoken \tex_enablecjktoken:D \__kernel_primitive:NN \forcecjktoken \tex_forcecjktoken:D \__kernel_primitive:NN \kchar \tex_kchar:D \__kernel_primitive:NN \kchardef \tex_kchardef:D - \__kernel_primitive:NN \kuten \tex_kuten:D \__kernel_primitive:NN \uptexrevision \tex_uptexrevision:D \__kernel_primitive:NN \uptexversion \tex_uptexversion:D \__kernel_primitive:NN \odelcode \tex_odelcode:D @@ -6138,6 +6135,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__seq_map_pairwise_function:wNw #2 \s__seq_stop #3 #1 { ? \prg_break: } { } \prg_break_point: + \prg_break_point:Nn \seq_map_break: { } } \cs_new:Npn \__seq_map_pairwise_function:wNw \s__seq #1 \s__seq_stop #2 { @@ -6470,8 +6468,8 @@ Type H <return> for immediate help}\def~{\errmessage{% { #1 = \__int_eval:w #2 \__int_eval_end: } \cs_new_protected:Npn \int_gset:Nn #1#2 { \tex_global:D #1 = \__int_eval:w #2 \__int_eval_end: } -\cs_generate_variant:Nn \int_set:Nn { c } -\cs_generate_variant:Nn \int_gset:Nn { c } +\cs_generate_variant:Nn \int_set:Nn { NV , c , cV } +\cs_generate_variant:Nn \int_gset:Nn { NV , c , cV } \cs_new_eq:NN \int_use:N \tex_the:D \cs_new:Npn \int_use:c #1 { \tex_the:D \cs:w #1 \cs_end: } \cs_new_protected:Npn \__int_compare_error: @@ -12952,8 +12950,8 @@ Type H <return> for immediate help}\def~{\errmessage{% { #1 = \__dim_eval:w #2 \__dim_eval_end: \scan_stop: } \cs_new_protected:Npn \dim_gset:Nn #1#2 { \tex_global:D #1 = \__dim_eval:w #2 \__dim_eval_end: \scan_stop: } -\cs_generate_variant:Nn \dim_set:Nn { c } -\cs_generate_variant:Nn \dim_gset:Nn { c } +\cs_generate_variant:Nn \dim_set:Nn { NV , c , cV } +\cs_generate_variant:Nn \dim_gset:Nn { NV , c , cV } \cs_new_protected:Npn \dim_set_eq:NN #1#2 { #1 = #2 \scan_stop: } \cs_generate_variant:Nn \dim_set_eq:NN { c , Nc , cc } @@ -13379,8 +13377,8 @@ Type H <return> for immediate help}\def~{\errmessage{% { #1 = \tex_glueexpr:D #2 \scan_stop: } \cs_new_protected:Npn \skip_gset:Nn #1#2 { \tex_global:D #1 = \tex_glueexpr:D #2 \scan_stop: } -\cs_generate_variant:Nn \skip_set:Nn { c } -\cs_generate_variant:Nn \skip_gset:Nn { c } +\cs_generate_variant:Nn \skip_set:Nn { NV , c , cV } +\cs_generate_variant:Nn \skip_gset:Nn { NV , c , cV } \cs_new_protected:Npn \skip_set_eq:NN #1#2 { #1 = #2 } \cs_generate_variant:Nn \skip_set_eq:NN { c , Nc , cc } \cs_new_protected:Npn \skip_gset_eq:NN #1#2 { \tex_global:D #1 = #2 } @@ -13472,8 +13470,8 @@ Type H <return> for immediate help}\def~{\errmessage{% { #1 = \tex_muexpr:D #2 \scan_stop: } \cs_new_protected:Npn \muskip_gset:Nn #1#2 { \tex_global:D #1 = \tex_muexpr:D #2 \scan_stop: } -\cs_generate_variant:Nn \muskip_set:Nn { c } -\cs_generate_variant:Nn \muskip_gset:Nn { c } +\cs_generate_variant:Nn \muskip_set:Nn { NV , c , cV } +\cs_generate_variant:Nn \muskip_gset:Nn { NV , c , cV } \cs_new_protected:Npn \muskip_set_eq:NN #1#2 { #1 = #2 } \cs_generate_variant:Nn \muskip_set_eq:NN { c , Nc , cc } \cs_new_protected:Npn \muskip_gset_eq:NN #1#2 { \tex_global:D #1 = #2 } @@ -17437,8 +17435,8 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__kernel_tl_gset:Nx #1 { \exp_not:f { \__fp_parse:n {#2} } } } \cs_new_protected:Npn \fp_const:Nn #1#2 { \tl_const:Ne #1 { \exp_not:f { \__fp_parse:n {#2} } } } -\cs_generate_variant:Nn \fp_set:Nn {c} -\cs_generate_variant:Nn \fp_gset:Nn {c} +\cs_generate_variant:Nn \fp_set:Nn { NV , c , cV } +\cs_generate_variant:Nn \fp_gset:Nn { NV , c , cV } \cs_generate_variant:Nn \fp_const:Nn {c} \cs_new_eq:NN \fp_set_eq:NN \tl_set_eq:NN \cs_new_eq:NN \fp_gset_eq:NN \tl_gset_eq:NN @@ -32263,7 +32261,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \vcoffin_gset_end: { } \cs_new_protected:Npn \coffin_set_eq:NN #1#2 { - \__coffin_if_exist:NT #1 + \__coffin_if_exist:NT #2 { \box_set_eq:NN #1 #2 \prop_set_eq:cc { coffin ~ \__coffin_to_value:N #1 ~ corners } @@ -32275,7 +32273,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \coffin_set_eq:NN { c , Nc , cc } \cs_new_protected:Npn \coffin_gset_eq:NN #1#2 { - \__coffin_if_exist:NT #1 + \__coffin_if_exist:NT #2 { \box_gset_eq:NN #1 #2 \prop_gset_eq:cc { coffin ~ \__coffin_to_value:N #1 ~ corners } @@ -32296,6 +32294,8 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_eq:NN \coffin_dp:c \box_dp:c \cs_new_eq:NN \coffin_ht:N \box_ht:N \cs_new_eq:NN \coffin_ht:c \box_ht:c +\cs_new_eq:NN \coffin_ht_plus_dp:N \box_ht_plus_dp:N +\cs_new_eq:NN \coffin_ht_plus_dp:c \box_ht_plus_dp:c \cs_new_eq:NN \coffin_wd:N \box_wd:N \cs_new_eq:NN \coffin_wd:c \box_wd:c \cs_new_protected:Npn \__coffin_get_pole:NnN #1#2#3 @@ -33740,15 +33740,17 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_set:ce { l__codepoint_ #1 _block_tl } { \int_eval:n { \tl_use:c { l__codepoint_ #1 _block_tl } + 1 } } } - \prg_replicate:nn {#2} + \int_step_inline:nnn + { \tl_use:c { l__codepoint_ #1 _pos_tl } + 1 } + { \tl_use:c { l__codepoint_ #1 _pos_tl } + #2 } { - \tl_set:ce { l__codepoint_ #1 _pos_tl } - { \int_eval:n { \tl_use:c { l__codepoint_ #1 _pos_tl } + 1 } } \exp_args:Nc \__kernel_intarray_gset:Nnn { g__codepoint_ #1 _index_intarray } - { \tl_use:c { l__codepoint_ #1 _pos_tl } } + {##1} \l__codepoint_matched_block_tl } + \tl_set:ce { l__codepoint_ #1 _pos_tl } + { \int_eval:n { \tl_use:c { l__codepoint_ #1 _pos_tl } + #2 } } \clist_clear:c { l__codepoint_ #1 _block_clist } } \cs_set_protected:Npn \__codepoint_finalise_blocks: diff --git a/Master/texmf-dist/tex/latex-dev/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex-dev/l3kernel/expl3-generic.tex index 6f417c325c5..c0871d0daaa 100644 --- a/Master/texmf-dist/tex/latex-dev/l3kernel/expl3-generic.tex +++ b/Master/texmf-dist/tex/latex-dev/l3kernel/expl3-generic.tex @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2024-07-20}% +\def\ExplFileDate{2024-11-02}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 diff --git a/Master/texmf-dist/tex/latex-dev/l3kernel/expl3.ltx b/Master/texmf-dist/tex/latex-dev/l3kernel/expl3.ltx index 512497e7a09..3eb3a3d63cc 100644 --- a/Master/texmf-dist/tex/latex-dev/l3kernel/expl3.ltx +++ b/Master/texmf-dist/tex/latex-dev/l3kernel/expl3.ltx @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2024-07-20}% +\def\ExplFileDate{2024-11-02}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 diff --git a/Master/texmf-dist/tex/latex-dev/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex-dev/l3kernel/expl3.sty index 10c4ecbc700..15c04cee809 100644 --- a/Master/texmf-dist/tex/latex-dev/l3kernel/expl3.sty +++ b/Master/texmf-dist/tex/latex-dev/l3kernel/expl3.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2024-07-20}% +\def\ExplFileDate{2024-11-02}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [% diff --git a/Master/texmf-dist/tex/latex-dev/l3kernel/l3debug.def b/Master/texmf-dist/tex/latex-dev/l3kernel/l3debug.def index 000b6dcb41c..78d83046291 100644 --- a/Master/texmf-dist/tex/latex-dev/l3kernel/l3debug.def +++ b/Master/texmf-dist/tex/latex-dev/l3kernel/l3debug.def @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3debug.dtx -\ProvidesExplFile{l3debug.def}{2024-07-20}{}{L3 Debugging support} +\ProvidesExplFile{l3debug.def}{2024-11-02}{}{L3 Debugging support} \scan_new:N \s__debug_stop \cs_new:Npn \__debug_use_i_delimit_by_s_stop:nw #1 #2 \s__debug_stop {#1} \quark_new:N \q__debug_recursion_tail diff --git a/Master/texmf-dist/tex/latex-dev/l3kernel/l3doc.cls b/Master/texmf-dist/tex/latex-dev/l3kernel/l3doc.cls index 4d4876f5607..8edacf2f0c4 100644 --- a/Master/texmf-dist/tex/latex-dev/l3kernel/l3doc.cls +++ b/Master/texmf-dist/tex/latex-dev/l3kernel/l3doc.cls @@ -20,7 +20,7 @@ %% %% File: l3doc.dtx \RequirePackage{calc} -\ProvidesExplClass{l3doc}{2024-07-20}{} +\ProvidesExplClass{l3doc}{2024-11-02}{} {L3 Experimental documentation class} \clist_new:N \g_docinput_clist \seq_new:N \g_doc_functions_seq @@ -91,8 +91,8 @@ \bool_new:N \l__codedoc_in_implementation_bool \bool_new:N \g__codedoc_typeset_documentation_bool \bool_new:N \g__codedoc_typeset_implementation_bool -\bool_set_true:N \g__codedoc_typeset_documentation_bool -\bool_set_true:N \g__codedoc_typeset_implementation_bool +\bool_gset_true:N \g__codedoc_typeset_documentation_bool +\bool_gset_true:N \g__codedoc_typeset_implementation_bool \tl_new:N \g__codedoc_base_name_tl \prop_new:N \l__codedoc_variants_prop \clist_new:N \l__codedoc_function_label_clist @@ -439,12 +439,23 @@ \raggedbottom \bool_if:NT \g__codedoc_lmodern_bool { - \RequirePackage[T1]{fontenc} - \RequirePackage{lmodern} - \group_begin: - \ttfamily - \DeclareFontShape{T1}{lmtt}{m}{it}{<->ec-lmtto10}{} - \group_end: + \bool_lazy_or:nnTF + { \sys_if_engine_luatex_p: }{ \sys_if_engine_xetex_p: } + { + \group_begin: + \ttfamily + \DeclareFontShape{TU}{lmtt}{m}{it} + {<-> \UnicodeFontFile{lmmonoslant10-regular}{}}{} + \group_end: + } + { + \RequirePackage[T1]{fontenc} + \RequirePackage{lmodern} + \group_begin: + \ttfamily + \DeclareFontShape{T1}{lmtt}{m}{it}{<->ec-lmtto10}{} + \group_end: + } } \RequirePackage{hypdoc} \cs_gset:Npn \MakePrivateLetters @@ -789,17 +800,20 @@ \cs_generate_variant:Nn \__codedoc_get_hyper_target:nN { o , e } \cs_new_protected:Npn \__codedoc_names_get_seq:nN #1#2 { - \__kernel_tl_set:Nx \l__codedoc_tmpa_tl { \tl_to_str:n {#1} } \bool_if:NTF \l__codedoc_names_verb_bool { \seq_clear:N #2 - \seq_put_right:NV #2 \l__codedoc_tmpa_tl + \seq_put_right:No #2 { \tl_to_str:n {#1} } } { + \tl_set:Nn \l__codedoc_tmpa_tl {#1} \tl_remove_all:Ne \l__codedoc_tmpa_tl - { \iow_char:N \^^M \c_percent_str } + { \exp_not:N \obeyedline \c_percent_str } + \tl_remove_all:Ne \l__codedoc_tmpa_tl + { \exp_not:N \obeyedline } + \__kernel_tl_set:Nx \l__codedoc_tmpa_tl { \tl_to_str:N \l__codedoc_tmpa_tl } \tl_remove_all:Ne \l__codedoc_tmpa_tl - { \token_to_str:N \obeyedline \c_space_tl \c_percent_str } + { \iow_char:N \^^M \c_percent_str } \tl_remove_all:Ne \l__codedoc_tmpa_tl { \tl_to_str:n { ^ ^ A } } \tl_remove_all:Ne \l__codedoc_tmpa_tl { \iow_char:N \^^I } \tl_remove_all:Ne \l__codedoc_tmpa_tl { \iow_char:N \^^M } @@ -1023,7 +1037,7 @@ \cs_new_protected:Npn \__codedoc_function_typeset_stop: { \par - \dim_set:Nn \prevdepth { \box_dp:N \l__codedoc_descr_coffin } + \dim_set:Nn \prevdepth { \coffin_dp:N \l__codedoc_descr_coffin } \allowbreak } \cs_new_protected:Npn \__codedoc_function_init: @@ -1059,7 +1073,7 @@ \dim_zero:N \l__codedoc_trial_width_dim \hcoffin_set:Nn \l__codedoc_functions_coffin { \__codedoc_typeset_functions: } \dim_set:Nn \l__codedoc_trial_width_dim - { \box_wd:N \l__codedoc_functions_coffin } + { \coffin_wd:N \l__codedoc_functions_coffin } \bool_set:Nn \l__codedoc_long_name_bool { \dim_compare_p:nNn \l__codedoc_trial_width_dim > \marginparwidth } } @@ -1087,7 +1101,7 @@ \coffin_join:NnnNnnnn \l__codedoc_output_coffin {l} {b} \l__codedoc_descr_coffin {l} {t} - {0.75\marginparwidth + \marginparsep} {-\medskipamount} + {\marginparwidth + \marginparsep} {-\medskipamount} \coffin_typeset:Nnnnn \l__codedoc_output_coffin {\l__codedoc_descr_coffin-l} {\l__codedoc_descr_coffin-t} {0pt} {0pt} @@ -1136,7 +1150,6 @@ { \__codedoc_typeset_variant_list:nN {#1} #2 } \\ } -\cs_generate_variant:Nn \__codedoc_typeset_function_block:nN { e } \cs_new_protected:Npn \__codedoc_function_index:n #1 { \seq_gput_right:Nn \g_doc_functions_seq {#1} @@ -1234,7 +1247,7 @@ { \textwidth \bool_if:NT \l__codedoc_long_name_bool - { + 0.75 \marginparwidth - \l__codedoc_trial_width_dim } + { + \marginparwidth - \l__codedoc_trial_width_dim } } \hbox_gset:Nw \g__codedoc_syntax_box \small \ttfamily @@ -1789,7 +1802,7 @@ { \clist_map_inline:nn {#1} { - \clist_put_right:Nn \g_docinput_clist {##1} + \clist_gput_right:Nn \g_docinput_clist {##1} \__codedoc_input:n {##1} } } @@ -1883,7 +1896,7 @@ { MMMMV - \filesep \int_use:N \c@CodelineNo } } } -\tl_gclear:N \filesep +\tl_clear_new:N \filesep \cs_new_protected:Npn \__codedoc_index_page_hc:nn #1#2 { \protected@write \@indexfile {} @@ -2186,7 +2199,6 @@ {#2} \l__codedoc_index_internal_bool } -\cs_generate_variant:Nn \__codedoc_special_index:nn { o } \tl_new:N \l__codedoc_index_escaped_macro_tl \tl_new:N \l__codedoc_index_escaped_key_tl \cs_new_protected:Npn \__codedoc_special_index_module:nnnnN #1#2#3#4#5 diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/bib-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex-dev/latex-lab/bib-latex-lab-testphase.ltx index ee69798ec39..d0fb0b78fa5 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/bib-latex-lab-testphase.ltx +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/bib-latex-lab-testphase.ltx @@ -33,7 +33,7 @@ %% %% %% File: latex-lab-bib.dtx (C) Copyright 2023 LaTeX Project -\def\ltlabbibdate{2024-02-12} +\def\ltlabbibdate{2024-07-05} \def\ltlabbibversion{0.81b} \ProvidesFile{bib-latex-lab-testphase.ltx} [\ltlabbibdate\space v\ltlabbibversion\space diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/block-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex-dev/latex-lab/block-latex-lab-testphase.ltx index 937f08d1e1c..f48c2429104 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/block-latex-lab-testphase.ltx +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/block-latex-lab-testphase.ltx @@ -33,8 +33,8 @@ %% %% %% File: latex-lab-block.dtx (C) Copyright 2021-2024 LaTeX Project -\def\ltlabblockdate{2024-03-23} -\def\ltlabblockversion{0.8n} +\def\ltlabblockdate{2024-10-11} +\def\ltlabblockversion{0.8v} \ProvidesFile{block-latex-lab-testphase.ltx} [\ltlabblockdate\space v\ltlabblockversion\space blockenv implementation] diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/documentmetadata-support.ltx b/Master/texmf-dist/tex/latex-dev/latex-lab/documentmetadata-support.ltx index 91ae548e191..765755ee106 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/documentmetadata-support.ltx +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/documentmetadata-support.ltx @@ -33,8 +33,8 @@ %% %% %% File: documentmetadata-support.dtx -\def\documentmetadatasupportversion{1.0h} -\def\documentmetadatasupportdate{2024-03-26} +\def\documentmetadatasupportversion{1.0j} +\def\documentmetadatasupportdate{2024-09-13} \RequirePackage{pdfmanagement-testphase} @@ -44,12 +44,20 @@ { \clist_new:N \g__pdfmanagement_firstaidoff_clist } \tl_if_exist:NF \g__pdfmanagement_testphase_tl { \tl_new:N \g__pdfmanagement_testphase_tl } +\cs_new_protected:Npn \@kernel@before@DocumentMetadata + { + \ifx\Umathcode\@undefined + \fontencoding{T1} + \renewcommand\encodingdefault{T1} + \fi + } \cs_set_protected:Npn \DocumentMetadata #1 { \cs_if_eq:NNTF \documentclass \@twoclasseserror { \msg_error:nn { meta } { after-class } } { + \@kernel@before@DocumentMetadata \bool_gset_true:N \g__pdfmanagement_active_bool \keys_set_groups:nnn { document / metadata} {init}{ #1 } %if no backend has been loaded force it now: @@ -163,7 +171,7 @@ } ,_pdfstandard / unknown .code:n = { - \msg_warning:nnn{pdf}{unknown-standard}{#1} + \msg_error:nnn{pdf}{unknown-standard}{#1} } ,testphase .multichoice: ,testphase / tagpdf .code:n = diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/firstaid-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex-dev/latex-lab/firstaid-latex-lab-testphase.ltx index 7003ae1856d..aed5cf0cc79 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/firstaid-latex-lab-testphase.ltx +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/firstaid-latex-lab-testphase.ltx @@ -33,9 +33,8 @@ %% %% %% File: latex-lab-firstaid.dtx (C) Copyright 2023-2024 LaTeX Project -\def\ltlabfirstaiddate{2024-05-25} -\def\ltlabfirstaidversion{0.85d} - +\def\ltlabfirstaiddate{2024-10-16} +\def\ltlabfirstaidversion{0.85h} \ProvidesFile{firstaid-latex-lab-testphase.ltx} [\ltlabfirstaiddate\space v\ltlabfirstaidversion\space latex-lab wrapper firstaid] diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/float-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex-dev/latex-lab/float-latex-lab-testphase.ltx index 59fdaa63d95..1f8d3044969 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/float-latex-lab-testphase.ltx +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/float-latex-lab-testphase.ltx @@ -33,8 +33,8 @@ %% %% %% File: latex-lab-float.dtx (C) Copyright 2023 LaTeX Project -\def\ltlabfloatdate{2024-03-23} -\def\ltlabfloatversion{0.81e} +\def\ltlabfloatdate{2024-09-20} +\def\ltlabfloatversion{0.81f} \ProvidesFile{float-latex-lab-testphase.ltx} [\ltlabfloatdate\space v\ltlabfloatversion\space latex-lab wrapper float] diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/graphic-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex-dev/latex-lab/graphic-latex-lab-testphase.ltx index 3cc259063d4..30d6cd9efd0 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/graphic-latex-lab-testphase.ltx +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/graphic-latex-lab-testphase.ltx @@ -33,8 +33,8 @@ %% %% %% File: latex-lab-graphic.dtx (C) Copyright 2022-2024 LaTeX Project -\def\ltlabgraphicdate{2024-03-13} -\def\ltlabgraphicversion{0.80d} +\def\ltlabgraphicdate{2024-09-18} +\def\ltlabgraphicversion{0.80e} \ProvidesFile{graphic-latex-lab-testphase.ltx} [\ltlabgraphicdate\space v\ltlabgraphicversion\space latex-lab wrapper graphic] diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-amsmath.ltx b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-amsmath.ltx index cab7e10f301..0ca17cffdce 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-amsmath.ltx +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-amsmath.ltx @@ -34,7 +34,7 @@ %% %% File: latex-lab-amsmath.dtx \ProvidesFile{latex-lab-amsmath.ltx} - [2024-02-12 v0.1b amsmath adaptions] + [2024-09-18 v0.1c amsmath adaptions] \RequirePackage{tagpdf-base} \ExplSyntaxOn \AddToHook{package/amsmath/after} @@ -45,7 +45,7 @@ \noalign{% \penalty\postdisplaypenalty\vskip-\belowdisplayskip \vbox{ - \ifmeasuring@\tag_stop:\fi + \ifmeasuring@\tag_suspend:n{\measuring}\fi \normalbaselines \ifdim\linewidth=\columnwidth \else \parshape\@ne \@totalleftmargin \linewidth @@ -84,7 +84,7 @@ \def\text@#1 {{ \int_gincr:N\g__math_mathchoice_int - \tag_stop: + \tag_suspend:n{\text@} \mathchoice { \__math_tag_if_mathstyle:en{mathchoice-\int_use:N\g__math_mathchoice_int}{0} diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-footmisc.ltx b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-footmisc.ltx index 954efe086a5..3fb53a3934a 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-footmisc.ltx +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-footmisc.ltx @@ -33,8 +33,8 @@ %% %% %% File: latex-lab-footnotes.dtx -\def\ltlabfootnotedate{2024-03-12} -\def\ltlabfootnoteversion{0.8d} +\def\ltlabfootnotedate{2024-09-30} +\def\ltlabfootnoteversion{0.8g} %% %% Copyright (c) 1995-2011 Robin Fairbairns diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-footnotes.ltx b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-footnotes.ltx index 2277a40c6f8..85a3b2b32a7 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-footnotes.ltx +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-footnotes.ltx @@ -33,8 +33,8 @@ %% %% %% File: latex-lab-footnotes.dtx -\def\ltlabfootnotedate{2024-03-12} -\def\ltlabfootnoteversion{0.8d} +\def\ltlabfootnotedate{2024-09-30} +\def\ltlabfootnoteversion{0.8g} \ProvidesFile{latex-lab-footnotes.ltx} [\ltlabfootnotedate\space v\ltlabfootnoteversion\space @@ -57,7 +57,7 @@ \bool_new:N \l__fnote_autodetect_bool \bool_set_true:N \l__fnote_autodetect_bool \tl_new:N \l__fnote_currentstruct_tl -\tl_set:Nn \l__fnote_currentstruct_tl {1} +\tl_set:Nn \l__fnote_currentstruct_tl {2} \cs_generate_variant:Nn \hook_gput_code:nnn{nne} \cs_generate_variant:Nn \tag_struct_use:n {e} \cs_new_protected:Npn \fnote_step_fnmark:nn #1#2 { @@ -157,6 +157,17 @@ \cs_new_eq:NN \__fnote_footnotemark_finish: \__fnote_footnotemark_default_finish: \NewSocket{tagsupport/fnmark}{1} \cs_set_eq:NN \@footnotemark \fnote_footnotemark: +\str_if_exist:cF { l__socket_tagsupport/para/restore_plug_str } + { + \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 + } + \AssignSocketPlug{tagsupport/para/restore}{default} + } \cs_new_protected:Npn \fnote_footnotetext:n #1 { \__fnote_debug_footnotetext: \hook_use:n {fntext/before} @@ -172,6 +183,7 @@ \floatingpenalty \@MM \hsize\columnwidth \@parboxrestore + \UseTaggingSocket{para/restore} \parindent 1em % typical default used in \@makefntext moved up here \def\@currentcounter{footnote} \protected@edef \@currentlabel { \p@footnote \@thefnmark } @@ -454,10 +466,7 @@ \cs_new_protected:Npn \__fnote_gput_ref:nn #1 #2 %#1 the structure number receiving the ref #2 { - \tag_if_active:T - { - \tag_struct_gput:nne {#1}{ref}{\tag_struct_object_ref:e { #2 }} - } + \tag_struct_gput:nnn {#1}{ref_num}{#2} } \cs_new_protected:Npn \fnote_gput_refs:nn #1 #2 % pair of numbers { @@ -465,8 +474,6 @@ \__fnote_gput_ref:nn {#2}{#1} } \cs_generate_variant:Nn \fnote_gput_refs:nn {ee} -\tl_new:N \l__fnote_dflt_struct_tl -\tl_set:Nn \l__fnote_dflt_struct_tl {1} \NewSocketPlug{tagsupport/fntext/begin}{FENote} { \tag_mc_end_push: @@ -475,10 +482,13 @@ \tag_struct_begin:n { tag=footnote } } { - \tag_struct_begin:n { tag=footnote,parent=\l__fnote_dflt_struct_tl } + \tag_struct_begin:n + { + tag=footnote, + parent=\int_max:nn{2}{\tag_get:n{current_Sect}+0} + } } \tl_set:Ne \l__fnote_currentstruct_tl { \tag_get:n{struct_num} } - \tag_struct_begin:n { tag=footnotelabel }\tag_struct_end: \bool_if:NTF \l__fnote_autodetect_bool { \fnote_mark_gpop_all:ooN { \@thefnmark }{ \l_fnote_type_tl } \l__fnote_currentrefs_seq @@ -505,7 +515,7 @@ %\seq_show:N\l__fnote_currentrefs_seq \seq_map_inline:Nn\l__fnote_currentrefs_seq {\MakeLinkTarget*{footnote*.##1}} \MakeLinkTarget*{footnote*.\l__fnote_currentstruct_tl} - \tag_struct_begin:n { tag=NonStruct,parent=\l__fnote_currentstruct_tl +1 } + \tag_struct_begin:n { tag=footnotelabel,parent=\l__fnote_currentstruct_tl,firstkid } \tag_mc_begin:n { tag=Lbl } #1 \tag_mc_end: diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-kernel-changes.sty b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-kernel-changes.sty index 1282f9d899c..762391f091f 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-kernel-changes.sty +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-kernel-changes.sty @@ -34,39 +34,13 @@ %% %% %% File: latex-lab-toc-kernel-changes.dtx (C) Copyright 2022-2024 LaTeX Project -\def\ltlabkerneldate{2024-02-12} -\def\ltlabkernelversion{0.85c} +\def\ltlabkerneldate{2024-07-11} +\def\ltlabkernelversion{0.85d} \ProvidesPackage{latex-lab-kernel-changes} [\ltlabkerneldate\space v\ltlabkernelversion\space General kernel and class changes] \def\hyper@nopatch@counter{} -\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\gdef\csname theH#1\endcsname{\the\value{#1}}%new - \expandafter - \gdef\csname the#1\expandafter\endcsname\expandafter - {\expandafter\@arabic\csname c@#1\endcsname}} -\def\@addtoreset#1#2{\expandafter\@cons\csname cl@#2\endcsname {{#1}}% - \expandafter\gdef\csname theH#1\endcsname{\csname theH#2\endcsname.\the\value{#1}}% -} -\gdef\theHenumi{\the\value{enumi}} -\gdef\theHenumii{\the\value{enumii}} -\gdef\theHenumiii{\the\value{enumiii}} -\gdef\theHenumiv{\the\value{enumiv}} -\gdef\theHequation{\the\value{equation}} -\gdef\theHfootnote{\the\value{footnote}} -\gdef\theHmpfootnote{\the\value{mpfootnote}} -\def\@currentHref{} -\def\refstepcounter#1{\stepcounter{#1}% - \edef\@currentcounter{#1}% - \xdef\@currentHref {#1.\csname theH#1\endcsname}% - \protected@edef\@currentlabel - {\csname p@#1\expandafter\endcsname\csname the#1\endcsname}% -} -\let\@kernel@refstepcounter\refstepcounter + \def\toclevel@document{-10} \def\toclevel@part{-1} \def\toclevel@chapter{0} @@ -78,20 +52,23 @@ \def\toclevel@figure{1} \def\toclevel@table{1} \ExplSyntaxOn -\AddToHookWithArguments{cmd/MakeLinkTarget/after} - { - \tag_if_active:T - { - \tl_if_blank:VF \@currentHref - { - \prop_gput:Nee \g__tag_struct_dest_num_prop {\@currentHref}{\tag_get:n{struct_num}} - } - } +\str_if_exist:cF { l__socket_tagsupport/recordtarget_str } + { + \AddToHookWithArguments{cmd/MakeLinkTarget/after} + { + \tag_if_active:T + { + \tl_if_blank:VF \@currentHref + { + \prop_gput:Nee \g__tag_struct_dest_num_prop {\@currentHref}{\tag_get:n{struct_num}} + } + } + } } \ExplSyntaxOff %% File: latex-lab-sec.dtx (C) Copyright 2022-2024 LaTeX Project -\def\ltlabsecdate{2024-02-12} -\def\ltlabsecversion{0.84c} +\def\ltlabsecdate{2024-10-04} +\def\ltlabsecversion{0.84f} \ifdefined\directlua \ifnum\outputmode > 0 \pdfvariable gentounicode =1 @@ -104,23 +81,26 @@ \input{glyphtounicode-cmex} \fi \ExplSyntaxOn -\int_new:N\g__kernel_target_int -\RenewDocumentCommand\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} +\str_if_exist:cF { l__socket_tagsupport/recordtarget_plug_str } + { + \int_new:N\g__kernel_target_int + \RenewDocumentCommand\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} + } } } \ExplSyntaxOff diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-math.ltx b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-math.ltx index 343a184d379..1064a98ee32 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-math.ltx +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-math.ltx @@ -33,8 +33,8 @@ %% %% %% File: latex-lab-math.dtx -\def\ltlabmathdate{2024-04-16} -\def\ltlabmathversion{0.5j} +\def\ltlabmathdate{2024-10-25} +\def\ltlabmathversion{0.6i} \ProvidesFile{latex-lab-math.ltx} [\ltlabmathdate\space v\ltlabmathversion\space @@ -48,6 +48,7 @@ \tl_new:N \g__math_grabbed_math_tl \tl_new:N \l__math_tmpa_tl \skip_new:N \l__math_tmpa_skip +\str_new:N \l__math_tmpa_str \tl_new:N \l__math_content_alt_tl \tl_new:N \l__math_content_actual_tl \tl_new:N \l__math_content_AF_source_tl @@ -74,14 +75,16 @@ \bool_new:N\g__tag_math_mathml_AF_bool \bool_new:N\l__tag_math_mathml_pane_bool \bool_new:N\l__tag_math_alt_bool +\tl_new:N\g__tag_math_luamml_tl +\tl_gset:Nn\g__tag_math_luamml_tl {0} \int_new:N\g__math_mathml_total_int \int_new:N\g__math_mathml_int \int_new:N\g__math_math_total_int \int_new:N\g__math_mathml_AF_found_int \int_new:N\g__math_mathml_AF_attached_int \clist_new:N\l__tag_math_mathml_files_clist -\clist_put_right:Ne\l__tag_math_mathml_files_clist {\c_sys_jobname_str-mathml} - +\clist_put_right:Ne\l__tag_math_mathml_files_clist + {\c_sys_jobname_str-mathml,\c_sys_jobname_str-luamml-mathml} \cs_new_protected:Npn \__math_AF_mml:nnnn #1 #2 #3 #4 { \int_gincr:N \g__math_mathml_total_int @@ -108,28 +111,295 @@ \endgroup \__math_AF_mml:nnnn{#1}{#2}{#3}{#4} } +\tl_const:Nn \c__math_mathml_write_init_tl + { + <!DOCTYPE~html> + \iow_newline: + <html> + \iow_newline: + } +\tl_new:N \l__math_mathml_write_before_tl +\tl_const:Nn \c__math_mathml_write_after_tl + { + \iow_newline: + </div> + \iow_newline: + } +\tl_const:Nn \c__math_mathml_write_final_tl + { + </html> + } -\socket_new:nn {tagsupport/math/mathml/write}{0} -\socket_new_plug:nnn{tagsupport/math/mathml/write}{On} - { +\socket_new:nn {tagsupport/math/mathml/write/prepare}{0} +\socket_new_plug:nnn{tagsupport/math/mathml/write/prepare}{On} + { \str_set:NV\l__math_tmpa_str\l__math_content_AF_source_tl \str_replace_all:Nnn\l__math_tmpa_str{&}{&} \str_replace_all:Nnn\l__math_tmpa_str{<}{<} + \tl_set:Nn \l__math_mathml_write_before_tl + { + <div> + \iow_newline: + <h2>\c_backslash_str mml\c_space_tl \int_use:N \g__math_math_total_int </h2> + \iow_newline: + <p>\l__math_tmpa_str</p> + \iow_newline: + <p>\l__math_content_hash_tl </p> + \iow_newline: + } + } +\cs_new_protected:Npn\__math_provide_luamml_commands: + { + \providecommand\luamml_flag_structelem:{} + \cs_if_free:NT \luamml_structelem: + { + \cs_set_eq:NN\luamml_structelem:\luamml_flag_structelem: + } + \providecommand\luamml_flag_process:{} + \cs_if_free:NT \luamml_process: + { + \cs_set_eq:NN\luamml_process:\luamml_flag_process: + } + \providecommand\luamml_flag_ignore:{} + \cs_if_free:NT \luamml_ignore: + { + \cs_set_eq:NN\luamml_ignore:\luamml_flag_ignore: + } + } +\sys_if_engine_luatex:TF + { + \cs_new_protected:Npn \__math_correct_luamml_array_patches: + { + \AddToHook{package/array/after} + { + \cs_set:Npn \endarray + { + \tbl_crcr:n{endarray} + \__luamml_array_save_array: + \egroup + \UseTaggingSocket{tbl/finalize} + \tbl_restore_outer_cell_data: + \egroup + \mode_if_math:T { \__luamml_array_finalize_array: } + \@arrayright + \gdef \@preamble {} + } + \cs_set:Npn \@classz + { + \@classx + \@tempcnta \count@ + \prepnext@tok + \@addtopreamble { + \ifcase \@chnum + \hfil + \hskip 1sp + \d@llarbegin + \cs_if_eq:NNTF \d@llarbegin \begingroup { + \insert@column + \d@llarend + } { + \__luamml_array_init_col: + \insert@column + \luamml_flag_save:nn {} {mtd} + \d@llarend + \__luamml_array_finalize_col:w 0~ + } + \do@row@strut + \hfil + \or + \hskip 1sp + \d@llarbegin + \cs_if_eq:NNTF \d@llarbegin \begingroup { + \insert@column + \d@llarend + } { + \__luamml_array_init_col: + \insert@column + \luamml_flag_save:nn {} {mtd} + \d@llarend + \__luamml_array_finalize_col:w 1~ + } + \do@row@strut + \hfil + \or + \hfil + \hskip 1sp + \d@llarbegin + \cs_if_eq:NNTF \d@llarbegin \begingroup { + \insert@column + \d@llarend + } { + \__luamml_array_init_col: + \insert@column + \luamml_flag_save:nn {} {mtd} + \d@llarend + \__luamml_array_finalize_col:w 2~ + } + \do@row@strut + \or + \setbox \ar@mcellbox \vbox \@startpbox { \@nextchar } + \insert@pcolumn + \@endpbox + \ar@align@mcell + \do@row@strut + \or + \vtop \@startpbox { \@nextchar } + \insert@pcolumn + \@endpbox + \do@row@strut + \or + \vbox \@startpbox { \@nextchar } + \insert@pcolumn + \@endpbox + \do@row@strut + \fi + } + \prepnext@tok + } + } + } + \AddToHook{begindocument/before} + { + \str_case:on \g__math_luamml_load_tl + { + { 1 } { + \RequirePackage { luamml } + \__math_correct_luamml_array_patches: + \AddToHook{begindocument/end} + { + \__math_luamml_activate_write: + } + } + {-1 } { + \AddToHook{begindocument/end} + { + \msg_note:nnnn { tag } + { luamml-status }{ disabled }{ not~create } + } + } + { 0 } + { + \@ifpackageloaded { unicode-math } + { + \RequirePackage { luamml } + \__math_correct_luamml_array_patches: + \AddToHook{begindocument/end} + { + \__math_luamml_activate_write: + } + } + { \msg_warning:nn { tag }{ unicode-math-missing } } + } + } + \__math_provide_luamml_commands: + } + } + { + \__math_provide_luamml_commands: + } +\msg_new:nnn { tag }{ luamml-status } + { + luamml~has~been~#1~and~will~#2~an~MathML~file. + } + +\msg_new:nnn { tag }{ unicode-math-missing } + { + The~package~unicode-math~is~missing\\ + luamml~will~not~create~an~MathML~file.\\ + To~avoid~this~warning~load~unicode-math~\\ + or~disable~luamml~with~\\ + \tl_to_str:n{\tagpdfsetup{math/mathml/luamml/load=false}}\\ + or~force~luamml~with~\\ + \tl_to_str:n{\tagpdfsetup{math/mathml/luamml/load=true}} + } +\cs_new_protected:Npn \__math_luamml_activate_write: + { + \bool_if:NT \g__math_luamml_write_bool + { + \bool_gset_true:N\g__tag_math_mathml_AF_bool + \AssignSocketPlug{tagsupport/math/struct/begin}{mathml-AF} + \AssignSocketPlug{tagsupport/math/struct/end}{mathml-AF} + \AssignSocketPlug{tagsupport/math/substruct/begin}{single} + \AssignSocketPlug{tagsupport/math/substruct/end}{single} + \int_set:Nn \l__luamml_pretty_int { 7 } + \RegisterFamilyMapping\symsymbols{oms} + \RegisterFamilyMapping\symletters{oml} + \AssignSocketPlug{tagsupport/math/mathml/write/prepare}{On} + \iow_new:N \g__math_luamml_iow + \iow_open:Nn \g__math_luamml_iow {\c_sys_jobname_str-luamml-mathml.html} + \iow_now:Ne \g__math_luamml_iow { \c__math_mathml_write_init_tl } + \cs_new:Npn \__math_luamml_output_hook:n ##1 + { + \tl_if_empty:NF \l__math_mathml_write_before_tl + { + \iow_now:Ne \g__math_luamml_iow + { + \l__math_mathml_write_before_tl + ##1 + \c__math_mathml_write_after_tl + } + } + } + \__luamml_register_output_hook:N \__math_luamml_output_hook:n + \AddToHook{enddocument/afterlastpage} + { + \iow_now:Ne \g__math_luamml_iow + { \c__math_mathml_write_final_tl } + \iow_close:N \g__math_luamml_iow + } + \msg_note:nnnn { tag } + { luamml-status }{ enabled }{ create } + } + } +\tl_new:N \g__math_luamml_load_tl +\tl_gset:Nn \g__math_luamml_load_tl {0} +\bool_new:N \g__math_luamml_write_bool +\bool_gset_true:N \g__math_luamml_write_bool +\msg_new:nnn { tag }{ PDF-2.0-recommended } + { + The~key~#1~will~not~work~properly~with~PDF~#2.\\ + Switching~to~PDF~2.0~is~recommended. + } +\keys_define:nn { __tag / setup } + { + math/mathml/luamml/load .choice: , + math/mathml/luamml/load/true .code:n = {\tl_gset:Nn \g__math_luamml_load_tl{1}}, + math/mathml/luamml/load/false .code:n = {\tl_gset:Nn \g__math_luamml_load_tl{-1}}, + math/mathml/luamml/load .default:n = true, + math/mathml/luamml/load .usage:n=preamble, + math/mathml/structelem .code:n = + { + \pdf_version_compare:NnT < {2.0} + { + \msg_warning:nnne { tag }{ PDF-2.0-recommended } + { math/mathml/structelem }{ \pdf_version: } + } + \AddToHook{begindocument/end}{\luamml_structelem:} + }, + math/mathml/ignore .code:n = {\luamml_ignore:}, + math/mathml/luamml/write .choice:, + math/mathml/luamml/write/true .code:n = + { + \tl_gset:Nn \g__math_luamml_load_tl{1} + \bool_gset_true:N \g__math_luamml_write_bool + }, + math/mathml/luamml/write/false .code:n = + { + \bool_gset_false:N \g__math_luamml_write_bool + }, + math/mathml/luamml/write .default:n = true, + math/mathml/luamml/write .usage:n=preamble, + math/mathml/luamml .bool_gset:N = \g__math_luamml_write_bool, + math/mathml/luamml .usage:n=preamble + } +\socket_new:nn {tagsupport/math/mathml/write}{0} +\socket_new_plug:nnn{tagsupport/math/mathml/write}{On} + { \iow_now:Ne \g__math_writedummy_iow { - \iow_newline: - <div> - \iow_newline: - <h2>\c_backslash_str mml\c_space_tl \int_use:N \g__math_math_total_int </h2> - \iow_newline: - <p>\l__math_tmpa_str</p> - \iow_newline: - <p>\l__math_content_hash_tl </p> - \iow_newline: + \l__math_mathml_write_before_tl <math></math> - \iow_newline: - </div> - \iow_newline: + \c__math_mathml_write_after_tl } } @@ -147,14 +417,14 @@ } \iow_now:Ne \g__math_writedummy_iow { - <!DOCTYPE~html> - \iow_newline: - <html> + \c__math_mathml_write_init_tl } + \AssignSocketPlug {tagsupport/math/mathml/write/prepare}{On} \AssignSocketPlug {tagsupport/math/mathml/write}{On} \AddToHook{enddocument/afterlastpage} { - \iow_now:Nn \g__math_writedummy_iow {</html>} + \iow_now:Ne \g__math_writedummy_iow + { \c__math_mathml_write_final_tl } \iow_close:N \g__math_writedummy_iow } } @@ -188,8 +458,8 @@ \bool_if:NT\g__tag_math_mathml_AF_bool { \typeout{Info:~Activating~mathml~support} - \AssignSocketPlug{tagsupport/math/struct/begin}{test-mathml} - \AssignSocketPlug{tagsupport/math/struct/end}{test-mathml} + \AssignSocketPlug{tagsupport/math/struct/begin}{mathml-AF} + \AssignSocketPlug{tagsupport/math/struct/end}{mathml-AF} \AssignSocketPlug{tagsupport/math/substruct/begin}{single} \AssignSocketPlug{tagsupport/math/substruct/end}{single} \AddToHook{enddocument/info} @@ -220,13 +490,13 @@ \int_set:Nn \l__math_mathstyle_int {#2} \property_record:nn {#1} { mathstyle } \int_compare:nNnTF { \property_ref:nn {#1}{ mathstyle} } = { #2 } - { \tag_start: }{ \tag_stop: } + { \tag_resume:n{\mathchoice} }{ \tag_suspend:n{\mathchoice} } } \cs_generate_variant:Nn \__math_tag_if_mathstyle:nn {en} \keys_define:nn { __tag / setup } { math/mathml/sources .clist_set:N = \l__tag_math_mathml_files_clist, - math/alt/use .bool_set:N = \l__tag_math_alt_bool, + math/alt/use .bool_set:N = \l__tag_math_alt_bool, viewer/pane/mathml .bool_set:N = \l__tag_math_mathml_pane_bool, viewer/pane/mathml .initial:n = true, viewer/pane/mathsource .bool_set:N = \l__tag_math_texsource_pane_bool, @@ -235,6 +505,23 @@ math/tex/AF .bool_set:N = \l__tag_math_texsource_AF_bool, math/tex/AF .initial:n = true } +\AddToHook{begindocument/end} + { + \str_if_eq:eeT + {1} + { + \exp_last_unbraced:Ne\use_i:nn + {\GetDocumentProperties{document/pdfstandard-UA}} + \c_empty_tl\c_empty_tl + } + { + \bool_if:NF \l__tag_math_alt_bool + { + \typeout{PDF/UA-1~detected.~Enabling~alt~text~on~Formula} + } + \bool_set_true:N\l__tag_math_alt_bool + } + } \socket_new:nn {tagsupport/math/inline/begin}{0} \socket_new:nn {tagsupport/math/inline/end}{0} \socket_new:nn {tagsupport/math/inline/formula/begin}{1} % @@ -250,13 +537,13 @@ \socket_new_plug:nnn {tagsupport/math/inline/formula/begin} {default} - { - \socket_use:n{tagsupport/math/content} - \socket_use:n{tagsupport/math/struct/begin} + { \tagpdfparaOff + \tag_socket_use:n{math/content} + \tag_socket_use:n{math/struct/begin} % inner formula if multiple parts (not really implemented yet) - \socket_use:n{tagsupport/math/substruct/begin} + \tag_socket_use:n{math/substruct/begin} #1 - \socket_use:n{tagsupport/math/end} + \tag_socket_use:n{math/end} } \socket_new_plug:nnn {tagsupport/math/inline/formula/end} @@ -284,11 +571,11 @@ {tagsupport/math/display/formula/begin} {default} { - \socket_use:n{tagsupport/math/content} - \socket_use:n{tagsupport/math/struct/begin} - \socket_use:n{tagsupport/math/substruct/begin} + \tag_socket_use:n{math/content} + \tag_socket_use:n{math/struct/begin} + \tag_socket_use:n{math/substruct/begin} #1 - \socket_use:n{tagsupport/math/end} + \tag_socket_use:n{math/end} } \socket_new_plug:nnn {tagsupport/math/display/formula/end} @@ -367,9 +654,19 @@ \bool_if:NTF\l__tag_math_texsource_AF_bool { \tl_set_eq:NN \l__math_content_AF_source_tmpa_tl \l__math_content_AF_source_tl } { \tl_clear:N \l__math_content_AF_source_tmpa_tl } + \tl_if_eq:NnTF\g__math_grabbed_env_tl {math} + { + \tl_set:Nn\l__math_attribute_class_tl{inline} + } + { + \tl_set:Nn\l__math_attribute_class_tl{display} + } + \bool_if:NF\l__tag_math_alt_bool + { \tl_set:Nn \l__math_content_alt_tl{} } \tag_struct_begin:n { tag=Formula, + attribute-class=\l__math_attribute_class_tl, texsource = \l__math_content_AF_source_tmpa_tl, title-o = \g__math_grabbed_env_tl, actualtext = \l__math_content_actual_tl, @@ -388,7 +685,7 @@ \tl_new:N\l__math_grabbed_math_tl \socket_new_plug:nnn {tagsupport/math/struct/begin} - {test-mathml} + {mathml-AF} { \int_gincr:N\g__math_math_total_int \tl_set:Ne\l__math_content_hash_tl @@ -404,20 +701,24 @@ \bool_if:NF\l__tag_math_alt_bool { \tl_set:Nn \l__math_content_alt_tl{} } \tl_if_exist:cTF { g__math_mathml_ \l__math_content_hash_tl _tl } - { - \int_gincr:N\g__math_mathml_AF_found_int - \bool_if:NTF \l__tag_math_mathml_AF_bool - { - \int_gincr:N\g__math_mathml_AF_attached_int - \typeout {Inserting~mathml~with~Hash~\l__math_content_hash_tl} - } - { - \typeout {Ignoring~mathml~with~Hash~\l__math_content_hash_tl} - } - } - { - \typeout{WARNING:~mathml~missing~for~hash~\l__math_content_hash_tl} - } + { + \int_gincr:N\g__math_mathml_AF_found_int + \bool_if:NTF \l__tag_math_mathml_AF_bool + { + \int_gincr:N\g__math_mathml_AF_attached_int + \typeout {Inserting~mathml~with~Hash~\l__math_content_hash_tl} + } + { + \typeout {Ignoring~mathml~with~Hash~\l__math_content_hash_tl} + } + } + { + \bool_if:NT \l__tag_math_mathml_AF_bool + { + \typeout {WARNING:~mathml~missing~for~hash~\l__math_content_hash_tl} + } + } + \socket_use:n {tagsupport/math/mathml/write/prepare} \socket_use:n {tagsupport/math/mathml/write} % write hash if request \bool_if:NTF\l__tag_math_texsource_AF_bool { \tl_set_eq:NN \l__math_content_AF_source_tmpa_tl \l__math_content_AF_source_tl } @@ -438,7 +739,7 @@ } \socket_new_plug:nnn {tagsupport/math/struct/end} - {test-mathml} + {mathml-AF} { \tag_struct_end: } @@ -516,35 +817,39 @@ \cs_new_protected:Npn \__math_process_auxii:nn #1#2 { } \cs_new_protected:Npn \math_processor:n #1 { \cs_set_protected:Npn \__math_process_auxii:nn ##1##2 {#1} } -\cs_new_protected:Npn \__math_grab_dollar:w % $ - #1 $ +\cs_new_protected:Npn \__math_grab_dollar:w { \__math_grab_dollar_delim:w } +\cs_new_protected:Npn \__math_grab_dollar:n #1 { - \tl_if_blank:nF {#1} - { - \__math_process:nn { math } {#1} % $ - \bool_lazy_or:nnTF - {\legacy_if_p:n { measuring@ }} - { \l__math_fakemath_bool } - { #1 $ } + \__math_process:nn { math } {#1} + \bool_lazy_any:nTF + { + {\legacy_if_p:n { measuring@ }} + { \l__math_fakemath_bool } + { \tl_if_blank_p:n {#1} } + } + { + #1 $ % $ + } { \tag_socket_use:n {math/inline/begin} %end P-MC - \tag_socket_use:nn {math/inline/formula/begin}{#1} - $ + \socket_use:nn {tagsupport/math/inline/formula/begin}{#1} + $ % $ \tag_socket_use:n {math/inline/formula/end} \tag_socket_use:n {math/inline/end} % restart P-MC } - } } +\cs_new_protected:Npn \__math_grab_dollar_delim:w #1 $ % $ + { \__math_grab_dollar:n {#1} } \cs_new_protected:Npn \__math_grab_dollardollar:w % $$ #1 $$ { \tl_if_blank:nF {#1} { \__math_process:nn { equation* } {#1} - \socket_use:n {tagsupport/math/display/begin} + \tag_socket_use:n {math/display/begin} \socket_use:nn{tagsupport/math/display/formula/begin}{#1} - $$ } + $$ } \cs_new_protected:Npn \__math_tag_dollardollar_display_end: { @@ -553,9 +858,11 @@ \para_raw_end: \tagpdfparaOn \l__math_tmpa_skip \lastskip - \socket_use:n{tagsupport/math/display/formula/end} + \tag_socket_use:n{math/display/formula/end} + \nobreak + \skip_vertical:n { -\l__math_tmpa_skip } % remove the negative belowdisplayskip \penalty \postdisplaypenalty - \skip_vertical:n { -\l__math_tmpa_skip * 2 } + \skip_vertical:n { -\l__math_tmpa_skip } % insert the correct skip \@doendpe % this has no \end{...} to take care of it } @@ -573,6 +880,82 @@ { \begin { equation* } #1 \end { equation* } } +\tl_new:N \l__math_grabbed_tl +\int_new:N \l__math_grab_env_int +\cs_new_protected:Npn \__math_grab_dollar_loop: + { + \group_begin: + \tl_clear:N \l__math_grabbed_tl + \__math_grab_loop: + } +\cs_new_protected:Npn \__math_grab_loop: + { + \peek_remove_spaces:n + { + \peek_meaning:NTF \c_group_begin_token + { \__math_grab_loop_group:n } + { \__math_grab_loop_token:N } + } + } +\cs_new_protected:Npn \__math_grab_loop_group:n #1 + { \__math_grab_loop_store:n { {#1} } } +\cs_new_protected:Npn \__math_grab_loop_store:n #1 + { + \tl_put_right:Nn \l__math_grabbed_tl {#1} + \__math_grab_loop: + } +\cs_new_protected:Npn \__math_grab_loop_token:N #1 + { + \cs_if_exist_use:cF + { __math_grab_loop_ \token_to_str:N #1 : } + { \__math_grab_loop_store:n {#1} } + } +\cs_new_protected:cpn { __math_grab_loop_ \token_to_str:N $ : } + { \__math_grab_loop_end: } +\cs_new_protected:cpn { __math_grab_loop_ \token_to_str:N \\ : } + { + \int_compare:nNnTF \l__math_grab_env_int = 0 + { \__math_grab_loop_newline: } + { \__math_grab_loop_store:n { \\ } } + } +\cs_new_protected:cpn { __math_grab_loop_ \token_to_str:N \begin : } + { + \int_incr:N \l__math_grab_env_int + \__math_grab_loop_store:n { \begin } + } +\cs_new_protected:cpn { __math_grab_loop_ \token_to_str:N \end : } + { + \int_compare:nNnTF \l__math_grab_env_int = 0 + { + \__math_grab_loop_newline: + \end + } + { + \int_decr:N \l__math_grab_env_int + \__math_grab_loop_store:n { \end } + } + } +\tl_map_inline:nn { \ignorespaces \unskip \textonly@unskip } + { + \cs_new_protected:cpn { __math_grab_loop_ \token_to_str:N #1 : } + { \__math_grab_loop: } + } +\cs_new_protected:Npn \__math_grab_loop_newline: + { + \if_false: { \fi: + \cs_set_protected:Npn \cr + { + \__math_grab_loop: + \tex_cr:D + } + \if_false: } \fi: + \\ + } +\cs_new_protected:Npn \__math_grab_loop_end: + { + \exp_args:NNV \group_end: + \__math_grab_dollar:n \l__math_grabbed_tl + } \tl_new:N \l__math_env_name_tl \keys_define:nn { __math } { @@ -781,6 +1164,7 @@ \bool_set_false:N \l__math_collected_bool \col@sep\tabcolsep \let\d@llarbegin\begingroup \let\d@llarend\endgroup + \cs_set_protected:Npn \__math_grab_dollar:w { \__math_grab_dollar_loop: } \@tabarray} } \cs_new_eq:NN \__math_m@th: \m@th @@ -870,7 +1254,7 @@ \iftagsleft@ \@xp\lendmultline@ \else \@xp\rendmultline@ \fi \ignorespacesafterend } -\def\measuring@true{\let\ifmeasuring@\iftrue\tag_stop:} +\def\measuring@true{\let\ifmeasuring@\iftrue\tag_suspend:n{\measuring}} \math_register_halign_env:nn {align}{} \math_register_halign_env:nn {align*}{} \math_register_halign_env:nn {alignat}{} diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-mathtools.ltx b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-mathtools.ltx index 43663b8f9ef..ec0624be4d6 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-mathtools.ltx +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-mathtools.ltx @@ -33,8 +33,10 @@ %% %% %% File: latex-lab-mathtools.dtx +\def\ltlabmathtoolsdate{2024-09-18} +\def\ltlabmathtoolsversion{0.80a} \ProvidesFile{latex-lab-mathtools.ltx} - [2023-01-05 v0.1a mathtools adaptions] + [2024-07-13 v0.1a mathtools adaptions] \RequirePackage{tagpdf-base} \ExplSyntaxOn \tl_new:N\l__math_mathtools_init_tl @@ -65,7 +67,7 @@ \vskip\normallineskiplimit % CCS \vskip\l_MT_above_intertext_sep \vbox{% - \ifmeasuring@\tag_stop:\fi + \ifmeasuring@\tag_suspend:n{\measuring}\fi \normalbaselines \ifdim \ifdim\@totalleftmargin=\z@ @@ -93,7 +95,7 @@ \noalign{% \penalty\postdisplaypenalty\vskip\abovedisplayshortskip \vbox{% - \ifmeasuring@\tag_stop:\fi + \ifmeasuring@\tag_suspend:n{\measuring}\fi \normalbaselines \MH_if_dim:w \MH_if_dim:w \@totalleftmargin=\z@ @@ -122,7 +124,7 @@ \vskip\normallineskiplimit \vskip\l_MT_above_shortintertext_sep \vbox{% - \ifmeasuring@\tag_stop:\fi + \ifmeasuring@\tag_suspend:n{\measuring}\fi \normalbaselines \MH_if_dim:w \MH_if_dim:w \@totalleftmargin=\z@ diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-bib.sty b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-bib.sty index 4cfa0b055c8..49f0207bc39 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-bib.sty +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-bib.sty @@ -33,7 +33,7 @@ %% %% %% File: latex-lab-bib.dtx (C) Copyright 2023 LaTeX Project -\def\ltlabbibdate{2024-02-12} +\def\ltlabbibdate{2024-07-05} \def\ltlabbibversion{0.81b} \ProvidesExplPackage {latex-lab-testphase-bib} {\ltlabbibdate} {\ltlabbibversion} {Code related to the tagging of bibliography and cite command} diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-block.sty b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-block.sty index a4d646636fc..5a819df9846 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-block.sty +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-block.sty @@ -33,8 +33,8 @@ %% %% %% File: latex-lab-block.dtx (C) Copyright 2021-2024 LaTeX Project -\def\ltlabblockdate{2024-03-23} -\def\ltlabblockversion{0.8n} +\def\ltlabblockdate{2024-10-11} +\def\ltlabblockversion{0.8v} \ProvidesPackage {latex-lab-testphase-block} [\ltlabblockdate\space v\ltlabblockversion\space blockenv implementation] @@ -58,8 +58,6 @@ } } \cs_new_eq:NN \__kernel_displayblock_doendpe: \prg_do_nothing: -\def\@endpetrue {\global\let\if@endpe\iftrue} -\def\@endpefalse{\global\let\if@endpe\iffalse} \NewTemplateType{blockenv}{1} \NewTemplateType{block}{1} \NewTemplateType{para}{1} @@ -90,6 +88,7 @@ par-skip : skip = \parsep , end-skip : skip = \KeyValue{beginsep} , % conflict with name below end-par-skip : skip = \KeyValue{begin-par-skip} , + item-skip : skip = \itemsep , beginpenalty : integer = \UseName{@beginparpenalty} , endpenalty : integer = \UseName{@endparpenalty} , leftmargin : length = \leftmargin , @@ -257,19 +256,19 @@ \AddToHook{begindocument/before}{ \RenewDocumentEnvironment{list}{O{} m m } { - \tl_set:Nn \@itemlabel {#2} - \tl_set:Nn \l__block_legacy_env_params_tl {#3} + \tl_set:Nn \l__block_legacy_env_params_tl + { + \tl_set:Nn \@itemlabel {#2} + #3 + } \UseInstance{blockenv}{list} {#1} } { \endblockenv } } -\tl_new:N \l__block_env_params_tl \cs_new:Npn \legacylistsetupcode { \dim_zero:N \listparindent \dim_zero:N \rightmargin \dim_zero:N \itemindent - \tl_set:Nn \@listctr {} - \legacy_if_set_false:n { @nmbrlist } % needed if lists are nested \let\makelabel\@mklab % TODO: customize \l__block_legacy_env_params_tl \legacy_if:nTF { @nmbrlist } @@ -407,14 +406,14 @@ \__block_debug_typeout:n{\l__block_env_name_tl -env-start} \tl_if_empty:nF {#1} { \SetTemplateKeys{blockenv}{display}{#1} } % \begin{macrocode} - \int_compare:nNnTF \l__block_flattened_level_int > 0 + \int_compare:nNnTF \l__tag_block_flattened_level_int > 0 { - \int_incr:N \l__block_flattened_level_int + \int_incr:N \l__tag_block_flattened_level_int } { \bool_if:NT \l__tag_para_flattened_bool { - \int_incr:N \l__block_flattened_level_int + \int_incr:N \l__tag_block_flattened_level_int } } \tl_if_empty:NF \l__block_inner_level_counter_tl @@ -435,6 +434,9 @@ } } \tag_if_active:T { \use:c { __block_recipe_ \l__block_tagging_recipe_tl : } } + \tl_clear:N \@itemlabel + \tl_clear:N \@listctr + \legacy_if_set_false:n { @nmbrlist } \l__block_setup_code_tl \__block_debug_typeout:n{use~ instance:~ \l__block_block_instance_tl - \int_use:N \g_block_nesting_depth_int } @@ -462,7 +464,10 @@ } \l__block_final_code_tl } -\int_new:N \l__block_flattened_level_int +\int_if_exist:NF \l__tag_block_flattened_level_int + { + \int_new:N \l__tag_block_flattened_level_int + } \newcounter{maxblocklevels} \setcounter{maxblocklevels}{6} \cs_new:Npn \endblockenv { @@ -474,15 +479,12 @@ \mode_leave_vertical: \legacy_if_gset_false:n { @inlabel } } - \legacy_if:nT { @newlist } - { - \@noitemerr - \legacy_if_gset_false:n { @newlist } - } + \__block_if_list:T { \legacy_if:nT { @newlist } { \@noitemerr } } \mode_if_horizontal:TF { \__block_skip_remove_last: \__block_skip_remove_last: \par } { \@inmatherr{\end{\@currenvir}} } \__kernel_displayblock_end: + \__block_if_list:T { \legacy_if_gset_false:n { @newlist } } \legacy_if:nF { @noparlist } { \__block_skip_set_to_last:N \l_tmpa_skip @@ -496,14 +498,16 @@ } \socket_use:n {tagsupport/block-endpe} } +\cs_new:Npn \__block_if_list:T + { \tl_if_eq:NnT \l__block_block_instance_tl {list} } \cs_new:Npn \__kernel_displayblock_end: { \__block_debug_typeout:n{\detokenize{__kernel_displayblock_end:}} } \socket_new:nn {tagsupport/block-endpe}{0} \socket_new_plug:nnn{tagsupport/block-endpe}{on} - { \legacy_if_gset_true:n { @endpe } } + { \@endpetrue } \socket_new_plug:nnn{tagsupport/block-endpe}{off} - { \legacy_if_gset_false:n { @endpe } } + { \@endpefalse } \socket_assign_plug:nn{tagsupport/block-endpe}{on} \DeclareTemplateCode{para}{std}{1} { @@ -529,6 +533,7 @@ par-skip = \parsep , end-skip = \l__block_botsep_skip , end-par-skip = \l__block_parbotsep_skip , + item-skip = \itemsep , beginpenalty = \@beginparpenalty , endpenalty = \@endparpenalty , rightmargin = \rightmargin , @@ -629,6 +634,7 @@ } \tl_new:N \@itemlabel % should have a top-level definition \tl_new:N \@listctr % should have a top-level definition +\cs_new_eq:NN \__block_evaluate_saved_user_keys:nn \use_none:nn \DeclareTemplateCode{list}{std}{1} { counter = \l__block_counter_tl, @@ -645,18 +651,23 @@ } { \__block_debug_typeout:n{template:list:std} - \tl_if_empty:nF {#1} { \SetTemplateKeys{list}{std}{#1} } + \tl_if_empty:nTF {#1} + { \cs_set_eq:NN \__block_evaluate_saved_user_keys:nn \use_none:nn } + { + \SetTemplateKeys{list}{std}{#1} + \cs_set:Npe \__block_evaluate_saved_user_keys:nn ##1##2 + { \SetTemplateKeys{##1}{##2}{ \exp_not:n{#1} } } + } \tl_if_empty:NTF \l__block_counter_tl { - \tl_if_blank:oF \@listctr - { + \legacy_if:nT { @nmbrlist } + { \bool_if:NF \l__block_resume_bool { \int_gset:cn{ c@ \@listctr } { \l__block_counter_start_int - 1 } } - } - { \@nmbrlistfalse } + } } { \@nmbrlisttrue @@ -672,6 +683,7 @@ \tl_set_eq:NN \@itemlabel \l__block_item_label_tl } \legacy_if_gset_true:n { @newlist } + \cs_set_eq:NN \__block_item_everypar: \__block_item_everypar_first: \__block_debug_typeout:n{template:list:std~end} } \keys_define:nn { template/list/std } @@ -708,6 +720,7 @@ { \__block_debug_typeout:n{template:item:std} \tl_set_eq:NN \l__block_label_given_tl \c_novalue_tl + \__block_evaluate_saved_user_keys:nn {item}{std} \tl_if_empty:nF{#1}{ \SetTemplateKeys{item}{std}{#1} } \tl_if_novalue:oTF \l__block_label_given_tl { @@ -779,8 +792,8 @@ \cs_new_eq:NN \__kernel_list_label_begin: \prg_do_nothing: \cs_new_eq:NN \__kernel_list_label_end: \prg_do_nothing: \cs_new_eq:NN \__block_item_everypar: \prg_do_nothing: -\AddToHook{para/begin}[lists]{\__block_item_everypar:} -\DeclareHookRule{para/begin}{lists}{after}{tagpdf} +\AddToHook{para/begin}[items]{\__block_item_everypar:} +\DeclareHookRule{para/begin}{items}{after}{tagpdf} \cs_new_protected:Npn \__block_item_everypar_std: { \__block_debug_typeout:n{item~ everypar \on@line } \legacy_if_set_false:n { @minipage } @@ -804,6 +817,9 @@ \cs_set_eq:NN \__block_item_everypar: \prg_do_nothing: } } +\cs_new:Npn \__block_item_everypar_first: { + \legacy_if:nT { @newlist } { \@noitemerr } +} \cs_new_eq:NN \__kernel_list_label_after: \prg_do_nothing: \skip_new:N \l__block_tmpa_skip \skip_new:N \l__block_topsepadd_skip @@ -819,8 +835,11 @@ } { \legacy_if:nTF { @newlist } - { \__kernel_list_item_begin: } - { \__block_inter_item: } + { + \__kernel_list_item_begin: + \legacy_if_gset_false:n { @newlist } + } + { \__block_inter_item: } \tl_if_novalue:nTF {#1} % avoids reparsing label={} { \__block_item_instance:n { } } { \__block_item_instance:n {#1} } @@ -1011,6 +1030,7 @@ block-instance = verbatimblock , inner-instance = , final-code = \legacyverbatimsetup , + para-instance = justify } \DeclareInstance{blockenv}{itemize}{display} { @@ -1203,7 +1223,7 @@ \legacy_if_gset_false:n { @endpe } } { - \int_compare:nNnT \l__block_flattened_level_int < 2 + \int_compare:nNnT \l__tag_block_flattened_level_int < 2 { \__tag_gincr_para_main_begin_int: \tag_struct_begin:n @@ -1436,13 +1456,16 @@ \tagstructend \tagstructend % end LBody, LI } \cs_set:Npn \__block_list_end: { - \legacy_if:nT { @endpe } + \legacy_if:nF { @newlist } { - \__tag_gincr_para_main_end_int: - \tagstructend % text-unit - \__block_debug_typeout:n{Structure-end~ P~ at~ list-end \on@line } + \legacy_if:nT { @endpe } + { + \__tag_gincr_para_main_end_int: + \tagstructend % text-unit + \__block_debug_typeout:n{Structure-end~ P~ at~ list-end \on@line } + } + \tagstructend\tagstructend % end LBody, LI } - \tagstructend\tagstructend % end LBody, LI \tagstructend % end L } } diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-firstaid.sty b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-firstaid.sty index 552dfee1832..d960bdf65b4 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-firstaid.sty +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-firstaid.sty @@ -33,9 +33,8 @@ %% %% %% File: latex-lab-firstaid.dtx (C) Copyright 2023-2024 LaTeX Project -\def\ltlabfirstaiddate{2024-05-25} -\def\ltlabfirstaidversion{0.85d} - +\def\ltlabfirstaiddate{2024-10-16} +\def\ltlabfirstaidversion{0.85h} \ProvidesPackage {latex-lab-testphase-firstaid} [% \ltlabfirstaiddate\space v\ltlabfirstaiddate\space Temporary patches to external packages needed for the tagging project] @@ -51,12 +50,118 @@ } } \exp_args:Ncx\str_if_eq:onT{ver@#1.#2}{#3} } -\ExplSyntaxOff \AddToHook{class/amsart/after} {\def\@author{\authors}} \AddToHook{class/amsbook/after} {\def\@author{\authors}} +\AddToHook{class/amsproc/after} + {\def\@author{\authors}} +\AddToHook{class/amsart/after}[latex-lab-testphase-firstaid/amsthm] + {\tag_if_active:T{\__tag_firstaid_amsthm:}} +\AddToHook{class/amsbook/after}[latex-lab-testphase-firstaid/amsthm] + {\tag_if_active:T{\__tag_firstaid_amsthm:}} +\AddToHook{class/amsproc/after}[latex-lab-testphase-firstaid/amsthm] + {\tag_if_active:T{\__tag_firstaid_amsthm:}} +\AddToHook{package/amsthm/after}[latex-lab-testphase-firstaid/amsthm] + {\tag_if_active:T{\__tag_firstaid_amsthm:}} +\cs_new_protected:Npn \__tag_firstaid_amsthm: + { + \def\@endtheorem{\endblockenv} + \RenewDocumentCommand\@thm{mmmO{}}{% + \ifhmode\unskip\unskip\par\fi + \normalfont + \let\thmheadnl\relax + \let\thm@swap\@gobble + \thm@notefont{\fontseries\mddefault\upshape}% + \thm@headpunct{.}% add period after heading + \thm@headsep 5\p@ plus\p@ minus\p@\relax + \thm@space@setup + ##1% style overrides + \@topsep \thm@preskip % used by thm head + \@topsepadd \thm@postskip % used by \@endparenv + \tl_set:Nn \l__block_thm_current_counter_tl{##2} + \tl_if_empty:nTF{##2} + { + \@begintheorem{##3}{}[##4] + } + { + \@kernel@refstepcounter{##2} + \@begintheorem{##3}{\csname the##2\endcsname}[##4] + } + } + \def\@begintheorem##1##2[##3]{% + \UseInstance{blockenv}{theorem}{beginsep=\thm@preskip} + \skip_set:Nn\l__block_topsepadd_skip { \thm@postskip } + \tagpdfparaOff + \mode_leave_vertical: + \tl_if_empty:NTF \l__block_thm_current_counter_tl + {\MakeLinkTarget[theorem]{}} + {\MakeLinkTarget{\l__block_thm_current_counter_tl}} + \group_begin: + \normalfont + \the\thm@headfont \thm@indent + \@ifempty{##1} + {\let\thmname\@gobble} + {\def\thmname####1{\tag_mc_begin:n {}####1\tag_mc_end:}}% + \@ifempty{##2} + {\let\thmnumber\@gobble} + {\def\thmnumber####1 + {\tag_struct_begin:n{tag=Lbl}\tag_mc_begin:n {} + ####1 + \tag_mc_end:\tag_struct_end:}}% + \@ifempty{##3} + {\let\thmnote\@gobble} + {\def\thmnote####1{\tag_mc_begin:n{}####1\tag_mc_end:}}% + \tag_struct_begin:n{tag=Caption} + \thm@swap\swappedhead\thmhead{##1}{##2}{##3}% + \tag_mc_begin:n{}\the\thm@headpunct\tag_mc_end: + \tag_struct_end: + \thmheadnl % possibly a newline. + \hskip\thm@headsep + \group_end: + \tagpdfparaOn + \UseTaggingSocket{para/begin} % + \ignorespaces} + \def\thmhead@plain##1##2##3{% + \thmname{##1} + \thmnumber{ + \@ifnotempty{##1}{~}\@upn{##2} + }% + \thmnote{\pdffakespace\space{\the\thm@notefont(##3)}} + } + \let\thmhead\thmhead@plain + \def\swappedhead##1##2##3{% + \thmnumber{##2} + \thmname{\@ifnotempty{##2}{\nobreakspace}##1} + \thmnote{\pdffakespace\space{\the\thm@notefont(##3)}} + } + \let\swappedhead@plain=\swappedhead + \renewcommand{\openbox}{\leavevmode + \hbox to.77778em{\pdf_bdc:nn{Span}{/ActualText<FEFF220E>}% + \pdffakespace\hfil\vrule + \vbox to.675em{\hrule width.6em\vfil\hrule}% + \vrule\hfil\pdf_emc:}} + \renewenvironment{proof}[1][\proofname]{\par + \pushQED{\qed}% + \UseInstance{blockenv}{theorem}{beginsep=6\p@\@plus6\p@} + \normalfont + \tagpdfparaOff + \AddToHookNext{para/begin} + {\tag_struct_begin:n{tag=Caption} + \tag_mc_begin:n{}% + \textit{##1\@addpunct{.}}% + \tag_mc_end: + \tag_struct_end: + \tagpdfparaOn + \UseTaggingSocket{para/begin} + \pdffakespace\hspace{\labelsep}} + \ignorespaces + }{% + \popQED\endblockenv\par + } + } +\ExplSyntaxOff \AddToHook{package/verse/after}[latex-lab-firstaid]{% \FirstAidNeededT{verse}{sty}{2014/05/10 v2.4b verse typesetting}% {% @@ -85,41 +190,6 @@ }% }% } -\AddToHook{file/blindtext.sty/after}[latex-lab-firstaid]{% - \FirstAidNeededT{blindtext}{sty}{\blindfiledate\space\blindfileversion\space% - blindtext-Package}% - {% - \renewcommand{\blind@items}{% - \setcounter{blind@listcount}{1}% - \loop - \ifblind@optional - \ifblind@long - \item[\blindtext@countitem] \blindtext@text - \else - \item[\blindtext@count] \blindtext@item - \fi - \else % \blind@optionalfalse - \ifblind@long - \item \blindtext@text - \else - \item \blindtext@countitem - \fi - \fi % \ifblind@optional - {% - \loop - \ifnum\value{blindlistlevel}>\value{blindlist@level}% - \stepcounter{blind@levelcount}% - \blind@list[\value{blindlist}]\relax - \addtocounter{blind@levelcount}{-1}% - \setcounter{blind@listcount}{1}% - \repeat - \expandafter}\if@endpe\@doendpe\fi % <----------changed - \ifnum\value{blind@listcount}<\value{blindlist}% - \stepcounter{blind@listcount}% - \repeat - } - }% - } \AddToHook{package/cleveref/after} { \let\@makefntext\cref@old@makefntext @@ -128,11 +198,6 @@ \protected@edef\cref@currentlabel{% [footnote][\arabic{footnote}][\cref@result]% \p@footnote\@thefnmark}} - \RenewDocumentCommand\refstepcounter{om}{% - \IfNoValueTF{#1}% - {\refstepcounter@noarg{#2}}% - {\refstepcounter@optarg[#1]{#2}}% - }% } \ExplSyntaxOn \AddToHook{package/booktabs/after} @@ -159,6 +224,102 @@ \cr} } \ExplSyntaxOff + +\ExplSyntaxOn +\AddToHook{package/fancyvrb/after} +{ + \def\FV@LeaveVMode{% + \if@noskipsec + \leavevmode + \else + \if@FV@ResetMargins\if@inlabel\leavevmode\fi\fi + \fi + \ifvmode + \@noparlisttrue + \__tag_gincr_para_main_begin_int: + \tag_struct_begin:n{tag=\l__tag_para_main_tag_tl} + \else + \bool_set_true:N\l__tag_para_flattened_bool + \@noparlistfalse + \unskip\par + \fi + } + \def\FV@List#1{% + \begingroup + \FV@UseKeyValues + \FV@LeaveVMode + \if@inlabel\else\setbox\@labels=\box\voidb@x\fi + \FV@ListNesting{#1}% + \FV@ListParameterHook + \FV@ListVSpace + \FV@SetLineWidth + \FV@InterLinePenalty + \let\FV@ProcessLine\FV@ListProcessLine@i + \FV@CatCodes + \FV@FormattingPrep + \FV@ObeyTabsInit + \cs_if_exist:NT \FV@BeginListFrame + { + \tag_mc_begin:n{artifact} + \FV@BeginListFrame + \tag_mc_end: + } + \tag_struct_begin:n{tag=verbatim} + } + \def\FV@EndList{% + \FV@ListProcessLastLine + \tag_struct_end: + \cs_if_exist:NT \FV@EndListFrame + { + \tag_mc_begin:n{artifact} + \FV@EndListFrame + \tag_mc_end: + } + \@endparenv + \endgroup + \@endpetrue + } + \def\FV@ListProcessLine#1{% + \hbox to \hsize{% + \kern\leftmargin + \hbox to \linewidth{% + \cs_if_exist:NT \FV@LeftListNumber + { + \tag_struct_begin:n{tag=Lbl} + \tag_mc_begin:n{} + \FV@LeftListNumber + \tag_mc_end: + \tag_struct_end: + } + \cs_if_exist:NT \FV@LeftListFrame + { + \tag_mc_begin:n{artifact} + \FV@LeftListFrame + \tag_mc_end: + } + \tag_struct_begin:n{tag=codeline} + \tag_mc_begin:n{}% + \FancyVerbFormatLine{#1}% + \tag_mc_end: + \tag_struct_end:\hss + \cs_if_exist:NT \FV@RightListFrame + { + \tag_mc_begin:n{artifact} + \FV@RightListFrame + \tag_mc_end: + } + \cs_if_exist:NT \FV@RightListNumber + { + \tag_struct_begin:n{tag=Lbl} + \tag_mc_begin:n{} + \FV@RightListNumber + \tag_mc_begin:n{} + \tag_struct_end: + } + } + \hss}} + } +\ExplSyntaxOff \endinput %% %% End of file `latex-lab-testphase-firstaid.sty'. diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-float.sty b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-float.sty index a944c944b20..f170b7c35f8 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-float.sty +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-float.sty @@ -33,8 +33,8 @@ %% %% %% File: latex-lab-float.dtx (C) Copyright 2023 LaTeX Project -\def\ltlabfloatdate{2024-03-23} -\def\ltlabfloatversion{0.81e} +\def\ltlabfloatdate{2024-09-20} +\def\ltlabfloatversion{0.81f} \ProvidesExplPackage {latex-lab-testphase-float} {\ltlabfloatdate} {\ltlabfloatversion} {Code related to the tagging of floats} \prop_new:N \g__tag_float_sect_prop @@ -42,8 +42,14 @@ \seq_gput_right:Nn \g__tag_float_types_seq {figure} \seq_gput_right:Nn \g__tag_float_types_seq {table} \tl_new:N\@current@float@struct +\int_new:N\g__tag_float_int \bool_new:N \g__tag_float_sect_bool \bool_gset_true:N \g__tag_float_sect_bool +\cs_new_protected:Npn \__tag_float_init: + { + \int_gincr:N \g__tag_float_int + \tl_set:Ne \@current@float@struct { \int_use:N \g__tag_float_int} + } \cs_new_protected:Npn\__tag_float_init_collect: { \bool_if:NT\g__tag_float_sect_bool @@ -91,12 +97,39 @@ { split-float .code:n = { - \__tag_float_end: - \__tag_float_begin: - \MakeLinkTarget*{floatstructure.\int_use:N\c@g__tag_struct_abs_int} + \UseTaggingSocket{float/end} + \__tag_float_init: + \UseTaggingSocket{float/begin} + \MakeLinkTarget*{floatstructure.\@current@float@struct} } } - +\str_if_exist:cF { l__socket_tagsupport/float/begin_plug_str } + { + \NewSocket{tagsupport/float/hmode/begin}{0} + \NewSocket{tagsupport/float/hmode/end}{0} + \NewSocket{tagsupport/float/begin}{0} + \NewSocket{tagsupport/float/end}{0} + } +\NewSocketPlug {tagsupport/float/hmode/begin}{default} + { + \__tag_float_stop_par: + } +\AssignSocketPlug{tagsupport/float/hmode/begin}{default} +\NewSocketPlug{tagsupport/float/hmode/end}{default} + { + \__tag_float_start_par: + } +\AssignSocketPlug{tagsupport/float/hmode/end}{default} +\NewSocketPlug{tagsupport/float/begin}{default} + { + \__tag_float_begin: + } +\AssignSocketPlug{tagsupport/float/begin}{default} +\NewSocketPlug{tagsupport/float/end}{default} + { + \__tag_float_end: + } +\AssignSocketPlug{tagsupport/float/end}{default} \cs_new_protected:Npn \__tag_float_stop_par: { \tag_mc_end: @@ -113,7 +146,6 @@ } \tag_mc_begin:n{tag=P} } - \cs_new_protected:Npn \__tag_float_begin: {% \bool_if:NTF\g__tag_float_sect_bool @@ -147,7 +179,7 @@ \fi \ifhmode \@bsphack - \@nameuse{__tag_float_stop_par:}% <---end P + \UseTaggingSocket{float/hmode/begin}% \@floatpenalty -\@Mii \else \@floatpenalty-\@Miii @@ -190,7 +222,8 @@ }% \@fltovf \fi - \@nameuse{__tag_float_begin:}% + \csname __tag_float_init:\endcsname + \UseTaggingSocket{float/begin}% \global \setbox\@currbox \color@vbox \normalcolor @@ -198,11 +231,11 @@ \hsize\columnwidth \@parboxrestore \@floatboxreset - \MakeLinkTarget*{floatstructure.\number\value{g__tag_struct_abs_int}}% + \MakeLinkTarget*{\@captype.struct.\@current@float@struct}% }% \def\end@float{% \@endfloatbox - \@nameuse{__tag_float_end:}% + \UseTaggingSocket{float/end}% \ifnum\@floatpenalty <\z@ \@largefloatcheck \@cons\@currlist\@currbox @@ -214,14 +247,14 @@ \penalty\@floatpenalty \else \vadjust{\penalty -\@Miv \vbox{}\penalty\@floatpenalty}\@Esphack - \@nameuse{__tag_float_start_par:}% restart P safe here?? + \UseTaggingSocket{float/hmode/end}% \fi \fi } \def\end@dblfloat{% \if@twocolumn \@endfloatbox - \@nameuse{__tag_float_end:}% + \UseTaggingSocket{float/end}% \ifnum\@floatpenalty <\z@ \@largefloatcheck \global\dp\@currbox1sp % @@ -234,7 +267,7 @@ \penalty\@floatpenalty \else \vadjust{\penalty -\@Miv \vbox{}\penalty\@floatpenalty}\@Esphack - \@nameuse{__tag_float_start_par:}% restart P safe here?? + \UseTaggingSocket{float/hmode/end}% \fi \fi \else @@ -243,7 +276,55 @@ }% \ExplSyntaxOn \def\hyper@nopatch@caption{} -\let\@kernel@refstepcounter\refstepcounter %as long it is not in the kernel +\str_if_exist:cF { l__socket_tagsupport/caption/begin_plug_str } + { + \NewSocket{tagsupport/caption/begin}{1} + \NewSocket{tagsupport/caption/end}{0} + \NewSocket{tagsupport/caption/label/begin}{0} + \NewSocket{tagsupport/caption/label/end}{0} + } +\str_if_exist:cF { l__socket_tagsupport/para/begin_plug_str } + { + \NewSocket{tagsupport/para/begin} + \NewSocket{tagsupport/para/end} + } +\NewSocket{caption/label}{1} +\NewSocketPlug{caption/label}{kernel} + { + #1:~ + } +\AssignSocketPlug{caption/label}{kernel} +\NewSocketPlug {tagsupport/caption/begin}{default} + { + \tl_if_empty:eTF {#1} + { + \tag_struct_begin:n{tag=Caption,firstkid} + } + { + \tag_struct_begin:n{tag=Caption,parent=#1,firstkid} + } + \bool_set_true:N \l__tag_para_flattened_bool + } +\AssignSocketPlug{tagsupport/caption/begin}{default} +\NewSocketPlug {tagsupport/caption/end}{default} + { + \tag_struct_end: + } +\AssignSocketPlug{tagsupport/caption/end}{default} +\NewSocketPlug {tagsupport/caption/label/begin}{default} + { + \tagpdfparaOff + \tag_struct_begin:n{tag=Lbl} + \tag_mc_begin:n{} + } +\AssignSocketPlug{tagsupport/caption/label/begin}{default} +\NewSocketPlug {tagsupport/caption/label/end}{default} + { + \tag_mc_end: + \tag_struct_end: + \tagpdfparaOn + } +\AssignSocketPlug{tagsupport/caption/label/end}{default} \def\caption{% \ifx\@captype\@undefined \@latex@error{\noexpand\caption\c_space_tl outside~float}\@ehd @@ -255,52 +336,39 @@ } { \@kernel@refstepcounter\@captype - \xdef\@currentHref{floatstructure.\@current@float@struct}% + \xdef\@currentHref{\@captype.struct.\@current@float@struct}% } \expandafter\@firstofone \fi {\@dblarg{\@caption\@captype}}% } -\providecommand\theHg__tag_struct_abs_int{\int_use:N\c@g__tag_struct_abs_int} - \AddToHook{begindocument} { \long\def\@makecaption#1#2{% \vskip\abovecaptionskip - \tag_stop:n{caption} + \SuspendTagging{\@makecaption} \sbox\@tempboxa{#1:~#2}% - \tag_start:n{caption} - \tagtool{para=false} - \tl_if_empty:NT \@current@float@struct - { \tl_set:Ne \@current@float@struct {\tag_get:n{struct_num}} } - \tag_struct_begin:n{tag=Caption,parent=\@current@float@struct} - \tag_if_active:T - { - \seq_gpop_right:cN {g__tag_struct_kids_\@current@float@struct _seq}\l__tag_tmpa_tl - \seq_gput_left:cV {g__tag_struct_kids_\@current@float@struct _seq}\l__tag_tmpa_tl - } + \ResumeTagging{\@makecaption} + \UseTaggingSocket{caption/begin}{\@current@float@struct} \ifdim \wd\@tempboxa >\hsize - \tag_struct_begin:n{tag=Lbl} - \tag_mc_begin:n{} - #1:~ - \tag_mc_end: - \tag_struct_end: - \tag_mc_begin:n{} - #2\par - \tag_mc_end: + \UseTaggingSocket{caption/label/begin} + \UseSocket{caption/label}{#1} + \UseTaggingSocket{caption/label/end} + \UseTaggingSocket{para/begin} + #2 + \par \else \global \@minipagefalse \hb@xt@\hsize{\hfil - \tag_struct_begin:n{tag=Lbl} - \tag_mc_begin:n{} - #1:~ - \tag_mc_end: - \tag_struct_end: - \tag_mc_begin:n{} + \UseTaggingSocket{caption/label/begin} + \UseSocket{caption/label}{#1} + \UseTaggingSocket{caption/label/end} + \UseTaggingSocket{para/begin} #2 - \tag_mc_end:\hfil}% + \UseTaggingSocket{para/end} + \hfil}% \fi - \tag_struct_end: %caption + \UseTaggingSocket{caption/end} \vskip\belowcaptionskip} } diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-graphic.sty b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-graphic.sty index 2ea6e529d73..942f2deeddf 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-graphic.sty +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-graphic.sty @@ -33,8 +33,8 @@ %% %% %% File: latex-lab-graphic.dtx (C) Copyright 2022-2024 LaTeX Project -\def\ltlabgraphicdate{2024-03-13} -\def\ltlabgraphicversion{0.80d} +\def\ltlabgraphicdate{2024-09-18} +\def\ltlabgraphicversion{0.80e} \ProvidesExplPackage {latex-lab-testphase-graphic} {\ltlabgraphicdate} {\ltlabgraphicversion} {Code related to the tagging of graphics} \RequirePackage{l3opacity} @@ -222,7 +222,7 @@ \bool_set_true:N \l__tag_graphic_artifact_bool \bool_set_false:N \l__tag_graphic_BBox_bool } - {false}{\tag_stop:} + {false}{\tag_suspend:n{Gin}} } {\tl_set:Nn\l__tag_graphic_struct_tl{#1}} } @@ -257,7 +257,7 @@ \bool_set_true:N \l__tag_graphic_artifact_bool \bool_set_false:N \l__tag_graphic_BBox_bool } - {false}{\tag_stop:} + {false}{\tag_suspend:n{picture}} } {\tl_set:Nn\l__tag_graphic_struct_tl{#1}} } @@ -657,7 +657,7 @@ \@defaultunitsset\@tempdimc{#1}\unitlength \Gin@tag@struct@begin \setbox\@picbox\hb@xt@\@tempdimc\bgroup - \tag_stop: %do not tag inside the picture box + \tag_suspend:n{\@picture} %do not tag inside the picture box \@defaultunitsset\@tempdimc{#3}\unitlength \hskip -\@tempdimc \@defaultunitsset\@tempdimc{#4}\unitlength diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-marginpar.sty b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-marginpar.sty index e40ab0ca2a8..0f8001ce861 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-marginpar.sty +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-marginpar.sty @@ -34,19 +34,35 @@ %% %% File: latex-lab-marginpar.dtx %% -\def\ltlabmarginpardate{2024-02-12} -\def\ltlabmarginparversion{0.85b} +\def\ltlabmarginpardate{2024-09-18} +\def\ltlabmarginparversion{0.85d} \ProvidesExplPackage {latex-lab-testphase-marginpar} {\ltlabmarginpardate} {\ltlabmarginparversion} {Changes related to the tagging of the margin notes} \int_new:N \g__kernel_marginpar_int \socket_new:nn {tagsupport/marginpar/begin}{0} \socket_new:nn {tagsupport/marginpar/end}{0} +\cs_new_protected:Npn\__tag_get_marginpar_parent_aux:nn #1 #2 + { + \str_if_eq:eeT{\use_ii:nn #1}{Part}{\seq_put_right:Nn\l__tag_tmpa_seq {#2}} + } +\cs_new_protected:Npn \__tag_get_marginpar_parent:N #1 + { + \seq_clear:N\l__tag_tmpa_seq + \seq_map_pairwise_function:NNN + \g__tag_struct_tag_stack_seq + \g__tag_struct_stack_seq + \__tag_get_marginpar_parent_aux:nn + \seq_put_right:Nn\l__tag_tmpa_seq {2} + \seq_get_left:NN \l__tag_tmpa_seq #1 + } +\cs_generate_variant:Nn \tag_struct_begin:n {e} \socket_new_plug:nnn {tagsupport/marginpar/begin}{default} { \if_mode_horizontal: \tag_mc_end: - \tag_struct_begin:n{tag=Aside,parent=\g__tag_para_main_struct_tl}% + \__tag_get_marginpar_parent:N \l__tag_tmpa_tl + \tag_struct_begin:e{tag=Aside,parent=\l__tag_tmpa_tl}% \else: \tag_struct_begin:n{tag=Aside}% \fi: @@ -77,9 +93,9 @@ \long\def\@ympar#1{% \@savemarbox\@marbox{#1}% \global\setbox\@currbox\copy\@marbox - \tag_stop: + \tag_suspend:n{\@ympar} \@xympar - \tag_start:} + \tag_resume:n{\@ympar}} \long\def\@xmpar[#1]#2{% \int_gincr:N\g__kernel_marginpar_int \property_if_recorded:eTF { tag_marginpar-opt-\int_use:N\g__kernel_marginpar_int } @@ -88,21 +104,21 @@ \property_record:ee { tag_marginpar-opt-\int_use:N\g__kernel_marginpar_int }{page} }% - \tag_stop: + \tag_suspend:n{\@xmpar} \@savemarbox\@currbox{#2}% - \tag_start: + \tag_resume:n{\@xmpar} } { \@savemarbox\@currbox{#2}% - \tag_stop: + \tag_suspend:n{\@xmpar} \@savemarbox\@marbox{#1 \property_record:ee { tag_marginpar-opt-\int_use:N\g__kernel_marginpar_int }{page}} - \tag_start: + \tag_resume:n{\@xmpar} } - \tag_stop: + \tag_suspend:n{\@xmpar} \@xympar - \tag_start: + \tag_resume:n{\@xmpar} } \endinput %% diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-minipage.sty b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-minipage.sty index 3b35a7beb38..a82944e5d10 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-minipage.sty +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-minipage.sty @@ -34,8 +34,8 @@ %% %% File: latex-lab-minipage.dtx %% -\def\ltlabminipagedate{2023-10-30} -\def\ltlabminipageversion{0.81c} +\def\ltlabminipagedate{2024-09-18} +\def\ltlabminipageversion{0.81e} \ProvidesExplPackage {latex-lab-testphase-minipage} {\ltlabminipagedate} {\ltlabminipageversion} {Code related to the tagging of minipages and parboxes} @@ -54,12 +54,13 @@ \@pboxswfalse \setlength\@tempdima{#4}% \def\@mpargs{{#1}{#2}[#3]{#4}}% - \socket_use:n{tagsupport/minipage/before}% new + \UseTaggingSocket{minipage/before}% new \setbox\@tempboxa\vbox\bgroup \color@begingroup \hsize\@tempdima \textwidth\hsize \columnwidth\hsize \@parboxrestore + \UseTaggingSocket{para/restore} \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@ \socket_assign_plug:nn{fntext/process}{mp}% \let\@listdepth\@mplistdepth \@mplistdepth\z@ @@ -77,18 +78,20 @@ \@minipagefalse %% added 24 May 89 \color@endgroup \egroup - \tag_stop:n{minipage} + \tag_suspend:n{minipage} \expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}% - \tag_start:n{minipage} - \socket_use:n{tagsupport/minipage/after} %new end ... + \tag_resume:n{minipage} + \UseTaggingSocket{minipage/after} %new end ... } \long\def\@iiiparbox#1#2[#3]#4#5{% \@kernel@init@parbox \leavevmode \@pboxswfalse \setlength\@tempdima{#4}% - \socket_use:n{tagsupport/parbox/before} - \@begin@tempboxa\vbox{\hsize\@tempdima\@parboxrestore#5\@@par}% + \UseTaggingSocket{parbox/before} + \@begin@tempboxa\vbox{\hsize\@tempdima\@parboxrestore + \UseTaggingSocket{para/restore} + #5\@@par}% \ifx\relax#2\else \setlength\@tempdimb{#2}% \edef\@parboxto{to\the\@tempdimb}% @@ -102,23 +105,36 @@ \csname bm@#3\endcsname}% \if@pboxsw \m@th$\fi \@end@tempboxa% - \socket_use:n{tagsupport/parbox/after} + \UseTaggingSocket{parbox/after} } \tl_new:N \l__ltboxes_tag_tl \tl_set:Nn \l__ltboxes_tag_tl {Div} \socket_new_plug:nnn{tagsupport/minipage/before}{tag/dflt} { - \tag_mc_end_push:\tag_struct_end: + \tag_mc_end_push: + \bool_if:NT \l__tag_para_bool {\tag_struct_end:} \tag_struct_begin:n{tag=\l__ltboxes_tag_tl} } \socket_new_plug:nnn{tagsupport/minipage/after}{tag/dflt} - {\tag_struct_end:\tag_struct_begin:n{tag=\l__tag_para_tag_tl}\tag_mc_begin_pop:n{}} + { + \tag_struct_end: + \bool_if:NT \l__tag_para_bool {\tag_struct_begin:n{tag=\l__tag_para_tag_tl}} + \tag_mc_begin_pop:n{} + } \socket_new_plug:nnn{tagsupport/parbox/before}{tag/dflt} - {\tag_mc_end_push:\tag_struct_end:\tag_struct_begin:n{tag=\l__ltboxes_tag_tl}} + { + \tag_mc_end_push: + \bool_if:NT \l__tag_para_bool {\tag_struct_end:} + \tag_struct_begin:n{tag=\l__ltboxes_tag_tl} + } \socket_new_plug:nnn{tagsupport/parbox/after}{tag/dflt} - {\tag_struct_end:\tag_struct_begin:n{tag=\l__tag_para_tag_tl}\tag_mc_begin_pop:n{}} + { + \tag_struct_end: + \bool_if:NT \l__tag_para_bool {\tag_struct_begin:n{tag=\l__tag_para_tag_tl}} + \tag_mc_begin_pop:n{} + } \socket_assign_plug:nn{tagsupport/minipage/before}{tag/dflt} \socket_assign_plug:nn{tagsupport/minipage/after} {tag/dflt} \socket_assign_plug:nn{tagsupport/parbox/before} {tag/dflt} diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-sec.sty b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-sec.sty index 6fee3cc5a94..b0c5a1c2fd4 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-sec.sty +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-sec.sty @@ -33,16 +33,19 @@ %% %% %% File: latex-lab-sec.dtx (C) Copyright 2022-2024 LaTeX Project -\def\ltlabsecdate{2024-02-12} -\def\ltlabsecversion{0.84c} +\def\ltlabsecdate{2024-10-04} +\def\ltlabsecversion{0.84f} \ProvidesExplPackage {latex-lab-testphase-sec} {\ltlabsecdate} {\ltlabsecversion} {Code related to the tagging of sectioning commands} \RequirePackage{latex-lab-kernel-changes} \seq_new:N \g__tag_sec_stack_seq -\seq_gpush:Nn\g__tag_sec_stack_seq {{Document}{-100}} +\seq_gpush:Nn\g__tag_sec_stack_seq {{Document}{-100}{2}} +\cs_new:Npn \__tag_get_data_current_Sect: + { + \exp_last_unbraced:Ne\use_iii:nnn{\seq_item:Nn\g__tag_sec_stack_seq{1}} + } \bool_new:N \l__tag_sec_Sect_bool \bool_set_true:N\l__tag_sec_Sect_bool - \cs_new_protected:Npn\__tag_sec_begin:nn #1 #2 %#1 level #2 keyval { \tag_struct_begin:n @@ -50,7 +53,8 @@ tag= {\int_compare:nNnTF {#1}={-1}{Part}{Sect}} ,#2 } - \seq_gpush:Ne \g__tag_sec_stack_seq {{\g__tag_struct_tag_tl}{\int_eval:n{#1}}} + \seq_gpush:Ne \g__tag_sec_stack_seq + {{\g__tag_struct_tag_tl}{\int_eval:n{#1}}{\g__tag_struct_stack_current_tl}} } \msg_new:nnn { tag } {wrong-sect-nesting} { @@ -61,12 +65,12 @@ \cs_new_protected:Npn\__tag_sec_end:n #1 % #1 level { \seq_get:NN \g__tag_sec_stack_seq \l__tag_tmpa_tl - \int_compare:nNnT {#1}<{\exp_last_unbraced:NV\use_ii:nn\l__tag_tmpa_tl+1} + \int_compare:nNnT {#1}<{\exp_last_unbraced:NV\use_ii:nnn\l__tag_tmpa_tl+1} { \seq_get:NN\g__tag_struct_tag_stack_seq \l__tag_tmpb_tl \exp_args:Nee \tl_if_eq:nnTF - {\exp_last_unbraced:NV\use_i:nn\l__tag_tmpa_tl} + {\exp_last_unbraced:NV\use_i:nnn\l__tag_tmpa_tl} {\exp_last_unbraced:NV\use_i:nn\l__tag_tmpb_tl} { \seq_gpop:NN \g__tag_sec_stack_seq \l__tag_tmpa_tl @@ -75,7 +79,7 @@ } { \msg_warning:nnee {tag}{wrong-sect-nesting} - { \exp_last_unbraced:NV\use_i:nn \l__tag_tmpa_tl } + { \exp_last_unbraced:NV\use_i:nnn \l__tag_tmpa_tl } { \exp_last_unbraced:NV\use_i:nn \l__tag_tmpb_tl } } } @@ -187,7 +191,7 @@ \IfBooleanTF {#1} { \@spart {#3} } - { \@part [#2]{#3} } + { \@part [{#2}]{#3} } \tag_tool:n {sec-stop-part} } } @@ -219,7 +223,7 @@ \IfBooleanTF {#1} { \@schapter {#3} } - { \@chapter [#2]{#3} } + { \@chapter [{#2}]{#3} } \tag_tool:n {sec-stop-chapter} } \RenewDocumentCommand\part{ s O{#3} m } @@ -257,7 +261,7 @@ \IfBooleanTF {#1} { \@spart {#3} } - { \@part [#2]{#3} } + { \@part [{#2}]{#3} } \tag_tool:n{sec-stop-part} } } @@ -303,9 +307,9 @@ {\tagmcbegin{tag=Lbl}} {#1} } - \tag_stop:n{hangfrom} + \tag_suspend:n{hangfrom} \hangindent \wd\@tempboxa\noindent - \tag_start:n{hangfrom} + \tag_resume:n{hangfrom} \tagmcbegin{}\box\@tempboxa\tagmcend\tagstructend\tagmcbegin{}} \cs_new_protected:Npn \@kernel@tag@svsec { @@ -329,7 +333,7 @@ \@tempskipa #5\relax \ifdim \@tempskipa>\z@ \begingroup - \tagtool{para-flattened=true} % or \bool_set_true\l__tag_para_flattened_bool + \tagtool{para-flattened=true} % or \bool_set_true\l_@@_para_flattened_bool #6{% \ifnum #2>\c@secnumdepth \@hangfrom {\hskip #3\relax\@svsec}% diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-table.sty b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-table.sty index 4af648e77c4..91a750b20a5 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-table.sty +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-table.sty @@ -33,8 +33,8 @@ %% %% %% File: latex-lab-table.dtx (C) Copyright 2023-2024 LaTeX Project -\def\ltlabtbldate{2024-05-25} -\def\ltlabtblversion{0.85i} +\def\ltlabtbldate{2024-09-18} +\def\ltlabtblversion{0.85n} \ProvidesExplPackage {latex-lab-testphase-table} {\ltlabtbldate} {\ltlabtblversion} {Code related to the tagging of tables} \RequirePackage{array} @@ -50,47 +50,97 @@ \tl_set:Nn \l__tbl_cellattribute_tl {} \tl_new:N \l__tbl_rowattribute_tl \tl_set:Nn \l__tbl_rowattribute_tl {} +\prop_new:N\g__tbl_untagged_cells_prop +\prop_new:N\l__tbl_saved_untagged_cells_prop \clist_new:N \l__tbl_tmpa_clist \tl_new:N \l__tbl_tmpa_tl +\str_new:N \l__tbl_tmpa_str +\str_if_exist:cF { l__socket_tagsupport/tbl/init/celldata_plug_str } + { + \NewSocket{tagsupport/tbl/init/celldata}{0} + \NewSocket{tagsupport/tbl/restore/celldata}{0} + } +\NewSocketPlug{tagsupport/tbl/init/celldata}{default} + { + \prop_set_eq:NN\l__tbl_saved_untagged_cells_prop \g__tbl_untagged_cells_prop + \prop_gclear:N \g__tbl_untagged_cells_prop + } +\AssignSocketPlug{tagsupport/tbl/init/celldata}{default} + +\NewSocketPlug{tagsupport/tbl/restore/celldata}{default} + { + \prop_gset_eq:NN\g__tbl_untagged_cells_prop \l__tbl_saved_untagged_cells_prop + } +\AssignSocketPlug{tagsupport/tbl/restore/celldata}{default} \NewSocketPlug{tagsupport/tbl/cell/begin}{TD} { \__tbl_show_curr_cell_data: - \tag_struct_begin:n + \__tbl_if_tag_cell:nnT {\g__tbl_row_int } { \g__tbl_col_int } { - tag =\l__tbl_celltag_tl, - attribute-class =\l__tbl_cellattribute_tl - } - \seq_gput_right:Ne \g__tbl_struct_cur_seq { \tag_get:n {struct_num} } - \int_step_inline:nn { \g__tbl_span_tl - 1 } - { - \seq_gput_right:Ne \g__tbl_struct_cur_seq { -\tag_get:n {struct_num} } + \clist_if_in:NVT \l__tbl_header_columns_clist\g__tbl_col_int + { + \tl_set:Nn \l__tbl_celltag_tl {TH} + \tl_set:Ne \l__tbl_cellattribute_tl {\l__tbl_cellattribute_tl,TH-row} + } + \tl_set:Ne \l__tbl_tmpa_tl {\int_eval:n { \g__tbl_col_int - 1 - \g__tbl_table_cols_tl }} + \clist_if_in:NoT \l__tbl_header_columns_clist { \l__tbl_tmpa_tl } + { + \tl_set:Nn \l__tbl_celltag_tl {TH} + \tl_set:Ne \l__tbl_cellattribute_tl {\l__tbl_cellattribute_tl,TH-row} + } + \tag_struct_begin:n + { + tag =\l__tbl_celltag_tl, + attribute-class ={\l__tbl_cellattribute_tl} + } + \seq_gput_right:Ne \g__tbl_struct_cur_seq { \tag_get:n {struct_num} } + \int_step_inline:nn { \g__tbl_span_tl - 1 } + { + \seq_gput_right:Ne \g__tbl_struct_cur_seq { -\tag_get:n {struct_num} } + } + \tag_mc_begin:n{} } - \tag_mc_begin:n{} } \NewSocketPlug{tagsupport/tbl/cell/end}{TD} { - \tag_mc_end: - \tag_struct_end: + \__tbl_if_tag_cell:nnT {\g__tbl_row_int } { \g__tbl_col_int } + { + \tag_mc_end: + \tag_struct_end: + } } \NewSocketPlug{tagsupport/tbl/pcell/begin}{TDpbox} { \__tbl_show_curr_cell_data: - \tag_struct_begin:n - { - tag =\l__tbl_pcelltag_tl, - attribute-class =\l__tbl_cellattribute_tl - } - \seq_gput_right:Ne \g__tbl_struct_cur_seq { \tag_get:n {struct_num} } - \int_step_inline:nn { \g__tbl_span_tl - 1 } + \__tbl_if_tag_cell:nnT {\g__tbl_row_int } { \g__tbl_col_int } { - \seq_gput_right:Ne \g__tbl_struct_cur_seq { -\tag_get:n {struct_num} } - } - \tagpdfparaOn - \tl_set:Nn \l__tag_para_main_tag_tl {Div} + \clist_if_in:NVT \l__tbl_header_columns_clist\g__tbl_col_int + { + \tl_set:Nn \l__tbl_celltag_tl {TH} + \tl_set:Ne \l__tbl_cellattribute_tl {\l__tbl_cellattribute_tl,TH-row} + } + \tag_struct_begin:n + { + tag =\l__tbl_pcelltag_tl, + attribute-class ={\l__tbl_cellattribute_tl} + } + \seq_gput_right:Ne \g__tbl_struct_cur_seq { \tag_get:n {struct_num} } + \int_step_inline:nn { \g__tbl_span_tl - 1 } + { + \seq_gput_right:Ne \g__tbl_struct_cur_seq { -\tag_get:n {struct_num} } + } + \tagpdfparaOn + \tl_set:Nn \l__tag_para_main_tag_tl {Div} + } } \NewSocketPlug{tagsupport/tbl/pcell/end}{TDpbox} { - \tag_struct_end: + \__tbl_if_tag_cell:nnT {\g__tbl_row_int } { \g__tbl_col_int } + { + \tag_struct_end: + \legacy_if:nT {@endpe}{\par} + \mode_if_vertical:T{ \tagpdfparaOff } + } } \NewSocketPlug{tagsupport/tbl/row/begin}{TR} { @@ -116,7 +166,7 @@ { \__tbl_trace:n {==>~ - stucture~stored~for~row~\int_use:N\g__tbl_row_int :~ + structure~stored~for~row~\int_use:N\g__tbl_row_int :~ \seq_use:Nn \g__tbl_struct_cur_seq {,} } } @@ -124,13 +174,23 @@ \tag_struct_end: } } +\int_if_exist:NF \l__tag_block_flattened_level_int + { + \int_new:N \l__tag_block_flattened_level_int + } +\NewSocketPlug{tagsupport/para/restore}{Table} + { + \tl_set:Nn \l__tag_para_main_tag_tl {Div} + \tl_set_eq:NN \l__tag_para_tag_tl\l__tag_para_tag_default_tl + \bool_set_true:N \l__tag_para_bool + \bool_set_false:N \l__tag_para_flattened_bool + \int_zero:N \l__tag_block_flattened_level_int + } \NewSocketPlug{tagsupport/tbl/init}{Table} { - \tag_if_active:T - { - \bool_set_false:N \l__tag_para_bool - \__tbl_init_struct_data: - } + \bool_set_false:N \l__tag_para_bool + \AssignSocketPlug{tagsupport/para/restore}{Table} + \__tbl_init_struct_data: } \NewSocketPlug{tagsupport/tbl/finalize}{Table} { @@ -190,7 +250,7 @@ \prop_if_exist:cT { g__tag_struct_ \l__tbl_tmpa_tl _prop } { - \exp_args:No \__tag_struct_prop_gput:nnn {\l__tbl_tmpa_tl} {S}{/Artifact} + \__tag_struct_prop_gput:onn { \l__tbl_tmpa_tl } {S}{/Artifact} } } } @@ -261,7 +321,7 @@ \prop_if_exist:cT { g__tag_struct_ \l__tbl_tmpa_tl _prop } { - \exp_args:No\__tag_struct_prop_gput:nnn {\l__tbl_tmpa_tl} {S}{/Artifact} + \__tag_struct_prop_gput:onn {\l__tbl_tmpa_tl} {S}{/Artifact} } } } @@ -320,14 +380,21 @@ {/O /Table /ColSpan~\int_eval:n{#1}} } \tl_set:Ne \l__tbl_cellattribute_tl - {colspan-\int_eval:n{#1}} + {\l__tbl_cellattribute_tl,colspan-\int_eval:n{#1}} } } -\tag_if_active:T - { \cs_generate_variant:Nn \__tag_attr_new_entry:nn {ee} } - +\str_if_exist:cF { l__socket_tagsupport/tbl/leaders/end_plug_str } + { + \NewSocket{tagsupport/tbl/leaders/begin}{0} + \NewSocket{tagsupport/tbl/leaders/end}{0} + } +\NewSocketPlug{tagsupport/tbl/leaders/begin}{code} + { \tag_mc_begin:n{artifact} } +\NewSocketPlug{tagsupport/tbl/leaders/end}{code} + { \tag_mc_end: } \AddToHook{cmd/array/before}{\__tag_tbl_disable:} + \cs_new_protected:Npn \__tag_tbl_disable: { \AssignSocketPlug{tagsupport/tbl/cell/begin}{noop} @@ -347,6 +414,8 @@ \AssignSocketPlug{tagsupport/tbl/vmode/begin}{noop} \AssignSocketPlug{tagsupport/tbl/vmode/end}{noop} \AssignSocketPlug{tagsupport/tbl/colspan}{noop} + \AssignSocketPlug{tagsupport/tbl/leaders/begin}{noop} + \AssignSocketPlug{tagsupport/tbl/leaders/end}{noop} } \cs_new_protected:Npn \__tag_tbl_enable: @@ -368,6 +437,8 @@ \AssignSocketPlug{tagsupport/tbl/vmode/begin}{Table} \AssignSocketPlug{tagsupport/tbl/vmode/end}{Table} \AssignSocketPlug{tagsupport/tbl/colspan}{code} + \AssignSocketPlug{tagsupport/tbl/leaders/begin}{code} + \AssignSocketPlug{tagsupport/tbl/leaders/end}{code} } \keys_define:nn { __tag / setup } @@ -385,6 +456,7 @@ \tl_set:Nn\l__tbl_celltag_tl {text} \tl_set:Nn\l__tbl_tabletag_tl {Div} \clist_clear:N \l__tbl_header_rows_clist + \clist_clear:N \l__tbl_header_columns_clist }, table/tagging .default:n = true, table/tagging .initial:n = true @@ -416,6 +488,7 @@ } \clist_new:N \l__tbl_header_rows_clist +\clist_new:N \l__tbl_header_columns_clist \cs_new_protected:Npn \__tbl_set_header_rows: { \clist_map_inline:Nn \l__tbl_header_rows_clist @@ -433,7 +506,19 @@ { g__tag_struct_####1_prop } { C } \l__tbl_tmpa_tl - {\__tag_struct_prop_gput:nne{ ####1 }{C}{[/TH-col~\l__tbl_tmpa_tl]} } + { + \str_set:Ne \l__tbl_tmpa_str {\l__tbl_tmpa_tl} + \str_remove_once:Nn \l__tbl_tmpa_str {[} + \str_remove_once:Nn \l__tbl_tmpa_str {]} + \str_if_in:NnTF\l__tbl_tmpa_str{/TH-row} + { + \str_replace_once:Nnn \l__tbl_tmpa_str {/TH-row}{/TH-both} + \__tag_struct_prop_gput:nne{ ####1 }{C}{[\l__tbl_tmpa_str]} + } + { + \__tag_struct_prop_gput:nne{ ####1 }{C}{[/TH-col~\l__tbl_tmpa_str]} + } + } {\__tag_struct_prop_gput:nnn{ ####1 }{C}{/TH-col}} } } @@ -442,8 +527,68 @@ \keys_define:nn { __tag / setup } { table/header-rows .clist_set:N = \l__tbl_header_rows_clist, + table/header-columns .clist_set:N = \l__tbl_header_columns_clist, table-header-rows .meta:n = {table/header-rows={#1}} } +\cs_if_exist:NT \__tag_struct_prop_gput:nnn + { + \cs_generate_variant:Nn \__tag_struct_prop_gput:nnn {one} + } +\cs_new_protected:Npn \__tbl_multirow:n #1 + { + \prop_get:NeNF \g__tag_attr_entries_prop + {rowspan-\int_eval:n{#1}} + \l__tbl_tmpa_tl + { + \__tag_attr_new_entry:ee + {rowspan-\int_eval:n{#1}} + {/O /Table /RowSpan~\int_eval:n{#1}} + } + \seq_gput_left:Ne\g__tag_attr_class_used_seq + {\pdf_name_from_unicode_e:n{rowspan-\int_eval:n{#1}}} + \seq_get_right:NN\g__tbl_struct_cur_seq \l__tbl_tmpb_tl + \tl_set:Ne \l__tbl_tmpb_tl { \int_abs:n{\l__tbl_tmpb_tl} } + \prop_get:cnNTF + { g__tag_struct_\l__tbl_tmpb_tl _prop } + { C } + \l__tbl_tmpa_tl + { + \tl_remove_once:Nn \l__tbl_tmpa_tl {[} + \tl_remove_once:Nn \l__tbl_tmpa_tl {]} + \__tag_struct_prop_gput:one{ \l__tbl_tmpb_tl } + {C} + {[/rowspan-\int_eval:n{#1}~\l__tbl_tmpa_tl]} + } + { + \__tag_struct_prop_gput:one{ \l__tbl_tmpb_tl } + {C} + {[/rowspan-\int_eval:n{#1}]} + } + \__tbl_gset_untagged_row_cells:nn {#1-1}{\g__tbl_span_tl} + } +\keys_define:nn{ __tag / setup } + { table/multirow .code:n = {\__tbl_multirow:n {#1} } + ,table/multirow .default:n = 1 + } +\cs_new_protected:Npn \__tbl_gset_untagged_row_cells:nn #1 #2 % #1 number of rows, #2 number of columns + { + \int_step_inline:nn {#1} + { + \int_step_inline:nn {#2} + { + \prop_gput:Nee \g__tbl_untagged_cells_prop + { \int_eval:n {\g__tbl_row_int + ##1},\int_eval:n{\g__tbl_col_int + ####1 -1 } }{} + } + } + } +\prg_new_protected_conditional:Npnn\__tbl_if_tag_cell:nn #1 #2 %#1 row, #2 col + { T,TF } + { + \prop_get:NeNTF \g__tbl_untagged_cells_prop + {\int_eval:n{#1},\int_eval:n{#2}}\l__tbl_tmpa_tl + { \prg_return_false:} + { \prg_return_true: } + } \cs_new_protected:Npn \__tbl_show_curr_cell_data: { \__tbl_trace:n { ==>~ current~cell~data:~ \int_use:N \g__tbl_row_int , @@ -451,10 +596,6 @@ \g__tbl_span_tl } } -\NewSocket{tbl/celldata/missingcount}{1} -\NewSocketPlug{tbl/celldata/missingcount}{code}{\tbl_count_missing_cells:n{#1}} -\AssignSocketPlug{tbl/celldata/missingcount}{code} - \cs_new:Npn \__tbl_add_missing_cells: { \int_compare:nNnT \g__tbl_missing_cells_int > 0 @@ -464,6 +605,7 @@ additional~cell(s)~into~previous~row:} \int_step_inline:nn { \g__tbl_missing_cells_int } { + \int_gincr:N\g__tbl_col_int \UseTaggingSocket{tbl/cell/begin} \UseTaggingSocket{tbl/cell/end} } @@ -505,9 +647,9 @@ } \hbox to\z@{\hss\parbox[t]\LTcapwidth{% \reset@font - \tag_stop:n{caption} + \tag_suspend:n{caption} \sbox\@tempboxa{#1{#2:~}#3}% - \tag_start:n{caption} + \tag_resume:n{caption} \ifdim\wd\@tempboxa>\hsize #1{#2:~}#3% \else diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-text.sty b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-text.sty index 749ab3aa08a..2eea229b6d5 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-text.sty +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-text.sty @@ -33,8 +33,8 @@ %% %% %% File: latex-lab-text.dtx (C) Copyright 2023-2024 LaTeX Project -\def\ltlabtextdate{2023-07-20} -\def\ltlabtextversion{0.85a} +\def\ltlabtextdate{2024-09-18} +\def\ltlabtextversion{0.85b} \ProvidesExplPackage {latex-lab-testphase-text} {\ltlabtextdate} {\ltlabtextversion} {Code related to the tagging of various small text commands} @@ -45,11 +45,11 @@ \tag_mc_end_push: \tag_struct_begin:n{tag=Span,actualtext=LaTeX} \tag_mc_begin:n{} - \tag_stop:n{LaTeX} + \tag_suspend:n{LaTeX} } \AddToHook{cmd/LaTeX/after} { - \tag_start:n{LaTeX} + \tag_resume:n{LaTeX} \tag_mc_end: \tag_struct_end: \tag_mc_begin_pop:n{} diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-toc.sty b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-toc.sty index e4cb035ba10..558041fccc4 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-toc.sty +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-toc.sty @@ -36,35 +36,41 @@ %% %% %% File: latex-lab-toc.dtx (C) Copyright 2022-2024 LaTeX Project -\def\ltlabtocdate{2023-10-16} -\def\ltlabtocversion{0.85b} +\def\ltlabtocdate{2024-09-26} +\def\ltlabtocversion{0.85e} \ProvidesExplPackage {latex-lab-testphase-toc} {\ltlabtocdate} {\ltlabtocversion} { Code related to the tagging of toc-like lists} %% File: latex-lab-toc-kernel-changes.dtx (C) Copyright 2022-2024 LaTeX Project -\def\ltlabkerneldate{2024-02-12} -\def\ltlabkernelversion{0.85c} +\def\ltlabkerneldate{2024-07-11} +\def\ltlabkernelversion{0.85d} \RequirePackage{latex-lab-kernel-changes} -\def\@contentsline@cfgpoint@before#1#2#3#4{} -\def\@contentsline@cfgpoint@after#1#2#3#4{} +\str_if_exist:cF { l__socket_tagsupport/toc/contentsline/before_plug_str } + { + \NewSocket{tagsupport/toc/contentsline/before}{1} + \NewSocket{tagsupport/toc/contentsline/after}{1} + } \def\contentsline#1#2#3#4% {% - \@contentsline@cfgpoint@before{#1}{#2}{#3}{#4}% + \UseTaggingSocket{toc/contentsline/before}{{#1}{#2}{#3}{#4}}% \gdef\@contentsline@destination{#4}% \csname l@#1\endcsname{#2}{#3}% - \@contentsline@cfgpoint@after{#1}{#2}{#3}{#4}% + \UseTaggingSocket{toc/contentsline/after}{{#1}{#2}{#3}{#4}}% } \def\addcontentsline#1#2#3{% #1=toc extension, #2= heading type, tag \addtocontents{#1}{% \protect\contentsline{#2}{#3}{\thepage}{\@currentHref}\protected@file@percent }} -\def\@starttoc@cfgpoint@before#1{} -\def\@starttoc@cfgpoint@after#1{} +\str_if_exist:cF { l__socket_tagsupport/toc/starttoc/before_plug_str } + { + \NewSocket{tagsupport/toc/starttoc/before}{1} + \NewSocket{tagsupport/toc/starttoc/after}{1} + } \def\@starttoc#1{% \begingroup \makeatletter - \@starttoc@cfgpoint@before{#1}% + \UseTaggingSocket{toc/starttoc/before}{#1}% \@input{\jobname.#1}% - \@starttoc@cfgpoint@after{#1}% + \UseTaggingSocket{toc/starttoc/after}{#1}% \if@filesw \expandafter\newwrite\csname tf@#1\endcsname \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax @@ -74,8 +80,11 @@ \NewMirroredHookPairWithArguments{contentsline/number/before}{contentsline/number/after}{1}% \NewMirroredHookPairWithArguments{contentsline/text/before}{contentsline/text/after}{4}% \NewMirroredHookPairWithArguments{contentsline/page/before}{contentsline/page/after}{4}% -\def\@dottedtocline@cfgpoint@leaders#1{#1} - +\str_if_exist:cF { l__socket_tagsupport/toc/leaders/before_plug_str } + { + \NewSocket{tagsupport/toc/leaders/before}{0} + \NewSocket{tagsupport/toc/leaders/after}{0} + } \def\@dottedtocline#1#2#3#4#5{% \ifnum #1>\c@tocdepth \else \vskip \z@ \@plus.2\p@ @@ -89,10 +98,11 @@ \csname contentsline@text@#1@format\endcsname{#4}% \UseHookWithArguments{contentsline/text/after}{4}{#1}{#4}{#5}{\@contentsline@destination}% \nobreak - \@dottedtocline@cfgpoint@leaders{% + \UseTaggingSocket{toc/leaders/before}\SuspendTagging{toc/leaders}% \leaders\hbox{$\m@th \mkern \@dotsep mu\hbox{.}\mkern \@dotsep - mu$}\hfill}% + mu$}\hfill + \ResumeTagging{toc/leaders}\UseTaggingSocket{toc/leaders/after}% \nobreak \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor \UseHookWithArguments{contentsline/page/before}{4}{#1}{#4}{#5}{\@contentsline@destination}% @@ -276,45 +286,26 @@ \fi} } %% File: latex-lab-toc.dtx (C) Copyright 2022-2024 LaTeX Project -\def\ltlabtocdate{2023-10-16} -\def\ltlabtocversion{0.85b} +\def\ltlabtocdate{2024-09-26} +\def\ltlabtocversion{0.85e} \tl_new:N \l__tag_toc_tmpa_tl -\AddToHook{cmd/refstepcounter/after} - { - \tl_if_blank:VF \@currentHref - { - \prop_gput:Nee \g__tag_struct_dest_num_prop {\@currentHref}{\tag_get:n{struct_num}} - } - } -\AddToHook{cmd/H@refstepcounter/after} - { - \tl_if_blank:VF \@currentHref - { - \prop_gput:Nee \g__tag_struct_dest_num_prop {\@currentHref}{\tag_get:n{struct_num}} - } - } -\msg_new:nnn { tag } {struct-dest-unknown} - { - Destination~#1~has~no~related~structure.\\ - /Ref~for~structure~#2~not~updated - } - -\cs_new_protected:Npn \g__tag_struct_ref_by_dest: +\str_if_exist:cF { l__socket_tagsupport/recordtarget_plug_str } { - \prop_map_inline:Nn\g__tag_struct_ref_by_dest_prop - { - \prop_get:NnNTF \g__tag_struct_dest_num_prop {##2} \l__tag_tmpa_tl - { - \__tag_struct_gput_data_ref:ee - { ##1 } - { \tag_struct_object_ref:e{ \l__tag_tmpa_tl }} - } - { - \msg_warning:nnnn {tag}{struct-dest-unknown}{##2}{ ##1} - } - } - } -\hook_gput_code:nnn {tagpdf/finish/before}{tagpdf/struct/Ref}{\g__tag_struct_ref_by_dest:} + \AddToHook{cmd/refstepcounter/after} + { + \tl_if_blank:VF \@currentHref + { + \prop_gput:Nee \g__tag_struct_dest_num_prop {\@currentHref}{\tag_get:n{struct_num}} + } + } + \AddToHook{cmd/H@refstepcounter/after} + { + \tl_if_blank:VF \@currentHref + { + \prop_gput:Nee \g__tag_struct_dest_num_prop {\@currentHref}{\tag_get:n{struct_num}} + } + } + } \int_new:N \g__tag_toc_level_int \seq_new:N \g__tag_toc_stack_seq @@ -325,10 +316,11 @@ \int_gset:Nn \g__tag_toc_level_int {-100} \tag_struct_begin:n{tag=TOC,title=#1} } -\cs_set_protected:Npn\@starttoc@cfgpoint@before#1 - { - \__tag_toc_starttoc_init:n{#1} - } +\NewSocketPlug{tagsupport/toc/starttoc/before}{default} + { + \__tag_toc_starttoc_init:n{#1} + } +\AssignSocketPlug{tagsupport/toc/starttoc/before}{default} \cs_new_protected:Npn \__tag_toc_starttoc_finalize: { \int_step_inline:nn @@ -337,11 +329,11 @@ \tag_struct_end: \seq_gclear:N \g__tag_toc_stack_seq } -\cs_set_protected:Npn\@starttoc@cfgpoint@after#1 - { - \__tag_toc_starttoc_finalize: - } - +\NewSocketPlug{tagsupport/toc/starttoc/after}{default} + { + \__tag_toc_starttoc_finalize: + } +\AssignSocketPlug{tagsupport/toc/starttoc/after}{default} \cs_new_protected:Npn \__tag_toc_end:n #1 { \seq_get:NNT\g__tag_toc_stack_seq \l__tag_toc_tmpa_tl @@ -361,7 +353,8 @@ } } \cs_generate_variant:Nn \__tag_toc_end:n {e} -\cs_new_protected:Npn \__tag_toc_contentsline_begin:nnn #1 #2 #3 %#1 level, #2 content, #3 destination +\cs_new_protected:Npn \__tag_toc_contentsline_begin:nnnn #1 #2 #3 #4 + %#1 level, #2 content, #3 page number (unused) #4 destination { \tag_if_active:T { @@ -383,21 +376,22 @@ \int_gset:Nn \g__tag_toc_level_int { \use:c{toclevel@#1} } \group_begin: \text_declare_expand_equivalent:Nn \numberline \use_none:n - \exp_args:Ne \tag_struct_begin:n{tag=TOCI,title={\text_purify:n {#2}}} - \prop_gput:Nee \g__tag_struct_ref_by_dest_prop - { \tag_get:n {struct_num} }{#3} + \exp_args:Ne + \tag_struct_begin:n{tag=TOCI,title={\text_purify:n {#2}}} + \tag_struct_gput:nnn { \tag_get:n {struct_num} }{ref_dest}{#4} \seq_gpush:Ne \g__tag_toc_stack_seq {{TOCI}\use:c{toclevel@#1}} \group_end: } } } -\cs_set_protected:Npn\@contentsline@cfgpoint@before#1#2#3#4 +\NewSocketPlug{tagsupport/toc/contentsline/before}{default} { - \__tag_toc_contentsline_begin:nnn {#1}{#2}{#4} + \__tag_toc_contentsline_begin:nnnn #1 } +\AssignSocketPlug{tagsupport/toc/contentsline/before}{default} \msg_new:nnn {tag}{toc-no-TOCI}{Missing~TOCI~structure~on~toc~stack} -\cs_new_protected:Npn \__tag_toc_contentsline_end:n #1 %#1 level name +\cs_new_protected:Npn \__tag_toc_contentsline_end:nnnn #1 #2 #3 #4 { \int_compare:nNnF { \use:c{toclevel@#1} } > {\use:c{c@tocdepth}} { @@ -413,10 +407,11 @@ } } } -\cs_set_protected:Npn \@contentsline@cfgpoint@after #1#2#3#4 - { - \__tag_toc_contentsline_end:n {#1} - } +\NewSocketPlug{tagsupport/toc/contentsline/after}{default} + { + \__tag_toc_contentsline_end:nnnn #1 + } +\AssignSocketPlug{tagsupport/toc/contentsline/after}{default} \AddToHook{contentsline/text/before}[tagpdf]{% \tag_struct_begin:n{tag=Reference}% \tag_mc_begin:n{tag=Reference}} @@ -435,9 +430,12 @@ \tag_mc_end: \tag_struct_end: \tag_mc_begin:n{tag=Reference}} -\def\@dottedtocline@cfgpoint@leaders#1{% - \tag_mc_begin:n{artifact}\tag_stop:n{leaders}\nobreak#1\nobreak\tag_start:n{leaders}\tag_mc_end:} - +\NewSocketPlug{tagsupport/toc/leaders/before}{artifact} + {\tag_mc_begin:n{artifact}\nobreak} +\NewSocketPlug{tagsupport/toc/leaders/after}{artifact} + {\nobreak\tag_mc_end:} +\AssignSocketPlug{tagsupport/toc/leaders/before}{artifact} +\AssignSocketPlug{tagsupport/toc/leaders/after}{artifact} %% File: latex-lab-toc-hyperref-changes.dtx (C) Copyright 2022-2024 LaTeX Project \def\ltlabtochyperdate{2023-07-20} \def\ltlabtochyperversion{0.85a} diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/marginpar-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex-dev/latex-lab/marginpar-latex-lab-testphase.ltx index a74a5f65ef3..0c55110f9d5 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/marginpar-latex-lab-testphase.ltx +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/marginpar-latex-lab-testphase.ltx @@ -34,8 +34,8 @@ %% %% File: latex-lab-marginpar.dtx %% -\def\ltlabmarginpardate{2024-02-12} -\def\ltlabmarginparversion{0.85b} +\def\ltlabmarginpardate{2024-09-18} +\def\ltlabmarginparversion{0.85d} \ProvidesFile{marginpar-latex-lab-testphase.ltx} [\ltlabmarginpardate\space v\ltlabmarginparversion\space diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/minipage-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex-dev/latex-lab/minipage-latex-lab-testphase.ltx index 0cf1da13360..b11a23987c1 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/minipage-latex-lab-testphase.ltx +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/minipage-latex-lab-testphase.ltx @@ -34,8 +34,8 @@ %% %% File: latex-lab-minipage.dtx %% -\def\ltlabminipagedate{2023-10-30} -\def\ltlabminipageversion{0.81c} +\def\ltlabminipagedate{2024-09-18} +\def\ltlabminipageversion{0.81e} \ProvidesFile{minipage-latex-lab-testphase.ltx} [\ltlabminipagedate\space v\ltlabminipageversion diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/sec-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex-dev/latex-lab/sec-latex-lab-testphase.ltx index 5cd6edae269..fa037aca3bf 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/sec-latex-lab-testphase.ltx +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/sec-latex-lab-testphase.ltx @@ -33,8 +33,8 @@ %% %% %% File: latex-lab-sec.dtx (C) Copyright 2022-2024 LaTeX Project -\def\ltlabsecdate{2024-02-12} -\def\ltlabsecversion{0.84c} +\def\ltlabsecdate{2024-10-04} +\def\ltlabsecversion{0.84f} \ProvidesFile{sec-latex-lab-testphase.ltx} [\ltlabsecdate\space v\ltlabsecversion\space latex-lab wrapper sec] diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/table-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex-dev/latex-lab/table-latex-lab-testphase.ltx index b01da95717e..eee19904436 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/table-latex-lab-testphase.ltx +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/table-latex-lab-testphase.ltx @@ -33,8 +33,8 @@ %% %% %% File: latex-lab-table.dtx (C) Copyright 2023-2024 LaTeX Project -\def\ltlabtbldate{2024-05-25} -\def\ltlabtblversion{0.85i} +\def\ltlabtbldate{2024-09-18} +\def\ltlabtblversion{0.85n} \ProvidesFile{table-latex-lab-testphase.ltx} [\ltlabtbldate\space v\ltlabtblversion\space latex-lab wrapper table] \RequirePackage{latex-lab-testphase-table} diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/tabular-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex-dev/latex-lab/tabular-latex-lab-testphase.ltx index 67a80c992ab..093b38ef924 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/tabular-latex-lab-testphase.ltx +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/tabular-latex-lab-testphase.ltx @@ -33,8 +33,8 @@ %% %% %% File: latex-lab-table.dtx (C) Copyright 2023-2024 LaTeX Project -\def\ltlabtbldate{2024-05-25} -\def\ltlabtblversion{0.85i} +\def\ltlabtbldate{2024-09-18} +\def\ltlabtblversion{0.85n} \ProvidesFile{tabular-latex-lab-testphase.ltx} [\ltlabtbldate\space v\ltlabtblversion\space latex-lab wrapper tabular] diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/text-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex-dev/latex-lab/text-latex-lab-testphase.ltx index 2615850378c..290c185f0d2 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/text-latex-lab-testphase.ltx +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/text-latex-lab-testphase.ltx @@ -33,8 +33,8 @@ %% %% %% File: latex-lab-text.dtx (C) Copyright 2023-2024 LaTeX Project -\def\ltlabtextdate{2023-07-20} -\def\ltlabtextversion{0.85a} +\def\ltlabtextdate{2024-09-18} +\def\ltlabtextversion{0.85b} \ProvidesFile{text-latex-lab-testphase.ltx} [\ltlabtextdate\space v\ltlabtextversion\space diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/toc-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex-dev/latex-lab/toc-latex-lab-testphase.ltx index 8b2c05d329c..8985e57bc7b 100644 --- a/Master/texmf-dist/tex/latex-dev/latex-lab/toc-latex-lab-testphase.ltx +++ b/Master/texmf-dist/tex/latex-dev/latex-lab/toc-latex-lab-testphase.ltx @@ -33,8 +33,8 @@ %% %% %% File: latex-lab-toc.dtx (C) Copyright 2022-2024 LaTeX Project -\def\ltlabtocdate{2023-10-16} -\def\ltlabtocversion{0.85b} +\def\ltlabtocdate{2024-09-26} +\def\ltlabtocversion{0.85e} \ProvidesFile{toc-latex-lab-testphase.ltx} [\ltlabtocdate\space v\ltlabtocversion latex-lab wrapper toc] diff --git a/Master/texmf-dist/tex/latex-dev/tools/.tex b/Master/texmf-dist/tex/latex-dev/tools/.tex index ff0d77e6fc4..a6b7144e01d 100644 --- a/Master/texmf-dist/tex/latex-dev/tools/.tex +++ b/Master/texmf-dist/tex/latex-dev/tools/.tex @@ -1,5 +1,5 @@ %% -%% This is file `.tex', +%% This is file `rename-to-empty-base.tex', %% generated with the docstrip utility. %% %% The original source files were: @@ -38,4 +38,4 @@ \message{File ignored} \endinput %% -%% End of file `.tex'. +%% End of file `rename-to-empty-base.tex'. diff --git a/Master/texmf-dist/tex/latex-dev/tools/array.sty b/Master/texmf-dist/tex/latex-dev/tools/array.sty index 5010b2f1b43..a190c9f7714 100644 --- a/Master/texmf-dist/tex/latex-dev/tools/array.sty +++ b/Master/texmf-dist/tex/latex-dev/tools/array.sty @@ -47,7 +47,7 @@ \NeedsTeXFormat{LaTeX2e}[2024/06/01] \ProvidesPackage{array} - [2024/05/23 v2.6c Tabular extension package (FMi)] + [2024/10/17 v2.6g Tabular extension package (FMi)] %% \ExplSyntaxOn @@ -96,15 +96,16 @@ \def\save@decl{\toks\count@ \expandafter{\@nextchar}} \def\insert@column{% \UseTaggingSocket{tbl/cell/begin}% - \the@toks \the \@tempcnta - \ignorespaces \@sharp \textonly@unskip + \@protected@firstofone { \the@toks \the \@tempcnta \ignorespaces } + \@sharp \textonly@unskip \the@toks \the \count@ \relax \UseTaggingSocket{tbl/cell/end}% } \protected\def\textonly@unskip{\ifhmode\unskip\fi} +\protected\long\def\@protected@firstofone#1{#1} \def\insert@pcolumn{% \UseTaggingSocket{tbl/pcell/begin}% - \the@toks \the \@tempcnta + \the@toks \the \@tempcnta \relax \ignorespaces \@sharp \unskip \the@toks \the \count@ \relax \UseTaggingSocket{tbl/pcell/end}% @@ -286,6 +287,7 @@ \let\@arrayacol=\relax \let\@tabacol=\relax \let\@tabularcr=\relax \let\@@endpbox=\relax \let\@argtabularcr=\relax \let\@xtabularcr=\relax +\ExplSyntaxOff \def\@preamerr#1{\def\@tempd{{..} at wrong position: }% \PackageError{array}{% \ifcase #1 Illegal pream-token (\@nextchar): `c' used\or %0 @@ -294,7 +296,6 @@ >\@tempd token ignored\or %3 <\@tempd changed to !{..}\or %4 Only one column-spec. allowed.\fi}\@ehc} %5 -\ExplSyntaxOff % this is really oldstyle using \@tfor := \def\newcolumntype#1{% \edef\NC@char{\string#1}% \@ifundefined{NC@find@\NC@char}% @@ -432,6 +433,23 @@ <{\d@llarend\end{lrbox}% \let\hss\hfil \makebox[#2][#1]{\unhbox\ar@cellbox}}} +\ExplSyntaxOn +\def\@cline#1-#2\@nil{ + \omit + \@multicnt#1 + \advance\@multispan\m@ne + \ifnum\@multicnt=\@ne\@firstofone{&\omit}\fi + \@multicnt#2 + \advance\@multicnt-#1 + \advance\@multispan\@ne + \UseTaggingSocket{tbl/leaders/begin} + \leaders\hrule\@height\arrayrulewidth\hfill + \UseTaggingSocket{tbl/leaders/end} + \tbl_gdecr_row_count: + \cr + \noalign{\vskip-\arrayrulewidth} +} +\ExplSyntaxOff \ExplSyntaxOff \endinput %% diff --git a/Master/texmf-dist/tex/latex-dev/tools/longtable.sty b/Master/texmf-dist/tex/latex-dev/tools/longtable.sty index aa19b28096a..0bc422eb465 100644 --- a/Master/texmf-dist/tex/latex-dev/tools/longtable.sty +++ b/Master/texmf-dist/tex/latex-dev/tools/longtable.sty @@ -43,7 +43,7 @@ \DeclareCurrentRelease{}{2020-02-07} \ProvidesPackage{longtable} - [2024-04-26 v4.20 Multi-page Table package (DPC)] + [2024-10-27 v4.22 Multi-page Table package (DPC)] \def\LT@err{\PackageError{longtable}} \def\LT@warn{\PackageWarning{longtable}} \def\LT@final@warn{% @@ -65,6 +65,7 @@ \newcount\LTchunksize \LTchunksize=200 \let\c@LTchunksize\LTchunksize \newdimen\LTcapwidth \LTcapwidth=4in +\providecommand\LTcaptype{table} \newbox\LT@head \newbox\LT@firsthead \newbox\LT@foot @@ -73,6 +74,7 @@ \newcount\LT@cols \newcount\LT@rows \newcounter{LT@tables} +\providecommand\theHLT@tables{\theLT@tables} \newcounter{LT@chunks}[LT@tables] \ifx\c@table\undefined \newcounter{table} @@ -105,8 +107,14 @@ \ExplSyntaxOn \def\LT@array[#1]#2{% \UseTaggingSocket{tbl/init} - \@kernel@refstepcounter{table}\stepcounter{LT@tables} - \tl_gset:Ne \@currentHref {table.\cs_if_exist_use:N\theHtable} + \tl_if_empty:eTF { \LTcaptype } + { + \tl_gset:Ne \@currentHref {LT@tables.\theHLT@tables} + } + { + \@kernel@refstepcounter{\LTcaptype}\stepcounter{LT@tables} + \tl_gset:Ne \@currentHref {\LTcaptype.\cs_if_exist_use:c {theH\LTcaptype}} + } \tbl_gzero_row_count: \UseTaggingSocket{tbl/longtable/init} \if l#1% @@ -220,7 +228,13 @@ \dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@ \maxdepth\z@ \fi - \MakeLinkTarget{table} + \tl_if_empty:eTF{\LTcaptype} + { + \MakeLinkTarget{LT@tables} + } + { + \MakeLinkTarget{\LTcaptype} + } \ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi\nobreak \UseTaggingSocket{tbl/longtable/head} \output{\LT@output}} @@ -245,14 +259,20 @@ \ifx\LT@save@row\LT@@save@row \else \LT@warn{Column~ widths~ have~ changed\MessageBreak - in~ table~ \thetable}% + in~ + \tl_if_empty:eTF{\LTcaptype} + {longtable~ \theLT@tables} + {\LTcaptype\c_space_tl\use:c{the\LTcaptype}} + } \LT@final@warn \fi \endgraf\penalty -\LT@end@pen \ifvoid\LT@foot\else \global\advance\vsize\ht\LT@foot \global\advance\@colroom\ht\LT@foot - \dimen@\pagegoal\advance\dimen@\ht\LT@foot\pagegoal\dimen@ + \ifdim\pagegoal<\maxdimen + \dimen@\pagegoal\advance\dimen@\ht\LT@foot\pagegoal\dimen@ + \fi \fi \endgroup \global\@mparbottom\z@ @@ -431,17 +451,22 @@ \tbl_gdecr_row_count: \penalty\@M} \@gtempa} -\ExplSyntaxOff \def\LT@caption{% \noalign\bgroup \@ifnextchar[{\egroup\LT@c@ption\@firstofone}\LT@capti@n} -\def\LT@c@ption#1[#2]#3{% - \LT@makecaption#1\fnum@table{#3}% - \def\@tempa{#2}% - \ifx\@tempa\@empty\else - {\let\\\space - \addcontentsline{\ext@table}{table}{\protect\numberline{\thetable}{#2}}}% - \fi} +\def\LT@c@ption#1[#2]#3{ + \tl_if_empty:eTF{\LTcaptype} + {\LT@makecaption\@gobble{}{#3}} + {\LT@makecaption#1{\csname fnum@\LTcaptype\endcsname}{#3} + \def\@tempa{#2} + \ifx\@tempa\@empty\else + {\let\\\space + \addcontentsline + {\@nameuse{ext@\LTcaptype}} + {\LTcaptype} + {\protect\numberline{\@nameuse{the\LTcaptype}}{#2}}} + \fi}} +\ExplSyntaxOff \def\LT@capti@n{% \@ifstar {\egroup\LT@c@ption\@gobble[]}% @@ -506,6 +531,13 @@ { \crcr \noalign{ + \int_step_inline:nn + { \LT@rows } + { + \seq_gput_left:ce + {g__tbl_\cs_to_str:N #1 _rows_seq } + { \int_eval:n {\g__tbl_row_int - ##1 } } + } \tbl_gdecr_row_count: % undo the increment \int_gset:Nn \LT@rows { \LTchunksize } } diff --git a/Master/texmf-dist/tex/latex-dev/tools/multicol.sty b/Master/texmf-dist/tex/latex-dev/tools/multicol.sty index ebe9ea853a8..89a3fd13905 100644 --- a/Master/texmf-dist/tex/latex-dev/tools/multicol.sty +++ b/Master/texmf-dist/tex/latex-dev/tools/multicol.sty @@ -35,7 +35,7 @@ %% given in the file `manifest.txt'. %% %% Package `multicol' to use with LaTeX2e -%% Copyright 1989-2023 Frank Mittelbach +%% Copyright 1989-2024 Frank Mittelbach %% %% In addition to the terms of LPPL any distributed version %% (unchanged or modified) of multicol has to keep the statement @@ -92,7 +92,7 @@ %% not for the payment of a license fee per se (which might or might %% not follow from this evaluation). %% -%% The license fee, if any, can be payed either to the LaTeX fund +%% The license fee, if any, can be paid either to the LaTeX fund %% (see ltx3info.txt in the base LaTeX distribution) or to the author of %% the program who can be contacted at %% @@ -105,7 +105,8 @@ \DeclareCurrentRelease{}{2021-11-15} \ProvidesPackage{multicol} - [2024/05/23 v1.9h multicolumn formatting (FMi)] + [2024/09/14 v1.9i multicolumn formatting (FMi)] + \DeclareOption{twocolumn} {\PackageWarning{multicol}{May not work with the twocolumn option}} @@ -872,9 +873,17 @@ \emergencystretch 4pt \multiply\emergencystretch#1} +\ExplSyntaxOn +\str_if_exist:cF { l__socket_tagsupport/float/end_plug_str } + { + \NewSocket{tagsupport/float/end}{0} + \NewSocket{tagsupport/float/hmode/end}{0} + } +\ExplSyntaxOff \def\set@floatcmds{% \let\@dblfloat\@dbflt \def\end@dblfloat{\@endfloatbox + \UseTaggingSocket{float/end}% \@largefloatcheck \outer@nobreak \ifnum\@floatpenalty<\z@ @@ -882,6 +891,7 @@ \fi \ifnum\@floatpenalty=-\@Mii \@Esphack + \UseTaggingSocket{float/hmode/end}% \fi}} \def\kept@topmark{{}{}} \let\kept@firstmark\@empty diff --git a/Master/texmf-dist/tex/latex-dev/tools/thb.sty b/Master/texmf-dist/tex/latex-dev/tools/thb.sty index 7d78943b773..c7c01d6d8f8 100644 --- a/Master/texmf-dist/tex/latex-dev/tools/thb.sty +++ b/Master/texmf-dist/tex/latex-dev/tools/thb.sty @@ -36,7 +36,7 @@ %% given in the file `manifest.txt'. %% %% -\def\FMithmInfo{2023/07/05 v2.2c Theorem extension package (FMi)} +\def\FMithmInfo{2024/08/06 v2.2c Theorem extension package (FMi)} %% %% Package `theorem' to use with LaTeX2e %% Copyright (C) 1989-1995 Frank Mittelbach, all rights reserved. diff --git a/Master/texmf-dist/tex/latex-dev/tools/thc.sty b/Master/texmf-dist/tex/latex-dev/tools/thc.sty index 7819ee2f44f..77b0c88c478 100644 --- a/Master/texmf-dist/tex/latex-dev/tools/thc.sty +++ b/Master/texmf-dist/tex/latex-dev/tools/thc.sty @@ -36,7 +36,7 @@ %% given in the file `manifest.txt'. %% %% -\def\FMithmInfo{2023/07/05 v2.2c Theorem extension package (FMi)} +\def\FMithmInfo{2024/08/06 v2.2c Theorem extension package (FMi)} %% %% Package `theorem' to use with LaTeX2e %% Copyright (C) 1989-1995 Frank Mittelbach, all rights reserved. diff --git a/Master/texmf-dist/tex/latex-dev/tools/thcb.sty b/Master/texmf-dist/tex/latex-dev/tools/thcb.sty index d05f9459ae2..e02fb365d80 100644 --- a/Master/texmf-dist/tex/latex-dev/tools/thcb.sty +++ b/Master/texmf-dist/tex/latex-dev/tools/thcb.sty @@ -36,7 +36,7 @@ %% given in the file `manifest.txt'. %% %% -\def\FMithmInfo{2023/07/05 v2.2c Theorem extension package (FMi)} +\def\FMithmInfo{2024/08/06 v2.2c Theorem extension package (FMi)} %% %% Package `theorem' to use with LaTeX2e %% Copyright (C) 1989-1995 Frank Mittelbach, all rights reserved. diff --git a/Master/texmf-dist/tex/latex-dev/tools/theorem.sty b/Master/texmf-dist/tex/latex-dev/tools/theorem.sty index 565fe7344b0..474a44eacca 100644 --- a/Master/texmf-dist/tex/latex-dev/tools/theorem.sty +++ b/Master/texmf-dist/tex/latex-dev/tools/theorem.sty @@ -36,7 +36,7 @@ %% given in the file `manifest.txt'. %% %% -\def\FMithmInfo{2023/07/05 v2.2c Theorem extension package (FMi)} +\def\FMithmInfo{2024/08/06 v2.2c Theorem extension package (FMi)} %% %% Package `theorem' to use with LaTeX2e %% Copyright (C) 1989-1995 Frank Mittelbach, all rights reserved. diff --git a/Master/texmf-dist/tex/latex-dev/tools/thm.sty b/Master/texmf-dist/tex/latex-dev/tools/thm.sty index 26474e89142..18837285335 100644 --- a/Master/texmf-dist/tex/latex-dev/tools/thm.sty +++ b/Master/texmf-dist/tex/latex-dev/tools/thm.sty @@ -36,7 +36,7 @@ %% given in the file `manifest.txt'. %% %% -\def\FMithmInfo{2023/07/05 v2.2c Theorem extension package (FMi)} +\def\FMithmInfo{2024/08/06 v2.2c Theorem extension package (FMi)} %% %% Package `theorem' to use with LaTeX2e %% Copyright (C) 1989-1995 Frank Mittelbach, all rights reserved. diff --git a/Master/texmf-dist/tex/latex-dev/tools/thmb.sty b/Master/texmf-dist/tex/latex-dev/tools/thmb.sty index eb8cdc7e396..d5f9b089190 100644 --- a/Master/texmf-dist/tex/latex-dev/tools/thmb.sty +++ b/Master/texmf-dist/tex/latex-dev/tools/thmb.sty @@ -36,7 +36,7 @@ %% given in the file `manifest.txt'. %% %% -\def\FMithmInfo{2023/07/05 v2.2c Theorem extension package (FMi)} +\def\FMithmInfo{2024/08/06 v2.2c Theorem extension package (FMi)} %% %% Package `theorem' to use with LaTeX2e %% Copyright (C) 1989-1995 Frank Mittelbach, all rights reserved. diff --git a/Master/texmf-dist/tex/latex-dev/tools/thp.sty b/Master/texmf-dist/tex/latex-dev/tools/thp.sty index 1fc19ff5a99..16f97840d6a 100644 --- a/Master/texmf-dist/tex/latex-dev/tools/thp.sty +++ b/Master/texmf-dist/tex/latex-dev/tools/thp.sty @@ -36,7 +36,7 @@ %% given in the file `manifest.txt'. %% %% -\def\FMithmInfo{2023/07/05 v2.2c Theorem extension package (FMi)} +\def\FMithmInfo{2024/08/06 v2.2c Theorem extension package (FMi)} %% %% Package `theorem' to use with LaTeX2e %% Copyright (C) 1989-1995 Frank Mittelbach, all rights reserved. |