From 049df79ca316f20a88cc9e5f0e2144bd82b61d32 Mon Sep 17 00:00:00 2001 From: Joseph Wright Date: Wed, 26 Oct 2022 21:05:49 +0100 Subject: [PATCH] Update l3backend and l3kernel to 2022-10-26 --- .../latex/l3backend/l3backend-dvipdfmx.def | 8 +- texmf/tex/latex/l3backend/l3backend-dvips.def | 8 +- .../tex/latex/l3backend/l3backend-dvisvgm.def | 2 +- .../tex/latex/l3backend/l3backend-luatex.def | 2 +- .../tex/latex/l3backend/l3backend-pdftex.def | 2 +- texmf/tex/latex/l3backend/l3backend-xetex.def | 2 +- texmf/tex/latex/l3kernel/expl3-code.tex | 186 +++++++++++------- texmf/tex/latex/l3kernel/expl3-generic.tex | 2 +- texmf/tex/latex/l3kernel/expl3.ltx | 2 +- texmf/tex/latex/l3kernel/expl3.sty | 2 +- 10 files changed, 127 insertions(+), 89 deletions(-) diff --git a/texmf/tex/latex/l3backend/l3backend-dvipdfmx.def b/texmf/tex/latex/l3backend/l3backend-dvipdfmx.def index 992a5da4e..4abeab389 100644 --- a/texmf/tex/latex/l3backend/l3backend-dvipdfmx.def +++ b/texmf/tex/latex/l3backend/l3backend-dvipdfmx.def @@ -26,7 +26,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvipdfmx.def}{2022-09-28}{} + {l3backend-dvipdfmx.def}{2022-10-26}{} {L3 backend support: dvipdfmx} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -806,13 +806,11 @@ \__kernel_backend_literal:e { pdf:pagesize ~ - width ~ \__pdf_backend_pagesize_set:n {#1} ~ - height ~ \__pdf_backend_pagesize_set:n {#2} + width ~ \dim_eval:n {#1} ~ + height ~ \dim_eval:n {#2} } } } -\cs_new:Npn \__pdf_backend_pagesize_set:n #1 - { \fp_to_dim:n { \tex_mag:D / 1000 * (#1) } } %% File: l3backend-opacity.dtx \bool_lazy_and:nnT { \cs_if_exist_p:N \pdfmanagement_if_active_p: } diff --git a/texmf/tex/latex/l3backend/l3backend-dvips.def b/texmf/tex/latex/l3backend/l3backend-dvips.def index a84536ec4..656d07d07 100644 --- a/texmf/tex/latex/l3backend/l3backend-dvips.def +++ b/texmf/tex/latex/l3backend/l3backend-dvips.def @@ -26,7 +26,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvips.def}{2022-09-28}{} + {l3backend-dvips.def}{2022-10-26}{} {L3 backend support: dvips} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -1034,14 +1034,10 @@ { \__kernel_backend_literal:e { - papersize = - \__pdf_backend_pagesize_set:n {#1} , - \__pdf_backend_pagesize_set:n {#2} + papersize = \dim_eval:n {#1} , \dim_eval:n {#2} } } } -\cs_new:Npn \__pdf_backend_pagesize_set:n #1 - { \fp_to_dim:n { \tex_mag:D / 1000 * (#1) } } %% File: l3backend-opacity.dtx \cs_new_protected:Npn \__opacity_backend_select:n #1 { diff --git a/texmf/tex/latex/l3backend/l3backend-dvisvgm.def b/texmf/tex/latex/l3backend/l3backend-dvisvgm.def index c34ba5b6a..7fcb631be 100644 --- a/texmf/tex/latex/l3backend/l3backend-dvisvgm.def +++ b/texmf/tex/latex/l3backend/l3backend-dvisvgm.def @@ -26,7 +26,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvisvgm.def}{2022-09-28}{} + {l3backend-dvisvgm.def}{2022-10-26}{} {L3 backend support: dvisvgm} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { diff --git a/texmf/tex/latex/l3backend/l3backend-luatex.def b/texmf/tex/latex/l3backend/l3backend-luatex.def index ec2560fb7..71ddaedd8 100644 --- a/texmf/tex/latex/l3backend/l3backend-luatex.def +++ b/texmf/tex/latex/l3backend/l3backend-luatex.def @@ -26,7 +26,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-luatex.def}{2022-09-28}{} + {l3backend-luatex.def}{2022-10-26}{} {L3 backend support: PDF output (LuaTeX)} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { diff --git a/texmf/tex/latex/l3backend/l3backend-pdftex.def b/texmf/tex/latex/l3backend/l3backend-pdftex.def index b92249d3b..c87dd5282 100644 --- a/texmf/tex/latex/l3backend/l3backend-pdftex.def +++ b/texmf/tex/latex/l3backend/l3backend-pdftex.def @@ -26,7 +26,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-pdftex.def}{2022-09-28}{} + {l3backend-pdftex.def}{2022-10-26}{} {L3 backend support: PDF output (pdfTeX)} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { diff --git a/texmf/tex/latex/l3backend/l3backend-xetex.def b/texmf/tex/latex/l3backend/l3backend-xetex.def index e6005f616..346b6650d 100644 --- a/texmf/tex/latex/l3backend/l3backend-xetex.def +++ b/texmf/tex/latex/l3backend/l3backend-xetex.def @@ -26,7 +26,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-xetex.def}{2022-09-28}{} + {l3backend-xetex.def}{2022-10-26}{} {L3 backend support: XeTeX} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { diff --git a/texmf/tex/latex/l3kernel/expl3-code.tex b/texmf/tex/latex/l3kernel/expl3-code.tex index d49f9dc82..258d04764 100644 --- a/texmf/tex/latex/l3kernel/expl3-code.tex +++ b/texmf/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{2022-09-28}% +\def\ExplFileDate{2022-10-26}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -248,24 +248,16 @@ \protected\def\noexpand\ExplSyntaxOff{}% \catcode 9 = \the\catcode 9\relax \catcode 32 = \the\catcode 32\relax - \catcode 34 = \the\catcode 34\relax - \catcode 38 = \the\catcode 38\relax \catcode 58 = \the\catcode 58\relax - \catcode 94 = \the\catcode 94\relax \catcode 95 = \the\catcode 95\relax - \catcode 124 = \the\catcode 124\relax \catcode 126 = \the\catcode 126\relax \endlinechar = \the\endlinechar\relax \chardef\csname\detokenize{l__kernel_expl_bool}\endcsname = 0\relax }% -\catcode 9 = 9\relax -\catcode 32 = 9\relax -\catcode 34 = 12\relax -\catcode 38 = 4\relax -\catcode 58 = 11\relax -\catcode 94 = 7\relax -\catcode 95 = 11\relax -\catcode 124 = 12\relax +\catcode 9 = 9\relax +\catcode 32 = 9\relax +\catcode 58 = 11\relax +\catcode 95 = 11\relax \catcode 126 = 10\relax \endlinechar = 32\relax \chardef\l__kernel_expl_bool = 1\relax @@ -275,14 +267,10 @@ { \cs_set_protected:Npx \ExplSyntaxOff { - \char_set_catcode:nn { 9 } { \char_value_catcode:n { 9 } } - \char_set_catcode:nn { 32 } { \char_value_catcode:n { 32 } } - \char_set_catcode:nn { 34 } { \char_value_catcode:n { 34 } } - \char_set_catcode:nn { 38 } { \char_value_catcode:n { 38 } } - \char_set_catcode:nn { 58 } { \char_value_catcode:n { 58 } } - \char_set_catcode:nn { 94 } { \char_value_catcode:n { 94 } } - \char_set_catcode:nn { 95 } { \char_value_catcode:n { 95 } } - \char_set_catcode:nn { 124 } { \char_value_catcode:n { 124 } } + \char_set_catcode:nn { 9 } { \char_value_catcode:n { 9 } } + \char_set_catcode:nn { 32 } { \char_value_catcode:n { 32 } } + \char_set_catcode:nn { 58 } { \char_value_catcode:n { 58 } } + \char_set_catcode:nn { 95 } { \char_value_catcode:n { 95 } } \char_set_catcode:nn { 126 } { \char_value_catcode:n { 126 } } \tex_endlinechar:D = \tex_the:D \tex_endlinechar:D \scan_stop: @@ -290,14 +278,10 @@ \cs_set_protected:Npn \ExplSyntaxOff { } } } - \char_set_catcode_ignore:n { 9 } % tab - \char_set_catcode_ignore:n { 32 } % space - \char_set_catcode_other:n { 34 } % double quote - \char_set_catcode_alignment:n { 38 } % ampersand - \char_set_catcode_letter:n { 58 } % colon - \char_set_catcode_math_superscript:n { 94 } % circumflex - \char_set_catcode_letter:n { 95 } % underscore - \char_set_catcode_other:n { 124 } % pipe + \char_set_catcode_ignore:n { 9 } % tab + \char_set_catcode_ignore:n { 32 } % space + \char_set_catcode_letter:n { 58 } % colon + \char_set_catcode_letter:n { 95 } % underscore \char_set_catcode_space:n { 126 } % tilde \tex_endlinechar:D = 32 \scan_stop: \bool_set_true:N \l__kernel_expl_bool @@ -7785,9 +7769,6 @@ { \int_value:w \tex_elapsedtime:D } } { - \msg_new:nnnn { kernel } { no-elapsed-time } - { No~clock~detected~for~#1. } - { The~current~engine~provides~no~way~to~access~the~system~time. } \cs_new:Npn \sys_timer: { \int_value:w @@ -10617,6 +10598,12 @@ LaTeX~has~been~asked~to~replace~an~empty~pattern~by~'#1':~that~ would~lead~to~an~infinite~loop! } +\cs_if_exist:NF \tex_elapsedtime:D + { + \msg_new:nnnn { kernel } { no-elapsed-time } + { No~clock~detected~for~#1. } + { The~current~engine~provides~no~way~to~access~the~system~time. } + } \msg_new:nnnn { kernel } { non-base-function } { Function~'#1'~is~not~a~base~function } { @@ -23221,7 +23208,6 @@ { \char_generate:nn { 32 } { 3 } 3 \char_generate:nn { 32 } { 4 } 4 - # \char_generate:nn { 32 } { 6 } 6 \char_generate:nn { 32 } { 7 } 7 \char_generate:nn { 32 } { 8 } 8 \c_space_tl \token_to_str:N A @@ -23451,35 +23437,40 @@ \scan_stop: \exp_after:wN \use_none:n \token_to_str:N #3 \prg_do_nothing: \scan_stop: - \exp_after:wN \__tl_analysis_b_char:Nww + \exp_after:wN \__tl_analysis_b_char:Nn + \exp_after:wN \__tl_analysis_b_char_aux:nww \else: \exp_after:wN \__tl_analysis_b_cs:Nww \fi: #3 #1; #2; } -\cs_new:Npx \__tl_analysis_b_char:Nww #1 +\cs_new:Npx \__tl_analysis_b_char:Nn #1#2 { - \exp_not:N \if_meaning:w #1 \exp_not:N \tex_undefined:D + \exp_not:N \if_meaning:w #2 \exp_not:N \tex_undefined:D \token_to_str:N D \exp_not:N \else: - \exp_not:N \if_catcode:w #1 \c_catcode_other_token + \exp_not:N \if_catcode:w #2 \c_catcode_other_token \token_to_str:N C \exp_not:N \else: - \exp_not:N \if_catcode:w #1 \c_catcode_letter_token + \exp_not:N \if_catcode:w #2 \c_catcode_letter_token \token_to_str:N B \exp_not:N \else: - \exp_not:N \if_catcode:w #1 \c_math_toggle_token 3 + \exp_not:N \if_catcode:w #2 \c_math_toggle_token 3 \exp_not:N \else: - \exp_not:N \if_catcode:w #1 \c_alignment_token 4 + \exp_not:N \if_catcode:w #2 \c_alignment_token 4 \exp_not:N \else: - \exp_not:N \if_catcode:w #1 \c_math_superscript_token 7 + \exp_not:N \if_catcode:w #2 \c_math_superscript_token 7 \exp_not:N \else: - \exp_not:N \if_catcode:w #1 \c_math_subscript_token 8 + \exp_not:N \if_catcode:w #2 \c_math_subscript_token 8 \exp_not:N \else: - \exp_not:N \if_catcode:w #1 \c_space_token + \exp_not:N \if_catcode:w #2 \c_space_token \token_to_str:N A \exp_not:N \else: 6 \exp_not:n { \fi: \fi: \fi: \fi: \fi: \fi: \fi: \fi: } - \exp_not:N \int_value:w `#1 \s__tl - \exp_not:N \exp_after:wN \exp_not:N \__tl_analysis_b_normals:ww - \exp_not:N \int_value:w \exp_not:N \int_eval:w - 1 + + #1 {#2} + } +\cs_new:Npn \__tl_analysis_b_char_aux:nww #1 + { + \int_value:w `#1 \s__tl + \exp_after:wN \__tl_analysis_b_normals:ww + \int_value:w \int_eval:w - 1 + } \cs_new:Npn \__tl_analysis_b_cs:Nww #1 { @@ -23693,49 +23684,96 @@ } \cs_new_protected:Npn \__tl_peek_analysis_test: { - \if_int_odd:w - \if_catcode:w \exp_not:N \l_peek_token { \c_zero_int \fi: - \if_catcode:w \exp_not:N \l_peek_token } \c_zero_int \fi: - \if_meaning:w \l_peek_token \c_space_token \c_zero_int \fi: - \c_one_int + \if_case:w + \if_catcode:w \exp_not:N \l_peek_token { \c_max_int \fi: + \if_catcode:w \exp_not:N \l_peek_token } \c_max_int \fi: + \if_meaning:w \l_peek_token \c_space_token \c_max_int \fi: + \exp_after:wN \if_meaning:w \exp_not:N \l_peek_token \l_peek_token + \c_one_int + \fi: + \c_zero_int \exp_after:wN \exp_after:wN - \exp_after:wN \__tl_peek_analysis_normal:N + \exp_after:wN \__tl_peek_analysis_exp:N \exp_after:wN \exp_not:N + \or: + \exp_after:wN \__tl_peek_analysis_nonexp:N \else: \exp_after:wN \__tl_peek_analysis_special: \fi: } -\cs_new_protected:Npn \__tl_peek_analysis_normal:N #1 +\cs_new_protected:Npn \__tl_peek_analysis_exp:N #1 + { + \cs_set_nopar:Npx \l__tl_peek_code_tl + { + \tex_let:D \exp_not:N #1 \scan_stop: + \exp_not:o \l__tl_peek_code_tl + { + \exp_not:n { \__kernel_exp_not:w \exp_after:wN } + { \exp_not:N \exp_not:N \exp_not:N #1 } + } + \if:w \scan_stop: + \exp_after:wN \use_none:n \token_to_str:N #1 \prg_do_nothing: + \scan_stop: + \exp_after:wN \exp_after:wN + \exp_after:wN \__tl_peek_analysis_exp_active:N + \else: + { -1 } 0 + \exp_after:wN \exp_after:wN + \exp_after:wN \use_none:n + \fi: + \exp_not:N #1 + } + \l__tl_peek_code_tl + } +\cs_new:Npx \__tl_peek_analysis_exp_active:N #1 + { { \exp_not:N \int_value:w `#1 } \token_to_str:N D } +\cs_new_protected:Npn \__tl_peek_analysis_nonexp:N #1 { - \exp_after:wN \reverse_if:N \exp_after:wN \if_meaning:w - \exp_not:N #1 #1 - \tex_let:D #1 \scan_stop: - \tl_put_right:Nn \l__tl_peek_code_tl { { \exp_not:N #1 } } - \else: - \tl_put_right:Nn \l__tl_peek_code_tl { { \exp_not:n {#1} } } - \fi: \if_charcode:w \scan_stop: \exp_after:wN \use_none:n \token_to_str:N #1 \prg_do_nothing: \scan_stop: \exp_after:wN \__tl_peek_analysis_char:N - \exp_after:wN #1 \else: - \exp_after:wN \__tl_peek_analysis_cs: + \exp_after:wN \__tl_peek_analysis_cs:N \fi: + #1 } -\cs_new_protected:Npn \__tl_peek_analysis_cs: - { \l__tl_peek_code_tl { -1 } 0 } -\cs_new_protected:Npn \__tl_peek_analysis_char:N #1 +\cs_new_protected:Npn \__tl_peek_analysis_cs:N #1 + { \l__tl_peek_code_tl { \exp_not:n {#1} } { -1 } 0 } +\group_begin: +\char_set_active_eq:NN \ \scan_stop: +\cs_new_protected:Npx \__tl_peek_analysis_char:N #1 { - \char_set_lccode:nn { `#1 } { 32 } - \tex_lowercase:D { \__tl_peek_analysis_char:nN {#1} } #1 + \cs_set_eq:NN + \char_generate:nn { 32 } { 13 } + \exp_not:N \tex_undefined:D + \tex_lccode:D `#1 = 32 \exp_stop_f: + \tex_lowercase:D + { + \tl_put_right:Nx \exp_not:N \l__tl_peek_code_tl + { \exp_not:n { \__tl_analysis_b_char:Nn \use_none:n } {#1} } + } + \exp_not:n + { + \exp_after:wN \__tl_peek_analysis_char:w + \int_value:w + } + `#1 + \exp_not:n { \exp_after:wN \s__tl \l__tl_peek_code_tl } + #1 } -\cs_new_protected:Npn \__tl_peek_analysis_char:nN #1#2 +\group_end: +\cs_new_protected:Npn \__tl_peek_analysis_char:w #1 \s__tl #2#3#4 { - \cs_set_protected:Npn \__tl_tmp:w ##1 #1 ##2 ##3 \scan_stop: - { \exp_args:No \l__tl_peek_code_tl { \int_value:w `#2 } ##2 } - \exp_after:wN \__tl_tmp:w \c__tl_peek_catcodes_tl \scan_stop: + \if_charcode:w 6 #3 + \else: + \if_charcode:w D #3 + \else: + \exp_args:NNNo + \fi: + \fi: + #2 { \exp_not:n {#4} } {#1} #3 } \cs_new_protected:Npn \__tl_peek_analysis_special: { @@ -23763,6 +23801,11 @@ { \tl_if_empty:oT { \tex_the:D \tex_everyeof:D } { \tex_everyeof:D { \scan_stop: } } + \tex_afterassignment:D \__tl_peek_analysis_nextii: + \tex_futurelet:D \l__tl_analysis_next_token + } +\cs_new_protected:Npn \__tl_peek_analysis_nextii: + { \tex_afterassignment:D \__tl_peek_analysis_str: \tex_futurelet:D \l__tl_analysis_next_token } @@ -30398,6 +30441,7 @@ { \cs_if_exist_p:N \stockwidth } { \cs_if_exist_p:N \IfDocumentMetadataTF } { \IfDocumentMetadataTF { \c_true_bool } { \c_false_bool } } + { \int_compare_p:nNn \tex_mag:D = { 1000 } } } { \bool_lazy_and:nnTF diff --git a/texmf/tex/latex/l3kernel/expl3-generic.tex b/texmf/tex/latex/l3kernel/expl3-generic.tex index 80a276777..e8f06e686 100644 --- a/texmf/tex/latex/l3kernel/expl3-generic.tex +++ b/texmf/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{2022-09-28}% +\def\ExplFileDate{2022-10-26}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 diff --git a/texmf/tex/latex/l3kernel/expl3.ltx b/texmf/tex/latex/l3kernel/expl3.ltx index 915b8c10d..0d2454e44 100644 --- a/texmf/tex/latex/l3kernel/expl3.ltx +++ b/texmf/tex/latex/l3kernel/expl3.ltx @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2022-09-28}% +\def\ExplFileDate{2022-10-26}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \catcode`\_=11 diff --git a/texmf/tex/latex/l3kernel/expl3.sty b/texmf/tex/latex/l3kernel/expl3.sty index 3a5c3d76e..8518152bd 100644 --- a/texmf/tex/latex/l3kernel/expl3.sty +++ b/texmf/tex/latex/l3kernel/expl3.sty @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2022-09-28}% +\def\ExplFileDate{2022-10-26}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [%