diff options
author | Karl Berry <karl@freefriends.org> | 2023-09-13 20:40:56 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-09-13 20:40:56 +0000 |
commit | 99bdd2e42bf8c8ec861eb8b6a7708f63396c5d8e (patch) | |
tree | 31f555c33bcc0153b169a88c625085b6c39389ee /Master/texmf-dist/tex/latex-dev | |
parent | 8f22ac5379816e4b6bdd9e5c9dc981b4223187b4 (diff) |
latex-dev (13sep23)
git-svn-id: svn://tug.org/texlive/trunk@68270 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex-dev')
9 files changed, 1115 insertions, 285 deletions
diff --git a/Master/texmf-dist/tex/latex-dev/base/atveryend-ltx.sty b/Master/texmf-dist/tex/latex-dev/base/atveryend-ltx.sty index 2f63091fb5d..35b348e5456 100644 --- a/Master/texmf-dist/tex/latex-dev/base/atveryend-ltx.sty +++ b/Master/texmf-dist/tex/latex-dev/base/atveryend-ltx.sty @@ -43,7 +43,7 @@ %% extension .ins) which are part of the distribution. %%% From File: ltfilehook.dtx \providecommand\ltfilehookversion{v1.0o} -\providecommand\ltfilehookdate{2023/04/02} +\providecommand\ltfilehookdate{2023/07/10} \ProvidesPackage{atveryend-ltx} [2020/08/19 v1.0a Emulation of the original atveryend package^^Jwith kernel methods] diff --git a/Master/texmf-dist/tex/latex-dev/base/latex.ltx b/Master/texmf-dist/tex/latex-dev/base/latex.ltx index f976b8d04f1..54b3e969575 100644 --- a/Master/texmf-dist/tex/latex-dev/base/latex.ltx +++ b/Master/texmf-dist/tex/latex-dev/base/latex.ltx @@ -13,6 +13,7 @@ %% ltcmd.dtx (with options: `2ekernel') %% lthooks.dtx (with options: `2ekernel') %% ltcmdhooks.dtx (with options: `2ekernel') +%% ltsockets.dtx (with options: `2ekernel') %% ltalloc.dtx (with options: `2ekernel') %% ltcntrl.dtx (with options: `2ekernel') %% lterror.dtx (with options: `2ekernel') @@ -34,6 +35,7 @@ %% lttextcomp.dtx (with options: `2ekernel') %% ltpageno.dtx (with options: `2ekernel') %% ltxref.dtx (with options: `2ekernel') +%% ltproperties.dtx (with options: `2ekernel') %% ltmiscen.dtx (with options: `2ekernel') %% ltmath.dtx (with options: `2ekernel') %% ltlists.dtx (with options: `2ekernel') @@ -706,7 +708,7 @@ \def\fmtname{LaTeX2e} \edef\fmtversion {2023-11-01} -\def\patch@level{-0} +\def\patch@level{-1} \edef\development@branch@name{develop \the\year-\the\month-\the\day} \iffalse \def\reserved@a#1/#2/#3\@nil{% @@ -1803,8 +1805,8 @@ \xdef#1{\the\toks@}% \endgroup} %%% From File: ltcmd.dtx -\def\ltcmdversion{v1.1e} -\def\ltcmddate{2023-05-26} +\def\ltcmdversion{v1.2a} +\def\ltcmddate{2023-08-19} \message{document commands,} \ExplSyntaxOn \tl_new:N \l__cmd_arg_spec_tl @@ -4005,66 +4007,6 @@ \exp_after:wN #1 \exp_after:wN #2 \exp_after:wN { \if_false: } \fi: } -\cs_new_protected:Npn \__cmd_get_arg_spec_error:N #1 - { - \bool_set_false:N \l__cmd_environment_bool - \tl_set:Nn \l__cmd_fn_tl {#1} - \__cmd_get_arg_spec_error_aux:n { \cs_if_exist:NTF #1 } - } -\cs_new_protected:Npn \__cmd_get_arg_spec_error:n #1 - { - \bool_set_true:N \l__cmd_environment_bool - \str_set:Nx \l__cmd_environment_str {#1} - \__cmd_get_arg_spec_error_aux:n - { \cs_if_exist:cTF { \l__cmd_environment_str } } - } -\cs_new_protected:Npn \__cmd_get_arg_spec_error_aux:n #1 - { - #1 - { - \msg_error:nnx { cmd } { non-xparse } - { \__cmd_environment_or_command: } - } - { - \msg_error:nnx { cmd } { unknown } - { \__cmd_environment_or_command: } - } - } -\cs_new_protected:Npn \__cmd_get_arg_spec:NTF #1#2#3 - { - \__kernel_cmd_if_xparse:NTF #1 - { - \tl_set:Nx \ArgumentSpecification { \tl_item:Nn #1 { 2 } } - #2 - } - {#3} - } -\tl_new:N \ArgumentSpecification -\cs_new_protected:Npn \__cmd_get_arg_spec:N #1 - { - \__cmd_get_arg_spec:NTF #1 { } - { \__cmd_get_arg_spec_error:N #1 } - } -\cs_new_protected:Npn \__cmd_get_arg_spec:n #1 - { - \exp_args:Nc \__cmd_get_arg_spec:NTF - { environment~ \tl_to_str:n {#1} } - { } - { \__cmd_get_arg_spec_error:n {#1} } - } -\cs_new_protected:Npn \__cmd_show_arg_spec:N #1 - { - \__cmd_get_arg_spec:NTF #1 - { \tl_show:N \ArgumentSpecification } - { \__cmd_get_arg_spec_error:N #1 } - } -\cs_new_protected:Npn \__cmd_show_arg_spec:n #1 - { - \exp_args:Nc \__cmd_get_arg_spec:NTF - { environment~ \tl_to_str:n {#1} } - { \tl_show:N \ArgumentSpecification } - { \__cmd_get_arg_spec_error:n {#1} } - } \cs_new_protected:Npn \__cmd_check_definable:nNT #1 { \tl_trim_spaces_apply:nN {#1} \__cmd_check_definable_aux:nN } \group_begin: @@ -4396,12 +4338,6 @@ LaTeX~did~not~find~this~argument~and~will~insert~a~default~value~ for~further~processing. } -\msg_new:nnnn { cmd } { non-xparse } - { \str_uppercase:n #1~not~defined~using~xparse. } - { - You~have~asked~for~the~argument~specification~for~the~#1,~ - but~this~was~not~defined~using~xparse. - } \msg_new:nnnn { cmd } { arg-split } { Too~many~'#1'~separators~in~argument. } { @@ -4409,12 +4345,6 @@ at~each~occurrence~of~the~separator~'#1'~into~#2~parts.~ Too~many~separators~were~found. } -\msg_new:nnnn { cmd } { unknown } - { Unknown~document~#1. } - { - You~have~asked~for~the~argument~specification~for~the~#1,~ - but~it~is~not~defined. - } \msg_new:nnnn { cmd } { verbatim-nl } { Verbatim-like~#1~ended~by~end~of~line. } { @@ -4605,23 +4535,11 @@ \cs_new_eq:NN \SplitList \__cmd_split_list:nn \cs_new_eq:NN \TrimSpaces \__cmd_trim_spaces:n \cs_new_eq:NN \ProcessList \tl_map_function:nN -\cs_new_protected:Npn \GetDocumentCommandArgSpec #1 - { - \__cmd_check_definable:nNT {#1} \GetDocumentCommandArgSpec - { \__cmd_get_arg_spec:N #1 } - } -\cs_new_eq:NN \GetDocumentEnvironmentArgSpec \__cmd_get_arg_spec:n -\cs_new_protected:Npn \ShowDocumentCommandArgSpec #1 - { - \__cmd_check_definable:nNT {#1} \ShowDocumentCommandArgSpec - { \__cmd_show_arg_spec:N #1 } - } -\cs_new_eq:NN \ShowDocumentEnvironmentArgSpec \__cmd_show_arg_spec:n \ExplSyntaxOff %%% From File: lthooks.dtx -\def\lthooksversion{v1.1e} -\def\lthooksdate{2023/06/06} +\def\lthooksversion{v1.1f} +\def\lthooksdate{2023/08/11} \ExplSyntaxOn \bool_new:N \g__hook_debug_bool \cs_new_eq:NN \__hook_debug:n \use_none:n @@ -6391,8 +6309,8 @@ %% Copyright (C) 2020-2023 %% Frank Mittelbach, Phelype Oleinik, The LaTeX Project %%% From File: ltcmdhooks.dtx -\def\ltcmdhooksversion{v1.0h} -\def\ltcmdhooksdate{2023/05/21} +\def\ltcmdhooksversion{v1.0i} +\def\ltcmdhooksdate{2023/06/16} \ExplSyntaxOn \tl_new:N \g_hook_patch_action_list_tl \int_new:N \l__hook_patch_num_args_int @@ -6832,6 +6750,181 @@ } \ExplSyntaxOff %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% From File: ltsockets.dtx +\def\ltsocketsversion{0.9a} +\def\ltsocketsdate{2023-08-21} +\ExplSyntaxOn +\bool_new:N \g__socket_debug_bool +\cs_new_eq:NN \__socket_debug:n \use_none:n +\cs_new_eq:NN \__socket_debug_term:n \use_none:n +\cs_new_protected:Npn \socket_debug_on: + { + \bool_gset_true:N \g__socket_debug_bool + \__socket_debug_gset: + } +\cs_new_protected:Npn \socket_debug_off: + { + \bool_gset_false:N \g__socket_debug_bool + \__socket_debug_gset: + } +\cs_new_protected:Npn \__socket_debug_gset: + { + \cs_gset_protected:Npx \__socket_debug:n ##1 + { \bool_if:NT \g__socket_debug_bool {##1} } + \cs_gset_protected:Npx \__socket_debug_term:n ##1 + { \bool_if:NT \g__socket_debug_bool + { \iow_term:x { ^^J [Sockets]~ ==>~ ##1} } } + } +\cs_new_protected:Npn \socket_new:nn #1 #2 { + \str_if_exist:cTF { l__socket_#1_plug_str } + { + \msg_error:nnn { socket } { already-declared } {#1} + } + { + \int_if_zero:nTF \tex_currentgrouplevel:D + { + \str_new:c { l__socket_#1_plug_str } + \seq_new:c { l__socket_#1_plugs_seq } + \int_const:cn { c__socket_#1_args_int } {#2} + \socket_new_plug:nnn {#1} { noop } {} + \int_compare:nNnTF {#2} = 1 + { + \socket_new_plug:nnn {#1} { identity } {##1} + \socket_assign_plug:nn {#1} { identity } + } + { \socket_assign_plug:nn {#1} { noop } } + \__socket_debug_term:n + { Socket~ '#1'~ declared~ with~ #2~ input(s) } + } + { + \msg_error:nn { socket } { not-top-level } + } + } +} +\cs_new_protected:Npn \socket_log:n #1 { + \typeout{ Socket~ #1:} + \str_if_exist:cTF { l__socket_#1_plug_str } + { + \typeout{ \@spaces number~ of~ inputs~ =~ + \int_use:c { c__socket_#1_args_int } } + \typeout{ \@spaces available~plugs~ =~ + \seq_use:cnnn { l__socket_#1_plugs_seq }{,~}{,~}{,~} } + \typeout{ \@spaces current~ plug~ =~ + \str_use:c { l__socket_#1_plug_str } } + \typeout{ \@spaces definition~ =~ + \cs_meaning:c + { __socket_#1_plug_ \str_use:c { l__socket_#1_plug_str } :w } } + \typeout{} + } + { + \typeout { Socket~ is~ not~ declared! } + } +} +\cs_new_protected:Npn \socket_show:n #1 {\socket_log:n {#1} \errmessage{}} +\cs_new_protected:Npn \socket_new_plug:nnn #1#2#3 { + \str_if_exist:cTF { l__socket_#1_plug_str } + { + \cs_if_exist:cTF { __socket_#1_plug_#2:w } + { + \msg_error:nnnn { socket } { plug-already-declared } {#1} {#2} + } + { + \cs_generate_from_arg_count:cNnn + { __socket_#1_plug_#2:w } + \cs_new_protected:Npn + { \int_use:c { c__socket_#1_args_int } } + {#3} + \seq_put_right:cn { l__socket_#1_plugs_seq } {#2} + \__socket_debug_term:n + { Plug~ '#2'~ for~ socket~ '#1'~ declared. } + } + } + { + \msg_error:nnn { socket } { undeclared } {#1} + } +} +\cs_new_protected:Npn \socket_set_plug:nnn #1#2#3 { + \str_if_exist:cTF { l__socket_#1_plug_str } + { + \cs_if_exist:cTF { __socket_#1_plug_#2:w } + { + \cs_generate_from_arg_count:cNnn + { __socket_#1_plug_#2:w } + \cs_set_protected:Npn + { \int_use:c { c__socket_#1_args_int } } + {#3} + \__socket_debug_term:n + { Plug~ '#2'~ for~ socket~ '#1'~ changed. } + } + { + \msg_error:nnnn { socket } { plug-undeclared } {#1} {#2} + } + } + { + \msg_error:nnn { socket } { undeclared } {#1} + } +} +\cs_new_protected:Npn \socket_assign_plug:nn #1 #2 { + \str_if_exist:cTF { l__socket_#1_plug_str } + { + \cs_if_exist:cTF { __socket_#1_plug_#2:w } + { + \__socket_debug_term:n + { Replacing~ plug~ '\str_use:c { l__socket_#1_plug_str }'~ + with~ '#2'~ in~ socket~ '#1'. } + \str_set:cn { l__socket_#1_plug_str } {#2} + } + { + \msg_error:nnnn { socket } { plug-undeclared } {#1} {#2} + } + } + { \msg_error:nnn { socket } { undeclared } {#1} } +} +\cs_new_protected:Npn \socket_use:nw #1 { + \__socket_debug_term:n + { Socket~ '#1'~ containing~ plug~ + '\str_use:c { l__socket_#1_plug_str }'~ used. } + \use:c { __socket_#1_plug_ \str_use:c { l__socket_#1_plug_str } :w } +} +\cs_new_eq:NN \socket_use:n \socket_use:nw % socket with no inputs +\cs_new_eq:NN \socket_use:nn \socket_use:nw % socket with one input +\cs_new_eq:NN \socket_use:nnn \socket_use:nw % socket with two inputs +\cs_new_eq:NN \socket_use:nnnn \socket_use:nw % socket with three inputs + +\msg_new:nnnn { socket } { already-declared } + { Socket~ '#1'~ already~ declared! } + { A~ socket~ can~ only~ be~ declared~ once.~ The~ name~ '#1'~ is~ + already~ taken.~ Use~ \ShowSocket{#1}~ to~ see~ its~ definition. } + +\msg_new:nnnn { socket } { undeclared } + { Socket~ '#1'~ undeclared! } + { You~ tried~ to~ use~ a~ socket~ that~ was~ not~ declared~ before. } + +\msg_new:nnnn { socket } { not-top-level } + { Sockets~ can~ only~ be~ declared~ at~ top-level! } + { It~ is~ not~ allowed~ to~ declare~ sockets~ inside~ a~ + group.~ Move~ the~ declaration~ to~ the~ top-level. } +\msg_new:nnnn { socket } { plug-already-declared } + { Plug~ '#2'~ for~ socket~ '#1'~ already~ declared! } + { You~ can't~ change~ an~ existing~ plug~ with~ \NewSocketPlug~ and~ it~ + is~ normally~ not~ sensible~ to~ do~ so.~ Use~ the~ L3~ programming~ + layer~ function~ \socket_set_plug:nnn~ if~ you~ really~ have~ to. } + +\msg_new:nnnn { socket } { plug-undeclared } + { Plug~ '#2'~ for~ socket~ '#1'~ undeclared! } + { The~ plug~ name~ is~ unknown.~ Is~ the~ name~ misspelled~ or~ did~ you~ + intend~ to~ assign~ it~ to~ a~ different~ socket? } +\prop_gput:Nnn \g_msg_module_type_prop { socket } { LaTeX } +\cs_new_eq:NN \NewSocket \socket_new:nn +\cs_new_eq:NN \ShowSocket \socket_show:n +\cs_new_eq:NN \LogSocket \socket_log:n +\cs_new_eq:NN \NewSocketPlug \socket_new_plug:nnn +\cs_new_eq:NN \AssignSocketPlug \socket_assign_plug:nn +\cs_new_eq:NN \UseSocket \socket_use:nw +\cs_new_eq:NN \DebugSocketsOn \socket_debug_on: +\cs_new_eq:NN \DebugSocketsOff \socket_debug_off: +\ExplSyntaxOff +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% From File: ltalloc.dtx \chardef\@xxxii=32 \mathchardef\@Mi=10001 @@ -7520,6 +7613,7 @@ Type H <return> for immediate help.}% \catcode `\~=13 \def~{\nobreakspace{}} \expandafter\let\expandafter\@xobeysp\csname nobreakspace \endcsname +\let\@xobeytab\@xobeysp \def\@{\spacefactor\@m{}}% \DeclareRobustCommand\hspace{\@ifstar\@hspacer\@hspace} \newskip\sp@ce@skip @@ -7786,7 +7880,16 @@ Type H <return> for immediate help.}% \expandafter{\reserved@a{#2}{#3}}% \reserved@a} \ExplSyntaxOn -\cs_new_eq:NN \IfFileExists@@ \file_full_name:n +\cs_new:Npn \IfFileExists@@ #1 + { + \tl_if_blank:nF {#1} + { + \tl_if_head_eq_charcode:oNTF { \use:n #1 } | + {#1} + { \file_full_name:n {#1} } + } + } +\cs_generate_variant:Nn \tl_if_head_eq_charcode:nNTF { o } \ExplSyntaxOff \long\def\@iffileonpath#1{% \let\reserved@a\@secondoftwo @@ -11840,6 +11943,262 @@ Type H <return> for immediate help.}% \NewDocumentCommand\Ref{s} {\IfBooleanTF{#1}{\@kernel@sRef}{\@kernel@Ref}} \def\@currentlabel{} +%% File: ltproperties.dtx +\def\ltpropertiesversion{1.0b} +\def\ltpropertiesdate{2023-09-13} + + + +\ExplSyntaxOn +\cs_new_protected:Npn \property_new:nnnn #1#2#3#4 + { + \cs_if_free:cTF { __property_code_ #1 : } + { + \exp_args:Nx \__property_gset:nnnn { \tl_to_str:n {#1} } + {#2} {#3} {#4} + } + { + \msg_error:nn { property }{ exists }{#1} + } + } +\cs_new_protected:Npn \property_gset:nnnn #1#2#3#4 + { + \__property_gset:xnnn { \tl_to_str:n {#1} } + {#2} {#3} {#4} + } +\cs_new_protected:Npn \__property_gset:nnnn #1#2#3#4 + { + \cs_gset:cpn { __property_code_ #1 : } {#4} + \tl_gclear_new:c { g__property_default_ #1 _tl } + \tl_gset:cn { g__property_default_ #1 _tl } {#3} + \bool_if_exist:cF { g__property_shipout_ #1 _tl } + { \bool_new:c { g__property_shipout_ #1 _tl } } + \str_case:nnF {#2} + { + { now } { { \bool_gset_false:c { g__property_shipout_ #1 _tl } } } + { shipout } + { \bool_gset_true:c { g__property_shipout_ #1 _tl } } + } + { \msg_error:nnnn { property } { unknown-setpoint } {#1} {#2} } + } +\cs_generate_variant:Nn \__property_gset:nnnn {xnnn} +\cs_new_protected:Npn \NewProperty #1#2#3#4 + { + \exp_args:Nx \property_new:nnnn {#1}{#2}{#3}{#4} + } +\cs_new_protected:Npn \SetProperty #1#2#3#4 + { + \exp_args:Nx \property_gset:nnnn {#1}{#2}{#3}{#4} + } +\cs_new_protected:Npn \property_record:nN #1#2 + { \property_record:nV {#1} #2 } +\cs_new_protected:Npn \property_record:nn #1#2 + { \__property_record:xn { \tl_to_str:n {#1} } {#2} } +\cs_generate_variant:Nn \property_record:nn { nV , xx } +\cs_new_protected:Npn \__property_record:nn #1#2 + { + \legacy_if:nT { @filesw } + { + \iow_shipout_x:Nx \@auxout + { + \token_to_str:N \new@label@record + {#1} + { \clist_map_function:nN {#2} \__property_record_value:n } + } + } + } +\cs_generate_variant:Nn \__property_record:nn { x } +\cs_new:Npn \__property_record_value:n #1 + { \__property_record_value_aux:e { \tl_to_str:n {#1} } } +\cs_new:Npn \__property_record_value_aux:n #1 + { + \cs_if_exist:cTF { __property_code_ #1 : } + { + {#1} + { + \bool_if:cTF { g__property_shipout_ #1 _tl } + { \exp_not:c } + { \use:c } + { __property_code_ #1 : } + } + } + { \msg_expandable_error:nnn { property } { not-declared } {#1} } + } +\cs_generate_variant:Nn \__property_record_value_aux:n { e } +\NewDocumentCommand\RecordProperties { m m } + { + \@bsphack + \property_record:xx {#1}{#2} + \@esphack + } +\flag_new:n { l__property_ref_flag } +\cs_new:Npn \property_ref:nn #1#2 + { + \__property_ref:een + { \tl_to_str:n {#1} } + { \tl_to_str:n {#2} } + { \tl_use:c { g__property_default_ #2 _tl } } + } +\cs_generate_variant:Nn \property_ref:nn {ee} +\cs_new:Npn \property_ref:nnn #1#2#3 + { + \__property_ref:een + { \tl_to_str:n {#1} } + { \tl_to_str:n {#2} } + {#3} + } +\cs_new:Npn \__property_ref:nnn #1#2#3 + { + \tl_if_exist:cTF { g__property_label_ #1 _ #2 _tl } + { \tl_use:c { g__property_label_ #1 _ #2 _tl } } + { + \flag_if_raised:nF + { l__property_ref_flag } { \flag_raise:n { l__property_ref_flag } } + \tl_if_exist:cTF { g__property_default_ #2 _tl } + { #3 } + { \msg_expandable_error:nnn { property } { not-declared } {#2} } + } + } +\cs_generate_variant:Nn \__property_ref:nnn { ee } +\cs_generate_variant:Nn \property_ref:nnn {een} +\NewExpandableDocumentCommand \RefProperty { o m m } + { + \IfNoValueTF {#1} + { + \property_ref:ee {#2}{#3} + } + { + \property_ref:een {#2}{#3}{#1} + } + } +\cs_new_protected:Npn \new@label@record #1#2 + { + \tl_if_exist:cTF { r@#1 } + { + \gdef \@multiplelabels + { \@latex@warning@no@line { There~were~multiply-defined~labels } } + \@latex@warning@no@line { Label~`#1'~multiply~defined } + } + { + \tl_new:c { r@#1 } + \tl_gset:cn { r@#1 }{#2} + } + \__property_data:nnn {#1} #2 { \q_recursion_tail } { ? } \q_recursion_stop + } +\cs_new_protected:Npn \__property_data:nnn #1#2#3 + { + \quark_if_recursion_tail_stop:n {#2} + \tl_gclear_new:c { g__property_label_ \tl_to_str:n {#1} _ \tl_to_str:n {#2} _tl } + \tl_gset:cn { g__property_label_ \tl_to_str:n {#1} _ \tl_to_str:n {#2} _tl } {#3} + \__property_data:nnn {#1} + } +\cs_new_protected:Npn \@kernel@new@label@record@testdef #1 #2 + { + \tl_if_eq:cnF { r@#1 } {#2} + { \@tempswatrue } + } +\prg_new_conditional:Npnn \property_if_exist:n #1 { p , T , F, TF } + % #1 property + { + \cs_if_exist:cTF { __property_code_ #1 : } + { + \prg_return_true: + } + { + \prg_return_false: + } + } +\prg_generate_conditional_variant:Nnn \property_if_exist:n {e} {TF} +\cs_new_eq:NN \IfPropertyExistTF \property_if_exist:eTF +\prg_new_conditional:Npnn \property_if_recorded:n #1 { p , T , F, TF } + % #1 label + { + \tl_if_exist:cTF { r@#1 } + { + \prg_return_true: + } + { + \prg_return_false: + } + } +\prg_generate_conditional_variant:Nnn \property_if_recorded:n {e} {TF} +\cs_new_eq:NN \IfLabelExistTF \property_if_recorded:eTF +\prg_new_conditional:Npnn \property_if_recorded:nn #1#2 { p , T , F, TF } + % #1 label #2 property + { + \tl_if_exist:cTF { g__property_label_ \tl_to_str:n {#1} _ \tl_to_str:n {#2} _tl } + { + \prg_return_true: + } + { + \prg_return_false: + } + } +\prg_generate_conditional_variant:Nnn \property_if_recorded:nn {ee} {TF} +\cs_new_eq:NN \IfPropertyRecordedTF \property_if_recorded:eeTF +\cs_new_protected:Npn \property_ref_undefined_warn: + { + \flag_if_raised:nT { l__property_ref_flag } + { + \G@refundefinedtrue + } + } +\cs_new_protected:Npn \property_ref_undefined_warn:n #1 %#1 label + { + \property_if_recorded:nF {#1} + { + \G@refundefinedtrue + \@latex@warning{Reference~`#1'~on~page~\thepage\space undefined}% + } + } +\cs_new_protected:Npn \property_ref_undefined_warn:nn #1#2 %#1 label, #2 property + { + \property_if_recorded:nTF {#1} + { + \property_if_recorded:nnF {#1}{#2} + { + \G@refundefinedtrue + \@latex@warning + { Property~`#2'~undefined~for~reference~`#1'~on~page~\thepage } + } + } + { + \G@refundefinedtrue + \@latex@warning { Reference~`#1'~on~page~\thepage\space undefined }% + } + } +\cs_generate_variant:Nn \property_ref_undefined_warn:nn {xx} +\cs_set_eq:NN \RefUndefinedWarn \property_ref_undefined_warn:xx +\property_new:nnnn { abspage } { shipout } + { 0 } { \int_use:N \g_shipout_readonly_int } +\property_new:nnnn { page } { shipout } { 0 } { \thepage } +\property_new:nnnn { pagenum } { shipout } { 0 } { \the \value { page } } +\property_new:nnnn { currentlabel } { now } { ?? } { \@currentlabel } +\property_new:nnnn { title } { now } + { \exp_not:n { \textbf { ?? } } } { \@currentlabelname } +\property_new:nnnn { target } { now } { } { \@currentHref } +\property_new:nnnn { counter } { now } { } { \@currentcounter } +\property_new:nnnn { xpos } { shipout } { 0} { \int_use:N \tex_lastxpos:D } +\property_new:nnnn { ypos } { shipout } { 0} { \int_use:N \tex_lastypos:D } +\msg_new:nnnn { property } { exists } + { Property~'#1'~ has~ already~ been~ declared. } + { There~ already~ exists~ a~ property~ declaration~ with~ this~ + name.\\ + Please~ use~ a~ different~ name~ for~ your~ property.} + +\msg_new:nnnn { property } { not-declared } + { Property~'#1'~not~declared. } + { + LaTeX~has~been~asked~to~use~property~'#1',~but~this~ + name~has~not~been~declared. + } +\msg_new:nnnn { property } { unknown-setpoint } + { Unknown~keyword~'#2'~for~setting~property~'#1'. } + { + LaTeX~has~been~asked~to~set~the~property~'#1',~but~the~keyword~ + '#2'~is~not~one~of~the~two~known~values:~'now'~or~'shipout'. + } +\ExplSyntaxOff %%% From File: ltmiscen.dtx \message{environments,} \def\@currenvir{document} @@ -11860,6 +12219,7 @@ Type H <return> for immediate help.}% \immediate\closeout\@mainaux \let\@setckpt\@gobbletwo \let\@newl@bel\@testdef + \let\new@label@record\@kernel@new@label@record@testdef \@tempswafalse \makeatletter \@@input\jobname.aux \fi @@ -11910,7 +12270,6 @@ Type H <return> for immediate help.}% \def\reserved@a{#3}\expandafter \ifx \csname #1@#2\endcsname \reserved@a \else \@tempswatrue \fi} \protected\def\protected@file@percent{} - \catcode`\^^A=9 \long\gdef\add@percent@to@temptokena #1\protected@file@percent#2\add@percent@to@temptokena @@ -12019,7 +12378,11 @@ Type H <return> for immediate help.}% \def\endflushright{\endtrivlist} \message{verbatim,} {\catcode`\ =\active% -\gdef\@vobeyspaces{\catcode`\ \active\let \@xobeysp}} +\gdef\@vobeyspaces{\catcode`\ \active\let \@xobeysp\@vobeytabs}} +{\catcode`\^^I=\active +\gdef\@vobeytabs{\catcode`\^^I\active\let^^I\@xobeytab}% +\global\let^^I=\space +} \begingroup \catcode `|=0 \catcode `[= 1 \catcode`]=2 \catcode `\{=12 \catcode `\}=12 \catcode`\\=12 |gdef|@xverbatim#1\end{verbatim}[#1|end[verbatim]] @@ -12053,7 +12416,11 @@ Type H <return> for immediate help.}% \DeclareRobustCommand\verbvisiblespace {\leavevmode{\usefont{OT1}{cmtt}{m}{n}\asciispace}} % xetex/luatex version \fi - +\newbox\@verbvisiblespacebox +\@namedef{verbatim*}{\@verbatim + \@setupverbvisiblespace + \frenchspacing\@vobeyspaces\@sxverbatim} +\expandafter\let\csname endverbatim*\endcsname =\endverbatim \def\@setupverbvisiblespace{% \ifx\verbvisiblespace\asciispace \let\@xobeysp\asciispace @@ -12062,13 +12429,9 @@ Type H <return> for immediate help.}% \setbox\@verbvisiblespacebox\hbox to\wd\z@{\hss\verbvisiblespace\hss}% \def\@xobeysp{\leavevmode\copy\@verbvisiblespacebox}% \fi + \@setupverbvisibletab } - -\newbox\@verbvisiblespacebox -\@namedef{verbatim*}{\@verbatim - \@setupverbvisiblespace - \frenchspacing\@vobeyspaces\@sxverbatim} -\expandafter\let\csname endverbatim*\endcsname =\endverbatim +\def\@setupverbvisibletab{\let\@xobeytab\@xobeysp} \def\@sverb#1{\if\noexpand#1 \expandafter\@sverb\else\@@sverb{#1}\fi} \def\@@sverb#1{% \catcode`#1\active @@ -12077,7 +12440,10 @@ Type H <return> for immediate help.}% \@latex@error{\noexpand\verb illegal in argument}\@ehc}% \aftergroup\verb@balance@group \lowercase{\let~\verb@egroup}% - \ifnum\catcode`\ =\active + \ifnum0% + \ifnum\catcode`\ =\active\else 1\fi + \ifnum\catcode`\^^I=\active\else 1\fi + =0 % \else \@setupverbvisiblespace \@vobeyspaces \fi } \def\@makeother#1{\catcode`#112\relax} @@ -15864,7 +16230,7 @@ Type H <return> for immediate help.}% \ExplSyntaxOff %%% From File: ltfilehook.dtx \providecommand\ltfilehookversion{v1.0o} -\providecommand\ltfilehookdate{2023/04/02} +\providecommand\ltfilehookdate{2023/07/10} \ExplSyntaxOn \tl_new:N \CurrentFile \tl_new:N \CurrentFilePath @@ -16002,7 +16368,6 @@ Type H <return> for immediate help.}% \cs_new_eq:NN \declare@file@substitution \__filehook_subst_add:nn \cs_new_eq:NN \undeclare@file@substitution \__filehook_subst_remove:n \ExplSyntaxOff -\ExplSyntaxOff \def\set@curr@file{% \begingroup \set@curr@file@aux} diff --git a/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty b/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty index 9ada4b71c40..c8776b66f93 100644 --- a/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty +++ b/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty @@ -15,6 +15,7 @@ %% ltcmd.dtx (with options: `latexrelease') %% lthooks.dtx (with options: `latexrelease') %% ltcmdhooks.dtx (with options: `latexrelease') +%% ltsockets.dtx (with options: `latexrelease') %% ltalloc.dtx (with options: `latexrelease') %% ltcntrl.dtx (with options: `latexrelease') %% lterror.dtx (with options: `latexrelease') @@ -37,6 +38,7 @@ %% lttextcomp.dtx (with options: `latexrelease') %% ltpageno.dtx (with options: `latexrelease') %% ltxref.dtx (with options: `latexrelease') +%% ltproperties.dtx (with options: `latexrelease') %% ltmiscen.dtx (with options: `latexrelease') %% ltmath.dtx (with options: `latexrelease') %% ltlists.dtx (with options: `latexrelease') @@ -1986,8 +1988,8 @@ of this package available from CTAN} \EndIncludeInRelease %%% From File: ltcmd.dtx -\def\ltcmdversion{v1.1e} -\def\ltcmddate{2023-05-26} +\def\ltcmdversion{v1.2a} +\def\ltcmddate{2023-08-19} \edef\@latexrelease@catcode@null{\the\catcode`\^^@ } \catcode`\^^@=12 \ExplSyntaxOn @@ -4248,68 +4250,6 @@ of this package available from CTAN} \exp_after:wN #1 \exp_after:wN #2 \exp_after:wN { \if_false: } \fi: } -\cs_new_protected:Npn \__cmd_get_arg_spec_error:N #1 - { - \bool_set_false:N \l__cmd_environment_bool - \tl_set:Nn \l__cmd_fn_tl {#1} - \__cmd_get_arg_spec_error_aux:n { \cs_if_exist:NTF #1 } - } -\cs_new_protected:Npn \__cmd_get_arg_spec_error:n #1 - { - \bool_set_true:N \l__cmd_environment_bool - \str_set:Nx \l__cmd_environment_str {#1} - \__cmd_get_arg_spec_error_aux:n - { \cs_if_exist:cTF { \l__cmd_environment_str } } - } -\cs_new_protected:Npn \__cmd_get_arg_spec_error_aux:n #1 - { - #1 - { - \msg_error:nnx { cmd } { non-xparse } - { \__cmd_environment_or_command: } - } - { - \msg_error:nnx { cmd } { unknown } - { \__cmd_environment_or_command: } - } - } -\cs_new_protected:Npn \__cmd_get_arg_spec:NTF #1#2#3 - { - \__kernel_cmd_if_xparse:NTF #1 - { - \tl_set:Nx \ArgumentSpecification { \tl_item:Nn #1 { 2 } } - #2 - } - {#3} - } -\cs_new_eq:NN \__cmd_chk_if_free_cs:N \__kernel_chk_if_free_cs:N -\cs_gset_eq:NN \__kernel_chk_if_free_cs:N \use_none:n -\tl_new:N \ArgumentSpecification -\cs_new_protected:Npn \__cmd_get_arg_spec:N #1 - { - \__cmd_get_arg_spec:NTF #1 { } - { \__cmd_get_arg_spec_error:N #1 } - } -\cs_new_protected:Npn \__cmd_get_arg_spec:n #1 - { - \exp_args:Nc \__cmd_get_arg_spec:NTF - { environment~ \tl_to_str:n {#1} } - { } - { \__cmd_get_arg_spec_error:n {#1} } - } -\cs_new_protected:Npn \__cmd_show_arg_spec:N #1 - { - \__cmd_get_arg_spec:NTF #1 - { \tl_show:N \ArgumentSpecification } - { \__cmd_get_arg_spec_error:N #1 } - } -\cs_new_protected:Npn \__cmd_show_arg_spec:n #1 - { - \exp_args:Nc \__cmd_get_arg_spec:NTF - { environment~ \tl_to_str:n {#1} } - { \tl_show:N \ArgumentSpecification } - { \__cmd_get_arg_spec_error:n {#1} } - } \cs_new_protected:Npn \__cmd_check_definable:nNT #1 { \tl_trim_spaces_apply:nN {#1} \__cmd_check_definable_aux:nN } \group_begin: @@ -4641,12 +4581,6 @@ of this package available from CTAN} LaTeX~did~not~find~this~argument~and~will~insert~a~default~value~ for~further~processing. } -\msg_new:nnnn { cmd } { non-xparse } - { \str_uppercase:n #1~not~defined~using~xparse. } - { - You~have~asked~for~the~argument~specification~for~the~#1,~ - but~this~was~not~defined~using~xparse. - } \msg_new:nnnn { cmd } { arg-split } { Too~many~'#1'~separators~in~argument. } { @@ -4654,12 +4588,6 @@ of this package available from CTAN} at~each~occurrence~of~the~separator~'#1'~into~#2~parts.~ Too~many~separators~were~found. } -\msg_new:nnnn { cmd } { unknown } - { Unknown~document~#1. } - { - You~have~asked~for~the~argument~specification~for~the~#1,~ - but~it~is~not~defined. - } \msg_new:nnnn { cmd } { verbatim-nl } { Verbatim-like~#1~ended~by~end~of~line. } { @@ -4860,18 +4788,6 @@ of this package available from CTAN} \cs_new_eq:NN \SplitList \__cmd_split_list:nn \cs_new_eq:NN \TrimSpaces \__cmd_trim_spaces:n \cs_new_eq:NN \ProcessList \tl_map_function:nN -\cs_new_protected:Npn \GetDocumentCommandArgSpec #1 - { - \__cmd_check_definable:nNT {#1} \GetDocumentCommandArgSpec - { \__cmd_get_arg_spec:N #1 } - } -\cs_new_eq:NN \GetDocumentEnvironmentArgSpec \__cmd_get_arg_spec:n -\cs_new_protected:Npn \ShowDocumentCommandArgSpec #1 - { - \__cmd_check_definable:nNT {#1} \ShowDocumentCommandArgSpec - { \__cmd_show_arg_spec:N #1 } - } -\cs_new_eq:NN \ShowDocumentEnvironmentArgSpec \__cmd_show_arg_spec:n \cs_gset_eq:NN \__kernel_chk_if_free_cs:N \__cmd_chk_if_free_cs:N \cs_undefine:N \__cmd_chk_if_free_cs:N @@ -4884,8 +4800,8 @@ of this package available from CTAN} \catcode`\^^@=\@latexrelease@catcode@null\relax %%% From File: lthooks.dtx -\def\lthooksversion{v1.1e} -\def\lthooksdate{2023/06/06} +\def\lthooksversion{v1.1f} +\def\lthooksdate{2023/08/11} \ExplSyntaxOn \NewModuleRelease{2020/10/01}{lthooks} {The~hook~management~system} @@ -5367,7 +5283,7 @@ of this package available from CTAN} } { \tl_gset:Nn \g__hook_hook_curr_name_tl {#1} } } -\IncludeInRelease{2023/06/01}{\hook_gput_code_with_args:nnn} +\IncludeInRelease{2023/06/01}{\hook_gput_code:nnn} {Hooks~with~args} \cs_new_protected:Npn \hook_gput_code:nnn #1 #2 #3 { @@ -5844,7 +5760,7 @@ of this package available from CTAN} } } \EndIncludeInRelease -\IncludeInRelease{2023/06/01}{\hook_gremove_code:nn} +\IncludeInRelease{2020/10/01}{\hook_gremove_code:nn} {Hooks~with~args} \cs_new_protected:Npn \__hook_gremove_code:nn #1 #2 { @@ -6302,6 +6218,8 @@ of this package available from CTAN} \cs_gset_eq:NN \hook_use:n \__hook_use_initialized:n \cs_gset_eq:NN \__hook_preamble_hook:n \use_none:n } +\cs_gset_eq:NN \@expl@@@initialize@all@@ + \__hook_initialize_all: \EndIncludeInRelease \IncludeInRelease{2023/06/01}{\__hook_initialize_hook_code:n} {Hooks~with~args} @@ -7511,7 +7429,7 @@ of this package available from CTAN} \NewDocumentCommand \NewMirroredHookPairWithArguments { mmm } { \hook_new_pair_with_args:nnn {#1} {#2} {#3} } \EndIncludeInRelease -\IncludeInRelease{2023/06/01}{\NewHookWithArguments} +\IncludeInRelease{2020/10/01}{\NewHookWithArguments} {Hooks~with~args} \cs_new_protected:Npn \NewHookWithArguments #1 #2 { } \cs_new_protected:Npn \NewReversedHookWithArguments #1 #2 { } @@ -7736,8 +7654,8 @@ of this package available from CTAN} %% Copyright (C) 2020-2023 %% Frank Mittelbach, Phelype Oleinik, The LaTeX Project %%% From File: ltcmdhooks.dtx -\def\ltcmdhooksversion{v1.0h} -\def\ltcmdhooksdate{2023/05/21} +\def\ltcmdhooksversion{v1.0i} +\def\ltcmdhooksdate{2023/06/16} \ExplSyntaxOn \NewModuleRelease{2021/06/01}{ltcmdhooks} {The~hook~management~system~for~commands} @@ -8305,10 +8223,10 @@ of this package available from CTAN} \cs_gset_eq:NN #1 \kerneltmpDoNotUse } \EndIncludeInRelease -\IncludeInRelease{2021/11/15}{wrong-cmd-hook}% +\IncludeInRelease{2023/06/01}{wrong-cmd-hook}% {Standardise~generic~hook~names} \EndIncludeInRelease -\IncludeInRelease{2021/11/15}{wrong-cmd-hook}% +\IncludeInRelease{2021/06/01}{wrong-cmd-hook}% {Standardise~generic~hook~names} \msg_new:nnnn { hooks } { wrong-cmd-hook } { @@ -8346,6 +8264,198 @@ of this package available from CTAN} \EndModuleRelease \ExplSyntaxOff %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% From File: ltsockets.dtx +\def\ltsocketsversion{0.9a} +\def\ltsocketsdate{2023-08-21} +\ExplSyntaxOn +\NewModuleRelease{2023/11/01}{ltsockets} + {The~socket~management~system} +\bool_new:N \g__socket_debug_bool +\cs_new_eq:NN \__socket_debug:n \use_none:n +\cs_new_eq:NN \__socket_debug_term:n \use_none:n +\cs_new_protected:Npn \socket_debug_on: + { + \bool_gset_true:N \g__socket_debug_bool + \__socket_debug_gset: + } +\cs_new_protected:Npn \socket_debug_off: + { + \bool_gset_false:N \g__socket_debug_bool + \__socket_debug_gset: + } +\cs_new_protected:Npn \__socket_debug_gset: + { + \cs_gset_protected:Npx \__socket_debug:n ##1 + { \bool_if:NT \g__socket_debug_bool {##1} } + \cs_gset_protected:Npx \__socket_debug_term:n ##1 + { \bool_if:NT \g__socket_debug_bool + { \iow_term:x { ^^J [Sockets]~ ==>~ ##1} } } + } +\cs_new_protected:Npn \socket_new:nn #1 #2 { + \str_if_exist:cTF { l__socket_#1_plug_str } + { + \msg_error:nnn { socket } { already-declared } {#1} + } + { + \int_if_zero:nTF \tex_currentgrouplevel:D + { + \str_new:c { l__socket_#1_plug_str } + \seq_new:c { l__socket_#1_plugs_seq } + \int_const:cn { c__socket_#1_args_int } {#2} + \socket_new_plug:nnn {#1} { noop } {} + \int_compare:nNnTF {#2} = 1 + { + \socket_new_plug:nnn {#1} { identity } {##1} + \socket_assign_plug:nn {#1} { identity } + } + { \socket_assign_plug:nn {#1} { noop } } + \__socket_debug_term:n + { Socket~ '#1'~ declared~ with~ #2~ input(s) } + } + { + \msg_error:nn { socket } { not-top-level } + } + } +} +\cs_new_protected:Npn \socket_log:n #1 { + \typeout{ Socket~ #1:} + \str_if_exist:cTF { l__socket_#1_plug_str } + { + \typeout{ \@spaces number~ of~ inputs~ =~ + \int_use:c { c__socket_#1_args_int } } + \typeout{ \@spaces available~plugs~ =~ + \seq_use:cnnn { l__socket_#1_plugs_seq }{,~}{,~}{,~} } + \typeout{ \@spaces current~ plug~ =~ + \str_use:c { l__socket_#1_plug_str } } + \typeout{ \@spaces definition~ =~ + \cs_meaning:c + { __socket_#1_plug_ \str_use:c { l__socket_#1_plug_str } :w } } + \typeout{} + } + { + \typeout { Socket~ is~ not~ declared! } + } +} +\cs_new_protected:Npn \socket_show:n #1 {\socket_log:n {#1} \errmessage{}} +\cs_new_protected:Npn \socket_new_plug:nnn #1#2#3 { + \str_if_exist:cTF { l__socket_#1_plug_str } + { + \cs_if_exist:cTF { __socket_#1_plug_#2:w } + { + \msg_error:nnnn { socket } { plug-already-declared } {#1} {#2} + } + { + \cs_generate_from_arg_count:cNnn + { __socket_#1_plug_#2:w } + \cs_new_protected:Npn + { \int_use:c { c__socket_#1_args_int } } + {#3} + \seq_put_right:cn { l__socket_#1_plugs_seq } {#2} + \__socket_debug_term:n + { Plug~ '#2'~ for~ socket~ '#1'~ declared. } + } + } + { + \msg_error:nnn { socket } { undeclared } {#1} + } +} +\cs_new_protected:Npn \socket_set_plug:nnn #1#2#3 { + \str_if_exist:cTF { l__socket_#1_plug_str } + { + \cs_if_exist:cTF { __socket_#1_plug_#2:w } + { + \cs_generate_from_arg_count:cNnn + { __socket_#1_plug_#2:w } + \cs_set_protected:Npn + { \int_use:c { c__socket_#1_args_int } } + {#3} + \__socket_debug_term:n + { Plug~ '#2'~ for~ socket~ '#1'~ changed. } + } + { + \msg_error:nnnn { socket } { plug-undeclared } {#1} {#2} + } + } + { + \msg_error:nnn { socket } { undeclared } {#1} + } +} +\cs_new_protected:Npn \socket_assign_plug:nn #1 #2 { + \str_if_exist:cTF { l__socket_#1_plug_str } + { + \cs_if_exist:cTF { __socket_#1_plug_#2:w } + { + \__socket_debug_term:n + { Replacing~ plug~ '\str_use:c { l__socket_#1_plug_str }'~ + with~ '#2'~ in~ socket~ '#1'. } + \str_set:cn { l__socket_#1_plug_str } {#2} + } + { + \msg_error:nnnn { socket } { plug-undeclared } {#1} {#2} + } + } + { \msg_error:nnn { socket } { undeclared } {#1} } +} +\cs_new_protected:Npn \socket_use:nw #1 { + \__socket_debug_term:n + { Socket~ '#1'~ containing~ plug~ + '\str_use:c { l__socket_#1_plug_str }'~ used. } + \use:c { __socket_#1_plug_ \str_use:c { l__socket_#1_plug_str } :w } +} +\cs_new_eq:NN \socket_use:n \socket_use:nw % socket with no inputs +\cs_new_eq:NN \socket_use:nn \socket_use:nw % socket with one input +\cs_new_eq:NN \socket_use:nnn \socket_use:nw % socket with two inputs +\cs_new_eq:NN \socket_use:nnnn \socket_use:nw % socket with three inputs + +\msg_new:nnnn { socket } { already-declared } + { Socket~ '#1'~ already~ declared! } + { A~ socket~ can~ only~ be~ declared~ once.~ The~ name~ '#1'~ is~ + already~ taken.~ Use~ \ShowSocket{#1}~ to~ see~ its~ definition. } + +\msg_new:nnnn { socket } { undeclared } + { Socket~ '#1'~ undeclared! } + { You~ tried~ to~ use~ a~ socket~ that~ was~ not~ declared~ before. } + +\msg_new:nnnn { socket } { not-top-level } + { Sockets~ can~ only~ be~ declared~ at~ top-level! } + { It~ is~ not~ allowed~ to~ declare~ sockets~ inside~ a~ + group.~ Move~ the~ declaration~ to~ the~ top-level. } +\msg_new:nnnn { socket } { plug-already-declared } + { Plug~ '#2'~ for~ socket~ '#1'~ already~ declared! } + { You~ can't~ change~ an~ existing~ plug~ with~ \NewSocketPlug~ and~ it~ + is~ normally~ not~ sensible~ to~ do~ so.~ Use~ the~ L3~ programming~ + layer~ function~ \socket_set_plug:nnn~ if~ you~ really~ have~ to. } + +\msg_new:nnnn { socket } { plug-undeclared } + { Plug~ '#2'~ for~ socket~ '#1'~ undeclared! } + { The~ plug~ name~ is~ unknown.~ Is~ the~ name~ misspelled~ or~ did~ you~ + intend~ to~ assign~ it~ to~ a~ different~ socket? } +\prop_gput:Nnn \g_msg_module_type_prop { socket } { LaTeX } +\cs_new_eq:NN \NewSocket \socket_new:nn +\cs_new_eq:NN \ShowSocket \socket_show:n +\cs_new_eq:NN \LogSocket \socket_log:n +\cs_new_eq:NN \NewSocketPlug \socket_new_plug:nnn +\cs_new_eq:NN \AssignSocketPlug \socket_assign_plug:nn +\cs_new_eq:NN \UseSocket \socket_use:nw +\cs_new_eq:NN \DebugSocketsOn \socket_debug_on: +\cs_new_eq:NN \DebugSocketsOff \socket_debug_off: +\IncludeInRelease{0000/00/00}{ltsockets} + {The~socket~management~(undo)}% + +\let \NewSocket \@undefined +\let \ShowSocket \@undefined +\let \LogSocket \@undefined + +\let \NewSocketPlug \@undefined +\let \AssignSocketPlug \@undefined +\let \UseSocket \@undefined + +\let \DebugSocketsOn \@undefined +\let \DebugSocketsOff \@undefined + +\EndModuleRelease +\ExplSyntaxOff +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% From File: ltalloc.dtx %%% From File: ltcntrl.dtx %%% From File: lterror.dtx @@ -8920,6 +9030,14 @@ of this package available from CTAN} \@esphack \fi} \EndIncludeInRelease +\IncludeInRelease{2023/11/01}% + {\@xobeytab}{Obeyed tabs}% +\let\@xobeytab\@xobeysp +\EndIncludeInRelease +\IncludeInRelease{0000/00/00}% + {\@xobeytab}{Obeyed tabs}% +\let\@xobeytab\@undefined +\EndIncludeInRelease \IncludeInRelease{2015/01/01}% {\@}{Space after \@}% \def\@{\spacefactor\@m{}}% @@ -9371,7 +9489,7 @@ of this package available from CTAN} \reserved@a} \EndIncludeInRelease -\IncludeInRelease{2023/05/01}% +\IncludeInRelease{2023/06/01}% {\IfFileExists@}{IfFileExists} \long\def \IfFileExists@#1#2#3{% \edef\@filef@und{\IfFileExists@@{#1}}% @@ -9390,7 +9508,16 @@ of this package available from CTAN} \expandafter{\reserved@a{#2}{#3}}% \reserved@a} \ExplSyntaxOn -\cs_new_eq:NN \IfFileExists@@ \file_full_name:n +\cs_new:Npn \IfFileExists@@ #1 + { + \tl_if_blank:nF {#1} + { + \tl_if_head_eq_charcode:oNTF { \use:n #1 } | + {#1} + { \file_full_name:n {#1} } + } + } +\cs_generate_variant:Nn \tl_if_head_eq_charcode:nNTF { o } \ExplSyntaxOff \EndIncludeInRelease \IncludeInRelease{2021/06/01}% @@ -13111,7 +13238,344 @@ of this package available from CTAN} \let\Ref\@undefined \EndIncludeInRelease +%% File: ltproperties.dtx +\def\ltpropertiesversion{1.0b} +\def\ltpropertiesdate{2023-09-13} + + + +\ExplSyntaxOn +\NewModuleRelease{2023/11/01}{ltproperties} + {Cross-referencing~properties} +\cs_new_protected:Npn \property_new:nnnn #1#2#3#4 + { + \cs_if_free:cTF { __property_code_ #1 : } + { + \exp_args:Nx \__property_gset:nnnn { \tl_to_str:n {#1} } + {#2} {#3} {#4} + } + { + \msg_error:nn { property }{ exists }{#1} + } + } +\cs_new_protected:Npn \property_gset:nnnn #1#2#3#4 + { + \__property_gset:xnnn { \tl_to_str:n {#1} } + {#2} {#3} {#4} + } +\cs_new_protected:Npn \__property_gset:nnnn #1#2#3#4 + { + \cs_gset:cpn { __property_code_ #1 : } {#4} + \tl_gclear_new:c { g__property_default_ #1 _tl } + \tl_gset:cn { g__property_default_ #1 _tl } {#3} + \bool_if_exist:cF { g__property_shipout_ #1 _tl } + { \bool_new:c { g__property_shipout_ #1 _tl } } + \str_case:nnF {#2} + { + { now } { { \bool_gset_false:c { g__property_shipout_ #1 _tl } } } + { shipout } + { \bool_gset_true:c { g__property_shipout_ #1 _tl } } + } + { \msg_error:nnnn { property } { unknown-setpoint } {#1} {#2} } + } +\cs_generate_variant:Nn \__property_gset:nnnn {xnnn} +\cs_new_protected:Npn \NewProperty #1#2#3#4 + { + \exp_args:Nx \property_new:nnnn {#1}{#2}{#3}{#4} + } +\cs_new_protected:Npn \SetProperty #1#2#3#4 + { + \exp_args:Nx \property_gset:nnnn {#1}{#2}{#3}{#4} + } +\cs_new_protected:Npn \property_record:nN #1#2 + { \property_record:nV {#1} #2 } +\cs_new_protected:Npn \property_record:nn #1#2 + { \__property_record:xn { \tl_to_str:n {#1} } {#2} } +\cs_generate_variant:Nn \property_record:nn { nV , xx } +\cs_new_protected:Npn \__property_record:nn #1#2 + { + \legacy_if:nT { @filesw } + { + \iow_shipout_x:Nx \@auxout + { + \token_to_str:N \new@label@record + {#1} + { \clist_map_function:nN {#2} \__property_record_value:n } + } + } + } +\cs_generate_variant:Nn \__property_record:nn { x } +\cs_new:Npn \__property_record_value:n #1 + { \__property_record_value_aux:e { \tl_to_str:n {#1} } } +\cs_new:Npn \__property_record_value_aux:n #1 + { + \cs_if_exist:cTF { __property_code_ #1 : } + { + {#1} + { + \bool_if:cTF { g__property_shipout_ #1 _tl } + { \exp_not:c } + { \use:c } + { __property_code_ #1 : } + } + } + { \msg_expandable_error:nnn { property } { not-declared } {#1} } + } +\cs_generate_variant:Nn \__property_record_value_aux:n { e } +\NewDocumentCommand\RecordProperties { m m } + { + \@bsphack + \property_record:xx {#1}{#2} + \@esphack + } +\flag_new:n { l__property_ref_flag } +\cs_new:Npn \property_ref:nn #1#2 + { + \__property_ref:een + { \tl_to_str:n {#1} } + { \tl_to_str:n {#2} } + { \tl_use:c { g__property_default_ #2 _tl } } + } +\cs_generate_variant:Nn \property_ref:nn {ee} +\cs_new:Npn \property_ref:nnn #1#2#3 + { + \__property_ref:een + { \tl_to_str:n {#1} } + { \tl_to_str:n {#2} } + {#3} + } +\cs_new:Npn \__property_ref:nnn #1#2#3 + { + \tl_if_exist:cTF { g__property_label_ #1 _ #2 _tl } + { \tl_use:c { g__property_label_ #1 _ #2 _tl } } + { + \flag_if_raised:nF + { l__property_ref_flag } { \flag_raise:n { l__property_ref_flag } } + \tl_if_exist:cTF { g__property_default_ #2 _tl } + { #3 } + { \msg_expandable_error:nnn { property } { not-declared } {#2} } + } + } +\cs_generate_variant:Nn \__property_ref:nnn { ee } +\cs_generate_variant:Nn \property_ref:nnn {een} +\NewExpandableDocumentCommand \RefProperty { o m m } + { + \IfNoValueTF {#1} + { + \property_ref:ee {#2}{#3} + } + { + \property_ref:een {#2}{#3}{#1} + } + } +\cs_new_protected:Npn \new@label@record #1#2 + { + \tl_if_exist:cTF { r@#1 } + { + \gdef \@multiplelabels + { \@latex@warning@no@line { There~were~multiply-defined~labels } } + \@latex@warning@no@line { Label~`#1'~multiply~defined } + } + { + \tl_new:c { r@#1 } + \tl_gset:cn { r@#1 }{#2} + } + \__property_data:nnn {#1} #2 { \q_recursion_tail } { ? } \q_recursion_stop + } +\cs_new_protected:Npn \__property_data:nnn #1#2#3 + { + \quark_if_recursion_tail_stop:n {#2} + \tl_gclear_new:c { g__property_label_ \tl_to_str:n {#1} _ \tl_to_str:n {#2} _tl } + \tl_gset:cn { g__property_label_ \tl_to_str:n {#1} _ \tl_to_str:n {#2} _tl } {#3} + \__property_data:nnn {#1} + } +\cs_new_protected:Npn \@kernel@new@label@record@testdef #1 #2 + { + \tl_if_eq:cnF { r@#1 } {#2} + { \@tempswatrue } + } +\prg_new_conditional:Npnn \property_if_exist:n #1 { p , T , F, TF } + % #1 property + { + \cs_if_exist:cTF { __property_code_ #1 : } + { + \prg_return_true: + } + { + \prg_return_false: + } + } +\prg_generate_conditional_variant:Nnn \property_if_exist:n {e} {TF} +\cs_new_eq:NN \IfPropertyExistTF \property_if_exist:eTF +\prg_new_conditional:Npnn \property_if_recorded:n #1 { p , T , F, TF } + % #1 label + { + \tl_if_exist:cTF { r@#1 } + { + \prg_return_true: + } + { + \prg_return_false: + } + } +\prg_generate_conditional_variant:Nnn \property_if_recorded:n {e} {TF} +\cs_new_eq:NN \IfLabelExistTF \property_if_recorded:eTF +\prg_new_conditional:Npnn \property_if_recorded:nn #1#2 { p , T , F, TF } + % #1 label #2 property + { + \tl_if_exist:cTF { g__property_label_ \tl_to_str:n {#1} _ \tl_to_str:n {#2} _tl } + { + \prg_return_true: + } + { + \prg_return_false: + } + } +\prg_generate_conditional_variant:Nnn \property_if_recorded:nn {ee} {TF} +\cs_new_eq:NN \IfPropertyRecordedTF \property_if_recorded:eeTF +\cs_new_protected:Npn \property_ref_undefined_warn: + { + \flag_if_raised:nT { l__property_ref_flag } + { + \G@refundefinedtrue + } + } +\cs_new_protected:Npn \property_ref_undefined_warn:n #1 %#1 label + { + \property_if_recorded:nF {#1} + { + \G@refundefinedtrue + \@latex@warning{Reference~`#1'~on~page~\thepage\space undefined}% + } + } +\cs_new_protected:Npn \property_ref_undefined_warn:nn #1#2 %#1 label, #2 property + { + \property_if_recorded:nTF {#1} + { + \property_if_recorded:nnF {#1}{#2} + { + \G@refundefinedtrue + \@latex@warning + { Property~`#2'~undefined~for~reference~`#1'~on~page~\thepage } + } + } + { + \G@refundefinedtrue + \@latex@warning { Reference~`#1'~on~page~\thepage\space undefined }% + } + } +\cs_generate_variant:Nn \property_ref_undefined_warn:nn {xx} +\cs_set_eq:NN \RefUndefinedWarn \property_ref_undefined_warn:xx +\property_new:nnnn { abspage } { shipout } + { 0 } { \int_use:N \g_shipout_readonly_int } +\property_new:nnnn { page } { shipout } { 0 } { \thepage } +\property_new:nnnn { pagenum } { shipout } { 0 } { \the \value { page } } +\property_new:nnnn { currentlabel } { now } { ?? } { \@currentlabel } +\property_new:nnnn { title } { now } + { \exp_not:n { \textbf { ?? } } } { \@currentlabelname } +\property_new:nnnn { target } { now } { } { \@currentHref } +\property_new:nnnn { counter } { now } { } { \@currentcounter } +\property_new:nnnn { xpos } { shipout } { 0} { \int_use:N \tex_lastxpos:D } +\property_new:nnnn { ypos } { shipout } { 0} { \int_use:N \tex_lastypos:D } +\msg_new:nnnn { property } { exists } + { Property~'#1'~ has~ already~ been~ declared. } + { There~ already~ exists~ a~ property~ declaration~ with~ this~ + name.\\ + Please~ use~ a~ different~ name~ for~ your~ property.} + +\msg_new:nnnn { property } { not-declared } + { Property~'#1'~not~declared. } + { + LaTeX~has~been~asked~to~use~property~'#1',~but~this~ + name~has~not~been~declared. + } +\msg_new:nnnn { property } { unknown-setpoint } + { Unknown~keyword~'#2'~for~setting~property~'#1'. } + { + LaTeX~has~been~asked~to~set~the~property~'#1',~but~the~keyword~ + '#2'~is~not~one~of~the~two~known~values:~'now'~or~'shipout'. + } +\IncludeInRelease{0000/00/00}{ltproperties} + {cross-referencing~properties~(undo)}% + +\let \NewProperty \@undefined +\let \SetProperty \@undefined + +\let \RecordProperties \@undefined +\let \RefProperty \@undefined +\let \RefUndefinedWarn \@undefined + +\let \IfPropertyExistTF \@undefined +\let \IfLabelExistTF \@undefined +\let \IfPropertyRecordedTF \@undefined + +\let\new@label@record \@undefined +\let\@kernel@new@label@record@testdef\@undefined +\EndModuleRelease +\ExplSyntaxOff %%% From File: ltmiscen.dtx +\IncludeInRelease{2023/11/01}% + {\enddocument}{check property labels}% +\def\enddocument{% + \@kernel@before@enddocument + \UseOneTimeHook{enddocument}% + \@kernel@after@enddocument + \@checkend{document}% + \clearpage + \UseOneTimeHook{enddocument/afterlastpage}% + \@kernel@after@enddocument@afterlastpage + \begingroup + \if@filesw + \immediate\closeout\@mainaux + \let\@setckpt\@gobbletwo + \let\@newl@bel\@testdef + \let\new@label@record\@kernel@new@label@record@testdef + \@tempswafalse + \makeatletter \@@input\jobname.aux + \fi + \UseOneTimeHook{enddocument/afteraux}% + \UseOneTimeHook{enddocument/info}% + \endgroup + \UseOneTimeHook{enddocument/end}% + \deadcycles\z@\@@end} +\NewHook{enddocument} +\NewHook{enddocument/afterlastpage} +\NewHook{enddocument/afteraux} +\NewHook{enddocument/info} +\NewHook{enddocument/end} +\AddToHook{enddocument/info}[kernel/filelist]{\@dofilelist} +\AddToHook{enddocument/info}[kernel/warnings]{\@enddocument@kernel@warnings} +\AddToHook{enddocument/info}[kernel/release]{% + \let\show@release@info\wlog + \show@release@info{ ***********}% + \the\LaTeXReleaseInfo + \show@release@info{ ***********}} + +\DeclareHookRule{enddocument/info}{kernel/release}{before}{kernel/filelist} +\DeclareHookRule{enddocument/info}{kernel/filelist}{before}{kernel/warnings} +\def\@enddocument@kernel@warnings{% + \ifdim \font@submax >\fontsubfuzz\relax + \@font@warning{Size substitutions with differences\MessageBreak + up to \font@submax\space have occurred.\@gobbletwo}% + \fi + \@defaultsubs + \@refundefined + \if@filesw + \ifx \@multiplelabels \relax + \if@tempswa + \@latex@warning@no@line{Label(s) may have changed. + Rerun to get cross-references right}% + \fi + \else + \@multiplelabels + \fi + \ifx \@extra@page@added \relax + \@latex@warning@no@line{Temporary extra page added at the end. + Rerun to get it removed}% + \fi + \fi +} +\EndIncludeInRelease \IncludeInRelease{2020/10/01}% {\enddocument}{Use Hooks}% \def\enddocument{% @@ -13225,7 +13689,6 @@ of this package available from CTAN} \IncludeInRelease{2018/12/01}% {\protected@file@percent}{Mask line endings}% \protected\def\protected@file@percent{} - \catcode`\^^A=9 \long\gdef\add@percent@to@temptokena #1\protected@file@percent#2\add@percent@to@temptokena @@ -13443,6 +13906,21 @@ of this package available from CTAN} \kernel@make@fragile\raggedleft \EndIncludeInRelease +\IncludeInRelease{2023/11/01}% + {\@vobeytabs}{Obeyed tabs}% +{\catcode`\ =\active% +\gdef\@vobeyspaces{\catcode`\ \active\let \@xobeysp\@vobeytabs}} +{\catcode`\^^I=\active +\gdef\@vobeytabs{\catcode`\^^I\active\let^^I\@xobeytab}% +\global\let^^I=\space +} +\EndIncludeInRelease +\IncludeInRelease{0000/00/00}% + {\@vobeytabs}{Obeyed tabs}% +{\catcode`\ =\active% +\gdef\@vobeyspaces{\catcode`\ \active\let \@xobeysp}} +\let\@vobeytabs\@undefined +\EndIncludeInRelease \IncludeInRelease{2017-04-15}{\@verbatim}% {Disable hyphenation in verbatim}% \def\@verbatim{\trivlist \item\relax @@ -13494,17 +13972,6 @@ of this package available from CTAN} \DeclareRobustCommand\verbvisiblespace {\leavevmode{\usefont{OT1}{cmtt}{m}{n}\asciispace}} % xetex/luatex version \fi - -\def\@setupverbvisiblespace{% - \ifx\verbvisiblespace\asciispace - \let\@xobeysp\asciispace - \else - \setbox\z@\hbox{x}% - \setbox\@verbvisiblespacebox\hbox to\wd\z@{\hss\verbvisiblespace\hss}% - \def\@xobeysp{\leavevmode\copy\@verbvisiblespacebox}% - \fi -} - \newbox\@verbvisiblespacebox \@namedef{verbatim*}{\@verbatim \@setupverbvisiblespace @@ -13521,9 +13988,62 @@ of this package available from CTAN} \let\@setupverbvisiblespace\@undefined \let\@verbvisiblespacebox \@undefined \EndIncludeInRelease +\IncludeInRelease{2023/11/01}% + {\@setupverbvisiblespace}{Setup visible tab for \verb}% +\def\@setupverbvisiblespace{% + \ifx\verbvisiblespace\asciispace + \let\@xobeysp\asciispace + \else + \setbox\z@\hbox{x}% + \setbox\@verbvisiblespacebox\hbox to\wd\z@{\hss\verbvisiblespace\hss}% + \def\@xobeysp{\leavevmode\copy\@verbvisiblespacebox}% + \fi + \@setupverbvisibletab +} +\EndIncludeInRelease +\IncludeInRelease{2018/12/01}% + {\@setupverbvisiblespace}{Setup visible space for \verb}% +\def\@setupverbvisiblespace{% + \ifx\verbvisiblespace\asciispace + \let\@xobeysp\asciispace + \else + \setbox\z@\hbox{x}% + \setbox\@verbvisiblespacebox\hbox to\wd\z@{\hss\verbvisiblespace\hss}% + \def\@xobeysp{\leavevmode\copy\@verbvisiblespacebox}% + \fi +} +\EndIncludeInRelease +\IncludeInRelease{0000/00/00}% + {\@setupverbvisiblespace}{Setup visible space for \verb}% +\let\@setupverbvisiblespace\@undefined +\EndIncludeInRelease +\IncludeInRelease{2023/11/01}% + {\@setupverbvisibletab}{Setup visible tab for \verb}% +\def\@setupverbvisibletab{\let\@xobeytab\@xobeysp} +\EndIncludeInRelease +\IncludeInRelease{0000/00/00}% + {\@setupverbvisibletab}{Setup visible tab for \verb}% +\let\@setupverbvisibletab\@undefined +\EndIncludeInRelease +\IncludeInRelease{2023/11/01}% + {\@sverb}{Support visible tabs}% +\def\@sverb#1{\if\noexpand#1 \expandafter\@sverb\else\@@sverb{#1}\fi} +\def\@@sverb#1{% + \catcode`#1\active + \lccode`\~`#1% + \gdef\verb@balance@group{\verb@egroup + \@latex@error{\noexpand\verb illegal in argument}\@ehc}% + \aftergroup\verb@balance@group + \lowercase{\let~\verb@egroup}% + \ifnum0% + \ifnum\catcode`\ =\active\else 1\fi + \ifnum\catcode`\^^I=\active\else 1\fi + =0 % + \else \@setupverbvisiblespace \@vobeyspaces \fi +} +\EndIncludeInRelease \IncludeInRelease{2020/10/01}% {\@sverb}{Drop spaces before \verb delimiter}% -\def\@sverb#1{\if\noexpand#1 \expandafter\@sverb\else\@@sverb{#1}\fi} \def\@@sverb#1{% \catcode`#1\active \lccode`\~`#1% @@ -16609,7 +17129,7 @@ of this package available from CTAN} \EndIncludeInRelease %%% From File: ltfilehook.dtx \providecommand\ltfilehookversion{v1.0o} -\providecommand\ltfilehookdate{2023/04/02} +\providecommand\ltfilehookdate{2023/07/10} \IncludeInRelease{2020/10/01}% {\CurrentFile}{Hook management file}% \ExplSyntaxOn diff --git a/Master/texmf-dist/tex/latex-dev/base/ltluatex.lua b/Master/texmf-dist/tex/latex-dev/base/ltluatex.lua index 5573fc75636..45bd9dff75b 100644 --- a/Master/texmf-dist/tex/latex-dev/base/ltluatex.lua +++ b/Master/texmf-dist/tex/latex-dev/base/ltluatex.lua @@ -230,7 +230,11 @@ local luafunction_count_name = luafunction_count_name or "e@alloc@luafunction@count" local function new_luafunction(name) tex_setcount("global", luafunction_count_name, - tex_count[luafunction_count_name] + 1) + math.max( + #(lua.get_functions_table()), + tex_count[luafunction_count_name]) + + 1) + lua.get_functions_table()[tex_count[luafunction_count_name]] = false if tex_count[luafunction_count_name] > 65534 then luatexbase_error("No room for a new luafunction register") end @@ -758,7 +762,7 @@ end luatexbase.uninstall = uninstall create_callback('pre_mlist_to_hlist_filter', 'list') create_callback('mlist_to_hlist', 'exclusive', node.mlist_to_hlist) -create_callback('post_mlist_to_hlist_filter', 'list') +create_callback('post_mlist_to_hlist_filter', 'reverselist') function shared_callbacks.mlist_to_hlist.handler(head, display_type, need_penalties) local current = call_callback("pre_mlist_to_hlist_filter", head, display_type, need_penalties) if current == false then diff --git a/Master/texmf-dist/tex/latex-dev/base/ltluatex.tex b/Master/texmf-dist/tex/latex-dev/base/ltluatex.tex index ddef389f103..c42a75e40b1 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}% -[2023/01/19 v1.2b +[2023/08/03 v1.2c LuaTeX support for plain TeX (core) ] \edef\etatcatcode{\the\catcode`\@} diff --git a/Master/texmf-dist/tex/latex-dev/base/structuredlog.sty b/Master/texmf-dist/tex/latex-dev/base/structuredlog.sty index cd77c7b8d2c..a5392defc98 100644 --- a/Master/texmf-dist/tex/latex-dev/base/structuredlog.sty +++ b/Master/texmf-dist/tex/latex-dev/base/structuredlog.sty @@ -43,7 +43,7 @@ %% extension .ins) which are part of the distribution. %%% From File: ltfilehook.dtx \providecommand\ltfilehookversion{v1.0o} -\providecommand\ltfilehookdate{2023/04/02} +\providecommand\ltfilehookdate{2023/07/10} \ProvidesExplPackage {structuredlog}{\ltfilehookdate}{\ltfilehookversion} {Structuring the TeX transcript file} diff --git a/Master/texmf-dist/tex/latex-dev/firstaid/everysel-ltx.sty b/Master/texmf-dist/tex/latex-dev/firstaid/everysel-ltx.sty deleted file mode 100644 index c7e7e6e06ca..00000000000 --- a/Master/texmf-dist/tex/latex-dev/firstaid/everysel-ltx.sty +++ /dev/null @@ -1,46 +0,0 @@ -%% -%% This is file `everysel-ltx.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% latex2e-first-aid-for-external-files.dtx (with options: `everysel-ltx') -%% -%% The source is maintained by the LaTeX Project team and bug -%% reports for it can be opened at https://latex-project.org/bugs/ -%% (but please observe conditions on bug reports sent to that address!) -%% -%% -%% Copyright (C) 2020-2021 -%% The LaTeX Project and any individual authors listed elsewhere -%% in this file. -%% -%% This file was generated from file(s) of the Standard LaTeX `First Aid Bundle'. -%% ------------------------------------------------------------------------------ -%% -%% It may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3c -%% of this license or (at your option) any later version. -%% The latest version of this license is in -%% https://www.latex-project.org/lppl.txt -%% and version 1.3c or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. -%% -%% This file may only be distributed together with a copy of the LaTeX -%% `First Aid Bundle'. You may however distribute the LaTeX `First Aid Bundle' -%% without such generated files. -%% -%% File: latex2e-first-aid-for-external-files.dtx (C) Copyright 2020-2023 -%% -%% The LaTeX Project and any individual authors listed elsewhere -%% in this file. -\ProvidesPackage{everysel-ltx} - [2020/12/04 v1.0a - Emulation of the original everysel^^Jpackage with kernel methods] -\newcommand*{\EverySelectfont}[1] - {\AddToHook{selectfont}{#1}} -\newcommand*{\AtNextSelectfont}[1] - {\AddToHookNext{selectfont}{#1}} -\endinput -%% -%% End of file `everysel-ltx.sty'. diff --git a/Master/texmf-dist/tex/latex-dev/firstaid/filehook-ltx.sty b/Master/texmf-dist/tex/latex-dev/firstaid/filehook-ltx.sty index 2415a38f1c8..ffff6eb4d99 100644 --- a/Master/texmf-dist/tex/latex-dev/firstaid/filehook-ltx.sty +++ b/Master/texmf-dist/tex/latex-dev/firstaid/filehook-ltx.sty @@ -11,7 +11,7 @@ %% (but please observe conditions on bug reports sent to that address!) %% %% -%% Copyright (C) 2020-2021 +%% Copyright (C) 2020-2023 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% diff --git a/Master/texmf-dist/tex/latex-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 df4b77ed714..4cfc1c4d1f8 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 @@ -11,7 +11,7 @@ %% (but please observe conditions on bug reports sent to that address!) %% %% -%% Copyright (C) 2020-2021 +%% Copyright (C) 2020-2023 %% The LaTeX Project and any individual authors listed elsewhere %% in this file. %% @@ -34,8 +34,8 @@ %% %% The LaTeX Project and any individual authors listed elsewhere %% in this file. -\def\LaTeXFirstAidDate{2023/05/20} -\def\LaTeXFirstAidVersion{v1.0z} +\def\LaTeXFirstAidDate{2023/07/18} +\def\LaTeXFirstAidVersion{v1.1a} \ProvidesFile{latex2e-first-aid-for-external-files.ltx} [\LaTeXFirstAidDate\space \LaTeXFirstAidVersion\space LaTeX kernel fixes to external files and packages] @@ -167,19 +167,6 @@ \ngermanTeX }% } -\AddToHook{file/memoir.cls/before}[firstaid]{% - \expandafter\def\expandafter\@tempa\string\dimen{}% - \edef\kernel@stockheight{\expandafter\@tempa\meaning\stockheight}% - \edef\kernel@stockwidth{\expandafter\@tempa\meaning\stockwidth}% - \let\stockheight\@undefined - \let\stockwidth\@undefined -} -\AddToHook{file/memoir.cls/after}[firstaid]{% - \dimen\kernel@stockheight=\stockheight - \dimen\kernel@stockwidth=\stockwidth - \dimendef\stockheight=\kernel@stockheight - \dimendef\stockwidth=\kernel@stockwidth -} \endinput %% %% End of file `latex2e-first-aid-for-external-files.ltx'. |