From 68000a49928e6bb364140f025edf109855b643b2 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 22 Oct 2021 21:41:02 +0000 Subject: latex-dev (22oct21) git-svn-id: svn://tug.org/texlive/trunk@60842 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/tex/latex-dev/base/latexrelease.sty | 276 ++++++++++++++++++--- 1 file changed, 246 insertions(+), 30 deletions(-) (limited to 'Master/texmf-dist/tex/latex-dev/base/latexrelease.sty') diff --git a/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty b/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty index 0e580141cd2..96c73e3caa2 100644 --- a/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty +++ b/Master/texmf-dist/tex/latex-dev/base/latexrelease.sty @@ -4441,8 +4441,8 @@ of this package available from CTAN} \catcode`\^^@=\@latexrelease@catcode@null\relax %%% From File: lthooks.dtx -\def\lthooksversion{v1.0r} -\def\lthooksdate{2021/09/06} +\def\lthooksversion{v1.0s} +\def\lthooksdate{2021/09/28} \ExplSyntaxOn \NewModuleRelease{2020/10/01}{lthooks} {The~hook~management~system} @@ -4844,7 +4844,7 @@ of this package available from CTAN} } \cs_new_protected:Npn \__hook_try_declaring_generic_hook:nNNnn #1 { - \__hook_if_file_hook:wTF #1 / \s__hook_mark {#1} + \__hook_if_file_hook:wTF #1 / \s__hook_mark { \exp_args:Ne \__hook_try_declaring_generic_hook_split:nNNnn { \exp_args:Ne \__hook_file_hook_normalize:n {#1} } @@ -5617,7 +5617,7 @@ of this package available from CTAN} } \cs_new_protected:Npn \__hook_try_file_hook:n #1 { - \__hook_if_file_hook:wTF #1 / \s__hook_mark {#1} + \__hook_if_file_hook:wTF #1 / \s__hook_mark { \exp_args:Ne \__hook_if_usable_use:n { \exp_args:Ne \__hook_file_hook_normalize:n {#1} } @@ -5997,16 +5997,21 @@ of this package available from CTAN} %% File: ltcmdhooks.dtx (C) Copyright 2020-2021 %% Frank Mittelbach, Phelype Oleinik, LaTeX Team %%% From File: ltcmdhooks.dtx -\def\ltcmdhooksversion{v1.0d} -\def\ltcmdhooksdate{2021/08/25} +\def\ltcmdhooksversion{v1.0f} +\def\ltcmdhooksdate{2021/10/20} \ExplSyntaxOn \NewModuleRelease{2021/06/01}{ltcmdhooks} {The~hook~management~system~for~commands} \tl_new:N \g_hook_patch_action_list_tl \int_new:N \l__hook_patch_num_args_int \tl_new:N \l__hook_patch_prefixes_tl -\tl_new:N \l__hook_patch_param_text_tl -\tl_new:N \l__hook_patch_replacement_tl +\tl_new:N \l__hook_param_text_tl +\tl_new:N \l__hook_replace_text_tl +\tl_const:Nn \c__hook_hash_tl { # # } +\cs_new_eq:NN \__hook_exp_not:NN ? +\cs_new_eq:NN \__hook_def_cmd:w ? +\quark_new:N \q__hook_recursion_tail +\quark_new:N \q__hook_recursion_stop \prop_new:N \g__hook_delayed_patches_prop \cs_new_protected:Npn \__hook_patch_debug:x #1 { \__hook_debug:n { \iow_term:x { [lthooks]~#1 } } } @@ -6154,19 +6159,40 @@ of this package available from CTAN} } \int_compare:nNnTF { \l__hook_patch_num_args_int } > { \c_zero_int } { - \tl_set:Nx \l__hook_patch_param_text_tl - { \bool_if:NTF #1 { [####1] } { ####1 } } - \tl_set:Nx \l__hook_patch_replacement_tl - { \bool_if:NTF #1 { [####1] } { {####1} } } + \tl_set:Nx \l__hook_tmpa_tl { \bool_if:NTF #1 { [ ] } { { } } } \int_step_inline:nnn { 2 } { \l__hook_patch_num_args_int } + { \tl_put_right:Nn \l__hook_tmpa_tl { { } } } + \exp_args:NNo \exp_args:No \__hook_if_has_hash:nTF + { \exp_after:wN #2 \l__hook_tmpa_tl } + { \cs_set_eq:NN \__hook_exp_not:n \exp_not:n } + { \cs_set_eq:NN \__hook_exp_not:n \use:n } + \cs_set_protected:Npn \__hook_tmp:w ##1 ##2 { - \tl_put_right:Nn \l__hook_patch_param_text_tl { ## ####1 } - \tl_put_right:Nn \l__hook_patch_replacement_tl { { ## ####1 } } + ##1 \l__hook_param_text_tl { \use:n ##2 } + ##1 \l__hook_replace_text_tl { \__hook_exp_not:n {##2} } } + \bool_if:NTF #1 + { \__hook_tmp:w \tl_set:Nx { [ \c__hook_hash_tl 1 ] } } + { \__hook_tmp:w \tl_set:Nx { { \c__hook_hash_tl 1 } } } + \int_step_inline:nnn { 2 } { \l__hook_patch_num_args_int } + { \__hook_tmp:w \tl_put_right:Nx { { \c__hook_hash_tl ##1 } } } + \tl_set:Nx \l__hook_replace_text_tl + { \exp_not:N #2 \exp_not:V \l__hook_replace_text_tl } + \tl_set:Nx \l__hook_replace_text_tl + { + \token_if_eq_meaning:NNTF \__hook_exp_not:n \exp_not:n + { \exp_args:NNV \exp_args:No \__hook_double_hashes:n } + { \exp_args:NV \exp_not:o } + \l__hook_replace_text_tl + } + \cs_set_eq:NN \__hook_def_cmd:w \tex_gdef:D + \cs_set_eq:NN \__hook_exp_not:NN \prg_do_nothing: } { - \tl_clear:N \l__hook_patch_param_text_tl - \tl_clear:N \l__hook_patch_replacement_tl + \tl_clear:N \l__hook_param_text_tl + \tl_set_eq:NN \l__hook_replace_text_tl #2 + \cs_set_eq:NN \__hook_def_cmd:w \tex_xdef:D + \cs_set:Npn \__hook_exp_not:NN ##1 { \exp_not:N ##1 \exp_not:N } } \group_begin: \int_set:Nn \tex_escapechar:D { `\/ } @@ -6178,18 +6204,22 @@ of this package available from CTAN} } \use:x { - \l__hook_patch_prefixes_tl \tex_def:D - \exp_not:N #2 \exp_not:V \l__hook_patch_param_text_tl - { - \str_if_eq:nnT {#4} { before } - { \exp_not:N \UseHook { cmd / #3 / #4 } } - \exp_args:No \exp_not:o - { \exp_after:wN #2 \l__hook_patch_replacement_tl } - \str_if_eq:nnT {#4} { after } - { \exp_not:N \UseHook { cmd / #3 / #4 } } - } + \__hook_redefine_with_hooks:Nnnn \exp_not:N #2 + \str_if_eq:nnTF {#4} { after } + { \use_ii_i:nn } + { \use:nn } + { { \__hook_exp_not:NN \exp_not:N \UseHook { cmd / #3 / #4 } } } + { { } } + { \__hook_exp_not:NN \exp_not:V \l__hook_replace_text_tl } } } +\cs_new_protected:Npn \__hook_redefine_with_hooks:Nnnn #1 #2 #3 #4 + { + \l__hook_patch_prefixes_tl + \exp_after:wN \__hook_def_cmd:w + \exp_after:wN #1 \l__hook_param_text_tl + { #2 #4 #3 } + } \cs_new:Npn \__hook_make_prefixes:w / #1 / { \tl_if_empty:nF {#1} @@ -6198,6 +6228,58 @@ of this package available from CTAN} \__hook_make_prefixes:w / } } +\prg_new_conditional:Npnn \__hook_if_has_hash:n #1 { TF } + { \__hook_if_has_hash:w #1 ## \s__hook_mark } +\cs_new:Npn \__hook_if_has_hash:w #1 + { + \tl_if_single_token:nTF {#1} + { + \token_if_eq_catcode:NNTF ## #1 + { \__hook_if_has_hash_check:w } + { \__hook_if_has_hash:w } + } + { \__hook_if_has_hash:w #1 } + } +\cs_new:Npn \__hook_if_has_hash_check:w #1 \s__hook_mark + { \tl_if_empty:nTF {#1} { \prg_return_false: } { \prg_return_true: } } +\cs_new:Npn \__hook_double_hashes:n #1 + { \__hook_double_hashes:w #1 \q__hook_recursion_tail \q__hook_recursion_stop } +\cs_new:Npn \__hook_double_hashes:w #1 \q__hook_recursion_stop + { + \tl_if_head_is_N_type:nTF {#1} + { \__hook_double_hashes_output:N } + { + \tl_if_head_is_group:nTF {#1} + { \__hook_double_hashes_group:n } + { \__hook_double_hashes_space:w } + } + #1 \q__hook_recursion_stop + } +\cs_new:Npn \__hook_double_hashes_output:N #1 + { + \if_meaning:w \q__hook_recursion_tail #1 + \__hook_double_hashes_stop:w + \fi: + \if_meaning:w \c__hook_hash_tl #1 + \use_i:nnnn + \fi: + \use:n + { + \if_catcode:w ## \exp_not:N #1 + \exp_after:wN \use_ii:nnnn + \fi: + \use_none:n + { \exp_not:n { #1 #1 } } + } + \exp_not:N #1 + \__hook_double_hashes:w + } +\cs_new:Npn \__hook_double_hashes_stop:w #1 \q__hook_recursion_stop { \fi: } +\cs_new:Npn \__hook_double_hashes_group:n #1 + { { \__hook_double_hashes:n {#1} } \__hook_double_hashes:w } +\exp_last_unbraced:NNo +\cs_new:Npn \__hook_double_hashes_space:w \c_space_tl + { ~ \__hook_double_hashes:w } \cs_new_protected:Npn \__hook_retokenize_patch:Nnn #1 #2 #3 { \__hook_patch_debug:x { ..~command~can~only~be~patched~by~rescanning } @@ -6298,7 +6380,7 @@ of this package available from CTAN} { \exp_not:N \__hook_tmp:w \token_to_meaning:N #1 \s__hook_mark } } \tl_rescan:nV { #4 \__hook_patch_required_catcodes: } \l__hook_tmpa_tl - \cs_set_eq:NN #1 \kerneltmpDoNotUse + \cs_gset_eq:NN #1 \kerneltmpDoNotUse } \IncludeInRelease{2021/11/15}{wrong-cmd-hook}% {Standardise~generic~hook~names} @@ -6387,8 +6469,8 @@ of this package available from CTAN} %%% From File: ltpar.dtx %% File: ltpara.dtx (C) Copyright 2020-2021 %%% From File: ltpara.dtx -\def\ltparaversion{v1.0j} -\def\ltparadate{2021/09/18} +\def\ltparaversion{v1.0k} +\def\ltparadate{2021/10/19} \ExplSyntaxOn @@ -6526,6 +6608,9 @@ of this package available from CTAN} \cs_set_eq:NN \@@par \tex_par:D \cs_set_eq:NN \endgraf \tex_par:D +\tex_everypar:D {} +\cs_set_eq:NN \everypar \tex_everypar:D + \EndModuleRelease \ExplSyntaxOff %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -7118,6 +7203,7 @@ of this package available from CTAN} \IncludeInRelease{2020/10/01}% {\@include}{Spaces in file names and hooks}% \def\@include#1 {% +\ifx\@nodocument\relax \clearpage \if@filesw \immediate\write\@mainaux{\string\@input{#1.aux}}% @@ -7153,7 +7239,12 @@ of this package available from CTAN} \deadcycles\z@ \@nameuse{cp@#1}% \fi - \let\@auxout\@mainaux} + \let\@auxout\@mainaux +\else +\@latex@warning{% + \noexpand\include should only be used after \string\begin{document}}% +\@input@{#1}% +\fi} \NewHook{include/before} \NewReversedHook{include/end} \NewReversedHook{include/after} @@ -8839,8 +8930,86 @@ of this package available from CTAN} }% } \EndIncludeInRelease +\IncludeInRelease{2021/11/15} + {\document@select@group}{\document@select@group}% +\ifx\c@localmathalphabets\@undefined + \newcount\c@localmathalphabets + \setcounter{localmathalphabets}{2} +\fi +\def\document@select@group#1#2#3#4{% + \ifx\math@bgroup\bgroup\else\relax\expandafter\@firstofone\fi + {% + \ifmmode + \ifnum\csname c@mv@\math@version\endcsname<\e@mathgroup@top + \ifnum \numexpr\e@mathgroup@top-\c@localmathalphabets + >\csname c@mv@\math@version\endcsname + \else + \ifcsname mv@\math@version @frozen\endcsname \else + \expandafter\freeze@math@version\expandafter{\math@version}% + \fi + \fi + \begingroup + \escapechar\m@ne + \getanddefine@fonts{\csname c@mv@\math@version\endcsname}#3% + \globaldefs\@ne \math@fonts + \endgroup + \expandafter\extract@alph@from@version + \csname mv@\math@version\expandafter\endcsname + \expandafter{\number\csname + c@mv@\math@version\endcsname}% + #1% + \global\advance\csname c@mv@\math@version\endcsname\@ne + \else + \let#1\relax + \@latex@error{Too many math alphabets used in + version \math@version}% + \@eha + \fi + \else \expandafter\expandafter\expandafter\non@alpherr\fi + \expandafter#1\ifx\math@bgroup\bgroup{#4}\else#4\fi + }% +} +\ExplSyntaxOn +\cs_new_protected:Npn\freeze@math@version #1 { + \@font@info{Freeze~ math~ alphabet~ allocation~ in~ version~ + #1.\MessageBreak + Allocated~math~groups:~\int_use:c{ c@mv@ #1 }~ + (local:~ \int_use:N\c@localmathalphabets) } + \cs_gset_eq:cc { mv@#1@frozen }{ mv@#1 } + \tl_gset:cx { g__nfss_frozen_mv_ #1 _tl }{ \int_use:c { c@mv@#1 } } + \group_insert_after:N \__nfss_init_mv_freeze:N \exp_after:wN + \group_insert_after:N \cs:w mv@#1@reset \cs_end: + \tl_gput_right:No \check@mathfonts + { + \exp_after:wN \group_insert_after:N \cs:w mv@#1@reset \cs_end: + } + \cs_gset:cpn{mv@#1@reset} + { + \int_compare:nNnTF { \int_use:c{c@mv@#1} } > + { \tl_use:c{g__nfss_frozen_mv_ #1 _tl} } + { + \@font@info{Undo~ math~ alphabet~ allocation~ in~ version~ #1} + \cs_gset_eq:cc { mv@#1 }{ mv@#1@frozen } + \int_gset:cn { c@mv@#1 }{ \tl_use:c {g__nfss_frozen_mv_ #1 _tl} } + \group_begin: + \cs_set_eq:NN \getanddefine@fonts \use_none:nn + \use:c {mv@#1} + \group_end: + } + { + \@font@info{No~ math~ alphabet~ change~ to~ frozen~ version~ #1} + } + } +} +\cs_new_protected:Npn \__nfss_init_mv_freeze:N #1 {% + \mode_if_math:T { \group_insert_after:N \__nfss_init_mv_freeze:N + \group_insert_after:N } #1 +} +\ExplSyntaxOff +\EndIncludeInRelease \IncludeInRelease{2020/10/01} {\document@select@group}{\document@select@group}% + \def\document@select@group#1#2#3#4{% \ifx\math@bgroup\bgroup\else\relax\expandafter\@firstofone\fi {% @@ -8930,6 +9099,18 @@ of this package available from CTAN} }% } \EndIncludeInRelease +\IncludeInRelease{2021/11/15}% + {\DeclareMathVersion}{local alphabets}% +\def\DeclareMathVersion#1{% + \@namedef{g__nfss_frozen_mv_#1_tl}{}% + \expandafter\new@mathversion\csname mv@#1\endcsname} +\@onlypreamble\DeclareMathVersion +\EndIncludeInRelease +\IncludeInRelease{0000/00/00}% + {\DeclareMathVersion}{local alphabets}% +\def\DeclareMathVersion#1{% + \expandafter\new@mathversion\csname mv@#1\endcsname} +\EndIncludeInRelease \IncludeInRelease{2019/10/01}% {DeclareMathAccent}{Make math accents robust}% \def\DeclareMathAccent#1#2#3#4{% @@ -11372,6 +11553,23 @@ of this package available from CTAN} \baselineskip\normalbaselineskip \sloppy} \EndIncludeInRelease +\IncludeInRelease{2021/11/15}% + {\@mpfootnotetext}{footnotetext tagging}% +\long\def\@mpfootnotetext#1{% + \global\setbox\@mpfootins\vbox{% + \unvbox\@mpfootins + \reset@font\footnotesize + \hsize\columnwidth + \@parboxrestore + \def\@currentcounter{mpfootnote}% + \protected@edef\@currentlabel + {\csname p@mpfootnote\endcsname\@thefnmark}% + \color@begingroup + \@makefntext{% + \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% + \par + \color@endgroup}} +\EndIncludeInRelease \IncludeInRelease{2021/06/01}% {\@mpfootnotetext}{footnotetext tagging}% \long\def\@mpfootnotetext#1{% @@ -12427,6 +12625,24 @@ of this package available from CTAN} {\@textsubscript}{subscript baseline}% \let\@textsubscript\@undefined \EndIncludeInRelease +\IncludeInRelease{2021/11/15}% + {\@footnotetext}{footnotetext tagging}% +\long\def\@footnotetext#1{\insert\footins{% + \reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore + \def\@currentcounter{footnote}% + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark + }% + \color@begingroup + \@makefntext{% + \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% + \par + \color@endgroup}}% +\EndIncludeInRelease \IncludeInRelease{2021/06/01}% {\@footnotetext}{footnotetext tagging}% \long\def\@footnotetext#1{\insert\footins{% -- cgit v1.2.3