diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex | 403 |
1 files changed, 332 insertions, 71 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index d6a472cf469..0c0e211dda4 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -38,6 +38,7 @@ %% l3coffins.dtx (with options: `package') %% l3color.dtx (with options: `package') %% l3candidates.dtx (with options: `package') +%% l3sys.dtx (with options: `package') %% l3luatex.dtx (with options: `package') %% %% EXPERIMENTAL CODE @@ -81,8 +82,8 @@ %% ----------------------------------------------------------------------- \def\ExplFileName{expl3} \def\ExplFileDescription{L3 programming layer} -\def\ExplFileDate{2015/09/06} -\def\ExplFileVersion{5925} +\def\ExplFileDate{2015/09/11} +\def\ExplFileVersion{6002} \begingroup \def\next{\endgroup} \expandafter\ifx\csname PackageError\endcsname\relax @@ -241,7 +242,7 @@ } } \endgroup -\GetIdInfo$Id: l3bootstrap.dtx 5729 2015-07-31 05:56:12Z joseph $ +\GetIdInfo$Id: l3bootstrap.dtx 5983 2015-09-10 18:57:56Z joseph $ {L3 Bootstrap code} \begingroup \expandafter\ifx\csname directlua\endcsname\relax @@ -295,7 +296,48 @@ \global\everyjob\expandafter {% \the\expandafter\everyjob - \expandafter\luatex_directlua:D\expandafter{\tempa}% + \expandafter\lua_now_x:n\expandafter{\tempa}% + } + \fi + \fi + \fi +\endgroup +\begingroup + \expandafter\ifx\csname directlua\endcsname\relax + \else + \ifnum\luatexversion<70 % + \else + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname newcatcodetable\endcsname\relax + \directlua{tex.enableprimitives("",{"initcatcodetable"})} + \chardef\ucharcat@table"7000 % + \initcatcodetable\ucharcat@table + \else + \newcatcodetable\ucharcat@table + \fi + \catcode`\_=11 % + \catcode`\:=11 % + \def\tempa + {% + l3kernel = l3kernel or { } + local utf8_char = unicode.utf8.char + function l3kernel.charcat(charcode, catcode) + tex.setcatcode(\number\ucharcat@table, charcode, catcode) + tex.sprint(\number\ucharcat@table, utf8_char(charcode)) + end + } + \directlua{\tempa} + \ifnum 0% + \directlua + {% + if status.ini_version then + tex.write("1") + end + }>0 % + \global\everyjob\expandafter + {% + \the\expandafter\everyjob + \expandafter\lua_now_x:n\expandafter{\tempa}% } \fi \fi @@ -447,7 +489,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3names.dtx 5848 2015-08-17 05:27:13Z joseph $ +\GetIdInfo$Id: l3names.dtx 5939 2015-09-07 21:15:55Z joseph $ {L3 Namespace for primitives} \let \tex_global:D \global \let \tex_let:D \let @@ -1331,6 +1373,11 @@ \tex_let:D \utex_mathcode:D \XeTeXmathcode \tex_let:D \utex_mathcodenum:D \XeTeXmathcodenum \tex_fi:D +\etex_ifdefined:D \luatex_luatexversion:D + \tex_let:D \pdftex_pdftexbanner:D \tex_undefined:D + \tex_let:D \pdftex_pdftexbanner:D \tex_undefined:D + \tex_let:D \pdftex_pdftexversion:D \tex_undefined:D +\tex_fi:D \etex_ifdefined:D \normalend \tex_let:D \tex_end:D \normalend \tex_let:D \tex_everyjob:D \normaleveryjob @@ -1389,7 +1436,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3basics.dtx 5897 2015-08-28 09:06:29Z joseph $ +\GetIdInfo$Id: l3basics.dtx 5983 2015-09-10 18:57:56Z joseph $ {L3 Basic definitions} \tex_let:D \if_true: \tex_iftrue:D \tex_let:D \if_false: \tex_iffalse:D @@ -2108,40 +2155,6 @@ { \__msg_show_wrap:n { > ~ \token_to_str:N #1 = \cs_meaning:N #1 } } \cs_new_protected_nopar:Npn \cs_show:c { \group_begin: \exp_args:NNc \group_end: \cs_show:N } -\cs_new_eq:NN \luatex_if_engine:T \use_none:n -\cs_new_eq:NN \luatex_if_engine:F \use:n -\cs_new_eq:NN \luatex_if_engine:TF \use_ii:nn -\cs_new_eq:NN \pdftex_if_engine:T \use:n -\cs_new_eq:NN \pdftex_if_engine:F \use_none:n -\cs_new_eq:NN \pdftex_if_engine:TF \use_i:nn -\cs_new_eq:NN \xetex_if_engine:T \use_none:n -\cs_new_eq:NN \xetex_if_engine:F \use:n -\cs_new_eq:NN \xetex_if_engine:TF \use_ii:nn -\cs_new_eq:NN \luatex_if_engine_p: \c_false_bool -\cs_new_eq:NN \pdftex_if_engine_p: \c_true_bool -\cs_new_eq:NN \xetex_if_engine_p: \c_false_bool -\cs_if_exist:NT \xetex_XeTeXversion:D - { - \cs_gset_eq:NN \pdftex_if_engine:T \use_none:n - \cs_gset_eq:NN \pdftex_if_engine:F \use:n - \cs_gset_eq:NN \pdftex_if_engine:TF \use_ii:nn - \cs_gset_eq:NN \xetex_if_engine:T \use:n - \cs_gset_eq:NN \xetex_if_engine:F \use_none:n - \cs_gset_eq:NN \xetex_if_engine:TF \use_i:nn - \cs_gset_eq:NN \pdftex_if_engine_p: \c_false_bool - \cs_gset_eq:NN \xetex_if_engine_p: \c_true_bool - } -\cs_if_exist:NT \luatex_directlua:D - { - \cs_gset_eq:NN \luatex_if_engine:T \use:n - \cs_gset_eq:NN \luatex_if_engine:F \use_none:n - \cs_gset_eq:NN \luatex_if_engine:TF \use_i:nn - \cs_gset_eq:NN \pdftex_if_engine:T \use_none:n - \cs_gset_eq:NN \pdftex_if_engine:F \use:n - \cs_gset_eq:NN \pdftex_if_engine:TF \use_ii:nn - \cs_gset_eq:NN \luatex_if_engine_p: \c_true_bool - \cs_gset_eq:NN \pdftex_if_engine_p: \c_false_bool - } \cs_new_nopar:Npn \prg_do_nothing: { } \cs_new_eq:NN \__prg_break_point:Nn \use_ii:nn \cs_new:Npn \__prg_map_break:Nn #1#2#3 \__prg_break_point:Nn #4#5 @@ -2187,7 +2200,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3expan.dtx 5897 2015-08-28 09:06:29Z joseph $ +\GetIdInfo$Id: l3expan.dtx 5983 2015-09-10 18:57:56Z joseph $ {L3 Argument expansion} \cs_new:Npn \__exp_arg_next:nnn #1#2#3 { #2 \::: { #3 {#1} } } \cs_new:Npn \__exp_arg_next:Nnn #1#2#3 { #2 \::: { #3 #1 } } @@ -2667,7 +2680,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3tl.dtx 5908 2015-09-02 14:50:27Z joseph $ +\GetIdInfo$Id: l3tl.dtx 5983 2015-09-10 18:57:56Z joseph $ {L3 Token lists} \cs_new_protected:Npn \tl_new:N #1 { @@ -2848,16 +2861,25 @@ { \__tl_set_rescan:NNnn \prg_do_nothing: \use:n } \cs_new_protected:Npn \__tl_set_rescan:NNnn #1#2#3#4 { - \group_begin: - \exp_args:No \etex_everyeof:D { \c__tl_rescan_marker_tl \exp_not:N } - \int_compare:nNnT \tex_endlinechar:D = { 32 } - { \tex_endlinechar:D \c_minus_one } - \tex_newlinechar:D \tex_endlinechar:D - #3 \scan_stop: - \exp_args:No \__tl_set_rescan:n { \tl_to_str:n {#4} } - \exp_args:NNNo - \group_end: - #1 #2 \l__tl_internal_a_tl + \tl_if_empty:nTF {#4} + { + \group_begin: + #3 + \group_end: + #1 #2 { } + } + { + \group_begin: + \exp_args:No \etex_everyeof:D { \c__tl_rescan_marker_tl \exp_not:N } + \int_compare:nNnT \tex_endlinechar:D = { 32 } + { \tex_endlinechar:D \c_minus_one } + \tex_newlinechar:D \tex_endlinechar:D + #3 \scan_stop: + \exp_args:No \__tl_set_rescan:n { \tl_to_str:n {#4} } + \exp_args:NNNo + \group_end: + #1 #2 \l__tl_internal_a_tl + } } \cs_new_protected:Npn \__tl_set_rescan_multi:n #1 { @@ -3574,7 +3596,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3str.dtx 5920 2015-09-05 07:55:06Z joseph $ +\GetIdInfo$Id: l3str.dtx 5983 2015-09-10 18:57:56Z joseph $ {L3 Strings} \cs_new:Npn \str_head:n #1 { @@ -3592,7 +3614,7 @@ } \cs_new:Npn \__str_tail:w #1 X #2 \q_stop { \fi: #1 } \cs_new:Npn \__str_if_eq_x:nn #1#2 { \pdftex_strcmp:D {#1} {#2} } -\luatex_if_engine:T +\cs_if_exist:NT \luatex_luatexversion:D { \cs_set:Npn \__str_if_eq_x:nn #1#2 { @@ -4339,7 +4361,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3int.dtx 5885 2015-08-24 13:29:14Z mittelba $ +\GetIdInfo$Id: l3int.dtx 5987 2015-09-11 05:44:48Z joseph $ {L3 Integers} \cs_new_eq:NN \__int_value:w \tex_number:D \cs_new_eq:NN \__int_eval:w \etex_numexpr:D @@ -4439,15 +4461,20 @@ } } \cs_generate_variant:Nn \int_const:Nn { c } -\pdftex_if_engine:TF - { - \cs_new_eq:NN \__int_constdef:Nw \tex_mathchardef:D - \tex_mathchardef:D \c__max_constdef_int 32 767 ~ - } - { - \cs_new_eq:NN \__int_constdef:Nw \tex_chardef:D - \tex_chardef:D \c__max_constdef_int 1 114 111 ~ - } +\if_int_odd:w 0 + \cs_if_exist:NT \luatex_luatexversion:D { 1 } + \cs_if_exist:NT \uptex_disablecjktoken:D + { \if_int_compare:w \ptex_jis:D "2121 = "3000 ~ 1 \fi: } + \cs_if_exist:NT \xetex_XeTeXversion:D { 1 } + ~ + \cs_if_exist:NTF \uptex_disablecjktoken:D + { \cs_new_eq:NN \__int_constdef:Nw \uptex_kchardef:D } + { \cs_new_eq:NN \__int_constdef:Nw \tex_chardef:D } + \__int_constdef:Nw \c__max_constdef_int 1114111 ~ +\else: + \cs_new_eq:NN \__int_constdef:Nw \tex_mathchardef:D + \tex_mathchardef:D \c__max_constdef_int 32767 ~ +\fi: \cs_new_protected:Npn \int_zero:N #1 { #1 = \c_zero } \cs_new_protected:Npn \int_gzero:N #1 { \tex_global:D #1 = \c_zero } \cs_generate_variant:Nn \int_zero:N { c } @@ -5303,7 +5330,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3prg.dtx 5891 2015-08-25 08:00:59Z mittelba $ +\GetIdInfo$Id: l3prg.dtx 5983 2015-09-10 18:57:56Z joseph $ {L3 Control structures} %% \cs_new_eq:NN \if_bool:N \tex_ifodd:D @@ -7295,7 +7322,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3msg.dtx 5891 2015-08-25 08:00:59Z mittelba $ +\GetIdInfo$Id: l3msg.dtx 5983 2015-09-10 18:57:56Z joseph $ {L3 Messages} \tl_new:N \l__msg_internal_tl \tl_const:Nn \c__msg_text_prefix_tl { msg~text~>~ } @@ -8733,7 +8760,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3skip.dtx 5893 2015-08-26 16:16:52Z mittelba $ +\GetIdInfo$Id: l3skip.dtx 5983 2015-09-10 18:57:56Z joseph $ {L3 Dimensions and skips} \cs_new_eq:NN \if_dim:w \tex_ifdim:D \cs_new_eq:NN \__dim_eval:w \etex_dimexpr:D @@ -9173,7 +9200,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3keys.dtx 5869 2015-08-20 01:19:17Z bruno $ +\GetIdInfo$Id: l3keys.dtx 5983 2015-09-10 18:57:56Z joseph $ {L3 Key-value interfaces} \int_new:N \g__keyval_level_int \tl_new:N \l__keyval_key_tl @@ -16718,7 +16745,7 @@ %% %% ----------------------------------------------------------------------- %% -\GetIdInfo$Id: l3candidates.dtx 5911 2015-09-03 08:24:00Z joseph $ +\GetIdInfo$Id: l3candidates.dtx 6002 2015-09-11 22:13:30Z joseph $ {L3 Experimental additions to l3kernel} \cs_new_protected_nopar:Npn \cs_log:N { \__msg_log_next: \cs_show:N } @@ -18607,6 +18634,137 @@ \__char_tmp:nN { char_set_active_eq } \cs_set_eq:NN \__char_tmp:nN { char_gset_active_eq } \cs_gset_eq:NN \group_end: +\cs_new:Npn \char_generate:nn #1#2 + { + \exp:w \exp_after:wN \__char_generate_aux:w + \int_use:N \__int_eval:w #1 \exp_after:wN ; + \int_use:N \__int_eval:w #2 ; + } +\cs_new:Npn \__char_generate_aux:w #1 ; #2 ; + { + \if_int_compare:w #2 = \c_thirteen + \__msg_kernel_expandable_error:nn { kernel } { char-active } + \else: + \if_int_compare:w #2 = \c_ten + \if_int_compare:w #1 = \c_zero + \__msg_kernel_expandable_error:nn { kernel } { char-null-space } + \else: + \__msg_kernel_expandable_error:nn { kernel } { char-space } + \fi: + \else: + \if_int_odd:w 0 + \if_int_compare:w #2 < \c_one 1 \fi: + \if_int_compare:w #2 = \c_five 1 \fi: + \if_int_compare:w #2 = \c_nine 1 \fi: + \if_int_compare:w #2 > \c_thirteen 1 \fi: \exp_stop_f: + \__msg_kernel_expandable_error:nn { kernel } + { char-invalid-catcode } + \else: + \if_int_odd:w 0 + \if_int_compare:w #1 < \c_zero 1 \fi: + \if_int_compare:w #1 > \c__char_max_int 1 \fi: \exp_stop_f: + \__msg_kernel_expandable_error:nn { kernel } + { char-out-of-range } + \else: + \__char_generate_aux:nnw {#1} {#2} + \fi: + \fi: + \fi: + \fi: + \exp_end: + } +\tl_new:N \l__char_tmp_tl +\group_begin: + \cs_set_nopar:Npn ^^L { } + \char_set_catcode_other:n { 0 } + \if_int_odd:w 0 + \cs_if_exist:NT \luatex_directlua:D { 1 } + \cs_if_exist:NT \utex_charcat:D { 1 } \exp_stop_f: + \int_const:Nn \c__char_max_int { 1114111 } + \cs_if_exist:NTF \luatex_directlua:D + { + \cs_new:Npn \__char_generate_aux:nnw #1#2#3 \exp_end: + { + #3 + \exp_after:wN \exp_end: + \luatex_directlua:D { l3kernel.charcat(#1, #2) } + } + } + { + \cs_new:Npn \__char_generate_aux:nnw #1#2#3 \exp_end: + { + #3 + \exp_after:wN \exp_end: + \utex_charcat:D #1 ~ #2 ~ + } + } + \else: + \int_const:Nn \c__char_max_int { 255 } + \tl_set:Nn \l__char_tmp_tl { \exp_not:N \or: } + \char_set_catcode_group_begin:n { 0 } % { + \tl_put_right:Nn \l__char_tmp_tl { ^^@ \if_false: } } + \char_set_catcode_group_end:n { 0 } + \tl_put_right:Nn \l__char_tmp_tl { { \fi: \exp_not:N \or: ^^@ } % } + \tl_set:Nx \l__char_tmp_tl { \l__char_tmp_tl } + \char_set_catcode_math_toggle:n { 0 } + \tl_put_right:Nn \l__char_tmp_tl { \or: ^^@ } + \char_set_catcode_alignment:n { 0 } + \tl_put_right:Nn \l__char_tmp_tl { \or: ^^@ } + \tl_put_right:Nn \l__char_tmp_tl { \or: } + \char_set_catcode_parameter:n { 0 } + \tl_put_right:Nn \l__char_tmp_tl { \or: ^^@ } + \char_set_catcode_math_superscript:n { 0 } + \tl_put_right:Nn \l__char_tmp_tl { \or: ^^@ } + \char_set_catcode_math_subscript:n { 0 } + \tl_put_right:Nn \l__char_tmp_tl { \or: ^^@ } + \tl_put_right:Nn \l__char_tmp_tl { \or: } + \char_set_catcode_space:n { 0 } + \tl_put_right:No \l__char_tmp_tl { \use:n { \or: } ^^@ } + \char_set_catcode_letter:n { 0 } + \tl_put_right:Nn \l__char_tmp_tl { \or: ^^@ } + \char_set_catcode_other:n { 0 } + \tl_put_right:Nn \l__char_tmp_tl { \or: ^^@ } + \char_set_catcode_active:n { 0 } + \tl_put_right:Nn \l__char_tmp_tl { \or: ^^@ } + \cs_set_protected:Npn \__char_tmp:n #1 + { + \char_set_lccode:nn { 0 } {#1} + \char_set_lccode:nn { 32 } {#1} + \exp_args:Nx \tex_lowercase:D + { + \tl_const:cn { c__char_ \__int_to_roman:w #1 _tl } + { \exp_not:o \l__char_tmp_tl } + } + } + \int_step_function:nnnN { 0 } { 1 } { 11 } \__char_tmp:n + \group_begin: + \tl_replace_once:Nnn \l__char_tmp_tl { ^^@ } { \ERROR } + \__char_tmp:n { 12 } + \group_end: + \int_step_function:nnnN { 13 } { 1 } { 255 } \__char_tmp:n + \cs_new:Npn \__char_generate_aux:nnw #1#2#3 \exp_end: + { + #3 + \exp_after:wN \exp_after:wN + \exp_after:wN \exp_end: + \exp_after:wN \exp_after:wN + \if_case:w #2 + \exp_last_unbraced:Nv \exp_stop_f: + { c__char_ \__int_to_roman:w #1 _tl } + \fi: + } + \fi: +\group_end: +\__msg_kernel_new:nnn { kernel } { char-active } + { Cannot~generate~active~chars. } +\__msg_kernel_new:nnn { kernel } { char-invalid-catcode } + { Invalid~catcode~for~char~generation. } +\__msg_kernel_new:nnn { kernel } { char-null-space } + { Cannot~generate~null~char~as~a~space. } +\__msg_kernel_new:nnn { kernel } { char-out-of-range } + { Charcode~requested~out~of~engine~range. } +\__msg_kernel_new:nnn { kernel } { char-space } + { Cannot~generate~space~chars. } \group_begin: \char_set_catcode_other:N \O \char_set_catcode_other:N \U @@ -18655,6 +18813,109 @@ { \fp_gset:Nn #1 { \dim_to_fp:n {#2} } } \cs_generate_variant:Nn \fp_set_from_dim:Nn { c } \cs_generate_variant:Nn \fp_gset_from_dim:Nn { c } +%% File: l3sys.dtx Copyright (C) 2015 The LaTeX3 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 +%% +%% http://www.latex-project.org/lppl.txt +%% +%% This file is part of the "l3kernel bundle" (The Work in LPPL) +%% and all files in that bundle must be distributed together. +%% +%% The released version of this bundle is available from CTAN. +%% +%% ----------------------------------------------------------------------- +%% +%% The development version of the bundle can be found at +%% +%% http://www.latex-project.org/svnroot/experimental/trunk/ +%% +%% for those people who are interested. +%% +%%%%%%%%%%% +%% NOTE: %% +%%%%%%%%%%% +%% +%% Snapshots taken from the repository represent work in progress and may +%% not work or may contain conflicting material! We therefore ask +%% people _not_ to put them into distributions, archives, etc. without +%% prior consultation with the LaTeX3 Project. +%% +%% ----------------------------------------------------------------------- +\GetIdInfo$Id$ + {L3 Experimental system/runtime functions} +\clist_map_inline:nn { lua , pdf , p , up , xe } + { + \cs_new_eq:cN { sys_if_engine_ #1 tex:T } \use_none:n + \cs_new_eq:cN { sys_if_engine_ #1 tex:F } \use:n + \cs_new_eq:cN { sys_if_engine_ #1 tex:TF } \use_ii:nn + \cs_new_eq:cN { sys_if_engine_ #1 tex_p: } \c_false_bool + } +\cs_if_exist:NT \luatex_luatexversion:D + { + \cs_gset_eq:NN \sys_if_engine_luatex:T \use:n + \cs_gset_eq:NN \sys_if_engine_luatex:F \use_none:n + \cs_gset_eq:NN \sys_if_engine_luatex:TF \use_i:nn + \cs_gset_eq:NN \sys_if_engine_luatex_p: \c_true_bool + } +\cs_if_exist:NT \pdftex_pdftexversion:D + { + \cs_gset_eq:NN \sys_if_engine_pdftex:T \use:n + \cs_gset_eq:NN \sys_if_engine_pdftex:F \use_none:n + \cs_gset_eq:NN \sys_if_engine_pdftex:TF \use_i:nn + \cs_gset_eq:NN \sys_if_engine_pdftex_p: \c_true_bool + } +\cs_if_exist:NT \ptex_kanjiskip:D + { + \bool_if:nTF + { + \cs_if_exist_p:N \uptex_disablecjktoken:D && + \int_compare_p:nNn { \ptex_jis:D "2121 } = { "3000 } + } + { + \cs_gset_eq:NN \sys_if_engine_uptex:T \use:n + \cs_gset_eq:NN \sys_if_engine_uptex:F \use_none:n + \cs_gset_eq:NN \sys_if_engine_uptex:TF \use_i:nn + \cs_gset_eq:NN \sys_if_engine_uptex_p: \c_true_bool + } + { + \cs_gset_eq:NN \sys_if_engine_ptex:T \use:n + \cs_gset_eq:NN \sys_if_engine_ptex:F \use_none:n + \cs_gset_eq:NN \sys_if_engine_ptex:TF \use_i:nn + \cs_gset_eq:NN \sys_if_engine_ptex_p: \c_true_bool + } + } +\cs_if_exist:NT \xetex_XeTeXversion:D + { + \cs_gset_eq:NN \sys_if_engine_xetex:T \use:n + \cs_gset_eq:NN \sys_if_engine_xetex:F \use_none:n + \cs_gset_eq:NN \sys_if_engine_xetex:TF \use_i:nn + \cs_gset_eq:NN \sys_if_engine_xetex_p: \c_true_bool + } +\prg_new_eq_conditional:NNn \luatex_if_engine: \sys_if_engine_luatex: + { T , F , TF , p } +\prg_new_eq_conditional:NNn \xetex_if_engine: \sys_if_engine_xetex: + { T , F , TF , p } +\bool_if:nTF + { + \sys_if_engine_luatex_p: || + \sys_if_engine_xetex_p: + } + { + \cs_new_eq:NN \pdftex_if_engine:T \use_none:n + \cs_new_eq:NN \pdftex_if_engine:F \use:n + \cs_new_eq:NN \pdftex_if_engine:TF \use_ii:nn + \cs_new_eq:NN \pdftex_if_engine_p: \c_false_bool + } + { + \cs_new_eq:NN \pdftex_if_engine:T \use:n + \cs_new_eq:NN \pdftex_if_engine:F \use_none:n + \cs_new_eq:NN \pdftex_if_engine:TF \use_i:nn + \cs_new_eq:NN \pdftex_if_engine_p: \c_true_bool + } %% File: l3luatex.dtx Copyright (C) 2010-2015 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of the @@ -18687,7 +18948,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3luatex.dtx 5646 2015-06-30 21:19:24Z joseph $ +\GetIdInfo$Id: l3luatex.dtx 5983 2015-09-10 18:57:56Z joseph $ {L3 Experimental LuaTeX-specific functions} \cs_new:Npn \lua_now_x:n #1 { \luatex_directlua:D {#1} } \cs_new:Npn \lua_now:n #1 { \lua_now_x:n { \exp_not:n {#1} } } @@ -18696,7 +18957,7 @@ { \lua_shipout_x:n { \exp_not:n {#1} } } \cs_new:Npn \lua_escape_x:n #1 { \luatex_luaescapestring:D {#1} } \cs_new:Npn \lua_escape:n #1 { \lua_escape_x:n { \exp_not:n {#1} } } -\luatex_if_engine:F +\sys_if_engine_luatex:F { \clist_map_inline:nn { \lua_now_x:n , \lua_now:n , \lua_escape_x:n , \lua_escape:n } |