summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex-dev
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-11-02 19:56:02 +0000
committerKarl Berry <karl@freefriends.org>2023-11-02 19:56:02 +0000
commit71147fa86bd892e6a89bf394448ad5aada518bdb (patch)
treef9c92a1b69d35b7785469b1ff57911ffdf5bf634 /Master/texmf-dist/tex/latex-dev
parent1e0a29c72707a3dd4a7cf45bc6eea2d43068e2b7 (diff)
latex-dev (2nov23)
git-svn-id: svn://tug.org/texlive/trunk@68730 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex-dev')
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/docstrip.tex2
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/latex.ltx71
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/latexrelease.sty157
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/source2edoc.cls2
-rw-r--r--Master/texmf-dist/tex/latex-dev/firstaid/latex2e-first-aid-for-external-files.ltx6
-rw-r--r--Master/texmf-dist/tex/latex-dev/firstaid/underscore-ltx.sty56
-rw-r--r--Master/texmf-dist/tex/latex-dev/latex-lab/graphic-latex-lab-testphase.ltx4
-rw-r--r--Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-footnotes.ltx22
-rw-r--r--Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-kernel-changes.sty20
-rw-r--r--Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-math.ltx2
-rw-r--r--Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-graphic.sty84
-rw-r--r--Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-minipage.sty39
-rw-r--r--Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-sec.sty23
-rw-r--r--Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-table.sty977
-rw-r--r--Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-toc.sty22
-rw-r--r--Master/texmf-dist/tex/latex-dev/latex-lab/minipage-latex-lab-testphase.ltx4
-rw-r--r--Master/texmf-dist/tex/latex-dev/latex-lab/sec-latex-lab-testphase.ltx4
-rw-r--r--Master/texmf-dist/tex/latex-dev/latex-lab/table-latex-lab-testphase.ltx43
-rw-r--r--Master/texmf-dist/tex/latex-dev/latex-lab/toc-latex-lab-testphase.ltx4
-rw-r--r--Master/texmf-dist/tex/latex-dev/tools/afterpage.sty2
-rw-r--r--Master/texmf-dist/tex/latex-dev/tools/array.sty3
-rw-r--r--Master/texmf-dist/tex/latex-dev/tools/bm.sty2
-rw-r--r--Master/texmf-dist/tex/latex-dev/tools/calc.sty2
-rw-r--r--Master/texmf-dist/tex/latex-dev/tools/dcolumn.sty2
-rw-r--r--Master/texmf-dist/tex/latex-dev/tools/enumerate.sty2
-rw-r--r--Master/texmf-dist/tex/latex-dev/tools/ftnright.sty2
-rw-r--r--Master/texmf-dist/tex/latex-dev/tools/indentfirst.sty2
-rw-r--r--Master/texmf-dist/tex/latex-dev/tools/layout.sty2
-rw-r--r--Master/texmf-dist/tex/latex-dev/tools/longtable.sty7
-rw-r--r--Master/texmf-dist/tex/latex-dev/tools/shellesc.sty2
-rw-r--r--Master/texmf-dist/tex/latex-dev/tools/showkeys.sty2
-rw-r--r--Master/texmf-dist/tex/latex-dev/tools/tabularx.sty2
-rw-r--r--Master/texmf-dist/tex/latex-dev/tools/thb.sty2
-rw-r--r--Master/texmf-dist/tex/latex-dev/tools/thc.sty2
-rw-r--r--Master/texmf-dist/tex/latex-dev/tools/thcb.sty2
-rw-r--r--Master/texmf-dist/tex/latex-dev/tools/theorem.sty2
-rw-r--r--Master/texmf-dist/tex/latex-dev/tools/thm.sty2
-rw-r--r--Master/texmf-dist/tex/latex-dev/tools/thmb.sty2
-rw-r--r--Master/texmf-dist/tex/latex-dev/tools/thp.sty2
-rw-r--r--Master/texmf-dist/tex/latex-dev/tools/xr.sty2
40 files changed, 1413 insertions, 177 deletions
diff --git a/Master/texmf-dist/tex/latex-dev/base/docstrip.tex b/Master/texmf-dist/tex/latex-dev/base/docstrip.tex
index fa6dbc7cc18..0cafcd2c109 100644
--- a/Master/texmf-dist/tex/latex-dev/base/docstrip.tex
+++ b/Master/texmf-dist/tex/latex-dev/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-dev/base/latex.ltx b/Master/texmf-dist/tex/latex-dev/base/latex.ltx
index 54b3e969575..fe599414688 100644
--- a/Master/texmf-dist/tex/latex-dev/base/latex.ltx
+++ b/Master/texmf-dist/tex/latex-dev/base/latex.ltx
@@ -707,8 +707,8 @@
%%% From File: ltvers.dtx
\def\fmtname{LaTeX2e}
\edef\fmtversion
- {2023-11-01}
-\def\patch@level{-1}
+ {2024-06-01}
+\def\patch@level{0}
\edef\development@branch@name{develop \the\year-\the\month-\the\day}
\iffalse
\def\reserved@a#1/#2/#3\@nil{%
@@ -1179,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
@@ -4539,7 +4540,7 @@
%%% From File: lthooks.dtx
\def\lthooksversion{v1.1f}
-\def\lthooksdate{2023/08/11}
+\def\lthooksdate{2023/10/02}
\ExplSyntaxOn
\bool_new:N \g__hook_debug_bool
\cs_new_eq:NN \__hook_debug:n \use_none:n
@@ -7611,7 +7612,12 @@ 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{}}%
@@ -11944,8 +11950,8 @@ Type H <return> for immediate help.}%
{\IfBooleanTF{#1}{\@kernel@sRef}{\@kernel@Ref}}
\def\@currentlabel{}
%% File: ltproperties.dtx
-\def\ltpropertiesversion{1.0b}
-\def\ltpropertiesdate{2023-09-13}
+\def\ltpropertiesversion{1.0c}
+\def\ltpropertiesdate{2023-10-15}
@@ -11963,7 +11969,7 @@ Type H <return> for immediate help.}%
}
\cs_new_protected:Npn \property_gset:nnnn #1#2#3#4
{
- \__property_gset:xnnn { \tl_to_str:n {#1} }
+ \__property_gset:ennn { \tl_to_str:n {#1} }
{#2} {#3} {#4}
}
\cs_new_protected:Npn \__property_gset:nnnn #1#2#3#4
@@ -11981,20 +11987,22 @@ Type H <return> for immediate help.}%
}
{ \msg_error:nnnn { property } { unknown-setpoint } {#1} {#2} }
}
-\cs_generate_variant:Nn \__property_gset:nnnn {xnnn}
+\cs_generate_variant:Nn \__property_gset:nnnn {ennn}
\cs_new_protected:Npn \NewProperty #1#2#3#4
{
- \exp_args:Nx \property_new:nnnn {#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
{
- \exp_args:Nx \property_gset:nnnn {#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:xn { \tl_to_str:n {#1} } {#2} }
-\cs_generate_variant:Nn \property_record:nn { nV , xx }
+ { \__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 }
@@ -12007,7 +12015,7 @@ Type H <return> for immediate help.}%
}
}
}
-\cs_generate_variant:Nn \__property_record:nn { x }
+\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
@@ -12028,7 +12036,9 @@ Type H <return> for immediate help.}%
\NewDocumentCommand\RecordProperties { m m }
{
\@bsphack
- \property_record:xx {#1}{#2}
+ \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 }
@@ -12167,16 +12177,19 @@ Type H <return> for immediate help.}%
\@latex@warning { Reference~`#1'~on~page~\thepage\space undefined }%
}
}
-\cs_generate_variant:Nn \property_ref_undefined_warn:nn {xx}
-\cs_set_eq:NN \RefUndefinedWarn \property_ref_undefined_warn:xx
+\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 { currentlabel } { now } { ?? } { \@currentlabel }
+\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 }
@@ -13028,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)[]}}
@@ -13119,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{%
@@ -13175,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{%
diff --git a/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty b/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty
index c8776b66f93..a0a76e124ac 100644
--- a/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty
+++ b/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty
@@ -292,7 +292,7 @@
}
%%% From File: ltvers.dtx
\edef\latexreleaseversion
- {2023-11-01}
+ {2024-06-01}
\newif\if@includeinrelease
\@includeinreleasefalse
\def\IncludeInRelease#1{%
@@ -1413,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}%
@@ -4801,7 +4810,7 @@ of this package available from CTAN}
%%% From File: lthooks.dtx
\def\lthooksversion{v1.1f}
-\def\lthooksdate{2023/08/11}
+\def\lthooksdate{2023/10/02}
\ExplSyntaxOn
\NewModuleRelease{2020/10/01}{lthooks}
{The~hook~management~system}
@@ -9031,6 +9040,19 @@ of this package available from CTAN}
\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
@@ -13239,8 +13261,8 @@ of this package available from CTAN}
\EndIncludeInRelease
%% File: ltproperties.dtx
-\def\ltpropertiesversion{1.0b}
-\def\ltpropertiesdate{2023-09-13}
+\def\ltpropertiesversion{1.0c}
+\def\ltpropertiesdate{2023-10-15}
@@ -13260,7 +13282,7 @@ of this package available from CTAN}
}
\cs_new_protected:Npn \property_gset:nnnn #1#2#3#4
{
- \__property_gset:xnnn { \tl_to_str:n {#1} }
+ \__property_gset:ennn { \tl_to_str:n {#1} }
{#2} {#3} {#4}
}
\cs_new_protected:Npn \__property_gset:nnnn #1#2#3#4
@@ -13278,20 +13300,22 @@ of this package available from CTAN}
}
{ \msg_error:nnnn { property } { unknown-setpoint } {#1} {#2} }
}
-\cs_generate_variant:Nn \__property_gset:nnnn {xnnn}
+\cs_generate_variant:Nn \__property_gset:nnnn {ennn}
\cs_new_protected:Npn \NewProperty #1#2#3#4
{
- \exp_args:Nx \property_new:nnnn {#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
{
- \exp_args:Nx \property_gset:nnnn {#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:xn { \tl_to_str:n {#1} } {#2} }
-\cs_generate_variant:Nn \property_record:nn { nV , xx }
+ { \__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 }
@@ -13304,7 +13328,7 @@ of this package available from CTAN}
}
}
}
-\cs_generate_variant:Nn \__property_record:nn { x }
+\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
@@ -13325,7 +13349,9 @@ of this package available from CTAN}
\NewDocumentCommand\RecordProperties { m m }
{
\@bsphack
- \property_record:xx {#1}{#2}
+ \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 }
@@ -13464,16 +13490,19 @@ of this package available from CTAN}
\@latex@warning { Reference~`#1'~on~page~\thepage\space undefined }%
}
}
-\cs_generate_variant:Nn \property_ref_undefined_warn:nn {xx}
-\cs_set_eq:NN \RefUndefinedWarn \property_ref_undefined_warn:xx
+\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 { currentlabel } { now } { ?? } { \@currentlabel }
+\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 }
@@ -14315,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{%
@@ -14399,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{%
@@ -14414,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}%
diff --git a/Master/texmf-dist/tex/latex-dev/base/source2edoc.cls b/Master/texmf-dist/tex/latex-dev/base/source2edoc.cls
index f0f1479cac5..5f731af7ae8 100644
--- a/Master/texmf-dist/tex/latex-dev/base/source2edoc.cls
+++ b/Master/texmf-dist/tex/latex-dev/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-dev/firstaid/latex2e-first-aid-for-external-files.ltx b/Master/texmf-dist/tex/latex-dev/firstaid/latex2e-first-aid-for-external-files.ltx
index 4cfc1c4d1f8..d782bcd647e 100644
--- a/Master/texmf-dist/tex/latex-dev/firstaid/latex2e-first-aid-for-external-files.ltx
+++ b/Master/texmf-dist/tex/latex-dev/firstaid/latex2e-first-aid-for-external-files.ltx
@@ -34,8 +34,8 @@
%%
%% The LaTeX Project and any individual authors listed elsewhere
%% in this file.
-\def\LaTeXFirstAidDate{2023/07/18}
-\def\LaTeXFirstAidVersion{v1.1a}
+\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,6 +167,8 @@
\ngermanTeX
}%
}
+\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-dev/firstaid/underscore-ltx.sty b/Master/texmf-dist/tex/latex-dev/firstaid/underscore-ltx.sty
new file mode 100644
index 00000000000..3a0df981742
--- /dev/null
+++ b/Master/texmf-dist/tex/latex-dev/firstaid/underscore-ltx.sty
@@ -0,0 +1,56 @@
+%%
+%% 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: `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-2023
+%% The LaTeX Project and any individual authors listed elsewhere
+%% in this file.
+%%
+%% This file was generated from file(s) of the Standard LaTeX `First Aid 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
+%% https://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This file may only be distributed together with a copy of the LaTeX
+%% `First Aid Bundle'. You may however distribute the LaTeX `First Aid Bundle'
+%% without such generated files.
+%%
+%% File: latex2e-first-aid-for-external-files.dtx (C) Copyright 2020-2023
+%%
+%% The LaTeX Project and any individual authors listed elsewhere
+%% in this file.
+\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 `underscore-ltx.sty'.
diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/graphic-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex-dev/latex-lab/graphic-latex-lab-testphase.ltx
index 858853ed3f6..b8d2878c302 100644
--- a/Master/texmf-dist/tex/latex-dev/latex-lab/graphic-latex-lab-testphase.ltx
+++ b/Master/texmf-dist/tex/latex-dev/latex-lab/graphic-latex-lab-testphase.ltx
@@ -33,8 +33,8 @@
%%
%%
%% File: latex-lab-graphic.dtx (C) Copyright 2022-2023 LaTeX Project
-\def\ltlabgraphicdate{2023-07-20}
-\def\ltlabgraphicversion{0.80a}
+\def\ltlabgraphicdate{2023-10-13}
+\def\ltlabgraphicversion{0.80b}
\ProvidesFile{graphic-latex-lab-testphase.ltx}
[\ltlabgraphicdate\space v\ltlabgraphicversion\space latex-lab wrapper graphic]
diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-footnotes.ltx b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-footnotes.ltx
index c7615b453b9..38876d0c908 100644
--- a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-footnotes.ltx
+++ b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-footnotes.ltx
@@ -58,8 +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_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 {
@@ -371,14 +369,14 @@
\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:n #1 {}
-\AddToHookWithArguments{label}{ \__fnote_label_hook:n{#1}}
+\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:n #1
+ \cs_set_protected:Npn \__fnote_label_hook:e #1
{
- \ref_label:nn {#1} {fnote/struct}
+ \property_record:ee {__fnote/#1} {fnote/struct}
}
}
\cs_new_protected:Npn \fnote_class_new:nn #1 #2 % #1 name, #2 options
@@ -389,7 +387,7 @@
\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 }
}
@@ -416,16 +414,16 @@
\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}
%
@@ -470,7 +468,7 @@
{
\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
{
diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-kernel-changes.sty b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-kernel-changes.sty
index 14294ee125a..f2c99285c91 100644
--- a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-kernel-changes.sty
+++ b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-kernel-changes.sty
@@ -34,8 +34,8 @@
%%
%%
%% File: latex-lab-toc-kernel-changes.dtx (C) Copyright 2022-2023 LaTeX Project
-\def\ltlabkerneldate{2023-07-20}
-\def\ltlabkernelversion{0.85a}
+\def\ltlabkerneldate{2023-10-16}
+\def\ltlabkernelversion{0.85b}
\ProvidesPackage{latex-lab-kernel-changes}
[\ltlabkerneldate\space v\ltlabkernelversion\space
General kernel and class changes]
@@ -77,9 +77,21 @@
\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-07-20}
-\def\ltlabsecversion{0.84a}
+\def\ltlabsecdate{2023-10-16}
+\def\ltlabsecversion{0.84b}
\ifdefined\directlua
\ifnum\outputmode > 0
\pdfvariable gentounicode =1
diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-math.ltx b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-math.ltx
index 1b96a15a65f..1ced324bb10 100644
--- a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-math.ltx
+++ b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-math.ltx
@@ -83,7 +83,6 @@
\tagmcbegin{} % restart P-chunk (whatsits in pdftex)
}
}
-
}
}
@@ -299,7 +298,6 @@
{ $ }
}
{
- \bool_set_true:N \l__math_collected_bool
\__math_grab_inline:w
}
} % \(
diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-graphic.sty b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-graphic.sty
index b8c4bdb6989..19aed304798 100644
--- a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-graphic.sty
+++ b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-graphic.sty
@@ -33,18 +33,15 @@
%%
%%
%% File: latex-lab-graphic.dtx (C) Copyright 2022-2023 LaTeX Project
-\def\ltlabgraphicdate{2023-07-20}
-\def\ltlabgraphicversion{0.80a}
+\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}
@@ -107,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
{
@@ -198,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
@@ -206,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}
@@ -233,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
@@ -241,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 =
@@ -286,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
{
@@ -327,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
{
@@ -342,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
{
@@ -383,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
{
@@ -397,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
{
@@ -418,7 +420,7 @@
{
\bool_if:NT\l__tag_graphic_bboxcorr_bool
{
- \tl_set:Nx #1
+ \tl_set:Ne #1
{
\fp_eval:n
{
@@ -427,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
{
@@ -436,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
{
@@ -445,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
{
@@ -465,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
{
@@ -489,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
{
@@ -500,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
{
@@ -509,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
{
@@ -518,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
{
@@ -527,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
{
@@ -583,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
{
@@ -675,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-dev/latex-lab/latex-lab-testphase-minipage.sty b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-minipage.sty
index 7bed296b11b..1f8c5eb5b42 100644
--- a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-minipage.sty
+++ b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-minipage.sty
@@ -33,8 +33,8 @@
%%
%%
%% File: latex-lab-minipage.dtx (C) Copyright 2023 LaTeX Project
-\def\ltlabminipagedate{2023-08-20}
-\def\ltlabminipageversion{0.81b}
+\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}
@@ -43,24 +43,24 @@
\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@
- \AssignSocketPlug{fntext/process}{mp}%
+ \socket_assign_plug:nn{fntext/process}{mp}%
\let\@listdepth\@mplistdepth \@mplistdepth\z@
\@minipagerestore
\@setminipage}
@@ -79,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}%
@@ -101,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-dev/latex-lab/latex-lab-testphase-sec.sty b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-sec.sty
index 7ff5295cce7..9e98894969c 100644
--- a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-sec.sty
+++ b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-sec.sty
@@ -33,8 +33,8 @@
%%
%%
%% File: latex-lab-sec.dtx (C) Copyright 2022-2023 LaTeX Project
-\def\ltlabsecdate{2023-07-20}
-\def\ltlabsecversion{0.84a}
+\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}
@@ -215,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}
@@ -258,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}
@@ -273,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-dev/latex-lab/latex-lab-testphase-table.sty b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-table.sty
new file mode 100644
index 00000000000..e6c89d16715
--- /dev/null
+++ b/Master/texmf-dist/tex/latex-dev/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-dev/latex-lab/latex-lab-testphase-toc.sty b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-toc.sty
index 0411e550b9c..bf1cb9bb87f 100644
--- a/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-toc.sty
+++ b/Master/texmf-dist/tex/latex-dev/latex-lab/latex-lab-testphase-toc.sty
@@ -36,13 +36,13 @@
%%
%%
%% File: latex-lab-toc.dtx (C) Copyright 2022-2023 LaTeX Project
-\def\ltlabtocdate{2023-07-20}
-\def\ltlabtocversion{0.85a}
+\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-07-20}
-\def\ltlabkernelversion{0.85a}
+\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{}
@@ -276,27 +276,21 @@
\fi}
}
%% File: latex-lab-toc.dtx (C) Copyright 2022-2023 LaTeX Project
-\def\ltlabtocdate{2023-07-20}
-\def\ltlabtocversion{0.85a}
+\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}
diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/minipage-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex-dev/latex-lab/minipage-latex-lab-testphase.ltx
index cf329a8e806..e309b479ed1 100644
--- a/Master/texmf-dist/tex/latex-dev/latex-lab/minipage-latex-lab-testphase.ltx
+++ b/Master/texmf-dist/tex/latex-dev/latex-lab/minipage-latex-lab-testphase.ltx
@@ -33,8 +33,8 @@
%%
%%
%% File: latex-lab-minipage.dtx (C) Copyright 2023 LaTeX Project
-\def\ltlabminipagedate{2023-08-20}
-\def\ltlabminipageversion{0.81b}
+\def\ltlabminipagedate{2023-10-30}
+\def\ltlabminipageversion{0.81c}
\ProvidesFile{minipage-latex-lab-testphase.ltx}
[\ltlabminipagedate\space v\ltlabminipageversion
diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/sec-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex-dev/latex-lab/sec-latex-lab-testphase.ltx
index 131fce259d1..bf39e9949f7 100644
--- a/Master/texmf-dist/tex/latex-dev/latex-lab/sec-latex-lab-testphase.ltx
+++ b/Master/texmf-dist/tex/latex-dev/latex-lab/sec-latex-lab-testphase.ltx
@@ -33,8 +33,8 @@
%%
%%
%% File: latex-lab-sec.dtx (C) Copyright 2022-2023 LaTeX Project
-\def\ltlabsecdate{2023-07-20}
-\def\ltlabsecversion{0.84a}
+\def\ltlabsecdate{2023-10-16}
+\def\ltlabsecversion{0.84b}
\ProvidesFile{sec-latex-lab-testphase.ltx}
[\ltlabsecdate\space v\ltlabsecversion\space latex-lab wrapper sec]
diff --git a/Master/texmf-dist/tex/latex-dev/latex-lab/table-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex-dev/latex-lab/table-latex-lab-testphase.ltx
new file mode 100644
index 00000000000..850f3ffa110
--- /dev/null
+++ b/Master/texmf-dist/tex/latex-dev/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-dev/latex-lab/toc-latex-lab-testphase.ltx b/Master/texmf-dist/tex/latex-dev/latex-lab/toc-latex-lab-testphase.ltx
index 8fb6ca3a450..1d7e70c5d79 100644
--- a/Master/texmf-dist/tex/latex-dev/latex-lab/toc-latex-lab-testphase.ltx
+++ b/Master/texmf-dist/tex/latex-dev/latex-lab/toc-latex-lab-testphase.ltx
@@ -33,8 +33,8 @@
%%
%%
%% File: latex-lab-toc.dtx (C) Copyright 2022-2023 LaTeX Project
-\def\ltlabtocdate{2023-07-20}
-\def\ltlabtocversion{0.85a}
+\def\ltlabtocdate{2023-10-16}
+\def\ltlabtocversion{0.85b}
\ProvidesFile{toc-latex-lab-testphase.ltx}
[\ltlabtocdate\space v\ltlabtocversion latex-lab wrapper toc]
diff --git a/Master/texmf-dist/tex/latex-dev/tools/afterpage.sty b/Master/texmf-dist/tex/latex-dev/tools/afterpage.sty
index 52ae067c1fa..823f3ffa25c 100644
--- a/Master/texmf-dist/tex/latex-dev/tools/afterpage.sty
+++ b/Master/texmf-dist/tex/latex-dev/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-dev/tools/array.sty b/Master/texmf-dist/tex/latex-dev/tools/array.sty
index ff3a57f6eaa..cd6eee6a0fc 100644
--- a/Master/texmf-dist/tex/latex-dev/tools/array.sty
+++ b/Master/texmf-dist/tex/latex-dev/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-dev/tools/bm.sty b/Master/texmf-dist/tex/latex-dev/tools/bm.sty
index 37ac28e1176..8a136bd86d5 100644
--- a/Master/texmf-dist/tex/latex-dev/tools/bm.sty
+++ b/Master/texmf-dist/tex/latex-dev/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-dev/tools/calc.sty b/Master/texmf-dist/tex/latex-dev/tools/calc.sty
index f1ecb90347f..d36e1a57ba6 100644
--- a/Master/texmf-dist/tex/latex-dev/tools/calc.sty
+++ b/Master/texmf-dist/tex/latex-dev/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-dev/tools/dcolumn.sty b/Master/texmf-dist/tex/latex-dev/tools/dcolumn.sty
index 78a01a5ba14..dccfaac71cb 100644
--- a/Master/texmf-dist/tex/latex-dev/tools/dcolumn.sty
+++ b/Master/texmf-dist/tex/latex-dev/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-dev/tools/enumerate.sty b/Master/texmf-dist/tex/latex-dev/tools/enumerate.sty
index 86220225a13..31a7b6d8d11 100644
--- a/Master/texmf-dist/tex/latex-dev/tools/enumerate.sty
+++ b/Master/texmf-dist/tex/latex-dev/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-dev/tools/ftnright.sty b/Master/texmf-dist/tex/latex-dev/tools/ftnright.sty
index d70101bae11..fbae2b7949a 100644
--- a/Master/texmf-dist/tex/latex-dev/tools/ftnright.sty
+++ b/Master/texmf-dist/tex/latex-dev/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-dev/tools/indentfirst.sty b/Master/texmf-dist/tex/latex-dev/tools/indentfirst.sty
index a552fdd8d67..be715f3d89b 100644
--- a/Master/texmf-dist/tex/latex-dev/tools/indentfirst.sty
+++ b/Master/texmf-dist/tex/latex-dev/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-dev/tools/layout.sty b/Master/texmf-dist/tex/latex-dev/tools/layout.sty
index a80bc79e1f3..485dd89fac4 100644
--- a/Master/texmf-dist/tex/latex-dev/tools/layout.sty
+++ b/Master/texmf-dist/tex/latex-dev/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-dev/tools/longtable.sty b/Master/texmf-dist/tex/latex-dev/tools/longtable.sty
index 9d9ab53fda3..0da756ace51 100644
--- a/Master/texmf-dist/tex/latex-dev/tools/longtable.sty
+++ b/Master/texmf-dist/tex/latex-dev/tools/longtable.sty
@@ -43,7 +43,7 @@
\DeclareCurrentRelease{}{2020-02-07}
\ProvidesPackage{longtable}
- [2021-09-01 v4.17 Multi-page Table package (DPC)]
+ [2023-11-01 v4.19 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-dev/tools/shellesc.sty b/Master/texmf-dist/tex/latex-dev/tools/shellesc.sty
index dfea3222973..6fbd004dfed 100644
--- a/Master/texmf-dist/tex/latex-dev/tools/shellesc.sty
+++ b/Master/texmf-dist/tex/latex-dev/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-dev/tools/showkeys.sty b/Master/texmf-dist/tex/latex-dev/tools/showkeys.sty
index 236b135311b..090a8fb7875 100644
--- a/Master/texmf-dist/tex/latex-dev/tools/showkeys.sty
+++ b/Master/texmf-dist/tex/latex-dev/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-dev/tools/tabularx.sty b/Master/texmf-dist/tex/latex-dev/tools/tabularx.sty
index a084ff17cd4..4079dc9f63e 100644
--- a/Master/texmf-dist/tex/latex-dev/tools/tabularx.sty
+++ b/Master/texmf-dist/tex/latex-dev/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-dev/tools/thb.sty b/Master/texmf-dist/tex/latex-dev/tools/thb.sty
index 56deb3cd976..60ffb1140b8 100644
--- a/Master/texmf-dist/tex/latex-dev/tools/thb.sty
+++ b/Master/texmf-dist/tex/latex-dev/tools/thb.sty
@@ -36,7 +36,7 @@
%% given in the file `manifest.txt'.
%%
%%
-\def\FMithmInfo{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-dev/tools/thc.sty b/Master/texmf-dist/tex/latex-dev/tools/thc.sty
index 79d85c49184..c8ddd8b16c3 100644
--- a/Master/texmf-dist/tex/latex-dev/tools/thc.sty
+++ b/Master/texmf-dist/tex/latex-dev/tools/thc.sty
@@ -36,7 +36,7 @@
%% given in the file `manifest.txt'.
%%
%%
-\def\FMithmInfo{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-dev/tools/thcb.sty b/Master/texmf-dist/tex/latex-dev/tools/thcb.sty
index 39be6ed45a1..f6db2854666 100644
--- a/Master/texmf-dist/tex/latex-dev/tools/thcb.sty
+++ b/Master/texmf-dist/tex/latex-dev/tools/thcb.sty
@@ -36,7 +36,7 @@
%% given in the file `manifest.txt'.
%%
%%
-\def\FMithmInfo{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-dev/tools/theorem.sty b/Master/texmf-dist/tex/latex-dev/tools/theorem.sty
index 4304eff280e..5bbbe63e71a 100644
--- a/Master/texmf-dist/tex/latex-dev/tools/theorem.sty
+++ b/Master/texmf-dist/tex/latex-dev/tools/theorem.sty
@@ -36,7 +36,7 @@
%% given in the file `manifest.txt'.
%%
%%
-\def\FMithmInfo{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-dev/tools/thm.sty b/Master/texmf-dist/tex/latex-dev/tools/thm.sty
index f62e6b65c07..7c98832f830 100644
--- a/Master/texmf-dist/tex/latex-dev/tools/thm.sty
+++ b/Master/texmf-dist/tex/latex-dev/tools/thm.sty
@@ -36,7 +36,7 @@
%% given in the file `manifest.txt'.
%%
%%
-\def\FMithmInfo{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-dev/tools/thmb.sty b/Master/texmf-dist/tex/latex-dev/tools/thmb.sty
index 167aaafe080..47babc61d69 100644
--- a/Master/texmf-dist/tex/latex-dev/tools/thmb.sty
+++ b/Master/texmf-dist/tex/latex-dev/tools/thmb.sty
@@ -36,7 +36,7 @@
%% given in the file `manifest.txt'.
%%
%%
-\def\FMithmInfo{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-dev/tools/thp.sty b/Master/texmf-dist/tex/latex-dev/tools/thp.sty
index ce803310b70..951bc8fa14c 100644
--- a/Master/texmf-dist/tex/latex-dev/tools/thp.sty
+++ b/Master/texmf-dist/tex/latex-dev/tools/thp.sty
@@ -36,7 +36,7 @@
%% given in the file `manifest.txt'.
%%
%%
-\def\FMithmInfo{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-dev/tools/xr.sty b/Master/texmf-dist/tex/latex-dev/tools/xr.sty
index 8304f2ff866..ece5e0df2d0 100644
--- a/Master/texmf-dist/tex/latex-dev/tools/xr.sty
+++ b/Master/texmf-dist/tex/latex-dev/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{{%