diff options
author | Karl Berry <karl@freefriends.org> | 2016-01-26 23:00:51 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2016-01-26 23:00:51 +0000 |
commit | 54371d50fc6a5abc2b07e926553d7ca9cccdff74 (patch) | |
tree | 86eac8cd76591209c5d5748b423edeff3fa69013 /Master/texmf-dist/tex/latex/l3kernel | |
parent | 43fbca5d01e622dd7c348d42b222bb87496d0bdc (diff) |
l3
git-svn-id: svn://tug.org/texlive/trunk@39491 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel')
-rw-r--r-- | Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex | 1063 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex | 6 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/l3kernel/expl3.sty | 6 |
3 files changed, 545 insertions, 530 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index 3b89b6f6fd1..048905cce52 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -37,8 +37,8 @@ %% l3box.dtx (with options: `package') %% l3coffins.dtx (with options: `package') %% l3color.dtx (with options: `package') -%% l3candidates.dtx (with options: `package') %% l3sys.dtx (with options: `package') +%% l3candidates.dtx (with options: `package') %% l3luatex.dtx (with options: `package,tex') %% %% EXPERIMENTAL CODE @@ -48,7 +48,7 @@ %% %% Do not distribute a modified version of this file. %% -%% File: expl3.dtx Copyright (C) 1990-2015 The LaTeX3 Project +%% File: expl3.dtx Copyright (C) 1990-2016 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 @@ -82,8 +82,8 @@ %% ----------------------------------------------------------------------- \def\ExplFileName{expl3}% \def\ExplFileDescription{L3 programming layer}% -\def\ExplFileDate{2016/01/03}% -\def\ExplFileVersion{6358}% +\def\ExplFileDate{2016/01/19}% +\def\ExplFileVersion{6377}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -4789,7 +4789,7 @@ \seq_new:N \l_tmpb_seq \seq_new:N \g_tmpa_seq \seq_new:N \g_tmpb_seq -%% File: l3int.dtx Copyright (C) 1990-2015 The LaTeX3 Project +%% File: l3int.dtx Copyright (C) 1990-2016 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 @@ -4821,7 +4821,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3int.dtx 6089 2015-09-25 13:29:50Z mittelba $ +\GetIdInfo$Id: l3int.dtx 6366 2016-01-05 22:18:59Z joseph $ {L3 Integers} \cs_new_eq:NN \__int_value:w \tex_number:D \cs_new_eq:NN \__int_eval:w \etex_numexpr:D @@ -5611,12 +5611,6 @@ \int_new:N \l_tmpb_int \int_new:N \g_tmpa_int \int_new:N \g_tmpb_int -\cs_new_eq:NN \int_to_binary:n \int_to_bin:n -\cs_new_eq:NN \int_to_hexadecimal:n \int_to_Hex:n -\cs_new_eq:NN \int_to_octal:n \int_to_oct:n -\cs_new_eq:NN \int_from_binary:n \int_from_bin:n -\cs_new_eq:NN \int_from_hexadecimal:n \int_from_hex:n -\cs_new_eq:NN \int_from_octal:n \int_from_oct:n %% File: l3quark.dtx Copyright (C) 1990-2015 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of the @@ -7266,7 +7260,7 @@ } { \scan_stop: } } -%% File: l3prop.dtx Copyright (C) 1990-2015 The LaTeX3 Project +%% File: l3prop.dtx Copyright (C) 1990-2016 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 @@ -7298,7 +7292,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3prop.dtx 5777 2015-08-05 02:32:21Z bruno $ +\GetIdInfo$Id: l3prop.dtx 6366 2016-01-05 22:18:59Z joseph $ {L3 Property lists} \__scan_new:N \s__prop \cs_new:Npn \__prop_pair:wn #1 \s__prop #2 @@ -7569,8 +7563,6 @@ { \prop_map_function:NN #1 \__msg_show_item:nn } } \cs_generate_variant:Nn \prop_show:N { c } -\cs_new_eq:NN \prop_get:Nn \prop_item:Nn -\cs_new_eq:NN \prop_get:cn \prop_item:cn %% File: l3msg.dtx Copyright (C) 2009-2015 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of the @@ -8987,7 +8979,7 @@ \__msg_kernel_new:nnn { kernel } { indent-outside-wrapping-code } { Only~\iow_wrap:nnnN~(arg~1)~allows~\iow_indent:n } %% File: l3skip.dtx Copyright (C) 2004-2011 Frank Mittelbach, The LaTeX3 Project -%% (C) 2012-2015 The LaTeX3 Project +%% (C) 2012-2016 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 @@ -9019,7 +9011,7 @@ %% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -\GetIdInfo$Id: l3skip.dtx 6089 2015-09-25 13:29:50Z mittelba $ +\GetIdInfo$Id: l3skip.dtx 6366 2016-01-05 22:18:59Z 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 @@ -9425,8 +9417,6 @@ \muskip_new:N \l_tmpb_muskip \muskip_new:N \g_tmpa_muskip \muskip_new:N \g_tmpb_muskip -\cs_new_eq:NN \__dim_strip_bp:n \dim_to_decimal_in_bp:n -\cs_new_eq:NN \__dim_strip_pt:n \dim_to_decimal:n %% File: l3keys.dtx Copyright (C) 2006-2015 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of the @@ -16981,7 +16971,151 @@ } } } -%% File: l3candidates.dtx Copyright(C) 2012-2015 The LaTeX3 Project +%% 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: l3sys.dtx 6087 2015-09-25 10:29:53Z joseph $ + {L3 Experimental system/runtime functions} +\str_const:Nx \c_sys_jobname_str { \tex_jobname:D } +\int_const:Nn \c_sys_minute_int + { \int_mod:nn { \tex_time:D } { 60 } } +\int_const:Nn \c_sys_hour_int + { \int_div_truncate:nn { \tex_time:D } { 60 } } +\int_const:Nn \c_sys_day_int { \tex_day:D } +\int_const:Nn \c_sys_month_int { \tex_month:D } +\int_const:Nn \c_sys_year_int { \tex_year:D } +\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 + \str_const:Nn \c_sys_engine_str { luatex } + } +\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 + \str_const:Nn \c_sys_engine_str { pdftex } + } +\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 + \str_const:Nn \c_sys_engine_str { uptex } + } + { + \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 + \str_const:Nn \c_sys_engine_str { ptex } + } + } +\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 + \str_const:Nn \c_sys_engine_str { xetex } + } +\bool_if:nTF + { + \cs_if_exist_p:N \pdftex_pdfoutput:D + && \int_compare_p:nNn \pdftex_pdfoutput:D > \c_zero + } + { + \cs_new_eq:NN \sys_if_output_dvi:T \use_none:n + \cs_new_eq:NN \sys_if_output_dvi:F \use:n + \cs_new_eq:NN \sys_if_output_dvi:TF \use_ii:nn + \cs_new_eq:NN \sys_if_output_dvi_p: \c_false_bool + \cs_new_eq:NN \sys_if_output_pdf:T \use:n + \cs_new_eq:NN \sys_if_output_pdf:F \use_none:n + \cs_new_eq:NN \sys_if_output_pdf:TF \use_i:nn + \cs_new_eq:NN \sys_if_output_pdf_p: \c_true_bool + \str_const:Nn \c_sys_output_str { pdf } + } + { + \cs_new_eq:NN \sys_if_output_dvi:T \use:n + \cs_new_eq:NN \sys_if_output_dvi:F \use_none:n + \cs_new_eq:NN \sys_if_output_dvi:TF \use_i:nn + \cs_new_eq:NN \sys_if_output_dvi_p: \c_true_bool + \cs_new_eq:NN \sys_if_output_pdf:T \use_none:n + \cs_new_eq:NN \sys_if_output_pdf:F \use:n + \cs_new_eq:NN \sys_if_output_pdf:TF \use_ii:nn + \cs_new_eq:NN \sys_if_output_pdf_p: \c_false_bool + \str_const:Nn \c_sys_output_str { dvi } + } +\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 + } +\cs_set_eq:NN \c_job_name_tl \c_sys_jobname_str +%% File: l3candidates.dtx Copyright(C) 2012-2016 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 @@ -17014,7 +17148,7 @@ %% %% ----------------------------------------------------------------------- %% -\GetIdInfo$Id: l3candidates.dtx 6325 2015-12-20 18:07:35Z joseph $ +\GetIdInfo$Id: l3candidates.dtx 6376 2016-01-14 08:36:20Z joseph $ {L3 Experimental additions to l3kernel} \cs_new_protected_nopar:Npn \cs_log:N { \__msg_log_next: \cs_show:N } @@ -17999,7 +18133,7 @@ } \cs_new:Npn \__tl_change_case_output:nwn #1#2 \__tl_change_case_result:n #3 { #2 \__tl_change_case_result:n { #3 #1 } } -\cs_generate_variant:Nn \__tl_change_case_output:nwn { V , o , f } +\cs_generate_variant:Nn \__tl_change_case_output:nwn { V , o , v , f } \cs_new:Npn \__tl_change_case_end:wn #1 \__tl_change_case_result:n #2 { \group_align_safe_end: @@ -18086,11 +18220,7 @@ \cs_new:Npn \__tl_change_case_N_type:Nnnn #1#2#3#4 { \token_if_cs:NTF #1 - { - \__tl_change_case_cs:Nnnn #1 {#3} - { } - { \__tl_change_case_cs:N #1 } - } + { \__tl_change_case_cs_letterlike:Nnn #1 {#3} { } } { \__tl_change_case_char:Nnn #1 {#3} {#4} } \__tl_change_case_loop:wnn #2 \q_recursion_stop {#3} {#4} } @@ -18104,18 +18234,38 @@ { \__tl_change_case_char:nN {#2} #1 } } } -\cs_new:Npn \__tl_change_case_char:nN #1#2 +\cs_if_exist:NTF \utex_char:D + { + \cs_new:Npn \__tl_change_case_char:nN #1#2 + { \__tl_change_case_char_auxi:nN {#1} #2 } + } + { + \cs_new:Npn \__tl_change_case_char:nN #1#2 + { + \int_compare:nNnTF { `#2 } > { "80 } + { + \int_compare:nNnTF { `#2 } < { "E0 } + { \__tl_change_case_char_UTFiix:nNNN {#1} #2 } + { + \int_compare:nNnTF { `#2 } < { "F0 } + { \__tl_change_case_char_UTFiix:nNNNN {#1} #2 } + { \__tl_change_case_char_UTFiix:nNNNNN {#1} #2 } + } + } + { \__tl_change_case_char_auxi:nN {#1} #2 } + } + } +\cs_new:Npn \__tl_change_case_char_auxi:nN #1#2 { \__tl_change_case_output:fwn { - \cs_if_exist:cTF { c__unicode_ #1 _ #2 _tl } - { \tl_use:c { c__unicode_ #1 _ #2 _tl } } - { \__tl_change_case_char_aux:nN {#1} #2 } + \cs_if_exist_use:cF { c__unicode_ #1 _ \token_to_str:N #2 _tl } + { \__tl_change_case_char_auxii:nN {#1} #2 } } } \cs_if_exist:NTF \utex_char:D { - \cs_new:Npn \__tl_change_case_char_aux:nN #1#2 + \cs_new:Npn \__tl_change_case_char_auxii:nN #1#2 { \int_compare:nNnTF { \use:c { __tl_lookup_ #1 :N } #2 } = { 0 } { \exp_stop_f: #2 } @@ -18128,73 +18278,60 @@ \cs_new_eq:NN \__tl_lookup_title:N \__tl_lookup_upper:N } { - \cs_new:Npn \__tl_change_case_char_aux:nN #1#2 { \exp_stop_f: #2 } - } -\cs_new:Npn \__tl_change_case_cs:Nnnn #1#2 - { - \exp_args:Nf \__tl_change_case_cs:nNnnn - { \cs_to_str:N #1 } #1 {#2} - } -\cs_new:Npn \__tl_change_case_cs:nNnnn #1#2#3 - { - \tl_if_head_eq_catcode:oNTF { \use_none:nnn #1 a a a a } a - { \__tl_change_case_cs_type:Nnnnn #2 { latin } {#3} } + \cs_new:Npn \__tl_change_case_char_auxii:nN #1#2 { \exp_stop_f: #2 } + \cs_new:Npn \__tl_change_case_char_UTFiix:nNNN #1#2#3#4 + { \__tl_change_case_char_UTFiix:nnN {#1} {#2#4} #3 } + \cs_new:Npn \__tl_change_case_char_UTFiix:nNNNN #1#2#3#4#5 + { \__tl_change_case_char_UTFiix:nnN {#1} {#2#4#5} #3 } + \cs_new:Npn \__tl_change_case_char_UTFiix:nNNNNN #1#2#3#4#5#6 + { \__tl_change_case_char_UTFiix:nnN {#1} {#2#4#5#6} #3 } + \cs_new:Npn \__tl_change_case_char_UTFiix:nnN #1#2#3 { - \str_if_eq_x:nnTF - { \__tl_change_case_cs_three:NNNw #1 \q_nil } - { \str_if_eq:nnTF {#3} { lower } { CYR } { cyr } } - { \__tl_change_case_cs_cyr:NnNNNNw #2 {#3} #1 \q_stop } + \cs_if_exist:cTF { c__unicode_ #1 _ \tl_to_str:n {#2} _tl } { - \str_if_eq_x:nnTF - { \__tl_change_case_cs_three:NNNw #1 \q_nil } - { acc } - { \__tl_change_case_cs_type:Nnnnn #2 { acc } {#3} } - { - \str_if_eq_x:nnTF - { \__tl_change_case_cs_four:NNNNw #1 \q_nil } - { text } - { \__tl_change_case_cs_type:Nnnnn #2 { greek } {#3} } - { \__tl_change_case_cs_type:Nnnnn #2 { misc } {#3} } - } + \__tl_change_case_output:vwn + { c__unicode_ #1 _ \tl_to_str:n {#2} _tl } } + { \__tl_change_case_output:nwn {#2} } + #3 } } -\cs_new:Npn \__tl_change_case_cs_three:NNNw #1#2#3#4 \q_nil { #1#2#3 } -\cs_new:Npn \__tl_change_case_cs_four:NNNNw #1#2#3#4#5 \q_nil { #1#2#3#4 } -\cs_new:Npn \__tl_change_case_cs_cyr:NnNNNNw #1#2#3#4#5#6#7 \q_stop +\cs_new:Npn \__tl_change_case_cs_letterlike:Nnn #1#2#3 { - \__tl_change_case_cs_type:Nnnnn #1 - { cyrillic } + \cs_if_exist:cTF { c__tl_change_case_ #2 _ \token_to_str:N #1 _tl } { - #2 _ - \int_to_roman:n - { - 1 + - \int_div_truncate:nn - { - `#6 - \str_if_eq:nnTF {#2} { lower } { `A } { `a } - } - { 7 } - } + \__tl_change_case_output:vwn + { c__tl_change_case_ #2 _ \token_to_str:N #1 _tl } + #3 } - } -\cs_new:Npn \__tl_change_case_cs_type:Nnnnn #1#2#3 - { - \exp_args:Nf \__tl_change_case_cs_type:nnn { - \str_case:nvF #1 - { c__tl_change_case_ #2 _ #3 _ tl } - { \exp_stop_f: } + \cs_if_exist:cTF + { + c__tl_change_case_ + \str_if_eq:nnTF {#2} { lower } { upper } { lower } + _ \token_to_str:N #1 _tl + } + { + \__tl_change_case_output:nwn {#1} + #3 + } + { + \exp_after:wN \__tl_change_case_cs_accents:NN + \exp_after:wN #1 \l_tl_case_change_accents_tl + \q_recursion_tail \q_recursion_stop + } } } -\cs_new:Npn \__tl_change_case_cs_type:nnn #1#2#3 +\cs_new:Npn \__tl_change_case_cs_accents:NN #1#2 { - \tl_if_blank:nTF {#1} - {#3} + \quark_if_recursion_tail_stop_do:Nn #2 + { \__tl_change_case_cs:N #1 } + \str_if_eq:nnTF {#1} {#2} { - \__tl_change_case_output:nwn {#1} - #2 + \use_i_delimit_by_q_recursion_stop:nw + { \__tl_change_case_output:nwn {#1} } } + { \__tl_change_case_cs_accents:NN #1 } } \cs_new:Npn \__tl_change_case_cs:N #1 { @@ -18274,40 +18411,67 @@ } } \cs_new_eq:NN \__tl_change_case_upper_sigma:Nnw \use_ii:nn -\cs_new:Npn \__tl_change_case_lower_tr:Nnw #1#2 +\cs_if_exist:NTF \utex_char:D { - \int_compare:nNnTF { `#1 } = { "0049 } - { \__tl_change_case_lower_tr_auxi:Nw } + \cs_new:Npn \__tl_change_case_lower_tr:Nnw #1#2 { - \int_compare:nNnTF { `#1 } = { "0130 } - { \__tl_change_case_output:nwn { i } } - {#2} + \int_compare:nNnTF { `#1 } = { "0049 } + { \__tl_change_case_lower_tr_auxi:Nw } + { + \int_compare:nNnTF { `#1 } = { "0130 } + { \__tl_change_case_output:nwn { i } } + {#2} + } } - } -\cs_new:Npn \__tl_change_case_lower_tr_auxi:Nw #1#2 \q_recursion_stop - { - \tl_if_head_is_N_type:nTF {#2} - { \__tl_change_case_lower_tr_auxii:Nw #2 \q_recursion_stop } - { \__tl_change_case_output:Vwn \c__unicode_dotless_i_tl } - #1 #2 \q_recursion_stop - } -\cs_new:Npn \__tl_change_case_lower_tr_auxii:Nw #1#2 \q_recursion_stop - { - \__tl_change_case_if_expandable:NTF #1 + \cs_new:Npn \__tl_change_case_lower_tr_auxi:Nw #1#2 \q_recursion_stop { - \exp_after:wN \__tl_change_case_lower_tr_auxi:Nw #1 - #2 \q_recursion_stop + \tl_if_head_is_N_type:nTF {#2} + { \__tl_change_case_lower_tr_auxii:Nw #2 \q_recursion_stop } + { \__tl_change_case_output:Vwn \c__unicode_dotless_i_tl } + #1 #2 \q_recursion_stop } + \cs_new:Npn \__tl_change_case_lower_tr_auxii:Nw #1#2 \q_recursion_stop { - \bool_if:nTF + \__tl_change_case_if_expandable:NTF #1 { - \token_if_cs_p:N #1 - || ! ( \int_compare_p:nNn { `#1 } = { "0307 } ) + \exp_after:wN \__tl_change_case_lower_tr_auxi:Nw #1 + #2 \q_recursion_stop + } + { + \bool_if:nTF + { + \token_if_cs_p:N #1 + || ! ( \int_compare_p:nNn { `#1 } = { "0307 } ) + } + { \__tl_change_case_output:Vwn \c__unicode_dotless_i_tl } + { + \__tl_change_case_output:nwn { i } + \use_i:nn + } } + } + } + { + \cs_new:Npn \__tl_change_case_lower_tr:Nnw #1#2 + { + \int_compare:nNnTF { `#1 } = { "0049 } { \__tl_change_case_output:Vwn \c__unicode_dotless_i_tl } { + \int_compare:nNnTF { `#1 } = { 196 } + { \__tl_change_case_lower_tr_auxi:Nw #1 {#2} } + {#2} + } + } + \cs_new:Npn \__tl_change_case_lower_tr_auxi:Nw #1#2#3#4 + { + \int_compare:nNnTF { `#4 } = { 176 } + { \__tl_change_case_output:nwn { i } - \use_i:nn + #3 + } + { + #2 + #3 #4 } } } @@ -18434,6 +18598,45 @@ { \__tl_change_case_output:Vwn \c__unicode_upper_Eszett_tl } {#2} } +\cs_new:Npn \__unicode_codepoint_to_UTFiix:n #1 + { + \exp_args:Nf \__unicode_codepoint_to_UTFiix_auxi:n + { \int_eval:n {#1} } + } +\cs_new:Npn \__unicode_codepoint_to_UTFiix_auxi:n #1 + { + \if_int_compare:w #1 > "80 ~ + \if_int_compare:w #1 < "800 ~ + 2 + \__unicode_codepoint_to_UTFiix_auxii:Nnn C {#1} { 64 } + \__unicode_codepoint_to_UTFiix_auxiii:n {#1} + \else: + \if_int_compare:w #1 < "10000 ~ + 3 + \__unicode_codepoint_to_UTFiix_auxii:Nnn E {#1} { 64 * 64 } + \__unicode_codepoint_to_UTFiix_auxiii:n {#1} + \__unicode_codepoint_to_UTFiix_auxiii:n + { \int_div_truncate:nn {#1} { 64 } } + \else: + 4 + \__unicode_codepoint_to_UTFiix_auxii:Nnn F + {#1} { 64 * 64 * 64 } + \__unicode_codepoint_to_UTFiix_auxiii:n + { \int_div_truncate:nn {#1} { 64 * 64 } } + \__unicode_codepoint_to_UTFiix_auxiii:n + { \int_div_truncate:nn {#1} { 64 } } + \__unicode_codepoint_to_UTFiix_auxiii:n {#1} + + \fi: + \fi: + \else: + 1 {#1} + \fi: + } +\cs_new:Npn \__unicode_codepoint_to_UTFiix_auxii:Nnn #1#2#3 + { { \int_eval:n { "#10 + \int_div_truncate:nn {#2} {#3} } } } +\cs_new:Npn \__unicode_codepoint_to_UTFiix_auxiii:n #1 + { { \int_eval:n { \int_mod:nn {#1} { 64 } + 128 } } } \cs_if_exist:NTF \utex_char:D { \tl_const:Nx \c__unicode_std_sigma_tl { \utex_char:D "03C3 ~ } @@ -18448,23 +18651,232 @@ { \utex_char:D "0069 ~ \utex_char:D "0307 ~ \utex_char:D "0303 ~ } } \tl_const:Nx \c__unicode_dot_above_tl { \utex_char:D "0307 ~ } - \tl_const:Nx \c__unicode_dotless_i_tl { \utex_char:D "0131 ~ } - \tl_const:Nx \c__unicode_dotted_I_tl { \utex_char:D "0130 ~ } - \tl_const:Nx \c__unicode_i_ogonek_tl { \utex_char:D "012F ~ } - \tl_const:Nx \c__unicode_I_ogonek_tl { \utex_char:D "012E ~ } \tl_const:Nx \c__unicode_upper_Eszett_tl { \utex_char:D "1E9E ~} } { - \tl_const:Nn \c__unicode_std_sigma_tl { } - \tl_const:Nn \c__unicode_final_sigma_tl { } - \tl_const:Nn \c__unicode_accents_lt_tl { } - \tl_const:Nn \c__unicode_dot_above_tl { } - \tl_const:Nn \c__unicode_dotless_i_tl { I } - \tl_const:Nn \c__unicode_dotted_I_tl { i } - \tl_const:Nn \c__unicode_i_ogonek_tl { } - \tl_const:Nn \c__unicode_I_ogonek_tl { } - \tl_const:Nn \c__unicode_upper_Eszett_tl { } + \tl_const:Nn \c__unicode_std_sigma_tl { } + \tl_const:Nn \c__unicode_final_sigma_tl { } + \tl_const:Nn \c__unicode_accents_lt_tl { } + \tl_const:Nn \c__unicode_dot_above_tl { } + \tl_const:Nn \c__unicode_upper_Eszett_tl { } } +\group_begin: + \cs_if_exist:NTF \utex_char:D + { + \cs_set_protected:Npn \__tl_tmp:w #1#2 + { \tl_const:Nx #1 { \utex_char:D "#2 ~ } } + } + { + \char_set_catcode_active:N . + \char_set_catcode_active:N ! + \cs_set_protected:Npn \__tl_tmp:w #1#2 + { + \group_begin: + \cs_set_protected:Npn \__tl_tmp:w ##1##2##3 + { + \char_set_lccode:nn { `\. } {##2} + \char_set_lccode:nn { `\! } {##3} + \tex_lowercase:D + { \tl_const:Nn #1 { . ! } } + } + \tl_set:Nx \l__tl_internal_a_tl + { \__unicode_codepoint_to_UTFiix:n {"#2} } + \exp_after:wN \__tl_tmp:w \l__tl_internal_a_tl + \group_end: + } + } + \__tl_tmp:w \c__unicode_dotless_i_tl { 0131 } + \__tl_tmp:w \c__unicode_dotted_I_tl { 0130 } + \__tl_tmp:w \c__unicode_i_ogonek_tl { 012F } + \__tl_tmp:w \c__unicode_I_ogonek_tl { 012E } +\group_end: +\group_begin: + \char_set_catcode_active:N . + \char_set_catcode_active:N ! + \char_set_catcode_active:N ; + \char_set_catcode_active:N , + \bool_if:nT + { + \sys_if_engine_pdftex_p: || \sys_if_engine_uptex_p: + } + { + \cs_set_protected:Npn \__tl_loop:nn #1#2 + { + \quark_if_recursion_tail_stop:n {#1} + \tl_set:Nx \l__tl_internal_a_tl + { + \__unicode_codepoint_to_UTFiix:n {"#1} + \__unicode_codepoint_to_UTFiix:n {"#2} + } + \exp_after:wN \__tl_tmp:w \l__tl_internal_a_tl + \__tl_loop:nn + } + \cs_set_protected:Npn \__tl_tmp:w #1#2#3#4#5#6 + { + \char_set_lccode:nn { `\. } {#2} + \char_set_lccode:nn { `\! } {#3} + \char_set_lccode:nn { `\; } {#5} + \char_set_lccode:nn { `\, } {#6} + \tex_lowercase:D + { + \tl_const:cn { c__unicode_lower_ \tl_to_str:n { . ! } _tl } + { ; , } + \tl_const:cn { c__unicode_upper_ \tl_to_str:n { ; , } _tl } + { . ! } + } + } + \__tl_loop:nn + { 00C0 } { 00E0 } + { 00C2 } { 00E2 } + { 00C3 } { 00E3 } + { 00C4 } { 00E4 } + { 00C5 } { 00E5 } + { 00C6 } { 00E6 } + { 00C7 } { 00E7 } + { 00C8 } { 00E8 } + { 00C9 } { 00E9 } + { 00CA } { 00EA } + { 00CB } { 00EB } + { 00CC } { 00EC } + { 00CD } { 00ED } + { 00CE } { 00EE } + { 00CF } { 00EF } + { 00D0 } { 00F0 } + { 00D1 } { 00F1 } + { 00D2 } { 00F2 } + { 00D3 } { 00F3 } + { 00D4 } { 00F4 } + { 00D5 } { 00F5 } + { 00D6 } { 00F6 } + { 00D8 } { 00F8 } + { 00D9 } { 00F9 } + { 00DA } { 00FA } + { 00DB } { 00FB } + { 00DC } { 00FC } + { 00DD } { 00FD } + { 00DE } { 00FE } + { 0100 } { 0101 } + { 0102 } { 0103 } + { 0104 } { 0105 } + { 0106 } { 0107 } + { 0108 } { 0109 } + { 010A } { 010B } + { 010C } { 010D } + { 010E } { 010F } + { 0110 } { 0111 } + { 0112 } { 0113 } + { 0114 } { 0115 } + { 0116 } { 0117 } + { 0118 } { 0119 } + { 011A } { 011B } + { 011C } { 011D } + { 011E } { 011F } + { 0120 } { 0121 } + { 0122 } { 0123 } + { 0124 } { 0125 } + { 0128 } { 0129 } + { 012A } { 012B } + { 012C } { 012D } + { 012E } { 012F } + { 0132 } { 0133 } + { 0134 } { 0135 } + { 0136 } { 0137 } + { 0139 } { 013A } + { 013B } { 013C } + { 013E } { 013F } + { 0141 } { 0142 } + { 0143 } { 0144 } + { 0145 } { 0146 } + { 0147 } { 0148 } + { 014A } { 014B } + { 014C } { 014D } + { 014E } { 014F } + { 0150 } { 0151 } + { 0152 } { 0153 } + { 0154 } { 0155 } + { 0156 } { 0157 } + { 0158 } { 0159 } + { 015A } { 015B } + { 015C } { 015D } + { 015E } { 015F } + { 0160 } { 0161 } + { 0162 } { 0163 } + { 0164 } { 0165 } + { 0168 } { 0169 } + { 016A } { 016B } + { 016C } { 016D } + { 016E } { 016F } + { 0170 } { 0171 } + { 0172 } { 0173 } + { 0174 } { 0175 } + { 0176 } { 0177 } + { 0178 } { 00FF } + { 0179 } { 017A } + { 017B } { 017C } + { 017D } { 017E } + { 01CD } { 01CE } + { 01CF } { 01D0 } + { 01D1 } { 01D2 } + { 01D3 } { 01D4 } + { 01E2 } { 01E3 } + { 01E6 } { 01E7 } + { 01E8 } { 01E9 } + { 01EA } { 01EB } + { 01F4 } { 01F5 } + { 0218 } { 0219 } + { 021A } { 021B } + \q_recursion_tail ? + \q_recursion_stop + \cs_set_protected:Npn \__tl_tmp:w #1#2#3 + { + \group_begin: + \cs_set_protected:Npn \__tl_tmp:w ##1##2##3 + { + \char_set_lccode:nn { `\. } {##2} + \char_set_lccode:nn { `\! } {##3} + \tex_lowercase:D + { + \tl_const:cn + { c__unicode_ #3 _ \tl_to_str:n { . ! } _tl } + } + { #2 } + } + \tl_set:Nx \l__tl_internal_a_tl + { \__unicode_codepoint_to_UTFiix:n { "#1 } } + \exp_after:wN \__tl_tmp:w \l__tl_internal_a_tl + \group_end: + } + \__tl_tmp:w { 00DF } { SS } { upper } + \__tl_tmp:w { 00DF } { Ss } { title } + \__tl_tmp:w { 0131 } { I } { upper } + } + \group_end: +\group_begin: + \cs_set_protected:Npn \__tl_change_case_setup:NN #1#2 + { + \quark_if_recursion_tail_stop:N #1 + \tl_const:cn { c__tl_change_case_lower_ \token_to_str:N #1 _tl } { #2 } + \tl_const:cn { c__tl_change_case_upper_ \token_to_str:N #2 _tl } { #1 } + \__tl_change_case_setup:NN + } + \__tl_change_case_setup:NN + \AA \aa + \AE \ae + \DH \dh + \DJ \dj + \L \l + \NG \ng + \O \o + \OE \oe + \SS \ss + \TH \th + \q_recursion_tail ? + \q_recursion_stop + \tl_const:cn { c__tl_change_case_upper_ \token_to_str:N \i _tl } { I } + \tl_const:cn { c__tl_change_case_upper_ \token_to_str:N \j _tl } { J } +\group_end: +\tl_new:N \l_tl_case_change_accents_tl +\tl_set:Nn \l_tl_case_change_accents_tl { \" \^ \' \` \. \c \u \~ \H \v } \cs_new:Npn \__tl_mixed_case:nn #1#2 { \etex_unexpanded:D \exp_after:wN @@ -18534,21 +18946,17 @@ { \token_if_cs:NTF #1 { - \__tl_change_case_cs:Nnnn #1 { upper } - { - \__tl_change_case_loop:wnn - #2 \q_recursion_stop { lower } {#3} - } - { - \__tl_change_case_cs:N #1 - \__tl_mixed_case_loop:wn #2 \q_recursion_stop {#3} - } + \__tl_change_case_cs_letterlike:Nnn #1 { upper } + { \__tl_mixed_case_letterlike:Nw } + \__tl_mixed_case_loop:wn #2 \q_recursion_stop {#3} } { \__tl_mixed_case_char:Nn #1 {#3} \__tl_change_case_loop:wnn #2 \q_recursion_stop { lower } {#3} } } +\cs_new:Npn \__tl_mixed_case_letterlike:Nw #1#2 \q_recursion_stop + { \__tl_change_case_loop:wnn #2 \q_recursion_stop { lower } } \cs_new:Npn \__tl_mixed_case_char:Nn #1#2 { \cs_if_exist_use:cF { __tl_change_case_mixed_ #2 :Nnw } @@ -18650,255 +19058,6 @@ ` - } -\group_begin: - \cs_set_protected:Npn \__tl_change_case_setup:nnnn #1#2#3#4 - { - \tl_const:cx { c__tl_change_case_ #1 _upper #2 _tl } - { - \__tl_change_case_map:NN - #3 \q_recursion_tail ? \q_recursion_stop - } - \tl_const:cx { c__tl_change_case_ #1 _lower #2 _tl } - { - \__tl_change_case_map:NNN #4 - #3 \q_recursion_tail ? \q_recursion_stop - } - } - \cs_set:Npn \__tl_change_case_map:NN #1#2 - { - \quark_if_recursion_tail_stop:N #1 - \exp_not:N #1 \exp_not:n { { \exp_stop_f: #2 } } - \__tl_change_case_map:NN - } - \cs_set:Npn \__tl_change_case_map:NNN #1#2#3 - { - \str_if_eq:nnT {#1} {#2} - { \use_none_delimit_by_q_recursion_stop:w } - \exp_not:N #3 \exp_not:n { { \exp_stop_f: #2 } } - \__tl_change_case_map:NNN #1 - } - \__tl_change_case_setup:nnnn - { latin } - { } - { - \aa \AA - \ae \AE - \dh \DH - \dj \DJ - \l \L - \ng \NG - \o \O - \oe \OE - \ss \SS - \th \TH - \i I - \j J - } - { \i } - \__tl_change_case_setup:nnnn - { cyrillic } - { _i } - { - \cyra \CYRA - \cyrabhch \CYRABHCH - \cyrabhchdsc \CYRABHCHDSC - \cyrabhdze \CYRABHDZE - \cyrabhha \CYRABHHA - \cyrae \CYRAE - \cyrb \CYRB - \cyrbyus \CYRBYUS - \cyrc \CYRC - \cyrch \CYRCH - \cyrchldsc \CYRCHLDSC - \cyrchrdsc \CYRCHRDSC - \cyrchvcrs \CYRCHVCRS - \cyrd \CYRD - \cyrdelta \CYRDELTA - \cyrdje \CYRDJE - \cyrdze \CYRDZE - \cyrdzhe \CYRDZHE - \cyre \CYRE - \cyreps \CYREPS - \cyrerev \CYREREV - \cyrery \CYRERY - \cyrf \CYRF - \cyrfita \CYRFITA - \cyrg \CYRG - \cyrgdsc \CYRGDSC - \cyrgdschcrs \CYRGDSCHCRS - \cyrghcrs \CYRGHCRS - \cyrghk \CYRGHK - \cyrgup \CYRGUP - } - { \q_recursion_tail } - \__tl_change_case_setup:nnnn - { cyrillic } - { _ii } - { - \cyrh \CYRH - \cyrhdsc \CYRHDSC - \cyrhhcrs \CYRHHCRS - \cyrhhk \CYRHHK - \cyrhrdsn \CYRHRDSN - \cyri \CYRI - \cyrie \CYRIE - \cyrii \CYRII - \cyrishrt \CYRISHRT - \cyrishrtdsc \CYRISHRTDSC - \cyrizh \CYRIZH - \cyrje \CYRJE - \cyrk \CYRK - \cyrkbeak \CYRKBEAK - \cyrkdsc \CYRKDSC - \cyrkhcrs \CYRKHCRS - \cyrkhk \CYRKHK - \cyrkvcrs \CYRKVCRS - \cyrl \CYRL - \cyrldsc \CYRLDSC - \cyrlhk \CYRLHK - \cyrlje \CYRLJE - \cyrm \CYRM - \cyrmdsc \CYRMDSC - \cyrmhk \CYRMHK - \cyrn \CYRN - \cyrndsc \CYRNDSC - \cyrng \CYRNG - \cyrnhk \CYRNHK - \cyrnje \CYRNJE - \cyrnlhk \CYRNLHK - } - { \q_recursion_tail } - \__tl_change_case_setup:nnnn - { cyrillic } - { _iii } - { - \cyro \CYRO - \cyrotld \CYROTLD - \cyrp \CYRP - \cyrphk \CYRPHK - \cyrq \CYRQ - \cyrr \CYRR - \cyrrdsc \CYRRDSC - \cyrrhk \CYRRHK - \cyrrtick \CYRRTICK - \cyrs \CYRS - \cyrsacrs \CYRSACRS - \cyrschwa \CYRSCHWA - \cyrsdsc \CYRSDSC - \cyrsemisftsn \CYRSEMISFTSN - \cyrsftsn \CYRSFTSN - \cyrsh \CYRSH - \cyrshch \CYRSHCH - \cyrshha \CYRSHHA - \cyrt \CYRT - \cyrtdsc \CYRTDSC - \cyrtetse \CYRTETSE - \cyrtshe \CYRTSHE - \cyru \CYRU - \cyrushrt \CYRUSHRT - } - { \q_recursion_tail } - \__tl_change_case_setup:nnnn - { cyrillic } - { _iv } - { - \cyrv \CYRV - \cyrw \CYRW - \cyry \CYRY - \cyrya \CYRYA - \cyryat \CYRYAT - \cyryhcrs \CYRYHCRS - \cyryi \CYRYI - \cyryo \CYRYO - \cyryu \CYRYU - \cyrz \CYRZ - \cyrzdsc \CYRZDSC - \cyrzh \CYRZH - \cyrzhdsc \CYRZHDSC - } - { \q_recursion_tail } - \__tl_change_case_setup:nnnn - { greek } - { } - { - \textalpha \textAlpha - \textbeta \textBeta - \textchi \textChi - \textdelta \textDelta - \textdigamma \textDigamma - \texteta \textEta - \textepsilon \textEpsilon - \textgamma \textGamma - \textiota \textIota - \textkappa \textKappa - \textlambda \textLambda - \textmu \textMu - \textnu \textNu - \textomega \textOmega - \textomicron \textOmicron - \textphi \textPhi - \textpi \textPi - \textpsi \textPsi - \textqoppa \textQoppa - \textrho \textRho - \textsampi \textSampi - \textautosigma \textSigma - \textstigma \textStigma - \texttheta \textTheta - \texttau \textTau - \textupsilon \textUpsilon - \textxi \textXi - \textzeta \textZeta - \textsigma \textSigma - \textvarsigma \textSigma - \textvarstigma \textStigma - } - { \textsigma } - \tl_const:Nn \c__tl_change_case_acc_upper_tl - { - \accdasia { \exp_stop_f: \LGR@accdropped } - \accdasiaoxia { \exp_stop_f: \LGR@hiatus } - \accdasiavaria { \exp_stop_f: \LGR@accdropped } - \accdasiaperispomeni { \exp_stop_f: \LGR@accdropped } - \accpsili { \exp_stop_f: \LGR@hiatus } - \accpsilioxia { \exp_stop_f: \LGR@hiatus } - \accpsilivaria { \exp_stop_f: \LGR@hiatus } - \accpsiliperispomeni { \exp_stop_f: \LGR@accdropped } - \acctonos { \exp_stop_f: \LGR@hiatus } - \accvaria { \exp_stop_f: \LGR@accdropped } - \accdialytikatonos { \exp_stop_f: \LGR@accDialytika } - \accdialytikavaria { \exp_stop_f: \LGR@accDialytika } - \accdialytikaperispomeni { \exp_stop_f: \LGR@accDialytika } - \accperispomeni { \exp_stop_f: \LGR@accdropped } - } - \tl_const:Nn \c__tl_change_case_acc_lower_tl { } - \tl_const:Nn \c__tl_change_case_misc_upper_tl - { - \ypogegrammeni { \exp_stop_f: \prosgegrammeni } - \abreve { \exp_stop_f: \Abreve } - \acircumflex { \exp_stop_f: \Acircumflex } - \ecircumflex { \exp_stop_f: \Ecircumflex } - \ocircumflex { \exp_stop_f: \Ocircumflex } - \ohorn { \exp_stop_f: \Ohorn } - \uhorn { \exp_stop_f: \Uhorn } - } - \tl_const:Nn \c__tl_change_case_misc_lower_tl - { - \prosgegrammeni { \exp_stop_f: \ypogegrammeni } - \Abreve { \exp_stop_f: \abreve } - \Acircumflex { \exp_stop_f: \acircumflex } - \Ecircumflex { \exp_stop_f: \ecircumflex } - \Ocircumflex { \exp_stop_f: \ocircumflex } - \Ohorn { \exp_stop_f: \ohorn } - \Uhorn { \exp_stop_f: \uhorn } - \ABREVE { \exp_stop_f: \abreve } - \ACIRCUMFLEX { \exp_stop_f: \acircumflex } - \ECIRCUMFLEX { \exp_stop_f: \ecircumflex } - \OCIRCUMFLEX { \exp_stop_f: \ocircumflex } - \OHORN { \exp_stop_f: \ohorn } - \UHORN { \exp_stop_f: \uhorn } - } -\group_end: \cs_new_protected_nopar:Npn \tl_log:N { \__msg_log_next: \tl_show:N } \cs_generate_variant:Nn \tl_log:N { c } @@ -19096,150 +19255,6 @@ { \__peek_token_generic:NNT \__peek_execute_branches_N_type: \scan_stop: } \cs_new_protected_nopar:Npn \peek_N_type:F { \__peek_token_generic:NNF \__peek_execute_branches_N_type: \scan_stop: } -%% 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: l3sys.dtx 6087 2015-09-25 10:29:53Z joseph $ - {L3 Experimental system/runtime functions} -\str_const:Nx \c_sys_jobname_str { \tex_jobname:D } -\int_const:Nn \c_sys_minute_int - { \int_mod:nn { \tex_time:D } { 60 } } -\int_const:Nn \c_sys_hour_int - { \int_div_truncate:nn { \tex_time:D } { 60 } } -\int_const:Nn \c_sys_day_int { \tex_day:D } -\int_const:Nn \c_sys_month_int { \tex_month:D } -\int_const:Nn \c_sys_year_int { \tex_year:D } -\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 - \str_const:Nn \c_sys_engine_str { luatex } - } -\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 - \str_const:Nn \c_sys_engine_str { pdftex } - } -\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 - \str_const:Nn \c_sys_engine_str { uptex } - } - { - \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 - \str_const:Nn \c_sys_engine_str { ptex } - } - } -\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 - \str_const:Nn \c_sys_engine_str { xetex } - } -\bool_if:nTF - { - \cs_if_exist_p:N \pdftex_pdfoutput:D - && \int_compare_p:nNn \pdftex_pdfoutput:D > \c_zero - } - { - \cs_new_eq:NN \sys_if_output_dvi:T \use_none:n - \cs_new_eq:NN \sys_if_output_dvi:F \use:n - \cs_new_eq:NN \sys_if_output_dvi:TF \use_ii:nn - \cs_new_eq:NN \sys_if_output_dvi_p: \c_false_bool - \cs_new_eq:NN \sys_if_output_pdf:T \use:n - \cs_new_eq:NN \sys_if_output_pdf:F \use_none:n - \cs_new_eq:NN \sys_if_output_pdf:TF \use_i:nn - \cs_new_eq:NN \sys_if_output_pdf_p: \c_true_bool - \str_const:Nn \c_sys_output_str { pdf } - } - { - \cs_new_eq:NN \sys_if_output_dvi:T \use:n - \cs_new_eq:NN \sys_if_output_dvi:F \use_none:n - \cs_new_eq:NN \sys_if_output_dvi:TF \use_i:nn - \cs_new_eq:NN \sys_if_output_dvi_p: \c_true_bool - \cs_new_eq:NN \sys_if_output_pdf:T \use_none:n - \cs_new_eq:NN \sys_if_output_pdf:F \use:n - \cs_new_eq:NN \sys_if_output_pdf:TF \use_ii:nn - \cs_new_eq:NN \sys_if_output_pdf_p: \c_false_bool - \str_const:Nn \c_sys_output_str { dvi } - } -\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 - } -\cs_set_eq:NN \c_job_name_tl \c_sys_jobname_str %% File: l3luatex.dtx Copyright (C) 2010-2015 The LaTeX3 Project %% %% It may be distributed and/or modified under the conditions of the diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex index 7227ae2dc85..ebc170e2f19 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-generic.tex @@ -13,7 +13,7 @@ %% %% Do not distribute a modified version of this file. %% -%% File: expl3.dtx Copyright (C) 1990-2015 The LaTeX3 Project +%% File: expl3.dtx Copyright (C) 1990-2016 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 @@ -47,8 +47,8 @@ %% ----------------------------------------------------------------------- \def\ExplFileName{expl3}% \def\ExplFileDescription{L3 programming layer}% -\def\ExplFileDate{2016/01/03}% -\def\ExplFileVersion{6358}% +\def\ExplFileDate{2016/01/19}% +\def\ExplFileVersion{6377}% \let\ExplLoaderFileVersion\ExplFileVersion \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 cb9e99bb02c..843acbfeca7 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty @@ -13,7 +13,7 @@ %% %% Do not distribute a modified version of this file. %% -%% File: expl3.dtx Copyright (C) 1990-2015 The LaTeX3 Project +%% File: expl3.dtx Copyright (C) 1990-2016 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 @@ -47,8 +47,8 @@ %% ----------------------------------------------------------------------- \def\ExplFileName{expl3}% \def\ExplFileDescription{L3 programming layer}% -\def\ExplFileDate{2016/01/03}% -\def\ExplFileVersion{6358}% +\def\ExplFileDate{2016/01/19}% +\def\ExplFileVersion{6377}% \let\ExplLoaderFileVersion\ExplFileVersion \ProvidesPackage{\ExplFileName} [% |