summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/base/latexrelease.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/base/latexrelease.sty')
-rw-r--r--Master/texmf-dist/tex/latex/base/latexrelease.sty548
1 files changed, 455 insertions, 93 deletions
diff --git a/Master/texmf-dist/tex/latex/base/latexrelease.sty b/Master/texmf-dist/tex/latex/base/latexrelease.sty
index 51bccae7522..13f0c665a0f 100644
--- a/Master/texmf-dist/tex/latex/base/latexrelease.sty
+++ b/Master/texmf-dist/tex/latex/base/latexrelease.sty
@@ -122,6 +122,13 @@
\pkgcls@debug{\@spaces 4: #4}%
\def\pkgcls@name{#1}% % for info message
\def\pkgcls@arg {#3}% % for info message
+ \edef\pkgcls@ext{%
+ \ifx#4\@clsextension document class\else
+ \ifx#4\@pkgextension package\else
+ file
+ \fi
+ \fi
+ }% % for info message
\pkgcls@parse@date@arg{#3}%
\let\pkgcls@candidate\@empty
\begingroup
@@ -163,7 +170,7 @@
\ifnum \@parse@version0#1//00\@nil > \pkgcls@targetdate
\@latex@warning@no@line{Suspicious rollback/min-date date given\MessageBreak
A minimal date of #1 has been specified for
- \@cls@pkg\MessageBreak '\pkgcls@name'.\MessageBreak
+ \pkgcls@ext\MessageBreak '\pkgcls@name'.\MessageBreak
But this is in conflict
with a rollback request to \requestedpatchdate}
\fi
@@ -219,6 +226,7 @@
\def\pkgcls@use@this@release#1#2{%
\pkgcls@show@selection{#1}{#2}%
\pkgcls@targetdate\z@
+ \@addtofilelist{#1}%
\@@input #1\relax
\endinput
}
@@ -293,7 +301,7 @@
}
%%% From File: ltvers.dtx
\edef\latexreleaseversion
- {2024-06-01}
+ {2024-11-01}
\newif\if@includeinrelease
\@includeinreleasefalse
\def\IncludeInRelease#1{%
@@ -424,7 +432,7 @@
\@skipping@modulefalse
\fi}
\ProvidesPackage{latexrelease}
- [2022/11/14 v1.0p LaTeX release emulation and tests
+ [2024/08/11 v1.0p LaTeX release emulation and tests
(including releases up to \latexreleaseversion)]
\NeedsTeXFormat{LaTeX2e}[1996/06/01]
\@ifundefined{sourceLaTeXdate}{%
@@ -1982,8 +1990,8 @@ of this package available from CTAN}
\EndIncludeInRelease
%%% From File: ltcmd.dtx
-\def\ltcmdversion{v1.2e}
-\def\ltcmddate{2024-04-17}
+\def\ltcmdversion{v1.2f}
+\def\ltcmddate{2024-07-06}
\edef\@latexrelease@catcode@null{\the\catcode`\^^@ }
\catcode`\^^@=12
\ExplSyntaxOn
@@ -2202,6 +2210,22 @@ of this package available from CTAN}
{ \cs_set_nopar:cpx }
{ \l__cmd_function_tl \c_space_tl } ##1##2 { ##1 {##2} }
}
+\IncludeInRelease{2024/11/01}{\__cmd_declare_env:nnnn}%
+ {Use~space-trimmed~envname~directly}
+\cs_new_protected:Npn \__cmd_declare_env:nnnn #1#2
+ {
+ \str_set:Nn \l__cmd_environment_str {#1}
+ \cs_if_exist:cTF { #1 }
+ { \msg_info:nnnn { cmd } { redefine-env } { #1 } { #2 } }
+ { \msg_info:nnnn { cmd } { define-env } { #1 } { #2 } }
+ \bool_set_false:N \l__cmd_expandable_bool
+ \bool_set_true:N \l__cmd_environment_bool
+ \__cmd_declare_env_internal:nnnn {#1} {#2}
+ }
+\cs_generate_variant:Nn \__cmd_declare_env:nnnn { e }
+\EndIncludeInRelease
+\IncludeInRelease{2024/06/01}{\__cmd_declare_env:nnnn}%
+ {Use~space-trimmed~envname~directly}
\cs_new_protected:Npn \__cmd_declare_env:nnnn #1#2
{
\str_set:Nx \l__cmd_environment_str {#1}
@@ -2221,6 +2245,8 @@ of this package available from CTAN}
\exp_args:NV \__cmd_declare_env_internal:nnnn
\l__cmd_environment_str {#2}
}
+
+\EndIncludeInRelease
\cs_new_protected:Npn \__cmd_declare_env_internal:nnnn #1#2#3#4
{
\exp_args:Nc \__cmd_declare_cmd_internal:Nnnn { environment~ #1 } {#2}
@@ -4799,6 +4825,61 @@ of this package available from CTAN}
\__cmd_check_definable:nNT {#1} \DeclareDocumentCommand
{ \__cmd_declare_cmd:Nnn #1 {#2} {#3} }
}
+\IncludeInRelease{2024/11/01}{\NewDocumentEnvironment}%
+ {Trim~spaces~from~envname~first}
+\cs_new_protected:Npn \NewDocumentEnvironment #1#2#3#4
+ {
+ \__cmd_new_env:ennn { \tl_trim_spaces:e {#1} } {#2} {#3} {#4}
+ }
+\cs_new_protected:Npn \RenewDocumentEnvironment #1#2#3#4
+ {
+ \__cmd_renew_env:ennn { \tl_trim_spaces:e {#1} } {#2} {#3} {#4}
+ }
+\cs_new_protected:Npn \ProvideDocumentEnvironment #1#2#3#4
+ {
+ \__cmd_provide_env:ennn { \tl_trim_spaces:e {#1} } {#2} {#3} {#4}
+ }
+\cs_new_protected:Npn \DeclareDocumentEnvironment #1#2#3#4
+ {
+ \__cmd_declare_env:ennn { \tl_trim_spaces:e {#1} } {#2} {#3} {#4}
+ }
+\cs_new_protected:Npn \__cmd_new_env:nnnn #1
+ {
+ \cs_if_exist:cTF {#1}
+ {
+ \msg_error:nnx { cmd } { env-already-defined } {#1}
+ \use_none:nnn
+ }
+ {
+ \cs_if_exist:cTF { end #1 }
+ {
+ \msg_error:nnx { cmd } { env-end-already-defined } {#1}
+ \use_none:nnn
+ }
+ { \__cmd_declare_env:nnnn {#1} }
+ }
+ }
+\cs_new_protected:Npn \__cmd_renew_env:nnnn #1
+ {
+ \cs_if_exist:cTF {#1}
+ { \__cmd_declare_env:nnnn {#1} }
+ {
+ \msg_error:nnx { cmd } { env-undefined } {#1}
+ \use_none:nnn
+ }
+ }
+\cs_new_protected:Npn \__cmd_provide_env:nnnn #1
+ {
+ \cs_if_exist:cTF {#1}
+ { \use_none:nnn }
+ { \__cmd_declare_env:nnnn {#1} }
+ }
+\cs_generate_variant:Nn \__cmd_new_env:nnnn { e }
+\cs_generate_variant:Nn \__cmd_renew_env:nnnn { e }
+\cs_generate_variant:Nn \__cmd_provide_env:nnnn { e }
+\EndIncludeInRelease
+\IncludeInRelease{2024/06/01}{\NewDocumentEnvironment}%
+ {Trim~spaces~from~envname~first}
\cs_new_protected:Npn \NewDocumentEnvironment #1#2#3#4
{
\cs_if_exist:cTF {#1}
@@ -4819,6 +4900,14 @@ of this package available from CTAN}
{ \cs_if_exist:cF {#1} { \__cmd_declare_env:nnnn {#1} {#2} {#3} {#4} } }
\cs_new_protected:Npn \DeclareDocumentEnvironment #1#2#3#4
{ \__cmd_declare_env:nnnn {#1} {#2} {#3} {#4} }
+\cs_undefine:N \__cmd_new_env:nnnn
+\cs_undefine:N \__cmd_new_env:ennn
+\cs_undefine:N \__cmd_renew_env:nnnn
+\cs_undefine:N \__cmd_renew_env:ennn
+\cs_undefine:N \__cmd_provide_env:nnnn
+\cs_undefine:N \__cmd_provide_env:ennn
+
+\EndIncludeInRelease
\cs_new_protected:Npn \NewExpandableDocumentCommand #1#2#3
{
\__cmd_check_definable:nNT {#1} \NewExpandableDocumentCommand
@@ -5242,17 +5331,19 @@ of this package available from CTAN}
{Providing~hooks}
\cs_gset_protected:Npn \hook_activate_generic:n #1 { }
\EndIncludeInRelease
-\cs_new:Npn \__hook_parse_label_default:n #1
+\cs_new:Npn \__hook_parse_label_default:nN #1#2
{
\tl_if_novalue:nTF {#1}
{ \__hook_currname_or_default: }
- { \tl_trim_spaces_apply:nN {#1} \__hook_parse_dot_label:n }
+ { \tl_trim_spaces_apply:nN {#1} \__hook_parse_dot_label:nN #2 }
}
-\cs_new:Npn \__hook_parse_dot_label:n #1
+\cs_new:Npn \__hook_parse_dot_label:nN #1#2
{
\tl_if_empty:nTF {#1}
{
- \msg_expandable_error:nn { hooks } { empty-label }
+ \bool_if:NTF #2
+ { \msg_expandable_error:nn { hooks } { empty-label } }
+ { \msg_expandable_error:nn { hooks } { empty-hook } }
\__hook_currname_or_default:
}
{
@@ -5307,24 +5398,24 @@ of this package available from CTAN}
\cs_new_protected:Npn \__hook_normalize_hook_args:Nn #1 #2
{
\__hook_normalize_hook_args_aux:Nn #1
- { { \__hook_parse_label_default:n {#2} } }
+ { { \__hook_parse_label_default:nN {#2} \c_false_bool } }
}
\cs_new_protected:Npn \__hook_normalize_hook_args:Nnn #1 #2 #3
{
\__hook_normalize_hook_args_aux:Nn #1
{
- { \__hook_parse_label_default:n {#2} }
- { \__hook_parse_label_default:n {#3} }
+ { \__hook_parse_label_default:nN {#2} \c_false_bool }
+ { \__hook_parse_label_default:nN {#3} \c_true_bool }
}
}
\cs_new_protected:Npn \__hook_normalize_hook_rule_args:Nnnnn #1 #2 #3 #4 #5
{
\__hook_normalize_hook_args_aux:Nn #1
{
- { \__hook_parse_label_default:n {#2} }
- { \__hook_parse_label_default:n {#3} }
+ { \__hook_parse_label_default:nN {#2} \c_false_bool }
+ { \__hook_parse_label_default:nN {#3} \c_true_bool }
{ \tl_trim_spaces:n {#4} }
- { \__hook_parse_label_default:n {#5} }
+ { \__hook_parse_label_default:nN {#5} \c_true_bool }
}
}
\tl_gset:Nn \g__hook_hook_curr_name_tl { top-level }
@@ -6774,7 +6865,9 @@ of this package available from CTAN}
{ #2 { The~hook~is~empty } }
{
\__hook_log_line:x { Code~chunks: }
- \prop_if_empty:cTF { g__hook_#1_code_prop }
+ \bool_lazy_or:nnTF
+ { ! \prop_if_exist_p:c { g__hook_#1_code_prop } }
+ { \prop_if_empty_p:c { g__hook_#1_code_prop } }
{ \__hook_log_line_indent:x { --- } }
{
\prop_map_inline:cn { g__hook_#1_code_prop }
@@ -6981,16 +7074,19 @@ of this package available from CTAN}
}
\cs_new_protected:Npn \__hook_list_rules:nn #1 #2
{
- \cs_set_protected:Npn \__hook_tmp:w ##1 ##2 ##3 {#2}
- \prop_map_inline:cn { g__hook_#1_code_prop }
+ \prop_if_exist:cT { g__hook_#1_code_prop }
{
+ \cs_set_protected:Npn \__hook_tmp:w ##1 ##2 ##3 {#2}
\prop_map_inline:cn { g__hook_#1_code_prop }
{
- \__hook_if_label_case:nnnnn {##1} {####1}
- { \prop_map_break: }
- { \__hook_list_one_rule:nnn {##1} {####1} }
- { \__hook_list_one_rule:nnn {####1} {##1} }
- {#1}
+ \prop_map_inline:cn { g__hook_#1_code_prop }
+ {
+ \__hook_if_label_case:nnnnn {##1} {####1}
+ { \prop_map_break: }
+ { \__hook_list_one_rule:nnn {##1} {####1} }
+ { \__hook_list_one_rule:nnn {####1} {##1} }
+ {#1}
+ }
}
}
}
@@ -7528,6 +7624,10 @@ of this package available from CTAN}
Empty~code~label~\msg_line_context:.~
Using~'\__hook_currname_or_default:'~instead.
}
+\msg_new:nnn { hooks } { empty-hook }
+ {
+ Empty~hook~name~\msg_line_context:.
+ }
\msg_new:nnn { hooks } { no-default-label }
{
Missing~(empty)~default~label~\msg_line_context:. \\
@@ -7705,6 +7805,8 @@ of this package available from CTAN}
\NewDocumentCommand \ClearHookRule { m m m }
{ \hook_gset_rule:nnnn {#1}{#2}{unrelated}{#3} }
\cs_new_eq:NN \IfHookEmptyTF \hook_if_empty:nTF
+\cs_new_eq:NN \IfHookEmptyT \hook_if_empty:nT
+\cs_new_eq:NN \IfHookEmptyF \hook_if_empty:nF
\cs_new_eq:NN \IfHookExistsTF \__hook_if_usable:nTF
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\cs_new_protected:Npn \hook_disable:n
@@ -8540,7 +8642,7 @@ of this package available from CTAN}
{
\cs_generate_from_arg_count:cNnn
{ __socket_#1_plug_#2:w }
- \cs_new_protected:Npn
+ \cs_new:Npn
{ \int_use:c { c__socket_#1_args_int } }
{#3}
\seq_put_right:cn { l__socket_#1_plugs_seq } {#2}
@@ -8559,7 +8661,7 @@ of this package available from CTAN}
{
\cs_generate_from_arg_count:cNnn
{ __socket_#1_plug_#2:w }
- \cs_set_protected:Npn
+ \cs_set:Npn
{ \int_use:c { c__socket_#1_args_int } }
{#3}
\__socket_debug_term:n
@@ -8599,6 +8701,10 @@ of this package available from CTAN}
\cs_new_eq:NN \socket_use:nn \socket_use:nw % socket with one input
\cs_new_eq:NN \socket_use:nnn \socket_use:nw % socket with two inputs
\cs_new_eq:NN \socket_use:nnnn \socket_use:nw % socket with three inputs
+\cs_new:Npn \socket_use_expandable:nw #1 {
+ \use:c { __socket_#1_plug_ \str_use:c { l__socket_#1_plug_str } :w }
+}
+\cs_new_eq:NN \socket_use_expandable:n \socket_use_expandable:nw % socket with no inputs
\msg_new:nnnn { socket } { already-declared }
{ Socket~ '#1'~ already~ declared! }
@@ -9489,23 +9595,33 @@ of this package available from CTAN}
}
\cs_new_protected:Npn \__template_assign_variable:
{
- \__template_assign_variable:c
+ \exp_args:Ne \__template_assign_variable:n
{
- \__template_map_var_type: _
- \bool_if:NT \l__template_global_bool { g } set:Nn
+ \__template_map_var_type:
+ _
+ \bool_if:NT \l__template_global_bool { g }
+ set:N
}
}
-\cs_new_protected:Npn \__template_assign_variable:N #1
+\cs_new_protected:Npn \__template_assign_variable:n #1
{
- \__template_if_key_value:VT \l__template_value_tl
- { \__template_key_to_value: }
- \tl_put_right:Ne \l__template_assignments_tl
+ \__template_if_key_value:VTF \l__template_value_tl
+ {
+ \__template_key_to_value:
+ \tl_put_right:Ne \l__template_assignments_tl
+ {
+ \exp_not:c { #1 V } \exp_not:V \l__template_var_tl
+ \exp_not:V \l__template_value_tl
+ }
+ }
{
- #1 \exp_not:V \l__template_var_tl
- { \exp_not:V \l__template_value_tl }
+ \tl_put_right:Ne \l__template_assignments_tl
+ {
+ \exp_not:c { #1 n } \exp_not:V \l__template_var_tl
+ { \exp_not:V \l__template_value_tl }
+ }
}
}
-\cs_generate_variant:Nn \__template_assign_variable:N { c }
\cs_new_protected:Npn \__template_key_to_value:
{ \exp_after:wN \__template_key_to_value_auxi:w \l__template_value_tl }
\cs_new_protected:Npn \__template_key_to_value_auxi:w \KeyValue #1
@@ -10090,6 +10206,32 @@ of this package available from CTAN}
\let \IfDocumentMetadataTF \@firstoftwo
\DocumentMetadata
}
+\IncludeInRelease{2024/11/01}%
+ {\MakeLinkTarget}{Record target name for tagging support}%
+\ExplSyntaxOn
+\int_new:N\g__kernel_target_int
+\NewDocumentCommand\MakeLinkTarget{sO{}m}{%
+ \ifvmode
+ \special{}%
+ \else
+ \@savsf\spacefactor
+ \smash{}%
+ \spacefactor\@savsf
+ \fi
+ \IfBooleanTF {#1}
+ {
+ \tl_gset:Ne \@currentHref {#3}
+ }
+ {
+ \int_gincr:N\g__kernel_target_int
+ \tl_gset:Ne \@currentHref {target*.\int_use:N\g__kernel_target_int}
+ }
+ \UseTaggingSocket{recordtarget}
+ }
+\ExplSyntaxOff
+\EndIncludeInRelease
+\IncludeInRelease{2022/06/01}%
+ {\MakeLinkTarget}{Record target name for tagging support}%
\NewDocumentCommand\MakeLinkTarget{sO{}m}{%
\ifvmode
\special{}%
@@ -10098,7 +10240,8 @@ of this package available from CTAN}
\smash{}%
\spacefactor\@savsf
\fi}
-\NewDocumentCommand\LinkTargetOn{}{}
+\EndIncludeInRelease
+ \NewDocumentCommand\LinkTargetOn{}{}
\NewDocumentCommand\LinkTargetOff{}{}
\NewDocumentCommand\NextLinkTarget{m}{}
\IncludeInRelease{0000/00/00}{ltmeta}%
@@ -10258,6 +10401,20 @@ of this package available from CTAN}
\fi
\fi}%
\EndIncludeInRelease
+\IncludeInRelease{2024/11/01}%
+ {\addvspace}{drop unnecessary no-item error}%
+\protected\def\addvspace#1{%
+ \ifhmode \ifinner \@LRmoderr \else \par \fi \fi
+ \if@minipage\else
+ \ifdim \lastskip =\z@
+ \@vspace@calcify{#1}%
+ \else
+ \setlength\@tempskipb{#1}%
+ \@xaddvskip
+ \fi
+ \fi
+}
+\EndIncludeInRelease
\IncludeInRelease{2020/10/01}%
{\addvspace}{\addvspace calc support}%
\def\addvspace#1{%
@@ -10291,6 +10448,38 @@ of this package available from CTAN}
\@noitemerr
\fi}
\EndIncludeInRelease
+\IncludeInRelease{2024/11/01}%
+ {\addpenalty}{\addpenalty drop error}%
+\protected\def\addpenalty#1{%
+ \ifhmode \ifinner \@LRmoderr \else \par \fi \fi
+ \if@minipage
+ \else
+ \if@nobreak
+ \else
+ \ifdim\lastskip=\z@
+ \penalty#1\relax
+ \else
+ \@tempskipb\lastskip
+ \begingroup
+ \@tempskipa\@tempskipb
+ \advance \@tempskipb
+ \ifdim\prevdepth>\maxdepth\maxdepth\else
+ \ifdim \prevdepth = -\@m\p@ \z@ \else \prevdepth \fi
+ \fi
+ \vskip -\@tempskipb
+ \penalty#1%
+ \ifdim\@tempskipa=\@tempskipb
+ \else
+ \advance\@tempskipb -\@tempskipa
+ \vskip \@tempskipb
+ \fi
+ \vskip \@tempskipa
+ \endgroup
+ \fi
+ \fi
+ \fi
+}
+\EndIncludeInRelease
\IncludeInRelease{2015/01/01}%
{\addpenalty}{\addpenalty}%
\def\addpenalty#1{%
@@ -11227,6 +11416,54 @@ of this package available from CTAN}
{Reset nested counters}%%
\def\@stpelt#1{\global\csname c@#1\endcsname \z@}%
\EndIncludeInRelease
+\IncludeInRelease{2024/11/01}{\@definecounter}
+ {provide theHfoo commands}%
+\def\@definecounter#1{\expandafter\newcount\csname c@#1\endcsname
+ \setcounter{#1}\z@
+ \global\expandafter\let\csname cl@#1\endcsname\@empty
+ \@addtoreset{#1}{@ckpt}%
+ \global\expandafter\let\csname p@#1\endcsname\@empty
+ \expandafter\xdef\csname theH#1\endcsname{%
+ \noexpand\the\noexpand\value{#1}}%
+ \expandafter
+ \ifx\csname the#1\endcsname\relax
+ \expandafter
+ \gdef\csname the#1\expandafter\endcsname\expandafter
+ {\expandafter\@arabic\csname c@#1\endcsname}%
+ \else
+ \@latex@warning{Command `\string\the#1' already
+ defined -- not changed}%
+ \fi}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}{\@definecounter}
+ {provide theHfoo commands}%%
+\def\@definecounter#1{\expandafter\newcount\csname c@#1\endcsname
+ \setcounter{#1}\z@
+ \global\expandafter\let\csname cl@#1\endcsname\@empty
+ \@addtoreset{#1}{@ckpt}%
+ \global\expandafter\let\csname p@#1\endcsname\@empty
+ \expandafter
+ \ifx\csname the#1\endcsname\relax
+ \expandafter
+ \gdef\csname the#1\expandafter\endcsname\expandafter
+ {\expandafter\@arabic\csname c@#1\endcsname}%
+ \else
+ \@latex@warning{Command `\string\the#1' already
+ defined -- not changed}%
+ \fi}
+\EndIncludeInRelease
+\IncludeInRelease{2024/11/01}{\@addtoreset}
+ {provide theHfoo commands}%
+\def\@addtoreset#1#2{\expandafter\@cons\csname cl@#2\endcsname {{#1}}%
+ \expandafter\xdef\csname theH#1\endcsname{%
+ \expandafter\noexpand\csname theH#2\endcsname.%
+ \noexpand\the\noexpand\value{#1}}%
+}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}{\@addtoreset}
+ {provide theHfoo commands}%%
+\def\@addtoreset#1#2{\expandafter\@cons\csname cl@#2\endcsname {{#1}}}
+\EndIncludeInRelease
\IncludeInRelease{2018-04-01}
{\@removefromreset}{Add interfaces}%
\def\@removefromreset#1#2{%
@@ -11359,6 +11596,17 @@ of this package available from CTAN}
{\setlength}{Using \setlength with \dimen0}%
\def\setlength#1#2{#1#2\relax}
\EndIncludeInRelease
+\IncludeInRelease{2024/11/01}%
+ {\@settodim}{suspend tagging}%
+\def\@settodim#1#2#3{\setbox\@tempboxa\hbox
+ {{\SuspendTagging{\@settodim}#3\ResumeTagging{\@settodim}}}#2#1\@tempboxa
+ \setbox\@tempboxa\box\voidb@x}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@settodim}{suspend tagging}%
+\def\@settodim#1#2#3{\setbox\@tempboxa\hbox{{#3}}#2#1\@tempboxa
+ \setbox\@tempboxa\box\voidb@x}
+\EndIncludeInRelease
%%% From File: ltfssbas.dtx
%% Copyright (C) 1989-2002 Frank Mittelbach and Rainer Sch\"opf
\IncludeInRelease{2020/02/02}%
@@ -11664,6 +11912,7 @@ of this package available from CTAN}
\hbadness\@M
\hfuzz\maxdimen
\tracingonline\z@
+ \tracinglostchars\z@
\everypar={}%
\leftskip\z@skip
\rightskip\z@skip
@@ -14575,11 +14824,42 @@ of this package available from CTAN}
\IncludeInRelease{2022/06/01}%
{\Ref}{Add starred version}%
\def\@currentcounter{}
-\def\refstepcounter#1{\stepcounter{#1}%
+\EndIncludeInRelease
+\IncludeInRelease{2024/11/01}%
+ {\@currentHref}{set theHcounter representation}%
+\NewSocket{refstepcounter}{1}
+\NewSocket{refstepcounter/target}{1}
+\NewSocketPlug{refstepcounter/target}{kernel}
+ {\xdef\@currentHref {#1.\csname theH#1\endcsname}}%
+\AssignSocketPlug{refstepcounter/target}{kernel}
+\def\refstepcounter#1{%
+ \UseSocket{refstepcounter}{%
+ \stepcounter{#1}%
\edef\@currentcounter{#1}%
\protected@edef\@currentlabel
{\csname p@#1\expandafter\endcsname\csname the#1\endcsname}%
+ \UseSocket{refstepcounter/target}{#1}%
+ \UseTaggingSocket{recordtarget}%
+ }%
+}
+\def\@kernel@refstepcounter#1{%
+ \UseSocket{refstepcounter}{%
+ \stepcounter{#1}%
+ \edef\@currentcounter{#1}%
+ \protected@edef\@currentlabel
+ {\csname p@#1\expandafter\endcsname\csname the#1\endcsname}}}%
+\EndIncludeInRelease
+\IncludeInRelease{2022/06/01}%
+ {\@currentHref}{set theHcounter representation}%
+\def\refstepcounter#1{\stepcounter{#1}%
+ \edef\@currentcounter{#1}%
+ \protected@edef\@currentlabel
+ {\csname p@#1\expandafter\endcsname\csname the#1\endcsname}%
}
+\let\@kernel@refstepcounter\refstepcounter
+\EndIncludeInRelease
+\IncludeInRelease{2022/06/01}%
+ {\Ref}{Add starred version}%
\def\labelformat#1{\expandafter\def\csname p@#1\endcsname##1}
\def\@kernel@Ref#1{\protected@edef\@tempa{\@kernel@ref{#1}}%
\expandafter\MakeUppercase\@tempa}
@@ -14685,14 +14965,11 @@ of this package available from CTAN}
\cs_generate_variant:Nn \property_record:nn { nV , ee, oo }
\cs_new_protected:Npn \__property_record:nn #1#2
{
- \legacy_if:nT { @filesw }
+ \protected@write \@auxout {}
{
- \protected@write \@auxout {}
- {
- \token_to_str:N \new@label@record
- {#1}
- { \clist_map_function:nN {#2} \__property_record_value:n }
- }
+ \token_to_str:N \new@label@record
+ {#1}
+ { \clist_map_function:nN {#2} \__property_record_value:n }
}
}
\cs_generate_variant:Nn \__property_record:nn { e }
@@ -14815,8 +15092,8 @@ of this package available from CTAN}
}
\prg_generate_conditional_variant:Nnn \property_if_recorded:n {e} {TF}
\cs_new_eq:NN \IfLabelExistsTF \property_if_recorded:eTF
-\cs_new:Npn \IfLabelExistsT #1#2 {\property_if_exist:eTF {#1}{#2}{} }
-\cs_new:Npn \IfLabelExistsF #1 {\property_if_exist:eTF {#1}{} }
+\cs_new:Npn \IfLabelExistsT #1#2 {\property_if_recorded:eTF {#1}{#2}{} }
+\cs_new:Npn \IfLabelExistsF #1 {\property_if_recorded:eTF {#1}{} }
\prg_new_conditional:Npnn \property_if_recorded:nn #1#2 { p , T , F, TF }
% #1 label #2 property
{
@@ -14830,6 +15107,8 @@ of this package available from CTAN}
}
\prg_generate_conditional_variant:Nnn \property_if_recorded:nn {ee} {TF}
\cs_new_eq:NN \IfPropertyRecordedTF \property_if_recorded:eeTF
+\cs_new:Npn \IfPropertyRecordedT #1#2#3 { \property_if_recorded:eeTF {#1}{#2}{#3}{} }
+\cs_new:Npn \IfPropertyRecordedF #1#2#3 { \property_if_recorded:eeTF {#1}{#2}{}{#3} }
\cs_new_protected:Npn \property_ref_undefined_warn:
{
\flag_if_raised:nT { l__property_ref_flag }
@@ -14943,6 +15222,9 @@ of this package available from CTAN}
\NewHook{enddocument/afteraux}
\NewHook{enddocument/info}
\NewHook{enddocument/end}
+\RemoveFromHook{enddocument/info}[kernel/filelist]
+\RemoveFromHook{enddocument/info}[kernel/warnings]
+\RemoveFromHook{enddocument/info}[kernel/release]
\AddToHook{enddocument/info}[kernel/filelist]{\@dofilelist}
\AddToHook{enddocument/info}[kernel/warnings]{\@enddocument@kernel@warnings}
\AddToHook{enddocument/info}[kernel/release]{%
@@ -15004,6 +15286,9 @@ of this package available from CTAN}
\NewHook{enddocument/afteraux}
\NewHook{enddocument/info}
\NewHook{enddocument/end}
+\RemoveFromHook{enddocument/info}[kernel/filelist]
+\RemoveFromHook{enddocument/info}[kernel/warnings]
+\RemoveFromHook{enddocument/info}[kernel/release]
\AddToHook{enddocument/info}[kernel/filelist]{\@dofilelist}
\AddToHook{enddocument/info}[kernel/warnings]{\@enddocument@kernel@warnings}
\AddToHook{enddocument/info}[kernel/release]{%
@@ -15127,7 +15412,7 @@ of this package available from CTAN}
\EndIncludeInRelease
\IncludeInRelease{2020/10/01}%
{\begin}{Use hook system}%
-\DeclareRobustCommand*\begin[1]{%
+\protected\def\begin#1{%
\UseHook{env/#1/before}%
\@ifundefined{#1}%
{\def\reserved@a{\@latex@error{Environment #1 undefined}\@eha}}%
@@ -15145,34 +15430,6 @@ of this package available from CTAN}
\fi
\UseHook{env/#1/begin}%
}
-\edef\end
- {\unexpanded{%
- \romannumeral
- \ifx\protect\@typeset@protect
- \expandafter %1
- \expandafter %2
- \expandafter %1
- \expandafter %3 expands the \csname inside \end<space>
- \expandafter %1
- \expandafter %2 expands \end<space>
- \expandafter %1 expands the \else
- \z@
- \else
- \expandafter\z@\expandafter\protect
- \fi
- }%
- \expandafter\noexpand\csname end \endcsname
- }
-\@namedef{end }#1{%
- \romannumeral
- \IfHookEmptyTF{env/#1/end}%
- {\expandafter\z@}%
- {\z@\UseHook{env/#1/end}}%
- \csname end#1\endcsname\@checkend{#1}%
- \expandafter\endgroup\if@endpe\@doendpe\fi
- \UseHook{env/#1/after}%
- \if@ignore\@ignorefalse\ignorespaces\fi
-}
\EndIncludeInRelease
\IncludeInRelease{2019/10/01}%
{\begin}{Making \begin/\end robust}%
@@ -15184,6 +15441,23 @@ of this package available from CTAN}
\csname #1\endcsname}}%
\@ignorefalse
\begingroup\@endpefalse\reserved@a}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\begin}{Making \begin/\end robust}%
+\def\begin#1{%
+ \@ifundefined{#1}%
+ {\def\reserved@a{\@latex@error{Environment #1 undefined}\@eha}}%
+ {\def\reserved@a{\def\@currenvir{#1}%
+ \edef\@currenvline{\on@line}%
+ \csname #1\endcsname}}%
+ \@ignorefalse
+ \begingroup\@endpefalse\reserved@a}
+
+\expandafter\let\csname begin \endcsname\@undefined
+
+\EndIncludeInRelease
+\IncludeInRelease{2019/10/01}%
+ {\end}{Making \begin/\end robust}%
\edef\end
{\unexpanded{%
\romannumeral
@@ -15202,27 +15476,52 @@ of this package available from CTAN}
}%
\expandafter\noexpand\csname end \endcsname
}
-\@namedef{end }#1{%
- \csname end#1\endcsname\@checkend{#1}%
- \expandafter\endgroup\if@endpe\@doendpe\fi
- \if@ignore\@ignorefalse\ignorespaces\fi}
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\begin}{Making \begin/\end robust}%
-\def\begin#1{%
- \@ifundefined{#1}%
- {\def\reserved@a{\@latex@error{Environment #1 undefined}\@eha}}%
- {\def\reserved@a{\def\@currenvir{#1}%
- \edef\@currenvline{\on@line}%
- \csname #1\endcsname}}%
- \@ignorefalse
- \begingroup\@endpefalse\reserved@a}
+ {\end}{Making \begin/\end robust}%
\def\end#1{%
\csname end#1\endcsname\@checkend{#1}%
\expandafter\endgroup\if@endpe\@doendpe\fi
\if@ignore\@ignorefalse\ignorespaces\fi}
-\expandafter\let\csname begin \endcsname\@undefined
+\EndIncludeInRelease
+\IncludeInRelease{2024/11/01}%
+ {\end!space}{New @endpe handling}%
+\@namedef{end }#1{%
+ \romannumeral
+ \IfHookEmptyTF{env/#1/end}%
+ {\expandafter\z@}%
+ {\z@\UseHook{env/#1/end}}%
+ \csname end#1\endcsname\@checkend{#1}%
+ \endgroup
+ \UseHook{env/#1/after}%
+ \if@ignore\@ignorefalse\ignorespaces\fi
+}
+\EndIncludeInRelease
+\IncludeInRelease{2020/10/01}%
+ {\end!space}{Use hook system}%
+
+\@namedef{end }#1{%
+ \romannumeral
+ \IfHookEmptyTF{env/#1/end}%
+ {\expandafter\z@}%
+ {\z@\UseHook{env/#1/end}}%
+ \csname end#1\endcsname\@checkend{#1}%
+ \expandafter\endgroup\if@endpe\@doendpe\fi
+ \UseHook{env/#1/after}%
+ \if@ignore\@ignorefalse\ignorespaces\fi
+}
+\EndIncludeInRelease
+\IncludeInRelease{2019/10/01}%
+ {\end!space}{Making \begin/\end robust}%
+
+\@namedef{end }#1{%
+ \csname end#1\endcsname\@checkend{#1}%
+ \expandafter\endgroup\if@endpe\@doendpe\fi
+ \if@ignore\@ignorefalse\ignorespaces\fi}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\end!space}{Making \begin/\end robust}%
\expandafter\let\csname end \endcsname\@undefined
\EndIncludeInRelease
@@ -15697,6 +15996,25 @@ of this package available from CTAN}
\let\leqno\@kernel@leqno
\EndIncludeInRelease
%%% From File: ltlists.dtx
+\IncludeInRelease{2024/11/01}%
+ {\@endpetrue}{New @endpe handling}%
+\def\@endpefalse{\global\let\if@endpe\iffalse}
+\def\@endpetrue {%
+ \global\let\if@endpe\iftrue
+ \ifnum\currentgrouplevel>\z@
+ \aftergroup\propagate@doendpe
+ \fi
+}
+\def\propagate@doendpe{\if@endpe \@doendpe \fi}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@endpetrue}{New @endpe handling}%
+
+
+\def\@endpefalse{\let\if@endpe\iffalse}
+\def\@endpetrue{\let\if@endpe\iftrue}
+
+\EndIncludeInRelease
%%% From File: ltboxes.dtx
\IncludeInRelease{2015/01/01}%
{\makebox}{Make \makebox robust}%
@@ -15776,7 +16094,6 @@ of this package available from CTAN}
\IncludeInRelease{2021/06/01}%
{\color@begingroup}{color group settings}%
\let\color@begingroup\begingroup
-\def\color@endgroup{\endgraf\endgroup}
\def\color@setgroup{\color@begingroup} % changed further in color package
\let\normalcolor\relax % remains untouched; only changed in a color package
\def\color@hbox{\hbox\bgroup\color@begingroup}
@@ -15787,7 +16104,6 @@ of this package available from CTAN}
{\color@begingroup}{color group settings}%
\let\color@begingroup\relax
-\let\color@endgroup\relax
\let\color@setgroup\relax
\let\normalcolor\relax
\let\color@hbox\relax
@@ -15795,6 +16111,22 @@ of this package available from CTAN}
\let\color@endbox\relax
\EndIncludeInRelease
+\IncludeInRelease{2024/11/01}%
+ {\color@endgroup}{color group settings}%
+\def\color@endgroup{\endgraf\@endpefalse\endgroup}
+
+\EndIncludeInRelease
+\IncludeInRelease{2021/06/01}%
+ {\color@endgroup}{color group settings}%
+\def\color@endgroup{\endgraf\endgroup}
+
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\color@endgroup}{color group settings}%
+
+\let\color@endgroup\relax
+
+\EndIncludeInRelease
\IncludeInRelease{2015/01/01}%
{\savebox}{Make \savebox robust}%
\DeclareRobustCommand\savebox[1]{%
@@ -17187,7 +17519,6 @@ of this package available from CTAN}
%% Copyright (C) 2022-2024
%% Frank Mittelbach, The LaTeX Project
%%% From File: ltmarks.dtx
-%% \end{function}
\ExplSyntaxOn
\NewModuleRelease{2022/06/01}{ltmarks}
@@ -17493,6 +17824,12 @@ of this package available from CTAN}
\NewExpandableDocumentCommand \IfMarksEqualTF {O{page}mmm} {
\mark_if_eq:nnnnTF {#1}{#2}{#3}{#4}
}
+\NewExpandableDocumentCommand \IfMarksEqualT {O{page}mmm} {
+ \mark_if_eq:nnnnT {#1}{#2}{#3}{#4}
+}
+\NewExpandableDocumentCommand \IfMarksEqualF {O{page}mmm} {
+ \mark_if_eq:nnnnF {#1}{#2}{#3}{#4}
+}
\cs_new_protected:Npn \__mark_update_singlecol_structures: {
\box_if_vertical:NTF \@outputbox
{
@@ -18003,7 +18340,9 @@ of this package available from CTAN}
\EndIncludeInRelease
\IncludeInRelease{2021/06/01}%
{\OptionNotUsed}{filter unused option list}%
-\def\@remove@eq@value#1=#2\@nil{#1}
+\ExplSyntaxOn
+\def\@remove@eq@value#1=#2\@nil{\tl_trim_spaces:n{#1}}
+\ExplSyntaxOff
\def\OptionNotUsed{%
\ifx\@currext\@clsextension
\xdef\@unusedoptionlist{%
@@ -18466,6 +18805,29 @@ of this package available from CTAN}
\DeclareRobustCommand\AtEndDocument{\g@addto@macro\@enddocumenthook}
\EndIncludeInRelease
+\IncludeInRelease{2024/11/01}%
+ {\@cls@pkg}{Allow for more extensions}%
+\def\@cls@pkg{%
+ \ifx\@currext\@clsextension
+ document class%
+ \else
+ \ifx\@currext\@pkgextension
+ package%
+ \else
+ file%
+ \fi
+ \fi}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@cls@pkg}{Allow for more extensions}%
+
+\def\@cls@pkg{%
+ \ifx\@currext\@clsextension
+ document class%
+ \else
+ package%
+ \fi}
+\EndIncludeInRelease
\IncludeInRelease{2020/10/01}%
{\filec@ntents}{Define \q@curr@file directly (gh/220)}%
\def\filecontents{\@tempswatrue\@fileswtrue