diff options
author | Karl Berry <karl@freefriends.org> | 2024-05-22 20:34:20 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-05-22 20:34:20 +0000 |
commit | ceeca4db570f8ccb7f4f3bc019d6017d3d00fcf6 (patch) | |
tree | a7001cea6fcf47e337132bc9fa6ea212a254b1c3 /Master/texmf-dist/tex/latex | |
parent | 1feee6aef8a8bc5e4ca1ad4d4e9cec1ba7e5f9d4 (diff) |
l3 (22may24)
git-svn-id: svn://tug.org/texlive/trunk@71323 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
17 files changed, 535 insertions, 154 deletions
diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def index a8a54ec2dae..77e846f3f16 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvipdfmx.def @@ -26,7 +26,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvipdfmx.def}{2024-04-11}{} + {l3backend-dvipdfmx.def}{2024-05-08}{} {L3 backend support: dvipdfmx} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def index 0c60ac3e936..d1cc1e78023 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.def @@ -26,7 +26,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvips.def}{2024-04-11}{} + {l3backend-dvips.def}{2024-05-08}{} {L3 backend support: dvips} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.pro b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.pro new file mode 100644 index 00000000000..574b83c8b1a --- /dev/null +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvips.pro @@ -0,0 +1,405 @@ +%% +%% This is file `l3backend-dvips.pro', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% l3backend-header.dtx (with options: `header,dvips') +%% +%% Copyright (C) 2019-2024 The LaTeX Project +%% +%% It may be distributed and/or modified under the conditions of +%% the LaTeX Project Public License (LPPL), either version 1.3c of +%% this license or (at your option) any later version. The latest +%% version of this license is in the file: +%% +%% https://www.latex-project.org/lppl.txt +%% +%% This file is part of the "l3backend bundle" (The Work in LPPL) +%% and all files in that bundle must be distributed together. +%% +%% File: l3backend-header.dtx +/color.sc { } def +TeXDict begin +/TeXcolorseparation { setcolor } def +end +true setglobal +/pdf.globaldict 4 dict def +false setglobal +/pdf.cvs { 65534 string cvs } def +/pdf.dvi.pt { 72.27 mul Resolution div } def +/pdf.pt.dvi { 72.27 div Resolution mul } def +/pdf.rect.ht { dup 1 get neg exch 3 get add } def +/pdf.linkmargin { 1 pdf.pt.dvi } def +/pdf.linkdp.pad { 0 } def +/pdf.linkht.pad { 0 } def +/pdf.rect + { /Rect [ pdf.llx pdf.lly pdf.urx pdf.ury ] } def +/pdf.save.ll + { + currentpoint + /pdf.lly exch def + /pdf.llx exch def + } + def +/pdf.save.ur + { + currentpoint + /pdf.ury exch def + /pdf.urx exch def + } + def +/pdf.save.linkll + { + currentpoint + pdf.linkmargin add + pdf.linkdp.pad add + /pdf.lly exch def + pdf.linkmargin sub + /pdf.llx exch def + } + def +/pdf.save.linkur + { + currentpoint + pdf.linkmargin sub + pdf.linkht.pad sub + /pdf.ury exch def + pdf.linkmargin add + /pdf.urx exch def + } + def +/pdf.dest.anchor + { + currentpoint exch + pdf.dvi.pt 72 add + /pdf.dest.x exch def + pdf.dvi.pt + vsize 72 sub exch sub + /pdf.dest.y exch def + } + def +/pdf.dest.point + { pdf.dest.x pdf.dest.y } def +/pdf.dest2device + { + /pdf.dest.y exch def + /pdf.dest.x exch def + matrix currentmatrix + matrix defaultmatrix + matrix invertmatrix + matrix concatmatrix + cvx exec + /pdf.dev.y exch def + /pdf.dev.x exch def + /pdf.tmpd exch def + /pdf.tmpc exch def + /pdf.tmpb exch def + /pdf.tmpa exch def + pdf.dest.x pdf.tmpa mul + pdf.dest.y pdf.tmpc mul add + pdf.dev.x add + pdf.dest.x pdf.tmpb mul + pdf.dest.y pdf.tmpd mul add + pdf.dev.y add + } + def +/pdf.bordertracking false def +/pdf.bordertracking.begin + { + SDict /pdf.bordertracking true put + SDict /pdf.leftboundary undef + SDict /pdf.rightboundary undef + /a where + { + /a + { + currentpoint pop + SDict /pdf.rightboundary known dup + { + SDict /pdf.rightboundary get 2 index lt + { not } + if + } + if + { pop } + { SDict exch /pdf.rightboundary exch put } + ifelse + moveto + currentpoint pop + SDict /pdf.leftboundary known dup + { + SDict /pdf.leftboundary get 2 index gt + { not } + if + } + if + { pop } + { SDict exch /pdf.leftboundary exch put } + ifelse + } + put + } + if + } + def +/pdf.bordertracking.end + { + /a where { /a { moveto } put } if + /x where { /x { 0 exch rmoveto } put } if + SDict /pdf.leftboundary known + { pdf.outerbox 0 pdf.leftboundary put } + if + SDict /pdf.rightboundary known + { pdf.outerbox 2 pdf.rightboundary put } + if + SDict /pdf.bordertracking false put + } + def + /pdf.bordertracking.endpage +{ + pdf.bordertracking + { + pdf.bordertracking.end + true setglobal + pdf.globaldict + /pdf.brokenlink.rect [ pdf.outerbox aload pop ] put + pdf.globaldict + /pdf.brokenlink.skip pdf.baselineskip put + pdf.globaldict + /pdf.brokenlink.dict + pdf.link.dict pdf.cvs put + false setglobal + mark pdf.link.dict cvx exec /Rect + [ + pdf.llx + pdf.lly + pdf.outerbox 2 get pdf.linkmargin add + currentpoint exch pop + pdf.outerbox pdf.rect.ht sub pdf.linkmargin sub + ] + /ANN pdf.pdfmark + } + if +} + def +/pdf.bordertracking.continue + { + /pdf.link.dict pdf.globaldict + /pdf.brokenlink.dict get def + /pdf.outerbox pdf.globaldict + /pdf.brokenlink.rect get def + /pdf.baselineskip pdf.globaldict + /pdf.brokenlink.skip get def + pdf.globaldict dup dup + /pdf.brokenlink.dict undef + /pdf.brokenlink.skip undef + /pdf.brokenlink.rect undef + currentpoint + /pdf.originy exch def + /pdf.originx exch def + /a where + { + /a + { + moveto + SDict + begin + currentpoint pdf.originy ne exch + pdf.originx ne or + { + pdf.save.linkll + /pdf.lly + pdf.lly pdf.outerbox 1 get sub def + pdf.bordertracking.begin + } + if + end + } + put + } + if + /x where + { + /x + { + 0 exch rmoveto + SDict + begin + currentpoint + pdf.originy ne exch pdf.originx ne or + { + pdf.save.linkll + /pdf.lly + pdf.lly pdf.outerbox 1 get sub def + pdf.bordertracking.begin + } + if + end + } + put + } + if + } + def +/pdf.breaklink + { + pop + counttomark 2 mod 0 eq + { + counttomark /pdf.count exch def + { + pdf.count 0 eq { exit } if + counttomark 2 roll + 1 index /Rect eq + { + dup 4 array copy + dup dup + 1 get + pdf.outerbox pdf.rect.ht + pdf.linkmargin 2 mul add sub + 3 exch put + dup + pdf.outerbox 2 get + pdf.linkmargin add + 2 exch put + dup dup + 3 get + pdf.outerbox pdf.rect.ht + pdf.linkmargin 2 mul add add + 1 exch put + /pdf.currentrect exch def + pdf.breaklink.write + { + pdf.currentrect + dup + pdf.outerbox 0 get + pdf.linkmargin sub + 0 exch put + dup + pdf.outerbox 2 get + pdf.linkmargin add + 2 exch put + dup dup + 1 get + pdf.baselineskip add + 1 exch put + dup dup + 3 get + pdf.baselineskip add + 3 exch put + /pdf.currentrect exch def + pdf.breaklink.write + } + 1 index 3 get + pdf.linkmargin 2 mul add + pdf.outerbox pdf.rect.ht add + 2 index 1 get sub + pdf.baselineskip div round cvi 1 sub + exch + repeat + pdf.currentrect + dup + pdf.outerbox 0 get + pdf.linkmargin sub + 0 exch put + dup dup + 1 get + pdf.baselineskip add + 1 exch put + dup dup + 3 get + pdf.baselineskip add + 3 exch put + dup 2 index 2 get 2 exch put + /pdf.currentrect exch def + pdf.breaklink.write + SDict /pdf.pdfmark.good false put + exit + } + { pdf.count 2 sub /pdf.count exch def } + ifelse + } + loop + } + if + /ANN + } + def +/pdf.breaklink.write + { + counttomark 1 sub + index /_objdef eq + { + counttomark -2 roll + dup wcheck + { + readonly + counttomark 2 roll + } + { pop pop } + ifelse + } + if + counttomark 1 add copy + pop pdf.currentrect + /ANN pdfmark + } + def +/pdf.pdfmark + { + SDict /pdf.pdfmark.good true put + dup /ANN eq + { + pdf.pdfmark.store + pdf.pdfmark.dict + begin + Subtype /Link eq + currentdict /Rect known and + SDict /pdf.outerbox known and + SDict /pdf.baselineskip known and + { + Rect 3 get + pdf.linkmargin 2 mul add + pdf.outerbox pdf.rect.ht add + Rect 1 get sub + pdf.baselineskip div round cvi 0 gt + { pdf.breaklink } + if + } + if + end + SDict /pdf.outerbox undef + SDict /pdf.baselineskip undef + currentdict /pdf.pdfmark.dict undef + } + if + pdf.pdfmark.good + { pdfmark } + { cleartomark } + ifelse + } + def +/pdf.pdfmark.store + { + /pdf.pdfmark.dict 65534 dict def + counttomark 1 add copy + pop + { + dup mark eq + { + pop + exit + } + { + pdf.pdfmark.dict + begin def end + } + ifelse + } + loop +} + def +%% +%% +%% End of file `l3backend-dvips.pro'. diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def index e1483003cc7..23474878bb2 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-dvisvgm.def @@ -26,7 +26,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-dvisvgm.def}{2024-04-11}{} + {l3backend-dvisvgm.def}{2024-05-08}{} {L3 backend support: dvisvgm} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { @@ -141,17 +141,10 @@ \__kernel_backend_literal:n { color~push~ #1 } } \cs_new_protected:Npn \__color_backend_stroke_cmyk:n #1 - { \__color_backend_cmyk:w #1 \s__color_stop } -\cs_new_protected:Npn \__color_backend_stroke_cmyk:w - #1 ~ #2 ~ #3 ~ #4 \s__color_stop { - \use:e - { - \__color_backend:nnn - { \fp_eval:n { -100 * ( 1 - min ( 1 , #1 + #4 ) ) } } - { \fp_eval:n { -100 * ( 1 - min ( 1 , #2 + #4 ) ) } } - { \fp_eval:n { -100 * ( 1 - min ( 1 , #3 + #4 ) ) } } - } + \__color_backend_fill_cmyk:n {#1} + \__kernel_backend_scope:n { stroke = "{?color}" } + \__color_backend_reset: } \cs_new_protected:Npn \__color_backend_stroke_gray:n #1 { diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def index cdd871cceda..c822ca86f40 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-luatex.def @@ -26,7 +26,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-luatex.def}{2024-04-11}{} + {l3backend-luatex.def}{2024-05-08}{} {L3 backend support: PDF output (LuaTeX)} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def index 3c51094bbc8..53a4e3e35df 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def @@ -26,7 +26,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-pdftex.def}{2024-04-11}{} + {l3backend-pdftex.def}{2024-05-08}{} {L3 backend support: PDF output (pdfTeX)} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { diff --git a/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def b/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def index e05725885ca..6f86de196b1 100644 --- a/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def +++ b/Master/texmf-dist/tex/latex/l3backend/l3backend-xetex.def @@ -26,7 +26,7 @@ %% %% File: l3backend-basics.dtx \ProvidesExplFile - {l3backend-xetex.def}{2024-04-11}{} + {l3backend-xetex.def}{2024-05-08}{} {L3 backend support: XeTeX} \cs_if_exist:NTF \__kernel_dependency_version_check:nn { diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index 8207f52f0fe..cd26bfb47d0 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -75,7 +75,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx -\def\ExplFileDate{2024-04-11}% +\def\ExplFileDate{2024-05-08}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -10078,9 +10078,19 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \prop_gput:Nnn { cno , co , coo , cnx , cVx , cxV , cxx } \cs_generate_variant:Nn \prop_put_if_not_in:Nnn - { NnV , NV , c , cnV , cV } + { + NnV , Nnv , Nne , NV , NVV , NVv , NVe , + Nv , NvV , Nvv , Nve , Ne , NeV , Nev , Nee , + c , cnV , cnv , cne , cV , cVV , cVv , cVe , + cv , cvV , cvv , cve , ce , ceV , cev , cee + } \cs_generate_variant:Nn \prop_gput_if_not_in:Nnn - { NnV , NV , c , cnV , cV } + { + NnV , Nnv , Nne , NV , NVV , NVv , NVe , + Nv , NvV , Nvv , Nve , Ne , NeV , Nev , Nee , + c , cnV , cnv , cne , cV , cVV , cVv , cVe , + cv , cvV , cvv , cve , ce , ceV , cev , cee + } \cs_new_protected:Npn \__prop_put:nNNnn #1#2#3#4#5 { \tl_set:Nn \l__prop_internal_tl @@ -13739,8 +13749,9 @@ Type H <return> for immediate help}\def~{\errmessage{% \tl_set:Nn \l__keys_relative_tl { \q__keys_no_value } \str_new:N \l__keys_property_str \bool_new:N \l__keys_selective_bool -\bool_new:N \l__keys_filtered_bool -\seq_new:N \l__keys_selective_seq +\bool_new:N \l__keys_exclude_bool +\seq_new:N \l__keys_selective_clist +\seq_new:N \l__keys_tmp_clist \clist_new:N \l__keys_unused_clist \tl_new:N \l_keys_value_tl \bool_new:N \l__keys_tmp_bool @@ -14359,27 +14370,40 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__keys_value_requirement:nn { forbidden } {#1} } \cs_new_protected:cpn { \c__keys_props_root_str .value_required:n } #1 { \__keys_value_requirement:nn { required } {#1} } -\cs_new_protected:Npn \keys_set:nn #1#2 +\cs_new_protected:Npn \__keys_set:nnnnNn + { + \exp_args:Nooo \__keys_set:nnnnnnnNn + \l__keys_unused_clist + \l__keys_selective_clist + \l__keys_relative_tl + } +\cs_new_protected:Npn \__keys_set:nnnnnnnNn #1#2#3#4#5#6#7#8#9 { + \clist_clear:N \l__keys_unused_clist + \clist_set:Ne \l__keys_selective_clist { \tl_to_str:n {#5} } + \tl_set:Nn \l__keys_relative_tl {#7} \use:e { - \bool_set_false:N \exp_not:N \l__keys_only_known_bool - \bool_set_false:N \exp_not:N \l__keys_filtered_bool - \bool_set_false:N \exp_not:N \l__keys_selective_bool - \tl_set:Nn \exp_not:N \l__keys_relative_tl - { \exp_not:N \q__keys_no_value } - \__keys_set:nn \exp_not:n { {#1} {#2} } - \bool_if:NT \l__keys_only_known_bool - { \bool_set_true:N \exp_not:N \l__keys_only_known_bool } - \bool_if:NT \l__keys_filtered_bool - { \bool_set_true:N \exp_not:N \l__keys_filtered_bool } - \bool_if:NT \l__keys_selective_bool - { \bool_set_true:N \exp_not:N \l__keys_selective_bool } - \tl_set:Nn \exp_not:N \l__keys_relative_tl - { \exp_not:o \l__keys_relative_tl } + \exp_not:n + { + #9 + \__keys_set:nn {#4} {#6} + } + \__keys_reset_bool:N \l__keys_only_known_bool + \__keys_reset_bool:N \l__keys_exclude_bool + \__keys_reset_bool:N \l__keys_selective_bool } + \clist_set_eq:NN #8 \l__keys_unused_clist + \__kernel_tl_set:Nx \l__keys_unused_clist { \exp_not:n {#1} } + \__kernel_tl_set:Nx \l__keys_selective_clist {#2} + \__kernel_tl_set:Nx \l__keys_relative_tl { \exp_not:n {#3} } + } +\cs_new:Npn \__keys_reset_bool:N #1 + { + \exp_not:c + { bool_set_ \bool_if:NTF #1 { true } { false } :N } + \exp_not:N #1 } -\cs_generate_variant:Nn \keys_set:nn { nV , nv , ne , no , nx } \cs_new_protected:Npn \__keys_set:nn #1#2 { \exp_args:No \__keys_set:nnn \l__keys_module_str {#1} {#2} } \cs_new_protected:Npn \__keys_set:nnn #1#2#3 @@ -14388,119 +14412,74 @@ Type H <return> for immediate help}\def~{\errmessage{% \keyval_parse:NNn \__keys_set_keyval:n \__keys_set_keyval:nn {#3} \str_set:Nn \l__keys_module_str {#1} } -\cs_new_protected:Npn \keys_set_known:nnN #1#2#3 +\cs_new_protected:Npn \keys_set:nn #1#2 { - \exp_args:No \__keys_set_known:nnnnN - \l__keys_unused_clist \q__keys_no_value {#1} {#2} #3 + \__keys_set:nnnnNn + {#1} { } {#2} { \q__keys_no_value } \l__keys_tmp_clist + { + \bool_set_false:N \l__keys_only_known_bool + \bool_set_false:N \l__keys_exclude_bool + \bool_set_false:N \l__keys_selective_bool + } } -\cs_generate_variant:Nn \keys_set_known:nnN { nV , nv , ne , no } +\cs_generate_variant:Nn \keys_set:nn { nV , nv , ne , no , nx } \cs_new_protected:Npn \keys_set_known:nnnN #1#2#3#4 { - \exp_args:No \__keys_set_known:nnnnN - \l__keys_unused_clist {#3} {#1} {#2} #4 + \__keys_set:nnnnNn + {#1} { } {#2} {#3} #4 + { + \bool_set_true:N \l__keys_only_known_bool + \bool_set_false:N \l__keys_exclude_bool + \bool_set_false:N \l__keys_selective_bool + } } \cs_generate_variant:Nn \keys_set_known:nnnN { nV , nv , ne , no } -\cs_new_protected:Npn \__keys_set_known:nnnnN #1#2#3#4#5 - { - \clist_clear:N \l__keys_unused_clist - \__keys_set_known:nnn {#2} {#3} {#4} - \__kernel_tl_set:Nx #5 { \exp_not:o \l__keys_unused_clist } - \__kernel_tl_set:Nx \l__keys_unused_clist { \exp_not:n {#1} } - } +\cs_new_protected:Npn \keys_set_known:nnN #1#2#3 + { \keys_set_known:nnnN {#1} {#2} { \q__keys_no_value } #3 } +\cs_generate_variant:Nn \keys_set_known:nnN { nV , nv , ne , no } \cs_new_protected:Npn \keys_set_known:nn #1#2 - { \__keys_set_known:nnn \q__keys_no_value {#1} {#2} } + { \keys_set_known:nnnN {#1} {#2} { \q__keys_no_value } \l__keys_tmp_clist } \cs_generate_variant:Nn \keys_set_known:nn { nV , nv , ne , no } -\cs_new_protected:Npn \__keys_set_known:nnn #1#2#3 +\cs_new_protected:Npn \keys_set_exclude_groups:nnnnN #1#2#3#4#5 { - \use:e + \__keys_set:nnnnNn + {#1} {#2} {#3} {#4} #5 { - \bool_set_true:N \exp_not:N \l__keys_only_known_bool - \bool_set_false:N \exp_not:N \l__keys_filtered_bool - \bool_set_false:N \exp_not:N \l__keys_selective_bool - \tl_set:Nn \exp_not:N \l__keys_relative_tl { \exp_not:n {#1} } - \__keys_set:nn \exp_not:n { {#2} {#3} } - \bool_if:NF \l__keys_only_known_bool - { \bool_set_false:N \exp_not:N \l__keys_only_known_bool } - \bool_if:NT \l__keys_filtered_bool - { \bool_set_true:N \exp_not:N \l__keys_filtered_bool } - \bool_if:NT \l__keys_selective_bool - { \bool_set_true:N \exp_not:N \l__keys_selective_bool } - \tl_set:Nn \exp_not:N \l__keys_relative_tl - { \exp_not:o \l__keys_relative_tl } + \bool_set_false:N \l__keys_only_known_bool + \bool_set_true:N \l__keys_exclude_bool + \bool_set_true:N \l__keys_selective_bool } } +\cs_generate_variant:Nn \keys_set_exclude_groups:nnnnN { nnV , nnv , nno } \cs_new_protected:Npn \keys_set_exclude_groups:nnnN #1#2#3#4 - { - \exp_args:No \__keys_set_exclude_groups:nnnnnN - \l__keys_unused_clist - \q__keys_no_value {#1} {#2} {#3} #4 - } + { \keys_set_exclude_groups:nnnnN {#1} {#2} {#3} { \q__keys_no_value } #4 } \cs_generate_variant:Nn \keys_set_exclude_groups:nnnN { nnV , nnv , nno } -\cs_new_protected:Npn \keys_set_exclude_groups:nnnnN #1#2#3#4#5 - { - \exp_args:No \__keys_set_exclude_groups:nnnnnN - \l__keys_unused_clist {#4} {#1} {#2} {#3} #5 - } -\cs_generate_variant:Nn \keys_set_exclude_groups:nnnnN { nnV , nnv , nno } -\cs_new_protected:Npn \__keys_set_exclude_groups:nnnnnN #1#2#3#4#5#6 +\cs_new_protected:Npn \keys_set_exclude_groups:nnn #1#2#3 { - \clist_clear:N \l__keys_unused_clist - \__keys_set_exclude_groups:nnnn {#2} {#3} {#4} {#5} - \__kernel_tl_set:Nx #6 { \exp_not:o \l__keys_unused_clist } - \__kernel_tl_set:Nx \l__keys_unused_clist { \exp_not:n {#1} } + \keys_set_exclude_groups:nnnnN {#1} {#2} {#3} + { \q__keys_no_value } \l__keys_tmp_clist } -\cs_new_protected:Npn \keys_set_exclude_groups:nnn #1#2#3 - {\__keys_set_exclude_groups:nnnn \q__keys_no_value {#1} {#2} {#3} } \cs_generate_variant:Nn \keys_set_exclude_groups:nnn { nnV , nnv , nno } -\cs_new_protected:Npn \__keys_set_exclude_groups:nnnn #1#2#3#4 +\cs_new_protected:Npn \keys_set_groups:nnnnN #1#2#3#4#5 { - \use:e + \__keys_set:nnnnNn + {#1} {#2} {#3} {#4} #5 { - \bool_set_false:N \exp_not:N \l__keys_only_known_bool - \bool_set_true:N \exp_not:N \l__keys_filtered_bool - \bool_set_true:N \exp_not:N \l__keys_selective_bool - \tl_set:Nn \exp_not:N \l__keys_relative_tl { \exp_not:n {#1} } - \__keys_set_selective:nnn \exp_not:n { {#2} {#3} {#4} } - \bool_if:NT \l__keys_only_known_bool - { \bool_set_true:N \exp_not:N \l__keys_only_known_bool } - \bool_if:NF \l__keys_filtered_bool - { \bool_set_false:N \exp_not:N \l__keys_filtered_bool } - \bool_if:NF \l__keys_selective_bool - { \bool_set_false:N \exp_not:N \l__keys_selective_bool } - \tl_set:Nn \exp_not:N \l__keys_relative_tl - { \exp_not:o \l__keys_relative_tl } + \bool_set_false:N \l__keys_only_known_bool + \bool_set_false:N \l__keys_exclude_bool + \bool_set_true:N \l__keys_selective_bool } } +\cs_generate_variant:Nn \keys_set_groups:nnnnN { nnV , nnv , nno } +\cs_new_protected:Npn \keys_set_groups:nnnN #1#2#3#4 + { \keys_set_groups:nnnnN {#1} {#2} {#3} { \q__keys_no_value } #4 } +\cs_generate_variant:Nn \keys_set_groups:nnnN { nnV , nnv , nno } \cs_new_protected:Npn \keys_set_groups:nnn #1#2#3 { - \use:e - { - \bool_set_false:N \exp_not:N \l__keys_only_known_bool - \bool_set_false:N \exp_not:N \l__keys_filtered_bool - \bool_set_true:N \exp_not:N \l__keys_selective_bool - \tl_set:Nn \exp_not:N \l__keys_relative_tl - { \exp_not:N \q__keys_no_value } - \__keys_set_selective:nnn \exp_not:n { {#1} {#2} {#3} } - \bool_if:NT \l__keys_only_known_bool - { \bool_set_true:N \exp_not:N \l__keys_only_known_bool } - \bool_if:NF \l__keys_filtered_bool - { \bool_set_true:N \exp_not:N \l__keys_filtered_bool } - \bool_if:NF \l__keys_selective_bool - { \bool_set_false:N \exp_not:N \l__keys_selective_bool } - \tl_set:Nn \exp_not:N \l__keys_relative_tl - { \exp_not:o \l__keys_relative_tl } - } + \keys_set_groups:nnnnN {#1} {#2} {#3} + { \q__keys_no_value } \l__keys_tmp_clist } \cs_generate_variant:Nn \keys_set_groups:nnn { nnV , nnv , nno } -\cs_new_protected:Npn \__keys_set_selective:nnn - { \exp_args:No \__keys_set_selective:nnnn \l__keys_selective_seq } -\cs_new_protected:Npn \__keys_set_selective:nnnn #1#2#3#4 - { - \exp_args:NNe \seq_set_from_clist:Nn - \l__keys_selective_seq { \tl_to_str:n {#3} } - \__keys_set:nn {#2} {#4} - \tl_set:Nn \l__keys_selective_seq {#1} - } \cs_new_protected:Npn \keys_precompile:nnN #1#2#3 { \bool_set_true:N \l__keys_precompile_bool @@ -14574,7 +14553,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__keys_check_groups: } { - \bool_if:NTF \l__keys_filtered_bool + \bool_if:NTF \l__keys_exclude_bool \__keys_execute: \__keys_store_unused: } @@ -14582,22 +14561,22 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__keys_check_groups: { \bool_set_false:N \l__keys_tmp_bool - \seq_map_inline:Nn \l__keys_selective_seq + \clist_map_inline:Nn \l__keys_selective_clist { \clist_if_in:NnT \l__keys_groups_clist {##1} { \bool_set_true:N \l__keys_tmp_bool - \seq_map_break: + \clist_map_break: } } \bool_if:NTF \l__keys_tmp_bool { - \bool_if:NTF \l__keys_filtered_bool + \bool_if:NTF \l__keys_exclude_bool \__keys_store_unused: \__keys_execute: } { - \bool_if:NTF \l__keys_filtered_bool + \bool_if:NTF \l__keys_exclude_bool \__keys_execute: \__keys_store_unused: } @@ -26019,7 +25998,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \__regex_compile_abort_tokens:e {#1} #2 #3 } -\cs_new_protected:Npn \__regex_compile_quantifier_lazyness:nnNN #1#2#3#4 +\cs_new_protected:Npn \__regex_compile_quantifier_laziness:nnNN #1#2#3#4 { \__regex_two_if_eq:NNNNTF #3 #4 \__regex_compile_special:N ? { @@ -26033,11 +26012,11 @@ Type H <return> for immediate help}\def~{\errmessage{% } } \cs_new_protected:cpn { __regex_compile_quantifier_?:w } - { \__regex_compile_quantifier_lazyness:nnNN { 0 } { 1 } } + { \__regex_compile_quantifier_laziness:nnNN { 0 } { 1 } } \cs_new_protected:cpn { __regex_compile_quantifier_*:w } - { \__regex_compile_quantifier_lazyness:nnNN { 0 } { -1 } } + { \__regex_compile_quantifier_laziness:nnNN { 0 } { -1 } } \cs_new_protected:cpn { __regex_compile_quantifier_+:w } - { \__regex_compile_quantifier_lazyness:nnNN { 1 } { -1 } } + { \__regex_compile_quantifier_laziness:nnNN { 1 } { -1 } } \cs_new_protected:cpn { __regex_compile_quantifier_ \c_left_brace_str :w } { \__regex_get_digits:NTFw \l__regex_internal_a_int @@ -26050,7 +26029,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { { \__regex_compile_special:N \c_right_brace_str } { - \exp_args:No \__regex_compile_quantifier_lazyness:nnNN + \exp_args:No \__regex_compile_quantifier_laziness:nnNN { \int_use:N \l__regex_internal_a_int } 0 } { \__regex_compile_special:N , } @@ -26070,7 +26049,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \__regex_two_if_eq:NNNNTF #1 #2 \__regex_compile_special:N \c_right_brace_str { - \exp_args:No \__regex_compile_quantifier_lazyness:nnNN + \exp_args:No \__regex_compile_quantifier_laziness:nnNN { \int_use:N \l__regex_internal_a_int } { -1 } } { @@ -26092,7 +26071,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \else: \int_sub:Nn \l__regex_internal_b_int \l__regex_internal_a_int \fi: - \exp_args:Noo \__regex_compile_quantifier_lazyness:nnNN + \exp_args:Noo \__regex_compile_quantifier_laziness:nnNN { \int_use:N \l__regex_internal_a_int } { \int_use:N \l__regex_internal_b_int } } @@ -27225,7 +27204,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \int_set_eq:NN \l__regex_right_state_int \l__regex_max_state_int \int_incr:N \l__regex_max_state_int } -\cs_new_protected:Npn \__regex_build_transitions_lazyness:NNNNN #1#2#3#4#5 +\cs_new_protected:Npn \__regex_build_transitions_laziness:NNNNN #1#2#3#4#5 { \__regex_build_new_state: \__regex_toks_put_right:Ne \l__regex_left_state_int @@ -27267,13 +27246,13 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \__regex_class_repeat:nN #1#2 { \if_int_compare:w #1 = \c_zero_int - \__regex_build_transitions_lazyness:NNNNN #2 + \__regex_build_transitions_laziness:NNNNN #2 \__regex_action_free:n \l__regex_right_state_int \__regex_tests_action_cost:n \l__regex_left_state_int \else: \__regex_class_repeat:n {#1} \int_set_eq:NN \l__regex_internal_a_int \l__regex_left_state_int - \__regex_build_transitions_lazyness:NNNNN #2 + \__regex_build_transitions_laziness:NNNNN #2 \__regex_action_free:n \l__regex_right_state_int \__regex_action_free:n \l__regex_internal_a_int \fi: @@ -27285,7 +27264,7 @@ Type H <return> for immediate help}\def~{\errmessage{% { \l__regex_max_state_int + #2 - \c_one_int } \prg_replicate:nn { #2 } { - \__regex_build_transitions_lazyness:NNNNN #3 + \__regex_build_transitions_laziness:NNNNN #3 \__regex_action_free:n \l__regex_internal_a_int \__regex_tests_action_cost:n \l__regex_right_state_int } @@ -31934,7 +31913,7 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_generate_variant:Nn \pdf_object_unnamed_write:nn { ne , nx } \cs_new:Npn \pdf_object_ref_last: { \__pdf_backend_object_last: } \cs_new:Npn \pdf_pageobject_ref:n #1 - { \__pdf_backend_pageobject_ref:n {#1} } + { \exp_args:Ne \__pdf_backend_pageobject_ref:n {#1} } \prg_new_conditional:Npnn \pdf_version_compare:Nn #1#2 { p , T , F , TF } { \use:c { __pdf_version_compare_ #1 :w } #2 . . \s__pdf_stop } \cs_new:cpn { __pdf_version_compare_=:w } #1 . #2 . #3 \s__pdf_stop @@ -37328,13 +37307,14 @@ Type H <return> for immediate help}\def~{\errmessage{% \cs_new_protected:Npn \pdf_object_new:nn #1#2 { \prop_gput:Nnn \g__pdf_object_prop {#1} {#2} - \__pdf_backend_object_new:n {#1} + \pdf_object_new:n {#1} } \__kernel_patch_deprecation:nnNNpn { 2022-08-30 } { [\pdf_object_write:n] } \cs_new_protected:Npn \pdf_object_write:nn #1#2 { - \exp_args:Nne \__pdf_backend_object_write:nnn - {#1} { \prop_item:Nn \g__pdf_object_prop {#1} } {#2} + \exp_args:Nee \__pdf_backend_object_write:nnn + { \__pdf_object_retrieve:n {#1} } + { \prop_item:Nn \g__pdf_object_prop {#1} } {#2} \bool_gset_true:N \g__pdf_init_bool } \cs_generate_variant:Nn \pdf_object_write:nn { nx } diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index dd19a6f698a..f99a59004b7 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{2024-04-11}% +\def\ExplFileDate{2024-05-08}% \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 9c853155636..f852288c7e4 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{2024-04-11}% +\def\ExplFileDate{2024-05-08}% \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 17f9599acdb..f5561de8b0c 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{2024-04-11}% +\def\ExplFileDate{2024-05-08}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [% diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3debug.def b/Master/texmf-dist/tex/latex/l3kernel/l3debug.def index 8b210aa484a..7b0bea70198 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3debug.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3debug.def @@ -19,7 +19,7 @@ %% and all files in that bundle must be distributed together. %% %% File: l3debug.dtx -\ProvidesExplFile{l3debug.def}{2024-04-11}{}{L3 Debugging support} +\ProvidesExplFile{l3debug.def}{2024-05-08}{}{L3 Debugging support} \scan_new:N \s__debug_stop \cs_new:Npn \__debug_use_i_delimit_by_s_stop:nw #1 #2 \s__debug_stop {#1} \quark_new:N \q__debug_recursion_tail diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls index 55284d08838..d37f1f9f214 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls +++ b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls @@ -20,7 +20,7 @@ %% %% File: l3doc.dtx \RequirePackage{calc} -\ProvidesExplClass{l3doc}{2024-04-11}{} +\ProvidesExplClass{l3doc}{2024-05-08}{} {L3 Experimental documentation class} \clist_new:N \g_docinput_clist \seq_new:N \g_doc_functions_seq diff --git a/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty b/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty index 7a35d81618e..23dc455743d 100644 --- a/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty +++ b/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty @@ -32,7 +32,7 @@ }% \endinput } -\ProvidesExplPackage{l3keys2e}{2024-03-14}{} +\ProvidesExplPackage{l3keys2e}{2024-05-08}{} {LaTeX2e option processing using LaTeX3 keys} \cs_if_exist:NT \ProcessKeysOptions { \file_input_stop: } diff --git a/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty b/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty index 995615e80e5..e63242d19ac 100644 --- a/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty +++ b/Master/texmf-dist/tex/latex/l3packages/xfp/xfp.sty @@ -32,7 +32,7 @@ }% \endinput } -\ProvidesExplPackage{xfp}{2024-03-14}{} +\ProvidesExplPackage{xfp}{2024-05-08}{} {L3 Floating point unit} \ProvideExpandableDocumentCommand \fpeval { m } { \fp_eval:n {#1} } \ProvideExpandableDocumentCommand \inteval { m } { \int_eval:n {#1} } diff --git a/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty b/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty index e09776c5644..e87a832432f 100644 --- a/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty +++ b/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty @@ -60,7 +60,7 @@ } } \ExplSyntaxOff -\ProvidesExplPackage{xparse}{2024-03-14}{} +\ProvidesExplPackage{xparse}{2024-05-08}{} {L3 Experimental document command parser} \clist_new:N \l__cmd_options_clist \DeclareOption* { \clist_put_right:NV \l__cmd_options_clist \CurrentOption } diff --git a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty index e4ce40461c7..04c80418890 100644 --- a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty +++ b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty @@ -25,12 +25,15 @@ \endinput } {% - \ProvidesExplPackage{xtemplate}{2024-03-14}{} + \ProvidesExplPackage{xtemplate}{2024-05-08}{} {L3 Experimental prototype document functions} \long\protected\def\DeclareRestrictedTemplate#1#2#3#4{% \DeclareTemplateCopy{#1}{#3}{#2}% \EditTemplateDefaults{#1}{#3}{#4}% }% + \let\IfInstanceExistT\IfInstanceExistsT + \let\IfInstanceExistF\IfInstanceExistsF + \let\IfInstanceExistTF\IfInstanceExistsTF } \ExplSyntaxOn \cs_new_protected:Npn \DeclareObjectType #1#2 |