diff options
author | Karl Berry <karl@freefriends.org> | 2023-05-16 20:22:00 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-05-16 20:22:00 +0000 |
commit | 8e9d8b027e86eefeb1788f42ec5fc0a8c76548ba (patch) | |
tree | 23fc8c8906eff72625be83d276d39e516ecb1f41 /Master/texmf-dist/tex/latex | |
parent | e66174d7e5c8c2f71571c928e0d6c5a8b037a904 (diff) |
l3kernel (16may23)
git-svn-id: svn://tug.org/texlive/trunk@67134 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
4 files changed, 59 insertions, 655 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index 2630452ff12..583482f5ba5 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -71,7 +71,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2023-05-11}% +\def\ExplFileDate{2023-05-15}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -129,23 +129,6 @@ L3 programming layer (code)% }% %% File: l3bootstrap.dtx -\begingroup - \expandafter\ifx\csname directlua\endcsname\relax - \else - \directlua{% - local i - local t = { } - for _,i in pairs(tex.extraprimitives("luatex")) do - if string.match(i,"^U") then - if not string.match(i,"^Uchar$") then %$ - table.insert(t,i) - end - end - end - tex.enableprimitives("", t) - }% - \fi -\endgroup \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname pdfstrcmp\endcsname\relax \let\pdfstrcmp\strcmp @@ -183,27 +166,23 @@ \def\ShortText{Required primitives not found}% \def\LongText% {% - The L3 programming layer requires the e-TeX primitives and additional - \LineBreak functionality as described in the README file. + The L3 programming layer requires the e-TeX primitives and the + \LineBreak 'pdfTeX extensions' as described in the README file. \LineBreak These are available in the engines\LineBreak - - pdfTeX v1.40.0\LineBreak - - XeTeX v0.99992\LineBreak + - pdfTeX v1.40.20\LineBreak + - XeTeX v0.999991\LineBreak - LuaTeX v1.10\LineBreak - - e-(u)pTeX mid-2012\LineBreak + - e-(u)pTeX v3.8.2\LineBreak - Prote (2021)\LineBreak or later.\LineBreak \LineBreak }% \ifnum0% - \expandafter\ifx\csname expanded\endcsname\relax - \expandafter\ifx\csname pdfstrcmp\endcsname\relax\else 1\fi + \expandafter\ifx\csname luatexversion\endcsname\relax + \expandafter\ifx\csname expanded\endcsname\relax\else 1\fi \else - \expandafter\ifx\csname luatexversion\endcsname\relax - 1% - \else - \ifnum\luatexversion<110 \else 1\fi - \fi + \ifnum\luatexversion<110 \else 1\fi \fi =0 % \newlinechar`\^^J % @@ -229,20 +208,6 @@ Type H <return> for immediate help}\def~{\errmessage{% }% \fi \next -\begingroup - \def\@tempa{LaTeX2e}% - \def\next{}% - \ifx\fmtname\@tempa - \expandafter\ifx\csname extrafloats\endcsname\relax - \def\next - {% - \RequirePackage{etex}% - \csname reserveinserts\endcsname{32}% - }% - \fi - \fi -\expandafter\endgroup -\next \protected\edef\ExplSyntaxOff {% \protected\def\noexpand\ExplSyntaxOff{}% @@ -1389,64 +1354,6 @@ Type H <return> for immediate help}\def~{\errmessage{% \tex_fi:D \tex_fi:D \tex_fi:D -\tex_ifdefined:D \luatexsuppressfontnotfounderror - \tex_let:D \tex_alignmark:D \luatexalignmark - \tex_let:D \tex_aligntab:D \luatexaligntab - \tex_let:D \tex_attribute:D \luatexattribute - \tex_let:D \tex_attributedef:D \luatexattributedef - \tex_let:D \tex_catcodetable:D \luatexcatcodetable - \tex_let:D \tex_clearmarks:D \luatexclearmarks - \tex_let:D \tex_crampeddisplaystyle:D \luatexcrampeddisplaystyle - \tex_let:D \tex_crampedscriptscriptstyle:D - \luatexcrampedscriptscriptstyle - \tex_let:D \tex_crampedscriptstyle:D \luatexcrampedscriptstyle - \tex_let:D \tex_crampedtextstyle:D \luatexcrampedtextstyle - \tex_let:D \tex_fontid:D \luatexfontid - \tex_let:D \tex_formatname:D \luatexformatname - \tex_let:D \tex_gleaders:D \luatexgleaders - \tex_let:D \tex_initcatcodetable:D \luatexinitcatcodetable - \tex_let:D \tex_latelua:D \luatexlatelua - \tex_let:D \tex_luaescapestring:D \luatexluaescapestring - \tex_let:D \tex_luafunction:D \luatexluafunction - \tex_let:D \tex_mathstyle:D \luatexmathstyle - \tex_let:D \tex_nokerns:D \luatexnokerns - \tex_let:D \tex_noligs:D \luatexnoligs - \tex_let:D \tex_outputbox:D \luatexoutputbox - \tex_let:D \tex_pageleftoffset:D \luatexpageleftoffset - \tex_let:D \tex_pagetopoffset:D \luatexpagetopoffset - \tex_let:D \tex_postexhyphenchar:D \luatexpostexhyphenchar - \tex_let:D \tex_posthyphenchar:D \luatexposthyphenchar - \tex_let:D \tex_preexhyphenchar:D \luatexpreexhyphenchar - \tex_let:D \tex_prehyphenchar:D \luatexprehyphenchar - \tex_let:D \tex_savecatcodetable:D \luatexsavecatcodetable - \tex_let:D \tex_scantextokens:D \luatexscantextokens - \tex_let:D \tex_suppressifcsnameerror:D - \luatexsuppressifcsnameerror - \tex_let:D \tex_suppresslongerror:D \luatexsuppresslongerror - \tex_let:D \tex_suppressmathparerror:D - \luatexsuppressmathparerror - \tex_let:D \tex_suppressoutererror:D \luatexsuppressoutererror - \tex_let:D \tex_Uchar:D \luatexUchar - \tex_let:D \tex_suppressfontnotfounderror:D - \luatexsuppressfontnotfounderror - \tex_let:D \tex_bodydir:D \luatexbodydir - \tex_let:D \tex_boxdir:D \luatexboxdir - \tex_let:D \tex_leftghost:D \luatexleftghost - \tex_let:D \tex_localbrokenpenalty:D \luatexlocalbrokenpenalty - \tex_let:D \tex_localinterlinepenalty:D - \luatexlocalinterlinepenalty - \tex_let:D \tex_localleftbox:D \luatexlocalleftbox - \tex_let:D \tex_localrightbox:D \luatexlocalrightbox - \tex_let:D \tex_mathdir:D \luatexmathdir - \tex_let:D \tex_pagebottomoffset:D \luatexpagebottomoffset - \tex_let:D \tex_pagedir:D \luatexpagedir - \tex_let:D \tex_pageheight:D \luatexpageheight - \tex_let:D \tex_pagerightoffset:D \luatexpagerightoffset - \tex_let:D \tex_pagewidth:D \luatexpagewidth - \tex_let:D \tex_pardir:D \luatexpardir - \tex_let:D \tex_rightghost:D \luatexrightghost - \tex_let:D \tex_textdir:D \luatextextdir -\tex_fi:D \tex_ifnum:D 0 \tex_ifdefined:D \tex_pdftexversion:D 1 \tex_fi:D \tex_ifdefined:D \tex_luatexversion:D 1 \tex_fi:D @@ -1480,11 +1387,6 @@ Type H <return> for immediate help}\def~{\errmessage{% \tex_global:D \tex_let:D \tex_year:D \tex_undefined:D \tex_fi:D \tex_endgroup:D -\tex_ifdefined:D \tex_luatexversion:D - \tex_let:D \tex_pdftexbanner:D \tex_undefined:D - \tex_let:D \tex_pdftexrevision:D \tex_undefined:D - \tex_let:D \tex_pdftexversion:D \tex_undefined:D -\tex_fi:D \tex_ifdefined:D \orieveryjob \tex_let:D \tex_everyjob:D \orieveryjob \tex_fi:D @@ -1615,9 +1517,6 @@ Type H <return> for immediate help}\def~{\errmessage{% \l__exp_internal_tl } \cs_set:Npn \use:e #1 { \tex_expanded:D {#1} } -\tex_ifdefined:D \tex_expanded:D \tex_else:D - \cs_set:Npn \use:e #1 { \exp_args:Ne \use:n {#1} } -\tex_fi:D \cs_set:Npn \use:n #1 {#1} \cs_set:Npn \use:nn #1#2 {#1#2} \cs_set:Npn \use:nnn #1#2#3 {#1#2#3} @@ -2372,15 +2271,8 @@ Type H <return> for immediate help}\def~{\errmessage{% { \exp_after:wN \__exp_arg_next:Nnn \cs:w #3 \cs_end: {#1} {#2} } \cs_new:Npn \::o #1 \::: #2#3 { \exp_after:wN \__exp_arg_next:nnn \exp_after:wN {#3} {#1} {#2} } -\cs_if_exist:NTF \tex_expanded:D - { - \cs_new:Npn \::e #1 \::: #2#3 - { \tex_expanded:D { \exp_not:n { #1 \::: } { \exp_not:n {#2} {#3} } } } - } - { - \cs_new:Npn \::e #1 \::: #2#3 - { \exp_args:Ne \__exp_arg_next:nnn {#3} {#1} {#2} } - } +\cs_new:Npn \::e #1 \::: #2#3 + { \tex_expanded:D { \exp_not:n { #1 \::: } { \exp_not:n {#2} {#3} } } } \cs_new:Npn \::f #1 \::: #2#3 { \exp_after:wN \__exp_arg_next:nnn @@ -2442,18 +2334,8 @@ Type H <return> for immediate help}\def~{\errmessage{% { \exp_after:wN #1 \exp_after:wN #2 \exp_after:wN {#3} } \cs_new:Npn \exp_args:NNNo #1#2#3#4 { \exp_after:wN #1 \exp_after:wN#2 \exp_after:wN #3 \exp_after:wN {#4} } -\cs_if_exist:NTF \tex_expanded:D - { - \cs_new:Npn \exp_args:Ne #1#2 - { \exp_after:wN #1 \tex_expanded:D { {#2} } } - } - { - \cs_new:Npn \exp_args:Ne #1#2 - { - \exp_after:wN #1 \exp_after:wN - { \exp:w \__exp_e:nn {#2} { } } - } - } +\cs_new:Npn \exp_args:Ne #1#2 + { \exp_after:wN #1 \tex_expanded:D { {#2} } } \cs_new:Npn \exp_args:Nf #1#2 { \exp_after:wN #1 \exp_after:wN { \exp:w \exp_end_continue_f:w #2 } } \cs_new:Npn \exp_args:Nv #1#2 @@ -2478,16 +2360,12 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN #2 \exp_after:wN { \exp:w \__exp_eval_register:c {#3} } } -\cs_if_exist:NTF \tex_expanded:D +\cs_new:Npn \exp_args:NNe #1#2#3 { - \cs_new:Npn \exp_args:NNe #1#2#3 - { - \exp_after:wN #1 - \exp_after:wN #2 - \tex_expanded:D { {#3} } - } + \exp_after:wN #1 + \exp_after:wN #2 + \tex_expanded:D { {#3} } } - { \cs_new:Npn \exp_args:NNe { \::N \::e \::: } } \cs_new:Npn \exp_args:NNf #1#2#3 { \exp_after:wN #1 @@ -2575,15 +2453,8 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \__exp_arg_last_unbraced:nn \exp_after:wN { \exp:w \__exp_eval_register:c {#2} } {#1} } -\cs_if_exist:NTF \tex_expanded:D - { - \cs_new:Npn \::e_unbraced \::: #1#2 - { \tex_expanded:D { \exp_not:n {#1} #2 } } - } - { - \cs_new:Npn \::e_unbraced \::: #1#2 - { \exp:w \__exp_e:nn {#2} {#1} } - } +\cs_new:Npn \::e_unbraced \::: #1#2 + { \tex_expanded:D { \exp_not:n {#1} #2 } } \cs_new:Npn \::f_unbraced \::: #1#2 { \exp_after:wN \__exp_arg_last_unbraced:nn @@ -2599,12 +2470,8 @@ Type H <return> for immediate help}\def~{\errmessage{% { \exp_after:wN #1 \exp:w \__exp_eval_register:N #2 } \cs_new:Npn \exp_last_unbraced:Nv #1#2 { \exp_after:wN #1 \exp:w \__exp_eval_register:c {#2} } -\cs_if_exist:NTF \tex_expanded:D - { - \cs_new:Npn \exp_last_unbraced:Ne #1#2 - { \exp_after:wN #1 \tex_expanded:D {#2} } - } - { \cs_new:Npn \exp_last_unbraced:Ne { \::e_unbraced \::: } } +\cs_new:Npn \exp_last_unbraced:Ne #1#2 + { \exp_after:wN #1 \tex_expanded:D {#2} } \cs_new:Npn \exp_last_unbraced:Nf #1#2 { \exp_after:wN #1 \exp:w \exp_end_continue_f:w #2 } \cs_new:Npn \exp_last_unbraced:NNo #1#2#3 @@ -2667,15 +2534,8 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_eq:NN \__kernel_exp_not:w \tex_unexpanded:D \cs_new:Npn \exp_not:c #1 { \exp_after:wN \exp_not:N \cs:w #1 \cs_end: } \cs_new:Npn \exp_not:o #1 { \__kernel_exp_not:w \exp_after:wN {#1} } -\cs_if_exist:NTF \tex_expanded:D - { - \cs_new:Npn \exp_not:e #1 - { \__kernel_exp_not:w \tex_expanded:D { {#1} } } - } - { - \cs_new:Npn \exp_not:e - { \__kernel_exp_not:w \exp_args:Ne \prg_do_nothing: } - } +\cs_new:Npn \exp_not:e #1 + { \__kernel_exp_not:w \tex_expanded:D { {#1} } } \cs_new:Npn \exp_not:f #1 { \__kernel_exp_not:w \exp_after:wN { \exp:w \exp_end_continue_f:w #1 } } \cs_new:Npn \exp_not:V #1 @@ -2698,282 +2558,6 @@ Type H <return> for immediate help}\def~{\errmessage{% \fi: \cs_new:Npn \exp_end_continue_f:nw #1 { `^^@ #1 } \group_end: -\cs_if_exist:NF \tex_expanded:D - { - \cs_new:Npn \__exp_e:nn #1 - { - \if_false: { \fi: - \tl_if_head_is_N_type:nTF {#1} - { \__exp_e:N } - { - \tl_if_head_is_group:nTF {#1} - { \__exp_e_group:n } - { - \tl_if_empty:nTF {#1} - { \exp_after:wN \__exp_e_end:nn } - { \exp_after:wN \__exp_e_space:nn } - \exp_after:wN { \if_false: } \fi: - } - } - #1 - } - } - \cs_new:Npn \__exp_e_end:nn #1#2 { \exp_end: #2 } - \cs_new:Npn \__exp_e_space:nn #1#2 - { \exp_args:Nf \__exp_e:nn {#1} { #2 ~ } } - \cs_new:Npn \__exp_e_group:n #1 - { - \exp_after:wN \__exp_e_put:nn - \exp_after:wN { \exp_after:wN { \exp_after:wN { - \exp:w \if_false: } \fi: \__exp_e:nn {#1} { } } } - } - \cs_new:Npn \__exp_e_put:nn #1 - { - \exp_args:NNo \exp_args:No \__exp_e_put:nnn - { \tl_head:n {#1} } {#1} - } - \cs_new:Npn \__exp_e_put:nnn #1#2#3 - { \exp_args:No \__exp_e:nn { \use_none:n #2 } { #3 #1 } } - \cs_new:Npn \__exp_e:N #1 - { - \exp_after:wN \__exp_e:Nnn - \exp_after:wN #1 - \exp_after:wN { \if_false: } \fi: - } - \cs_new:Npn \__exp_e:Nnn #1 - { - \if_case:w - \exp_after:wN \if_meaning:w \exp_not:N #1 #1 1 ~ \fi: - \token_if_protected_macro:NT #1 { 1 ~ } - \token_if_protected_long_macro:NT #1 { 1 ~ } - \if_meaning:w \exp_not:n #1 2 ~ \fi: - \if_meaning:w \exp_not:N #1 3 ~ \fi: - \if_meaning:w \tex_the:D #1 4 ~ \fi: - \if_meaning:w \tex_primitive:D #1 5 ~ \fi: - 0 ~ - \exp_after:wN \__exp_e_expandable:Nnn - \or: \exp_after:wN \__exp_e_protected:Nnn - \or: \exp_after:wN \__exp_e_unexpanded:Nnn - \or: \exp_after:wN \__exp_e_noexpand:Nnn - \or: \exp_after:wN \__exp_e_the:Nnn - \or: \exp_after:wN \__exp_e_primitive:Nnn - \fi: - #1 - } - \cs_new:Npn \__exp_e_protected:Nnn #1#2#3 - { \__exp_e:nn {#2} { #3 #1 } } - \cs_new:Npn \__exp_e_expandable:Nnn #1#2 - { \exp_args:No \__exp_e:nn { #1 #2 } } - \cs_new:Npn \__exp_e_primitive:Nnn #1#2 - { - \if_false: { \fi: - \tl_if_head_is_N_type:nTF {#2} - { \__exp_e_primitive_aux:NNw #1 } - { - \msg_expandable_error:nnn { kernel } { e-type } - { Missing~primitive~name } - \__exp_e_primitive_aux:NNw #1 \c_empty_tl - } - #2 - } - } - \cs_new:Npn \__exp_e_primitive_aux:NNw #1#2 - { - \exp_after:wN \__exp_e_primitive_aux:NNnn - \exp_after:wN #1 - \exp_after:wN #2 - \exp_after:wN { \if_false: } \fi: - } - \cs_new:Npn \__exp_e_primitive_aux:NNnn #1#2 - { - \exp_args:Nf \str_case_e:nnTF { \cs_to_str:N #2 } - { - { unexpanded } { \__exp_e_unexpanded:Nnn \exp_not:n } - { noexpand } { \__exp_e_noexpand:Nnn \exp_not:N } - { the } { \__exp_e_the:Nnn \tex_the:D } - { - \sys_if_engine_xetex:T { pdf } - \sys_if_engine_luatex:T { pdf } - primitive - } { \__exp_e_primitive:Nnn #1 } - } - { \__exp_e_primitive_other:NNnn #1 #2 } - } - \cs_new:Npn \__exp_e_primitive_other:NNnn #1#2#3 - { - \exp_args:No \__exp_e_primitive_other_aux:nNNnn - { #1 #2 #3 } - #1 #2 {#3} - } - \cs_new:Npn \__exp_e_primitive_other_aux:nNNnn #1#2#3#4#5 - { - \str_if_eq:nnTF {#1} { #2 #3 #4 } - { \__exp_e:nn {#4} { #5 #2 #3 } } - { \__exp_e:nn {#1} {#5} } - } - \cs_new:Npn \__exp_e_noexpand:Nnn #1#2 - { - \tl_if_head_is_N_type:nTF {#2} - { \__exp_e_put:nn } { \__exp_e:nn } {#2} - } - \cs_new:Npn \__exp_e_unexpanded:Nnn #1 { \__exp_e_unexpanded:nn } - \cs_new:Npn \__exp_e_unexpanded:nn #1 - { - \tl_if_head_is_N_type:nTF {#1} - { - \exp_args:Nf \__exp_e_unexpanded:nn - { \__exp_e_unexpanded:nN {#1} #1 } - } - { - \tl_if_head_is_group:nTF {#1} - { \__exp_e_put:nn } - { - \tl_if_empty:nTF {#1} - { - \msg_expandable_error:nnn - { kernel } { e-type } - { \unexpanded missing~brace } - \__exp_e_end:nn - } - { \exp_args:Nf \__exp_e_unexpanded:nn } - } - {#1} - } - } - \cs_new:Npn \__exp_e_unexpanded:nN #1#2 - { - \exp_after:wN \if_meaning:w \exp_not:N #2 #2 - \exp_after:wN \use_i:nn - \else: - \exp_after:wN \use_ii:nn - \fi: - { - \token_if_eq_catcode:NNTF #2 \c_space_token - { \exp_stop_f: } - { - \token_if_eq_meaning:NNTF #2 \scan_stop: - { \exp_stop_f: } - { - \msg_expandable_error:nnn - { kernel } { e-type } - { \unexpanded missing~brace } - { } - } - } - } - { - \token_if_eq_meaning:NNTF #2 \exp_not:N - { - \exp_args:No \tl_if_head_is_N_type:nT { \use_none:n #1 } - { \__exp_e_unexpanded:N } - } - { \exp_after:wN \exp_stop_f: #2 } - } - } - \cs_new:Npn \__exp_e_unexpanded:N #1 - { - \exp_after:wN \if_meaning:w \exp_not:N #1 #1 \else: - \exp_after:wN \use_i:nn - \fi: - \exp_stop_f: #1 - } - \cs_new:Npn \__exp_e_the:Nnn #1#2 - { - \tl_if_head_is_N_type:nTF {#2} - { \if_false: { \fi: \__exp_e_the:N #2 } } - { \exp_args:No \__exp_e:nn { \tex_the:D #2 } } - } - \cs_new:Npn \__exp_e_the:N #1 - { - \exp_after:wN \if_meaning:w \exp_not:N #1 #1 - \exp_after:wN \use_i:nn - \else: - \exp_after:wN \use_ii:nn - \fi: - { - \if_meaning:w \tex_toks:D #1 - \exp_after:wN \__exp_e_the_toks:wnn \int_value:w - \exp_after:wN \__exp_e_the_toks:n - \exp_after:wN { \int_value:w \if_false: } \fi: - \else: - \__exp_e_if_toks_register:NTF #1 - { \exp_after:wN \__exp_e_the_toks_reg:N } - { - \exp_after:wN \__exp_e:nn \exp_after:wN { - \tex_the:D \if_false: } \fi: - } - \exp_after:wN #1 - \fi: - } - { - \exp_after:wN \__exp_e_the:Nnn \exp_after:wN ? - \exp_after:wN { \exp:w \if_false: } \fi: - \exp_after:wN \exp_end: #1 - } - } - \cs_new:Npn \__exp_e_the_toks_reg:N #1 - { - \exp_after:wN \__exp_e_put:nn \exp_after:wN { - \exp_after:wN { - \tex_the:D \if_false: } \fi: #1 } - } - \cs_new:Npn \__exp_e_the_toks:wnn #1; #2 - { - \exp_args:No \__exp_e_put:nnn - { \tex_the:D \tex_toks:D #1 } { ? #2 } - } - \cs_new:Npn \__exp_e_the_toks:n #1 - { - \tl_if_head_is_N_type:nTF {#1} - { \exp_after:wN \__exp_e_the_toks:N \if_false: { \fi: #1 } } - { ; {#1} } - } - \cs_new:Npn \__exp_e_the_toks:N #1 - { - \if_int_compare:w 10 < 9 \token_to_str:N #1 \exp_stop_f: - \exp_after:wN \use_i:nn - \else: - \exp_after:wN \use_ii:nn - \fi: - { - #1 - \exp_after:wN \__exp_e_the_toks:n - \exp_after:wN { \if_false: } \fi: - } - { - \exp_after:wN ; - \exp_after:wN { \if_false: } \fi: #1 - } - } - \prg_new_conditional:Npnn \__exp_e_if_toks_register:N #1 { TF } - { - \token_if_toks_register:NTF #1 { \prg_return_true: } - { - \cs_if_exist:cTF - { - __exp_e_the_ - \exp_after:wN \cs_to_str:N - \token_to_meaning:N #1 - : - } { \prg_return_true: } { \prg_return_false: } - } - } - \cs_new_eq:NN \__exp_e_the_XeTeXinterchartoks: ? - \cs_new_eq:NN \__exp_e_the_errhelp: ? - \cs_new_eq:NN \__exp_e_the_everycr: ? - \cs_new_eq:NN \__exp_e_the_everydisplay: ? - \cs_new_eq:NN \__exp_e_the_everyeof: ? - \cs_new_eq:NN \__exp_e_the_everyhbox: ? - \cs_new_eq:NN \__exp_e_the_everyjob: ? - \cs_new_eq:NN \__exp_e_the_everymath: ? - \cs_new_eq:NN \__exp_e_the_everypar: ? - \cs_new_eq:NN \__exp_e_the_everyvbox: ? - \cs_new_eq:NN \__exp_e_the_output: ? - \cs_new_eq:NN \__exp_e_the_pdfpageattr: ? - \cs_new_eq:NN \__exp_e_the_pdfpageresources: ? - \cs_new_eq:NN \__exp_e_the_pdfpagesattr: ? - \cs_new_eq:NN \__exp_e_the_pdfpkmode: ? - } \cs_new_eq:NN \s__cs_mark \scan_stop: \cs_new_eq:NN \s__cs_stop \scan_stop: \cs_new:Npn \q__cs_recursion_stop { \q__cs_recursion_stop } @@ -3214,22 +2798,8 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new_protected:Npn \__cs_generate_internal_test_aux:w ##1 #1 ##2 \s__cs_mark ##3 ##4 \s__cs_stop {##3} - \cs_if_exist:NTF \tex_expanded:D - { - \cs_new_eq:NN \__cs_generate_internal_test:Nw - \__cs_generate_internal_test_aux:w - } - { - \cs_new_protected:Npn \__cs_generate_internal_test:Nw ##1 - { - \if_meaning:w \tex_expanded:D ##1 - \exp_after:wN \__cs_generate_internal_test_aux:w - \exp_after:wN #1 - \else: - \exp_after:wN \__cs_generate_internal_test_aux:w - \fi: - } - } + \cs_new_eq:NN \__cs_generate_internal_test:Nw + \__cs_generate_internal_test_aux:w } \exp_args:No \__cs_tmp:w { \token_to_str:N p } \cs_new_protected:Npn \__cs_generate_internal_one_go:NNn #1#2#3 @@ -4415,40 +3985,15 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new:Npn \__tl_trim_mark: {} } \__tl_tmp:w { ~ } -\cs_if_exist:NTF \tex_expanded:D +\cs_new:Npn \tl_head:n #1 { - \cs_new:Npn \tl_head:n #1 - { - \__kernel_exp_not:w \tex_expanded:D - { { \if_false: { \fi: \__tl_head_aux:n #1 { } } } } - } - \cs_new:Npn \__tl_head_aux:n #1 - { - \__kernel_exp_not:w {#1} - \exp_after:wN \use_none:n \exp_after:wN { \if_false: } \fi: - } + \__kernel_exp_not:w \tex_expanded:D + { { \if_false: { \fi: \__tl_head_aux:n #1 { } } } } } +\cs_new:Npn \__tl_head_aux:n #1 { - \cs_new:Npn \tl_head:n #1 - { - \__kernel_exp_not:w - \if_false: { \fi: \__tl_head_auxi:nw #1 { } \s__tl_stop } - } - \cs_new:Npn \__tl_head_auxi:nw #1#2 \s__tl_stop - { - \exp_after:wN \__tl_head_auxii:n \exp_after:wN { - \if_false: } \fi: {#1} - } - \exp_args:Nno \use:n - { \cs_new:Npn \__tl_head_auxii:n #1 } - { - \__tl_if_empty_if:o { \use_none:n #1 } - \exp_after:wN \use_ii:nnn - \fi: - \use_ii:nn - {#1} - { \if_false: { \fi: \__tl_head_auxi:nw #1 } } - } + \__kernel_exp_not:w {#1} + \exp_after:wN \use_none:n \exp_after:wN { \if_false: } \fi: } \cs_generate_variant:Nn \tl_head:n { V , v , f } \cs_new:Npn \tl_head:w #1#2 \q_stop {#1} @@ -8927,20 +8472,6 @@ Type H <return> for immediate help}\def~{\errmessage{% \exp_after:wN \exp_end: \tex_Ucharcat:D #1 \exp_stop_f: #2 \exp_stop_f: } - \cs_if_exist:NF \tex_expanded:D - { - \cs_new_eq:NN \__char_generate_auxii:nnw \__char_generate_aux:nnw - \cs_gset:Npn \__char_generate_aux:nnw #1#2#3 \exp_end: - { - #3 - \if_int_compare:w #2 = 13 \exp_stop_f: - \msg_expandable_error:nn { char } { active } - \else: - \__char_generate_auxii:nnw {#1} {#2} - \fi: - \exp_end: - } - } \else: \char_set_catcode_active:n { 0 } \tl_set:Nn \l__char_tmp_tl { \exp_not:N ^^@ \exp_not:N \or: } @@ -9803,42 +9334,24 @@ Type H <return> for immediate help}\def~{\errmessage{% } \cs_new:Npn \__prop_count:nn #1#2 { + 1 } \cs_generate_variant:Nn \prop_count:N { c } -\cs_if_exist:NTF \tex_expanded:D +\cs_new:Npn \prop_to_keyval:N #1 { - \cs_new:Npn \prop_to_keyval:N #1 - { - \__kernel_exp_not:w - \prop_if_empty:NTF #1 - { {} } - { - \exp_after:wN \exp_after:wN \exp_after:wN + \__kernel_exp_not:w + \prop_if_empty:NTF #1 + { {} } + { + \exp_after:wN \exp_after:wN \exp_after:wN + { + \tex_expanded:D { - \tex_expanded:D - { - \__kernel_exp_not:w { \use_none:n } - \prop_map_function:NN #1 \__prop_to_keyval:nn - } + \__kernel_exp_not:w { \use_none:n } + \prop_map_function:NN #1 \__prop_to_keyval:nn } - } - } - \cs_new:Npn \__prop_to_keyval:nn #1#2 - { , ~ {#1} =~ { \__kernel_exp_not:w {#2} } } - } - { - \cs_new:Npn \prop_to_keyval:N #1 - { - \__kernel_exp_not:w - \prop_if_empty:NTF #1 - { {} } - { - \prop_map_function:NN #1 \__prop_to_keyval:nnw - \__prop_to_keyval_exp_after:wN { \use_none:n } - } - } - \cs_new_eq:NN \__prop_to_keyval_exp_after:wN \exp_after:wN - \cs_new:Npn \__prop_to_keyval:nnw #1#2#3 \__prop_to_keyval_exp_after:wN #4 - { #3 \__prop_to_keyval_exp_after:wN { #4 , ~ {#1} =~ {#2} } } + } + } } +\cs_new:Npn \__prop_to_keyval:nn #1#2 + { , ~ {#1} =~ { \__kernel_exp_not:w {#2} } } \prg_new_protected_conditional:Npnn \prop_pop:NnN #1#2#3 { T , F , TF } { \__prop_split:NnTF #1 {#2} @@ -10870,11 +10383,6 @@ Type H <return> for immediate help}\def~{\errmessage{% { Relation~'#1'~not~among~=,<,>,==,!=,<=,>=. } \msg_new:nnn { kernel } { zero-step } { Zero~step~size~for~function~#1. } -\cs_if_exist:NF \tex_expanded:D - { - \msg_new:nnn { kernel } { e-type } - { #1 ~ in~e-type~argument } - } \msg_new:nnn { clist } { show } { The~comma~list~ \tl_if_empty:nF {#1} { #1 ~ } @@ -11880,18 +11388,18 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_if_blank:nTF {#2} { \seq_map_tokens:Nn \l_file_search_path_seq - { \__file_full_name_aux:Nnn \seq_map_break:n {#1} } + { \__file_full_name_aux:Nnnn \seq_map_break:n {#1} { / } } \cs_if_exist:NT \input@path { \tl_map_tokens:Nn \input@path - { \__file_full_name_aux:Nnn \tl_map_break:n {#1} } + { \__file_full_name_aux:Nnnn \tl_map_break:n {#1} { } } } \__file_name_end: } { \__file_ext_check:nn {#1} {#2} } } -\cs_new:Npn \__file_full_name_aux:Nnn #1#2#3 - { \exp_args:Ne \__file_full_name_aux:nN { \tl_to_str:n {#3} / #2 } #1 } +\cs_new:Npn \__file_full_name_aux:Nnnn #1#2#3#4 + { \exp_args:Ne \__file_full_name_aux:nN { \tl_to_str:n {#4} #3 #2 } #1 } \cs_new:Npn \__file_full_name_aux:nN #1 { \exp_args:Nne \__file_full_name_aux:nnN {#1} { \__file_full_name_aux:n {#1} } } \cs_new:Npn \__file_full_name_aux:nnN #1 #2 #3 @@ -11941,21 +11449,6 @@ Type H <return> for immediate help}\def~{\errmessage{% {#3} } } -\cs_if_exist:NF \tex_filesize:D - { - \cs_gset:Npn \file_full_name:n #1 - { - \msg_expandable_error:nnn - { kernel } { primitive-not-available } - { \(pdf)filesize } - } - } -\msg_new:nnnn { kernel } { primitive-not-available } - { Primitive~\token_to_str:N #1 not~available } - { - The~version~of~your~TeX~engine~does~not~provide~functionality~equivalent~to~ - the~#1~primitive. - } \cs_new_protected:Npn \file_get_full_name:nN #1#2 { \file_get_full_name:nNF {#1} #2 @@ -11973,50 +11466,6 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \file_get_full_name:nNT { V } \cs_generate_variant:Nn \file_get_full_name:nNF { V } \cs_generate_variant:Nn \file_get_full_name:nNTF { V } -\cs_if_exist:NF \tex_filesize:D - { - \prg_set_protected_conditional:Npnn \file_get_full_name:nN #1#2 { T , F , TF } - { - \__kernel_tl_set:Nx \l__file_base_name_tl - { \__kernel_file_name_sanitize:n {#1} } - \__file_get_full_name_search:nN { } \use:n - \seq_map_inline:Nn \l_file_search_path_seq - { \__file_get_full_name_search:nN { ##1 / } \seq_map_break:n } - \cs_if_exist:NT \input@path - { - \tl_map_inline:Nn \input@path - { \__file_get_full_name_search:nN { ##1 } \tl_map_break:n } - } - \tl_set:Nn \l__file_full_name_tl { \q_no_value } - \prg_break_point: - \quark_if_no_value:NTF \l__file_full_name_tl - { - \ior_close:N \g__file_internal_ior - \prg_return_false: - } - { - \file_parse_full_name:VNNN \l__file_full_name_tl - \l__file_dir_str \l__file_name_str \l__file_ext_str - \str_if_empty:NT \l__file_ext_str - { - \__kernel_ior_open:No \g__file_internal_ior - { \l__file_full_name_tl .tex } - \ior_if_eof:NF \g__file_internal_ior - { \tl_put_right:Nn \l__file_full_name_tl { .tex } } - } - \ior_close:N \g__file_internal_ior - \tl_set_eq:NN #2 \l__file_full_name_tl - \prg_return_true: - } - } - } -\cs_new_protected:Npn \__file_get_full_name_search:nN #1#2 - { - \__kernel_tl_set:Nx \l__file_full_name_tl - { \tl_to_str:n {#1} \l__file_base_name_tl } - \__kernel_ior_open:No \g__file_internal_ior \l__file_full_name_tl - \ior_if_eof:NF \g__file_internal_ior { #2 { \prg_break: } } - } \ior_new:N \g__file_internal_ior \cs_new:Npn \file_size:n #1 { \__file_details:nn {#1} { size } } @@ -12125,26 +11574,6 @@ Type H <return> for immediate help}\def~{\errmessage{% { \prg_return_false: } { \prg_return_true: } } -\cs_if_exist:NF \tex_filesize:D - { - \cs_set_protected:Npn \__file_get_details:nnN #1#2#3 - { - \tl_clear:N #3 - \msg_error:nnx - { kernel } { primitive-not-available } - { - \token_to_str:N \(pdf)file - \str_case:nn {#2} - { - { hex_dump } { dump } - { mdfive_hash } { mdfivesum } - { timestamp } { moddate } - { size } { size } - } - } - \prg_return_false: - } - } \cs_new_protected:Npn \file_get_hex_dump:nnnN #1#2#3#4 { \file_get_hex_dump:nnnNF {#1} {#2} {#3} #4 @@ -12201,17 +11630,6 @@ Type H <return> for immediate help}\def~{\errmessage{% } } \cs_new_eq:NN \__file_timestamp:n \tex_filemoddate:D -\cs_if_exist:NF \__file_timestamp:n - { - \prg_set_conditional:Npnn \file_compare_timestamp:nNn #1#2#3 - { p , T , F , TF } - { - \msg_expandable_error:nnn - { kernel } { primitive-not-available } - { \(pdf)filemoddate } - \prg_return_false: - } - } \prg_new_protected_conditional:Npnn \file_if_exist:n #1 { T , F , TF } { \file_get_full_name:nNTF {#1} \l__file_full_name_tl @@ -13053,26 +12471,14 @@ Type H <return> for immediate help}\def~{\errmessage{% \group_begin: \cs_set_protected:Npn \__keyval_tmp:w #1#2 { - \cs_if_exist:NTF \tex_expanded:D + \cs_new:Npn \keyval_parse:nnn ##1 ##2 ##3 { - \cs_new:Npn \keyval_parse:nnn ##1 ##2 ##3 + \__kernel_exp_not:w \tex_expanded:D { - \__kernel_exp_not:w \tex_expanded:D - { - { - \__keyval_loop_active:nnw {##1} {##2} - \s__keyval_mark ##3 #1 \s__keyval_tail #1 - } - } - } - } - { - \cs_new:Npn \keyval_parse:nnn ##1 ##2 ##3 - { - \group_align_safe_begin: - \__keyval_loop_active:nnw {##1} {##2} - \s__keyval_mark ##3 #1 \s__keyval_tail #1 - \group_align_safe_end: + { + \__keyval_loop_active:nnw {##1} {##2} + \s__keyval_mark ##3 #1 \s__keyval_tail #1 + } } } \cs_new_eq:NN \keyval_parse:NNn \keyval_parse:nnn @@ -13211,9 +12617,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__keyval_loop_other:nnw {##2} } } - \cs_if_exist:NTF \tex_expanded:D - { \__keyval_tmp:w { } { } } - { \__keyval_tmp:w \group_align_safe_end: \group_align_safe_begin: } + \__keyval_tmp:w { } { } \group_end: \cs_new:Npn \__keyval_if_empty:w #1 \s__keyval_mark \s__keyval_stop { } \cs_new:Npn \__keyval_if_blank:w \s__keyval_mark #1 { \__keyval_if_empty:w \s__keyval_mark } diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index 0dd38b9eb57..8cfb6fcccf3 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2023-05-11}% +\def\ExplFileDate{2023-05-15}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx index e9b7a23e101..0d0af2b2616 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.ltx @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2023-05-11}% +\def\ExplFileDate{2023-05-15}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty index 7df6fceb5e4..ea9ae8078db 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2023-05-11}% +\def\ExplFileDate{2023-05-15}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [% |