summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex')
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex1063
1 files changed, 539 insertions, 524 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