diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/expl3')
22 files changed, 637 insertions, 466 deletions
diff --git a/Master/texmf-dist/tex/latex/expl3/expl3.sty b/Master/texmf-dist/tex/latex/expl3/expl3.sty index cec0003dbd8..d9ade26fef4 100644 --- a/Master/texmf-dist/tex/latex/expl3/expl3.sty +++ b/Master/texmf-dist/tex/latex/expl3/expl3.sty @@ -49,7 +49,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: expl3.dtx 2156 2011-02-17 15:40:23Z will $ +\GetIdInfo$Id: expl3.dtx 2222 2011-04-09 12:47:12Z will $ {L3 Experimental code bundle wrapper}% \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -89,7 +89,6 @@ l3file, l3fp, l3luatex, - l3font } \RequirePackage{calc} \bool_if:nT { \@l@expl@check@declarations@bool } { @@ -105,6 +104,48 @@ LaTeX~will~create~the~variable~and~continue. } } +\tex_ifodd:D \@l@expl@check@declarations@bool \scan_stop: + \cs_set_protected:Npn \_tl_check_exists:N #1 + { + \cs_if_exist:NF #1 + { + \msg_kernel_error:nnx { check } { non-declared-variable } + { \token_to_str:N #1 } + } + } + \cs_set_protected:Npn \tl_set:Nn #1#2 + { + \_tl_check_exists:N #1 + \cs_set_nopar:Npx #1 { \exp_not:n {#2} } + } + \cs_set_protected:Npn \tl_set:Nx #1#2 + { + \_tl_check_exists:N #1 + \cs_set_nopar:Npx #1 {#2} + } + \cs_set_protected:Npn \tl_gset:Nn #1#2 + { + \_tl_check_exists:N #1 + \cs_gset_nopar:Npx #1 { \exp_not:n {#2} } + } + \cs_set_protected:Npn \tl_gset:Nx #1#2 + { + \_tl_check_exists:N #1 + \cs_gset_nopar:Npx #1 {#2} + } + \cs_set_protected:Npn \tl_set_eq:NN #1#2 + { + \_tl_check_exists:N #1 + \_tl_check_exists:N #2 + \cs_set_eq:NN #1 #2 + } + \cs_set_protected:Npn \tl_gset_eq:NN #1#2 + { + \_tl_check_exists:N #1 + \_tl_check_exists:N #2 + \cs_gset_eq:NN #1 #2 + } +\tex_fi:D %% %% %% End of file `expl3.sty'. diff --git a/Master/texmf-dist/tex/latex/expl3/l3basics.sty b/Master/texmf-dist/tex/latex/expl3/l3basics.sty index 8afc6cdeb81..f5a32767b56 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3basics.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3basics.sty @@ -48,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3basics.dtx 2158 2011-02-26 12:37:22Z mittelba $ +\GetIdInfo$Id: l3basics.dtx 2246 2011-04-23 08:01:25Z joseph $ {L3 Experimental basic definitions} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -174,8 +174,10 @@ \cs_set:Npn \use_none:nnnnnnnn #1#2#3#4#5#6#7#8{} \cs_set:Npn \use_none:nnnnnnnnn #1#2#3#4#5#6#7#8#9{} \cs_set:Npn \exp_args:Nc #1#2{\exp_after:wN#1\cs:w#2\cs_end:} -\cs_set:Npn \prg_return_true: { \exp_after:wN\if_true:\tex_romannumeral:D } -\cs_set:Npn \prg_return_false: {\exp_after:wN\if_false:\tex_romannumeral:D } +\cs_set_nopar:Npn \prg_return_true: + { \exp_after:wN \use_i:nn \tex_romannumeral:D } +\cs_set_nopar:Npn \prg_return_false: + { \exp_after:wN \use_ii:nn \tex_romannumeral:D } \cs_set_protected:Npn \prg_set_conditional:Npnn #1{ \prg_get_parm_aux:nw{ \cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn @@ -246,46 +248,64 @@ \use:c{prg_generate_#3_form_#1:Nnnnn} #2 \prg_generate_conditional_aux:nnw{#1}{#2} } -\cs_set:Npn \prg_generate_p_form_parm:Nnnnn #1#2#3#4#5{ - \exp_args:Nc #1 {#2_p:#3}#4{#5 \c_zero - \exp_after:wN\c_true_bool\else:\exp_after:wN\c_false_bool\fi: +\cs_set_protected:Npn \prg_generate_p_form_parm:Nnnnn #1#2#3#4#5 + { + \exp_args:Nc #1 { #2 _p: #3 } #4 + { + #5 \c_zero + \c_true_bool \c_false_bool + } } -} -\cs_set:Npn \prg_generate_TF_form_parm:Nnnnn #1#2#3#4#5{ - \exp_args:Nc#1 {#2:#3TF}#4{#5 \c_zero - \exp_after:wN \use_i:nn \else: \exp_after:wN \use_ii:nn \fi: +\cs_set_protected:Npn \prg_generate_T_form_parm:Nnnnn #1#2#3#4#5 + { + \exp_args:Nc #1 { #2 : #3 T } #4 + { + #5 \c_zero + \use:n \use_none:n + } } -} -\cs_set:Npn \prg_generate_T_form_parm:Nnnnn #1#2#3#4#5{ - \exp_args:Nc#1 {#2:#3T}#4{#5 \c_zero - \else:\exp_after:wN\use_none:nn\fi:\use:n +\cs_set_protected:Npn \prg_generate_F_form_parm:Nnnnn #1#2#3#4#5 + { + \exp_args:Nc #1 { #2 : #3 F } #4 + { + #5 \c_zero + { } + } } -} -\cs_set:Npn \prg_generate_F_form_parm:Nnnnn #1#2#3#4#5{ - \exp_args:Nc#1 {#2:#3F}#4{#5 \c_zero - \exp_after:wN\use_none:nn\fi:\use:n +\cs_set_protected:Npn \prg_generate_TF_form_parm:Nnnnn #1#2#3#4#5 + { + \exp_args:Nc #1 { #2 : #3 TF } #4 + { #5 \c_zero } } -} -\cs_set:Npn \prg_generate_p_form_count:Nnnnn #1#2#3#4#5{ - \cs_generate_from_arg_count:cNnn {#2_p:#3} #1 {#4}{#5 \c_zero - \exp_after:wN\c_true_bool\else:\exp_after:wN\c_false_bool\fi: +\cs_set_protected:Npn \prg_generate_p_form_count:Nnnnn #1#2#3#4#5 + { + \cs_generate_from_arg_count:cNnn { #2 _p: #3 } #1 {#4} + { + #5 \c_zero + \c_true_bool \c_false_bool + } } -} -\cs_set:Npn \prg_generate_TF_form_count:Nnnnn #1#2#3#4#5{ - \cs_generate_from_arg_count:cNnn {#2:#3TF} #1 {#4}{#5 \c_zero - \exp_after:wN\use_i:nn\else:\exp_after:wN\use_ii:nn\fi: +\cs_set_protected:Npn \prg_generate_T_form_count:Nnnnn #1#2#3#4#5 + { + \cs_generate_from_arg_count:cNnn { #2 : #3 T } #1 {#4} + { + #5 \c_zero + \use:n \use_none:n + } } -} -\cs_set:Npn \prg_generate_T_form_count:Nnnnn #1#2#3#4#5{ - \cs_generate_from_arg_count:cNnn {#2:#3T} #1 {#4}{#5 \c_zero - \else:\exp_after:wN\use_none:nn\fi:\use:n +\cs_set_protected:Npn \prg_generate_F_form_count:Nnnnn #1#2#3#4#5 + { + \cs_generate_from_arg_count:cNnn { #2 : #3 F } #1 {#4} + { + #5 \c_zero + { } + } } -} -\cs_set:Npn \prg_generate_F_form_count:Nnnnn #1#2#3#4#5{ - \cs_generate_from_arg_count:cNnn {#2:#3F} #1 {#4}{#5 \c_zero - \exp_after:wN\use_none:nn\fi:\use:n +\cs_set_protected:Npn \prg_generate_TF_form_count:Nnnnn #1#2#3#4#5 + { + \cs_generate_from_arg_count:cNnn { #2 : #3 TF } #1 {#4} + { #5 \c_zero } } -} \cs_set:Npn \prg_set_eq_conditional_aux:NNNn #1#2#3#4 { \prg_set_eq_conditional_aux:NNNw #1#2#3#4,?,\q_recursion_stop } @@ -306,14 +326,15 @@ \cs_set:Npn \prg_conditional_form_F:nnn #1#2#3 {#1:#2F} \tex_chardef:D \c_true_bool = 1~ \tex_chardef:D \c_false_bool = 0~ -\cs_set_nopar:Npn \cs_to_str:N { - \if:w \exp_after:wN \cs_str_aux:w\token_to_str:N \a ax\q_stop - \else: - \exp_after:wN \exp_after:wN\exp_after:wN \use_ii:nn - \fi: - \exp_after:wN \use_none:n \token_to_str:N -} -\cs_set:Npn \cs_str_aux:w #1#2#3#4\q_stop{#2#3} +\cs_set:Npn \cs_to_str:N + { + \tex_if:D \tex_romannumeral:D - `0 \token_to_str:N \ % + \cs_to_str_aux:w + \tex_fi:D + \exp_after:wN \use_none:n \token_to_str:N + } +\cs_set_nopar:Npn \cs_to_str_aux:w #1 \use_none:n + { ~ \tex_romannumeral:D - `0 \tex_fi:D } \group_begin: \tex_lccode:D `\@ = `\: \scan_stop: \tex_catcode:D `\@ = 12~ diff --git a/Master/texmf-dist/tex/latex/expl3/l3box.sty b/Master/texmf-dist/tex/latex/expl3/l3box.sty index 7b06929a060..f96675fe755 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3box.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3box.sty @@ -48,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3box.dtx 2178 2011-03-06 09:03:44Z mittelba $ +\GetIdInfo$Id: l3box.dtx 2223 2011-04-09 12:57:14Z will $ {L3 Experimental Box module} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} diff --git a/Master/texmf-dist/tex/latex/expl3/l3calc.sty b/Master/texmf-dist/tex/latex/expl3/l3calc.sty index e77f86aca93..c880a0c091d 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3calc.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3calc.sty @@ -48,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3calc.dtx 1776 2010-02-07 21:51:23Z joseph $ +\GetIdInfo$Id: l3calc.dtx 2223 2011-04-09 12:57:14Z will $ {L3 Experimental calc module} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} diff --git a/Master/texmf-dist/tex/latex/expl3/l3chk.sty b/Master/texmf-dist/tex/latex/expl3/l3chk.sty index b059aa3167e..1cb606b8618 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3chk.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3chk.sty @@ -49,7 +49,7 @@ %% ----------------------------------------------------------------------- %% \RequirePackage{l3names} -\GetIdInfo$Id: l3chk.dtx 1362 2009-05-28 20:19:21Z joseph $ +\GetIdInfo$Id: l3chk.dtx 2223 2011-04-09 12:57:14Z will $ {L3 Experimental check module} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} diff --git a/Master/texmf-dist/tex/latex/expl3/l3clist.sty b/Master/texmf-dist/tex/latex/expl3/l3clist.sty index abbf7133cea..e7afede66af 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3clist.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3clist.sty @@ -48,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3clist.dtx 2178 2011-03-06 09:03:44Z mittelba $ +\GetIdInfo$Id: l3clist.dtx 2223 2011-04-09 12:57:14Z will $ {L3 Experimental comma separated lists} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} diff --git a/Master/texmf-dist/tex/latex/expl3/l3doc.cls b/Master/texmf-dist/tex/latex/expl3/l3doc.cls index e79e3fbee21..279bb170083 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3doc.cls +++ b/Master/texmf-dist/tex/latex/expl3/l3doc.cls @@ -53,7 +53,7 @@ \let \filedateOld \filedate \let \fileversionOld \fileversion \let \filedescriptionOld \filedescription -\GetIdInfo$Id: l3doc.dtx 2180 2011-03-06 10:38:35Z will $ +\GetIdInfo$Id: l3doc.dtx 2228 2011-04-10 08:37:13Z joseph $ {L3 Experimental documentation class} \ProvidesExplClass {\filename}{\filedate}{\fileversion}{\filedescription} @@ -94,7 +94,7 @@ \ProcessOptions \LoadClass{article} \RequirePackage{doc} -\RequirePackage{array,alphalph,booktabs,color,fixltx2e,enumitem,textcomp,trace,underscore} +\RequirePackage{array,alphalph,booktabs,color,fixltx2e,enumitem,textcomp,trace,underscore,csquotes} \bool_if:NT \g_doc_lmodern_bool { \RequirePackage[T1]{fontenc} \RequirePackage{lmodern} @@ -103,11 +103,23 @@ \let\doc@verbatim\verbatim \let\enddoc@verbatim\endverbatim \let\doc@@verbatim\@verbatim +\expandafter\let\csname doc@verbatim*\expandafter\endcsname + \csname verbatim*\endcsname +\expandafter\let\csname enddoc@verbatim*\expandafter\endcsname + \csname endverbatim*\endcsname +\expandafter\let\csname doc@@verbatim*\expandafter\endcsname + \csname @verbatim*\endcsname \RequirePackage{verbatim} \AtBeginDocument{% \let\verbatim\doc@verbatim \let\endverbatim\enddoc@verbatim \let\@verbatim\doc@@verbatim + \expandafter\let\csname verbatim*\expandafter\endcsname + \csname doc@verbatim*\endcsname + \expandafter\let\csname endverbatim*\expandafter\endcsname + \csname enddoc@verbatim*\endcsname + \expandafter\let\csname @verbatim*\expandafter\endcsname + \csname doc@@verbatim*\endcsname } \cs_set_nopar:Npn \MakePrivateLetters { \char_make_letter:N \@ @@ -200,12 +212,21 @@ }{ \endenumerate } -\group_begin: \char_make_active:N \< -\cs_new_nopar:Npn \function { +\DeclareDocumentCommand \function { O{} } { + \phantomsection + + \bool_gset_false:N \l_doc_meta_TF_bool + \bool_gset_false:N \l_doc_meta_pTF_bool + \bool_gset_false:N \l_doc_meta_EXP_bool + + \cs_set_nopar:Npn \KV_key_no_value_elt:n ##1 { \use:c {doc_meta_opt_##1:} } + \KV_parse_space_removal_sanitize:n {#1} + \char_make_active:N \< \cs_set_eq:NN < \doc_open_meta:n + \group_begin: \MakePrivateLetters \char_make_other:N \| @@ -216,8 +237,19 @@ \char_make_ignore:N \^^I \function_aux:n } -\group_end: +\char_make_other:N \< \cs_set_eq:NN \variabledoc \function +\cs_set:Nn \doc_meta_opt_TF: { + \bool_gset_true:N \l_doc_meta_TF_bool +} +\cs_set:Nn \doc_meta_opt_EXP: { + \bool_gset_true:N \l_doc_meta_EXP_bool +} +\cs_set:Nn \doc_meta_opt_pTF: { + \bool_gset_true:N \l_doc_meta_pTF_bool + \bool_gset_true:N \l_doc_meta_TF_bool + \bool_gset_true:N \l_doc_meta_EXP_bool +} \group_begin: \char_make_other:N \| \cs_gset_nopar:Npn \function_aux:n #1 { @@ -248,26 +280,22 @@ \bool_new:N \l_doc_meta_EXP_bool \cs_new_nopar:Npn \doc_showmacro_aux:w #1 / #2 \q_stop { - \tl_if_in:nnTF {#2} { (TF) } { + \tl_if_in:nnT {#2} { (TF) } { \bool_gset_true:N \l_doc_meta_TF_bool - }{ - \bool_gset_false:N \l_doc_meta_TF_bool } - \tl_if_in:nnTF {#2} { (EXP) } { + + \tl_if_in:nnT {#2} { (EXP) } { \bool_gset_true:N \l_doc_meta_EXP_bool - }{ - \bool_gset_false:N \l_doc_meta_EXP_bool } - \tl_if_in:nnTF {#2} { (pTF) } { + + \tl_if_in:nnT {#2} { (pTF) } { \bool_gset_true:N \l_doc_meta_TF_bool \bool_gset_true:N \l_doc_meta_pTF_bool \bool_gset_true:N \l_doc_meta_EXP_bool - \tl_set:Nx \l_doc_pTF_name_tl { \doc_predicate_from_base:w #1 \q_nil } - }{ - \bool_gset_false:N \l_doc_meta_pTF_bool } \bool_if:NT \l_doc_meta_pTF_bool { + \tl_set:Nx \l_doc_pTF_name_tl { \doc_predicate_from_base:w #1 \q_nil } \doc_special_main_index:o { \l_doc_pTF_name_tl } \seq_gput_right:Nx \g_doc_functions_seq { \tl_to_str:N \l_doc_pTF_name_tl } } @@ -360,6 +388,7 @@ { \int_incr:N \g_doc_nested_macro_int } \bool_set_false:N \l_doc_macro_aux_bool + \bool_set_false:N \l_doc_macro_internal_bool \bool_set_false:N \l_doc_macro_TF_bool \bool_set_false:N \l_doc_macro_pTF_bool \bool_set_false:N \l_doc_macro_var_bool @@ -387,23 +416,30 @@ \bool_if:NTF \l_doc_macro_pTF_bool { \clist_map_inline:nn {#1} - { - \exp_args:Nf \doc_macro_single - { \doc_predicate_from_base:w ##1 \q_nil } - } + { + \tl_if_blank:nF {##1} + { + \exp_args:Nf \doc_macro_single + { \doc_predicate_from_base:w ##1 \q_nil } + } + } \bool_set_true:N \l_doc_macro_TF_bool - \clist_map_inline:nn {#1} { \doc_macro_single {##1} } + \clist_map_inline:nn {#1} + { \tl_if_blank:nF {##1} { \doc_macro_single {##1} } } \bool_set_false:N \l_doc_macro_TF_bool } { - \clist_map_inline:nn {#1} { \doc_macro_single {##1} } + \clist_map_inline:nn {#1} + { \tl_if_blank:nF {##1} { \doc_macro_single {##1} } } } } +\bool_new:N \l_doc_macro_internal_bool \bool_new:N \l_doc_macro_aux_bool \bool_new:N \l_doc_macro_TF_bool \bool_new:N \l_doc_macro_pTF_bool \bool_new:N \l_doc_macro_var_bool \cs_set_nopar:Npn \doc_macro_opt_aux: { \bool_set_true:N \l_doc_macro_aux_bool } +\cs_set_nopar:Npn \doc_macro_opt_internal: { \bool_set_true:N \l_doc_macro_internal_bool } \cs_set_nopar:Npn \doc_macro_opt_TF: { \bool_set_true:N \l_doc_macro_TF_bool } \cs_set_nopar:Npn \doc_macro_opt_pTF: { \bool_set_true:N \l_doc_macro_pTF_bool } \cs_set_nopar:Npn \doc_macro_opt_var: { \bool_set_true:N \l_doc_macro_var_bool } @@ -606,6 +642,7 @@ } \bool_if:nT { !\l_doc_macro_aux_bool && + !\l_doc_macro_internal_bool && \int_compare_p:n {\g_doc_nested_macro_int<1} } { diff --git a/Master/texmf-dist/tex/latex/expl3/l3expan.sty b/Master/texmf-dist/tex/latex/expl3/l3expan.sty index 7f52c7a22be..583e20f8513 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3expan.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3expan.sty @@ -48,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3expan.dtx 2037 2010-09-20 21:22:45Z joseph $ +\GetIdInfo$Id: l3expan.dtx 2223 2011-04-09 12:57:14Z will $ {L3 Experimental Argument Expansion module} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} diff --git a/Master/texmf-dist/tex/latex/expl3/l3file.sty b/Master/texmf-dist/tex/latex/expl3/l3file.sty index b120352243b..d651ce408d5 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3file.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3file.sty @@ -15,7 +15,8 @@ %% Do not distribute a modified version of this file. %% %% -%% File: l3file.dtx Copyright (C) 2009-2010 LaTeX3 project +%% File: l3file.dtx Copyright (C) 2009-2011 by +%% The LaTeX3 Project <latex-team@latex-project.org> %% %% It may be distributed and/or modified under the conditions of the %% LaTeX Project Public License (LPPL), either version 1.3c of this @@ -24,7 +25,7 @@ %% %% http://www.latex-project.org/lppl.txt %% -%% This file is part of the ``expl3 bundle'' (The Work in LPPL) +%% This file is part of the "expl3 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. @@ -44,93 +45,92 @@ %% 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 LaTeX Project Team. +%% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- -%% \RequirePackage{l3names} -\GetIdInfo$Id: l3file.dtx 1853 2010-03-21 09:11:08Z joseph $ - {L3 Experimental file loading} +\GetIdInfo$Id: l3file.dtx 2242 2011-04-21 08:07:24Z joseph $ + {The LaTeX3 kernel: file operations} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} \package_check_loaded_expl: \tl_new:N \g_file_current_name_tl -\seq_new:N \g_file_stack_seq \tl_gset_eq:NN \g_file_current_name_tl \@currname +\seq_new:N \g_file_stack_seq \seq_new:N \g_file_record_seq +\tl_new:N \l_file_name_tl \seq_new:N \l_file_search_path_seq \seq_new:N \l_file_search_path_saved_seq -\tl_new:N \l_file_name_tl -\prg_new_protected_conditional:Nnn \file_if_exist:n { T , F , TF } { - \ior_open:Nn \g_file_test_stream {#1} - \ior_if_eof:NTF \g_file_test_stream - { \file_if_exist_path_aux:n {#1} } - { - \ior_close:N \g_file_test_stream - \tl_set:Nn \l_file_name_tl {#1} - \prg_return_true: - } -} -\cs_new_protected_nopar:Npn \file_if_exist_path_aux:n #1 { - \tl_clear:N \l_file_name_tl - \cs_if_exist:NT \input@path - { - \seq_set_eq:NN \l_file_search_path_saved_seq - \l_file_search_path_seq - \clist_map_inline:Nn \input@path - { \seq_put_right:Nn \l_file_search_path_seq {##1} } - } - \seq_map_inline:Nn \l_file_search_path_seq - { - \ior_open:Nn \g_file_test_stream { ##1 #1 } - \ior_if_eof:NF \g_file_test_stream - { - \tl_set:Nn \l_file_name_tl { ##1 #1 } - \seq_map_break: - } - } - \cs_if_exist:NT \input@path - { - \seq_set_eq:NN \l_file_search_path_seq - \l_file_search_path_saved_seq - } - \ior_close:N \g_file_test_stream - \tl_if_empty:NTF \l_file_name_tl - { \prg_return_false: } - { \prg_return_true: } -} -\cs_generate_variant:Nn \file_if_exist:nT { V } -\cs_generate_variant:Nn \file_if_exist:nF { V } -\cs_generate_variant:Nn \file_if_exist:nTF { V } -\cs_new_protected_nopar:Npn \file_input:n #1 { - \file_if_exist:nT {#1} - { - \@addtofilelist {#1} - \seq_gpush:NV \g_file_stack_seq \g_file_current_name_tl - \tl_gset:Nn \g_file_current_name_tl {#1} - \tex_expandafter:D \tex_input:D \l_file_name_tl ~ - \seq_gpop:NN \g_file_stack_seq \g_file_current_name_tl - } -} -\cs_generate_variant:Nn \file_input:n { V } -\cs_new_protected_nopar:Npn \file_path_include:n #1 { - \seq_put_right:Nn \l_file_search_path_seq {#1} - \seq_remove_duplicates:N \l_file_search_path_seq -} -\cs_new_protected_nopar:Npn \file_path_remove:n #1 { - \seq_remove_element:Nn \l_file_search_path_seq {#1} -} -\cs_new_protected_nopar:Npn \file_list: { - \seq_remove_duplicates:N \g_file_record_seq - \iow_log:n { *~File~List~* } - \seq_map_function:NN \g_file_record_seq \file_list_aux:n - \iow_log:n { ************* } -} -\cs_new_protected_nopar:Npn \file_list_aux:n #1 { \iow_log:n {#1} } -\AtBeginDocument{ - \clist_map_inline:Nn \@filelist - { \seq_put_right:Nn \g_file_record_seq {#1} } -} +\cs_new_protected_nopar:Npn \file_add_path:nN #1#2 + { + \ior_open:Nn \g_file_test_stream {#1} + \ior_if_eof:NTF \g_file_test_stream + { \file_add_path_search:nN {#1} #2 } + { + \ior_close:N \g_file_test_stream + \tl_set:Nx #2 {#1} + } + } +\cs_new_protected_nopar:Npn \file_add_path_search:nN #1#2 + { + \tl_clear:N #2 + \cs_if_exist:NT \input@path + { + \seq_set_eq:NN \l_file_search_path_saved_seq \l_file_search_path_seq + \clist_map_inline:Nn \input@path + { \seq_put_right:Nn \l_file_search_path_seq {##1} } + } + \seq_map_inline:Nn \l_file_search_path_seq + { + \ior_open:Nn \g_file_test_stream { ##1 #1 } + \ior_if_eof:NF \g_file_test_stream + { + \tl_set:Nx #2 { ##1 #1 } + \seq_map_break: + } + } + \cs_if_exist:NT \input@path + { \seq_set_eq:NN \l_file_search_path_seq \l_file_search_path_saved_seq } + \ior_close:N \g_file_test_stream + } +\prg_new_protected_conditional:Nnn \file_if_exist:n { T , F , TF } + { + \file_add_path:nN {#1} \l_file_name_tl + \tl_if_empty:NTF \l_file_name_tl + { \prg_return_false: } + { \prg_return_true: } + } +\cs_new_protected_nopar:Npn \file_input:n #1 + { + \file_add_path:nN {#1} \l_file_name_tl + \tl_if_empty:NF \l_file_name_tl + { + \@addtofilelist {#1} + \seq_gpush:NV \g_file_stack_seq \g_file_current_name_tl + \tl_gset:Nn \g_file_current_name_tl {#1} + \tex_expandafter:D \tex_input:D \l_file_name_tl ~ + \seq_gpop:NN \g_file_stack_seq \g_file_current_name_tl + } + } +\cs_new_protected_nopar:Npn \file_path_include:n #1 + { + \seq_if_in:NnF \l_file_search_path_seq {#1} + { \seq_put_right:Nn \l_file_search_path_seq {#1} } + } +\cs_new_protected_nopar:Npn \file_path_remove:n #1 + { \seq_remove_all:Nn \l_file_search_path_seq {#1} } +\cs_new_protected_nopar:Npn \file_list: + { + \seq_remove_duplicates:N \g_file_record_seq + \iow_log:n { *~File~List~* } + \seq_map_inline:Nn \g_file_record_seq { \iow_log:n {##1} } + \iow_log:n { ************* } + } +\AtBeginDocument + { + \clist_map_inline:Nn \@filelist + { \seq_put_right:Nn \g_file_record_seq {#1} } + } %% %% %% End of file `l3file.sty'. diff --git a/Master/texmf-dist/tex/latex/expl3/l3font.sty b/Master/texmf-dist/tex/latex/expl3/l3font.sty index 78a6f23ec48..81e9661ba75 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3font.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3font.sty @@ -48,24 +48,26 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3font.dtx 2175 2011-03-03 12:16:46Z will $ +\GetIdInfo$Id: l3font.dtx 2223 2011-04-09 12:57:14Z will $ {L3 Experimental Font Loading} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} \package_check_loaded_expl: -\cs_new_protected:Npn \font_set:Nnn #1#2#3 { \tex_font:D #1 = #2 ~at~ #3 \scan_stop: } -\cs_new_protected:Npn \font_gset:Nnn #1#2#3 { +\cs_new_protected:Npn \fontface_set:Nnn #1#2#3 { + \tex_font:D #1 = #2 ~at~ #3 \scan_stop: +} +\cs_new_protected:Npn \fontface_gset:Nnn #1#2#3 { \tex_global:D \tex_font:D #1 = #2 ~at~ #3 \scan_stop: } -\cs_generate_variant:Nn \font_set:Nnn {c} -\cs_generate_variant:Nn \font_gset:Nnn {c} -\cs_set_eq:NN \font_set_eq:NN \tex_let:D -\cs_set_protected:Npn \font_gset_eq:NN { \tex_global:D \tex_let:D } -\cs_set:Npn \font_set_to_current:N #1 { - \exp_after:wN \font_set_eq:NN \exp_after:wN #1 \tex_the:D \tex_font:D +\cs_generate_variant:Nn \fontface_set:Nnn {c} +\cs_generate_variant:Nn \fontface_gset:Nnn {c} +\cs_set_eq:NN \fontface_set_eq:NN \tex_let:D +\cs_set_protected:Npn \fontface_gset_eq:NN { \tex_global:D \tex_let:D } +\cs_set:Npn \fontface_set_to_current:N #1 { + \exp_after:wN \fontface_set_eq:NN \exp_after:wN #1 \tex_the:D \tex_font:D } -\cs_set:Npn \font_gset_to_current:N #1 { - \tex_global:D \exp_after:wN \font_set_eq:NN \exp_after:wN #1 \tex_the:D \tex_font:D +\cs_set:Npn \fontface_gset_to_current:N #1 { + \tex_global:D \exp_after:wN \fontface_set_eq:NN \exp_after:wN #1 \tex_the:D \tex_font:D } \luatex_if_engine:TF { @@ -93,7 +95,7 @@ \msg_kernel_new:nnn {l3font} {cmd-pdftex-unavail} { The~ command~ `\exp_not:n{#1}'~ is~ not~ available~ for~ the~ pdfTeX~ format. } -\prg_new_conditional:Nnn \font_if_null:N {p,TF,T,F} { +\prg_new_conditional:Nnn \fontface_if_null:N {p,TF,T,F} { \if_meaning:w #1 \tex_nullfont:D \prg_return_true: \else: diff --git a/Master/texmf-dist/tex/latex/expl3/l3fp.sty b/Master/texmf-dist/tex/latex/expl3/l3fp.sty index 4ce67fbb7d9..9c042acad1b 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3fp.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3fp.sty @@ -48,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3fp.dtx 2178 2011-03-06 09:03:44Z mittelba $ +\GetIdInfo$Id: l3fp.dtx 2201 2011-03-19 17:16:13Z joseph $ {L3 Experimental floating-point operations} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} diff --git a/Master/texmf-dist/tex/latex/expl3/l3int.sty b/Master/texmf-dist/tex/latex/expl3/l3int.sty index 97db73b44cd..9a6a034b355 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3int.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3int.sty @@ -48,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3int.dtx 2178 2011-03-06 09:03:44Z mittelba $ +\GetIdInfo$Id: l3int.dtx 2229 2011-04-11 17:37:05Z joseph $ {L3 Experimental Integer module} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -664,7 +664,8 @@ } { \chk_if_free_cs:N #1 - \tex_global:D \tex_mathchardef:D #1 = \int_eval:n {#2} + \tex_global:D \tex_mathchardef:D #1 = + \etex_numexpr:D #2 \scan_stop: } } { diff --git a/Master/texmf-dist/tex/latex/expl3/l3keyval.sty b/Master/texmf-dist/tex/latex/expl3/l3keyval.sty index ad42ce146ee..6bf05f0c409 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3keyval.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3keyval.sty @@ -48,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3keyval.dtx 1890 2010-04-11 03:37:15Z will $ +\GetIdInfo$Id: l3keyval.dtx 2223 2011-04-09 12:57:14Z will $ {L3 Experimental keyval processing} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} diff --git a/Master/texmf-dist/tex/latex/expl3/l3precom.sty b/Master/texmf-dist/tex/latex/expl3/l3precom.sty index 61cfe7c2a07..0fc29e1d11c 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3precom.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3precom.sty @@ -48,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3precom.dtx 1793 2010-02-09 20:36:19Z joseph $ +\GetIdInfo$Id: l3precom.dtx 2223 2011-04-09 12:57:14Z will $ {L3 Experimental precompilation module} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} diff --git a/Master/texmf-dist/tex/latex/expl3/l3prg.sty b/Master/texmf-dist/tex/latex/expl3/l3prg.sty index 5e18591892b..d61832b0500 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3prg.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3prg.sty @@ -48,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3prg.dtx 2178 2011-03-06 09:03:44Z mittelba $ +\GetIdInfo$Id: l3prg.dtx 2223 2011-04-09 12:57:14Z will $ {L3 Experimental control structures} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} diff --git a/Master/texmf-dist/tex/latex/expl3/l3prop.sty b/Master/texmf-dist/tex/latex/expl3/l3prop.sty index 4180388ee03..f688dd0c651 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3prop.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3prop.sty @@ -48,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3prop.dtx 2087 2010-11-23 18:21:44Z joseph $ +\GetIdInfo$Id: l3prop.dtx 2223 2011-04-09 12:57:14Z will $ {L3 Experimental Property Lists} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} diff --git a/Master/texmf-dist/tex/latex/expl3/l3quark.sty b/Master/texmf-dist/tex/latex/expl3/l3quark.sty index 65935330d67..da25c0a0f3c 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3quark.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3quark.sty @@ -48,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3quark.dtx 2172 2011-03-03 10:56:49Z will $ +\GetIdInfo$Id: l3quark.dtx 2234 2011-04-14 19:58:43Z joseph $ {L3 Experimental Quark Commands} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -61,37 +61,55 @@ \quark_new:N\q_mark \quark_new:N\q_recursion_tail \quark_new:N\q_recursion_stop -\cs_new:Npn \quark_if_recursion_tail_stop:n #1 { - \exp_after:wN\if_meaning:w - \quark_if_recursion_tail_aux:w #1?\q_stop\q_recursion_tail\q_recursion_tail - \exp_after:wN \use_none_delimit_by_q_recursion_stop:w - \fi: -} -\cs_new:Npn \quark_if_recursion_tail_stop:N #1 { - \if_meaning:w#1\q_recursion_tail - \exp_after:wN \use_none_delimit_by_q_recursion_stop:w - \fi: -} -\cs_generate_variant:Nn \quark_if_recursion_tail_stop:n {o} -\cs_new:Npn \quark_if_recursion_tail_stop_do:nn #1#2 { - \exp_after:wN\if_meaning:w - \quark_if_recursion_tail_aux:w #1?\q_stop\q_recursion_tail\q_recursion_tail - \exp_after:wN \use_i_delimit_by_q_recursion_stop:nw - \else: - \exp_after:wN\use_none:n - \fi: - {#2} -} -\cs_new:Npn \quark_if_recursion_tail_stop_do:Nn #1#2 { - \if_meaning:w #1\q_recursion_tail - \exp_after:wN \use_i_delimit_by_q_recursion_stop:nw - \else: - \exp_after:wN\use_none:n - \fi: - {#2} -} -\cs_generate_variant:Nn \quark_if_recursion_tail_stop_do:nn {on} -\cs_new:Npn \quark_if_recursion_tail_aux:w #1#2 \q_stop \q_recursion_tail {#1} +\cs_new:Npn \quark_if_recursion_tail_stop:N #1 + { + \tex_ifx:D #1 \q_recursion_tail + \exp_after:wN \use_none_delimit_by_q_recursion_stop:w + \tex_fi:D + } +\cs_new:Npn \quark_if_recursion_tail_stop_do:Nn #1#2 + { + \tex_ifx:D #1 \q_recursion_tail + \exp_after:wN \use_i_delimit_by_q_recursion_stop:nw + \tex_else:D + \exp_after:wN \use_none:n + \tex_fi:D + {#2} + } +\cs_new:Npn \quark_if_recursion_tail_stop:n #1 + { + \tex_ifcat:D + A + \etex_detokenize:D \exp_after:wN + { + \quark_if_recursion_tail_aux:w #1 \q_recursion_stop + \q_recursion_tail \q_recursion_stop \q_stop + } + A + \exp_after:wN \use_none_delimit_by_q_recursion_stop:w + \tex_fi:D + } +\cs_new:Npn \quark_if_recursion_tail_stop_do:nn #1#2 + { + \tex_ifcat:D + A + \etex_detokenize:D \exp_after:wN + { + \quark_if_recursion_tail_aux:w #1 \q_recursion_stop + \q_recursion_tail \q_recursion_stop \q_stop + } + A + \exp_after:wN \use_i_delimit_by_q_recursion_stop:nw + \tex_else:D + \exp_after:wN \use_none:n + \tex_fi:D + {#2} + } +\cs_new:Npn \quark_if_recursion_tail_aux:w + #1 \q_recursion_tail #2 \q_recursion_stop #3 \q_stop + { #1 #2 } +\cs_generate_variant:Nn \quark_if_recursion_tail_stop:n { o } +\cs_generate_variant:Nn \quark_if_recursion_tail_stop_do:nn { o } \prg_new_conditional:Nnn \quark_if_no_value:N {p,TF,T,F} { \if_meaning:w \q_no_value #1 \prg_return_true: \else: \prg_return_false: \fi: diff --git a/Master/texmf-dist/tex/latex/expl3/l3seq.sty b/Master/texmf-dist/tex/latex/expl3/l3seq.sty index 2ccbaf7c977..b43fdbae470 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3seq.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3seq.sty @@ -15,7 +15,8 @@ %% Do not distribute a modified version of this file. %% %% -%% File: l3seq.dtx Copyright (C) 1990-2010 LaTeX3 project +%% File: l3seq.dtx Copyright (C) 1990-2011 by +%% The LaTeX3 Project <latex-team@latex-project.org> %% %% It may be distributed and/or modified under the conditions of the %% LaTeX Project Public License (LPPL), either version 1.3c of this @@ -24,7 +25,7 @@ %% %% http://www.latex-project.org/lppl.txt %% -%% This file is part of the ``expl3 bundle'' (The Work in LPPL) +%% This file is part of the "expl3 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. @@ -44,17 +45,22 @@ %% 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 LaTeX Project Team. +%% prior consultation with the LaTeX3 Project. %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3seq.dtx 1879 2010-03-29 17:48:38Z mittelba $ - {L3 Experimental sequences and stacks} +\GetIdInfo$Id: l3seq.dtx 2245 2011-04-21 19:45:31Z joseph $ + {The LaTeX3 kernel: sequences and stacks} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} \package_check_loaded_expl: -\cs_new:Npn \seq_elt:w {\ERROR} -\cs_new:Npn \seq_elt_end: {\ERROR} +\cs_new:Npn \seq_item:n + { + \seq_use_error: + \use_none:n + } +\tl_new:N \l_seq_tmpa_tl +\tl_new:N \l_seq_tmpb_tl \cs_new_eq:NN \seq_new:N \tl_new:N \cs_new_eq:NN \seq_new:c \tl_new:c \cs_new_eq:NN \seq_clear:N \tl_clear:N @@ -65,149 +71,308 @@ \cs_new_eq:NN \seq_clear_new:c \tl_clear_new:c \cs_new_eq:NN \seq_gclear_new:N \tl_gclear_new:N \cs_new_eq:NN \seq_gclear_new:c \tl_gclear_new:c -\cs_new_eq:NN \seq_set_eq:NN \cs_set_eq:NN -\cs_new_eq:NN \seq_set_eq:cN \cs_set_eq:cN -\cs_new_eq:NN \seq_set_eq:Nc \cs_set_eq:Nc -\cs_new_eq:NN \seq_set_eq:cc \cs_set_eq:cc -\cs_new_eq:NN \seq_gset_eq:NN \cs_gset_eq:NN -\cs_new_eq:NN \seq_gset_eq:cN \cs_gset_eq:cN -\cs_new_eq:NN \seq_gset_eq:Nc \cs_gset_eq:Nc -\cs_new_eq:NN \seq_gset_eq:cc \cs_gset_eq:cc -\cs_new_protected_nopar:Npn \seq_concat:NNN #1#2#3 { - \tl_set:Nx #1 { \exp_not:V #2 \exp_not:V #3 } -} -\cs_generate_variant:Nn \seq_concat:NNN {ccc} -\cs_new_protected_nopar:Npn \seq_gconcat:NNN #1#2#3 { - \tl_gset:Nx #1 { \exp_not:V #2 \exp_not:V #3 } -} -\cs_generate_variant:Nn \seq_gconcat:NNN {ccc} -\prg_new_eq_conditional:NNn \seq_if_empty:N \tl_if_empty:N {p,TF,T,F} -\prg_new_eq_conditional:NNn \seq_if_empty:c \tl_if_empty:c {p,TF,T,F} -\cs_new_nopar:Npn \seq_if_empty_err:N #1 { - \if_meaning:w #1 \c_empty_tl - \tl_clear:N \l_kernel_testa_tl % catch prefixes - \msg_kernel_bug:x {Empty~sequence~`\token_to_str:N#1'} - \fi: -} -\prg_new_protected_conditional:Nnn \seq_if_in:Nn {TF,T,F} { - \cs_set:Npn \seq_tmp:w ##1 \seq_elt:w #2 \seq_elt_end: ##2##3 \q_stop { - \if_meaning:w \q_no_value ##2 - \prg_return_false: \else: \prg_return_true: \fi: +\cs_new_eq:NN \seq_set_eq:NN \tl_set_eq:NN +\cs_new_eq:NN \seq_set_eq:Nc \tl_set_eq:Nc +\cs_new_eq:NN \seq_set_eq:cN \tl_set_eq:cN +\cs_new_eq:NN \seq_set_eq:cc \tl_set_eq:cc +\cs_new_eq:NN \seq_gset_eq:NN \tl_gset_eq:NN +\cs_new_eq:NN \seq_gset_eq:Nc \tl_gset_eq:Nc +\cs_new_eq:NN \seq_gset_eq:cN \tl_gset_eq:cN +\cs_new_eq:NN \seq_gset_eq:cc \tl_gset_eq:cc +\cs_new_protected_nopar:Npn \seq_concat:NNN #1#2#3 + { \tl_set:Nx #1 { \exp_not:o {#2} \exp_not:o {#3} } } +\cs_new_protected_nopar:Npn \seq_gconcat:NNN #1#2#3 + { \tl_gset:Nx #1 { \exp_not:o {#2} \exp_not:o {#3} } } +\cs_generate_variant:Nn \seq_concat:NNN { ccc } +\cs_generate_variant:Nn \seq_gconcat:NNN { ccc } +\cs_new_protected:Npn \seq_put_left:Nn #1#2 + { \tl_put_left:Nn #1 { \seq_item:n {#2} } } +\cs_new_protected:Npn \seq_put_right:Nn #1#2 + { \tl_put_right:Nn #1 { \seq_item:n {#2} } } +\cs_generate_variant:Nn \seq_put_left:Nn { NV , Nv , No , Nx } +\cs_generate_variant:Nn \seq_put_left:Nn { c , cV , cv , co , cx } +\cs_generate_variant:Nn \seq_put_right:Nn { NV , Nv , No , Nx } +\cs_generate_variant:Nn \seq_put_right:Nn { c , cV , cv , co , cx } +\cs_new_protected:Npn \seq_gput_left:Nn #1#2 + { \tl_gput_left:Nn #1 { \seq_item:n {#2} } } +\cs_new_protected:Npn \seq_gput_right:Nn #1#2 + { \tl_gput_right:Nn #1 { \seq_item:n {#2} } } +\cs_generate_variant:Nn \seq_gput_left:Nn { NV , Nv , No , Nx } +\cs_generate_variant:Nn \seq_gput_left:Nn { c , cV , cv , co , cx } +\cs_generate_variant:Nn \seq_gput_right:Nn { NV , Nv , No , Nx } +\cs_generate_variant:Nn \seq_gput_right:Nn { c , cV , cv , co , cx } +\cs_new:Npn \seq_break: #1 \seq_break_point:n #2 {#2} +\cs_new:Npn \seq_break:n #1#2 \seq_break_point:n #3 { #3 #1 } +\cs_new_eq:NN \seq_map_break: \seq_break: +\cs_new_eq:NN \seq_map_break:n \seq_break:n +\cs_new_eq:NN \seq_break_point:n \use:n +\cs_new_protected_nopar:Npn \seq_if_empty_err_break:N #1 + { + \tex_ifx:D #1 \c_empty_tl + \msg_kernel_bug:x { Empty~sequence~\token_to_str:N #1 } + \exp_after:wN \seq_break: + \tex_fi:D } - \exp_after:wN \seq_tmp:w #1 \seq_elt:w #2 \seq_elt_end: \q_no_value \q_stop -} -\cs_generate_variant:Nn \seq_if_in:NnTF { NV, cV, co, c, cx} -\cs_generate_variant:Nn \seq_if_in:NnT { NV, cV, co, c, cx} -\cs_generate_variant:Nn \seq_if_in:NnF { NV, cV, co, c, cx} -\cs_new_protected_nopar:Npn \seq_get:NN #1 { - \seq_if_empty_err:N #1 - \exp_after:wN \seq_get_aux:w #1 \q_stop -} -\cs_new_protected:Npn \seq_get_aux:w \seq_elt:w #1 \seq_elt_end: #2 \q_stop #3 { - \tl_set:Nn #3 {#1} -} -\cs_generate_variant:Nn \seq_get:NN {c} -\cs_new_protected:Npn \seq_pop_aux:nnNN #1#2#3 { - \seq_if_empty_err:N #3 - \exp_after:wN \seq_pop_aux:w #3 \q_stop #1#2#3 -} -\cs_new_protected:Npn \seq_pop_aux:w - \seq_elt:w #1 \seq_elt_end: #2\q_stop #3#4#5#6 { - #3 #5 {#2} - #4 #6 {#1} -} -\cs_new_eq:NN \seq_show:N \tl_show:N -\cs_new_eq:NN \seq_show:c \tl_show:c -\cs_new_protected_nopar:Npn \seq_display:N #1 { - \iow_term:x { Sequence~\token_to_str:N #1~contains~ - the~elements~(without~outer~braces): } - \toks_clear:N \l_tmpa_toks - \seq_map_inline:Nn #1 { - \toks_if_empty:NF \l_tmpa_toks { - \toks_put_right:Nx \l_tmpa_toks {^^J>~} - } - \toks_put_right:Nx \l_tmpa_toks { - \c_space_tl \iow_char:N \{ \exp_not:n {##1} \iow_char:N \} - } - } - \toks_show:N \l_tmpa_toks -} -\cs_generate_variant:Nn \seq_display:N {c} -\cs_new_protected:Npn \seq_put_aux:Nnn #1 { - \exp_after:wN \seq_put_aux:w #1 \q_stop #1 -} -\cs_new_protected:Npn \seq_put_aux:w #1\q_stop #2#3#4 { \tl_set:Nn #2 {#3#1#4} } -\cs_new_protected:Npn \seq_put_left:Nn #1#2 { - \seq_put_aux:Nnn #1 {\seq_elt:w #2\seq_elt_end:} {} -} -\cs_generate_variant:Nn \seq_put_left:Nn {NV,No,Nx,c,cV,co} -\cs_new_protected:Npn \seq_put_right:Nn #1#2{ - \seq_put_aux:Nnn #1{}{\seq_elt:w #2\seq_elt_end:}} -\cs_generate_variant:Nn \seq_put_right:Nn {NV,No,Nx,c,cV,co} -\cs_new_protected:Npn \seq_gput_left:Nn { - \pref_global:D - \seq_put_left:Nn -} -\cs_new_protected:Npn \seq_gput_right:Nn { - \pref_global:D - \seq_put_right:Nn -} -\cs_generate_variant:Nn \seq_gput_left:Nn {NV,No,Nx,c,cV,co} -\cs_generate_variant:Nn \seq_gput_right:Nn {NV,No,Nx,c,cV,co} -\cs_new_protected:Npn \seq_map_variable_aux:Nnw #1#2 \seq_elt:w #3 \seq_elt_end: { - \tl_set:Nn #1 {#3} - \quark_if_nil:NT #1 \seq_map_break: - #2 - \seq_map_variable_aux:Nnw #1{#2} -} -\cs_new_protected:Npn \seq_map_variable:NNn #1#2#3 { - \tl_set:Nn #2 {\seq_map_variable_aux:Nnw #2{#3}} - \exp_after:wN #2 #1 \seq_elt:w \q_nil\seq_elt_end: \q_stop -} -\cs_generate_variant:Nn \seq_map_variable:NNn {c} -\cs_new_eq:NN \seq_map_break: \use_none_delimit_by_q_stop:w -\cs_new_eq:NN \seq_map_break:n \use_i_delimit_by_q_stop:nw -\cs_new_protected_nopar:Npn \seq_map_function:NN #1#2 { - \cs_set:Npn \seq_elt:w ##1 \seq_elt_end: {#2{##1}} - #1 \use_none:n \q_stop - \cs_set_eq:NN \seq_elt:w \ERROR -} -\cs_generate_variant:Nn \seq_map_function:NN {c} -\cs_new_protected_nopar:Npn \seq_map_inline:Nn #1#2 { - \cs_set:Npn \seq_elt:w ##1 \seq_elt_end: {#2} - #1 \use_none:n \q_stop - \cs_set_eq:NN \seq_elt:w \ERROR +\cs_new:Npn \seq_map_function:NN #1#2 + { + \exp_after:wN \seq_map_function_aux:NNn \exp_after:wN #2 #1 + { ? \seq_map_break: } { } + \seq_break_point:n { } + } +\cs_new:Npn \seq_map_function_aux:NNn #1#2#3 + { + \use_none:n #2 + #1 {#3} + \seq_map_function_aux:NNn #1 + } +\cs_generate_variant:Nn \seq_map_function:NN { c } +\int_new:N \g_seq_nesting_depth_int +\cs_new_protected:Npn \seq_push_item_def:n + { + \seq_push_item_def_aux: + \cs_gset:Npn \seq_item:n ##1 + } +\cs_new_protected:Npn \seq_push_item_def:x + { + \seq_push_item_def_aux: + \cs_gset:Npx \seq_item:n ##1 + } +\cs_new_protected:Npn \seq_push_item_def_aux: + { + \cs_gset_eq:cN { seq_item_ \int_use:N \g_seq_nesting_depth_int :n } + \seq_item:n + \int_gincr:N \g_seq_nesting_depth_int + } +\cs_new_protected_nopar:Npn \seq_pop_item_def: + { + \int_gdecr:N \g_seq_nesting_depth_int + \cs_gset_eq:Nc \seq_item:n + { seq_item_ \int_use:N \g_seq_nesting_depth_int :n } + } +\cs_new_protected:Npn \seq_map_inline:Nn #1#2 + { + \seq_push_item_def:n {#2} + #1 + \seq_break_point:n { \seq_pop_item_def: } + } +\cs_generate_variant:Nn \seq_map_inline:Nn { c } +\cs_new_protected:Npn \seq_map_variable:NNn #1#2#3 + { + \seq_push_item_def:x + { + \tl_set:Nn \exp_not:N #2 {##1} + \exp_not:n {#3} + } + #1 + \seq_break_point:n { \seq_pop_item_def: } + } +\cs_generate_variant:Nn \seq_map_variable:NNn { Nc } +\cs_generate_variant:Nn \seq_map_variable:NNn { c , cc } +\cs_new_eq:NN \seq_push:Nn \seq_put_left:Nn +\cs_new_eq:NN \seq_push:NV \seq_put_left:NV +\cs_new_eq:NN \seq_push:Nv \seq_put_left:Nv +\cs_new_eq:NN \seq_push:No \seq_put_left:No +\cs_new_eq:NN \seq_push:Nx \seq_put_left:Nx +\cs_new_eq:NN \seq_push:cn \seq_put_left:cn +\cs_new_eq:NN \seq_push:cV \seq_put_left:cV +\cs_new_eq:NN \seq_push:cv \seq_put_left:cv +\cs_new_eq:NN \seq_push:co \seq_put_left:co +\cs_new_eq:NN \seq_push:cx \seq_put_left:cx +\cs_new_eq:NN \seq_gpush:Nn \seq_gput_left:Nn +\cs_new_eq:NN \seq_gpush:NV \seq_gput_left:NV +\cs_new_eq:NN \seq_gpush:Nv \seq_gput_left:Nv +\cs_new_eq:NN \seq_gpush:No \seq_gput_left:No +\cs_new_eq:NN \seq_gpush:Nx \seq_gput_left:Nx +\cs_new_eq:NN \seq_gpush:cn \seq_gput_left:cn +\cs_new_eq:NN \seq_gpush:cV \seq_gput_left:cV +\cs_new_eq:NN \seq_gpush:cv \seq_gput_left:cv +\cs_new_eq:NN \seq_gpush:co \seq_gput_left:co +\cs_new_eq:NN \seq_gpush:cx \seq_gput_left:cx +\cs_new_protected_nopar:Npn \seq_get_left:NN #1#2 + { + \seq_if_empty_err_break:N #1 + \exp_after:wN \seq_get_left_aux:Nw #1 \q_stop #2 + \seq_break_point:n { } + } +\cs_new_protected:Npn \seq_get_left_aux:Nw \seq_item:n #1#2 \q_stop #3 + { \tl_set:Nn #3 {#1} } +\cs_generate_variant:Nn \seq_get_left:NN { c } +\cs_new_protected_nopar:Npn \seq_pop_left:NN + { \seq_pop_left_aux:NNN \tl_set:Nn } +\cs_new_protected_nopar:Npn \seq_gpop_left:NN + { \seq_pop_left_aux:NNN \tl_gset:Nn } +\cs_new_protected_nopar:Npn \seq_pop_left_aux:NNN #1#2#3 + { + \seq_if_empty_err_break:N #2 + \exp_after:wN \seq_pop_left_aux:Nw #2 \q_stop #1#2#3 + \seq_break_point:n { } + } +\cs_new_protected:Npn \seq_pop_left_aux:Nw \seq_item:n #1#2 \q_stop #3#4#5 + { + #3 #4 {#2} + \tl_set:Nn #5 {#1} + } +\cs_generate_variant:Nn \seq_pop_left:NN { c } +\cs_generate_variant:Nn \seq_gpop_left:NN { c } +\cs_new_protected_nopar:Npn \seq_get_right:NN #1#2 + { + \seq_if_empty_err_break:N #1 + \seq_get_right_aux:NN #1#2 + \seq_break_point:n { } + } +\cs_new_protected_nopar:Npn \seq_get_right_aux:NN #1#2 + { + \seq_push_item_def:n { } + \exp_after:wN \exp_after:wN \exp_after:wN \seq_get_right_loop:nn + \exp_after:wN \use_none:n #1 + { \tl_set:Nn #2 } + { } + { + \seq_pop_item_def: + \seq_break: + } } -\cs_generate_variant:Nn \seq_map_inline:Nn {c} +\cs_new:Npn \seq_get_right_loop:nn #1#2 + { + #2 {#1} + \seq_get_right_loop:nn + } +\cs_generate_variant:Nn \seq_get_right:NN { c } +\cs_new_protected_nopar:Npn \seq_pop_right:NN + { \seq_pop_right_aux:NNN \tl_set:Nx } +\cs_new_protected_nopar:Npn \seq_gpop_right:NN + { \seq_pop_right_aux:NNN \tl_gset:Nx } +\cs_new_protected_nopar:Npn \seq_pop_right_aux:NNN #1#2#3 + { + \seq_if_empty_err_break:N #2 + \seq_pop_right_aux_ii:NNN #1 #2 #3 + \seq_break_point:n { } + } +\cs_new_protected_nopar:Npn \seq_pop_right_aux_ii:NNN #1#2#3 + { + \seq_push_item_def:n { \exp_not:n { \seq_item:n {##1} } } + #1 #2 { \tex_iffalse:D } \tex_fi:D + \exp_after:wN \exp_after:wN \exp_after:wN \seq_get_right_loop:nn + \exp_after:wN \use_none:n #2 + { + \tex_iffalse:D { \tex_fi:D } + \tl_set:Nn #3 + } + { } + { + \seq_pop_item_def: + \seq_break: + } + } +\cs_generate_variant:Nn \seq_pop_right:NN { c } +\cs_generate_variant:Nn \seq_gpop_right:NN { c } +\cs_new_eq:NN \seq_get:NN \seq_get_left:NN +\cs_new_eq:NN \seq_get:cN \seq_get_left:cN +\cs_new_eq:NN \seq_pop:NN \seq_pop_left:NN +\cs_new_eq:NN \seq_pop:cN \seq_pop_left:cN +\cs_new_eq:NN \seq_gpop:NN \seq_gpop_left:NN +\cs_new_eq:NN \seq_gpop:cN \seq_gpop_left:cN +\prg_new_eq_conditional:NNn \seq_if_empty:N \tl_if_empty:N + { p , T , F , TF } +\prg_new_eq_conditional:NNn \seq_if_empty:c \tl_if_empty:c + { p , T , F , TF } +\prg_new_protected_conditional:Npnn \seq_if_in:Nn #1#2 + { T , F , TF } + { + \group_begin: + \tl_set:Nn \l_seq_tmpa_tl {#2} + \cs_set_protected:Npn \seq_item:n ##1 + { + \tl_set:Nn \l_seq_tmpb_tl {##1} + \tex_ifx:D \l_seq_tmpa_tl \l_seq_tmpb_tl + \exp_after:wN \seq_if_in_aux: + \tex_fi:D + } + #1 + \seq_break:n { \prg_return_false: } + \seq_break_point:n { \group_end: } + } +\cs_new_nopar:Npn \seq_if_in_aux: { \seq_break:n { \prg_return_true: } } +\cs_generate_variant:Nn \seq_if_in:NnT { NV , Nv , No , Nx } +\cs_generate_variant:Nn \seq_if_in:NnT { c , cV , cv , co , cx } +\cs_generate_variant:Nn \seq_if_in:NnF { NV , Nv , No , Nx } +\cs_generate_variant:Nn \seq_if_in:NnF { c , cV , cv , co , cx } +\cs_generate_variant:Nn \seq_if_in:NnTF { NV , Nv , No , Nx } +\cs_generate_variant:Nn \seq_if_in:NnTF { c , cV , cv , co , cx } \seq_new:N \l_seq_remove_seq -\cs_new_protected:Npn \seq_remove_duplicates_aux:NN #1#2 { - \seq_clear:N \l_seq_remove_seq - \seq_map_function:NN #2 \seq_remove_duplicates_aux:n - #1 #2 \l_seq_remove_seq -} -\cs_new_protected:Npn \seq_remove_duplicates_aux:n #1 { - \seq_if_in:NnF \l_seq_remove_seq {#1} { - \seq_put_right:Nn \l_seq_remove_seq {#1} +\cs_new_protected:Npn \seq_remove_duplicates:N + { \seq_remove_duplicates_aux:NN \seq_set_eq:NN } +\cs_new_protected:Npn \seq_gremove_duplicates:N + { \seq_remove_duplicates_aux:NN \seq_gset_eq:NN } +\cs_new_protected:Npn \seq_remove_duplicates_aux:NN #1#2 + { + \seq_clear:N \l_seq_remove_seq + \seq_map_inline:Nn #2 + { + \seq_if_in:NnF \l_seq_remove_seq {##1} + { \seq_put_right:Nn \l_seq_remove_seq {##1} } + } + #1 #2 \l_seq_remove_seq } -} -\cs_new_protected_nopar:Npn \seq_remove_duplicates:N { - \seq_remove_duplicates_aux:NN \seq_set_eq:NN -} -\cs_new_protected_nopar:Npn \seq_gremove_duplicates:N { - \seq_remove_duplicates_aux:NN \seq_gset_eq:NN -} -\cs_new_eq:NN \seq_push:Nn \seq_put_left:Nn -\cs_new_eq:NN \seq_push:NV \seq_put_left:NV -\cs_new_eq:NN \seq_push:No \seq_put_left:No -\cs_new_eq:NN \seq_push:cn \seq_put_left:cn -\cs_new_protected_nopar:Npn \seq_pop:NN { \seq_pop_aux:nnNN \tl_set:Nn \tl_set:Nn } -\cs_generate_variant:Nn \seq_pop:NN {c} -\cs_new_eq:NN \seq_gpush:Nn \seq_gput_left:Nn -\cs_new_protected_nopar:Npn \seq_gpop:NN { \seq_pop_aux:nnNN \tl_gset:Nn \tl_set:Nn } -\cs_generate_variant:Nn \seq_gpush:Nn {NV,No,c,Nv} -\cs_generate_variant:Nn \seq_gpop:NN {c} -\cs_new_eq:NN \seq_top:NN \seq_get:NN -\cs_new_eq:NN \seq_top:cN \seq_get:cN +\cs_generate_variant:Nn \seq_remove_duplicates:N { c } +\cs_generate_variant:Nn \seq_gremove_duplicates:N { c } +\cs_new_protected:Npn \seq_remove_all:Nn + { \seq_remove_all_aux:NNn \tl_set:Nx } +\cs_new_protected:Npn \seq_gremove_all:Nn + { \seq_remove_all_aux:NNn \tl_gset:Nx } +\cs_new_protected:Npn \seq_remove_all_aux:NNn #1#2#3 + { + \seq_push_item_def:n + { + \str_if_eq:nnT {##1} {#3} + { + \tex_iffalse:D { \tex_fi:D } + \tl_set:Nn \l_seq_tmpb_tl {##1} + #1 #2 + { \tex_iffalse:D } \tex_fi:D + \exp_not:o {#2} + \tl_if_eq:NNT \l_seq_tmpa_tl \l_seq_tmpb_tl + { \use_none:nn } + } + \exp_not:n { \seq_item:n {##1} } + } + \tl_set:Nn \l_seq_tmpa_tl {#3} + #1 #2 {#2} + \seq_pop_item_def: + } +\cs_generate_variant:Nn \seq_remove_all:Nn { c } +\cs_generate_variant:Nn \seq_gremove_all:Nn { c } +\tl_new:N \l_seq_show_tl +\cs_new_protected_nopar:Npn \seq_show:N #1 + { + \seq_if_empty:NTF #1 + { + \iow_term:x { Sequence~\token_to_str:N #1 \c_space_tl is~empty } + \tl_show:n { } + } + { + \iow_term:x + { + Sequence~\token_to_str:N #1 \c_space_tl + contains~the~items~(without~outer~braces): + } + \tl_set:Nx \l_seq_show_tl + { \seq_map_function:NN #1 \seq_show_aux:n } + \etex_showtokens:D \exp_after:wN \exp_after:wN \exp_after:wN + { \exp_after:wN \seq_show_aux:w \l_seq_show_tl } + } + } +\cs_new:Npn \seq_show_aux:n #1 + { + \iow_newline: > \c_space_tl \c_space_tl + \iow_char:N \{ \exp_not:n {#1} \iow_char:N \} + } +\cs_new:Npn \seq_show_aux:w #1 > ~ { } +\cs_generate_variant:Nn \seq_show:N { c } +\cs_new_eq:NN \seq_top:NN \seq_get_left:NN +\cs_new_eq:NN \seq_top:cN \seq_get_left:cN +\cs_new_eq:NN \seq_display:N \seq_show:N +\cs_new_eq:NN \seq_display:c \seq_show:c %% %% %% End of file `l3seq.sty'. diff --git a/Master/texmf-dist/tex/latex/expl3/l3tl.sty b/Master/texmf-dist/tex/latex/expl3/l3tl.sty index cacec3e0fdf..29bba61d462 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3tl.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3tl.sty @@ -48,19 +48,19 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3tl.dtx 2184 2011-03-07 18:07:12Z joseph $ +\GetIdInfo$Id: l3tl.dtx 2223 2011-04-09 12:57:14Z will $ {L3 Experimental Token Lists} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} \package_check_loaded_expl: \cs_new_protected:Npn \tl_new:Nn #1#2{ \chk_if_free_cs:N #1 - \cs_gset_nopar:Npn #1{#2} + \tl_gset:Nn #1 {#2} } \cs_generate_variant:Nn \tl_new:Nn {cn} \cs_new_protected:Npn \tl_new:Nx #1#2{ \chk_if_free_cs:N #1 - \cs_gset_nopar:Npx #1{#2} + \tl_gset:Nx #1 {#2} } \cs_new_protected_nopar:Npn \tl_new:N #1{\tl_new:Nn #1{}} \cs_new_protected_nopar:Npn \tl_new:c #1{\tl_new:cn {#1}{}} @@ -553,120 +553,6 @@ \tl_head:w #1 \q_stop \exp_not:N #2 \prg_return_true: \else: \prg_return_false: \fi: } -\tex_ifodd:D \@l@expl@check@declarations@bool \scan_stop: - \cs_set_protected:Npn \_tl_check_exists:N #1 - { - \cs_if_exist:NF #1 - { - \msg_kernel_error:nnx { check } { non-declared-variable } - { \token_to_str:N #1 } - } - } - \cs_set_protected:Npn \tl_set:Nn #1#2 - { - \_tl_check_exists:N #1 - \cs_set_nopar:Npx #1 { \exp_not:n {#2} } - } - \cs_set_protected:Npn \tl_set:Nx #1#2 - { - \_tl_check_exists:N #1 - \cs_set_nopar:Npx #1 {#2} - } - \cs_set_protected:Npn \tl_gset:Nn #1#2 - { - \_tl_check_exists:N #1 - \cs_gset_nopar:Npx #1 { \exp_not:n {#2} } - } - \cs_set_protected:Npn \tl_gset:Nx #1#2 - { - \_tl_check_exists:N #1 - \cs_gset_nopar:Npx #1 {#2} - } - \cs_set_protected:Npn \tl_set_eq:NN #1#2 - { - \_tl_check_exists:N #1 - \_tl_check_exists:N #2 - \cs_set_eq:NN #1 #2 - } - \cs_set_protected:Npn \tl_gset_eq:NN #1#2 - { - \_tl_check_exists:N #1 - \_tl_check_exists:N #2 - \cs_gset_eq:NN #1 #2 - } - \cs_set_protected:Npn \tl_put_right:Nn #1#2 { - \_tl_check_exists:N #1 - \cs_set_nopar:Npx #1 { \exp_not:o #1 \exp_not:n {#2} } - } - \cs_set_protected:Npn \tl_put_right:NV #1#2 { - \_tl_check_exists:N #1 - \cs_set_nopar:Npx #1 { \exp_not:o #1 \exp_not:V #2 } - } - \cs_set_protected:Npn \tl_put_right:Nv #1#2 { - \_tl_check_exists:N #1 - \cs_set_nopar:Npx #1 { \exp_not:o #1 \exp_not:v {#2} } - } - \cs_set_protected:Npn \tl_put_right:No #1#2 { - \_tl_check_exists:N #1 - \cs_set_nopar:Npx #1 { \exp_not:o #1 \exp_not:o {#2} } - } - \cs_set_protected:Npn \tl_put_right:Nx #1#2 { - \_tl_check_exists:N #1 - \cs_set_nopar:Npx #1 { \exp_not:o #1 #2 } - } - \cs_set_protected:Npn \tl_gput_right:Nn #1#2 { - \_tl_check_exists:N #1 - \cs_gset_nopar:Npx #1 { \exp_not:o #1 \exp_not:n {#2} } - } - \cs_set_protected:Npn \tl_gput_right:NV #1#2 { - \_tl_check_exists:N #1 - \cs_gset_nopar:Npx #1 { \exp_not:o #1 \exp_not:V #2 } - } - \cs_set_protected:Npn \tl_gput_right:Nv #1#2 { - \_tl_check_exists:N #1 - \cs_gset_nopar:Npx #1 { \exp_not:o #1 \exp_not:v {#2} } - } - \cs_set_protected:Npn \tl_gput_right:Nx #1#2 { - \_tl_check_exists:N #1 - \cs_gset_nopar:Npx #1 { \exp_not:o #1 #2 } - } - \cs_set_protected:Npn \tl_put_left:Nn #1#2 { - \_tl_check_exists:N #1 - \cs_set_nopar:Npx #1 { \exp_not:n {#2} \exp_not:o #1 } - } - \cs_set_protected:Npn \tl_put_left:NV #1#2 { - \_tl_check_exists:N #1 - \cs_set_nopar:Npx #1 { \exp_not:V #2 \exp_not:o #1 } - } - \cs_set_protected:Npn \tl_put_left:Nv #1#2 { - \_tl_check_exists:N #1 - \cs_set_nopar:Npx #1 { \exp_not:v {#2} \exp_not:o #1 } - } - \cs_set_protected:Npn \tl_put_left:No #1#2 { - \_tl_check_exists:N #1 - \cs_set_nopar:Npx #1 { \exp_not:o {#2} \exp_not:o #1 } - } - \cs_set_protected:Npn \tl_put_left:Nx #1#2 { - \_tl_check_exists:N #1 - \cs_set_nopar:Npx #1 { #2 \exp_not:o #1 } - } - \cs_set_protected:Npn \tl_gput_left:Nn #1#2 { - \_tl_check_exists:N #1 - \cs_gset_nopar:Npx #1 { \exp_not:n {#2} \exp_not:o #1 } - } - \cs_set_protected:Npn \tl_gput_left:NV #1#2 { - \_tl_check_exists:N #1 - \cs_gset_nopar:Npx #1 { \exp_not:V #2 \exp_not:o #1 } - } - \cs_set_protected:Npn \tl_gput_left:Nv #1#2 { - \_tl_check_exists:N #1 - \cs_gset_nopar:Npx #1 { \exp_not:v {#2} \exp_not:o #1 } - } - \cs_set_protected:Npn \tl_gput_left:Nx #1#2 { - \_tl_check_exists:N #1 - \cs_gset_nopar:Npx #1 { #2 \exp_not:o #1 } - } -\tex_fi:D %% %% %% End of file `l3tl.sty'. diff --git a/Master/texmf-dist/tex/latex/expl3/l3token.sty b/Master/texmf-dist/tex/latex/expl3/l3token.sty index 4fa8cc3f704..9013497ff87 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3token.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3token.sty @@ -48,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3token.dtx 2151 2011-02-16 06:58:12Z will $ +\GetIdInfo$Id: l3token.dtx 2223 2011-04-09 12:57:14Z will $ {L3 Experimental token investigation and manipulation} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} diff --git a/Master/texmf-dist/tex/latex/expl3/l3toks.sty b/Master/texmf-dist/tex/latex/expl3/l3toks.sty index 23c8f1fd9dd..23abea78be8 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3toks.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3toks.sty @@ -48,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3toks.dtx 2037 2010-09-20 21:22:45Z joseph $ +\GetIdInfo$Id: l3toks.dtx 2223 2011-04-09 12:57:14Z will $ {L3 Experimental Token Registers} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} diff --git a/Master/texmf-dist/tex/latex/expl3/l3xref.sty b/Master/texmf-dist/tex/latex/expl3/l3xref.sty index 44e5bc5e554..99ed3f83b47 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3xref.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3xref.sty @@ -48,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3xref.dtx 2151 2011-02-16 06:58:12Z will $ +\GetIdInfo$Id: l3xref.dtx 2223 2011-04-09 12:57:14Z will $ {L3 Experimental cross referencing} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} |