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