diff options
author | Karl Berry <karl@freefriends.org> | 2018-06-15 21:10:33 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-06-15 21:10:33 +0000 |
commit | 59957bdeedffe4b1c7e2727afd9dcd4b60851a90 (patch) | |
tree | 6271bbef4d4656a157bb4b4b7363f0402ad2fcb0 /Master/texmf-dist/tex/latex/l3kernel | |
parent | df818138a81e60aa4f59b5558202aa5217062165 (diff) |
l3kernel (15jun18)
git-svn-id: svn://tug.org/texlive/trunk@48022 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel')
8 files changed, 308 insertions, 13 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index 6cf7cdc6578..b07a1cf252b 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -63,7 +63,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx Copyright (C) 1990-2018 The LaTeX3 Project -\def\ExplFileDate{2018-06-01}% +\def\ExplFileDate{2018-06-14}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -3175,6 +3175,15 @@ { \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 \::f #1 \::: #2#3 { \exp_after:wN \__exp_arg_next:nnn @@ -3236,6 +3245,18 @@ { \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: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 @@ -3260,6 +3281,16 @@ \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 + { + \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 @@ -3330,6 +3361,7 @@ \cs_new:Npn \exp_args:Nno { \::n \::o \::: } \cs_new:Npn \exp_args:NnV { \::n \::V \::: } \cs_new:Npn \exp_args:Nnv { \::n \::v \::: } +\cs_new:Npn \exp_args:Nne { \::n \::e \::: } \cs_new:Npn \exp_args:Nnf { \::n \::f \::: } \cs_new:Npn \exp_args:Noc { \::o \::c \::: } \cs_new:Npn \exp_args:Noo { \::o \::o \::: } @@ -3380,6 +3412,15 @@ \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 \::f_unbraced \::: #1#2 { \exp_after:wN \__exp_arg_last_unbraced:nn @@ -3395,6 +3436,12 @@ { \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: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 @@ -3457,8 +3504,17 @@ \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:f #1 - { \tex_unexpanded:D \exp_after:wN { \exp:w \exp_end_continue_f:w #1 } } + { \__kernel_exp_not:w \exp_after:wN { \exp:w \exp_end_continue_f:w #1 } } \cs_new:Npn \exp_not:V #1 { \__kernel_exp_not:w \exp_after:wN @@ -3479,6 +3535,238 @@ \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 + { + \__kernel_msg_expandable_error:nnn { kernel } { e-type } + { \primitive not~implemented } + \__exp_e:nn + } + \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} + { + \__kernel_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: } + { + \__kernel_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 ; } + \exp_after:wN { \if_false: } \fi: + } + \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: ? + } \__kernel_patch:nnNNpn { \__kernel_chk_cs_exist:N #1 } { } \cs_new_protected:Npn \cs_generate_variant:Nn #1#2 { @@ -3575,10 +3863,12 @@ \if:w V #1 n \else: \if:w v #1 n \else: \if:w f #1 n \else: - \if:w x #1 n \else: - \if:w n #1 n \else: - \if:w N #1 N \else: - \scan_stop: + \if:w e #1 n \else: + \if:w x #1 n \else: + \if:w n #1 n \else: + \if:w N #1 N \else: + \scan_stop: + \fi: \fi: \fi: \fi: @@ -9731,6 +10021,11 @@ { Relation~'#1'~unknown:~use~=,~<,~>,~==,~!=,~<=,~>=. } \__kernel_msg_new:nnn { kernel } { zero-step } { Zero~step~size~for~step~function~#1. } +\cs_if_exist:NF \tex_expanded:D + { + \__kernel_msg_new:nnn { kernel } { e-type } + { #1 ~ in~e-type~argument } + } \__kernel_msg_new:nnn { kernel } { show-clist } { The~comma~list~ \tl_if_empty:nF {#1} { #1 ~ } diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index 251bd130847..0a797cade44 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 Copyright (C) 1990-2018 The LaTeX3 Project -\def\ExplFileDate{2018-06-01}% +\def\ExplFileDate{2018-06-14}% \let\ExplLoaderFileDate\ExplFileDate \begingroup \def\tempa{LaTeX2e}% diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty index 31091110395..8c35b008653 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 Copyright (C) 1990-2018 The LaTeX3 Project -\def\ExplFileDate{2018-06-01}% +\def\ExplFileDate{2018-06-14}% \let\ExplLoaderFileDate\ExplFileDate \ProvidesPackage{expl3} [% diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def index b37fd053f39..dfb4dec6f0d 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvipdfmx.def @@ -20,7 +20,7 @@ %% %% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project \ProvidesExplFile - {l3dvidpfmx.def}{2018-06-01}{} + {l3dvidpfmx.def}{2018-06-14}{} {L3 Experimental driver: dvipdfmx} \cs_new_eq:NN \__driver_literal_x:n \tex_special:D \cs_new_protected:Npn \__driver_literal:n #1 diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def index 73a8992041b..7a13c44ddee 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvips.def @@ -20,7 +20,7 @@ %% %% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project \ProvidesExplFile - {l3dvips.def}{2018-06-01}{} + {l3dvips.def}{2018-06-14}{} {L3 Experimental driver: dvips} \cs_new_eq:NN \__driver_literal_x:n \tex_special:D \cs_new_protected:Npn \__driver_literal:n #1 diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def index bcb954e19e0..d11ba6a2554 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3dvisvgm.def @@ -20,7 +20,7 @@ %% %% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project \ProvidesExplFile - {l3dvisvgm.def}{2018-06-01}{} + {l3dvisvgm.def}{2018-06-14}{} {L3 Experimental driver: dvisvgm} \cs_new_eq:NN \__driver_literal_x:n \tex_special:D \cs_new_protected:Npn \__driver_literal:n #1 diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def index 6ae1a5b72ef..f1ed2af34f8 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3pdfmode.def @@ -20,7 +20,7 @@ %% %% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project \ProvidesExplFile - {l3pdfmode.def}{2018-06-01}{} + {l3pdfmode.def}{2018-06-14}{} {L3 Experimental driver: PDF mode} \cs_new_eq:NN \__driver_literal_x:n \tex_special:D \cs_new_protected:Npn \__driver_literal:n #1 diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def index ed60301fdd7..f73a321a40f 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def +++ b/Master/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def @@ -20,7 +20,7 @@ %% %% File: l3drivers.dtx Copyright(C) 2011-2018 The LaTeX3 Project \ProvidesExplFile - {l3xdvidpfmx.def}{2018-06-01}{} + {l3xdvidpfmx.def}{2018-06-14}{} {L3 Experimental driver: xdvipdfmx} \cs_new_eq:NN \__driver_literal_x:n \tex_special:D \cs_new_protected:Npn \__driver_literal:n #1 |