summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-11-01 20:13:49 +0000
committerKarl Berry <karl@freefriends.org>2023-11-01 20:13:49 +0000
commita776d572cfd8fa24365dbc0cc22bbd856fbbe97b (patch)
tree849f92803a749fc1bc8aecd7ba910bd723ec4095 /Master/texmf-dist/tex/latex
parentd090e61f0bea55cb371aeb790140dbcb6c5d7d36 (diff)
latex2e (1nov23)
git-svn-id: svn://tug.org/texlive/trunk@68720 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r--Master/texmf-dist/tex/latex/base/atveryend-ltx.sty2
-rw-r--r--Master/texmf-dist/tex/latex/base/docstrip.tex2
-rw-r--r--Master/texmf-dist/tex/latex/base/latex.ltx597
-rw-r--r--Master/texmf-dist/tex/latex/base/latexrelease.sty846
-rw-r--r--Master/texmf-dist/tex/latex/base/ltluatex.lua8
-rw-r--r--Master/texmf-dist/tex/latex/base/ltluatex.tex2
-rw-r--r--Master/texmf-dist/tex/latex/base/source2edoc.cls2
-rw-r--r--Master/texmf-dist/tex/latex/base/structuredlog.sty2
-rw-r--r--Master/texmf-dist/tex/latex/firstaid/filehook-ltx.sty2
-rw-r--r--Master/texmf-dist/tex/latex/firstaid/latex2e-first-aid-for-external-files.ltx21
-rw-r--r--Master/texmf-dist/tex/latex/firstaid/underscore-ltx.sty (renamed from Master/texmf-dist/tex/latex/firstaid/everysel-ltx.sty)32
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/bib-latex-lab-testphase.ltx5
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/block-latex-lab-testphase.ltx (renamed from Master/texmf-dist/tex/latex/latex-lab/block-tagging-latex-lab-testphase.ltx)20
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/documentmetadata-support.ltx14
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/firstaid-latex-lab-testphase.ltx5
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/float-latex-lab-testphase.ltx4
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/graphic-latex-lab-testphase.ltx4
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/latex-lab-footmisc.ltx96
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/latex-lab-footnotes.ltx254
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/latex-lab-kernel-changes.sty32
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/latex-lab-math.ltx (renamed from Master/texmf-dist/tex/latex/latex-lab/latex-lab-mathtagging.ltx)49
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-bib.sty6
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-block.sty (renamed from Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-block-tagging.sty)85
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-firstaid.sty43
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-float.sty43
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-graphic.sty84
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-math.sty7
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-minipage.sty46
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-new-or-1.sty42
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-new-or-2.sty74
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-sec.sty66
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-table.sty977
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-text.sty7
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-toc.sty33
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/math-latex-lab-testphase.ltx5
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/minipage-latex-lab-testphase.ltx9
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/new-or-1-latex-lab-testphase.ltx10
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/new-or-latex-lab-testphase.ltx3
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/phase-I-latex-lab-testphase.ltx1
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/phase-II-latex-lab-testphase.ltx3
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/phase-III-latex-lab-testphase.ltx5
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/sec-latex-lab-testphase.ltx (renamed from Master/texmf-dist/tex/latex/latex-lab/sec-tagging-latex-lab-testphase.ltx)10
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/table-latex-lab-testphase.ltx43
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/tagpdf-latex-lab-testphase.ltx1
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/tagpdf-ns-latex-lab.def42
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/text-latex-lab-testphase.ltx6
-rw-r--r--Master/texmf-dist/tex/latex/latex-lab/toc-latex-lab-testphase.ltx (renamed from Master/texmf-dist/tex/latex/latex-lab/toc-tagging-latex-lab-testphase.ltx)15
-rw-r--r--Master/texmf-dist/tex/latex/tools/afterpage.sty2
-rw-r--r--Master/texmf-dist/tex/latex/tools/array.sty3
-rw-r--r--Master/texmf-dist/tex/latex/tools/bm.sty2
-rw-r--r--Master/texmf-dist/tex/latex/tools/calc.sty2
-rw-r--r--Master/texmf-dist/tex/latex/tools/dcolumn.sty2
-rw-r--r--Master/texmf-dist/tex/latex/tools/enumerate.sty2
-rw-r--r--Master/texmf-dist/tex/latex/tools/ftnright.sty2
-rw-r--r--Master/texmf-dist/tex/latex/tools/indentfirst.sty2
-rw-r--r--Master/texmf-dist/tex/latex/tools/layout.sty2
-rw-r--r--Master/texmf-dist/tex/latex/tools/longtable.sty7
-rw-r--r--Master/texmf-dist/tex/latex/tools/shellesc.sty2
-rw-r--r--Master/texmf-dist/tex/latex/tools/showkeys.sty2
-rw-r--r--Master/texmf-dist/tex/latex/tools/tabularx.sty2
-rw-r--r--Master/texmf-dist/tex/latex/tools/thb.sty2
-rw-r--r--Master/texmf-dist/tex/latex/tools/thc.sty2
-rw-r--r--Master/texmf-dist/tex/latex/tools/thcb.sty2
-rw-r--r--Master/texmf-dist/tex/latex/tools/theorem.sty2
-rw-r--r--Master/texmf-dist/tex/latex/tools/thm.sty2
-rw-r--r--Master/texmf-dist/tex/latex/tools/thmb.sty2
-rw-r--r--Master/texmf-dist/tex/latex/tools/thp.sty2
-rw-r--r--Master/texmf-dist/tex/latex/tools/xr.sty2
68 files changed, 2973 insertions, 740 deletions
diff --git a/Master/texmf-dist/tex/latex/base/atveryend-ltx.sty b/Master/texmf-dist/tex/latex/base/atveryend-ltx.sty
index 2f63091fb5d..35b348e5456 100644
--- a/Master/texmf-dist/tex/latex/base/atveryend-ltx.sty
+++ b/Master/texmf-dist/tex/latex/base/atveryend-ltx.sty
@@ -43,7 +43,7 @@
%% extension .ins) which are part of the distribution.
%%% From File: ltfilehook.dtx
\providecommand\ltfilehookversion{v1.0o}
-\providecommand\ltfilehookdate{2023/04/02}
+\providecommand\ltfilehookdate{2023/07/10}
\ProvidesPackage{atveryend-ltx}
[2020/08/19 v1.0a
Emulation of the original atveryend package^^Jwith kernel methods]
diff --git a/Master/texmf-dist/tex/latex/base/docstrip.tex b/Master/texmf-dist/tex/latex/base/docstrip.tex
index fa6dbc7cc18..0cafcd2c109 100644
--- a/Master/texmf-dist/tex/latex/base/docstrip.tex
+++ b/Master/texmf-dist/tex/latex/base/docstrip.tex
@@ -46,7 +46,7 @@
\def\filename{docstrip.dtx}
\def\fileversion{v2.6b}
\def\filedate{2022-09-03}
-\def\docdate {2022-09-03}
+\def\docdate {2023-10-10}
%%
%% The docstrip program for use with TeX.
%% Copyright (C) 1989-1991 Frank Mittelbach
diff --git a/Master/texmf-dist/tex/latex/base/latex.ltx b/Master/texmf-dist/tex/latex/base/latex.ltx
index 164ecc62270..35a2d4db005 100644
--- a/Master/texmf-dist/tex/latex/base/latex.ltx
+++ b/Master/texmf-dist/tex/latex/base/latex.ltx
@@ -13,6 +13,7 @@
%% ltcmd.dtx (with options: `2ekernel')
%% lthooks.dtx (with options: `2ekernel')
%% ltcmdhooks.dtx (with options: `2ekernel')
+%% ltsockets.dtx (with options: `2ekernel')
%% ltalloc.dtx (with options: `2ekernel')
%% ltcntrl.dtx (with options: `2ekernel')
%% lterror.dtx (with options: `2ekernel')
@@ -34,6 +35,7 @@
%% lttextcomp.dtx (with options: `2ekernel')
%% ltpageno.dtx (with options: `2ekernel')
%% ltxref.dtx (with options: `2ekernel')
+%% ltproperties.dtx (with options: `2ekernel')
%% ltmiscen.dtx (with options: `2ekernel')
%% ltmath.dtx (with options: `2ekernel')
%% ltlists.dtx (with options: `2ekernel')
@@ -705,8 +707,8 @@
%%% From File: ltvers.dtx
\def\fmtname{LaTeX2e}
\edef\fmtversion
- {2023-06-01}
-\def\patch@level{1}
+ {2023-11-01}
+\def\patch@level{0}
\edef\development@branch@name{}
\iffalse
\def\reserved@a#1/#2/#3\@nil{%
@@ -1177,6 +1179,7 @@
\msg_new:nnn { kernel } { unknown-arg-expansion }
{ Unknown~arg~expansion~"#1" }
\ExplSyntaxOff
+\def\IfExplAtLeastTF{\@ifl@t@r\ExplLoaderFileDate}
%%% From File: ltdefns.dtx
\def\two@digits#1{\ifnum#1<10 0\fi\number#1}
\protected\long\def\typeout#1{\begingroup
@@ -1803,8 +1806,8 @@
\xdef#1{\the\toks@}%
\endgroup}
%%% From File: ltcmd.dtx
-\def\ltcmdversion{v1.1e}
-\def\ltcmddate{2023-05-26}
+\def\ltcmdversion{v1.2a}
+\def\ltcmddate{2023-08-19}
\message{document commands,}
\ExplSyntaxOn
\tl_new:N \l__cmd_arg_spec_tl
@@ -4005,66 +4008,6 @@
\exp_after:wN #1 \exp_after:wN #2 \exp_after:wN { \if_false: } \fi:
}
-\cs_new_protected:Npn \__cmd_get_arg_spec_error:N #1
- {
- \bool_set_false:N \l__cmd_environment_bool
- \tl_set:Nn \l__cmd_fn_tl {#1}
- \__cmd_get_arg_spec_error_aux:n { \cs_if_exist:NTF #1 }
- }
-\cs_new_protected:Npn \__cmd_get_arg_spec_error:n #1
- {
- \bool_set_true:N \l__cmd_environment_bool
- \str_set:Nx \l__cmd_environment_str {#1}
- \__cmd_get_arg_spec_error_aux:n
- { \cs_if_exist:cTF { \l__cmd_environment_str } }
- }
-\cs_new_protected:Npn \__cmd_get_arg_spec_error_aux:n #1
- {
- #1
- {
- \msg_error:nnx { cmd } { non-xparse }
- { \__cmd_environment_or_command: }
- }
- {
- \msg_error:nnx { cmd } { unknown }
- { \__cmd_environment_or_command: }
- }
- }
-\cs_new_protected:Npn \__cmd_get_arg_spec:NTF #1#2#3
- {
- \__kernel_cmd_if_xparse:NTF #1
- {
- \tl_set:Nx \ArgumentSpecification { \tl_item:Nn #1 { 2 } }
- #2
- }
- {#3}
- }
-\tl_new:N \ArgumentSpecification
-\cs_new_protected:Npn \__cmd_get_arg_spec:N #1
- {
- \__cmd_get_arg_spec:NTF #1 { }
- { \__cmd_get_arg_spec_error:N #1 }
- }
-\cs_new_protected:Npn \__cmd_get_arg_spec:n #1
- {
- \exp_args:Nc \__cmd_get_arg_spec:NTF
- { environment~ \tl_to_str:n {#1} }
- { }
- { \__cmd_get_arg_spec_error:n {#1} }
- }
-\cs_new_protected:Npn \__cmd_show_arg_spec:N #1
- {
- \__cmd_get_arg_spec:NTF #1
- { \tl_show:N \ArgumentSpecification }
- { \__cmd_get_arg_spec_error:N #1 }
- }
-\cs_new_protected:Npn \__cmd_show_arg_spec:n #1
- {
- \exp_args:Nc \__cmd_get_arg_spec:NTF
- { environment~ \tl_to_str:n {#1} }
- { \tl_show:N \ArgumentSpecification }
- { \__cmd_get_arg_spec_error:n {#1} }
- }
\cs_new_protected:Npn \__cmd_check_definable:nNT #1
{ \tl_trim_spaces_apply:nN {#1} \__cmd_check_definable_aux:nN }
\group_begin:
@@ -4396,12 +4339,6 @@
LaTeX~did~not~find~this~argument~and~will~insert~a~default~value~
for~further~processing.
}
-\msg_new:nnnn { cmd } { non-xparse }
- { \str_uppercase:n #1~not~defined~using~xparse. }
- {
- You~have~asked~for~the~argument~specification~for~the~#1,~
- but~this~was~not~defined~using~xparse.
- }
\msg_new:nnnn { cmd } { arg-split }
{ Too~many~'#1'~separators~in~argument. }
{
@@ -4409,12 +4346,6 @@
at~each~occurrence~of~the~separator~'#1'~into~#2~parts.~
Too~many~separators~were~found.
}
-\msg_new:nnnn { cmd } { unknown }
- { Unknown~document~#1. }
- {
- You~have~asked~for~the~argument~specification~for~the~#1,~
- but~it~is~not~defined.
- }
\msg_new:nnnn { cmd } { verbatim-nl }
{ Verbatim-like~#1~ended~by~end~of~line. }
{
@@ -4605,23 +4536,11 @@
\cs_new_eq:NN \SplitList \__cmd_split_list:nn
\cs_new_eq:NN \TrimSpaces \__cmd_trim_spaces:n
\cs_new_eq:NN \ProcessList \tl_map_function:nN
-\cs_new_protected:Npn \GetDocumentCommandArgSpec #1
- {
- \__cmd_check_definable:nNT {#1} \GetDocumentCommandArgSpec
- { \__cmd_get_arg_spec:N #1 }
- }
-\cs_new_eq:NN \GetDocumentEnvironmentArgSpec \__cmd_get_arg_spec:n
-\cs_new_protected:Npn \ShowDocumentCommandArgSpec #1
- {
- \__cmd_check_definable:nNT {#1} \ShowDocumentCommandArgSpec
- { \__cmd_show_arg_spec:N #1 }
- }
-\cs_new_eq:NN \ShowDocumentEnvironmentArgSpec \__cmd_show_arg_spec:n
\ExplSyntaxOff
%%% From File: lthooks.dtx
\def\lthooksversion{v1.1f}
-\def\lthooksdate{2023/06/16}
+\def\lthooksdate{2023/10/02}
\ExplSyntaxOn
\bool_new:N \g__hook_debug_bool
\cs_new_eq:NN \__hook_debug:n \use_none:n
@@ -6832,6 +6751,181 @@
}
\ExplSyntaxOff
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% From File: ltsockets.dtx
+\def\ltsocketsversion{0.9a}
+\def\ltsocketsdate{2023-08-21}
+\ExplSyntaxOn
+\bool_new:N \g__socket_debug_bool
+\cs_new_eq:NN \__socket_debug:n \use_none:n
+\cs_new_eq:NN \__socket_debug_term:n \use_none:n
+\cs_new_protected:Npn \socket_debug_on:
+ {
+ \bool_gset_true:N \g__socket_debug_bool
+ \__socket_debug_gset:
+ }
+\cs_new_protected:Npn \socket_debug_off:
+ {
+ \bool_gset_false:N \g__socket_debug_bool
+ \__socket_debug_gset:
+ }
+\cs_new_protected:Npn \__socket_debug_gset:
+ {
+ \cs_gset_protected:Npx \__socket_debug:n ##1
+ { \bool_if:NT \g__socket_debug_bool {##1} }
+ \cs_gset_protected:Npx \__socket_debug_term:n ##1
+ { \bool_if:NT \g__socket_debug_bool
+ { \iow_term:x { ^^J [Sockets]~ ==>~ ##1} } }
+ }
+\cs_new_protected:Npn \socket_new:nn #1 #2 {
+ \str_if_exist:cTF { l__socket_#1_plug_str }
+ {
+ \msg_error:nnn { socket } { already-declared } {#1}
+ }
+ {
+ \int_if_zero:nTF \tex_currentgrouplevel:D
+ {
+ \str_new:c { l__socket_#1_plug_str }
+ \seq_new:c { l__socket_#1_plugs_seq }
+ \int_const:cn { c__socket_#1_args_int } {#2}
+ \socket_new_plug:nnn {#1} { noop } {}
+ \int_compare:nNnTF {#2} = 1
+ {
+ \socket_new_plug:nnn {#1} { identity } {##1}
+ \socket_assign_plug:nn {#1} { identity }
+ }
+ { \socket_assign_plug:nn {#1} { noop } }
+ \__socket_debug_term:n
+ { Socket~ '#1'~ declared~ with~ #2~ input(s) }
+ }
+ {
+ \msg_error:nn { socket } { not-top-level }
+ }
+ }
+}
+\cs_new_protected:Npn \socket_log:n #1 {
+ \typeout{ Socket~ #1:}
+ \str_if_exist:cTF { l__socket_#1_plug_str }
+ {
+ \typeout{ \@spaces number~ of~ inputs~ =~
+ \int_use:c { c__socket_#1_args_int } }
+ \typeout{ \@spaces available~plugs~ =~
+ \seq_use:cnnn { l__socket_#1_plugs_seq }{,~}{,~}{,~} }
+ \typeout{ \@spaces current~ plug~ =~
+ \str_use:c { l__socket_#1_plug_str } }
+ \typeout{ \@spaces definition~ =~
+ \cs_meaning:c
+ { __socket_#1_plug_ \str_use:c { l__socket_#1_plug_str } :w } }
+ \typeout{}
+ }
+ {
+ \typeout { Socket~ is~ not~ declared! }
+ }
+}
+\cs_new_protected:Npn \socket_show:n #1 {\socket_log:n {#1} \errmessage{}}
+\cs_new_protected:Npn \socket_new_plug:nnn #1#2#3 {
+ \str_if_exist:cTF { l__socket_#1_plug_str }
+ {
+ \cs_if_exist:cTF { __socket_#1_plug_#2:w }
+ {
+ \msg_error:nnnn { socket } { plug-already-declared } {#1} {#2}
+ }
+ {
+ \cs_generate_from_arg_count:cNnn
+ { __socket_#1_plug_#2:w }
+ \cs_new_protected:Npn
+ { \int_use:c { c__socket_#1_args_int } }
+ {#3}
+ \seq_put_right:cn { l__socket_#1_plugs_seq } {#2}
+ \__socket_debug_term:n
+ { Plug~ '#2'~ for~ socket~ '#1'~ declared. }
+ }
+ }
+ {
+ \msg_error:nnn { socket } { undeclared } {#1}
+ }
+}
+\cs_new_protected:Npn \socket_set_plug:nnn #1#2#3 {
+ \str_if_exist:cTF { l__socket_#1_plug_str }
+ {
+ \cs_if_exist:cTF { __socket_#1_plug_#2:w }
+ {
+ \cs_generate_from_arg_count:cNnn
+ { __socket_#1_plug_#2:w }
+ \cs_set_protected:Npn
+ { \int_use:c { c__socket_#1_args_int } }
+ {#3}
+ \__socket_debug_term:n
+ { Plug~ '#2'~ for~ socket~ '#1'~ changed. }
+ }
+ {
+ \msg_error:nnnn { socket } { plug-undeclared } {#1} {#2}
+ }
+ }
+ {
+ \msg_error:nnn { socket } { undeclared } {#1}
+ }
+}
+\cs_new_protected:Npn \socket_assign_plug:nn #1 #2 {
+ \str_if_exist:cTF { l__socket_#1_plug_str }
+ {
+ \cs_if_exist:cTF { __socket_#1_plug_#2:w }
+ {
+ \__socket_debug_term:n
+ { Replacing~ plug~ '\str_use:c { l__socket_#1_plug_str }'~
+ with~ '#2'~ in~ socket~ '#1'. }
+ \str_set:cn { l__socket_#1_plug_str } {#2}
+ }
+ {
+ \msg_error:nnnn { socket } { plug-undeclared } {#1} {#2}
+ }
+ }
+ { \msg_error:nnn { socket } { undeclared } {#1} }
+}
+\cs_new_protected:Npn \socket_use:nw #1 {
+ \__socket_debug_term:n
+ { Socket~ '#1'~ containing~ plug~
+ '\str_use:c { l__socket_#1_plug_str }'~ used. }
+ \use:c { __socket_#1_plug_ \str_use:c { l__socket_#1_plug_str } :w }
+}
+\cs_new_eq:NN \socket_use:n \socket_use:nw % socket with no inputs
+\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
+
+\msg_new:nnnn { socket } { already-declared }
+ { Socket~ '#1'~ already~ declared! }
+ { A~ socket~ can~ only~ be~ declared~ once.~ The~ name~ '#1'~ is~
+ already~ taken.~ Use~ \ShowSocket{#1}~ to~ see~ its~ definition. }
+
+\msg_new:nnnn { socket } { undeclared }
+ { Socket~ '#1'~ undeclared! }
+ { You~ tried~ to~ use~ a~ socket~ that~ was~ not~ declared~ before. }
+
+\msg_new:nnnn { socket } { not-top-level }
+ { Sockets~ can~ only~ be~ declared~ at~ top-level! }
+ { It~ is~ not~ allowed~ to~ declare~ sockets~ inside~ a~
+ group.~ Move~ the~ declaration~ to~ the~ top-level. }
+\msg_new:nnnn { socket } { plug-already-declared }
+ { Plug~ '#2'~ for~ socket~ '#1'~ already~ declared! }
+ { You~ can't~ change~ an~ existing~ plug~ with~ \NewSocketPlug~ and~ it~
+ is~ normally~ not~ sensible~ to~ do~ so.~ Use~ the~ L3~ programming~
+ layer~ function~ \socket_set_plug:nnn~ if~ you~ really~ have~ to. }
+
+\msg_new:nnnn { socket } { plug-undeclared }
+ { Plug~ '#2'~ for~ socket~ '#1'~ undeclared! }
+ { The~ plug~ name~ is~ unknown.~ Is~ the~ name~ misspelled~ or~ did~ you~
+ intend~ to~ assign~ it~ to~ a~ different~ socket? }
+\prop_gput:Nnn \g_msg_module_type_prop { socket } { LaTeX }
+\cs_new_eq:NN \NewSocket \socket_new:nn
+\cs_new_eq:NN \ShowSocket \socket_show:n
+\cs_new_eq:NN \LogSocket \socket_log:n
+\cs_new_eq:NN \NewSocketPlug \socket_new_plug:nnn
+\cs_new_eq:NN \AssignSocketPlug \socket_assign_plug:nn
+\cs_new_eq:NN \UseSocket \socket_use:nw
+\cs_new_eq:NN \DebugSocketsOn \socket_debug_on:
+\cs_new_eq:NN \DebugSocketsOff \socket_debug_off:
+\ExplSyntaxOff
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% From File: ltalloc.dtx
\chardef\@xxxii=32
\mathchardef\@Mi=10001
@@ -7518,8 +7612,14 @@ Type H <return> for immediate help.}%
\DeclareRobustCommand{\nobreakspace}{%
\leavevmode\nobreak\ }
\catcode `\~=13
-\def~{\nobreakspace{}}
+\protected\edef~{%
+ \noexpand\ifincsname\noexpand\expandafter\string~%
+ \noexpand\else
+ \noexpand\expandafter\noexpand\nobreakspace
+ \noexpand\fi
+}
\expandafter\let\expandafter\@xobeysp\csname nobreakspace \endcsname
+\let\@xobeytab\@xobeysp
\def\@{\spacefactor\@m{}}%
\DeclareRobustCommand\hspace{\@ifstar\@hspacer\@hspace}
\newskip\sp@ce@skip
@@ -11849,6 +11949,269 @@ Type H <return> for immediate help.}%
\NewDocumentCommand\Ref{s}
{\IfBooleanTF{#1}{\@kernel@sRef}{\@kernel@Ref}}
\def\@currentlabel{}
+%% File: ltproperties.dtx
+\def\ltpropertiesversion{1.0c}
+\def\ltpropertiesdate{2023-10-15}
+
+
+
+\ExplSyntaxOn
+\cs_new_protected:Npn \property_new:nnnn #1#2#3#4
+ {
+ \cs_if_free:cTF { __property_code_ #1 : }
+ {
+ \exp_args:Nx \__property_gset:nnnn { \tl_to_str:n {#1} }
+ {#2} {#3} {#4}
+ }
+ {
+ \msg_error:nn { property }{ exists }{#1}
+ }
+ }
+\cs_new_protected:Npn \property_gset:nnnn #1#2#3#4
+ {
+ \__property_gset:ennn { \tl_to_str:n {#1} }
+ {#2} {#3} {#4}
+ }
+\cs_new_protected:Npn \__property_gset:nnnn #1#2#3#4
+ {
+ \cs_gset:cpn { __property_code_ #1 : } {#4}
+ \tl_gclear_new:c { g__property_default_ #1 _tl }
+ \tl_gset:cn { g__property_default_ #1 _tl } {#3}
+ \bool_if_exist:cF { g__property_shipout_ #1 _tl }
+ { \bool_new:c { g__property_shipout_ #1 _tl } }
+ \str_case:nnF {#2}
+ {
+ { now } { { \bool_gset_false:c { g__property_shipout_ #1 _tl } } }
+ { shipout }
+ { \bool_gset_true:c { g__property_shipout_ #1 _tl } }
+ }
+ { \msg_error:nnnn { property } { unknown-setpoint } {#1} {#2} }
+ }
+\cs_generate_variant:Nn \__property_gset:nnnn {ennn}
+\cs_new_protected:Npn \NewProperty #1#2#3#4
+ {
+ \protected@edef\reserved@a{#1}
+ \exp_args:No \property_new:nnnn {\reserved@a} {#2}{#3}{#4}
+ }
+\cs_new_protected:Npn \SetProperty #1#2#3#4
+ {
+ \protected@edef\reserved@a{#1}
+ \exp_args:No \property_gset:nnnn {\reserved@a} {#2}{#3}{#4}
+ }
+\cs_new_protected:Npn \property_record:nN #1#2
+ { \property_record:nV {#1} #2 }
+\cs_new_protected:Npn \property_record:nn #1#2
+ { \__property_record:en { \tl_to_str:n {#1} } {#2} }
+\cs_generate_variant:Nn \property_record:nn { nV , ee, oo }
+\cs_new_protected:Npn \__property_record:nn #1#2
+ {
+ \legacy_if:nT { @filesw }
+ {
+ \iow_shipout_x:Nx \@auxout
+ {
+ \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 }
+\cs_new:Npn \__property_record_value:n #1
+ { \__property_record_value_aux:e { \tl_to_str:n {#1} } }
+\cs_new:Npn \__property_record_value_aux:n #1
+ {
+ \cs_if_exist:cTF { __property_code_ #1 : }
+ {
+ {#1}
+ {
+ \bool_if:cTF { g__property_shipout_ #1 _tl }
+ { \exp_not:c }
+ { \use:c }
+ { __property_code_ #1 : }
+ }
+ }
+ { \msg_expandable_error:nnn { property } { not-declared } {#1} }
+ }
+\cs_generate_variant:Nn \__property_record_value_aux:n { e }
+\NewDocumentCommand\RecordProperties { m m }
+ {
+ \@bsphack
+ \protected@edef\reserved@a{#1}
+ \protected@edef\reserved@b{#2}
+ \property_record:oo {\reserved@a}{\reserved@b}
+ \@esphack
+ }
+\flag_new:n { l__property_ref_flag }
+\cs_new:Npn \property_ref:nn #1#2
+ {
+ \__property_ref:een
+ { \tl_to_str:n {#1} }
+ { \tl_to_str:n {#2} }
+ { \tl_use:c { g__property_default_ #2 _tl } }
+ }
+\cs_generate_variant:Nn \property_ref:nn {ee}
+\cs_new:Npn \property_ref:nnn #1#2#3
+ {
+ \__property_ref:een
+ { \tl_to_str:n {#1} }
+ { \tl_to_str:n {#2} }
+ {#3}
+ }
+\cs_new:Npn \__property_ref:nnn #1#2#3
+ {
+ \tl_if_exist:cTF { g__property_label_ #1 _ #2 _tl }
+ { \tl_use:c { g__property_label_ #1 _ #2 _tl } }
+ {
+ \flag_if_raised:nF
+ { l__property_ref_flag } { \flag_raise:n { l__property_ref_flag } }
+ \tl_if_exist:cTF { g__property_default_ #2 _tl }
+ { #3 }
+ { \msg_expandable_error:nnn { property } { not-declared } {#2} }
+ }
+ }
+\cs_generate_variant:Nn \__property_ref:nnn { ee }
+\cs_generate_variant:Nn \property_ref:nnn {een}
+\NewExpandableDocumentCommand \RefProperty { o m m }
+ {
+ \IfNoValueTF {#1}
+ {
+ \property_ref:ee {#2}{#3}
+ }
+ {
+ \property_ref:een {#2}{#3}{#1}
+ }
+ }
+\cs_new_protected:Npn \new@label@record #1#2
+ {
+ \tl_if_exist:cTF { r@#1 }
+ {
+ \gdef \@multiplelabels
+ { \@latex@warning@no@line { There~were~multiply-defined~labels } }
+ \@latex@warning@no@line { Label~`#1'~multiply~defined }
+ }
+ {
+ \tl_new:c { r@#1 }
+ \tl_gset:cn { r@#1 }{#2}
+ }
+ \__property_data:nnn {#1} #2 { \q_recursion_tail } { ? } \q_recursion_stop
+ }
+\cs_new_protected:Npn \__property_data:nnn #1#2#3
+ {
+ \quark_if_recursion_tail_stop:n {#2}
+ \tl_gclear_new:c { g__property_label_ \tl_to_str:n {#1} _ \tl_to_str:n {#2} _tl }
+ \tl_gset:cn { g__property_label_ \tl_to_str:n {#1} _ \tl_to_str:n {#2} _tl } {#3}
+ \__property_data:nnn {#1}
+ }
+\cs_new_protected:Npn \@kernel@new@label@record@testdef #1 #2
+ {
+ \tl_if_eq:cnF { r@#1 } {#2}
+ { \@tempswatrue }
+ }
+\prg_new_conditional:Npnn \property_if_exist:n #1 { p , T , F, TF }
+ % #1 property
+ {
+ \cs_if_exist:cTF { __property_code_ #1 : }
+ {
+ \prg_return_true:
+ }
+ {
+ \prg_return_false:
+ }
+ }
+\prg_generate_conditional_variant:Nnn \property_if_exist:n {e} {TF}
+\cs_new_eq:NN \IfPropertyExistTF \property_if_exist:eTF
+\prg_new_conditional:Npnn \property_if_recorded:n #1 { p , T , F, TF }
+ % #1 label
+ {
+ \tl_if_exist:cTF { r@#1 }
+ {
+ \prg_return_true:
+ }
+ {
+ \prg_return_false:
+ }
+ }
+\prg_generate_conditional_variant:Nnn \property_if_recorded:n {e} {TF}
+\cs_new_eq:NN \IfLabelExistTF \property_if_recorded:eTF
+\prg_new_conditional:Npnn \property_if_recorded:nn #1#2 { p , T , F, TF }
+ % #1 label #2 property
+ {
+ \tl_if_exist:cTF { g__property_label_ \tl_to_str:n {#1} _ \tl_to_str:n {#2} _tl }
+ {
+ \prg_return_true:
+ }
+ {
+ \prg_return_false:
+ }
+ }
+\prg_generate_conditional_variant:Nnn \property_if_recorded:nn {ee} {TF}
+\cs_new_eq:NN \IfPropertyRecordedTF \property_if_recorded:eeTF
+\cs_new_protected:Npn \property_ref_undefined_warn:
+ {
+ \flag_if_raised:nT { l__property_ref_flag }
+ {
+ \G@refundefinedtrue
+ }
+ }
+\cs_new_protected:Npn \property_ref_undefined_warn:n #1 %#1 label
+ {
+ \property_if_recorded:nF {#1}
+ {
+ \G@refundefinedtrue
+ \@latex@warning{Reference~`#1'~on~page~\thepage\space undefined}%
+ }
+ }
+\cs_new_protected:Npn \property_ref_undefined_warn:nn #1#2 %#1 label, #2 property
+ {
+ \property_if_recorded:nTF {#1}
+ {
+ \property_if_recorded:nnF {#1}{#2}
+ {
+ \G@refundefinedtrue
+ \@latex@warning
+ { Property~`#2'~undefined~for~reference~`#1'~on~page~\thepage }
+ }
+ }
+ {
+ \G@refundefinedtrue
+ \@latex@warning { Reference~`#1'~on~page~\thepage\space undefined }%
+ }
+ }
+\cs_generate_variant:Nn \property_ref_undefined_warn:nn {ee}
+\cs_set_eq:NN \RefUndefinedWarn \property_ref_undefined_warn:ee
+\property_new:nnnn { abspage } { shipout }
+ { 0 } { \int_use:N \g_shipout_readonly_int }
+\property_new:nnnn { page } { shipout } { 0 } { \thepage }
+\property_new:nnnn { pagenum } { shipout } { 0 } { \the \value { page } }
+\property_new:nnnn { label } { now } { ?? } { \@currentlabel }
+\property_new:nnnn { title } { now }
+ { \exp_not:n { \textbf { ?? } } } { \@currentlabelname }
+\property_new:nnnn { target } { now } { } { \@currentHref }
+\newcommand\@currentHpage{}
+\property_new:nnnn { pagetarget } { shipout } { } { \@currentHpage }
+
+\property_new:nnnn { counter } { now } { } { \@currentcounter }
+\property_new:nnnn { xpos } { shipout } { 0} { \int_use:N \tex_lastxpos:D }
+\property_new:nnnn { ypos } { shipout } { 0} { \int_use:N \tex_lastypos:D }
+\msg_new:nnnn { property } { exists }
+ { Property~'#1'~ has~ already~ been~ declared. }
+ { There~ already~ exists~ a~ property~ declaration~ with~ this~
+ name.\\
+ Please~ use~ a~ different~ name~ for~ your~ property.}
+
+\msg_new:nnnn { property } { not-declared }
+ { Property~'#1'~not~declared. }
+ {
+ LaTeX~has~been~asked~to~use~property~'#1',~but~this~
+ name~has~not~been~declared.
+ }
+\msg_new:nnnn { property } { unknown-setpoint }
+ { Unknown~keyword~'#2'~for~setting~property~'#1'. }
+ {
+ LaTeX~has~been~asked~to~set~the~property~'#1',~but~the~keyword~
+ '#2'~is~not~one~of~the~two~known~values:~'now'~or~'shipout'.
+ }
+\ExplSyntaxOff
%%% From File: ltmiscen.dtx
\message{environments,}
\def\@currenvir{document}
@@ -11869,6 +12232,7 @@ Type H <return> for immediate help.}%
\immediate\closeout\@mainaux
\let\@setckpt\@gobbletwo
\let\@newl@bel\@testdef
+ \let\new@label@record\@kernel@new@label@record@testdef
\@tempswafalse
\makeatletter \@@input\jobname.aux
\fi
@@ -11919,7 +12283,6 @@ Type H <return> for immediate help.}%
\def\reserved@a{#3}\expandafter \ifx \csname #1@#2\endcsname
\reserved@a \else \@tempswatrue \fi}
\protected\def\protected@file@percent{}
-
\catcode`\^^A=9
\long\gdef\add@percent@to@temptokena
#1\protected@file@percent#2\add@percent@to@temptokena
@@ -12028,7 +12391,11 @@ Type H <return> for immediate help.}%
\def\endflushright{\endtrivlist}
\message{verbatim,}
{\catcode`\ =\active%
-\gdef\@vobeyspaces{\catcode`\ \active\let \@xobeysp}}
+\gdef\@vobeyspaces{\catcode`\ \active\let \@xobeysp\@vobeytabs}}
+{\catcode`\^^I=\active
+\gdef\@vobeytabs{\catcode`\^^I\active\let^^I\@xobeytab}%
+\global\let^^I=\space
+}
\begingroup \catcode `|=0 \catcode `[= 1
\catcode`]=2 \catcode `\{=12 \catcode `\}=12
\catcode`\\=12 |gdef|@xverbatim#1\end{verbatim}[#1|end[verbatim]]
@@ -12062,7 +12429,11 @@ Type H <return> for immediate help.}%
\DeclareRobustCommand\verbvisiblespace
{\leavevmode{\usefont{OT1}{cmtt}{m}{n}\asciispace}} % xetex/luatex version
\fi
-
+\newbox\@verbvisiblespacebox
+\@namedef{verbatim*}{\@verbatim
+ \@setupverbvisiblespace
+ \frenchspacing\@vobeyspaces\@sxverbatim}
+\expandafter\let\csname endverbatim*\endcsname =\endverbatim
\def\@setupverbvisiblespace{%
\ifx\verbvisiblespace\asciispace
\let\@xobeysp\asciispace
@@ -12071,13 +12442,9 @@ Type H <return> for immediate help.}%
\setbox\@verbvisiblespacebox\hbox to\wd\z@{\hss\verbvisiblespace\hss}%
\def\@xobeysp{\leavevmode\copy\@verbvisiblespacebox}%
\fi
+ \@setupverbvisibletab
}
-
-\newbox\@verbvisiblespacebox
-\@namedef{verbatim*}{\@verbatim
- \@setupverbvisiblespace
- \frenchspacing\@vobeyspaces\@sxverbatim}
-\expandafter\let\csname endverbatim*\endcsname =\endverbatim
+\def\@setupverbvisibletab{\let\@xobeytab\@xobeysp}
\def\@sverb#1{\if\noexpand#1 \expandafter\@sverb\else\@@sverb{#1}\fi}
\def\@@sverb#1{%
\catcode`#1\active
@@ -12086,7 +12453,10 @@ Type H <return> for immediate help.}%
\@latex@error{\noexpand\verb illegal in argument}\@ehc}%
\aftergroup\verb@balance@group
\lowercase{\let~\verb@egroup}%
- \ifnum\catcode`\ =\active
+ \ifnum0%
+ \ifnum\catcode`\ =\active\else 1\fi
+ \ifnum\catcode`\^^I=\active\else 1\fi
+ =0 %
\else \@setupverbvisiblespace \@vobeyspaces \fi
}
\def\@makeother#1{\catcode`#112\relax}
@@ -12671,7 +13041,13 @@ Type H <return> for immediate help.}%
\long\def\@imakebox[#1][#2]#3{%
\@begin@tempboxa\hbox{#3}%
\setlength\@tempdima{#1}% support calc
- \hb@xt@\@tempdima{\csname bm@#2\endcsname}%
+ \hb@xt@\@tempdima{%
+ \expandafter\ifx\csname bm@#2\endcsname\relax
+ \bm@c
+ \@latex@warning{Unexpected alignment #2}%
+ \else
+ \csname bm@#2\endcsname
+ \fi}%
\@end@tempboxa}
\def\@makepicbox(#1,#2){%
\@ifnextchar[{\@imakepicbox(#1,#2)}{\@imakepicbox(#1,#2)[]}}
@@ -12762,7 +13138,14 @@ Type H <return> for immediate help.}%
\@begin@tempboxa\hbox{#3}%
\setlength\@tempdima{#1}%
\setbox\@tempboxa\hb@xt@\@tempdima
- {\kern\fboxsep\csname bm@#2\endcsname\kern\fboxsep}%
+ {\kern\fboxsep
+ \expandafter\ifx\csname bm@#2\endcsname\relax
+ \bm@c
+ \@latex@warning{Unexpected alignment #2}%
+ \else
+ \csname bm@#2\endcsname
+ \fi
+ \kern\fboxsep}%
\@frameb@x{\kern-\fboxrule}%
\@end@tempboxa}
\def\@frameb@x#1{%
@@ -12818,7 +13201,12 @@ Type H <return> for immediate help.}%
\else\@pboxswtrue $\vcenter
\fi\fi\fi
\@parboxto{\let\hss\vss\let\unhbox\unvbox
- \csname bm@#3\endcsname}%
+ \expandafter\ifx\csname bm@#3\endcsname\relax
+ \bm@c
+ \@latex@warning{Unexpected alignment #3}%
+ \else
+ \csname bm@#3\endcsname
+ \fi}%
\if@pboxsw \m@th$\fi
\@end@tempboxa}
\def\@arrayparboxrestore{%
@@ -15873,7 +16261,7 @@ Type H <return> for immediate help.}%
\ExplSyntaxOff
%%% From File: ltfilehook.dtx
\providecommand\ltfilehookversion{v1.0o}
-\providecommand\ltfilehookdate{2023/04/02}
+\providecommand\ltfilehookdate{2023/07/10}
\ExplSyntaxOn
\tl_new:N \CurrentFile
\tl_new:N \CurrentFilePath
@@ -16011,7 +16399,6 @@ Type H <return> for immediate help.}%
\cs_new_eq:NN \declare@file@substitution \__filehook_subst_add:nn
\cs_new_eq:NN \undeclare@file@substitution \__filehook_subst_remove:n
\ExplSyntaxOff
-\ExplSyntaxOff
\def\set@curr@file{%
\begingroup
\set@curr@file@aux}
diff --git a/Master/texmf-dist/tex/latex/base/latexrelease.sty b/Master/texmf-dist/tex/latex/base/latexrelease.sty
index cefa0d6f035..035a4bcff57 100644
--- a/Master/texmf-dist/tex/latex/base/latexrelease.sty
+++ b/Master/texmf-dist/tex/latex/base/latexrelease.sty
@@ -15,6 +15,7 @@
%% ltcmd.dtx (with options: `latexrelease')
%% lthooks.dtx (with options: `latexrelease')
%% ltcmdhooks.dtx (with options: `latexrelease')
+%% ltsockets.dtx (with options: `latexrelease')
%% ltalloc.dtx (with options: `latexrelease')
%% ltcntrl.dtx (with options: `latexrelease')
%% lterror.dtx (with options: `latexrelease')
@@ -37,6 +38,7 @@
%% lttextcomp.dtx (with options: `latexrelease')
%% ltpageno.dtx (with options: `latexrelease')
%% ltxref.dtx (with options: `latexrelease')
+%% ltproperties.dtx (with options: `latexrelease')
%% ltmiscen.dtx (with options: `latexrelease')
%% ltmath.dtx (with options: `latexrelease')
%% ltlists.dtx (with options: `latexrelease')
@@ -290,7 +292,7 @@
}
%%% From File: ltvers.dtx
\edef\latexreleaseversion
- {2023-06-01}
+ {2023-11-01}
\newif\if@includeinrelease
\@includeinreleasefalse
\def\IncludeInRelease#1{%
@@ -1411,6 +1413,15 @@ of this package available from CTAN}
\let\UseName\@undefined
\let\ExpandArgs\@undefined
\EndIncludeInRelease
+\IncludeInRelease{2023/11/01}%
+ {\IfExplAtLeastTF}{Test for expl3 date}%
+\def\IfExplAtLeastTF{\@ifl@t@r\ExplLoaderFileDate}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\IfExplAtLeastTF}{Test for expl3 date}%
+
+\def\IfExplAtLeastTF{\@ifl@t@r\ExplLoaderFileDate}
+\EndIncludeInRelease
%%% From File: ltdefns.dtx
\IncludeInRelease{2020/10/01}%
{\typeout}{Allow "par" in \typeout}%
@@ -1986,8 +1997,8 @@ of this package available from CTAN}
\EndIncludeInRelease
%%% From File: ltcmd.dtx
-\def\ltcmdversion{v1.1e}
-\def\ltcmddate{2023-05-26}
+\def\ltcmdversion{v1.2a}
+\def\ltcmddate{2023-08-19}
\edef\@latexrelease@catcode@null{\the\catcode`\^^@ }
\catcode`\^^@=12
\ExplSyntaxOn
@@ -4248,68 +4259,6 @@ of this package available from CTAN}
\exp_after:wN #1 \exp_after:wN #2 \exp_after:wN { \if_false: } \fi:
}
-\cs_new_protected:Npn \__cmd_get_arg_spec_error:N #1
- {
- \bool_set_false:N \l__cmd_environment_bool
- \tl_set:Nn \l__cmd_fn_tl {#1}
- \__cmd_get_arg_spec_error_aux:n { \cs_if_exist:NTF #1 }
- }
-\cs_new_protected:Npn \__cmd_get_arg_spec_error:n #1
- {
- \bool_set_true:N \l__cmd_environment_bool
- \str_set:Nx \l__cmd_environment_str {#1}
- \__cmd_get_arg_spec_error_aux:n
- { \cs_if_exist:cTF { \l__cmd_environment_str } }
- }
-\cs_new_protected:Npn \__cmd_get_arg_spec_error_aux:n #1
- {
- #1
- {
- \msg_error:nnx { cmd } { non-xparse }
- { \__cmd_environment_or_command: }
- }
- {
- \msg_error:nnx { cmd } { unknown }
- { \__cmd_environment_or_command: }
- }
- }
-\cs_new_protected:Npn \__cmd_get_arg_spec:NTF #1#2#3
- {
- \__kernel_cmd_if_xparse:NTF #1
- {
- \tl_set:Nx \ArgumentSpecification { \tl_item:Nn #1 { 2 } }
- #2
- }
- {#3}
- }
-\cs_new_eq:NN \__cmd_chk_if_free_cs:N \__kernel_chk_if_free_cs:N
-\cs_gset_eq:NN \__kernel_chk_if_free_cs:N \use_none:n
-\tl_new:N \ArgumentSpecification
-\cs_new_protected:Npn \__cmd_get_arg_spec:N #1
- {
- \__cmd_get_arg_spec:NTF #1 { }
- { \__cmd_get_arg_spec_error:N #1 }
- }
-\cs_new_protected:Npn \__cmd_get_arg_spec:n #1
- {
- \exp_args:Nc \__cmd_get_arg_spec:NTF
- { environment~ \tl_to_str:n {#1} }
- { }
- { \__cmd_get_arg_spec_error:n {#1} }
- }
-\cs_new_protected:Npn \__cmd_show_arg_spec:N #1
- {
- \__cmd_get_arg_spec:NTF #1
- { \tl_show:N \ArgumentSpecification }
- { \__cmd_get_arg_spec_error:N #1 }
- }
-\cs_new_protected:Npn \__cmd_show_arg_spec:n #1
- {
- \exp_args:Nc \__cmd_get_arg_spec:NTF
- { environment~ \tl_to_str:n {#1} }
- { \tl_show:N \ArgumentSpecification }
- { \__cmd_get_arg_spec_error:n {#1} }
- }
\cs_new_protected:Npn \__cmd_check_definable:nNT #1
{ \tl_trim_spaces_apply:nN {#1} \__cmd_check_definable_aux:nN }
\group_begin:
@@ -4641,12 +4590,6 @@ of this package available from CTAN}
LaTeX~did~not~find~this~argument~and~will~insert~a~default~value~
for~further~processing.
}
-\msg_new:nnnn { cmd } { non-xparse }
- { \str_uppercase:n #1~not~defined~using~xparse. }
- {
- You~have~asked~for~the~argument~specification~for~the~#1,~
- but~this~was~not~defined~using~xparse.
- }
\msg_new:nnnn { cmd } { arg-split }
{ Too~many~'#1'~separators~in~argument. }
{
@@ -4654,12 +4597,6 @@ of this package available from CTAN}
at~each~occurrence~of~the~separator~'#1'~into~#2~parts.~
Too~many~separators~were~found.
}
-\msg_new:nnnn { cmd } { unknown }
- { Unknown~document~#1. }
- {
- You~have~asked~for~the~argument~specification~for~the~#1,~
- but~it~is~not~defined.
- }
\msg_new:nnnn { cmd } { verbatim-nl }
{ Verbatim-like~#1~ended~by~end~of~line. }
{
@@ -4860,18 +4797,6 @@ of this package available from CTAN}
\cs_new_eq:NN \SplitList \__cmd_split_list:nn
\cs_new_eq:NN \TrimSpaces \__cmd_trim_spaces:n
\cs_new_eq:NN \ProcessList \tl_map_function:nN
-\cs_new_protected:Npn \GetDocumentCommandArgSpec #1
- {
- \__cmd_check_definable:nNT {#1} \GetDocumentCommandArgSpec
- { \__cmd_get_arg_spec:N #1 }
- }
-\cs_new_eq:NN \GetDocumentEnvironmentArgSpec \__cmd_get_arg_spec:n
-\cs_new_protected:Npn \ShowDocumentCommandArgSpec #1
- {
- \__cmd_check_definable:nNT {#1} \ShowDocumentCommandArgSpec
- { \__cmd_show_arg_spec:N #1 }
- }
-\cs_new_eq:NN \ShowDocumentEnvironmentArgSpec \__cmd_show_arg_spec:n
\cs_gset_eq:NN \__kernel_chk_if_free_cs:N \__cmd_chk_if_free_cs:N
\cs_undefine:N \__cmd_chk_if_free_cs:N
@@ -4885,7 +4810,7 @@ of this package available from CTAN}
%%% From File: lthooks.dtx
\def\lthooksversion{v1.1f}
-\def\lthooksdate{2023/06/16}
+\def\lthooksdate{2023/10/02}
\ExplSyntaxOn
\NewModuleRelease{2020/10/01}{lthooks}
{The~hook~management~system}
@@ -8348,6 +8273,198 @@ of this package available from CTAN}
\EndModuleRelease
\ExplSyntaxOff
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% From File: ltsockets.dtx
+\def\ltsocketsversion{0.9a}
+\def\ltsocketsdate{2023-08-21}
+\ExplSyntaxOn
+\NewModuleRelease{2023/11/01}{ltsockets}
+ {The~socket~management~system}
+\bool_new:N \g__socket_debug_bool
+\cs_new_eq:NN \__socket_debug:n \use_none:n
+\cs_new_eq:NN \__socket_debug_term:n \use_none:n
+\cs_new_protected:Npn \socket_debug_on:
+ {
+ \bool_gset_true:N \g__socket_debug_bool
+ \__socket_debug_gset:
+ }
+\cs_new_protected:Npn \socket_debug_off:
+ {
+ \bool_gset_false:N \g__socket_debug_bool
+ \__socket_debug_gset:
+ }
+\cs_new_protected:Npn \__socket_debug_gset:
+ {
+ \cs_gset_protected:Npx \__socket_debug:n ##1
+ { \bool_if:NT \g__socket_debug_bool {##1} }
+ \cs_gset_protected:Npx \__socket_debug_term:n ##1
+ { \bool_if:NT \g__socket_debug_bool
+ { \iow_term:x { ^^J [Sockets]~ ==>~ ##1} } }
+ }
+\cs_new_protected:Npn \socket_new:nn #1 #2 {
+ \str_if_exist:cTF { l__socket_#1_plug_str }
+ {
+ \msg_error:nnn { socket } { already-declared } {#1}
+ }
+ {
+ \int_if_zero:nTF \tex_currentgrouplevel:D
+ {
+ \str_new:c { l__socket_#1_plug_str }
+ \seq_new:c { l__socket_#1_plugs_seq }
+ \int_const:cn { c__socket_#1_args_int } {#2}
+ \socket_new_plug:nnn {#1} { noop } {}
+ \int_compare:nNnTF {#2} = 1
+ {
+ \socket_new_plug:nnn {#1} { identity } {##1}
+ \socket_assign_plug:nn {#1} { identity }
+ }
+ { \socket_assign_plug:nn {#1} { noop } }
+ \__socket_debug_term:n
+ { Socket~ '#1'~ declared~ with~ #2~ input(s) }
+ }
+ {
+ \msg_error:nn { socket } { not-top-level }
+ }
+ }
+}
+\cs_new_protected:Npn \socket_log:n #1 {
+ \typeout{ Socket~ #1:}
+ \str_if_exist:cTF { l__socket_#1_plug_str }
+ {
+ \typeout{ \@spaces number~ of~ inputs~ =~
+ \int_use:c { c__socket_#1_args_int } }
+ \typeout{ \@spaces available~plugs~ =~
+ \seq_use:cnnn { l__socket_#1_plugs_seq }{,~}{,~}{,~} }
+ \typeout{ \@spaces current~ plug~ =~
+ \str_use:c { l__socket_#1_plug_str } }
+ \typeout{ \@spaces definition~ =~
+ \cs_meaning:c
+ { __socket_#1_plug_ \str_use:c { l__socket_#1_plug_str } :w } }
+ \typeout{}
+ }
+ {
+ \typeout { Socket~ is~ not~ declared! }
+ }
+}
+\cs_new_protected:Npn \socket_show:n #1 {\socket_log:n {#1} \errmessage{}}
+\cs_new_protected:Npn \socket_new_plug:nnn #1#2#3 {
+ \str_if_exist:cTF { l__socket_#1_plug_str }
+ {
+ \cs_if_exist:cTF { __socket_#1_plug_#2:w }
+ {
+ \msg_error:nnnn { socket } { plug-already-declared } {#1} {#2}
+ }
+ {
+ \cs_generate_from_arg_count:cNnn
+ { __socket_#1_plug_#2:w }
+ \cs_new_protected:Npn
+ { \int_use:c { c__socket_#1_args_int } }
+ {#3}
+ \seq_put_right:cn { l__socket_#1_plugs_seq } {#2}
+ \__socket_debug_term:n
+ { Plug~ '#2'~ for~ socket~ '#1'~ declared. }
+ }
+ }
+ {
+ \msg_error:nnn { socket } { undeclared } {#1}
+ }
+}
+\cs_new_protected:Npn \socket_set_plug:nnn #1#2#3 {
+ \str_if_exist:cTF { l__socket_#1_plug_str }
+ {
+ \cs_if_exist:cTF { __socket_#1_plug_#2:w }
+ {
+ \cs_generate_from_arg_count:cNnn
+ { __socket_#1_plug_#2:w }
+ \cs_set_protected:Npn
+ { \int_use:c { c__socket_#1_args_int } }
+ {#3}
+ \__socket_debug_term:n
+ { Plug~ '#2'~ for~ socket~ '#1'~ changed. }
+ }
+ {
+ \msg_error:nnnn { socket } { plug-undeclared } {#1} {#2}
+ }
+ }
+ {
+ \msg_error:nnn { socket } { undeclared } {#1}
+ }
+}
+\cs_new_protected:Npn \socket_assign_plug:nn #1 #2 {
+ \str_if_exist:cTF { l__socket_#1_plug_str }
+ {
+ \cs_if_exist:cTF { __socket_#1_plug_#2:w }
+ {
+ \__socket_debug_term:n
+ { Replacing~ plug~ '\str_use:c { l__socket_#1_plug_str }'~
+ with~ '#2'~ in~ socket~ '#1'. }
+ \str_set:cn { l__socket_#1_plug_str } {#2}
+ }
+ {
+ \msg_error:nnnn { socket } { plug-undeclared } {#1} {#2}
+ }
+ }
+ { \msg_error:nnn { socket } { undeclared } {#1} }
+}
+\cs_new_protected:Npn \socket_use:nw #1 {
+ \__socket_debug_term:n
+ { Socket~ '#1'~ containing~ plug~
+ '\str_use:c { l__socket_#1_plug_str }'~ used. }
+ \use:c { __socket_#1_plug_ \str_use:c { l__socket_#1_plug_str } :w }
+}
+\cs_new_eq:NN \socket_use:n \socket_use:nw % socket with no inputs
+\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
+
+\msg_new:nnnn { socket } { already-declared }
+ { Socket~ '#1'~ already~ declared! }
+ { A~ socket~ can~ only~ be~ declared~ once.~ The~ name~ '#1'~ is~
+ already~ taken.~ Use~ \ShowSocket{#1}~ to~ see~ its~ definition. }
+
+\msg_new:nnnn { socket } { undeclared }
+ { Socket~ '#1'~ undeclared! }
+ { You~ tried~ to~ use~ a~ socket~ that~ was~ not~ declared~ before. }
+
+\msg_new:nnnn { socket } { not-top-level }
+ { Sockets~ can~ only~ be~ declared~ at~ top-level! }
+ { It~ is~ not~ allowed~ to~ declare~ sockets~ inside~ a~
+ group.~ Move~ the~ declaration~ to~ the~ top-level. }
+\msg_new:nnnn { socket } { plug-already-declared }
+ { Plug~ '#2'~ for~ socket~ '#1'~ already~ declared! }
+ { You~ can't~ change~ an~ existing~ plug~ with~ \NewSocketPlug~ and~ it~
+ is~ normally~ not~ sensible~ to~ do~ so.~ Use~ the~ L3~ programming~
+ layer~ function~ \socket_set_plug:nnn~ if~ you~ really~ have~ to. }
+
+\msg_new:nnnn { socket } { plug-undeclared }
+ { Plug~ '#2'~ for~ socket~ '#1'~ undeclared! }
+ { The~ plug~ name~ is~ unknown.~ Is~ the~ name~ misspelled~ or~ did~ you~
+ intend~ to~ assign~ it~ to~ a~ different~ socket? }
+\prop_gput:Nnn \g_msg_module_type_prop { socket } { LaTeX }
+\cs_new_eq:NN \NewSocket \socket_new:nn
+\cs_new_eq:NN \ShowSocket \socket_show:n
+\cs_new_eq:NN \LogSocket \socket_log:n
+\cs_new_eq:NN \NewSocketPlug \socket_new_plug:nnn
+\cs_new_eq:NN \AssignSocketPlug \socket_assign_plug:nn
+\cs_new_eq:NN \UseSocket \socket_use:nw
+\cs_new_eq:NN \DebugSocketsOn \socket_debug_on:
+\cs_new_eq:NN \DebugSocketsOff \socket_debug_off:
+\IncludeInRelease{0000/00/00}{ltsockets}
+ {The~socket~management~(undo)}%
+
+\let \NewSocket \@undefined
+\let \ShowSocket \@undefined
+\let \LogSocket \@undefined
+
+\let \NewSocketPlug \@undefined
+\let \AssignSocketPlug \@undefined
+\let \UseSocket \@undefined
+
+\let \DebugSocketsOn \@undefined
+\let \DebugSocketsOff \@undefined
+
+\EndModuleRelease
+\ExplSyntaxOff
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% From File: ltalloc.dtx
%%% From File: ltcntrl.dtx
%%% From File: lterror.dtx
@@ -8922,6 +9039,27 @@ of this package available from CTAN}
\@esphack
\fi}
\EndIncludeInRelease
+\IncludeInRelease{2023/11/01}%
+ {\tilde}{Protected tilde}%
+\protected\edef~{%
+ \noexpand\ifincsname\noexpand\expandafter\string~%
+ \noexpand\else
+ \noexpand\expandafter\noexpand\nobreakspace
+ \noexpand\fi
+}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\tilde}{Protected tilde}%
+\def~{\nobreakspace{}}
+\EndIncludeInRelease
+\IncludeInRelease{2023/11/01}%
+ {\@xobeytab}{Obeyed tabs}%
+\let\@xobeytab\@xobeysp
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@xobeytab}{Obeyed tabs}%
+\let\@xobeytab\@undefined
+\EndIncludeInRelease
\IncludeInRelease{2015/01/01}%
{\@}{Space after \@}%
\def\@{\spacefactor\@m{}}%
@@ -9373,7 +9511,7 @@ of this package available from CTAN}
\reserved@a}
\EndIncludeInRelease
-\IncludeInRelease{2023/05/01}%
+\IncludeInRelease{2023/06/01}%
{\IfFileExists@}{IfFileExists}
\long\def \IfFileExists@#1#2#3{%
\edef\@filef@und{\IfFileExists@@{#1}}%
@@ -13122,7 +13260,351 @@ of this package available from CTAN}
\let\Ref\@undefined
\EndIncludeInRelease
+%% File: ltproperties.dtx
+\def\ltpropertiesversion{1.0c}
+\def\ltpropertiesdate{2023-10-15}
+
+
+
+\ExplSyntaxOn
+\NewModuleRelease{2023/11/01}{ltproperties}
+ {Cross-referencing~properties}
+\cs_new_protected:Npn \property_new:nnnn #1#2#3#4
+ {
+ \cs_if_free:cTF { __property_code_ #1 : }
+ {
+ \exp_args:Nx \__property_gset:nnnn { \tl_to_str:n {#1} }
+ {#2} {#3} {#4}
+ }
+ {
+ \msg_error:nn { property }{ exists }{#1}
+ }
+ }
+\cs_new_protected:Npn \property_gset:nnnn #1#2#3#4
+ {
+ \__property_gset:ennn { \tl_to_str:n {#1} }
+ {#2} {#3} {#4}
+ }
+\cs_new_protected:Npn \__property_gset:nnnn #1#2#3#4
+ {
+ \cs_gset:cpn { __property_code_ #1 : } {#4}
+ \tl_gclear_new:c { g__property_default_ #1 _tl }
+ \tl_gset:cn { g__property_default_ #1 _tl } {#3}
+ \bool_if_exist:cF { g__property_shipout_ #1 _tl }
+ { \bool_new:c { g__property_shipout_ #1 _tl } }
+ \str_case:nnF {#2}
+ {
+ { now } { { \bool_gset_false:c { g__property_shipout_ #1 _tl } } }
+ { shipout }
+ { \bool_gset_true:c { g__property_shipout_ #1 _tl } }
+ }
+ { \msg_error:nnnn { property } { unknown-setpoint } {#1} {#2} }
+ }
+\cs_generate_variant:Nn \__property_gset:nnnn {ennn}
+\cs_new_protected:Npn \NewProperty #1#2#3#4
+ {
+ \protected@edef\reserved@a{#1}
+ \exp_args:No \property_new:nnnn {\reserved@a} {#2}{#3}{#4}
+ }
+\cs_new_protected:Npn \SetProperty #1#2#3#4
+ {
+ \protected@edef\reserved@a{#1}
+ \exp_args:No \property_gset:nnnn {\reserved@a} {#2}{#3}{#4}
+ }
+\cs_new_protected:Npn \property_record:nN #1#2
+ { \property_record:nV {#1} #2 }
+\cs_new_protected:Npn \property_record:nn #1#2
+ { \__property_record:en { \tl_to_str:n {#1} } {#2} }
+\cs_generate_variant:Nn \property_record:nn { nV , ee, oo }
+\cs_new_protected:Npn \__property_record:nn #1#2
+ {
+ \legacy_if:nT { @filesw }
+ {
+ \iow_shipout_x:Nx \@auxout
+ {
+ \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 }
+\cs_new:Npn \__property_record_value:n #1
+ { \__property_record_value_aux:e { \tl_to_str:n {#1} } }
+\cs_new:Npn \__property_record_value_aux:n #1
+ {
+ \cs_if_exist:cTF { __property_code_ #1 : }
+ {
+ {#1}
+ {
+ \bool_if:cTF { g__property_shipout_ #1 _tl }
+ { \exp_not:c }
+ { \use:c }
+ { __property_code_ #1 : }
+ }
+ }
+ { \msg_expandable_error:nnn { property } { not-declared } {#1} }
+ }
+\cs_generate_variant:Nn \__property_record_value_aux:n { e }
+\NewDocumentCommand\RecordProperties { m m }
+ {
+ \@bsphack
+ \protected@edef\reserved@a{#1}
+ \protected@edef\reserved@b{#2}
+ \property_record:oo {\reserved@a}{\reserved@b}
+ \@esphack
+ }
+\flag_new:n { l__property_ref_flag }
+\cs_new:Npn \property_ref:nn #1#2
+ {
+ \__property_ref:een
+ { \tl_to_str:n {#1} }
+ { \tl_to_str:n {#2} }
+ { \tl_use:c { g__property_default_ #2 _tl } }
+ }
+\cs_generate_variant:Nn \property_ref:nn {ee}
+\cs_new:Npn \property_ref:nnn #1#2#3
+ {
+ \__property_ref:een
+ { \tl_to_str:n {#1} }
+ { \tl_to_str:n {#2} }
+ {#3}
+ }
+\cs_new:Npn \__property_ref:nnn #1#2#3
+ {
+ \tl_if_exist:cTF { g__property_label_ #1 _ #2 _tl }
+ { \tl_use:c { g__property_label_ #1 _ #2 _tl } }
+ {
+ \flag_if_raised:nF
+ { l__property_ref_flag } { \flag_raise:n { l__property_ref_flag } }
+ \tl_if_exist:cTF { g__property_default_ #2 _tl }
+ { #3 }
+ { \msg_expandable_error:nnn { property } { not-declared } {#2} }
+ }
+ }
+\cs_generate_variant:Nn \__property_ref:nnn { ee }
+\cs_generate_variant:Nn \property_ref:nnn {een}
+\NewExpandableDocumentCommand \RefProperty { o m m }
+ {
+ \IfNoValueTF {#1}
+ {
+ \property_ref:ee {#2}{#3}
+ }
+ {
+ \property_ref:een {#2}{#3}{#1}
+ }
+ }
+\cs_new_protected:Npn \new@label@record #1#2
+ {
+ \tl_if_exist:cTF { r@#1 }
+ {
+ \gdef \@multiplelabels
+ { \@latex@warning@no@line { There~were~multiply-defined~labels } }
+ \@latex@warning@no@line { Label~`#1'~multiply~defined }
+ }
+ {
+ \tl_new:c { r@#1 }
+ \tl_gset:cn { r@#1 }{#2}
+ }
+ \__property_data:nnn {#1} #2 { \q_recursion_tail } { ? } \q_recursion_stop
+ }
+\cs_new_protected:Npn \__property_data:nnn #1#2#3
+ {
+ \quark_if_recursion_tail_stop:n {#2}
+ \tl_gclear_new:c { g__property_label_ \tl_to_str:n {#1} _ \tl_to_str:n {#2} _tl }
+ \tl_gset:cn { g__property_label_ \tl_to_str:n {#1} _ \tl_to_str:n {#2} _tl } {#3}
+ \__property_data:nnn {#1}
+ }
+\cs_new_protected:Npn \@kernel@new@label@record@testdef #1 #2
+ {
+ \tl_if_eq:cnF { r@#1 } {#2}
+ { \@tempswatrue }
+ }
+\prg_new_conditional:Npnn \property_if_exist:n #1 { p , T , F, TF }
+ % #1 property
+ {
+ \cs_if_exist:cTF { __property_code_ #1 : }
+ {
+ \prg_return_true:
+ }
+ {
+ \prg_return_false:
+ }
+ }
+\prg_generate_conditional_variant:Nnn \property_if_exist:n {e} {TF}
+\cs_new_eq:NN \IfPropertyExistTF \property_if_exist:eTF
+\prg_new_conditional:Npnn \property_if_recorded:n #1 { p , T , F, TF }
+ % #1 label
+ {
+ \tl_if_exist:cTF { r@#1 }
+ {
+ \prg_return_true:
+ }
+ {
+ \prg_return_false:
+ }
+ }
+\prg_generate_conditional_variant:Nnn \property_if_recorded:n {e} {TF}
+\cs_new_eq:NN \IfLabelExistTF \property_if_recorded:eTF
+\prg_new_conditional:Npnn \property_if_recorded:nn #1#2 { p , T , F, TF }
+ % #1 label #2 property
+ {
+ \tl_if_exist:cTF { g__property_label_ \tl_to_str:n {#1} _ \tl_to_str:n {#2} _tl }
+ {
+ \prg_return_true:
+ }
+ {
+ \prg_return_false:
+ }
+ }
+\prg_generate_conditional_variant:Nnn \property_if_recorded:nn {ee} {TF}
+\cs_new_eq:NN \IfPropertyRecordedTF \property_if_recorded:eeTF
+\cs_new_protected:Npn \property_ref_undefined_warn:
+ {
+ \flag_if_raised:nT { l__property_ref_flag }
+ {
+ \G@refundefinedtrue
+ }
+ }
+\cs_new_protected:Npn \property_ref_undefined_warn:n #1 %#1 label
+ {
+ \property_if_recorded:nF {#1}
+ {
+ \G@refundefinedtrue
+ \@latex@warning{Reference~`#1'~on~page~\thepage\space undefined}%
+ }
+ }
+\cs_new_protected:Npn \property_ref_undefined_warn:nn #1#2 %#1 label, #2 property
+ {
+ \property_if_recorded:nTF {#1}
+ {
+ \property_if_recorded:nnF {#1}{#2}
+ {
+ \G@refundefinedtrue
+ \@latex@warning
+ { Property~`#2'~undefined~for~reference~`#1'~on~page~\thepage }
+ }
+ }
+ {
+ \G@refundefinedtrue
+ \@latex@warning { Reference~`#1'~on~page~\thepage\space undefined }%
+ }
+ }
+\cs_generate_variant:Nn \property_ref_undefined_warn:nn {ee}
+\cs_set_eq:NN \RefUndefinedWarn \property_ref_undefined_warn:ee
+\property_new:nnnn { abspage } { shipout }
+ { 0 } { \int_use:N \g_shipout_readonly_int }
+\property_new:nnnn { page } { shipout } { 0 } { \thepage }
+\property_new:nnnn { pagenum } { shipout } { 0 } { \the \value { page } }
+\property_new:nnnn { label } { now } { ?? } { \@currentlabel }
+\property_new:nnnn { title } { now }
+ { \exp_not:n { \textbf { ?? } } } { \@currentlabelname }
+\property_new:nnnn { target } { now } { } { \@currentHref }
+\newcommand\@currentHpage{}
+\property_new:nnnn { pagetarget } { shipout } { } { \@currentHpage }
+
+\property_new:nnnn { counter } { now } { } { \@currentcounter }
+\property_new:nnnn { xpos } { shipout } { 0} { \int_use:N \tex_lastxpos:D }
+\property_new:nnnn { ypos } { shipout } { 0} { \int_use:N \tex_lastypos:D }
+\msg_new:nnnn { property } { exists }
+ { Property~'#1'~ has~ already~ been~ declared. }
+ { There~ already~ exists~ a~ property~ declaration~ with~ this~
+ name.\\
+ Please~ use~ a~ different~ name~ for~ your~ property.}
+
+\msg_new:nnnn { property } { not-declared }
+ { Property~'#1'~not~declared. }
+ {
+ LaTeX~has~been~asked~to~use~property~'#1',~but~this~
+ name~has~not~been~declared.
+ }
+\msg_new:nnnn { property } { unknown-setpoint }
+ { Unknown~keyword~'#2'~for~setting~property~'#1'. }
+ {
+ LaTeX~has~been~asked~to~set~the~property~'#1',~but~the~keyword~
+ '#2'~is~not~one~of~the~two~known~values:~'now'~or~'shipout'.
+ }
+\IncludeInRelease{0000/00/00}{ltproperties}
+ {cross-referencing~properties~(undo)}%
+
+\let \NewProperty \@undefined
+\let \SetProperty \@undefined
+
+\let \RecordProperties \@undefined
+\let \RefProperty \@undefined
+\let \RefUndefinedWarn \@undefined
+
+\let \IfPropertyExistTF \@undefined
+\let \IfLabelExistTF \@undefined
+\let \IfPropertyRecordedTF \@undefined
+
+\let\new@label@record \@undefined
+\let\@kernel@new@label@record@testdef\@undefined
+\EndModuleRelease
+\ExplSyntaxOff
%%% From File: ltmiscen.dtx
+\IncludeInRelease{2023/11/01}%
+ {\enddocument}{check property labels}%
+\def\enddocument{%
+ \@kernel@before@enddocument
+ \UseOneTimeHook{enddocument}%
+ \@kernel@after@enddocument
+ \@checkend{document}%
+ \clearpage
+ \UseOneTimeHook{enddocument/afterlastpage}%
+ \@kernel@after@enddocument@afterlastpage
+ \begingroup
+ \if@filesw
+ \immediate\closeout\@mainaux
+ \let\@setckpt\@gobbletwo
+ \let\@newl@bel\@testdef
+ \let\new@label@record\@kernel@new@label@record@testdef
+ \@tempswafalse
+ \makeatletter \@@input\jobname.aux
+ \fi
+ \UseOneTimeHook{enddocument/afteraux}%
+ \UseOneTimeHook{enddocument/info}%
+ \endgroup
+ \UseOneTimeHook{enddocument/end}%
+ \deadcycles\z@\@@end}
+\NewHook{enddocument}
+\NewHook{enddocument/afterlastpage}
+\NewHook{enddocument/afteraux}
+\NewHook{enddocument/info}
+\NewHook{enddocument/end}
+\AddToHook{enddocument/info}[kernel/filelist]{\@dofilelist}
+\AddToHook{enddocument/info}[kernel/warnings]{\@enddocument@kernel@warnings}
+\AddToHook{enddocument/info}[kernel/release]{%
+ \let\show@release@info\wlog
+ \show@release@info{ ***********}%
+ \the\LaTeXReleaseInfo
+ \show@release@info{ ***********}}
+
+\DeclareHookRule{enddocument/info}{kernel/release}{before}{kernel/filelist}
+\DeclareHookRule{enddocument/info}{kernel/filelist}{before}{kernel/warnings}
+\def\@enddocument@kernel@warnings{%
+ \ifdim \font@submax >\fontsubfuzz\relax
+ \@font@warning{Size substitutions with differences\MessageBreak
+ up to \font@submax\space have occurred.\@gobbletwo}%
+ \fi
+ \@defaultsubs
+ \@refundefined
+ \if@filesw
+ \ifx \@multiplelabels \relax
+ \if@tempswa
+ \@latex@warning@no@line{Label(s) may have changed.
+ Rerun to get cross-references right}%
+ \fi
+ \else
+ \@multiplelabels
+ \fi
+ \ifx \@extra@page@added \relax
+ \@latex@warning@no@line{Temporary extra page added at the end.
+ Rerun to get it removed}%
+ \fi
+ \fi
+}
+\EndIncludeInRelease
\IncludeInRelease{2020/10/01}%
{\enddocument}{Use Hooks}%
\def\enddocument{%
@@ -13236,7 +13718,6 @@ of this package available from CTAN}
\IncludeInRelease{2018/12/01}%
{\protected@file@percent}{Mask line endings}%
\protected\def\protected@file@percent{}
-
\catcode`\^^A=9
\long\gdef\add@percent@to@temptokena
#1\protected@file@percent#2\add@percent@to@temptokena
@@ -13454,6 +13935,21 @@ of this package available from CTAN}
\kernel@make@fragile\raggedleft
\EndIncludeInRelease
+\IncludeInRelease{2023/11/01}%
+ {\@vobeytabs}{Obeyed tabs}%
+{\catcode`\ =\active%
+\gdef\@vobeyspaces{\catcode`\ \active\let \@xobeysp\@vobeytabs}}
+{\catcode`\^^I=\active
+\gdef\@vobeytabs{\catcode`\^^I\active\let^^I\@xobeytab}%
+\global\let^^I=\space
+}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@vobeytabs}{Obeyed tabs}%
+{\catcode`\ =\active%
+\gdef\@vobeyspaces{\catcode`\ \active\let \@xobeysp}}
+\let\@vobeytabs\@undefined
+\EndIncludeInRelease
\IncludeInRelease{2017-04-15}{\@verbatim}%
{Disable hyphenation in verbatim}%
\def\@verbatim{\trivlist \item\relax
@@ -13505,17 +14001,6 @@ of this package available from CTAN}
\DeclareRobustCommand\verbvisiblespace
{\leavevmode{\usefont{OT1}{cmtt}{m}{n}\asciispace}} % xetex/luatex version
\fi
-
-\def\@setupverbvisiblespace{%
- \ifx\verbvisiblespace\asciispace
- \let\@xobeysp\asciispace
- \else
- \setbox\z@\hbox{x}%
- \setbox\@verbvisiblespacebox\hbox to\wd\z@{\hss\verbvisiblespace\hss}%
- \def\@xobeysp{\leavevmode\copy\@verbvisiblespacebox}%
- \fi
-}
-
\newbox\@verbvisiblespacebox
\@namedef{verbatim*}{\@verbatim
\@setupverbvisiblespace
@@ -13532,9 +14017,62 @@ of this package available from CTAN}
\let\@setupverbvisiblespace\@undefined
\let\@verbvisiblespacebox \@undefined
\EndIncludeInRelease
+\IncludeInRelease{2023/11/01}%
+ {\@setupverbvisiblespace}{Setup visible tab for \verb}%
+\def\@setupverbvisiblespace{%
+ \ifx\verbvisiblespace\asciispace
+ \let\@xobeysp\asciispace
+ \else
+ \setbox\z@\hbox{x}%
+ \setbox\@verbvisiblespacebox\hbox to\wd\z@{\hss\verbvisiblespace\hss}%
+ \def\@xobeysp{\leavevmode\copy\@verbvisiblespacebox}%
+ \fi
+ \@setupverbvisibletab
+}
+\EndIncludeInRelease
+\IncludeInRelease{2018/12/01}%
+ {\@setupverbvisiblespace}{Setup visible space for \verb}%
+\def\@setupverbvisiblespace{%
+ \ifx\verbvisiblespace\asciispace
+ \let\@xobeysp\asciispace
+ \else
+ \setbox\z@\hbox{x}%
+ \setbox\@verbvisiblespacebox\hbox to\wd\z@{\hss\verbvisiblespace\hss}%
+ \def\@xobeysp{\leavevmode\copy\@verbvisiblespacebox}%
+ \fi
+}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@setupverbvisiblespace}{Setup visible space for \verb}%
+\let\@setupverbvisiblespace\@undefined
+\EndIncludeInRelease
+\IncludeInRelease{2023/11/01}%
+ {\@setupverbvisibletab}{Setup visible tab for \verb}%
+\def\@setupverbvisibletab{\let\@xobeytab\@xobeysp}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@setupverbvisibletab}{Setup visible tab for \verb}%
+\let\@setupverbvisibletab\@undefined
+\EndIncludeInRelease
+\IncludeInRelease{2023/11/01}%
+ {\@sverb}{Support visible tabs}%
+\def\@sverb#1{\if\noexpand#1 \expandafter\@sverb\else\@@sverb{#1}\fi}
+\def\@@sverb#1{%
+ \catcode`#1\active
+ \lccode`\~`#1%
+ \gdef\verb@balance@group{\verb@egroup
+ \@latex@error{\noexpand\verb illegal in argument}\@ehc}%
+ \aftergroup\verb@balance@group
+ \lowercase{\let~\verb@egroup}%
+ \ifnum0%
+ \ifnum\catcode`\ =\active\else 1\fi
+ \ifnum\catcode`\^^I=\active\else 1\fi
+ =0 %
+ \else \@setupverbvisiblespace \@vobeyspaces \fi
+}
+\EndIncludeInRelease
\IncludeInRelease{2020/10/01}%
{\@sverb}{Drop spaces before \verb delimiter}%
-\def\@sverb#1{\if\noexpand#1 \expandafter\@sverb\else\@@sverb{#1}\fi}
\def\@@sverb#1{%
\catcode`#1\active
\lccode`\~`#1%
@@ -13806,6 +14344,28 @@ of this package available from CTAN}
{\@ifnextchar[\@makebox\mbox}}%
\expandafter\let\csname makebox \endcsname\@undefined
\EndIncludeInRelease
+\IncludeInRelease{2023/11/01}%
+ {\@imakebox}{Unknown alignment warning}%
+\long\def\@imakebox[#1][#2]#3{%
+ \@begin@tempboxa\hbox{#3}%
+ \setlength\@tempdima{#1}% support calc
+ \hb@xt@\@tempdima{%
+ \expandafter\ifx\csname bm@#2\endcsname\relax
+ \bm@c
+ \@latex@warning{Unexpected alignment #2}%
+ \else
+ \csname bm@#2\endcsname
+ \fi}%
+ \@end@tempboxa}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@imakebox}{Unknown alignment warning}%
+\long\def\@imakebox[#1][#2]#3{%
+ \@begin@tempboxa\hbox{#3}%
+ \setlength\@tempdima{#1}% support calc
+ \hb@xt@\@tempdima{\csname bm@#2\endcsname}%
+ \@end@tempboxa}
+\EndIncludeInRelease
\IncludeInRelease{2020/10/01}%
{\@imakepicbox}{default units}%
\long\def\@imakepicbox(#1,#2)[#3]#4{%
@@ -13890,6 +14450,35 @@ of this package available from CTAN}
\@framepicbox{\@ifnextchar[\@framebox\fbox}}%
\expandafter\let\csname framebox \endcsname\@undefined
\EndIncludeInRelease
+\IncludeInRelease{2023/11/01}%
+ {\@iframebox}{Unknown alignment warning}%
+\long\def\@iframebox[#1][#2]#3{%
+ \leavevmode
+ \@begin@tempboxa\hbox{#3}%
+ \setlength\@tempdima{#1}%
+ \setbox\@tempboxa\hb@xt@\@tempdima
+ {\kern\fboxsep
+ \expandafter\ifx\csname bm@#2\endcsname\relax
+ \bm@c
+ \@latex@warning{Unexpected alignment #2}%
+ \else
+ \csname bm@#2\endcsname
+ \fi
+ \kern\fboxsep}%
+ \@frameb@x{\kern-\fboxrule}%
+ \@end@tempboxa}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@iframebox}{Unknown alignment warning}%
+\long\def\@iframebox[#1][#2]#3{%
+ \leavevmode
+ \@begin@tempboxa\hbox{#3}%
+ \setlength\@tempdima{#1}%
+ \setbox\@tempboxa\hb@xt@\@tempdima
+ {\kern\fboxsep\csname bm@#2\endcsname\kern\fboxsep}%
+ \@frameb@x{\kern-\fboxrule}%
+ \@end@tempboxa}
+\EndIncludeInRelease
\IncludeInRelease{2015/01/01}%
{\parbox}{Make \parbox robust}%
\DeclareRobustCommand\parbox{%
@@ -13905,6 +14494,53 @@ of this package available from CTAN}
{\@iiiparbox c\relax[s]}}%
\expandafter\let\csname parbox \endcsname\@undefined
\EndIncludeInRelease
+\IncludeInRelease{2023/11/01}%
+ {\@iiiparbox}{Unknown alignment warning}%
+\long\def\@iiiparbox#1#2[#3]#4#5{%
+ \leavevmode
+ \@pboxswfalse
+ \setlength\@tempdima{#4}%
+ \@begin@tempboxa\vbox{\hsize\@tempdima\@parboxrestore#5\@@par}%
+ \ifx\relax#2\else
+ \setlength\@tempdimb{#2}%
+ \edef\@parboxto{to\the\@tempdimb}%
+ \fi
+ \if#1b\vbox
+ \else\if #1t\vtop
+ \else\ifmmode\vcenter
+ \else\@pboxswtrue $\vcenter
+ \fi\fi\fi
+ \@parboxto{\let\hss\vss\let\unhbox\unvbox
+ \expandafter\ifx\csname bm@#3\endcsname\relax
+ \bm@c
+ \@latex@warning{Unexpected alignment #3}%
+ \else
+ \csname bm@#3\endcsname
+ \fi}%
+ \if@pboxsw \m@th$\fi
+ \@end@tempboxa}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@iiiparbox}{Unknown alignment warning}%
+\long\def\@iiiparbox#1#2[#3]#4#5{%
+ \leavevmode
+ \@pboxswfalse
+ \setlength\@tempdima{#4}%
+ \@begin@tempboxa\vbox{\hsize\@tempdima\@parboxrestore#5\@@par}%
+ \ifx\relax#2\else
+ \setlength\@tempdimb{#2}%
+ \edef\@parboxto{to\the\@tempdimb}%
+ \fi
+ \if#1b\vbox
+ \else\if #1t\vtop
+ \else\ifmmode\vcenter
+ \else\@pboxswtrue $\vcenter
+ \fi\fi\fi
+ \@parboxto{\let\hss\vss\let\unhbox\unvbox
+ \csname bm@#3\endcsname}%
+ \if@pboxsw \m@th$\fi
+ \@end@tempboxa}
+\EndIncludeInRelease
\IncludeInRelease{2017-04-15}%
{\normallineskiplimit}
{reset \lineskiplimit}%
@@ -16620,7 +17256,7 @@ of this package available from CTAN}
\EndIncludeInRelease
%%% From File: ltfilehook.dtx
\providecommand\ltfilehookversion{v1.0o}
-\providecommand\ltfilehookdate{2023/04/02}
+\providecommand\ltfilehookdate{2023/07/10}
\IncludeInRelease{2020/10/01}%
{\CurrentFile}{Hook management file}%
\ExplSyntaxOn
diff --git a/Master/texmf-dist/tex/latex/base/ltluatex.lua b/Master/texmf-dist/tex/latex/base/ltluatex.lua
index 5573fc75636..45bd9dff75b 100644
--- a/Master/texmf-dist/tex/latex/base/ltluatex.lua
+++ b/Master/texmf-dist/tex/latex/base/ltluatex.lua
@@ -230,7 +230,11 @@ local luafunction_count_name =
luafunction_count_name or "e@alloc@luafunction@count"
local function new_luafunction(name)
tex_setcount("global", luafunction_count_name,
- tex_count[luafunction_count_name] + 1)
+ math.max(
+ #(lua.get_functions_table()),
+ tex_count[luafunction_count_name])
+ + 1)
+ lua.get_functions_table()[tex_count[luafunction_count_name]] = false
if tex_count[luafunction_count_name] > 65534 then
luatexbase_error("No room for a new luafunction register")
end
@@ -758,7 +762,7 @@ end
luatexbase.uninstall = uninstall
create_callback('pre_mlist_to_hlist_filter', 'list')
create_callback('mlist_to_hlist', 'exclusive', node.mlist_to_hlist)
-create_callback('post_mlist_to_hlist_filter', 'list')
+create_callback('post_mlist_to_hlist_filter', 'reverselist')
function shared_callbacks.mlist_to_hlist.handler(head, display_type, need_penalties)
local current = call_callback("pre_mlist_to_hlist_filter", head, display_type, need_penalties)
if current == false then
diff --git a/Master/texmf-dist/tex/latex/base/ltluatex.tex b/Master/texmf-dist/tex/latex/base/ltluatex.tex
index ddef389f103..c42a75e40b1 100644
--- a/Master/texmf-dist/tex/latex/base/ltluatex.tex
+++ b/Master/texmf-dist/tex/latex/base/ltluatex.tex
@@ -47,7 +47,7 @@
#1#2[#3]{\endgroup\immediate\write-1{File: #1 #3}}
\fi
\ProvidesFile{ltluatex.tex}%
-[2023/01/19 v1.2b
+[2023/08/03 v1.2c
LuaTeX support for plain TeX (core)
]
\edef\etatcatcode{\the\catcode`\@}
diff --git a/Master/texmf-dist/tex/latex/base/source2edoc.cls b/Master/texmf-dist/tex/latex/base/source2edoc.cls
index f0f1479cac5..5f731af7ae8 100644
--- a/Master/texmf-dist/tex/latex/base/source2edoc.cls
+++ b/Master/texmf-dist/tex/latex/base/source2edoc.cls
@@ -30,7 +30,7 @@
\seq_if_empty:NF \g__codedoc_nested_names_seq
{
% This is a crude change: we grab the first name
- \__codedoc_get_hyper_target:xN
+ \__codedoc_get_hyper_target:eN
{ \seq_item:Nn \g__codedoc_nested_names_seq { 1 } }
\l__codedoc_tmpa_tl
% ... and check if it has a reference
diff --git a/Master/texmf-dist/tex/latex/base/structuredlog.sty b/Master/texmf-dist/tex/latex/base/structuredlog.sty
index cd77c7b8d2c..a5392defc98 100644
--- a/Master/texmf-dist/tex/latex/base/structuredlog.sty
+++ b/Master/texmf-dist/tex/latex/base/structuredlog.sty
@@ -43,7 +43,7 @@
%% extension .ins) which are part of the distribution.
%%% From File: ltfilehook.dtx
\providecommand\ltfilehookversion{v1.0o}
-\providecommand\ltfilehookdate{2023/04/02}
+\providecommand\ltfilehookdate{2023/07/10}
\ProvidesExplPackage
{structuredlog}{\ltfilehookdate}{\ltfilehookversion}
{Structuring the TeX transcript file}
diff --git a/Master/texmf-dist/tex/latex/firstaid/filehook-ltx.sty b/Master/texmf-dist/tex/latex/firstaid/filehook-ltx.sty
index 2415a38f1c8..ffff6eb4d99 100644
--- a/Master/texmf-dist/tex/latex/firstaid/filehook-ltx.sty
+++ b/Master/texmf-dist/tex/latex/firstaid/filehook-ltx.sty
@@ -11,7 +11,7 @@
%% (but please observe conditions on bug reports sent to that address!)
%%
%%
-%% Copyright (C) 2020-2021
+%% Copyright (C) 2020-2023
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
diff --git a/Master/texmf-dist/tex/latex/firstaid/latex2e-first-aid-for-external-files.ltx b/Master/texmf-dist/tex/latex/firstaid/latex2e-first-aid-for-external-files.ltx
index df4b77ed714..d782bcd647e 100644
--- a/Master/texmf-dist/tex/latex/firstaid/latex2e-first-aid-for-external-files.ltx
+++ b/Master/texmf-dist/tex/latex/firstaid/latex2e-first-aid-for-external-files.ltx
@@ -11,7 +11,7 @@
%% (but please observe conditions on bug reports sent to that address!)
%%
%%
-%% Copyright (C) 2020-2021
+%% Copyright (C) 2020-2023
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -34,8 +34,8 @@
%%
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
-\def\LaTeXFirstAidDate{2023/05/20}
-\def\LaTeXFirstAidVersion{v1.0z}
+\def\LaTeXFirstAidDate{2023/09/20}
+\def\LaTeXFirstAidVersion{v1.1b}
\ProvidesFile{latex2e-first-aid-for-external-files.ltx}
[\LaTeXFirstAidDate\space \LaTeXFirstAidVersion\space
LaTeX kernel fixes to external files and packages]
@@ -167,19 +167,8 @@
\ngermanTeX
}%
}
-\AddToHook{file/memoir.cls/before}[firstaid]{%
- \expandafter\def\expandafter\@tempa\string\dimen{}%
- \edef\kernel@stockheight{\expandafter\@tempa\meaning\stockheight}%
- \edef\kernel@stockwidth{\expandafter\@tempa\meaning\stockwidth}%
- \let\stockheight\@undefined
- \let\stockwidth\@undefined
-}
-\AddToHook{file/memoir.cls/after}[firstaid]{%
- \dimen\kernel@stockheight=\stockheight
- \dimen\kernel@stockwidth=\stockwidth
- \dimendef\stockheight=\kernel@stockheight
- \dimendef\stockwidth=\kernel@stockwidth
-}
+\AddToHook{file/underscore.sty/after}[firstaid]{%
+ \FirstAidNeededT{underscore}{sty}{2006/09/13}{\RequirePackage{underscore-ltx}}}
\endinput
%%
%% End of file `latex2e-first-aid-for-external-files.ltx'.
diff --git a/Master/texmf-dist/tex/latex/firstaid/everysel-ltx.sty b/Master/texmf-dist/tex/latex/firstaid/underscore-ltx.sty
index c7e7e6e06ca..3a0df981742 100644
--- a/Master/texmf-dist/tex/latex/firstaid/everysel-ltx.sty
+++ b/Master/texmf-dist/tex/latex/firstaid/underscore-ltx.sty
@@ -1,17 +1,17 @@
%%
-%% This is file `everysel-ltx.sty',
+%% This is file `underscore-ltx.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
-%% latex2e-first-aid-for-external-files.dtx (with options: `everysel-ltx')
+%% latex2e-first-aid-for-external-files.dtx (with options: `underscore-ltx')
%%
%% The source is maintained by the LaTeX Project team and bug
%% reports for it can be opened at https://latex-project.org/bugs/
%% (but please observe conditions on bug reports sent to that address!)
%%
%%
-%% Copyright (C) 2020-2021
+%% Copyright (C) 2020-2023
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
%%
@@ -34,13 +34,23 @@
%%
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
-\ProvidesPackage{everysel-ltx}
- [2020/12/04 v1.0a
- Emulation of the original everysel^^Jpackage with kernel methods]
-\newcommand*{\EverySelectfont}[1]
- {\AddToHook{selectfont}{#1}}
-\newcommand*{\AtNextSelectfont}[1]
- {\AddToHookNext{selectfont}{#1}}
+\ProvidesPackage{underscore-ltx}[2023/09/20 LaTeX firstaid to make underscore protected ]
+\begingroup
+ \catcode`\_=\active
+ \protected\gdef _{%
+ \ifincsname %
+ \string_%
+ \else
+ \ifx\protect\@typeset@protect
+ \ifmmode \sb \else \BreakableUnderscore \fi
+ \else
+ \ifx\protect\@unexpandable@protect \noexpand_%
+ \else \protect_%
+ \fi\fi
+ \fi
+ }
+ \global\let\ActiveUnderscore=_
+\endgroup
\endinput
%%
-%% End of file `everysel-ltx.sty'.
+%% End of file `underscore-ltx.sty'.
diff --git a/Master/texmf-dist/tex/latex/latex-lab/bib-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex/latex-lab/bib-latex-lab-testphase.ltx
index 1b8ca3cb7ad..b15043fd884 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/bib-latex-lab-testphase.ltx
+++ b/Master/texmf-dist/tex/latex/latex-lab/bib-latex-lab-testphase.ltx
@@ -33,8 +33,11 @@
%%
%%
%% File: latex-lab-bib.dtx (C) Copyright 2023 LaTeX Project
+\def\ltlabbibdate{2023-07-20}
+\def\ltlabbibversion{0.81a}
\ProvidesFile{bib-latex-lab-testphase.ltx}
- [2023-05-18 v0.8 code related to the tagging of bib and citations]
+ [\ltlabbibdate\space v\ltlabbibversion\space
+ latex-lab wrapper bib]
\RequirePackage{latex-lab-testphase-bib}
diff --git a/Master/texmf-dist/tex/latex/latex-lab/block-tagging-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex/latex-lab/block-latex-lab-testphase.ltx
index 80eb00b8567..98dd43bb43d 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/block-tagging-latex-lab-testphase.ltx
+++ b/Master/texmf-dist/tex/latex/latex-lab/block-latex-lab-testphase.ltx
@@ -1,10 +1,10 @@
%%
-%% This is file `block-tagging-latex-lab-testphase.ltx',
+%% This is file `block-latex-lab-testphase.ltx',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
-%% latex-lab-block-tagging.dtx (with options: `latex-lab')
+%% latex-lab-block.dtx (with options: `latex-lab')
%%
%% This is a generated file.
%%
@@ -32,17 +32,15 @@
%% where one can also log issues in case there are any.
%%
%%
-%% File: latex-lab-block-tagging.dtx (C) Copyright 2021-2023 LaTeX Project
-
-\def\ltblocksversion{v0.8d}
-\def\ltblocksdate{2023/06/07}
-
-\ProvidesFile{block-tagging-latex-lab-testphase.ltx}
- [\ltblocksdate\space \ltblocksversion\space
+%% File: latex-lab-block.dtx (C) Copyright 2021-2023 LaTeX Project
+\def\ltlabblockdate{2023-09-01}
+\def\ltlabblockversion{0.8h}
+\ProvidesFile{block-latex-lab-testphase.ltx}
+ [\ltlabblockdate\space v\ltlabblockversion\space
blockenv implementation]
-\RequirePackage{latex-lab-testphase-block-tagging}
+\RequirePackage{latex-lab-testphase-block}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\endinput
%%
-%% End of file `block-tagging-latex-lab-testphase.ltx'.
+%% End of file `block-latex-lab-testphase.ltx'.
diff --git a/Master/texmf-dist/tex/latex/latex-lab/documentmetadata-support.ltx b/Master/texmf-dist/tex/latex/latex-lab/documentmetadata-support.ltx
index ba72b004841..fa6a346a3a8 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/documentmetadata-support.ltx
+++ b/Master/texmf-dist/tex/latex/latex-lab/documentmetadata-support.ltx
@@ -33,8 +33,8 @@
%%
%%
%% File: documentmetadata-support.dtx
-\def\documentmetadatasupportversion{1.0d}
-\def\documentmetadatasupportdate{2023-06-07}
+\def\documentmetadatasupportversion{1.0f}
+\def\documentmetadatasupportdate{2023-09-01}
\RequirePackage{pdfmanagement-testphase}
\ExplSyntaxOn\makeatletter
@@ -180,6 +180,16 @@
\tagpdfsetup{log=#1}
}
}
+ ,debug / tagpdf .code:n =
+ {
+ \AddToHook
+ {
+ package/tagpdf/after
+ }
+ {
+ \RequirePackage{tagpdf-debug}
+ }
+ }
,debug / uncompress .code:n =
{
\pdf_uncompress:
diff --git a/Master/texmf-dist/tex/latex/latex-lab/firstaid-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex/latex-lab/firstaid-latex-lab-testphase.ltx
index 4d8ea15f1e0..f8719fcdfbf 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/firstaid-latex-lab-testphase.ltx
+++ b/Master/texmf-dist/tex/latex/latex-lab/firstaid-latex-lab-testphase.ltx
@@ -33,9 +33,12 @@
%%
%%
%% File: latex-lab-firstaid.dtx (C) Copyright 2023 LaTeX Project
+\def\ltlabfirstaiddate{2023-07-20}
+\def\ltlabfirstaidversion{0.85a}
\ProvidesFile{firstaid-latex-lab-testphase.ltx}
- [2023-06-04 v0.8 Temporary patches to external packages need for the tagging project]
+ [\ltlabfirstaiddate\space v\ltlabfirstaidversion\space
+ latex-lab wrapper firstaid]
\RequirePackage{latex-lab-testphase-firstaid}
diff --git a/Master/texmf-dist/tex/latex/latex-lab/float-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex/latex-lab/float-latex-lab-testphase.ltx
index 29a76c4ed93..3f8eefffbdd 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/float-latex-lab-testphase.ltx
+++ b/Master/texmf-dist/tex/latex/latex-lab/float-latex-lab-testphase.ltx
@@ -33,9 +33,11 @@
%%
%%
%% File: latex-lab-float.dtx (C) Copyright 2023 LaTeX Project
+\def\ltlabfloatdate{2023-07-20}
+\def\ltlabfloatversion{0.81a}
\ProvidesFile{float-latex-lab-testphase.ltx}
- [2023-04-30 v0.8 code related to the tagging of floats]
+ [\ltlabfloatdate\space v\ltlabfloatversion\space latex-lab wrapper float]
\RequirePackage{latex-lab-testphase-float}
\endinput
%%
diff --git a/Master/texmf-dist/tex/latex/latex-lab/graphic-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex/latex-lab/graphic-latex-lab-testphase.ltx
index 12fd17f5d2c..b8d2878c302 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/graphic-latex-lab-testphase.ltx
+++ b/Master/texmf-dist/tex/latex/latex-lab/graphic-latex-lab-testphase.ltx
@@ -33,9 +33,11 @@
%%
%%
%% File: latex-lab-graphic.dtx (C) Copyright 2022-2023 LaTeX Project
+\def\ltlabgraphicdate{2023-10-13}
+\def\ltlabgraphicversion{0.80b}
\ProvidesFile{graphic-latex-lab-testphase.ltx}
- [2023-04-07 v0.8 code related to the tagging included graphics]
+ [\ltlabgraphicdate\space v\ltlabgraphicversion\space latex-lab wrapper graphic]
\RequirePackage{latex-lab-testphase-graphic}
\endinput
%%
diff --git a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-footmisc.ltx b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-footmisc.ltx
index 79d3063aeb4..a4c95e4cb11 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-footmisc.ltx
+++ b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-footmisc.ltx
@@ -33,9 +33,12 @@
%%
%%
%% File: latex-lab-footnotes.dtx
+\def\ltlabfootnotedate{2023-09-04}
+\def\ltlabfootnoteversion{0.8c}
+
%%
%% Copyright (c) 1995-2011 Robin Fairbairns
-%% Copyright (c) 2018-2022 Robin Fairbairns, Frank Mittelbach
+%% Copyright (c) 2018-2023 Robin Fairbairns, Frank Mittelbach
%%
%% This file is part of the `latex-lab Bundle'.
%% --------------------------------------------
@@ -50,9 +53,6 @@
%%
%% This work has the LPPL maintenance status 'maintained'.
%%
-%%
-%% File: footmisc.dtx (C) Copyright 1995-2011 Robin Fairbairns
-%% (C) Copyright 2018-2022 Frank Mittelbach
\NeedsTeXFormat{LaTeX2e}
\providecommand\DeclareRelease[3]{}
\providecommand\DeclareCurrentRelease[2]{}
@@ -92,14 +92,13 @@
option "para"}%
{I shall ignore "\CurrentOption"}%
\else
- \def\@footnotetext@cfgpoint {\marginpar}
\AddToHook{fntext/para}{%
\hsize\marginparwidth % correct the default \hsize
\footnotesep\z@ % don't add a default separation
}
- \def\@footnotetext@cfgpointii {\@makefntext}
- \def\@footnotetext@cfgpointiii {}
- \def\@footnotetext@cfgpointiv {}
+ \AssignSocketPlug{fntext/process}{side}
+ \AssignSocketPlug{fntext/begin}{noop}
+ \AssignSocketPlug{fntext/end}{noop}
\fi
}
\let\footnotelayout\@empty
@@ -168,9 +167,10 @@
\DeclareOption{multiple}{\FN@multiplefootnotetrue}
\ProcessOptions
\ifFN@para
- \def\@makecol@cfgpointii {%
+ \NewSocketPlug{@makecol/footnotes}{para}{%
\global\setbox\footins\vbox{\FN@makefootnoteparagraph}%
}
+ \AssignSocketPlug{@makecol/footnotes}{para}
\fi
\ifFN@fixskip
\def\@outputbox@removebskip{%
@@ -193,61 +193,27 @@
\let\@outputbox@reinsertbskip\relax
\fi
\ifcase \FN@bottomcases\relax
-\ERROR
-\or
+ \ERROR
+\or %1
\ifFN@abovefloats
- \def\@makecol@cfgpoint {%
- \@if@footnotes@TF
- {\@outputbox@append{\vfill}}%
- {\@if@bfloats@TF{\@outputbox@append{\vfill}}%
- {\@outputbox@reinsertbskip}}%
- \@outputbox@appendfootnotes
- \@outputbox@attachfloats
- }
+ \AssignSocketPlug {@makecol/outputbox}{space-footnotes-floats}
\else
- \def\@makecol@cfgpoint {%
- \@outputbox@attachfloats
- \@if@footnotes@TF
- {\@outputbox@append{\vfill}}%
- {\@outputbox@reinsertbskip}%
- \@outputbox@appendfootnotes
- }
+ \AssignSocketPlug {@makecol/outputbox}{floats-footnotes-space}
\fi
-\or
+\or %2
\ifFN@abovefloats
- \def\@makecol@cfgpoint {%
- \@outputbox@appendfootnotes
- \@if@bfloats@TF
- {\@outputbox@append{\vfill}}%
- {\@outputbox@reinsertbskip}%
- \@outputbox@attachfloats
- }
+ \AssignSocketPlug {@makecol/outputbox}{footnotes-space-floats}
\else
- \def\@makecol@cfgpoint {%
- \@if@footnotes@TF
- {\@outputbox@append{\vfill}}%
- {\@if@bfloats@TF{\@outputbox@append{\vfill}}%
- {\@outputbox@reinsertbskip}}%
- \@outputbox@attachfloats
- \@outputbox@appendfootnotes
- }
+ \AssignSocketPlug {@makecol/outputbox}{space-floats-footnotes}
\fi
-\or
+\or %3
\ifFN@abovefloats
- \def\@makecol@cfgpoint {%
- \@outputbox@appendfootnotes
- \@outputbox@attachfloats
- \@outputbox@reinsertbskip
- }
+ \AssignSocketPlug {@makecol/outputbox}{footnotes-floats}
\else
- \def\@makecol@cfgpoint {%
- \@outputbox@attachfloats
- \@outputbox@appendfootnotes
- \@outputbox@reinsertbskip
-}
+ \AssignSocketPlug {@makecol/outputbox}{floats-footnotes}
\fi
\else
-\ERROR
+ \ERROR
\fi
\newif\ifFN@setspace
@@ -268,23 +234,11 @@
}
\ifFN@para
- \def\@footnotetext@cfgpoint {\insert\footins}
- \long\def\@footnotetext@cfgpointii #1{%
- \setbox\FN@tempboxa\hbox{\@makefntext{#1}}%
- \dp\FN@tempboxa\z@
- \ht\FN@tempboxa
- \dimexpr\wd\FN@tempboxa *%
- \footnotebaselineskip /\columnwidth\relax
- \box\FN@tempboxa
- }
+ \AssignSocketPlug{fntext/make}{para}
+ \AssignSocketPlug{fntext/begin}{noop}
+ \AssignSocketPlug{fntext/end}{para}
- \def\@footnotetext@cfgpointiii {}
- \def\@footnotetext@cfgpointiv {% config point
- \strut
- \penalty-10\relax
- \hskip\footglue
- }
\fi
\ifFN@para
@@ -347,7 +301,7 @@
-\AddToHook{fntext/begin}{\nobreak \hspace{.2em}}
+ \AddToHook{fntext/begin}{\nobreak \hspace{.2em}}
\else
@@ -611,7 +565,7 @@
{\mathparagraph\mathparagraph\mathparagraph}%
}
\newcommand\mpfootnotemark{%
- \@ifnextchar[%
+ \@ifnextchar[%]
\@xmpfootnotemark
{%
\stepcounter\@mpfn
diff --git a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-footnotes.ltx b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-footnotes.ltx
index 4a3a046a21d..38876d0c908 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-footnotes.ltx
+++ b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-footnotes.ltx
@@ -33,8 +33,12 @@
%%
%%
%% File: latex-lab-footnotes.dtx
+\def\ltlabfootnotedate{2023-09-04}
+\def\ltlabfootnoteversion{0.8c}
+
\ProvidesFile{latex-lab-footnotes.ltx}
- [2023-02-04 v0.7 changes to the footnote interfaces]
+ [\ltlabfootnotedate\space v\ltlabfootnoteversion\space
+ changes to the footnote interfaces]
%% alterations not covered:
\ExplSyntaxOn
@@ -54,9 +58,6 @@
\bool_set_true:N \l__fnote_autodetect_bool
\tl_new:N \l__fnote_currentstruct_tl
\tl_set:Nn \l__fnote_currentstruct_tl {1}
-\cs_generate_variant:Nn \ref_label:nn { Vn }
-\cs_generate_variant:Nn \ref_value:nn { Vn }
-\cs_generate_variant:Nn \prop_gput:Nnn {cxn}
\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 {
@@ -99,11 +100,11 @@
{
\bool_if:NT \g_fnote_debug_bool
{
- \LogHook{fnmark/before}
- \LogHook{fnmark}
- \LogHook{fnmark/begin}
- \LogHook{fnmark/end}
- \LogHook{fnmark/after}
+ \hook_log:n {fnmark/before}
+ \hook_log:n {fnmark}
+ \hook_log:n {fnmark/begin}
+ \hook_log:n {fnmark/end}
+ \hook_log:n {fnmark/after}
\cs_gset_eq:NN \__fnote_debug_footnotemark: \prg_do_nothing:
}
}
@@ -111,52 +112,56 @@
{
\bool_if:NT \g_fnote_debug_bool
{
- \cs_log:N\@footnotetext@cfgpoint
- \cs_log:N\@footnotetext@cfgpointii
- \cs_log:N\@footnotetext@cfgpointiii
- \cs_log:N\@footnotetext@cfgpointiv
- \cs_log:N\@makefntext@cfgpoint
- \cs_log:N\@makefntext@cfgpointii
- \LogHook{fntext/before}
- \LogHook{fntext}
- \LogHook{fntext/para}
- \LogHook{fntext/begin}
- \LogHook{fntext/end}
- \LogHook{fntext/after}
+ \socket_log:n {fntext/process}
+ \socket_log:n {fntext/make}
+ \socket_log:n {fntext/begin}
+ \socket_log:n {fntext/end}
+ \socket_log:n {fntext/mark}
+ \socket_log:n {fntext/text}
+ \socket_log:n {tagsupport/fnmark}
+ \socket_log:n {tagsupport/fntext/begin}
+ \socket_log:n {tagsupport/fntext/end}
+ \socket_log:n {tagsupport/fntext/mark}
+ \socket_log:n {tagsupport/fntext/text}
+ \hook_log:n {fntext/before}
+ \hook_log:n {fntext}
+ \hook_log:n {fntext/para}
+ \hook_log:n {fntext/begin}
+ \hook_log:n {fntext/end}
+ \hook_log:n {fntext/after}
\cs_gset_eq:NN \__fnote_debug_footnotetext: \prg_do_nothing:
}
}
\cs_new_protected:Npn \fnote_footnotemark: {
\__fnote_debug_footnotemark:
- \UseHook{fnmark/before}
+ \hook_use:n {fnmark/before}
\leavevmode
\ifhmode
\edef\@x@sf{\the\spacefactor}
- \UseHook{fnmark}
+ \hook_use:n {fnmark}
\nobreak
\fi
- \UseHook{fnmark/begin}
- \@kernel@process@makefnmark
- \@makefnmark
+ \hook_use:n {fnmark/begin}
+ \socket_use:nn {tagsupport/fnmark} \@makefnmark
\__fnote_footnotemark_finish:
}
-\cs_new_protected:Npn \__fnote_finish: {
+\cs_new_protected:Npn \__fnote_footnotemark_default_finish: {
\UseHook{fnmark/end}
\ifhmode
\spacefactor \@x@sf \relax
\fi
\UseHook{fnmark/after}
}
-
-\cs_new_eq:NN \__fnote_footnotemark_finish: \__fnote_finish:
-\def \@kernel@process@makefnmark { }
+\cs_new_eq:NN \__fnote_footnotemark_finish: \__fnote_footnotemark_default_finish:
+\NewSocket{tagsupport/fnmark}{1}
\cs_set_eq:NN \@footnotemark \fnote_footnotemark:
\cs_new_protected:Npn \fnote_footnotetext:n #1 {
\__fnote_debug_footnotetext:
- \UseHook{fntext/before}
- \@kernel@process@footnotetext
- \@footnotetext@cfgpoint { % config point
- \UseHook{fntext}
+ \hook_use:n {fntext/before}
+ \socket_use:n {tagsupport/fntext/begin}
+ \socket_use:nn {fntext/process}
+ {
+ \hook_use:n {fntext}
\reset@font
\footnotesize
\interlinepenalty\interfootnotelinepenalty
@@ -168,27 +173,53 @@
\parindent 1em % typical default used in \@makefntext moved up here
\def\@currentcounter{footnote}
\protected@edef \@currentlabel { \p@footnote \@thefnmark }
- \UseHook{fntext/para}
+ \hook_use:n {fntext/para}
\color@begingroup
- \@footnotetext@cfgpointii % config point
+ \socket_use:nn {fntext/make}
{
- \@footnotetext@cfgpointiii % config point
- \UseHook{fntext/begin}
+ \socket_use:n {fntext/begin}%
+ \hook_use:n {fntext/begin}
\ignorespaces
#1
- \UseHook{fntext/end}
- \@footnotetext@cfgpointiv % config point
+ \hook_use:n {fntext/end}
+ \socket_use:n {fntext/end}
}
\par
\color@endgroup
}
- \UseHook{fntext/after}
+ \socket_use:n{tagsupport/fntext/end}
+ \hook_use:n {fntext/after}
+}
+\NewSocket {fntext/process}{1}
+\NewSocketPlug{fntext/process}{default}{ \insert\footins {#1} }
+\NewSocketPlug{fntext/process}{side} { \marginpar {#1} }
+\AssignSocketPlug{fntext/process}{default}
+\NewSocket {fntext/make}{1}
+\NewSocketPlug{fntext/make}{default}{ \@makefntext {#1} }
+\NewSocketPlug{fntext/make}{para}
+{
+ \setbox\FN@tempboxa\hbox{\@makefntext{#1}}%
+ \dp\FN@tempboxa\z@
+ \ht\FN@tempboxa
+ \dimexpr\wd\FN@tempboxa *%
+ \footnotebaselineskip /\columnwidth\relax
+ \box\FN@tempboxa
}
-\cs_new_protected:Npn \@footnotetext@cfgpoint { \insert\footins }
-\cs_new_protected:Npn \@footnotetext@cfgpointii { \@makefntext }
-\cs_new_protected:Npn \@footnotetext@cfgpointiii { \rule\z@\footnotesep }
-\cs_new_protected:Npn \@footnotetext@cfgpointiv { \@finalstrut\strutbox }
-\cs_new_protected:Npn \@kernel@process@footnotetext {}
+\AssignSocketPlug{fntext/make}{default}
+\NewSocket {fntext/begin}{0}
+\NewSocketPlug{fntext/begin}{default}{ \rule\z@\footnotesep }
+\AssignSocketPlug{fntext/begin}{default}
+\NewSocket {fntext/end}{0}
+\NewSocketPlug{fntext/end}{default}{ \@finalstrut\strutbox }
+\NewSocketPlug{fntext/end}{para}
+ {%
+ \strut
+ \penalty-10\relax
+ \hskip\footglue
+ }
+\AssignSocketPlug{fntext/end}{default}
+\NewSocket{tagsupport/fntext/begin}{0}
+\NewSocket{tagsupport/fntext/end}{0}
\AddToHook{begindocument}
{
\cs_set_eq:NN \@footnotetext \fnote_footnotetext:n
@@ -202,29 +233,31 @@
\setlength\footnotemargin{1.8em}
\fi
}
-
\cs_new_protected:Npn \fnote_makefntext:n #1 {
- \@makefntext@cfgpoint
- {
- \ifdim\footnotemargin>\z@
- \hb@xt@ \footnotemargin{\hss\@makefnmark}
- \else
- \ifdim\footnotemargin=\z@
- \llap{\@makefnmark}
- \else
- \ifdim\footnotemargin=-\maxdimen
- \@makefnmark
- \else
- \llap{\hb@xt@ -\footnotemargin{\@makefnmark\hss}}
- \fi
- \fi
- \fi
- }
- \@makefntext@cfgpointii
- { #1 }
+ \noindent
+ \socket_use:nn {tagsupport/fntext/mark} { \socket_use:n {fntext/mark} }
+ \socket_use:nn {tagsupport/fntext/text} { \socket_use:nn {fntext/text}{#1} }
+}
+\NewSocket {fntext/mark}{0}
+\NewSocketPlug{fntext/mark}{default}{
+ \ifdim\footnotemargin>\z@
+ \hb@xt@ \footnotemargin{\hss\@makefnmark}
+ \else
+ \ifdim\footnotemargin=\z@
+ \llap{\@makefnmark}
+ \else
+ \ifdim\footnotemargin=-\maxdimen
+ \@makefnmark
+ \else
+ \llap{\hb@xt@ -\footnotemargin{\@makefnmark\hss}}
+ \fi
+ \fi
+ \fi
}
-\cs_new_protected:Npn \@makefntext@cfgpoint { \noindent }
-\cs_new_protected:Npn \@makefntext@cfgpointii #1 { #1 }
+\AssignSocketPlug{fntext/mark}{default}
+\NewSocket {fntext/text}{1}
+\NewSocket{tagsupport/fntext/mark}{1}
+\NewSocket{tagsupport/fntext/text}{1}
\newcommand\old@std@class@makefntext[1]{%
\parindent 1em%
\noindent
@@ -234,7 +267,7 @@
\cs_new_protected:Npn \__fnote_patch:
{
- \tl_set:No \l__fnote_patch_tl { \@makefntext { \@makefntext@cfgpointii{##1} } }
+ \tl_set:No \l__fnote_patch_tl { \@makefntext { \UseSocket{tagsupport/fntext/text}{##1} } }
\tl_if_in:NnTF \l__fnote_patch_tl { \hbox }
{ \cs_set_eq:NN \__fnote_tmp:w \__fnote_patch_hbox:w }
{
@@ -258,7 +291,7 @@
{ \exp_stop_f: #1 \@makefntext@processX { \hb@xt@ #2 } }
\cs_new:Npn \__fnote_patch_@makefnmark:w #1 \@makefnmark
{ \exp_stop_f: #1 \@makefntext@processX { \use:n } { \@makefnmark } }
-\cs_new:Npn \@makefntext@processX #1#2{\@makefntext@cfgpoint{#1{#2}}}
+\cs_new:Npn \@makefntext@processX #1#2{\UseSocket{tagsupport/fntext/mark}{#1{#2}}}
\AddToHook{begindocument}
{
@@ -281,7 +314,7 @@
\fnote_step_fnmark:nn {#1} \@mpfn
\cs_set_eq:NN \__fnote_footnotemark_finish: \prg_do_nothing:
\@footnotemark
- \cs_set_eq:NN \__fnote_footnotemark_finish: \__fnote_finish:
+ \cs_set_eq:NN \__fnote_footnotemark_finish: \__fnote_footnotemark_default_finish:
\@footnotetext {#2}
\__fnote_footnotemark_finish:
}
@@ -302,20 +335,13 @@
\@footnotemark
\bool_set_true:N \l__fnote_autodetect_bool
}
-\cs_new_protected:Npn \@mpfootnotetext@cfgpoint #1
+\NewSocketPlug{fntext/process}{mp}
{
\global\setbox\@mpfootins\vbox{%
\unvbox\@mpfootins
#1
}
}
-\RequirePackage{etoolbox}
-\ExplSyntaxOff
-\patchcmd\@iiiminipage
- {\let\@footnotetext\@mpfootnotetext}
- {\let\@footnotetext@cfgpoint\@mpfootnotetext@cfgpoint}
- {}{\ERROR}
-\ExplSyntaxOn
\AddToHook{class/memoir/before}
{ \let\new@std@class@makecol\@makecol }
\AddToHook{class/memoir/after}
@@ -343,38 +369,31 @@
\bool_set_false:N \l_fnote_link_bool
}
}
-\ref_attribute_gset:nnnn {fnote/struct}{1}{now}{\l__fnote_currentstruct_tl}
-\cs_new_protected:Npn \__fnote_label_hook: {}
-\AddToHook{begindocument/before}
- {
- \RequirePackage{nameref}
- \g@addto@macro\label@hook
- {
- \__fnote_label_hook:
- }
- }
+\property_new:nnnn {fnote/struct}{now}{1}{\l__fnote_currentstruct_tl}
+\cs_new_protected:Npn \__fnote_label_hook:e #1 {}
+\AddToHookWithArguments{label}{ \__fnote_label_hook:e{#1}}
\AddToHook{fntext/begin}
{
- \cs_set_protected:Npn \__fnote_label_hook:
+ \cs_set_protected:Npn \__fnote_label_hook:e #1
{
- \ref_label:Vn \label@name {fnote/struct}
+ \property_record:ee {__fnote/#1} {fnote/struct}
}
}
-\cs_new_protected:Npn \fnote_new:nn #1 #2 % #1 name, #2 options
+\cs_new_protected:Npn \fnote_class_new:nn #1 #2 % #1 name, #2 options
{
\prop_new:c { g__fnote_currentmarks_ #1 _prop }
}
-\fnote_new:nn {default}{}
+\fnote_class_new:nn {default}{}
\cs_new_protected:Npn \fnote_mark_gput:nn #1 #2 % #1 the representation of the mark, #2 type
{
- \prop_gput:cxn { g__fnote_currentmarks_ #2 _prop }
+ \prop_gput:cen { g__fnote_currentmarks_ #2 _prop }
{ \tag_get:n{struct_num} }
{ #1 }
}
\cs_generate_variant:Nn \fnote_mark_gput:nn {no,oo}
-\cs_new_protected:Npn \fnote_mark_gpop:nnN #1 #2 #3
+\cs_new_protected:Npn \fnote_mark_gpop_all:nnN #1 #2 #3
{
\seq_clear:N #3
\prop_set_eq:Nc \l__fnote_tmpa_prop { g__fnote_currentmarks_ #2 _prop }
@@ -387,25 +406,24 @@
}
}
}
-\cs_generate_variant:Nn\fnote_mark_gpop:nnN {ooN}
-
-\cs_new_protected:Npn \tag@FEMark #1 %#1 content
+\cs_generate_variant:Nn\fnote_mark_gpop_all:nnN {ooN}
+\NewSocketPlug{tagsupport/fnmark}{FEMark}
{
\tag_mc_end_push:
\tag_struct_begin:n { tag=footnotemark }
\bool_if:NTF \l__fnote_autodetect_bool
{
\fnote_mark_gput:oo {\@thefnmark}{\l_fnote_type_tl}
- \tl_set:Nx \l__fnote_linktarget_tl {footnote*.\tag_get:n{struct_num}}
+ \tl_set:Ne \l__fnote_linktarget_tl {footnote*.\tag_get:n{struct_num}}
}
{
\hook_gput_code:nne {tagpdf/finish/before} {tagpdf/footnote}
{
\exp_not:N\fnote_gput_refs:ee
{ \tag_get:n{struct_num} }
- { \ref_value:Vn\l__fnote_currentlabel_tl {fnote/struct} }
+ { \property_ref:ee{ __fnote/\l__fnote_currentlabel_tl } {fnote/struct} }
}
- \tl_set:Nx \l__fnote_linktarget_tl {footnote*.\ref_value:Vn\l__fnote_currentlabel_tl {fnote/struct}}
+ \tl_set:Ne \l__fnote_linktarget_tl {footnote*.\property_ref:ee {__fnote/\l__fnote_currentlabel_tl} {fnote/struct}}
}
\tag_mc_begin:n{tag=Lbl}
%
@@ -423,8 +441,7 @@
\tag_struct_end:
\tag_mc_begin_pop:n{}
}
-\cs_set_eq:NN \@kernel@process@makefnmark \tag@FEMark
-
+\AssignSocketPlug{tagsupport/fnmark}{FEMark}
\cs_new_protected:Npn \__fnote_gput_ref:nn #1 #2 %#1 the structure number receiving the ref #2
{
@@ -441,7 +458,7 @@
\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}
-\cs_new_protected:Npn \tag@FENote #1#2 % #1 config point, \insert\footins #2 content
+\NewSocketPlug{tagsupport/fntext/begin}{FENote}
{
\tag_mc_end_push:
\tag_check_child:nnTF {FENote}{pdf2}
@@ -451,11 +468,11 @@
{
\tag_struct_begin:n { tag=footnote,parent=\l__fnote_dflt_struct_tl }
}
- \tl_set:Nx \l__fnote_currentstruct_tl { \tag_get:n{struct_num} }
+ \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:ooN { \@thefnmark }{ \l_fnote_type_tl } \l__fnote_currentrefs_seq
+ \fnote_mark_gpop_all:ooN { \@thefnmark }{ \l_fnote_type_tl } \l__fnote_currentrefs_seq
\seq_map_inline:Nn \l__fnote_currentrefs_seq
{
\fnote_gput_refs:ee {##1}{ \l__fnote_currentstruct_tl }
@@ -464,20 +481,18 @@
{%no auto
}
- #1 {#2}
- \tag_struct_end:
- \tag_mc_begin_pop:n{}
}
-\cs_set_eq:NN \@kernel@process@footnotetext \tag@FENote
-\cs_set_protected:Npn \@makefntext@cfgpoint #1 %#1 code that typesets the mark.
+
+\NewSocketPlug{tagsupport/fntext/end}{FENote}
{
- \noindent
- \tag_mc_end_push:
- \tag@FENoteLbl { #1 }
+ \tag_struct_end:
\tag_mc_begin_pop:n{}
}
-\cs_new_protected:Npn \tag@FENoteLbl #1
+\AssignSocketPlug{tagsupport/fntext/begin}{FENote}
+\AssignSocketPlug{tagsupport/fntext/end}{FENote}
+\NewSocketPlug{tagsupport/fntext/mark}{FENoteLbl}
{
+ \tag_mc_end_push:
%\seq_show:N\l__fnote_currentrefs_seq
\seq_map_inline:Nn\l__fnote_currentrefs_seq {\MakeLinkTarget*{footnote*.##1}}
\MakeLinkTarget*{footnote*.\l__fnote_currentstruct_tl}
@@ -486,19 +501,18 @@
#1
\tag_mc_end:
\tag_struct_end:
- }
-\cs_set_protected:Npn \@makefntext@cfgpointii #1
- {
- \tag_mc_end_push:
- \tag@FENotetext { #1 }
\tag_mc_begin_pop:n{}
}
-\cs_new_protected:Npn \tag@FENotetext #1
+\AssignSocketPlug{tagsupport/fntext/mark}{FENoteLbl}
+\NewSocketPlug{tagsupport/fntext/text}{FENotetext}
{
+ \tag_mc_end_push:
\tag_mc_begin:n{}
#1
\tag_mc_end:
+ \tag_mc_begin_pop:n{}
}
+\AssignSocketPlug{tagsupport/fntext/text}{FENotetext}
\ExplSyntaxOff
\endinput
diff --git a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-kernel-changes.sty b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-kernel-changes.sty
index 2c990ee7ef8..f2c99285c91 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-kernel-changes.sty
+++ b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-kernel-changes.sty
@@ -33,7 +33,12 @@
%% where one can also log issues in case there are any.
%%
%%
-%% File: latex-lab-toc-kernel-functions.dtx (C) Copyright 2022-2023 LaTeX Project
+%% File: latex-lab-toc-kernel-changes.dtx (C) Copyright 2022-2023 LaTeX Project
+\def\ltlabkerneldate{2023-10-16}
+\def\ltlabkernelversion{0.85b}
+\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@
@@ -72,13 +77,28 @@
\def\toclevel@subparagraph{5}
\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}}
+ }
+ }
+ }
+\ExplSyntaxOff
%% File: latex-lab-sec.dtx (C) Copyright 2022-2023 LaTeX Project
+\def\ltlabsecdate{2023-10-16}
+\def\ltlabsecversion{0.84b}
\ifdefined\directlua
- \pdfvariable gentounicode =1
- \protected\def\pdfglyphtounicode {\pdfextension glyphtounicode }
- \protected\edef\pdfgentounicode {\pdfvariable gentounicode}
- \input{glyphtounicode}
+ \ifnum\outputmode > 0
+ \pdfvariable gentounicode =1
+ \protected\def\pdfglyphtounicode {\pdfextension glyphtounicode }
+ \protected\edef\pdfgentounicode {\pdfvariable gentounicode}
+ \input{glyphtounicode}
+ \fi
\fi
\ifdefined\pdfglyphtounicode
\input{glyphtounicode-cmex}
diff --git a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-mathtagging.ltx b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-math.ltx
index d333b5ca9a3..1ced324bb10 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-mathtagging.ltx
+++ b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-math.ltx
@@ -1,10 +1,10 @@
%%
-%% This is file `latex-lab-mathtagging.ltx',
+%% This is file `latex-lab-math.ltx',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
-%% latex-lab-mathtagging.dtx (with options: `kernel')
+%% latex-lab-math.dtx (with options: `kernel')
%%
%% This is a generated file.
%%
@@ -32,14 +32,14 @@
%% where one can also log issues in case there are any.
%%
%%
-%% File: latex-lab-mathtagging.dtx
-\def\ltmathtaggingdate{2023-03-08}
-\def\ltmathtaggingversion{v0.5a}
-\ProvidesFile{latex-lab-mathtagging.ltx}
- [\ltmathtaggingdate\space
- \ltmathtaggingversion\space
+%% File: latex-lab-math.dtx
+\def\ltlabmathdate{2023-09-11}
+\def\ltlabmathversion{0.5c}
+\ProvidesFile{latex-lab-math.ltx}
+ [\ltlabmathdate\space
+ v\ltlabmathversion\space
Grab all the math(s) and tag it (experiments)]
-\AddToHook{begindocument/before}{\RequirePackage{latex-lab-testphase-block-tagging}}
+\AddToHook{begindocument/before}{\RequirePackage{latex-lab-testphase-block}}
\ExplSyntaxOn
\tl_gput_right:Nn \@kernel@before@begindocument
{ \RequirePackage { amsmath } }
@@ -70,11 +70,19 @@
\tl_if_blank:nF {#1}
{
\__math_process:nn { math } {#1} % $
- \tagmcend %end P-chunk, in code: \tag_mc_end_push:
- \@kernel@math@begin
- #1 $
- \@kernel@math@end
- \tagmcbegin{} % restart P-chunk (whatsits in pdftex)
+ \legacy_if:nTF { measuring@ }
+ { #1 $ }
+ {
+ \tl_if_in:nnTF {#1} { \m@th }
+ { #1 $ }
+ {
+ \tagmcend %end P-chunk, in code: \tag_mc_end_push:
+ \@kernel@math@begin
+ #1 $
+ \@kernel@math@end
+ \tagmcbegin{} % restart P-chunk (whatsits in pdftex)
+ }
+ }
}
}
@@ -90,9 +98,10 @@
$$
}
}
-
\cs_new_protected:Npn \@kernel@close@P {
- \tagmcend %end P-chunk, in code: \tag_mc_end_push:
+ \tag_if_active:T
+ {
+ \tagmcend %end P-chunk, should perhaps be \tag_mc_end_push: ...
\int_gincr:N \g__tag_para_end_int
\bool_if:NT \l__tag_para_show_bool
{ \tag_mc_begin:n{artifact}
@@ -100,6 +109,7 @@
\tag_mc_end:
}
\tag_struct_end:
+ }
}
\cs_new_protected:Npn \__math_tag_dollardollar_display:nn #1#2 {
@@ -116,7 +126,7 @@
\l__math_tmpa_skip \lastskip
\@kernel@math@end
\penalty \postdisplaypenalty
- \skip_vertical:n { -\l__math_tmpa_skip }
+ \skip_vertical:n { -\l__math_tmpa_skip * 2 }
\@doendpe % this has no \end{...} to take care of it
}
@@ -288,7 +298,6 @@
{ $ }
}
{
- \bool_set_true:N \l__math_collected_bool
\__math_grab_inline:w
}
} % \(
@@ -352,6 +361,7 @@
\__math_grab_dollar:w
}
}
+
\exp_args:No \tex_everydisplay:D
{
\tex_the:D \tex_everydisplay:D
@@ -654,7 +664,6 @@
\fi
}
\ExplSyntaxOff
-
\endinput
%%
-%% End of file `latex-lab-mathtagging.ltx'.
+%% End of file `latex-lab-math.ltx'.
diff --git a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-bib.sty b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-bib.sty
index 62e98a45f63..9261393042e 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-bib.sty
+++ b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-bib.sty
@@ -33,9 +33,11 @@
%%
%%
%% File: latex-lab-bib.dtx (C) Copyright 2023 LaTeX Project
-\ProvidesExplPackage {latex-lab-testphase-bib} {2023-05-18} {0.8}
+\def\ltlabbibdate{2023-07-20}
+\def\ltlabbibversion{0.81a}
+\ProvidesExplPackage {latex-lab-testphase-bib} {\ltlabbibdate} {\ltlabbibversion}
{Code related to the tagging of bibliography and cite command}
-\RequirePackage{latex-lab-testphase-block-tagging}
+\RequirePackage{latex-lab-testphase-block}
\def\hyper@nopatch@bib{}
\providecommand*\@extra@binfo{}%
diff --git a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-block-tagging.sty b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-block.sty
index c65c155fc5c..2764ca6d8bb 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-block-tagging.sty
+++ b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-block.sty
@@ -1,10 +1,10 @@
%%
-%% This is file `latex-lab-testphase-block-tagging.sty',
+%% This is file `latex-lab-testphase-block.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
-%% latex-lab-block-tagging.dtx (with options: `package')
+%% latex-lab-block.dtx (with options: `package')
%%
%% This is a generated file.
%%
@@ -32,13 +32,11 @@
%% where one can also log issues in case there are any.
%%
%%
-%% File: latex-lab-block-tagging.dtx (C) Copyright 2021-2023 LaTeX Project
-
-\def\ltblocksversion{v0.8d}
-\def\ltblocksdate{2023/06/07}
-
-\ProvidesPackage {latex-lab-testphase-block-tagging}
- [\ltblocksdate\space \ltblocksversion\space
+%% File: latex-lab-block.dtx (C) Copyright 2021-2023 LaTeX Project
+\def\ltlabblockdate{2023-09-01}
+\def\ltlabblockversion{0.8h}
+\ProvidesPackage {latex-lab-testphase-block}
+ [\ltlabblockdate\space v\ltlabblockversion\space
blockenv implementation]
\RequirePackage{xtemplate}
\RequirePackage{latex-lab-kernel-changes}
@@ -145,8 +143,6 @@
}
\cs_new_eq:NN \__block_skip_remove_last: \tex_unskip:D
\cs_generate_variant:Nn \tl_if_novalue:nTF { o }
-\cs_if_exist:NF \tag_if_active:T
- { \cs_new_eq:NN \tag_if_active:T \use_none:n }
\bool_new:N \g__block_debug_bool
\cs_new_eq:NN \__block_debug:n \use_none:n
\cs_new_eq:NN \__block_debug_typeout:n \use_none:n
@@ -244,6 +240,23 @@
{ \endblockenv }
}
\AddToHook{begindocument/before}{
+ \RenewDocumentEnvironment{verse}{ !O{} }
+ {
+ \let\\\@centercr
+ \UseInstance{blockenv}{list}
+ {
+ item-indent=-1.5em,
+ parindent=-1.5em,
+ item-skip=0pt,
+ rightmargin=\leftmargin,
+ leftmargin=\leftmargin+1.5em,
+ #1
+ }
+ \item\relax
+ }
+ { \endblockenv }
+ }
+\AddToHook{begindocument/before}{
\RenewDocumentEnvironment{list}{O{} m m }
{
\tl_set:Nn \@itemlabel {#2}
@@ -252,9 +265,6 @@
}
{ \endblockenv }
}
-\tag_if_active:T {
- \tagpdfsetup{add-new-tag={tag=list,role=L}}
-}
\tl_new:N \l__block_env_params_tl
\cs_new:Npn \legacylistsetupcode {
\dim_zero:N \listparindent
@@ -318,10 +328,17 @@
\global\@namedef{end#1}{ \@endtheorem }
}
}
+\tl_new:N \l__block_thm_current_counter_tl
+\def\@thm#1#2{%
+ \@kernel@refstepcounter{#1}
+ \tl_set:Nn \l__block_thm_current_counter_tl{#1}
+ \@ifnextchar[{\@ythm{#1}{#2}}{\@xthm{#1}{#2}}}
+\def\hyper@nopatch@thm{}
\def\@begintheorem#1#2{
\UseInstance{blockenv}{theorem}{}
\tagpdfparaOff
\mode_leave_vertical:
+ \MakeLinkTarget{\l__block_thm_current_counter_tl}
\tag_struct_begin:n{tag=Caption}
\group_begin:
\bfseries
@@ -345,6 +362,7 @@
\UseInstance{blockenv}{theorem}{}
\tagpdfparaOff
\mode_leave_vertical:
+ \MakeLinkTarget{\l__block_thm_current_counter_tl}
\tag_struct_begin:n{tag=Caption}
\group_begin:
\bfseries
@@ -478,16 +496,17 @@
\addpenalty \@endparpenalty
\addvspace \l__block_topsepadd_skip
}
- % \begin{macrocode}
- \bool_if:NTF \l__block_standalone_bool
- { \legacy_if_gset_false:n { @endpe } }
- { \legacy_if_gset_true:n { @endpe } }
+ \socket_use:n {tagsupport/block-endpe}
}
\cs_new:Npn \__kernel_displayblock_end: {
\__block_debug_typeout:n{\detokenize{__kernel_displayblock_end:}}
}
-\bool_new:N \l__block_standalone_bool
-\bool_set_false:N \l__block_standalone_bool
+\socket_new:nn {tagsupport/block-endpe}{0}
+\socket_new_plug:nnn{tagsupport/block-endpe}{on}
+ { \legacy_if_gset_true:n { @endpe } }
+\socket_new_plug:nnn{tagsupport/block-endpe}{off}
+ { \legacy_if_gset_false:n { @endpe } }
+\socket_assign_plug:nn{tagsupport/block-endpe}{on}
\DeclareTemplateCode{para}{std}{1}
{
indent-width = \parindent ,
@@ -828,6 +847,7 @@
\__block_beginpar_vmode:
\let \__kernel_displayblock_begin: \prg_do_nothing:
\let \__kernel_displayblock_end: \prg_do_nothing:
+ \socket_assign_plug:nn{tagsupport/block-endpe}{on}
}
\cs_new:Npn \__block_recipe_standalone: {
\cs_set_eq:NN \__kernel_displayblock_beginpar_hmode:w
@@ -836,7 +856,7 @@
\prg_do_nothing:
\cs_set_eq:NN \__kernel_displayblock_begin: \__block_inner_begin:
\cs_set_eq:NN \__kernel_displayblock_end: \__block_inner_end:
- \bool_set_true:N \l__block_standalone_bool
+ \socket_assign_plug:nn{tagsupport/block-endpe}{off}
\tl_if_empty:NTF \l__block_tag_name_tl
{ \tl_set:Nn \l__block_tag_inner_tag_tl {Sect} }
{ \tl_set_eq:NN \l__block_tag_inner_tag_tl \l__block_tag_name_tl }
@@ -849,6 +869,7 @@
\__block_beginpar_vmode:
\cs_set_eq:NN \__kernel_displayblock_begin: \__block_inner_begin:
\cs_set_eq:NN \__kernel_displayblock_end: \__block_inner_end:
+ \socket_assign_plug:nn{tagsupport/block-endpe}{on}
\tl_if_empty:NTF \l__block_tag_name_tl
{ \tl_set:Nn \l__block_tag_inner_tag_tl {Figure} }
{ \tl_set_eq:NN \l__block_tag_inner_tag_tl \l__block_tag_name_tl }
@@ -864,6 +885,7 @@
\cs_set_eq:NN \__kernel_displayblock_end: \__block_list_end:
\cs_set_eq:NN \__kernel_list_item_begin: \__block_list_item_begin:
\cs_set_eq:NN \__kernel_list_item_end: \__block_list_item_end:
+ \socket_assign_plug:nn{tagsupport/block-endpe}{on}
\tl_if_empty:NTF \l__block_tag_name_tl
{ \tl_set:Nn \l__tag_L_tag_tl {L} }
{ \tl_set_eq:NN \l__tag_L_tag_tl \l__block_tag_name_tl }
@@ -939,10 +961,7 @@
para-instance = raggedleft ,
inner-instance = ,
}
-\tag_if_active:T {
- \tagpdfsetup{add-new-tag={tag=quote,role=BlockQuote}}
- \tagpdfsetup{add-new-tag={tag=quotation,role=BlockQuote}}
-}
+ %
\DeclareInstance{blockenv}{quotation}{display}
{
env-name = quotation,
@@ -979,13 +998,6 @@
setup-code = ,
block-instance = displayblock ,
}
-\tag_if_active:T {
- \tagpdfsetup{add-new-tag={tag=theorem-like,role=Sect}}
-}
-\tag_if_active:T {
- \tagpdfsetup{add-new-tag={tag=verbatim,role=P}}
- \tagpdfsetup{add-new-tag={tag=codeline,role=Sub}}
-}
\DeclareInstance{blockenv}{verbatim}{display}
{
env-name = verbatim,
@@ -1179,7 +1191,7 @@
\DeclareRobustCommand\justifying {\UseInstance{para}{justify}{}}
\justifying
-\tag_if_active:T {
+\tag_if_active:TF {
\cs_set:Npn \__block_beginpar_vmode: {
\__block_debug_typeout:n
{ @endpe = \legacy_if:nTF { @endpe }{true}{false}
@@ -1275,8 +1287,6 @@
\__tag_check_para_begin_show:nn {green}{#1}
\tag_mc_begin:n {}
}
-\tag_if_active:T {
-}
\RemoveFromHook{para/end}[tagpdf]
\AddToHook{para/end}
{
@@ -1419,8 +1429,11 @@
\tagstructend % end L
}
}
+{
+ \cs_new:Npn \__block_start_para_structure_unconditionally:n #1 {}
+}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\endinput
%%
-%% End of file `latex-lab-testphase-block-tagging.sty'.
+%% End of file `latex-lab-testphase-block.sty'.
diff --git a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-firstaid.sty b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-firstaid.sty
index b95e81c61b4..7ea7fe54bec 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-firstaid.sty
+++ b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-firstaid.sty
@@ -33,9 +33,12 @@
%%
%%
%% File: latex-lab-firstaid.dtx (C) Copyright 2023 LaTeX Project
+\def\ltlabfirstaiddate{2023-07-20}
+\def\ltlabfirstaidversion{0.85a}
-\ProvidesPackage {latex-lab-testphase-firstaid} [2023-06-04 v0.8
- Temporary patches to external packages need for the tagging project]
+\ProvidesPackage {latex-lab-testphase-firstaid} [%
+ \ltlabfirstaiddate\space v\ltlabfirstaiddate\space
+ Temporary patches to external packages needed for the tagging project]
\AddToHook{file/blindtext.sty/after}[latex-lab-firstaid]{%
\FirstAidNeededT{blindtext}{sty}{\blindfiledate\space\blindfileversion\space%
@@ -72,32 +75,20 @@
}
}%
}
-\AddToHook{file/ltugboat.cls/after}
+\AddToHook{package/cleveref/after}
{
- \def\l@section#1#2{\addpenalty{\@secpenalty}%
- \addvspace{\TBtocsectionspace}%
- \@tempdima 1.5em
- \begingroup
- \parindent\z@ \rightskip\z@ % article style makes \rightskip > 0
- \parfillskip\z@
- \TBtocsectionfont
- \leavevmode\advance\leftskip\@tempdima\hskip-\leftskip
- \UseHookWithArguments{contentsline/text/before}{4}
- {\toclevel@part}{#1}{#2}{\@contentsline@destination}%
- \csname contentsline@text@1@format\endcsname{#1}%
- \UseHookWithArguments{contentsline/text/after}{4}
- {\toclevel@part}{#1}{#2}{\@contentsline@destination}%
- \nobreak\hfil
- \nobreak\hb@xt@\@pnumwidth{\hss
- \UseHookWithArguments{contentsline/page/before}{4}
- {\toclevel@part}{#1}{#2}{\@contentsline@destination}%
- #2%
- \UseHookWithArguments{contentsline/page/after}{4}
- {\toclevel@part}{#1}{#2}{\@contentsline@destination}%
- }\par
- \endgroup}
+ \let\@makefntext\cref@old@makefntext
+ \AddToHook{cmd/@makefntext/before}{%
+ \cref@constructprefix{footnote}{\cref@result}%
+ \protected@edef\cref@currentlabel{%
+ [footnote][\arabic{footnote}][\cref@result]%
+ \p@footnote\@thefnmark}}
+ \RenewDocumentCommand\refstepcounter{om}{%
+ \IfNoValueTF{#1}%
+ {\refstepcounter@noarg{#2}}%
+ {\refstepcounter@optarg[#1]{#2}}%
+ }%
}
-
\endinput
%%
%% End of file `latex-lab-testphase-firstaid.sty'.
diff --git a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-float.sty b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-float.sty
index 92268acbe81..8b38e4aedef 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-float.sty
+++ b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-float.sty
@@ -33,11 +33,10 @@
%%
%%
%% File: latex-lab-float.dtx (C) Copyright 2023 LaTeX Project
-\ProvidesExplPackage {latex-lab-testphase-float} {2023-04-28} {0.8}
+\def\ltlabfloatdate{2023-07-20}
+\def\ltlabfloatversion{0.81a}
+\ProvidesExplPackage {latex-lab-testphase-float} {\ltlabfloatdate} {\ltlabfloatversion}
{Code related to the tagging of floats}
-\tagpdfsetup{add-new-tag=float/Aside}
-\tagpdfsetup{add-new-tag=figures/Sect}
-\tagpdfsetup{add-new-tag=tables/Sect}
\prop_new:N \g__tag_float_sect_prop
\seq_new:N \g__tag_float_types_seq
\seq_gput_right:Nn \g__tag_float_types_seq {figure}
@@ -219,8 +218,42 @@
\fi
\fi
}
+\def\end@dblfloat{%
+ \if@twocolumn
+ \@endfloatbox
+ \@nameuse{__tag_float_end:}%
+ \ifnum\@floatpenalty <\z@
+ \@largefloatcheck
+ \global\dp\@currbox1sp %
+ \@cons\@currlist\@currbox
+ \ifnum\@floatpenalty <-\@Mii
+ \penalty -\@Miv
+ \@tempdima\prevdepth
+ \vbox{}%
+ \prevdepth\@tempdima
+ \penalty\@floatpenalty
+ \else
+ \vadjust{\penalty -\@Miv \vbox{}\penalty\@floatpenalty}\@Esphack
+ \@nameuse{__tag_float_start_par:} %restart P safe here??
+ \fi
+ \fi
+ \else
+ \end@float
+ \fi
+}%
\ExplSyntaxOn
\def\hyper@nopatch@caption{}
+\let\@kernel@refstepcounter\refstepcounter %as long it is not in the kernel
+\def\caption{%
+ \ifx\@captype\@undefined
+ \@latex@error{\noexpand\caption outside float}\@ehd
+ \expandafter\@gobble
+ \else
+ \@kernel@refstepcounter\@captype
+ \expandafter\@firstofone
+ \fi
+ {\@dblarg{\@caption\@captype}}%
+}
\providecommand\theHg__tag_struct_abs_int{\int_use:N\c@g__tag_struct_abs_int}
\AddToHook{begindocument}
@@ -253,7 +286,7 @@
\tag_mc_end:
\tag_struct_end:
\tag_mc_begin:n{}
- #2\par
+ #2
\tag_mc_end:\hfil}%
\fi
\tag_struct_end: %caption
diff --git a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-graphic.sty b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-graphic.sty
index afe5a4625e5..19aed304798 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-graphic.sty
+++ b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-graphic.sty
@@ -33,16 +33,15 @@
%%
%%
%% File: latex-lab-graphic.dtx (C) Copyright 2022-2023 LaTeX Project
-\ProvidesExplPackage {latex-lab-testphase-graphic} {2023-04-07} {0.8}
+\def\ltlabgraphicdate{2023-10-13}
+\def\ltlabgraphicversion{0.80b}
+\ProvidesExplPackage {latex-lab-testphase-graphic} {\ltlabgraphicdate} {\ltlabgraphicversion}
{Code related to the tagging of graphics}
\RequirePackage{l3opacity}
-\ref_attribute_gset:nnnn{xpos}{0}{shipout}{\int_use:N\tex_lastxpos:D}
-\ref_attribute_gset:nnnn{ypos}{0}{shipout}{\int_use:N\tex_lastypos:D}
-
\cs_new_protected:Npn\__tag_graphic_savepos:n #1
{
\tex_savepos:D
- \ref_label:nn{#1}{xpos,ypos,abspage}
+ \property_record:nn{#1}{xpos,ypos,abspage}
\tex_savepos:D
}
\cs_generate_variant:Nn \__tag_graphic_savepos:n {e}
@@ -105,8 +104,8 @@
{
\tl_if_empty:NT\l__tag_graphic_alt_tl
{
- \msg_warning:nnx{tag}{alt-text-missing}{\l__tag_graphic_alt_dflt_tl}
- \tl_set:Nx\l__tag_graphic_alt_tl {\l__tag_graphic_alt_dflt_tl}
+ \msg_warning:nne{tag}{alt-text-missing}{\l__tag_graphic_alt_dflt_tl}
+ \tl_set:Ne\l__tag_graphic_alt_tl {\l__tag_graphic_alt_dflt_tl}
}
\tag_struct_begin:n
{
@@ -196,7 +195,7 @@
}
\AddToHook{package/graphicx/after}[latex-lab]
{
- \define@key{Gin}{alt} {\tl_set:Nx\l__tag_graphic_alt_tl{\text_purify:n{#1}}}
+ \define@key{Gin}{alt} {\tl_set:Ne\l__tag_graphic_alt_tl{\text_purify:n{#1}}}
\define@key{Gin}{artifact}[]
{
\bool_set_true:N \l__tag_graphic_artifact_bool
@@ -204,7 +203,7 @@
}
\define@key{Gin}{actualtext}
{
- \tl_set:Nx\l__tag_graphic_actual_tl{\text_purify:n{#1}}
+ \tl_set:Ne\l__tag_graphic_actual_tl{\text_purify:n{#1}}
\bool_set_false:N \l__tag_graphic_BBox_bool
}
\define@key{Gin}{correct-BBox}
@@ -231,7 +230,7 @@
\keys_define:nn{tag/picture}
{
,alt .code:n =
- {\tl_set:Nx\l__tag_graphic_alt_tl{\text_purify:n{#1}}}
+ {\tl_set:Ne\l__tag_graphic_alt_tl{\text_purify:n{#1}}}
,artifact .code:n =
{
\bool_set_true:N \l__tag_graphic_artifact_bool
@@ -239,7 +238,7 @@
}
,actualtext .code:n =
{
- \tl_set:Nx\l__tag_graphic_actual_tl{\text_purify:n{#1}}
+ \tl_set:Ne\l__tag_graphic_actual_tl{\text_purify:n{#1}}
\bool_set_false:N \l__tag_graphic_BBox_bool
}
,correct-BBox .code:n =
@@ -284,7 +283,12 @@
}
\cs_new_protected:Npn \__tag_graphic_get_scale:
{
- \fp_set:Nn \l__tag_graphic_scale_fp { \Gin@scalex }
+ \fp_set:Nn \l__tag_graphic_scale_fp
+ {
+ \str_if_eq:eeTF {\Gin@scalex} { ! }
+ { \Gin@scaley }
+ { \Gin@scalex }
+ }
}
\cs_new_protected:Npn \__tag_graphic_applyangle:nnnn #1#2#3#4 %lx,ly,ux,uy
{
@@ -325,7 +329,7 @@
(\l__tag_graphic_uy_fp-\l__tag_graphic_ly_fp-\l__tag_graphic_trim_ly_fp)
* (-\l__tag_graphic_sin_fp)
}
- \tl_gset:Nx\g__tag_graphic_lx_tl
+ \tl_gset:Ne\g__tag_graphic_lx_tl
{
\fp_eval:n
{
@@ -340,7 +344,7 @@
+\l__tag_graphic_trim_lx_fp
}
}
- \tl_gset:Nx\g__tag_graphic_ux_tl
+ \tl_gset:Ne\g__tag_graphic_ux_tl
{
\fp_eval:n
{
@@ -381,7 +385,7 @@
(\l__tag_graphic_uy_fp-\l__tag_graphic_ly_fp-\l__tag_graphic_trim_ly_fp)
* \l__tag_graphic_cos_fp
}
- \tl_gset:Nx\g__tag_graphic_ly_tl
+ \tl_gset:Ne\g__tag_graphic_ly_tl
{
\fp_eval:n
{
@@ -395,7 +399,7 @@
+ \l__tag_graphic_ly_fp + \l__tag_graphic_trim_ly_fp
}
}
- \tl_gset:Nx\g__tag_graphic_uy_tl
+ \tl_gset:Ne\g__tag_graphic_uy_tl
{
\fp_eval:n
{
@@ -416,7 +420,7 @@
{
\bool_if:NT\l__tag_graphic_bboxcorr_bool
{
- \tl_set:Nx #1
+ \tl_set:Ne #1
{
\fp_eval:n
{
@@ -425,7 +429,7 @@
\dim_to_decimal_in_bp:n {\seq_item:Nn \l__tag_graphic_bboxcorr_seq {1} }
}
}
- \tl_set:Nx #2
+ \tl_set:Ne #2
{
\fp_eval:n
{
@@ -434,7 +438,7 @@
\dim_to_decimal_in_bp:n {\seq_item:Nn \l__tag_graphic_bboxcorr_seq {2} }
}
}
- \tl_set:Nx #3
+ \tl_set:Ne #3
{
\fp_eval:n
{
@@ -443,7 +447,7 @@
\dim_to_decimal_in_bp:n {\seq_item:Nn \l__tag_graphic_bboxcorr_seq {3} }
}
}
- \tl_set:Nx #4
+ \tl_set:Ne #4
{
\fp_eval:n
{
@@ -463,22 +467,22 @@
{\l__tag_graphic_BBox_bool}
}
{
- \fp_set:Nn \l__tag_graphic_scale_fp { \Gin@scalex }
+ \__tag_graphic_get_scale:
\__tag_graphic_get_trim:
\int_gincr:N\g__tag_graphic_int
- \tl_set:Nx\l__tag_graphic_currentlabel_tl {__tag_graphic_\int_use:N \g__tag_graphic_int}
+ \tl_set:Ne\l__tag_graphic_currentlabel_tl {__tag_graphic_\int_use:N \g__tag_graphic_int}
\__tag_graphic_savepos:e { \l__tag_graphic_currentlabel_tl }
- \tl_gset:Nx\g__tag_graphic_lx_tl
+ \tl_gset:Ne\g__tag_graphic_lx_tl
{
\dim_to_decimal_in_bp:n
- { \__tag_ref_value:enn {\l__tag_graphic_currentlabel_tl}{xpos}{0}sp }
+ { \property_ref:een {\l__tag_graphic_currentlabel_tl}{xpos}{0}sp }
}
- \tl_gset:Nx\g__tag_graphic_ly_tl
+ \tl_gset:Ne\g__tag_graphic_ly_tl
{
\dim_to_decimal_in_bp:n
- { \__tag_ref_value:enn {\l__tag_graphic_currentlabel_tl}{ypos}{0}sp }
+ { \property_ref:een {\l__tag_graphic_currentlabel_tl}{ypos}{0}sp }
}
- \tl_gset:Nx\g__tag_graphic_ux_tl
+ \tl_gset:Ne\g__tag_graphic_ux_tl
{
\fp_eval:n
{
@@ -487,7 +491,7 @@
\dim_to_decimal_in_bp:n { \Gin@req@width }
}
}
- \tl_gset:Nx\g__tag_graphic_uy_tl
+ \tl_gset:Ne\g__tag_graphic_uy_tl
{
\fp_eval:n
{
@@ -498,7 +502,7 @@
}
\legacy_if:nF {Gin@clip}
{
- \tl_gset:Nx\g__tag_graphic_ux_tl
+ \tl_gset:Ne\g__tag_graphic_ux_tl
{
\fp_eval:n
{
@@ -507,7 +511,7 @@
\l__tag_graphic_trim_ux_fp
}
}
- \tl_gset:Nx\g__tag_graphic_lx_tl
+ \tl_gset:Ne\g__tag_graphic_lx_tl
{
\fp_eval:n
{
@@ -516,7 +520,7 @@
\l__tag_graphic_trim_lx_fp
}
}
- \tl_gset:Nx\g__tag_graphic_uy_tl
+ \tl_gset:Ne\g__tag_graphic_uy_tl
{
\fp_eval:n
{
@@ -525,7 +529,7 @@
\l__tag_graphic_trim_uy_fp
}
}
- \tl_gset:Nx\g__tag_graphic_ly_tl
+ \tl_gset:Ne\g__tag_graphic_ly_tl
{
\fp_eval:n
{
@@ -581,26 +585,26 @@
}
{
\int_gincr:N\g__tag_graphic_int
- \tl_set:Nx\l__tag_graphic_currentlabel_tl {__tag_graphic_\int_use:N \g__tag_graphic_int}
+ \tl_set:Ne\l__tag_graphic_currentlabel_tl {__tag_graphic_\int_use:N \g__tag_graphic_int}
\__tag_graphic_savepos:e { \l__tag_graphic_currentlabel_tl }
- \tl_gset:Nx \g__tag_graphic_lx_tl
+ \tl_gset:Ne \g__tag_graphic_lx_tl
{
\dim_to_decimal_in_bp:n
- { \__tag_ref_value:enn {\l__tag_graphic_currentlabel_tl}{xpos}{0}sp }
+ { \property_ref:een {\l__tag_graphic_currentlabel_tl}{xpos}{0}sp }
}
- \tl_gset:Nx \g__tag_graphic_ly_tl
+ \tl_gset:Ne \g__tag_graphic_ly_tl
{
\dim_to_decimal_in_bp:n
- { \__tag_ref_value:enn {\l__tag_graphic_currentlabel_tl}{ypos}{0}sp - \dp\@picbox }
+ { \property_ref:een {\l__tag_graphic_currentlabel_tl}{ypos}{0}sp - \dp\@picbox }
}
- \tl_gset:Nx \g__tag_graphic_ux_tl
+ \tl_gset:Ne \g__tag_graphic_ux_tl
{
\dim_to_decimal_in_bp:n
{
\g__tag_graphic_lx_tl bp + \wd\@picbox
}
}
- \tl_gset:Nx \g__tag_graphic_uy_tl
+ \tl_gset:Ne \g__tag_graphic_uy_tl
{
\dim_to_decimal_in_bp:n
{
@@ -673,7 +677,7 @@
\int_compare:nNnT
{\g_shipout_readonly_int}
=
- {\__tag_ref_value:enn{__tag_graphic_#6}{abspage}{0}}
+ {\property_ref:een{__tag_graphic_#6}{abspage}{0}}
{
\put
(#1 bp,\dim_eval:n{-\paperheight + \dim_eval:n{#2 bp}})
diff --git a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-math.sty b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-math.sty
index efda100178d..592dca80c1b 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-math.sty
+++ b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-math.sty
@@ -4,7 +4,7 @@
%%
%% The original source files were:
%%
-%% latex-lab-testphase.dtx (with options: `math-sty')
+%% latex-lab-testphase.dtx (with options: `math-package')
%%
%% This is a generated file.
%%
@@ -34,9 +34,10 @@
%%
%% File: latex-lab-testphase.dtx
+
\ProvidesPackage{latex-lab-testphase-math}
- [2023-01-07 v0.8 code related to the math tagging]
-\input{latex-lab-mathtagging.ltx}
+ [2023-07-20 v0.8a code related to the math tagging]
+\input{latex-lab-math.ltx}
\input{latex-lab-amsmath.ltx}
\input{latex-lab-mathtools.ltx}
\input{latex-lab-mathpkg.ltx}
diff --git a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-minipage.sty b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-minipage.sty
index b6f6fe4357a..1f8c5eb5b42 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-minipage.sty
+++ b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-minipage.sty
@@ -33,33 +33,34 @@
%%
%%
%% File: latex-lab-minipage.dtx (C) Copyright 2023 LaTeX Project
-
-\def\ltlistsversion{v0.81}
-\def\ltlistsdate{2023/05/10}
-
-\ProvidesExplPackage {latex-lab-testphase-minipage} {2023-05-10} {0.81}
+\def\ltlabminipagedate{2023-10-30}
+\def\ltlabminipageversion{0.81c}
+\ProvidesExplPackage {latex-lab-testphase-minipage}
+ {\ltlabminipagedate} {\ltlabminipageversion}
{Code related to the tagging of minipages and parboxes}
+\RequirePackage{latex-lab-testphase-new-or-1}
+\RequirePackage{latex-lab-testphase-new-or-2}
\def\@kernel@init@minipage{}
\def\@kernel@init@parbox{}
-\def\@kernel@before@minipage{}
-\def\@kernel@after@minipage{}
-\def\@kernel@before@parbox{}
-\def\@kernel@after@parbox{}
+\socket_new:nn {tagsupport/minipage/before}{0}
+\socket_new:nn {tagsupport/minipage/after} {0}
+\socket_new:nn {tagsupport/parbox/before} {0}
+\socket_new:nn {tagsupport/parbox/after}{0}
\def\@iiiminipage#1#2[#3]#4{%
\@kernel@init@minipage
\leavevmode
\@pboxswfalse
\setlength\@tempdima{#4}%
\def\@mpargs{{#1}{#2}[#3]{#4}}%
- \@kernel@before@minipage% new
+ \socket_use:n{tagsupport/minipage/before}% new
\setbox\@tempboxa\vbox\bgroup
\color@begingroup
\hsize\@tempdima
\textwidth\hsize \columnwidth\hsize
\@parboxrestore
\def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}\c@mpfootnote\z@
- \let\@footnotetext\@mpfootnotetext
+ \socket_assign_plug:nn{fntext/process}{mp}%
\let\@listdepth\@mplistdepth \@mplistdepth\z@
\@minipagerestore
\@setminipage}
@@ -78,14 +79,14 @@
\tag_stop:n{minipage}
\expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}%
\tag_start:n{minipage}
- \@kernel@after@minipage%new end ...
+ \socket_use:n{tagsupport/minipage/after} %new end ...
}
\long\def\@iiiparbox#1#2[#3]#4#5{%
\@kernel@init@parbox
\leavevmode
\@pboxswfalse
\setlength\@tempdima{#4}%
- \@kernel@before@parbox% new
+ \socket_use:n{tagsupport/parbox/before}
\@begin@tempboxa\vbox{\hsize\@tempdima\@parboxrestore#5\@@par}%
\ifx\relax#2\else
\setlength\@tempdimb{#2}%
@@ -100,20 +101,27 @@
\csname bm@#3\endcsname}%
\if@pboxsw \m@th$\fi
\@end@tempboxa%
- \@kernel@after@parbox%new end
+ \socket_use:n{tagsupport/parbox/after}
}
\tl_new:N \l__ltboxes_tag_tl
\tl_set:Nn \l__ltboxes_tag_tl {Div}
-\cs_set_protected:Npn\@kernel@before@minipage
+\socket_new_plug:nnn{tagsupport/minipage/before}{tag/dflt}
{
\tag_mc_end_push:\tag_struct_end:
- \tag_struct_begin:n{tag=\l__ltboxes_tag_tl}}
-\cs_set_protected:Npn\@kernel@after@minipage
+ \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{}}
-\cs_set_protected:Npn\@kernel@before@parbox
+
+\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}}
-\cs_set_protected:Npn\@kernel@after@parbox
+
+\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{}}
+\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}
+\socket_assign_plug:nn{tagsupport/parbox/after} {tag/dflt}
\endinput
%%
diff --git a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-new-or-1.sty b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-new-or-1.sty
index a0c12a56ee0..167c5d6130e 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-new-or-1.sty
+++ b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-new-or-1.sty
@@ -4,7 +4,7 @@
%%
%% The original source files were:
%%
-%% latex-lab-new-or-1.dtx (with options: `code')
+%% latex-lab-new-or-1.dtx (with options: `package')
%%
%% This is a generated file.
%%
@@ -33,8 +33,11 @@
%%
%%
%% File: latex-lab-new-or-1.dtx (C) Copyright 2020-2023 Frank Mittelbach
+\def\ltlabneworIdate{2023-07-20}
+\def\ltlabneworIversion{0.85a}
\ProvidesPackage{latex-lab-testphase-new-or-1}
- [2022-11-94 v0.1a Temporary output patches for tagging and better link support]
+ [\ltlabneworIdate\space v\ltlabneworIversion\space
+ Temporary output patches for tagging and better link support]
\RequirePackage{etoolbox}
\providecommand\@kernel@before@head{}
\providecommand\@kernel@before@foot{}
@@ -51,17 +54,36 @@
{\color@hbox\normalcolor\hb@xt@\textwidth{\@thefoot}\color@endbox}
{\@kernel@before@foot\color@hbox\normalcolor\hb@xt@\textwidth{\@thefoot}\color@endbox\@kernel@after@foot}
{\typeout{Patching footer in \string\@outputpage}}{\PATCHerror }
- \providecommand\@kernel@before@footins{}
- \providecommand\@kernel@before@cclv{}
+\providecommand\@kernel@before@footins{}
+\providecommand\@kernel@tagsupport@@makecol{}
- \patchcmd\@makecol
- {\vskip\skip\footins}
- {\vskip\skip\footins\@kernel@before@footins}
- {\typeout{Patching \string\@makecol\space for tagging}}{\PATCHerror }
+\patchcmd\@makecol
+ {\vskip\skip\footins}
+ {\vskip\skip\footins\@kernel@before@footins}
+ {\typeout{Patching \string\@makecol\space for tagging}}{\PATCHerror }
+\patchcmd\@makecol
+ {\let\@elt\relax}
+ {\@kernel@tagsupport@@makecol\let\@elt\relax}
+ {\typeout{Patching \string\@makecol\space for tagging}}{\PATCHerror }
- \pretocmd\@makecol{\@kernel@before@cclv}
- {\typeout{Patching \string\@makecol\space for tagging}}{\PATCHerror }
+\AddToHook{package/footmisc/after}
+ {%
+ \def\@makecol{%
+ \setbox\@outputbox \box\@cclv
+ \@outputbox@removebskip
+ \@kernel@tagsupport@@makecol
+ \let\@elt\relax
+ \xdef\@freelist{\@freelist\@midlist}%
+ \global \let \@midlist \@empty
+ \@makecol@appendblocks
+ \ifvbox\@kludgeins
+ \@makespecialcolbox
+ \else
+ \@makenormalcolbox
+ \fi
+ \global \maxdepth \@maxdepth}
+}
\AddToHook{package/multicol/after}
{% multicol needs later loading
\patchcmd\page@sofar
diff --git a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-new-or-2.sty b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-new-or-2.sty
index 7b7be705354..cb81b74c017 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-new-or-2.sty
+++ b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-new-or-2.sty
@@ -4,7 +4,7 @@
%%
%% The original source files were:
%%
-%% latex-lab-new-or-2.dtx (with options: `code')
+%% latex-lab-new-or-2.dtx (with options: `package')
%%
%% This is a generated file.
%%
@@ -33,25 +33,29 @@
%%
%%
%% File: latex-lab-new-or-2.dtx
+\def\ltlabneworIIdate{2023-09-04}
+\def\ltlabneworIIversion{0.85c}
+
\ProvidesPackage{latex-lab-testphase-new-or-2}
- [2022-11-04 v0.1c changes to the output routine]
+ [\ltlabneworIIdate\space v\ltlabneworIIversion\space
+ Changes to the output routine]
\def \@makecol {%
- \@kernel@before@cclv
\setbox\@outputbox \box\@cclv
\@outputbox@removebskip
+ \@kernel@tagsupport@@makecol
\let\@elt\relax
\xdef\@freelist{\@freelist\@midlist}%
\global \let \@midlist \@empty
- \@makecol@cfgpoint
+ \UseSocket{@makecol/outputbox}%
\ifvbox\@kludgeins
- \@makespecialcolbox
+ \@make@specialcolbox
\else
- \@makenormalcolbox
+ \@make@normalcolbox
\fi
\global \maxdepth \@maxdepth
}
\newdimen\@outputbox@depth
-\def \@makenormalcolbox {%
+\def \@make@normalcolbox {%
\setbox\@outputbox \vbox to\@colht {%
\@texttop
\@outputbox@depth \dp\@outputbox
@@ -60,7 +64,7 @@
\@textbottom
}%
}
-\def \@makespecialcolbox {%
+\def \@make@specialcolbox {%
\@outputbox@append {\vskip-\@outputbox@depth}%
\@tempdima \@colht
\ifdim \wd\@kludgeins>\z@
@@ -109,7 +113,7 @@
\def\@outputbox@appendfootnotes {%
\ifvoid\footins \else
\@makecol@handlesplitfootnotes
- \@makecol@cfgpointii
+ \UseSocket{@makecol/footnotes}%
\@outputbox@append{%
\vskip \skip\footins
\@kernel@before@footins
@@ -135,7 +139,7 @@
\fi
}
\let \@makecol@splitfootnotemessagehook \@empty
-\let \@makecol@cfgpointii \@empty
+\NewSocket{@makecol/footnotes}{0}
\def\@if@flushbottom@TF{%
\ifx\@textbottom\relax
\expandafter\@firstoftwo
@@ -157,11 +161,51 @@
\expandafter\@firstoftwo
\fi
}
- \def\@makecol@cfgpoint {%
- \@outputbox@appendfootnotes
- \@outputbox@attachfloats
- \@outputbox@reinsertbskip
- }
+\NewSocket{@makecol/outputbox}{0}
+\NewSocketPlug {@makecol/outputbox}{space-footnotes-floats} {%
+ \@if@footnotes@TF
+ {\@outputbox@append{\vfill}}%
+ {\@if@bfloats@TF
+ {\@outputbox@append{\vfill}}%
+ {\@outputbox@reinsertbskip}%
+ }%
+ \@outputbox@appendfootnotes
+ \@outputbox@attachfloats
+}
+\NewSocketPlug {@makecol/outputbox}{floats-footnotes-space} {%
+ \@outputbox@attachfloats
+ \@if@footnotes@TF
+ {\@outputbox@append{\vfill}}%
+ {\@outputbox@reinsertbskip}%
+ \@outputbox@appendfootnotes
+}
+\NewSocketPlug {@makecol/outputbox}{footnotes-space-floats} {%
+ \@outputbox@appendfootnotes
+ \@if@bfloats@TF
+ {\@outputbox@append{\vfill}}%
+ {\@outputbox@reinsertbskip}%
+ \@outputbox@attachfloats
+}
+\NewSocketPlug {@makecol/outputbox}{space-floats-footnotes} {%
+ \@if@footnotes@TF
+ {\@outputbox@append{\vfill}}%
+ {\@if@bfloats@TF
+ {\@outputbox@append{\vfill}}%
+ {\@outputbox@reinsertbskip}}%
+ \@outputbox@attachfloats
+ \@outputbox@appendfootnotes
+}
+\NewSocketPlug {@makecol/outputbox}{floats-footnotes} {%
+ \@outputbox@attachfloats
+ \@outputbox@appendfootnotes
+ \@outputbox@reinsertbskip
+}
+\NewSocketPlug {@makecol/outputbox}{footnotes-floats} {%
+ \@outputbox@appendfootnotes
+ \@outputbox@attachfloats
+ \@outputbox@reinsertbskip
+}
+\AssignSocketPlug {@makecol/outputbox}{footnotes-floats}
\declare@file@substitution{footmisc.sty}{latex-lab-footmisc.ltx}
\input{latex-lab-footnotes.ltx}
\endinput
diff --git a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-sec.sty b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-sec.sty
index 37d260300ad..9e98894969c 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-sec.sty
+++ b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-sec.sty
@@ -33,7 +33,9 @@
%%
%%
%% File: latex-lab-sec.dtx (C) Copyright 2022-2023 LaTeX Project
-\ProvidesExplPackage {latex-lab-testphase-sec} {2023-05-20} {0.81}
+\def\ltlabsecdate{2023-10-16}
+\def\ltlabsecversion{0.84b}
+\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
@@ -161,31 +163,34 @@
{
\@ifundefined{chapter}
{
- \RenewDocumentCommand\part{ s O{#3} m }
+ \@ifundefined{part}{}
{
- \if@noskipsec \leavevmode \fi
- \par
- \addvspace{4ex}%
- \@afterindentfalse
+ \RenewDocumentCommand\part{ s O{#3} m }
+ {
+ \if@noskipsec \leavevmode \fi
+ \par
+ \addvspace{4ex}%
+ \@afterindentfalse
% tagging start commands
- \tag_tool:n {sec-start-part=#2}
+ \tag_tool:n {sec-start-part=#2}
% end tagging start commands
- \bool_lazy_any:nT
- {
- { #1 }
+ \bool_lazy_any:nT
{
- \int_compare_p:nNn {\c@secnumdepth}<{-1}
+ { #1 }
+ {
+ \int_compare_p:nNn {\c@secnumdepth}<{-1}
+ }
}
- }
- {
- \MakeLinkTarget[part]{}
- }
- \IfBooleanTF
- {#1}
- { \@spart {#3} }
- { \@part [#2]{#3} }
- \tag_tool:n {sec-stop-part}
- }
+ {
+ \MakeLinkTarget[part]{}
+ }
+ \IfBooleanTF
+ {#1}
+ { \@spart {#3} }
+ { \@part [#2]{#3} }
+ \tag_tool:n {sec-stop-part}
+ }
+ }
}
{
\RenewDocumentCommand\chapter{ s O{#3} m }
@@ -210,11 +215,6 @@
}
{
\MakeLinkTarget[chapter]{}
- %todo public function for this update!
- \tl_if_blank:VF \@currentHref
- {
- \prop_gput:Nxx \g__tag_struct_dest_num_prop {\@currentHref}{\tag_get:n{struct_num}}
- }
}
\IfBooleanTF
{#1}
@@ -253,10 +253,6 @@
}
{
\MakeLinkTarget[part]{}
- \tl_if_blank:VF \@currentHref
- {
- \prop_gput:Nxx \g__tag_struct_dest_num_prop {\@currentHref}{\tag_get:n{struct_num}}
- }
}
\IfBooleanTF
{#1}
@@ -268,18 +264,14 @@
}
\def\hyper@nopatch@sectioning{}
\cs_new_protected:Npn \@hyp@section@target@nnn #1 #2 #3 %#1 optarg #2 name/counter, #3 indent
- {
- \makebox[0pt][l]
+ {
+ \makebox[0pt][l]
{
\skip_set:Nn \@tempskipa {#3}
\dim_compare:nNnF {\@tempskipa}<{0pt}{\kern-\@tempskipa}
\MakeLinkTarget#1{#2}
}
- \tl_if_blank:VF \@currentHref
- {
- \prop_gput:Nxx \g__tag_struct_dest_num_prop {\@currentHref}{\tag_get:n{struct_num}}
- }
- }
+ }
\def\@startsection#1#2#3#4#5#6{%
\if@noskipsec \leavevmode \fi
\par
diff --git a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-table.sty b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-table.sty
new file mode 100644
index 00000000000..e6c89d16715
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-table.sty
@@ -0,0 +1,977 @@
+%%
+%% This is file `latex-lab-testphase-table.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-table.dtx (with options: `package')
+%%
+%% This is a generated file.
+%%
+%% Copyright 2021-2023 LaTeX Project
+%%
+%% This file was generated from file(s) of the `LaTeX-lab Bundle'.
+%% ------------------------------------------------------------------------------------
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008 or later.
+%%
+%% This file may only be distributed together with a copy of the LaTeX
+%% `LaTeX-lab Bundle'. You may however distribute the `LaTeX-lab Bundle'
+%% without such generated files.
+%%
+%% The newest sources can be found below
+%%
+%% https://github.com/latex3/latex2e/required/latex-lab
+%%
+%% where one can also log issues in case there are any.
+%%
+%%
+%% File: latex-lab-table.dtx (C) Copyright 2023 LaTeX Project
+\def\ltlabtbldate{2023-10-30}
+\def\ltlabtblversion{0.85d}
+\ProvidesExplPackage {latex-lab-testphase-table} {\ltlabtbldate} {\ltlabtblversion}
+ {Code related to the tagging of tables}
+\RequirePackage{array}
+\tl_new:N \l__tbl_celltag_tl
+\tl_set:Nn \l__tbl_celltag_tl {TD}
+\tl_new:N \l__tbl_rowtag_tl
+\tl_set:Nn \l__tbl_rowtag_tl {TR}
+\tl_new:N \l__tbl_cellattribute_tl
+\tl_set:Nn \l__tbl_cellattribute_tl {}
+\tl_new:N \l__tbl_rowattribute_tl
+\tl_set:Nn \l__tbl_rowattribute_tl {}
+\int_new:N \g__tbl_missing_cells_int
+\clist_new:N \l__tbl_tmpa_clist
+\seq_new:N \l__tbl_tmpa_seq
+\tl_new:N \l__tbl_tmpa_tl
+\NewSocket{tagsupport/tblcell/begin}{0}
+\NewSocket{tagsupport/tblcell/end}{0}
+\NewSocket{tagsupport/tblrow/begin}{0}
+\NewSocket{tagsupport/tblrow/end}{0}
+\NewSocket{tagsupport/tbl/init}{0}
+\NewSocket{tagsupport/tbl/finalize}{0}
+\NewSocket{tagsupport/tbl/finalize/longtable}{0}
+\NewSocket{tagsupport/tblhmode/begin}{0}
+\NewSocket{tagsupport/tblhmode/end}{0}
+\NewSocket{tagsupport/tblvmode/begin}{0}
+\NewSocket{tagsupport/tblvmode/end}{0}
+\NewSocketPlug{tagsupport/tblcell/begin}{TD}
+ {
+ \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{}
+ }
+\NewSocketPlug{tagsupport/tblcell/end}{TD}
+ {
+ \tag_mc_end:
+ \tag_struct_end:
+ }
+\NewSocketPlug{tagsupport/tblcell/begin}{TDpbox}
+ {
+ \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} }
+ }
+ \tagpdfparaOn
+ \tl_set:Nn \l__tag_para_main_tag_tl {Div}
+ }
+\NewSocketPlug{tagsupport/tblcell/end}{TDpbox}
+ {
+ \tag_struct_end:
+ }
+\NewSocketPlug{tagsupport/tblrow/begin}{TR}
+ {
+ \seq_gclear:N \g__tbl_struct_cur_seq
+ \tag_struct_begin:n
+ {
+ tag =\l__tbl_rowtag_tl,
+ attribute-class=\l__tbl_rowattribute_tl
+ }
+ \seq_gput_right:Ne \g__tbl_struct_rows_seq { \tag_get:n {struct_num} }
+ }
+\NewSocketPlug{tagsupport/tblrow/end}{TR}
+ {
+ \__tag_tbl_add_missing_cells:n { \g__tbl_missing_cells_int }
+ \seq_gput_right:Ne \g__tbl_struct_cells_seq
+ {
+ \seq_use:Nn \g__tbl_struct_cur_seq {,}
+ }
+ \int_compare:nNnTF { \g__tbl_row_int } = { \seq_count:N\g__tbl_struct_cells_seq }
+ {
+ \typeout
+ {==>~
+ stucture~stored~for~row~\int_use:N\g__tbl_row_int :~
+ \seq_use:Nn \g__tbl_struct_cur_seq {,}
+ }
+ }
+ { \ERROR } % should not happen ...
+ \tag_struct_end:
+ }
+\NewSocketPlug{tagsupport/tbl/init}{Table}
+ {
+ \tag_if_active:T
+ {
+ \bool_set_false:N \l__tag_para_bool
+ }
+ }
+\NewSocketPlug{tagsupport/tbl/finalize}{Table}
+ {
+ \__tbl_set_header_rows:
+ }
+\NewSocketPlug{tagsupport/tbl/finalize/longtable}{Table}
+ {
+ \bool_lazy_and:nnTF
+ { \seq_if_empty_p:N \g__tbl_LT@head_rows_seq }
+ { \seq_if_empty_p:N \g__tbl_LT@firsthead_rows_seq }
+ { \__tbl_set_header_rows: }
+ {
+ \seq_if_empty:NTF \g__tbl_LT@firsthead_rows_seq
+ {
+ \clist_set:Ne \l__tbl_header_rows_clist
+ {\seq_use:Nn \g__tbl_LT@head_rows_seq {,}}
+ \__tbl_set_header_rows:
+ }
+ {
+ \clist_set:Ne \l__tbl_header_rows_clist
+ { \seq_use:Nn \g__tbl_LT@firsthead_rows_seq {,} }
+ \__tbl_set_header_rows:
+ \pdf_version_compare:NnTF < {2.0}
+ {
+ \seq_map_inline:Nn \g__tbl_LT@head_rows_seq
+ {
+ \seq_gset_item:cnn
+ {g__tag_struct_kids_ \g__tbl_struct_table_tl _seq}
+ { ##1 }
+ {}
+ \tl_set:Ne \l__tbl_tmpa_tl
+ { \seq_item:Nn\g__tbl_struct_rows_seq {##1} }
+ \prop_if_exist:cT
+ { g__tag_struct_ \l__tbl_tmpa_tl _prop }
+ {
+ %\prop_gremove:cn {g__tag_struct_ \l__tbl_tmpa_tl _prop} {P}
+ }
+ }
+ }
+ {
+ \seq_map_inline:Nn \g__tbl_LT@head_rows_seq
+ {
+ \tl_set:Ne \l__tbl_tmpa_tl
+ { \seq_item:Nn\g__tbl_struct_rows_seq {##1} }
+ \prop_if_exist:cT
+ { g__tag_struct_ \l__tbl_tmpa_tl _prop }
+ {
+ \__tbl_struct_prop_gput:Vnn \l__tbl_tmpa_tl {S}{/Artifact}
+ }
+ }
+ }
+ }
+ }
+ \bool_lazy_and:nnF
+ { \seq_if_empty_p:N \g__tbl_LT@foot_rows_seq }
+ { \seq_if_empty_p:N \g__tbl_LT@lastfoot_rows_seq }
+ {
+ \seq_if_empty:NTF \g__tbl_LT@lastfoot_rows_seq
+ {
+ \seq_map_inline:Nn \g__tbl_LT@foot_rows_seq
+ {
+ \tl_set:Ne \l__tbl_tmpa_tl
+ {
+ \seq_item:cn
+ {g__tag_struct_kids_ \g__tbl_struct_table_tl _seq}
+ {##1}
+ }
+ \seq_gset_item:cnn
+ {g__tag_struct_kids_ \g__tbl_struct_table_tl _seq}
+ { ##1 }
+ {}
+ \seq_gput_right:cV
+ {g__tag_struct_kids_ \g__tbl_struct_table_tl _seq}
+ \l__tbl_tmpa_tl
+ }
+ }
+ {
+ \seq_map_inline:Nn \g__tbl_LT@lastfoot_rows_seq
+ {
+ \tl_set:Ne \l__tbl_tmpa_tl
+ {
+ \seq_item:cn
+ {g__tag_struct_kids_ \g__tbl_struct_table_tl _seq}
+ {##1}
+ }
+ \seq_gset_item:cnn
+ {g__tag_struct_kids_ \g__tbl_struct_table_tl _seq}
+ { ##1 }
+ {}
+ \seq_gput_right:cV
+ {g__tag_struct_kids_ \g__tbl_struct_table_tl _seq}
+ \l__tbl_tmpa_tl
+ }
+ \pdf_version_compare:NnTF < {2.0}
+ {
+ \seq_map_inline:Nn \g__tbl_LT@foot_rows_seq
+ {
+ \seq_gset_item:cnn
+ {g__tag_struct_kids_ \g__tbl_struct_table_tl _seq}
+ { ##1 }
+ {}
+ \tl_set:Ne \l__tbl_tmpa_tl
+ { \seq_item:Nn\g__tbl_struct_rows_seq {##1} }
+ \prop_if_exist:cT
+ { g__tag_struct_ \l__tbl_tmpa_tl _prop }
+ {
+ %\prop_gremove:cn {g__tag_struct_ \l__tbl_tmpa_tl _prop} {P}
+ }
+ }
+ }
+ {
+ \seq_map_inline:Nn \g__tbl_LT@foot_rows_seq
+ {
+ \tl_set:Ne \l__tbl_tmpa_tl
+ { \seq_item:Nn\g__tbl_struct_rows_seq {##1} }
+ \prop_if_exist:cT
+ { g__tag_struct_ \l__tbl_tmpa_tl _prop }
+ {
+ \__tbl_struct_prop_gput:Vnn \l__tbl_tmpa_tl {S}{/Artifact}
+ }
+ }
+ }
+ }
+ }
+ }
+\NewSocketPlug{tagsupport/tblhmode/begin}{Table}
+ {
+ \mode_leave_vertical:
+ \tag_mc_end_push:
+ \bool_lazy_and:nnT
+ { \bool_if_exist_p:N \l__tag_para_bool } { \l__tag_para_bool }
+ { \tag_struct_end:n { text } }
+ \tag_struct_begin:n {tag=Table}
+ \tl_gset:Ne \g__tbl_struct_table_tl { \tag_get:n {struct_num} }
+ }
+\NewSocketPlug{tagsupport/tblhmode/end}{Table}
+ {
+ \tag_struct_end:
+ \bool_lazy_and:nnT
+ { \bool_if_exist_p:N \l__tag_para_bool } { \l__tag_para_bool }
+ { \tag_struct_begin:n { tag=\l__tag_para_tag_tl } }
+ \tag_mc_begin_pop:n{}
+ }
+\NewSocketPlug{tagsupport/tblvmode/begin}{Table}
+ {
+ \tag_struct_begin:n {tag=Table}
+ \tl_gset:Ne \g__tbl_struct_table_tl { \tag_get:n {struct_num} }
+ }
+\NewSocketPlug{tagsupport/tblvmode/end}{Table}
+ {
+ \tag_struct_end:
+ \par
+ }
+\AddToHook{env/tabular/before} {\UseSocket{tagsupport/tblhmode/begin}}
+\AddToHook{env/tabular/after} {\UseSocket{tagsupport/tblhmode/end}}
+\AddToHook{env/tabular*/before} {\UseSocket{tagsupport/tblhmode/begin}}
+\AddToHook{env/tabular*/after} {\UseSocket{tagsupport/tblhmode/end}}
+\AddToHook{env/tabularx/before} {\UseSocket{tagsupport/tblhmode/begin}}
+\AddToHook{env/tabularx/after} {\UseSocket{tagsupport/tblhmode/end}}
+\AddToHook{env/longtable/before}{\UseSocket{tagsupport/tblvmode/begin}}
+\AddToHook{env/longtable/after} {\UseSocket{tagsupport/tblvmode/end}}
+\AddToHook{env/array/begin} {\__tag_tbl_disable:}
+\tag_if_active:T
+ { \cs_generate_variant:Nn \__tag_attr_new_entry:nn {ee} }
+\cs_new_protected:Npn \__tbl_set_colspan:n #1
+ {
+ \tag_if_active:T
+ {
+ \int_compare:nNnT {#1}>{1}
+ {
+ \prop_get:NeNF \g__tag_attr_entries_prop
+ {colspan-\int_eval:n{#1}}
+ \l__tbl_tmpa_tl
+ {
+ \__tag_attr_new_entry:ee
+ {colspan-\int_eval:n{#1}}
+ {/O /Table /ColSpan~\int_eval:n{#1}}
+ }
+ \tl_set:Ne \l__tbl_cellattribute_tl
+ {colspan-\int_eval:n{#1}}
+ }
+ }
+ }
+
+\cs_new_protected:Npn \__tag_tbl_disable:
+ {
+ \AssignSocketPlug{tagsupport/tblcell/begin}{noop}
+ \AssignSocketPlug{tagsupport/tblcell/end}{noop}
+ \AssignSocketPlug{tagsupport/tblrow/begin}{noop}
+ \AssignSocketPlug{tagsupport/tblrow/end}{noop}
+ \AssignSocketPlug{tagsupport/tbl/init}{noop}
+ \AssignSocketPlug{tagsupport/tbl/finalize}{noop}
+ \AssignSocketPlug{tagsupport/tbl/finalize/longtable}{noop}
+ \AssignSocketPlug{tagsupport/tblhmode/begin}{noop}
+ \AssignSocketPlug{tagsupport/tblhmode/end}{noop}
+ \AssignSocketPlug{tagsupport/tblvmode/begin}{noop}
+ \AssignSocketPlug{tagsupport/tblvmode/end}{noop}
+ }
+
+\cs_new_protected:Npn \__tag_tbl_enable:
+ {
+ \AssignSocketPlug{tagsupport/tblcell/begin}{TD}
+ \AssignSocketPlug{tagsupport/tblcell/end}{TD}
+ \AssignSocketPlug{tagsupport/tblrow/begin}{TR}
+ \AssignSocketPlug{tagsupport/tblrow/end}{TR}
+ \AssignSocketPlug{tagsupport/tbl/init}{Table}
+ \AssignSocketPlug{tagsupport/tbl/finalize}{Table}
+ \AssignSocketPlug{tagsupport/tbl/finalize/longtable}{Table}
+ \AssignSocketPlug{tagsupport/tblhmode/begin}{Table}
+ \AssignSocketPlug{tagsupport/tblhmode/end}{Table}
+ \AssignSocketPlug{tagsupport/tblvmode/begin}{Table}
+ \AssignSocketPlug{tagsupport/tblvmode/end}{Table}
+ }
+
+\keys_define:nn { __tag / setup }
+ {
+ table-tagging .choices:nn = { true, on }
+ { \__tag_tbl_enable: },
+ table-tagging .choices:nn = { false, off }
+ { \__tag_tbl_disable: },
+ table-tagging .default:n = true,
+ table-tagging .initial:n = true
+ }
+\AddToHook{begindocument}
+ {
+ \cs_if_exist:NT \@kernel@before@head
+ {
+ \tl_put_right:Nn \@kernel@before@head {\__tag_tbl_disable:}
+ \tl_put_right:Nn \@kernel@before@foot {\__tag_tbl_disable:}
+ }
+ }
+\AddToHook{begindocument}
+ {
+ \tag_if_active:T
+ {
+ \tagpdfsetup
+ {
+ newattribute =
+ {TH-col}{/O /Table /Scope /Column},
+ newattribute =
+ {TH-row}{/O /Table /Scope /Row},
+ newattribute =
+ {TH-both}{/O /Table /Scope /Both},
+ }
+ \seq_gput_left:Ne\g__tag_attr_class_used_seq
+ {\pdf_name_from_unicode_e:n{TH-col}}
+ \seq_gput_left:Ne\g__tag_attr_class_used_seq
+ {\pdf_name_from_unicode_e:n{TH-row}}
+ \seq_gput_left:Ne\g__tag_attr_class_used_seq
+ {\pdf_name_from_unicode_e:n{TH-both}}
+ }
+ }
+
+\clist_new:N \l__tbl_header_rows_clist
+\cs_if_free:NTF \__tag_struct_prop_gput:nnn
+ {
+ \cs_new_protected:Npn \__tbl_struct_prop_gput:nnn #1#2#3
+ { \prop_gput:cnn { g__tag_struct_#1_prop }{#2}{#3} }
+ }
+ { \cs_new_protected:Npn \__tbl_struct_prop_gput:nnn #1#2#3
+ { \__tag_struct_prop_gput:nnn {#1}{#2}{#3} }
+ }
+\cs_generate_variant:Nn \__tbl_struct_prop_gput:nnn {nne,Vnn}
+\cs_new_protected:Npn \__tbl_set_header_rows:
+ {
+ \clist_map_inline:Nn \l__tbl_header_rows_clist
+ {
+ \clist_set:Ne\l__tbl_tmpa_clist
+ {
+ \seq_item:Nn \g__tbl_struct_cells_seq {##1}
+ }
+ \clist_map_inline:Nn \l__tbl_tmpa_clist
+ {
+ \prop_if_exist:cT { g__tag_struct_####1_prop }
+ {
+ \__tbl_struct_prop_gput:nnn{ ####1 }{S}{/TH}
+ \prop_get:cnNTF
+ { g__tag_struct_####1_prop }
+ { C }
+ \l__tbl_tmpa_tl
+ {\__tbl_struct_prop_gput:nne{ ####1 }{C}{[/TH-col~\l__tbl_tmpa_tl]} }
+ {\__tbl_struct_prop_gput:nnn{ ####1 }{C}{/TH-col}}
+ }
+ }
+ }
+ }
+\keys_define:nn { __tag / setup }
+ {
+ table-header-rows .clist_set:N = \l__tbl_header_rows_clist
+ }
+\cs_new_protected:Npn \__tbl_show_curr_cell_data: {
+ \typeout { ==>~ current~cell~data:~
+ \int_use:N \g__tbl_row_int ,
+ \int_use:N \g__tbl_col_int ,
+ \g__tbl_span_tl
+ }
+}
+\def\insert@column{%
+ \__tbl_show_curr_cell_data:
+ \UseSocket{tagsupport/tblcell/begin}%
+ \the@toks \the \@tempcnta
+ \ignorespaces \@sharp \unskip
+ \the@toks \the \count@ \relax
+ \UseSocket{tagsupport/tblcell/end}%
+}
+\def\@classz{\@classx
+ \@tempcnta \count@
+ \prepnext@tok
+ \@addtopreamble{\ifcase \@chnum
+ \hfil
+ \hskip1sp%
+ \d@llarbegin
+ \insert@column
+ \d@llarend \do@row@strut \hfil \or
+ \hskip1sp\d@llarbegin \insert@column \d@llarend \do@row@strut \hfil \or
+ \hfil\hskip1sp\d@llarbegin \insert@column \d@llarend \do@row@strut \or
+ \setbox\ar@mcellbox\vbox
+ \@startpbox{\@nextchar}
+ \AssignSocketPlug{tagsupport/tblcell/begin}{TDpbox}
+ \AssignSocketPlug{tagsupport/tblcell/end}{TDpbox}
+ \insert@column \@endpbox
+ \ar@align@mcell
+ \do@row@strut \or
+ \vtop \@startpbox{\@nextchar}
+ \AssignSocketPlug{tagsupport/tblcell/begin}{TDpbox}
+ \AssignSocketPlug{tagsupport/tblcell/end}{TDpbox}
+ \insert@column \@endpbox\do@row@strut \or
+ \vbox \@startpbox{\@nextchar}
+ \AssignSocketPlug{tagsupport/tblcell/begin}{TDpbox}
+ \AssignSocketPlug{tagsupport/tblcell/end}{TDpbox}
+ \insert@column \@endpbox\do@row@strut
+ \fi}\prepnext@tok}
+\def\@array[#1]#2{%
+ \@tempdima \ht \strutbox
+ \advance \@tempdima by\extrarowheight
+ \setbox \@arstrutbox \hbox{\vrule
+ \@height \arraystretch \@tempdima
+ \@depth \arraystretch \dp \strutbox
+ \@width \z@}%
+ \tl_set_eq:NN \l__tbl_saved_table_cols_tl \g__tbl_table_cols_tl
+ \begingroup
+ \@mkpream{#2}
+ \__tbl_determine_table_cols:
+ \xdef\@preamble{%
+ \noexpand
+ \ar@ialign
+ \@halignto
+ \bgroup \@arstrut
+ \UseSocket{tagsupport/tblrow/begin}%
+ \__tbl_init_cell_data:
+ \@preamble
+ \tabskip \z@ \cr}%
+ \endgroup
+ \@arrayleft
+ \UseSocket{tagsupport/tbl/init}
+ \if #1t\vtop \else \if#1b\vbox \else \vcenter \fi \fi
+ \bgroup
+ \let \@sharp ##\let \protect \relax
+ \lineskip \z@
+ \baselineskip \z@
+ \m@th
+ \let\\\@arraycr \let\tabularnewline\\\let\par\@empty
+ \@preamble}
+\let\@@array\@array
+\cs_new_protected:Npn \__tbl_init_cell_data: {
+ \int_gset:Nn \g__tbl_col_int {1}
+ \tl_gset:Nn \g__tbl_span_tl {1}
+}
+\cs_new_protected:Npn \__tbl_update_cell_data: {
+ \int_gadd:Nn \g__tbl_col_int { \g__tbl_span_tl }
+ \tl_gset:Nn \g__tbl_span_tl {1}
+}
+\cs_new:Npn \__tbl_determine_table_cols: {
+ \seq_set_split:NnV\l__tbl_tmpa_seq {&}\@preamble
+ \tl_gset:Ne \g__tbl_table_cols_tl { \seq_count:N \l__tbl_tmpa_seq }
+ \typeout{ ==>~ Table~ has~ \g__tbl_table_cols_tl \space columns }
+}
+\protected\def\@arraycr{
+ \relax
+ \__tbl_store_missing_cells:n{@arraycr}
+ %
+ \iffalse{\fi\ifnum 0=`}\fi
+ \@ifstar \@xarraycr \@xarraycr}
+\cs_new:Npn \__tbl_store_missing_cells:n #1 {
+ \int_compare:nNnT \g__tbl_col_int > 0
+ {
+ \int_gset:Nn \g__tbl_missing_cells_int
+ {
+ \g__tbl_table_cols_tl
+ - \g__tbl_col_int
+ - \g__tbl_span_tl
+ + 1
+ }
+ \int_compare:nNnT \g__tbl_missing_cells_int < 0 \ERROR % should not happen
+ \typeout{==>~
+ (#1)~
+ This~ row~ needs~
+ \int_use:N \g__tbl_missing_cells_int \space
+ additional~ cell(s)
+ }
+ }
+}
+\cs_new:Npn \__tag_tbl_add_missing_cells:n #1
+ {
+ \int_compare:nNnT {#1}>{0}
+ {
+ \typeout{==>~
+ ~Inserting~\int_eval:n{#1}~additional~cell(s)~into~previous~row:}
+ }
+ \int_step_inline:nn { #1 }
+ {
+ \UseSocket{tagsupport/tblcell/begin}
+ \UseSocket{tagsupport/tblcell/end}
+ }
+ }
+\def\endarray{
+ \__tbl_store_missing_cells:n{endarray}
+ \crcr \egroup
+ \UseSocket{tagsupport/tbl/finalize}
+ \int_gset:Nn \g__tbl_col_int { \l__tbl_saved_col_tl }
+ \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
+ \tl_gset_eq:NN \g__tbl_struct_table_tl \l__tbl_saved_struct_table_tl
+ \seq_gset_eq:NN \g__tbl_struct_rows_seq \l__tbl_saved_struct_rows_seq
+ \seq_gset_eq:NN \g__tbl_struct_cells_seq\l__tbl_saved_struct_cells_seq
+ \seq_gset_eq:NN \g__tbl_struct_cur_seq \l__tbl_saved_struct_cur_seq
+ \typeout{==>~ restored~cell~data:~
+ \int_use:N \g__tbl_row_int,
+ \int_use:N \g__tbl_col_int,
+ \l__tbl_saved_span_tl \space
+ (
+ \int_compare:nNnTF \g__tbl_table_cols_tl = 0
+ { outer~ level }
+ { max:~ \g__tbl_table_cols_tl }
+ )
+ }
+ \egroup
+ \@arrayright \gdef\@preamble{}%
+}
+\def\@addamp {
+ \if@firstamp
+ \@firstampfalse
+ \else
+ \edef\@preamble{\@preamble &
+ \__tbl_update_cell_data:
+ }
+ \fi
+}
+\int_new:N \g__tbl_col_int
+\int_new:N \g__tbl_row_int
+\tl_new:N \g__tbl_span_tl
+\tl_new:N \g__tbl_table_cols_tl
+
+\tl_gset:Nn \g__tbl_span_tl {1}
+\tl_gset:Nn \g__tbl_table_cols_tl {0} % indicates outer level
+\tl_new:N \l__tbl_saved_col_tl
+\tl_new:N \l__tbl_saved_row_tl
+\tl_new:N \l__tbl_saved_span_tl
+\tl_new:N \l__tbl_saved_table_cols_tl
+
+\tl_set:Nn \l__tbl_saved_col_tl{0}
+\tl_set:Nn \l__tbl_saved_row_tl{0}
+\tl_set:Nn \l__tbl_saved_span_tl{1}
+\tl_set:Nn \l__tbl_saved_table_cols_tl{0} % indicates outer level
+\tl_new:N \g__tbl_struct_table_tl
+\tl_new:N \l__tbl_saved_struct_table_tl
+\seq_new:N \g__tbl_struct_rows_seq
+\seq_new:N \l__tbl_saved_struct_rows_seq
+\seq_new:N \g__tbl_struct_cells_seq
+\seq_new:N \l__tbl_saved_struct_cells_seq
+\seq_new:N \g__tbl_struct_cur_seq
+\seq_new:N \l__tbl_saved_struct_cur_seq
+\def\ar@ialign{%
+ \tl_set:No \l__tbl_saved_col_tl {\int_use:N \g__tbl_col_int }
+ \tl_set:No \l__tbl_saved_row_tl {\int_use:N \g__tbl_row_int }
+ \tl_set_eq:NN \l__tbl_saved_span_tl \g__tbl_span_tl
+ \tl_set_eq:NN \l__tbl_saved_struct_table_tl \g__tbl_struct_table_tl
+ \seq_set_eq:NN \l__tbl_saved_struct_rows_seq \g__tbl_struct_rows_seq
+ \seq_set_eq:NN \l__tbl_saved_struct_cells_seq \g__tbl_struct_cells_seq
+ \seq_set_eq:NN \l__tbl_saved_struct_cur_seq \g__tbl_struct_cur_seq
+ \typeout{==>~ saved~cell~data:~
+ \l__tbl_saved_row_tl,
+ \l__tbl_saved_col_tl,
+ \l__tbl_saved_span_tl \space
+ (
+ \int_compare:nNnTF \l__tbl_saved_table_cols_tl = 0
+ { outer~ level }
+ { max:~ \l__tbl_saved_table_cols_tl }
+ )
+ }
+ \int_gzero:N \g__tbl_row_int
+ \int_gzero:N \g__tbl_col_int
+ \tl_gset:Nn \g__tbl_span_tl {1}
+ \seq_gclear:N\g__tbl_struct_rows_seq
+ \seq_gclear:N\g__tbl_struct_cells_seq
+ \seq_gclear:N\g__tbl_struct_cur_seq
+ \everycr{%
+ \noalign{%
+ \int_compare:nNnT \g__tbl_col_int > 0
+ { \UseSocket{tagsupport/tblrow/end} }
+ \int_gincr:N \g__tbl_row_int % this row about to start
+ \int_gzero:N \g__tbl_col_int % we are before first col
+ }%
+ }%
+ \tabskip\z@skip\halign}
+\long\def\multicolumn#1#2#3{%
+ % alternative: determine first col with vmode test ...
+ % \ifvmode
+ % \multispan{#1}\typeout{A==> vmode}%
+ % \else
+ % \multispan{#1}\typeout{A==> not vmode}
+ % \fi
+ % but this makes the \crcr handling really complicated which would
+ % then need to become something like
+ % \ifvmode \expandafter \@gobble
+ % \else \expandafter \@iden \fi {\cr\noalign{do something}}%
+ % so not used.
+ % Instead:
+ \multispan{#1}\begingroup
+ \int_compare:nNnTF \g__tbl_col_int = 0
+ {
+ \UseSocket{tagsupport/tblrow/begin}
+ \int_gset:Nn \g__tbl_col_int {1}
+ }
+ {
+ \int_gadd:Nn \g__tbl_col_int { \g__tbl_span_tl }
+ }
+ \tl_gset:Nn \g__tbl_span_tl {#1}
+ \def\@addamp{\if@firstamp\@firstampfalse \else
+ \@preamerr 5\fi}%
+ \@mkpream{#2}\@addtopreamble\@empty
+ \endgroup
+ \__tbl_set_colspan:n {#1}
+ \def\@sharp{#3}%
+ \@arstrut \@preamble
+ \null
+ \ignorespaces}
+\let\@kernel@refstepcounter\refstepcounter
+\def\hyper@nopatch@longtable{}
+\def\__tbl_patch_LT@array[#1]#2{%
+ \UseSocket{tagsupport/tbl/init}%
+ \@kernel@refstepcounter{table}\stepcounter{LT@tables}%
+ \tl_gset:Ne \@currentHref {table.\cs_if_exist_use:N\theHtable}
+ \int_gzero:N \g__tbl_row_int
+ \seq_gclear:N\g__tbl_struct_rows_seq
+ \seq_gclear:N\g__tbl_struct_cells_seq
+ \seq_gclear:N\g__tbl_struct_cur_seq
+ \seq_gclear:N\g__tbl_LT@firsthead_rows_seq
+ \seq_gclear:N\g__tbl_LT@head_rows_seq
+ \seq_gclear:N\g__tbl_LT@lastfoot_rows_seq
+ \seq_gclear:N\g__tbl_LT@foot_rows_seq
+ \if l#1%
+ \LTleft\z@ \LTright\fill
+ \else\if r#1%
+ \LTleft\fill \LTright\z@
+ \else\if c#1%
+ \LTleft\fill \LTright\fill
+ \fi\fi\fi
+ \let\LT@mcol\multicolumn
+ \let\LT@@tabarray\@tabarray
+ \let\LT@@hl\hline
+ \def\@tabarray{%
+ \let\hline\LT@@hl
+ \LT@@tabarray}%
+ \let\\\LT@tabularcr
+ \let\tabularnewline\\%
+ \def\newpage{\noalign{\break}}%
+ \def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}%
+ \def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}%
+ \let\hline\LT@hline \let\kill\LT@kill\let\caption\LT@caption
+ \@tempdima\ht\strutbox
+ \let\@endpbox\LT@endpbox
+ \ifx\extrarowheight\@undefined
+ \let\@acol\@tabacol
+ \let\@classz\@tabclassz \let\@classiv\@tabclassiv
+ \def\@startpbox{\vtop\LT@startpbox}%
+ \let\@@startpbox\@startpbox
+ \let\@@endpbox\@endpbox
+ \let\LT@LL@FM@cr\@tabularcr
+ \else
+ \advance\@tempdima\extrarowheight
+ \col@sep\tabcolsep
+ \let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycr
+ \fi
+ \setbox\@arstrutbox\hbox{\vrule
+ \@height \arraystretch \@tempdima
+ \@depth \arraystretch \dp \strutbox
+ \@width \z@}%
+ \let\@sharp##\let\protect\relax
+ \begingroup
+ \@mkpream{#2}%
+ \__tbl_determine_table_cols:
+ \xdef\LT@bchunk{%
+ \int_gzero:N \g__tbl_col_int
+ \global\advance\c@LT@chunks\@ne
+ \global\LT@rows\z@\setbox\z@\vbox\bgroup
+ \LT@setprevdepth
+ \tabskip\LTleft \noexpand\halign to\hsize\bgroup
+ \tabskip\z@ \@arstrut
+ \UseSocket{tagsupport/tblrow/begin}%
+ \__tbl_init_cell_data:
+ \@preamble \tabskip\LTright \cr}%
+ \endgroup
+ \expandafter\LT@nofcols\LT@bchunk&\LT@nofcols
+ \LT@make@row
+ \m@th\let\par\@empty
+ \everycr{%
+ \noalign{%
+ \typeout{--longtable-->~chunk~row:~ \the\LT@rows \space
+ row:~ \the\g__tbl_row_int \space
+ column:~ \the\g__tbl_col_int
+ }
+ \int_compare:nNnT \g__tbl_col_int > 0
+ {
+ \UseSocket{tagsupport/tblrow/end}
+ }
+ \int_gzero:N \g__tbl_col_int % before first col
+ \int_compare:nNnT \LT@rows < \LTchunksize
+ { \int_gincr:N \g__tbl_row_int } % this row about to start
+ }%
+ }%
+ \lineskip\z@\baselineskip\z@
+ \LT@bchunk}
+\def\__tbl_patch_endlongtable{%
+ \__tbl_store_missing_cells:n{endlongtable}
+ \crcr
+ \noalign{%
+ \UseSocket{tagsupport/tbl/finalize/longtable}
+ \int_gzero:N \g__tbl_row_int % this prevents considering the next
+ % \crcr as another row end.
+ \let\LT@entry\LT@entry@chop
+ \xdef\LT@save@row{\LT@save@row}}%
+ \LT@echunk
+ \LT@start
+ \unvbox\z@
+ \LT@get@widths
+ \if@filesw
+ {\let\LT@entry\LT@entry@write\immediate\write\@auxout{%
+ \gdef\expandafter\noexpand
+ \csname LT@\romannumeral\c@LT@tables\endcsname
+ {\LT@save@row}}}%
+ \fi
+ \ifx\LT@save@row\LT@@save@row
+ \else
+ \LT@warn{Column~\@width s~have~changed\MessageBreak
+ in~table~\thetable}%
+ \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@
+ \fi
+ \endgroup
+ \global\@mparbottom\z@
+ \endgraf\penalty\z@\addvspace\LTpost
+ \ifvoid\footins\else\insert\footins{}\fi}
+\def\__tbl_patch_LT@t@bularcr{%
+ \global\advance\LT@rows\@ne
+ \ifnum\LT@rows=\LTchunksize
+ \__tbl_store_missing_cells:n{echunk}
+ \gdef\LT@setprevdepth{%
+ \prevdepth\z@
+ \global\let\LT@setprevdepth\relax}%
+ \expandafter\LT@xtabularcr
+ \else
+ \ifnum0=`{}\fi
+ \expandafter\LT@LL@FM@cr
+ \fi}
+
+\def\__tbl_patch_LT@end@hd@ft#1{%
+ \__tbl_store_missing_cells:n{head/foot}
+ \int_step_inline:nn
+ { \LT@rows + 1 }
+ {
+ \seq_gput_left:ce
+ {g__tbl_\cs_to_str:N #1 _rows_seq }
+ { \int_eval:n {\g__tbl_row_int + 1 - ##1 } }
+ }
+ \int_gset:Nn \LT@rows { \LTchunksize }
+ \LT@echunk
+ \ifx\LT@start\endgraf
+ \LT@err
+ {Longtable head or foot not at start of table}%
+ {Increase LTchunksize}%
+ \fi
+ \setbox#1\box\z@
+ \LT@get@widths
+ \LT@bchunk}
+
+\def\__tbl_patch_LT@start{%
+ \let\LT@start\endgraf
+ \endgraf\penalty\z@\vskip\LTpre\endgraf
+ \ifdim \pagetotal<\pagegoal \else
+ \dimen@=\pageshrink
+ \advance \dimen@ 1sp %
+ \kern\dimen@\penalty 9999\endgraf \kern-\dimen@
+ \fi
+ \dimen@\pagetotal
+ \advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
+ \advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
+ \advance\dimen@ \ht\LT@foot
+ \edef\LT@reset@vfuzz{\vfuzz\the\vfuzz\vbadness\the\vbadness\relax}%
+ \vfuzz\maxdimen
+ \vbadness\@M
+ \setbox\tw@\copy\z@
+ \setbox\tw@\vsplit\tw@ to \ht\@arstrutbox
+ \setbox\tw@\vbox{\unvbox\tw@}%
+ \LT@reset@vfuzz
+ \advance\dimen@ \ht
+ \ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi
+ \advance\dimen@\dp
+ \ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi
+ \advance\dimen@ -\pagegoal
+ \ifdim \dimen@>\z@
+ \vfil\break
+ \else
+ \ifdim\pageshrink>\z@\pageshrink\z@\fi
+ \fi
+ \global\@colroom\@colht
+ \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@
+ \maxdepth\z@
+ \fi
+ \MakeLinkTarget{table}
+ \ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi\nobreak
+ \tagmcbegin{artifact}
+ \tag_mc_reset_box:N\LT@head
+ \tagmcend
+ \output{\LT@output}}
+\def\__tbl_patch_LT@output{%
+ \ifnum\outputpenalty <-\@Mi
+ \ifnum\outputpenalty > -\LT@end@pen
+ \LT@err{floats and marginpars not allowed in a longtable}\@ehc
+ \else
+ \setbox\z@\vbox{\unvbox\@cclv}%
+ \ifdim \ht\LT@lastfoot>\ht\LT@foot
+ \dimen@\pagegoal
+ \advance\dimen@\ht\LT@foot
+ \advance\dimen@-\ht\LT@lastfoot
+ \ifdim\dimen@<\ht\z@
+ \setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}%
+ \@makecol
+ \@outputpage
+ \global\vsize\@colroom
+ \setbox\z@\vbox{\box\LT@head}%
+ \fi
+ \fi
+ \unvbox\z@\box\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi
+ \tagmcbegin{artifact}
+ \tag_mc_reset_box:N \LT@foot
+ \tagmcend
+ \fi
+ \else
+ \setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}%
+ \tagmcbegin{artifact}
+ \tag_mc_reset_box:N \LT@foot
+ \tagmcend
+ \@makecol
+ \@outputpage
+ \global\vsize\@colroom
+ \copy\LT@head\nobreak
+ \fi}
+\def\__tbl_patch_LT@makecaption#1#2#3{%
+ \LT@mcol\LT@cols c{%
+ % test can go after merge
+ \str_if_exist:cT { l__socket_tagsupport/parbox/before_plug_str }
+ {
+ \AssignSocketPlug{tagsupport/parbox/before}{noop}
+ \AssignSocketPlug{tagsupport/parbox/after}{noop}
+ }
+ \hbox to\z@{\hss\parbox[t]\LTcapwidth{%
+ \reset@font
+ \tag_stop:n{caption}
+ \sbox\@tempboxa{#1{#2:~}#3}%
+ \tag_start:n{caption}
+ \ifdim\wd\@tempboxa>\hsize
+ #1{#2:~}#3%
+ \else
+ \hbox to\hsize{\hfil#1{#2:~}#3\hfil}%
+ \fi
+ \endgraf\vskip\baselineskip}%
+ \hss}}}
+\AddToHook{package/longtable/after}
+ {
+ \seq_new:N \g__tbl_LT@firsthead_rows_seq
+ \seq_new:N \g__tbl_LT@head_rows_seq
+ \seq_new:N \g__tbl_LT@lastfoot_rows_seq
+ \seq_new:N \g__tbl_LT@foot_rows_seq
+ \cs_set_eq:NN \LT@array\__tbl_patch_LT@array
+ \cs_set_eq:NN \endlongtable\__tbl_patch_endlongtable
+ \cs_set_eq:NN \LT@start\__tbl_patch_LT@start
+ \cs_set_eq:NN \LT@output\__tbl_patch_LT@output
+ \cs_set_eq:NN \LT@t@bularcr\__tbl_patch_LT@t@bularcr
+ \cs_set_eq:NN \LT@end@hd@ft\__tbl_patch_LT@end@hd@ft
+ \cs_set_eq:NN \LT@makecaption\__tbl_patch_LT@makecaption
+ }
+
+\def\__tbl_patch_TX@endtabularx{%
+ \expandafter\expandafter\expandafter
+ \TX@find@endtabularxa\csname end\TX@\endcsname
+ \endtabularx\TX@\endtabularx\TX@find@endtabularxa
+ \expandafter\TX@newcol\expandafter{\tabularxcolumn{\TX@col@width}}%
+ \let\verb\TX@verb
+ \def\@elt##1{\global\value{##1}\the\value{##1}\relax}%
+ \edef\TX@ckpt{\cl@@ckpt}%
+ \let\@elt\relax
+ \TX@old@table\maxdimen
+ \TX@col@width\TX@target
+ \global\TX@cols\@ne
+ \TX@typeout@
+ {\@spaces Table Width\@spaces Column Width\@spaces X Columns}%
+ \tag_stop:n{tabularx}
+ \TX@trial{\def\NC@rewrite@X{%
+ \global\advance\TX@cols\@ne\NC@find p{\TX@col@width}}}%
+ \loop
+ \TX@arith
+ \ifTX@
+ \TX@trial{}%
+ \repeat
+ \tag_start:n{tabularx}
+ {\let\@footnotetext\TX@ftntext\let\@xfootnotenext\TX@xftntext
+ \csname tabular*\expandafter\endcsname\expandafter\TX@target
+ \the\toks@
+ \csname endtabular*\endcsname}%
+ \global\TX@ftn\expandafter{\expandafter}\the\TX@ftn
+ \ifnum0=`{\fi}%
+ \expandafter\expandafter\expandafter
+ \TX@find@endtabularxbb
+ \expandafter\end\expandafter{\TX@}%
+ \endtabularx\TX@\endtabularx\TX@find@endtabularxb
+}
+
+\AddToHook{package/tabularx/after}
+ {\cs_set_eq:NN \TX@endtabularx\__tbl_patch_TX@endtabularx }
+\endinput
+%%
+%% End of file `latex-lab-testphase-table.sty'.
diff --git a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-text.sty b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-text.sty
index eb79c90efea..7cae4fc4897 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-text.sty
+++ b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-text.sty
@@ -33,8 +33,11 @@
%%
%%
%% File: latex-lab-text.dtx (C) Copyright 2023 LaTeX Project
-\ProvidesExplPackage {latex-lab-testphase-text} {2023-05-28} {0.8}
- {Code related to the tagging of inline text commands}
+\def\ltlabtextdate{2023-07-20}
+\def\ltlabtextversion{0.85a}
+
+\ProvidesExplPackage {latex-lab-testphase-text} {\ltlabtextdate} {\ltlabtextversion}
+ {Code related to the tagging of various small text commands}
\AddToHook{cmd/LaTeX/before}
{
diff --git a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-toc.sty b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-toc.sty
index effe44b7358..bf1cb9bb87f 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-toc.sty
+++ b/Master/texmf-dist/tex/latex/latex-lab/latex-lab-testphase-toc.sty
@@ -4,9 +4,9 @@
%%
%% The original source files were:
%%
-%% latex-lab-toc-tagging-functions.dtx (with options: `header')
+%% latex-lab-toc.dtx (with options: `header')
%% latex-lab-toc-kernel-changes.dtx (with options: `package')
-%% latex-lab-toc-tagging-functions.dtx (with options: `package')
+%% latex-lab-toc.dtx (with options: `package')
%% latex-lab-toc-hyperref-changes.dtx (with options: `package')
%%
%% This is a generated file.
@@ -35,10 +35,14 @@
%% where one can also log issues in case there are any.
%%
%%
-%% File: latex-lab-toc-tagging-functions.dtx (C) Copyright 2022-2023 LaTeX Project
-\ProvidesExplPackage {latex-lab-testphase-toc} {2023-05-20} {0.82}
- { commands related to the tagging of toc-like lists}
-%% File: latex-lab-toc-kernel-functions.dtx (C) Copyright 2022-2023 LaTeX Project
+%% File: latex-lab-toc.dtx (C) Copyright 2022-2023 LaTeX Project
+\def\ltlabtocdate{2023-10-16}
+\def\ltlabtocversion{0.85b}
+\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-2023 LaTeX Project
+\def\ltlabkerneldate{2023-10-16}
+\def\ltlabkernelversion{0.85b}
\RequirePackage{latex-lab-kernel-changes}
\def\@contentsline@cfgpoint@before#1#2#3#4{}
\def\@contentsline@cfgpoint@after#1#2#3#4{}
@@ -271,27 +275,22 @@
\endgroup
\fi}
}
-
-%% File: latex-lab-toc-tagging-functions.dtx (C) Copyright 2022-2023 LaTeX Project
+%% File: latex-lab-toc.dtx (C) Copyright 2022-2023 LaTeX Project
+\def\ltlabtocdate{2023-10-16}
+\def\ltlabtocversion{0.85b}
\tl_new:N \l__tag_toc_tmpa_tl
\AddToHook{cmd/refstepcounter/after}
{
\tl_if_blank:VF \@currentHref
{
- \prop_if_exist:NT \g__tag_struct_dest_num_prop
- {
- \prop_gput:Nxx \g__tag_struct_dest_num_prop {\@currentHref}{\tag_get:n{struct_num}}
- }
+ \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_if_exist:NT \g__tag_struct_dest_num_prop
- {
- \prop_gput:Nxx \g__tag_struct_dest_num_prop {\@currentHref}{\tag_get:n{struct_num}}
- }
+ \prop_gput:Nee \g__tag_struct_dest_num_prop {\@currentHref}{\tag_get:n{struct_num}}
}
}
\msg_new:nnn { tag } {struct-dest-unknown}
@@ -440,6 +439,8 @@
\tag_mc_begin:n{artifact}\tag_stop:n{leaders}\nobreak#1\nobreak\tag_start:n{leaders}\tag_mc_end:}
%% File: latex-lab-toc-hyperref-changes.dtx (C) Copyright 2022-2023 LaTeX Project
+\def\ltlabtochyperdate{2023-07-20}
+\def\ltlabtochyperversion{0.85a}
\def\hyper@nopatch@toc{}
\AddToHook{package/hyperref/after}
{
diff --git a/Master/texmf-dist/tex/latex/latex-lab/math-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex/latex-lab/math-latex-lab-testphase.ltx
index d57dc7e8742..2c89d19d494 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/math-latex-lab-testphase.ltx
+++ b/Master/texmf-dist/tex/latex/latex-lab/math-latex-lab-testphase.ltx
@@ -4,7 +4,7 @@
%%
%% The original source files were:
%%
-%% latex-lab-testphase.dtx (with options: `math-lab')
+%% latex-lab-testphase.dtx (with options: `math')
%%
%% This is a generated file.
%%
@@ -34,8 +34,9 @@
%%
%% File: latex-lab-testphase.dtx
+
\ProvidesFile{math-latex-lab-testphase.ltx}
- [2023-01-07 v0.8 code related to the math tagging]
+ [2023-07-20 v0.8a latex-lab wrapper math]
\RequirePackage{latex-lab-testphase-math}
\endinput
%%
diff --git a/Master/texmf-dist/tex/latex/latex-lab/minipage-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex/latex-lab/minipage-latex-lab-testphase.ltx
index 9c0a803cb68..e309b479ed1 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/minipage-latex-lab-testphase.ltx
+++ b/Master/texmf-dist/tex/latex/latex-lab/minipage-latex-lab-testphase.ltx
@@ -33,13 +33,12 @@
%%
%%
%% File: latex-lab-minipage.dtx (C) Copyright 2023 LaTeX Project
-
-\def\ltlistsversion{v0.81}
-\def\ltlistsdate{2023/05/10}
-
+\def\ltlabminipagedate{2023-10-30}
+\def\ltlabminipageversion{0.81c}
\ProvidesFile{minipage-latex-lab-testphase.ltx}
- [2022-10-26 v0.8 code related to the tagging of sectioning commands]
+ [\ltlabminipagedate\space v\ltlabminipageversion
+ code related to the tagging of minipage and parbox]
\RequirePackage{latex-lab-testphase-minipage}
\endinput
%%
diff --git a/Master/texmf-dist/tex/latex/latex-lab/new-or-1-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex/latex-lab/new-or-1-latex-lab-testphase.ltx
index 305ecb25304..015487e4396 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/new-or-1-latex-lab-testphase.ltx
+++ b/Master/texmf-dist/tex/latex/latex-lab/new-or-1-latex-lab-testphase.ltx
@@ -4,7 +4,7 @@
%%
%% The original source files were:
%%
-%% latex-lab-testphase.dtx (with options: `new-or-1')
+%% latex-lab-new-or-1.dtx (with options: `latex-lab')
%%
%% This is a generated file.
%%
@@ -32,10 +32,12 @@
%% where one can also log issues in case there are any.
%%
%%
-%% File: latex-lab-testphase.dtx
-
+%% File: latex-lab-new-or-1.dtx (C) Copyright 2020-2023 Frank Mittelbach
+\def\ltlabneworIdate{2023-07-20}
+\def\ltlabneworIversion{0.85a}
\ProvidesFile{new-or-1-latex-lab-testphase.ltx}
- [2022-11-04 v0.1a latex-lab wrapper new-or-1]
+ [\ltlabneworIdate\space v\ltlabneworIversion\space
+ latex-lab wrapper new-or-1]
\RequirePackage{latex-lab-testphase-new-or-1}
\endinput
%%
diff --git a/Master/texmf-dist/tex/latex/latex-lab/new-or-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex/latex-lab/new-or-latex-lab-testphase.ltx
index 742a1fa3531..45354f15d36 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/new-or-latex-lab-testphase.ltx
+++ b/Master/texmf-dist/tex/latex/latex-lab/new-or-latex-lab-testphase.ltx
@@ -34,8 +34,9 @@
%%
%% File: latex-lab-testphase.dtx
+
\ProvidesFile{new-or-latex-lab-testphase.ltx}
- [2022-11-04 v0.1a latex-lab wrapper new-or]
+ [2023-06-15 v0.1b latex-lab wrapper new-or]
\RequirePackage{latex-lab-testphase-new-or-1}
\RequirePackage{latex-lab-testphase-new-or-2}
\endinput
diff --git a/Master/texmf-dist/tex/latex/latex-lab/phase-I-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex/latex-lab/phase-I-latex-lab-testphase.ltx
index 477a74076fb..c2f68512e79 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/phase-I-latex-lab-testphase.ltx
+++ b/Master/texmf-dist/tex/latex/latex-lab/phase-I-latex-lab-testphase.ltx
@@ -34,6 +34,7 @@
%%
%% File: latex-lab-testphase.dtx
+
\ProvidesFile{phase-I-latex-lab-testphase.ltx}
[2023-02-04 v0.1b latex-lab wrapper phase-I]
\RequirePackage{latex-lab-testphase-new-or-1}
diff --git a/Master/texmf-dist/tex/latex/latex-lab/phase-II-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex/latex-lab/phase-II-latex-lab-testphase.ltx
index 7114d4882b2..ff7e6dd7452 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/phase-II-latex-lab-testphase.ltx
+++ b/Master/texmf-dist/tex/latex/latex-lab/phase-II-latex-lab-testphase.ltx
@@ -34,8 +34,9 @@
%%
%% File: latex-lab-testphase.dtx
+
\ProvidesFile{phase-II-latex-lab-testphase.ltx}
- [2022-11-04 v0.1a latex-lab wrapper phase-II]
+ [2023-06-15 v0.1b latex-lab wrapper phase-II]
\RequirePackage{latex-lab-testphase-new-or-1}
\RequirePackage{latex-lab-testphase-new-or-2}
\RequirePackage{tagpdf}
diff --git a/Master/texmf-dist/tex/latex/latex-lab/phase-III-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex/latex-lab/phase-III-latex-lab-testphase.ltx
index 3c36a82f86d..2f7a38ef142 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/phase-III-latex-lab-testphase.ltx
+++ b/Master/texmf-dist/tex/latex/latex-lab/phase-III-latex-lab-testphase.ltx
@@ -34,12 +34,13 @@
%%
%% File: latex-lab-testphase.dtx
+
\ProvidesFile{phase-III-latex-lab-testphase.ltx}
- [2023-03-06 v0.1a latex-lab wrapper phase-III]
+ [2023-07-20 v0.1b latex-lab wrapper phase-III]
\input{phase-II-latex-lab-testphase.ltx}
\IfFormatAtLeastTF{2023-06-01}
{
- \RequirePackage{latex-lab-testphase-block-tagging}
+ \RequirePackage{latex-lab-testphase-block}
\RequirePackage{latex-lab-testphase-sec}
\RequirePackage{latex-lab-testphase-toc}
\RequirePackage{latex-lab-testphase-minipage}
diff --git a/Master/texmf-dist/tex/latex/latex-lab/sec-tagging-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex/latex-lab/sec-latex-lab-testphase.ltx
index cf6557fa41e..bf39e9949f7 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/sec-tagging-latex-lab-testphase.ltx
+++ b/Master/texmf-dist/tex/latex/latex-lab/sec-latex-lab-testphase.ltx
@@ -1,5 +1,5 @@
%%
-%% This is file `sec-tagging-latex-lab-testphase.ltx',
+%% This is file `sec-latex-lab-testphase.ltx',
%% generated with the docstrip utility.
%%
%% The original source files were:
@@ -33,10 +33,12 @@
%%
%%
%% File: latex-lab-sec.dtx (C) Copyright 2022-2023 LaTeX Project
+\def\ltlabsecdate{2023-10-16}
+\def\ltlabsecversion{0.84b}
-\ProvidesFile{sec-tagging-latex-lab-testphase.ltx}
- [2023-05-20 v0.82 code related to the tagging of sectioning commands]
+\ProvidesFile{sec-latex-lab-testphase.ltx}
+ [\ltlabsecdate\space v\ltlabsecversion\space latex-lab wrapper sec]
\RequirePackage{latex-lab-testphase-sec}
\endinput
%%
-%% End of file `sec-tagging-latex-lab-testphase.ltx'.
+%% End of file `sec-latex-lab-testphase.ltx'.
diff --git a/Master/texmf-dist/tex/latex/latex-lab/table-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex/latex-lab/table-latex-lab-testphase.ltx
new file mode 100644
index 00000000000..850f3ffa110
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/latex-lab/table-latex-lab-testphase.ltx
@@ -0,0 +1,43 @@
+%%
+%% This is file `table-latex-lab-testphase.ltx',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-table.dtx (with options: `latex-lab')
+%%
+%% This is a generated file.
+%%
+%% Copyright 2021-2023 LaTeX Project
+%%
+%% This file was generated from file(s) of the `LaTeX-lab Bundle'.
+%% ------------------------------------------------------------------------------------
+%%
+%% It may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008 or later.
+%%
+%% This file may only be distributed together with a copy of the LaTeX
+%% `LaTeX-lab Bundle'. You may however distribute the `LaTeX-lab Bundle'
+%% without such generated files.
+%%
+%% The newest sources can be found below
+%%
+%% https://github.com/latex3/latex2e/required/latex-lab
+%%
+%% where one can also log issues in case there are any.
+%%
+%%
+%% File: latex-lab-table.dtx (C) Copyright 2023 LaTeX Project
+\def\ltlabtbldate{2023-10-30}
+\def\ltlabtblversion{0.85d}
+\ProvidesFile{table-latex-lab-testphase.ltx}
+ [\ltlabtbldate\space v\ltlabtblversion\space latex-lab wrapper table]
+\RequirePackage{latex-lab-testphase-table}
+\endinput
+%%
+%% End of file `table-latex-lab-testphase.ltx'.
diff --git a/Master/texmf-dist/tex/latex/latex-lab/tagpdf-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex/latex-lab/tagpdf-latex-lab-testphase.ltx
index c12a0c17bbb..99866c0ee12 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/tagpdf-latex-lab-testphase.ltx
+++ b/Master/texmf-dist/tex/latex/latex-lab/tagpdf-latex-lab-testphase.ltx
@@ -34,6 +34,7 @@
%%
%% File: latex-lab-testphase.dtx
+
\ProvidesFile{tagpdf-latex-lab-testphase.ltx}
[2022-11-04 v0.1a latex-lab wrapper tagpdf (deprecated)]
\RequirePackage{latex-lab-testphase-new-or-1}
diff --git a/Master/texmf-dist/tex/latex/latex-lab/tagpdf-ns-latex-lab.def b/Master/texmf-dist/tex/latex/latex-lab/tagpdf-ns-latex-lab.def
new file mode 100644
index 00000000000..ac71752ca07
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/latex-lab/tagpdf-ns-latex-lab.def
@@ -0,0 +1,42 @@
+%%
+%% This is file `tagpdf-ns-latex-lab.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% latex-lab-namespace.dtx (with options: `ns-latex-lab')
+%%
+%% File: latex-lab-namespace.dtx (C) Copyright 2023 LaTeX Project
+%% \ProvidesExplFile {tagpdf-ns-latex-lab.def} {2023-09-04} {0.8}
+%% {latex} {https://www.latex-project.org/ns/lab/2022}{}
+title, Title, pdf2,
+part, Title, pdf2,
+section, H1, pdf2,
+subsection, H2, pdf2,
+subsubsection,H3, pdf2,
+paragraph, H4, pdf2,
+subparagraph, H5, pdf2,
+list, L, pdf2,
+itemize, L, pdf2,
+enumerate, L, pdf2,
+description, L, pdf2,
+quote, BlockQuote,pdf,
+quotation, BlockQuote,pdf,
+verbatim, Div, pdf2,
+item, LI, pdf2,
+itemlabel, Lbl, pdf2,
+itembody, LBody, pdf2,
+footnote, FENote, pdf2,
+footnotemark, Lbl, pdf2,
+footnotelabel,Lbl, pdf2,
+text-unit, Part, pdf2,
+text, P, pdf2,
+theorem-like, Sect, pdf2,
+verbatim, P, pdf2,
+codeline, Sub, pdf2,
+float, Aside, pdf2,
+figures, Sect, pdf2,
+tables, Sect, pdf2,
+%%
+%%
+%% End of file `tagpdf-ns-latex-lab.def'.
diff --git a/Master/texmf-dist/tex/latex/latex-lab/text-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex/latex-lab/text-latex-lab-testphase.ltx
index 62b5de750d7..59d30103ae9 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/text-latex-lab-testphase.ltx
+++ b/Master/texmf-dist/tex/latex/latex-lab/text-latex-lab-testphase.ltx
@@ -33,8 +33,12 @@
%%
%%
%% File: latex-lab-text.dtx (C) Copyright 2023 LaTeX Project
+\def\ltlabtextdate{2023-07-20}
+\def\ltlabtextversion{0.85a}
+
\ProvidesFile{text-latex-lab-testphase.ltx}
- [2023-05-28 v0.8 code related to the tagging of bib and citations]
+ [\ltlabtextdate\space v\ltlabtextversion\space
+ code related to the tagging of various small text commands]
\RequirePackage{latex-lab-testphase-text}
diff --git a/Master/texmf-dist/tex/latex/latex-lab/toc-tagging-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex/latex-lab/toc-latex-lab-testphase.ltx
index 2ec61214410..1d7e70c5d79 100644
--- a/Master/texmf-dist/tex/latex/latex-lab/toc-tagging-latex-lab-testphase.ltx
+++ b/Master/texmf-dist/tex/latex/latex-lab/toc-latex-lab-testphase.ltx
@@ -1,10 +1,10 @@
%%
-%% This is file `toc-tagging-latex-lab-testphase.ltx',
+%% This is file `toc-latex-lab-testphase.ltx',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
-%% latex-lab-toc-kernel-changes.dtx (with options: `latex-lab')
+%% latex-lab-toc.dtx (with options: `latex-lab')
%%
%% This is a generated file.
%%
@@ -32,13 +32,14 @@
%% where one can also log issues in case there are any.
%%
%%
-%% File: latex-lab-toc-kernel-functions.dtx (C) Copyright 2022-2023 LaTeX Project
-
-\ProvidesFile{toc-tagging-latex-lab-testphase.ltx}
- [2023-05-20 v0.81 code related to the tagging of toc and similar lists]
+%% File: latex-lab-toc.dtx (C) Copyright 2022-2023 LaTeX Project
+\def\ltlabtocdate{2023-10-16}
+\def\ltlabtocversion{0.85b}
+\ProvidesFile{toc-latex-lab-testphase.ltx}
+ [\ltlabtocdate\space v\ltlabtocversion latex-lab wrapper toc]
\RequirePackage{latex-lab-testphase-toc}
\endinput
%%
-%% End of file `toc-tagging-latex-lab-testphase.ltx'.
+%% End of file `toc-latex-lab-testphase.ltx'.
diff --git a/Master/texmf-dist/tex/latex/tools/afterpage.sty b/Master/texmf-dist/tex/latex/tools/afterpage.sty
index 52ae067c1fa..823f3ffa25c 100644
--- a/Master/texmf-dist/tex/latex/tools/afterpage.sty
+++ b/Master/texmf-dist/tex/latex/tools/afterpage.sty
@@ -37,7 +37,7 @@
%% File: afterpage.dtx Copyright (C) 1994 1994 1995 David Carlisle
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{afterpage}
- [2014/10/28 v1.08 After-Page Package (DPC)]
+ [2023/07/04 v1.08 After-Page Package (DPC)]
\newtoks\AP@output
\global\AP@output\expandafter{\the\output}
\newbox\AP@partial
diff --git a/Master/texmf-dist/tex/latex/tools/array.sty b/Master/texmf-dist/tex/latex/tools/array.sty
index ff3a57f6eaa..cd6eee6a0fc 100644
--- a/Master/texmf-dist/tex/latex/tools/array.sty
+++ b/Master/texmf-dist/tex/latex/tools/array.sty
@@ -46,7 +46,7 @@
\DeclareCurrentRelease{}{2020-10-01}
\ProvidesPackage{array}
- [2022/09/04 v2.5g Tabular extension package (FMi)]
+ [2023/10/16 v2.5g Tabular extension package (FMi)]
%%
\def\@addtopreamble#1{\xdef\@preamble{\@preamble #1}}
@@ -194,7 +194,6 @@
\def\@xargarraycr#1{\unskip\gdef\do@row@strut
{\@tempdima #1\advance\@tempdima \dp\@arstrutbox
\vrule \@depth\@tempdima \@width\z@\global\let\do@row@strut\relax}%
- % \begin{macrocode}
\ifnum\@multicnt >\z@ \do@row@strut \fi
\cr}
\let\do@row@strut\relax
diff --git a/Master/texmf-dist/tex/latex/tools/bm.sty b/Master/texmf-dist/tex/latex/tools/bm.sty
index 37ac28e1176..8a136bd86d5 100644
--- a/Master/texmf-dist/tex/latex/tools/bm.sty
+++ b/Master/texmf-dist/tex/latex/tools/bm.sty
@@ -40,7 +40,7 @@
%% Development of this package was commissioned by Y&Y Inc.
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{bm}
- [2022/01/05 v1.2f Bold Symbol Support (DPC/FMi)]
+ [2023/07/08 v1.2f Bold Symbol Support (DPC/FMi)]
\DeclareOption{nopmb}{\let\bm@pmb@\@firstofone}
\DeclareOption{warn}{\def\bm@info{\PackageWarningNoLine{bm}}}
\DeclareOption{info}{\def\bm@info#1{\PackageInfo{bm}{#1\@gobble}}}
diff --git a/Master/texmf-dist/tex/latex/tools/calc.sty b/Master/texmf-dist/tex/latex/tools/calc.sty
index f1ecb90347f..d36e1a57ba6 100644
--- a/Master/texmf-dist/tex/latex/tools/calc.sty
+++ b/Master/texmf-dist/tex/latex/tools/calc.sty
@@ -47,7 +47,7 @@
%% the normal LaTeX bug report address.
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{calc}
- [2017/05/25 v4.3 Infix arithmetic (KKT,FJ)]
+ [2023/07/08 v4.3 Infix arithmetic (KKT,FJ)]
\def\calc@assign@generic#1#2#3#4{\let\calc@A#1\let\calc@B#2%
\calc@open(#4!%
\global\calc@A\calc@B\endgroup#3\calc@B}
diff --git a/Master/texmf-dist/tex/latex/tools/dcolumn.sty b/Master/texmf-dist/tex/latex/tools/dcolumn.sty
index 78a01a5ba14..dccfaac71cb 100644
--- a/Master/texmf-dist/tex/latex/tools/dcolumn.sty
+++ b/Master/texmf-dist/tex/latex/tools/dcolumn.sty
@@ -38,7 +38,7 @@
%% File: dcolumn.dtx Copyright (C) 1992-1996 1999-2001 David Carlisle
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{dcolumn}
- [2014/10/28 v1.06 decimal alignment package (DPC)]
+ [2023/07/08 v1.06 decimal alignment package (DPC)]
\RequirePackage{array}
\def\DC@#1#2#3{%
\uccode`\~=`#1\relax
diff --git a/Master/texmf-dist/tex/latex/tools/enumerate.sty b/Master/texmf-dist/tex/latex/tools/enumerate.sty
index 86220225a13..31a7b6d8d11 100644
--- a/Master/texmf-dist/tex/latex/tools/enumerate.sty
+++ b/Master/texmf-dist/tex/latex/tools/enumerate.sty
@@ -38,7 +38,7 @@
%% File: enumerate.dtx Copyright 1993 1994 1999 David Carlisle
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{enumerate}
- [2015/07/23 v3.00 enumerate extensions (DPC)]
+ [2023/07/04 v3.00 enumerate extensions (DPC)]
\newtoks\@enLab
\def\@enQmark{?}
\def\@enLabel#1#2{%
diff --git a/Master/texmf-dist/tex/latex/tools/ftnright.sty b/Master/texmf-dist/tex/latex/tools/ftnright.sty
index d70101bae11..fbae2b7949a 100644
--- a/Master/texmf-dist/tex/latex/tools/ftnright.sty
+++ b/Master/texmf-dist/tex/latex/tools/ftnright.sty
@@ -39,7 +39,7 @@
%% Copyright (C) 1989-2004 Frank Mittelbach, all rights reserved.
\NeedsTeXFormat{LaTeX2e}[1995/06/01]
\ProvidesPackage{ftnright}
- [2014/10/28 v1.1f footnote layout package (FMi)]
+ [2023/07/08 v1.1f footnote layout package (FMi)]
%%
%%
\def\preparefootins{%
diff --git a/Master/texmf-dist/tex/latex/tools/indentfirst.sty b/Master/texmf-dist/tex/latex/tools/indentfirst.sty
index a552fdd8d67..be715f3d89b 100644
--- a/Master/texmf-dist/tex/latex/tools/indentfirst.sty
+++ b/Master/texmf-dist/tex/latex/tools/indentfirst.sty
@@ -38,7 +38,7 @@
%% File: indent.dtx Copyright (C) 1991-1994 David Carlisle
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{indentfirst}
- [1995/11/23 v1.03 Indent first paragraph (DPC)]
+ [2023/07/02 v1.03 Indent first paragraph (DPC)]
\let\@afterindentfalse\@afterindenttrue
\@afterindenttrue
\endinput
diff --git a/Master/texmf-dist/tex/latex/tools/layout.sty b/Master/texmf-dist/tex/latex/tools/layout.sty
index a80bc79e1f3..485dd89fac4 100644
--- a/Master/texmf-dist/tex/latex/tools/layout.sty
+++ b/Master/texmf-dist/tex/latex/tools/layout.sty
@@ -37,7 +37,7 @@
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{layout}
- [2021-03-10 v1.2e Show layout parameters]
+ [2023-08-20 v1.2e Show layout parameters]
\DeclareOption{dutch}{%
\def\Headertext{Kopregel}
\def\Bodytext{Broodtekst}
diff --git a/Master/texmf-dist/tex/latex/tools/longtable.sty b/Master/texmf-dist/tex/latex/tools/longtable.sty
index 9d9ab53fda3..040f3f3d659 100644
--- a/Master/texmf-dist/tex/latex/tools/longtable.sty
+++ b/Master/texmf-dist/tex/latex/tools/longtable.sty
@@ -43,7 +43,7 @@
\DeclareCurrentRelease{}{2020-02-07}
\ProvidesPackage{longtable}
- [2021-09-01 v4.17 Multi-page Table package (DPC)]
+ [2025-10-25 v4.18 Multi-page Table package (DPC)]
\def\LT@err{\PackageError{longtable}}
\def\LT@warn{\PackageWarning{longtable}}
\def\LT@final@warn{%
@@ -458,7 +458,10 @@
\let\@footnotetext\LT@p@ftntext
\setlength\hsize{#1}%
\@arrayparboxrestore
- \vrule \@height \ht\@arstrutbox \@width \z@}
+ \everypar{%
+ \vrule \@height \ht\@arstrutbox \@width \z@
+ \everypar{}}%
+ }
\def\LT@endpbox{%
\@finalstrut\@arstrutbox
\color@endgroup
diff --git a/Master/texmf-dist/tex/latex/tools/shellesc.sty b/Master/texmf-dist/tex/latex/tools/shellesc.sty
index dfea3222973..6fbd004dfed 100644
--- a/Master/texmf-dist/tex/latex/tools/shellesc.sty
+++ b/Master/texmf-dist/tex/latex/tools/shellesc.sty
@@ -49,7 +49,7 @@
\ifx\PackageWarning\undefined\def\PackageWarning#1#2{\wlog{#1: #2}}\fi
\expandafter\next\fi
\ProvidesPackage{shellesc}
- [2023/04/15 v1.0d unified shell escape interface for LaTeX]
+ [2023/07/08 v1.0d unified shell escape interface for LaTeX]
\chardef\shellesc@quotecat\catcode`\"
\chardef\shellesc@underscorecat\catcode`\_
\@makeother\"
diff --git a/Master/texmf-dist/tex/latex/tools/showkeys.sty b/Master/texmf-dist/tex/latex/tools/showkeys.sty
index 236b135311b..090a8fb7875 100644
--- a/Master/texmf-dist/tex/latex/tools/showkeys.sty
+++ b/Master/texmf-dist/tex/latex/tools/showkeys.sty
@@ -46,7 +46,7 @@
\DeclareCurrentRelease{}{2022-06-01}
\ProvidesPackage{showkeys}
- [2023/05/11 v3.19 Show cite and label keys (DPC, MH)]
+ [2023/07/08 v3.19 Show cite and label keys (DPC, MH)]
\DeclareOption{notref}{\let\SK@ref\@empty}
\DeclareOption{notcite}{\let\SK@cite\@empty}
\let\SK@refcolor\relax
diff --git a/Master/texmf-dist/tex/latex/tools/tabularx.sty b/Master/texmf-dist/tex/latex/tools/tabularx.sty
index a084ff17cd4..4079dc9f63e 100644
--- a/Master/texmf-dist/tex/latex/tools/tabularx.sty
+++ b/Master/texmf-dist/tex/latex/tools/tabularx.sty
@@ -37,7 +37,7 @@
%% File: tabularx.dtx Copyright (C) 1991-1999 2012 2014 2016 2017 David Carlisle
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{tabularx}
- [2020/01/15 v2.11c `tabularx' package (DPC)]
+ [2023/07/08 v2.11c `tabularx' package (DPC)]
\DeclareOption{infoshow}{\AtEndOfPackage\tracingtabularx}
\DeclareOption{debugshow}{\AtEndOfPackage\tracingtabularx}
\ProcessOptions
diff --git a/Master/texmf-dist/tex/latex/tools/thb.sty b/Master/texmf-dist/tex/latex/tools/thb.sty
index 56deb3cd976..60ffb1140b8 100644
--- a/Master/texmf-dist/tex/latex/tools/thb.sty
+++ b/Master/texmf-dist/tex/latex/tools/thb.sty
@@ -36,7 +36,7 @@
%% given in the file `manifest.txt'.
%%
%%
-\def\FMithmInfo{2014/10/28 v2.2c Theorem extension package (FMi)}
+\def\FMithmInfo{2023/07/05 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/tools/thc.sty b/Master/texmf-dist/tex/latex/tools/thc.sty
index 79d85c49184..c8ddd8b16c3 100644
--- a/Master/texmf-dist/tex/latex/tools/thc.sty
+++ b/Master/texmf-dist/tex/latex/tools/thc.sty
@@ -36,7 +36,7 @@
%% given in the file `manifest.txt'.
%%
%%
-\def\FMithmInfo{2014/10/28 v2.2c Theorem extension package (FMi)}
+\def\FMithmInfo{2023/07/05 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/tools/thcb.sty b/Master/texmf-dist/tex/latex/tools/thcb.sty
index 39be6ed45a1..f6db2854666 100644
--- a/Master/texmf-dist/tex/latex/tools/thcb.sty
+++ b/Master/texmf-dist/tex/latex/tools/thcb.sty
@@ -36,7 +36,7 @@
%% given in the file `manifest.txt'.
%%
%%
-\def\FMithmInfo{2014/10/28 v2.2c Theorem extension package (FMi)}
+\def\FMithmInfo{2023/07/05 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/tools/theorem.sty b/Master/texmf-dist/tex/latex/tools/theorem.sty
index 4304eff280e..5bbbe63e71a 100644
--- a/Master/texmf-dist/tex/latex/tools/theorem.sty
+++ b/Master/texmf-dist/tex/latex/tools/theorem.sty
@@ -36,7 +36,7 @@
%% given in the file `manifest.txt'.
%%
%%
-\def\FMithmInfo{2014/10/28 v2.2c Theorem extension package (FMi)}
+\def\FMithmInfo{2023/07/05 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/tools/thm.sty b/Master/texmf-dist/tex/latex/tools/thm.sty
index f62e6b65c07..7c98832f830 100644
--- a/Master/texmf-dist/tex/latex/tools/thm.sty
+++ b/Master/texmf-dist/tex/latex/tools/thm.sty
@@ -36,7 +36,7 @@
%% given in the file `manifest.txt'.
%%
%%
-\def\FMithmInfo{2014/10/28 v2.2c Theorem extension package (FMi)}
+\def\FMithmInfo{2023/07/05 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/tools/thmb.sty b/Master/texmf-dist/tex/latex/tools/thmb.sty
index 167aaafe080..47babc61d69 100644
--- a/Master/texmf-dist/tex/latex/tools/thmb.sty
+++ b/Master/texmf-dist/tex/latex/tools/thmb.sty
@@ -36,7 +36,7 @@
%% given in the file `manifest.txt'.
%%
%%
-\def\FMithmInfo{2014/10/28 v2.2c Theorem extension package (FMi)}
+\def\FMithmInfo{2023/07/05 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/tools/thp.sty b/Master/texmf-dist/tex/latex/tools/thp.sty
index ce803310b70..951bc8fa14c 100644
--- a/Master/texmf-dist/tex/latex/tools/thp.sty
+++ b/Master/texmf-dist/tex/latex/tools/thp.sty
@@ -36,7 +36,7 @@
%% given in the file `manifest.txt'.
%%
%%
-\def\FMithmInfo{2014/10/28 v2.2c Theorem extension package (FMi)}
+\def\FMithmInfo{2023/07/05 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/tools/xr.sty b/Master/texmf-dist/tex/latex/tools/xr.sty
index 8304f2ff866..ece5e0df2d0 100644
--- a/Master/texmf-dist/tex/latex/tools/xr.sty
+++ b/Master/texmf-dist/tex/latex/tools/xr.sty
@@ -38,7 +38,7 @@
%% File: xr.dtx Copyright (C) 1993-2019 David Carlisle
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xr}
- [2020-05-10 v5.06 eXternal References (DPC)]
+ [2023-07-04 v5.06 eXternal References (DPC)]
\def\externaldocument{\@ifnextchar[\XR@{\XR@[]}}
\let\externalcitedocument\externaldocument
\def\XR@[#1]#2{{%