summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex-dev/base
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2024-06-04 20:04:32 +0000
committerKarl Berry <karl@freefriends.org>2024-06-04 20:04:32 +0000
commit719c0852409803b7f2ca5c56a00fb9f7a71ec849 (patch)
treee19a5dae1068513a64095030019c0ff5fac7f77f /Master/texmf-dist/tex/latex-dev/base
parentbde8e15257ba37627e88088426e19138ec236e41 (diff)
latex2e-dev (3jun24)
git-svn-id: svn://tug.org/texlive/trunk@71433 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex-dev/base')
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/doc.sty7
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/latex.ltx202
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/latexrelease.sty276
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/shortvrb.sty2
-rw-r--r--Master/texmf-dist/tex/latex-dev/base/textcomp.sty7
5 files changed, 284 insertions, 210 deletions
diff --git a/Master/texmf-dist/tex/latex-dev/base/doc.sty b/Master/texmf-dist/tex/latex-dev/base/doc.sty
index 9fec881c4de..ea693f4ff1d 100644
--- a/Master/texmf-dist/tex/latex-dev/base/doc.sty
+++ b/Master/texmf-dist/tex/latex-dev/base/doc.sty
@@ -43,9 +43,8 @@
%% extension .ins) which are part of the distribution.
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\providecommand\DeclareRelease[3]{}
-\providecommand\DeclareCurrentRelease[2]{}
-
+\DeclareRelease{}{1994-06-01}
+ {doc-2016-02-15.sty}
\DeclareRelease{v2.1g}{2016-02-15}
{doc-2016-02-15.sty}
\DeclareRelease{v2}{2021-06-01}
@@ -53,7 +52,7 @@
\DeclareCurrentRelease{v3}{2022-06-01}
\ProvidesPackage{doc}
- [2024/02/08 v3.0o
+ [2024/04/26 v3.0p
Standard LaTeX documentation package V3 (FMi)]
%%
%% Package `doc' to use with LaTeX 2e
diff --git a/Master/texmf-dist/tex/latex-dev/base/latex.ltx b/Master/texmf-dist/tex/latex-dev/base/latex.ltx
index e912c3d3494..b468b974374 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-06-01}
-\def\patch@level{-2}
+ {2024-11-01}
+\def\patch@level{0}
\edef\development@branch@name{develop \the\year-\the\month-\the\day}
\iffalse
\def\reserved@a#1/#2/#3\@nil{%
@@ -1160,7 +1160,10 @@
\cs_gset_eq:NN \@expl@cs@to@str@@N \cs_to_str:N
\cs_gset_eq:NN \@expl@str@if@eq@@nnTF \str_if_eq:nnTF
\cs_gset_eq:NN \@expl@cs@prefix@spec@@N \cs_prefix_spec:N
-\cs_gset_eq:NN \@expl@cs@argument@spec@@N \cs_argument_spec:N
+\cs_if_exist:NTF \cs_parameter_spec:N
+ { \cs_gset_eq:NN \@expl@cs@parameter@spec@@N \cs_parameter_spec:N }
+ { \cs_gset_eq:NN \@expl@cs@parameter@spec@@N \cs_argument_spec:N }
+\cs_gset_eq:NN \__kernel_cs_parameter_spec:N \@expl@cs@parameter@spec@@N
\cs_gset_eq:NN \@expl@cs@replacement@spec@@N \cs_replacement_spec:N
\cs_gset_eq:NN \@expl@str@map@function@@NN \str_map_function:NN
\cs_gset_eq:NN \@expl@char@generate@@nn \char_generate:nn
@@ -1650,7 +1653,7 @@
\long\def\@show@newcommand@aux#1#2#3{%
\typeout{> \string#1=\@expl@cs@prefix@spec@@N#1macro:}%
#3{default \string##1=\expandafter\detokenize\@gobblethree#2.^^J%
- \@expl@cs@argument@spec@@N#1->\@expl@cs@replacement@spec@@N#1}}
+ \@expl@cs@parameter@spec@@N#1->\@expl@cs@replacement@spec@@N#1}}
\long\def\@show@tokens#1{%
\edef\reserved@a{#1}%
\showtokens\expandafter
@@ -1681,7 +1684,7 @@
\@show@environment@end#1}
\long\def\@show@environment@begin#1{%
\typeout{> \string\begin{\@expl@cs@to@str@@N#1}=environment:}%
- \typeout{\@expl@cs@argument@spec@@N#1->%
+ \typeout{\@expl@cs@parameter@spec@@N#1->%
\@expl@cs@replacement@spec@@N#1.^^J}}
\long\def\@show@normalenv#1{%
\@show@environment@begin#1%
@@ -1692,12 +1695,12 @@
\long\def\@show@environment@end@aux#1#2{%
\@show@tokens{\string\end{\@expl@cs@to@str@@N#2}%
\ifx\relax#1=undefined%
- \else:^^J\@expl@cs@argument@spec@@N#1->%
+ \else:^^J\@expl@cs@parameter@spec@@N#1->%
\@expl@cs@replacement@spec@@N#1%
\fi}}
\def\@show@nonstop#1{%
\typeout{> \string#1=\@expl@cs@prefix@spec@@N#1macro:^^J%
- \@expl@cs@argument@spec@@N#1->\@expl@cs@replacement@spec@@N#1.}}
+ \@expl@cs@parameter@spec@@N#1->\@expl@cs@replacement@spec@@N#1.}}
\def\@show@typeout#1{\typeout{> #1.^^J}}
\def\@ifundefined#1{%
\ifcsname#1\endcsname\@ifundefin@d@i\else\@ifundefin@d@ii\fi{#1}}
@@ -1808,8 +1811,8 @@
\xdef#1{\the\toks@}%
\endgroup}
%%% From File: ltcmd.dtx
-\def\ltcmdversion{v1.2d}
-\def\ltcmddate{2024-03-21}
+\def\ltcmdversion{v1.2e}
+\def\ltcmddate{2024-04-17}
\message{document commands,}
\ExplSyntaxOn
\tl_new:N \l__cmd_arg_spec_tl
@@ -4188,7 +4191,7 @@
{
\exp_args:Ne \str_case_e:nnF
{
- \exp_args:Nf \tl_if_empty:nT { \cs_argument_spec:N #1 }
+ \exp_args:Nf \tl_if_empty:nT { \__kernel_cs_parameter_spec:N #1 }
{ \exp_not:N \exp_not:n { \exp_not:e { \tl_head:N #1 } } }
}
{
@@ -6432,7 +6435,7 @@
\__hook_curr_name_pop:
\ExplSyntaxOff
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% From File: ltcmdhooks.dtx
+%% From File: ltcmdhooks.dtx
%% Copyright (C) 2020-2024
%% Frank Mittelbach, Phelype Oleinik, The LaTeX Project
%%% From File: lthooks.dtx
@@ -6573,7 +6576,7 @@
\__hook_patch_debug:x { ++~command~can~be~patched~without~rescanning }
\int_set:Nn \l__hook_patch_num_args_int
{
- \exp_args:Nf \str_count:n { \cs_argument_spec:N #2 } / 2
+ \exp_args:Nf \str_count:n { \__kernel_cs_parameter_spec:N #2 } / 2
\bool_if:NT #1 { -1 }
}
\int_compare:nNnTF { \l__hook_patch_num_args_int } > { \c_zero_int }
@@ -6713,7 +6716,7 @@
{ ~ \__hook_double_hashes:w }
\cs_new_protected:Npn \__hook_retokenize_patch:Nnn #1 #2 #3
{
- \str_if_eq:eeTF { \cs_argument_spec:N #1 } { }
+ \str_if_eq:eeTF { \__kernel_cs_parameter_spec:N #1 } { }
{ \__hook_patch_expand_redefine:NNnn \c_false_bool #1 {#2} {#3} }
{
\__hook_patch_debug:x { ..~command~can~only~be~patched~by~rescanning }
@@ -7770,7 +7773,8 @@
{ \__template_find_global: }
}
\tl_set:Nn \l__template_key_name_tl {#1}
- \use:c { __template_assign_ \l__template_keytype_tl : }
+ \cs_if_exist_use:cF { __template_assign_ \l__template_keytype_tl : }
+ { \__template_assign_variable: }
}
{ \msg_error:nnn { template } { unknown-attribute } {#1} }
}
@@ -7884,67 +7888,14 @@
}
}
}
-\cs_new_protected:Npn \__template_assign_integer:
+\cs_new_protected:Npn \__template_assign_variable:
{
- \bool_if:NTF \l__template_global_bool
- { \__template_assign_variable:N \int_gset:Nn }
- { \__template_assign_variable:N \int_set:Nn }
- }
-\cs_new_protected:Npn \__template_assign_length:
- {
- \bool_if:NTF \l__template_global_bool
- { \__template_assign_variable:N \dim_gset:Nn }
- { \__template_assign_variable:N \dim_set:Nn }
-}
-\cs_new_protected:Npn \__template_assign_muskip:
- {
- \bool_if:NTF \l__template_global_bool
- { \__template_assign_variable:N \muskip_gset:Nn }
- { \__template_assign_variable:N \muskip_set:Nn }
- }
-\cs_new_protected:Npn \__template_assign_real:
- {
- \bool_if:NTF \l__template_global_bool
- { \__template_assign_variable:N \fp_gset:Nn }
- { \__template_assign_variable:N \fp_set:Nn }
- }
-\cs_new_protected:Npn \__template_assign_skip:
- {
- \bool_if:NTF \l__template_global_bool
- { \__template_assign_variable:N \skip_gset:Nn }
- { \__template_assign_variable:N \skip_set:Nn }
- }
-\cs_new_protected:Npn \__template_assign_tokenlist:
- {
- \bool_if:NTF \l__template_global_bool
- { \__template_assign_tokenlist_aux:NN \tl_gset:NV \tl_gset:Nn }
- { \__template_assign_tokenlist_aux:NN \tl_set:NV \tl_set:Nn }
- }
-\cs_new_protected:Npn \__template_assign_tokenlist_aux:NN #1#2
- {
- \__template_if_key_value:VTF \l__template_value_tl
- {
- \__template_key_to_value:
- \tl_put_right:Ne \l__template_assignments_tl
- {
- #1 \exp_not:V \l__template_var_tl
- { \exp_not:V \l__template_value_tl }
- }
- }
+ \__template_assign_variable:c
{
- \tl_put_right:Ne \l__template_assignments_tl
- {
- #2 \exp_not:V \l__template_var_tl
- { \exp_not:V \l__template_value_tl }
- }
+ \__template_map_var_type: _
+ \bool_if:NT \l__template_global_bool { g } set:Nn
}
}
-\cs_new_protected:Npn \__template_assign_commalist:
- {
- \bool_if:NTF \l__template_global_bool
- { \__template_assign_tokenlist_aux:NN \clist_gset:NV \clist_gset:Nn }
- { \__template_assign_tokenlist_aux:NN \clist_set:NV \clist_set:Nn }
- }
\cs_new_protected:Npn \__template_assign_variable:N #1
{
\__template_if_key_value:VT \l__template_value_tl
@@ -7955,6 +7906,7 @@
{ \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
@@ -8269,11 +8221,11 @@
{ \__template_show_vars:nn {#1} {#2} }
\cs_new_protected:Npn \ShowInstanceValues #1#2
{ \__template_show_values:nn {#1} {#2} }
-\cs_new:Npn \IfInstanceExistTF #1#2
+\cs_new:Npn \IfInstanceExistsTF #1#2
{ \__template_if_instance_exist:nnTF {#1} {#2} }
-\cs_new:Npn \IfInstanceExistT #1#2
+\cs_new:Npn \IfInstanceExistsT #1#2
{ \__template_if_instance_exist:nnT {#1} {#2} }
-\cs_new:Npn \IfInstanceExistF #1#2
+\cs_new:Npn \IfInstanceExistsF #1#2
{ \__template_if_instance_exist:nnF {#1} {#2} }
\cs_new_protected:Npn \KeyValue #1 {#1}
\cs_new_protected:Npn \AssignTemplateKeys { \__template_assignments_pop: }
@@ -8699,7 +8651,7 @@ Type H <return> for immediate help.}%
\cs_set_eq:NN \par \para_end:
\cs_set_eq:NN \@@par \para_end:
\cs_set_eq:NN \endgraf \para_end:
-\everypar{\@nodocument} %% To get an error if text appears before the
+\everypar{\@nodocument} %% To get an error if text appears before the \document
\msg_new:nnnn { hooks } { para-mode }
{
Illegal~mode~ change~ in~ hook~ 'para/#1'.\\
@@ -13499,7 +13451,9 @@ Type H <return> for immediate help.}%
}
}
\prg_generate_conditional_variant:Nnn \property_if_exist:n {e} {TF}
-\cs_new_eq:NN \IfPropertyExistTF \property_if_exist:eTF
+\cs_new_eq:NN \IfPropertyExistsTF \property_if_exist:eTF
+\cs_new:Npn \IfPropertyExistsT #1#2 {\property_if_exist:eTF {#1}{#2}{} }
+\cs_new:Npn \IfPropertyExistsF #1 {\property_if_exist:eTF {#1}{} }
\prg_new_conditional:Npnn \property_if_recorded:n #1 { p , T , F, TF }
% #1 label
{
@@ -13512,7 +13466,9 @@ Type H <return> for immediate help.}%
}
}
\prg_generate_conditional_variant:Nnn \property_if_recorded:n {e} {TF}
-\cs_new_eq:NN \IfLabelExistTF \property_if_recorded:eTF
+\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}{} }
\prg_new_conditional:Npnn \property_if_recorded:nn #1#2 { p , T , F, TF }
% #1 label #2 property
{
@@ -14714,7 +14670,16 @@ Type H <return> for immediate help.}%
\box\@tempboxa
\@end@tempboxa}
\def\@finalstrut#1{%
- \unskip\ifhmode\nobreak\fi\vrule\@width\z@\@height\z@\@depth\dp#1}
+ \unskip
+ \ifhmode \nobreak \vrule
+ \else
+ \ifdim \prevdepth=-\@m\p@
+ \else
+ \vskip-\prevdepth
+ \fi
+ \hrule
+ \fi
+ \@width\z@\@height\z@\@depth\dp#1}
\def\@@line{\hb@xt@\hsize}
\DeclareRobustCommand\leftline[1]{\@@line{#1\hss}}
\DeclareRobustCommand\rightline[1]{\@@line{\hss#1}}
@@ -16148,6 +16113,24 @@ Type H <return> for immediate help.}%
\tl_new:c { g__mark_last-column_top_ #1 _tl }
\tl_new:c { g__mark_last-column_first_ #1 _tl }
\tl_new:c { g__mark_last-column_last_ #1 _tl }
+ \tl_set:cn { g__mark_page_top_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_page_first_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_page_last_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_previous-page_top_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_previous-page_first_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_previous-page_last_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_column_top_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_column_first_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_column_last_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_previous-column_top_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_previous-column_first_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_previous-column_last_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_first-column_top_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_first-column_first_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_first-column_last_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_last-column_top_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_last-column_first_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_last-column_last_ #1 _tl }{ \__mark_id:n{0} }
}
\box_new:N \l__mark_box
\box_new:N \l__mark_ii_box
@@ -16304,14 +16287,16 @@ Type H <return> for immediate help.}%
\group_begin:
\@kernel@before@insertmark
\hook_use:n { insertmark }
- \unrestored@protected@xdef \g__mark_tmp_tl {#2}
+ \unrestored@protected@xdef \g__mark_tmp_tl
+ {
+ \__mark_id:n{ \int_use:N\g__mark_int }
+ #2
+ }
\__mark_debug:n{ \iow_term:x { Marks:~ set~#1~<-~
'\tl_to_str:V \g__mark_tmp_tl' ~ \msg_line_context: } }
\tex_marks:D \use:c { c__mark_class_ #1 _mark }
{
- \tl_if_empty:NTF \g__mark_tmp_tl
- { \exp_not:n { \prg_do_nothing: } }
- { \exp_not:o { \g__mark_tmp_tl } }
+ \exp_not:o { \g__mark_tmp_tl }
}
\group_end:
\if@nobreak\ifvmode\nobreak\fi\fi
@@ -16321,15 +16306,23 @@ Type H <return> for immediate help.}%
{ \tl_to_str:n {#1} }
}
}
+\cs_new_protected:Npn \__mark_id:n #1 { }
+\int_new:N \g__mark_int
\cs_new:Npn \@kernel@before@insertmark {
\cs_set_eq:NN \label \scan_stop:
\cs_set_eq:NN \index \scan_stop:
\cs_set_eq:NN \glossary \scan_stop:
+ \int_compare:nNnTF \g__mark_int < {99999}
+ { \int_gincr:N \g__mark_int }
+ { \int_gzero:N \g__mark_int }
+
}
\hook_new:n {insertmark}
-\cs_new:Npn \mark_use_first:nn #1#2 { \exp_not:v { g__mark_#1_first_#2_tl } }
-\cs_new:Npn \mark_use_last:nn #1#2 { \exp_not:v { g__mark_#1_last_#2_tl } }
-\cs_new:Npn \mark_use_top:nn #1#2 { \exp_not:v { g__mark_#1_top_#2_tl } }
+\cs_new:Npn \mark_use_first:nn #1#2 { \__mark_use:v { g__mark_#1_first_#2_tl } }
+\cs_new:Npn \mark_use_last:nn #1#2 { \__mark_use:v { g__mark_#1_last_#2_tl } }
+\cs_new:Npn \mark_use_top:nn #1#2 { \__mark_use:v { g__mark_#1_top_#2_tl } }
+\cs_new:Npn \__mark_use:n #1 { \exp_not:o { \use_none:nn #1 } }
+\cs_generate_variant:Nn \__mark_use:n { v }
\prg_new_conditional:Npnn \mark_if_eq:nnnn #1#2#3#4 { T , F , TF }
{
\tl_if_eq:ccTF { g__mark_ #1 _#3_ #2 _tl }
@@ -16491,10 +16484,19 @@ Type H <return> for immediate help.}%
{ g__mark_page_last_ ##1 _tl }
\tl_gset_eq:cc { g__mark_page_top_ ##1 _tl }
{ g__mark_first-column_top_ ##1 _tl }
- \tl_gset_eq:cc { g__mark_ page_first_ ##1 _tl }
+
+ \tl_if_eq:ccTF { g__mark_first-column_top_ ##1 _tl }
{ g__mark_first-column_first_ ##1 _tl }
- \tl_gset_eq:cc { g__mark_page_last_ ##1 _tl }
- { g__mark_last-column_last_ ##1 _tl }
+ {
+ \tl_gset_eq:cc { g__mark_page_first_ ##1 _tl }
+ { g__mark_last-column_first_ ##1 _tl }
+ }
+ {
+ \tl_gset_eq:cc { g__mark_page_first_ ##1 _tl }
+ { g__mark_first-column_first_ ##1 _tl }
+ }
+ \tl_gset_eq:cc { g__mark_page_last_ ##1 _tl }
+ { g__mark_last-column_last_ ##1 _tl }
}
}
\__mark_debug:n
@@ -16684,6 +16686,30 @@ Type H <return> for immediate help.}%
\let \IfClassLoadedTF \@ifclassloaded
\let \IfPackageLoadedWithOptionsTF \@ifpackagewith
\let \IfClassLoadedWithOptionsTF \@ifclasswith
+\def\IfPackageLoadedT #1#2{\IfPackageLoadedTF{#1}{#2}{}}
+\def\IfPackageLoadedF #1{\IfPackageLoadedTF{#1}{}}
+\def\IfClassLoadedT #1#2{\IfClassLoadedTF{#1}{#2}{}}
+\def\IfClassLoadedF #1{\IfClassLoadedTF{#1}{}}
+\def\IfPackageAtLeastT#1#2#3{\IfPackageAtLeastTF{#1}{#2}{#3}{}}
+\def\IfPackageAtLeastF #1#2{\IfPackageAtLeastTF{#1}{#2}{}}
+\def\IfClassAtLeastT #1#2#3{\IfClassAtLeastTF{#1}{#2}{#3}{}}
+\def\IfClassAtLeastF #1#2{\IfClassAtLeastTF{#1}{#2}{}}
+\def\IfFileAtLeastT #1#2#3{\IfFileAtLeastTF{#1}{#2}{#3}{}}
+\def\IfFileAtLeastF #1#2{\IfFileAtLeastTF{#1}{#2}{}}
+\def\IfFormatAtLeastT #1#2{\IfFormatAtLeastTF{#1}{#2}{}}
+\def\IfFormatAtLeastF #1{\IfFormatAtLeastTF{#1}{}}
+\def\IfPackageLoadedWithOptionsT #1#2#3{\IfPackageLoadedWithOptionsTF{#1}{#2}{#3}{}}
+\def\IfPackageLoadedWithOptionsF #1#2{\IfPackageLoadedWithOptionsTF{#1}{#2}{}}
+\def\IfClassLoadedWithOptionsT #1#2#3{\IfClassLoadedWithOptionsTF{#1}{#2}{#3}{}}
+\def\IfClassLoadedWithOptionsF #1#2{\IfClassLoadedWithOptionsTF{#1}{#2}{}}
+\def\IfFileLoadedTF#1{%
+ \expandafter\ifx\csname ver@#1\endcsname\relax
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi}
+\def\IfFileLoadedT#1#2{\IfFileLoadedTF{#1}{#2}{}}
+\def\IfFileLoadedF #1{\IfFileLoadedTF{#1}{}}
\def\ProvidesPackage#1{%
\xdef\@gtempa{#1}%
\@expandtwoargs\@expl@str@if@eq@@nnTF
diff --git a/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty b/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty
index a7ea9bfd040..7fcd9a53f73 100644
--- a/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty
+++ b/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty
@@ -293,7 +293,7 @@
}
%%% From File: ltvers.dtx
\edef\latexreleaseversion
- {2024-06-01}
+ {2024-11-01}
\newif\if@includeinrelease
\@includeinreleasefalse
\def\IncludeInRelease#1{%
@@ -571,25 +571,6 @@ of this package available from CTAN}
"luatex",
tex.extraprimitives("core","omega", "aleph", "luatex")
)
- local i
- local t = { }
- for _,i in pairs(tex.extraprimitives("luatex")) do
- if not string.match(i,"^U") then
- if not string.match(i, "^luatex") then
- table.insert(t,i)
- end
- else
- if string.match(i,"^Uchar$") then
- table.insert(t,i)
- end
- end
- end
- for _,i in pairs(t) do
- tex.print(
- "\noexpand\\let\noexpand\\" .. i
- .. "\noexpand\\undefined"
- )
- end
}
\EndIncludeInRelease
\fi
@@ -1363,7 +1344,10 @@ of this package available from CTAN}
\cs_gset_eq:NN \@expl@cs@to@str@@N \cs_to_str:N
\cs_gset_eq:NN \@expl@str@if@eq@@nnTF \str_if_eq:nnTF
\cs_gset_eq:NN \@expl@cs@prefix@spec@@N \cs_prefix_spec:N
-\cs_gset_eq:NN \@expl@cs@argument@spec@@N \cs_argument_spec:N
+\cs_if_exist:NTF \cs_parameter_spec:N
+ { \cs_gset_eq:NN \@expl@cs@parameter@spec@@N \cs_parameter_spec:N }
+ { \cs_gset_eq:NN \@expl@cs@parameter@spec@@N \cs_argument_spec:N }
+\cs_gset_eq:NN \__kernel_cs_parameter_spec:N \@expl@cs@parameter@spec@@N
\cs_gset_eq:NN \@expl@cs@replacement@spec@@N \cs_replacement_spec:N
\cs_gset_eq:NN \@expl@str@map@function@@NN \str_map_function:NN
\cs_gset_eq:NN \@expl@char@generate@@nn \char_generate:nn
@@ -1374,7 +1358,7 @@ of this package available from CTAN}
\let \@expl@cs@to@str@@N \@undefined
\let \@expl@str@if@eq@@nnTF \@undefined
\let \@expl@cs@prefix@spec@@N \@undefined
-\let \@expl@cs@argument@spec@@N \@undefined
+\let \@expl@cs@parameter@spec@@N \@undefined
\let \@expl@cs@replacement@spec@@N \@undefined
\let \@expl@str@map@function@@NN \@undefined
\EndIncludeInRelease
@@ -1797,7 +1781,7 @@ of this package available from CTAN}
\long\def\@show@newcommand@aux#1#2#3{%
\typeout{> \string#1=\@expl@cs@prefix@spec@@N#1macro:}%
#3{default \string##1=\expandafter\detokenize\@gobblethree#2.^^J%
- \@expl@cs@argument@spec@@N#1->\@expl@cs@replacement@spec@@N#1}}
+ \@expl@cs@parameter@spec@@N#1->\@expl@cs@replacement@spec@@N#1}}
\long\def\@show@tokens#1{%
\edef\reserved@a{#1}%
\showtokens\expandafter
@@ -1845,7 +1829,7 @@ of this package available from CTAN}
\@show@environment@end#1}
\long\def\@show@environment@begin#1{%
\typeout{> \string\begin{\@expl@cs@to@str@@N#1}=environment:}%
- \typeout{\@expl@cs@argument@spec@@N#1->%
+ \typeout{\@expl@cs@parameter@spec@@N#1->%
\@expl@cs@replacement@spec@@N#1.^^J}}
\long\def\@show@normalenv#1{%
\@show@environment@begin#1%
@@ -1856,12 +1840,12 @@ of this package available from CTAN}
\long\def\@show@environment@end@aux#1#2{%
\@show@tokens{\string\end{\@expl@cs@to@str@@N#2}%
\ifx\relax#1=undefined%
- \else:^^J\@expl@cs@argument@spec@@N#1->%
+ \else:^^J\@expl@cs@parameter@spec@@N#1->%
\@expl@cs@replacement@spec@@N#1%
\fi}}
\def\@show@nonstop#1{%
\typeout{> \string#1=\@expl@cs@prefix@spec@@N#1macro:^^J%
- \@expl@cs@argument@spec@@N#1->\@expl@cs@replacement@spec@@N#1.}}
+ \@expl@cs@parameter@spec@@N#1->\@expl@cs@replacement@spec@@N#1.}}
\def\@show@typeout#1{\typeout{> #1.^^J}}
\EndIncludeInRelease
\IncludeInRelease{0000-00-00}{\ShowEnvironment}
@@ -1998,8 +1982,8 @@ of this package available from CTAN}
\EndIncludeInRelease
%%% From File: ltcmd.dtx
-\def\ltcmdversion{v1.2d}
-\def\ltcmddate{2024-03-21}
+\def\ltcmdversion{v1.2e}
+\def\ltcmddate{2024-04-17}
\edef\@latexrelease@catcode@null{\the\catcode`\^^@ }
\catcode`\^^@=12
\ExplSyntaxOn
@@ -4452,7 +4436,7 @@ of this package available from CTAN}
{
\exp_args:Ne \str_case_e:nnF
{
- \exp_args:Nf \tl_if_empty:nT { \cs_argument_spec:N #1 }
+ \exp_args:Nf \tl_if_empty:nT { \__kernel_cs_parameter_spec:N #1 }
{ \exp_not:N \exp_not:n { \exp_not:e { \tl_head:N #1 } } }
}
{
@@ -7863,7 +7847,7 @@ of this package available from CTAN}
}
\ExplSyntaxOff
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%% From File: ltcmdhooks.dtx
+%% From File: ltcmdhooks.dtx
%% Copyright (C) 2020-2024
%% Frank Mittelbach, Phelype Oleinik, The LaTeX Project
%%% From File: lthooks.dtx
@@ -8025,7 +8009,7 @@ of this package available from CTAN}
\__hook_patch_debug:x { ++~command~can~be~patched~without~rescanning }
\int_set:Nn \l__hook_patch_num_args_int
{
- \exp_args:Nf \str_count:n { \cs_argument_spec:N #2 } / 2
+ \exp_args:Nf \str_count:n { \__kernel_cs_parameter_spec:N #2 } / 2
\bool_if:NT #1 { -1 }
}
\int_compare:nNnTF { \l__hook_patch_num_args_int } > { \c_zero_int }
@@ -8100,7 +8084,7 @@ of this package available from CTAN}
\__hook_patch_debug:x { ++~command~can~be~patched~without~rescanning }
\int_set:Nn \l__hook_patch_num_args_int
{
- \exp_args:Nf \str_count:n { \cs_argument_spec:N #2 } / 2
+ \exp_args:Nf \str_count:n { \__kernel_cs_parameter_spec:N #2 } / 2
\bool_if:NT #1 { -1 }
}
\int_compare:nNnTF { \l__hook_patch_num_args_int } > { \c_zero_int }
@@ -8233,7 +8217,7 @@ of this package available from CTAN}
{ ~ \__hook_double_hashes:w }
\cs_new_protected:Npn \__hook_retokenize_patch:Nnn #1 #2 #3
{
- \str_if_eq:eeTF { \cs_argument_spec:N #1 } { }
+ \str_if_eq:eeTF { \__kernel_cs_parameter_spec:N #1 } { }
{ \__hook_patch_expand_redefine:NNnn \c_false_bool #1 {#2} {#3} }
{
\__hook_patch_debug:x { ..~command~can~only~be~patched~by~rescanning }
@@ -9388,7 +9372,8 @@ of this package available from CTAN}
{ \__template_find_global: }
}
\tl_set:Nn \l__template_key_name_tl {#1}
- \use:c { __template_assign_ \l__template_keytype_tl : }
+ \cs_if_exist_use:cF { __template_assign_ \l__template_keytype_tl : }
+ { \__template_assign_variable: }
}
{ \msg_error:nnn { template } { unknown-attribute } {#1} }
}
@@ -9502,67 +9487,14 @@ of this package available from CTAN}
}
}
}
-\cs_new_protected:Npn \__template_assign_integer:
- {
- \bool_if:NTF \l__template_global_bool
- { \__template_assign_variable:N \int_gset:Nn }
- { \__template_assign_variable:N \int_set:Nn }
- }
-\cs_new_protected:Npn \__template_assign_length:
- {
- \bool_if:NTF \l__template_global_bool
- { \__template_assign_variable:N \dim_gset:Nn }
- { \__template_assign_variable:N \dim_set:Nn }
-}
-\cs_new_protected:Npn \__template_assign_muskip:
- {
- \bool_if:NTF \l__template_global_bool
- { \__template_assign_variable:N \muskip_gset:Nn }
- { \__template_assign_variable:N \muskip_set:Nn }
- }
-\cs_new_protected:Npn \__template_assign_real:
- {
- \bool_if:NTF \l__template_global_bool
- { \__template_assign_variable:N \fp_gset:Nn }
- { \__template_assign_variable:N \fp_set:Nn }
- }
-\cs_new_protected:Npn \__template_assign_skip:
- {
- \bool_if:NTF \l__template_global_bool
- { \__template_assign_variable:N \skip_gset:Nn }
- { \__template_assign_variable:N \skip_set:Nn }
- }
-\cs_new_protected:Npn \__template_assign_tokenlist:
+\cs_new_protected:Npn \__template_assign_variable:
{
- \bool_if:NTF \l__template_global_bool
- { \__template_assign_tokenlist_aux:NN \tl_gset:NV \tl_gset:Nn }
- { \__template_assign_tokenlist_aux:NN \tl_set:NV \tl_set:Nn }
- }
-\cs_new_protected:Npn \__template_assign_tokenlist_aux:NN #1#2
- {
- \__template_if_key_value:VTF \l__template_value_tl
+ \__template_assign_variable:c
{
- \__template_key_to_value:
- \tl_put_right:Ne \l__template_assignments_tl
- {
- #1 \exp_not:V \l__template_var_tl
- { \exp_not:V \l__template_value_tl }
- }
- }
- {
- \tl_put_right:Ne \l__template_assignments_tl
- {
- #2 \exp_not:V \l__template_var_tl
- { \exp_not:V \l__template_value_tl }
- }
+ \__template_map_var_type: _
+ \bool_if:NT \l__template_global_bool { g } set:Nn
}
}
-\cs_new_protected:Npn \__template_assign_commalist:
- {
- \bool_if:NTF \l__template_global_bool
- { \__template_assign_tokenlist_aux:NN \clist_gset:NV \clist_gset:Nn }
- { \__template_assign_tokenlist_aux:NN \clist_set:NV \clist_set:Nn }
- }
\cs_new_protected:Npn \__template_assign_variable:N #1
{
\__template_if_key_value:VT \l__template_value_tl
@@ -9573,6 +9505,7 @@ of this package available from CTAN}
{ \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
@@ -9887,11 +9820,11 @@ of this package available from CTAN}
{ \__template_show_vars:nn {#1} {#2} }
\cs_new_protected:Npn \ShowInstanceValues #1#2
{ \__template_show_values:nn {#1} {#2} }
-\cs_new:Npn \IfInstanceExistTF #1#2
+\cs_new:Npn \IfInstanceExistsTF #1#2
{ \__template_if_instance_exist:nnTF {#1} {#2} }
-\cs_new:Npn \IfInstanceExistT #1#2
+\cs_new:Npn \IfInstanceExistsT #1#2
{ \__template_if_instance_exist:nnT {#1} {#2} }
-\cs_new:Npn \IfInstanceExistF #1#2
+\cs_new:Npn \IfInstanceExistsF #1#2
{ \__template_if_instance_exist:nnF {#1} {#2} }
\cs_new_protected:Npn \KeyValue #1 {#1}
\cs_new_protected:Npn \AssignTemplateKeys { \__template_assignments_pop: }
@@ -10086,7 +10019,7 @@ of this package available from CTAN}
\cs_set_eq:NN \par \para_end:
\cs_set_eq:NN \@@par \para_end:
\cs_set_eq:NN \endgraf \para_end:
-\everypar{\@nodocument} %% To get an error if text appears before the
+\everypar{\@nodocument} %% To get an error if text appears before the \document
\msg_new:nnnn { hooks } { para-mode }
{
Illegal~mode~ change~ in~ hook~ 'para/#1'.\\
@@ -14859,7 +14792,9 @@ of this package available from CTAN}
}
}
\prg_generate_conditional_variant:Nnn \property_if_exist:n {e} {TF}
-\cs_new_eq:NN \IfPropertyExistTF \property_if_exist:eTF
+\cs_new_eq:NN \IfPropertyExistsTF \property_if_exist:eTF
+\cs_new:Npn \IfPropertyExistsT #1#2 {\property_if_exist:eTF {#1}{#2}{} }
+\cs_new:Npn \IfPropertyExistsF #1 {\property_if_exist:eTF {#1}{} }
\prg_new_conditional:Npnn \property_if_recorded:n #1 { p , T , F, TF }
% #1 label
{
@@ -14872,7 +14807,9 @@ of this package available from CTAN}
}
}
\prg_generate_conditional_variant:Nnn \property_if_recorded:n {e} {TF}
-\cs_new_eq:NN \IfLabelExistTF \property_if_recorded:eTF
+\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}{} }
\prg_new_conditional:Npnn \property_if_recorded:nn #1#2 { p , T , F, TF }
% #1 label #2 property
{
@@ -14961,8 +14898,8 @@ of this package available from CTAN}
\let \RefProperty \@undefined
\let \RefUndefinedWarn \@undefined
-\let \IfPropertyExistTF \@undefined
-\let \IfLabelExistTF \@undefined
+\let \IfPropertyExistsTF \@undefined
+\let \IfLabelExistsTF \@undefined
\let \IfPropertyRecordedTF \@undefined
\let\new@label@record \@undefined
@@ -16078,6 +16015,27 @@ of this package available from CTAN}
\@ifnextchar[{\@rsbox{#1}}{\@irsbox{#1}[]}}
\expandafter\let\csname raisebox \endcsname\@undefined
\EndIncludeInRelease
+\IncludeInRelease{2024/06/01}%
+ {\@finalstrut}{final strut correction}%
+\def\@finalstrut#1{%
+ \unskip
+ \ifhmode \nobreak \vrule
+ \else
+ \ifdim \prevdepth=-\@m\p@
+ \else
+ \vskip-\prevdepth
+ \fi
+ \hrule
+ \fi
+ \@width\z@\@height\z@\@depth\dp#1}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\@finalstrut}{final strut correction}%
+\def\@finalstrut#1{%
+ \unskip\ifhmode\nobreak\fi
+ \vrule\@width\z@\@height\z@\@depth\dp#1}
+
+\EndIncludeInRelease
%%% From File: lttab.dtx
\IncludeInRelease{2020/10/01}%
{\@itabcr}{Tabbing calc syntax}%
@@ -17264,6 +17222,24 @@ of this package available from CTAN}
\tl_new:c { g__mark_last-column_top_ #1 _tl }
\tl_new:c { g__mark_last-column_first_ #1 _tl }
\tl_new:c { g__mark_last-column_last_ #1 _tl }
+ \tl_set:cn { g__mark_page_top_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_page_first_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_page_last_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_previous-page_top_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_previous-page_first_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_previous-page_last_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_column_top_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_column_first_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_column_last_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_previous-column_top_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_previous-column_first_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_previous-column_last_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_first-column_top_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_first-column_first_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_first-column_last_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_last-column_top_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_last-column_first_ #1 _tl }{ \__mark_id:n{0} }
+ \tl_set:cn { g__mark_last-column_last_ #1 _tl }{ \__mark_id:n{0} }
}
\box_new:N \l__mark_box
\box_new:N \l__mark_ii_box
@@ -17408,12 +17384,14 @@ of this package available from CTAN}
\group_begin:
\@kernel@before@insertmark
\hook_use:n { insertmark }
- \unrestored@protected@xdef \g__mark_tmp_tl {#2}
+ \unrestored@protected@xdef \g__mark_tmp_tl
+ {
+ \__mark_id:n{ \int_use:N\g__mark_int }
+ #2
+ }
\tex_marks:D \use:c { c__mark_class_ #1 _mark }
{
- \tl_if_empty:NTF \g__mark_tmp_tl
- { \exp_not:n { \prg_do_nothing: } }
- { \exp_not:o { \g__mark_tmp_tl } }
+ \exp_not:o { \g__mark_tmp_tl }
}
\group_end:
\if@nobreak\ifvmode\nobreak\fi\fi
@@ -17423,15 +17401,23 @@ of this package available from CTAN}
{ \tl_to_str:n {#1} }
}
}
+\cs_new_protected:Npn \__mark_id:n #1 { }
+\int_new:N \g__mark_int
\cs_new:Npn \@kernel@before@insertmark {
\cs_set_eq:NN \label \scan_stop:
\cs_set_eq:NN \index \scan_stop:
\cs_set_eq:NN \glossary \scan_stop:
+ \int_compare:nNnTF \g__mark_int < {99999}
+ { \int_gincr:N \g__mark_int }
+ { \int_gzero:N \g__mark_int }
+
}
\hook_new:n {insertmark}
-\cs_new:Npn \mark_use_first:nn #1#2 { \exp_not:v { g__mark_#1_first_#2_tl } }
-\cs_new:Npn \mark_use_last:nn #1#2 { \exp_not:v { g__mark_#1_last_#2_tl } }
-\cs_new:Npn \mark_use_top:nn #1#2 { \exp_not:v { g__mark_#1_top_#2_tl } }
+\cs_new:Npn \mark_use_first:nn #1#2 { \__mark_use:v { g__mark_#1_first_#2_tl } }
+\cs_new:Npn \mark_use_last:nn #1#2 { \__mark_use:v { g__mark_#1_last_#2_tl } }
+\cs_new:Npn \mark_use_top:nn #1#2 { \__mark_use:v { g__mark_#1_top_#2_tl } }
+\cs_new:Npn \__mark_use:n #1 { \exp_not:o { \use_none:nn #1 } }
+\cs_generate_variant:Nn \__mark_use:n { v }
\prg_new_conditional:Npnn \mark_if_eq:nnnn #1#2#3#4 { T , F , TF }
{
\tl_if_eq:ccTF { g__mark_ #1 _#3_ #2 _tl }
@@ -17546,10 +17532,19 @@ of this package available from CTAN}
{ g__mark_page_last_ ##1 _tl }
\tl_gset_eq:cc { g__mark_page_top_ ##1 _tl }
{ g__mark_first-column_top_ ##1 _tl }
- \tl_gset_eq:cc { g__mark_ page_first_ ##1 _tl }
+
+ \tl_if_eq:ccTF { g__mark_first-column_top_ ##1 _tl }
{ g__mark_first-column_first_ ##1 _tl }
- \tl_gset_eq:cc { g__mark_page_last_ ##1 _tl }
- { g__mark_last-column_last_ ##1 _tl }
+ {
+ \tl_gset_eq:cc { g__mark_page_first_ ##1 _tl }
+ { g__mark_last-column_first_ ##1 _tl }
+ }
+ {
+ \tl_gset_eq:cc { g__mark_page_first_ ##1 _tl }
+ { g__mark_first-column_first_ ##1 _tl }
+ }
+ \tl_gset_eq:cc { g__mark_page_last_ ##1 _tl }
+ { g__mark_last-column_last_ ##1 _tl }
}
}
}
@@ -17812,15 +17807,15 @@ of this package available from CTAN}
}%
\reserved@a}
\EndIncludeInRelease
-\IncludeInRelease{2021/11/15}%
- {\IfPackageLoadedtTF}{Test package loading}%
+\IncludeInRelease{2024/06/01}%
+ {\IfPackageLoadedTF}{Test package loading}%
\let \IfPackageLoadedTF \@ifpackageloaded
\let \IfClassLoadedTF \@ifclassloaded
\let \IfPackageLoadedWithOptionsTF \@ifpackagewith
\let \IfClassLoadedWithOptionsTF \@ifclasswith
\EndIncludeInRelease
\IncludeInRelease{0000/00/00}%
- {\IfPackageLoadedtTF}{Test package loading}%
+ {\IfPackageLoadedTF}{Test package loading}%
\let \IfPackageLoadedTF \@ifpackageloaded
\let \IfClassLoadedTF \@ifclassloaded
@@ -17828,6 +17823,63 @@ of this package available from CTAN}
\let \IfClassLoadedWithOptionsTF \@ifclasswith
\EndIncludeInRelease
+\IncludeInRelease{2024/06/01}%
+ {\IfPackageLoadedT}{More conditionals}%
+\def\IfPackageLoadedT #1#2{\IfPackageLoadedTF{#1}{#2}{}}
+\def\IfPackageLoadedF #1{\IfPackageLoadedTF{#1}{}}
+\def\IfClassLoadedT #1#2{\IfClassLoadedTF{#1}{#2}{}}
+\def\IfClassLoadedF #1{\IfClassLoadedTF{#1}{}}
+\def\IfPackageAtLeastT#1#2#3{\IfPackageAtLeastTF{#1}{#2}{#3}{}}
+\def\IfPackageAtLeastF #1#2{\IfPackageAtLeastTF{#1}{#2}{}}
+\def\IfClassAtLeastT #1#2#3{\IfClassAtLeastTF{#1}{#2}{#3}{}}
+\def\IfClassAtLeastF #1#2{\IfClassAtLeastTF{#1}{#2}{}}
+\def\IfFileAtLeastT #1#2#3{\IfFileAtLeastTF{#1}{#2}{#3}{}}
+\def\IfFileAtLeastF #1#2{\IfFileAtLeastTF{#1}{#2}{}}
+\def\IfFormatAtLeastT #1#2{\IfFormatAtLeastTF{#1}{#2}{}}
+\def\IfFormatAtLeastF #1{\IfFormatAtLeastTF{#1}{}}
+\def\IfPackageLoadedWithOptionsT #1#2#3{\IfPackageLoadedWithOptionsTF{#1}{#2}{#3}{}}
+\def\IfPackageLoadedWithOptionsF #1#2{\IfPackageLoadedWithOptionsTF{#1}{#2}{}}
+\def\IfClassLoadedWithOptionsT #1#2#3{\IfClassLoadedWithOptionsTF{#1}{#2}{#3}{}}
+\def\IfClassLoadedWithOptionsF #1#2{\IfClassLoadedWithOptionsTF{#1}{#2}{}}
+\def\IfFileLoadedTF#1{%
+ \expandafter\ifx\csname ver@#1\endcsname\relax
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi}
+\def\IfFileLoadedT#1#2{\IfFileLoadedTF{#1}{#2}{}}
+\def\IfFileLoadedF #1{\IfFileLoadedTF{#1}{}}
+\EndIncludeInRelease
+\IncludeInRelease{0000/00/00}%
+ {\IfPackageLoadedT}{More conditionals}%
+
+\def\IfPackageLoadedT #1#2{\IfPackageLoadedTF{#1}{#2}{}}
+\def\IfPackageLoadedF #1{\IfPackageLoadedTF{#1}{}}
+\def\IfClassLoadedT #1#2{\IfClassLoadedTF{#1}{#2}{}}
+\def\IfClassLoadedF #1{\IfClassLoadedTF{#1}{}}
+\def\IfPackageAtLeastT#1#2#3{\IfPackageAtLeastTF{#1}{#2}{#3}{}}
+\def\IfPackageAtLeastF #1#2{\IfPackageAtLeastTF{#1}{#2}{}}
+\def\IfClassAtLeastT #1#2#3{\IfClassAtLeastTF{#1}{#2}{#3}{}}
+\def\IfClassAtLeastF #1#2{\IfClassAtLeastTF{#1}{#2}{}}
+\def\IfFileAtLeastT #1#2#3{\IfFileAtLeastTF{#1}{#2}{#3}{}}
+\def\IfFileAtLeastF #1#2{\IfFileAtLeastTF{#1}{#2}{}}
+\def\IfFormatAtLeastT #1#2{\IfFormatAtLeastTF{#1}{#2}{}}
+\def\IfFormatAtLeastF #1{\IfFormatAtLeastTF{#1}{}}
+\def\IfPackageLoadedWithOptionsT #1#2#3{\IfPackageLoadedWithOptionsTF{#1}{#2}{#3}{}}
+\def\IfPackageLoadedWithOptionsF #1#2{\IfPackageLoadedWithOptionsTF{#1}{#2}{}}
+\def\IfClassLoadedWithOptionsT #1#2#3{\IfClassLoadedWithOptionsTF{#1}{#2}{#3}{}}
+\def\IfClassLoadedWithOptionsF #1#2{\IfClassLoadedWithOptionsTF{#1}{#2}{}}
+
+\def\IfFileLoadedTF#1{%
+ \expandafter\ifx\csname ver@#1\endcsname\relax
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi}
+\def\IfFileLoadedT#1#2{\IfFileLoadedTF{#1}{#2}{}}
+\def\IfFileLoadedF #1{\IfFileLoadedTF{#1}{}}
+
+\EndIncludeInRelease
\IncludeInRelease{2020/10/01}%
{\ProvidesPackage}{Check name with \strcmp}%
\def\ProvidesPackage#1{%
diff --git a/Master/texmf-dist/tex/latex-dev/base/shortvrb.sty b/Master/texmf-dist/tex/latex-dev/base/shortvrb.sty
index 43c0cdf1013..c0266dd6930 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/02/08 v3.0o
+ [2024/04/26 v3.0p
Standard LaTeX documentation package V3 (FMi)]
%%
%% Package `doc' to use with LaTeX 2e
diff --git a/Master/texmf-dist/tex/latex-dev/base/textcomp.sty b/Master/texmf-dist/tex/latex-dev/base/textcomp.sty
index 540274252f6..df0d53634de 100644
--- a/Master/texmf-dist/tex/latex-dev/base/textcomp.sty
+++ b/Master/texmf-dist/tex/latex-dev/base/textcomp.sty
@@ -42,14 +42,12 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%%% From File: lttextcomp.dtx
-\providecommand\DeclareRelease[3]{}
-\providecommand\DeclareCurrentRelease[2]{}
-
+\DeclareRelease{}{1997-12-01}{textcomp-2018-08-11.sty}
\DeclareRelease{}{2018-08-11}{textcomp-2018-08-11.sty}
\DeclareCurrentRelease{}{2020-02-02}
\ProvidesPackage{textcomp}
- [2020/02/02 v2.0n Standard LaTeX package]
+ [2024/04/24 v2.1b Standard LaTeX package]
\NeedsTeXFormat{LaTeX2e}[2020/02/02]
\DeclareOption{full}{\DeclareEncodingSubset{TS1}{?}{0}}
\DeclareOption{almostfull}{\DeclareEncodingSubset{TS1}{?}{1}}
@@ -74,7 +72,6 @@
{#1{#2}}{#3}%
#5}%
}
-\ExecuteOptions{info}
\ProcessOptions\relax
\InputIfFileExists{textcomp.cfg}
{\PackageInfo{textcomp}{Local configuration file used}}{}