diff options
author | Karl Berry <karl@freefriends.org> | 2010-03-31 00:04:47 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2010-03-31 00:04:47 +0000 |
commit | 3ab55a61f6f8d2218a8f3175bc7481ce162b60d3 (patch) | |
tree | f606e0c2117a8058213441400e50ba25400ba94a /Master/texmf-dist/tex/latex | |
parent | 035ea73193af75f6ade46e306603e61d82b24950 (diff) |
expl3 1881 (30mar10)
git-svn-id: svn://tug.org/texlive/trunk@17631 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
26 files changed, 1464 insertions, 988 deletions
diff --git a/Master/texmf-dist/tex/latex/expl3/expl3.sty b/Master/texmf-dist/tex/latex/expl3/expl3.sty index 684dab217f2..be01e6750ef 100644 --- a/Master/texmf-dist/tex/latex/expl3/expl3.sty +++ b/Master/texmf-dist/tex/latex/expl3/expl3.sty @@ -49,15 +49,15 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: expl3.dtx 1677 2009-11-02 08:24:04Z joseph $ +\GetIdInfo$Id: expl3.dtx 1866 2010-03-23 08:29:27Z joseph $ {L3 Experimental code bundle wrapper}% \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} +\RequirePackage{etex} \RequirePackage{ l3basics, l3expan, l3tl, - l3num, l3intexpr, l3quark, l3seq, @@ -66,9 +66,9 @@ l3prg, l3clist, l3token, - l3io, l3prop, l3msg, + l3io, l3skip, } \RequirePackage{ @@ -80,6 +80,136 @@ l3xref, l3file } +\bool_new:N \_l_expl_check_declarations_bool +\DeclareOption{check-declarations}{ + \bool_set_true:N \_l_expl_check_declarations_bool +} +\ProcessOptions \scan_stop: +\bool_if:NT \_l_expl_check_declarations_bool { + \msg_kernel_new:nnnn { check } { non-declared-variable } + { The~variable~#1~has~not~been~declared~\msg_line_context:. } + { + Checking~is~active,~and~you~have~tried~do~so~something~like: \\ + \c_space_tl \c_space_tl \tl_set:Nn #1 ~ + \iow_char:N \{ ~ ... ~ \iow_char:N \} \\ + without~first~having: \\ + \c_space_tl \c_space_tl \tl_new:N #1 \\ + \\ + LaTeX~will~create~the~variable~and~continue. + } + \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:V #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:V #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:V #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:V #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:V #1 #2 } + } + \cs_set_protected:Npn \tl_gput_right:Nn #1#2 { + \_tl_check_exists:N #1 + \cs_gset_nopar:Npx #1 { \exp_not:V #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:V #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:V #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:V #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:V #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:V #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:V #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:V #1 } + } + \cs_set_protected:Npn \tl_put_left:Nx #1#2 { + \_tl_check_exists:N #1 + \cs_set_nopar:Npx #1 { #2 \exp_not:V #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:V #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:V #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:V #1 } + } + \cs_set_protected:Npn \tl_gput_left:Nx #1#2 { + \_tl_check_exists:N #1 + \cs_gset_nopar:Npx #1 { #2 \exp_not:V #1 } + } +} %% %% %% 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 21d986edb7d..1934eccb2d8 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 1700 2009-11-04 21:15:58Z joseph $ +\GetIdInfo$Id: l3basics.dtx 1853 2010-03-21 09:11:08Z joseph $ {L3 Experimental basic definitions} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -133,6 +133,13 @@ \pref_protected:D \pref_long:D \cs_gset_nopar:Npx } \cs_set:Npn \use:c #1 { \cs:w#1\cs_end: } +\cs_set_protected:Npn \use:x #1 { + \group_begin: + \cs_set:Npx \cs_tmp: {#1} + \exp_args:wN + \group_end: + \cs_tmp: +} \cs_set:Npn \use:n #1 {#1} \cs_set:Npn \use:nn #1#2 {#1#2} \cs_set:Npn \use:nnn #1#2#3 {#1#2#3} @@ -169,60 +176,60 @@ \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:Npn \prg_set_conditional:Npnn #1{ +\cs_set_protected:Npn \prg_set_conditional:Npnn #1{ \prg_get_parm_aux:nw{ \cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn \cs_set:Npn {parm} } } -\cs_set:Npn \prg_new_conditional:Npnn #1{ +\cs_set_protected:Npn \prg_new_conditional:Npnn #1{ \prg_get_parm_aux:nw{ \cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn \cs_new:Npn {parm} } } -\cs_set:Npn \prg_set_protected_conditional:Npnn #1{ +\cs_set_protected:Npn \prg_set_protected_conditional:Npnn #1{ \prg_get_parm_aux:nw{ \cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn \cs_set_protected:Npn {parm} } } -\cs_set:Npn \prg_new_protected_conditional:Npnn #1{ +\cs_set_protected:Npn \prg_new_protected_conditional:Npnn #1{ \prg_get_parm_aux:nw{ \cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn \cs_new_protected:Npn {parm} } } -\cs_set:Npn \prg_set_conditional:Nnn #1{ +\cs_set_protected:Npn \prg_set_conditional:Nnn #1{ \exp_args:Nnf \prg_get_count_aux:nn{ \cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn \cs_set:Npn {count} }{\cs_get_arg_count_from_signature:N #1} } -\cs_set:Npn \prg_new_conditional:Nnn #1{ +\cs_set_protected:Npn \prg_new_conditional:Nnn #1{ \exp_args:Nnf \prg_get_count_aux:nn{ \cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn \cs_new:Npn {count} }{\cs_get_arg_count_from_signature:N #1} } -\cs_set:Npn \prg_set_protected_conditional:Nnn #1{ +\cs_set_protected:Npn \prg_set_protected_conditional:Nnn #1{ \exp_args:Nnf \prg_get_count_aux:nn{ \cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn \cs_set_protected:Npn {count} }{\cs_get_arg_count_from_signature:N #1} } -\cs_set:Npn \prg_new_protected_conditional:Nnn #1{ +\cs_set_protected:Npn \prg_new_protected_conditional:Nnn #1{ \exp_args:Nnf \prg_get_count_aux:nn{ \cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn \cs_new_protected:Npn {count} }{\cs_get_arg_count_from_signature:N #1} } -\cs_set:Npn \prg_set_eq_conditional:NNn #1#2#3 { +\cs_set_protected:Npn \prg_set_eq_conditional:NNn #1#2#3 { \prg_set_eq_conditional_aux:NNNn \cs_set_eq:cc #1#2 {#3} } -\cs_set:Npn \prg_new_eq_conditional:NNn #1#2#3 { +\cs_set_protected:Npn \prg_new_eq_conditional:NNn #1#2#3 { \prg_set_eq_conditional_aux:NNNn \cs_new_eq:cc #1#2 {#3} } \cs_set:Npn \prg_get_count_aux:nn #1#2 {#1{#2}} @@ -389,18 +396,18 @@ \cs_set_eq:NwN \c_minus_one\m@ne \tex_chardef:D \c_sixteen = 16~ \tex_chardef:D \c_zero = 0~ -\cs_set_nopar:Npn \iow_log:x { +\cs_set_protected_nopar:Npn \iow_log:x { \tex_immediate:D \iow_shipout_x:Nn \c_minus_one } -\cs_set_nopar:Npn \iow_term:x { +\cs_set_protected_nopar:Npn \iow_term:x { \tex_immediate:D \iow_shipout_x:Nn \c_sixteen } -\cs_set_nopar:Npn \msg_kernel_bug:x #1 { +\cs_set_protected_nopar:Npn \msg_kernel_bug:x #1 { \iow_term:x { This~is~a~LaTeX~bug:~check~coding! } \tex_errmessage:D {#1} } \cs_set:Npn \cs_record_meaning:N #1{} -\cs_set_nopar:Npn \chk_if_free_cs:N #1{ +\cs_set_protected_nopar:Npn \chk_if_free_cs:N #1{ \cs_if_free:NF #1 { \msg_kernel_bug:x {Command~name~`\token_to_str:N #1'~ @@ -412,15 +419,19 @@ \iow_log:x{Defining~\token_to_str:N #1~on~ line~\tex_the:D \tex_inputlineno:D} } -\cs_set_nopar:Npn \chk_if_free_cs:c { \exp_args:Nc \chk_if_free_cs:N } -\cs_set_nopar:Npn \chk_if_exist_cs:N #1 { +\cs_set_protected_nopar:Npn \chk_if_free_cs:c { + \exp_args:Nc \chk_if_free_cs:N +} +\cs_set_protected_nopar:Npn \chk_if_exist_cs:N #1 { \cs_if_exist:NF #1 { \msg_kernel_bug:x {Command~ `\token_to_str:N #1'~ not~ yet~ defined!} } } -\cs_set_nopar:Npn \chk_if_exist_cs:c {\exp_args:Nc \chk_if_exist_cs:N } +\cs_set_protected_nopar:Npn \chk_if_exist_cs:c { + \exp_args:Nc \chk_if_exist_cs:N +} \prg_set_conditional:Npnn \str_if_eq:nn #1#2{p}{ \str_if_eq_p_aux:w #1\scan_stop:\\#2\scan_stop:\\ } @@ -518,29 +529,37 @@ \cs_set_nopar:cpn{use_9_parameter:}{ {##1}{##2}{##3}{##4}{##5}{##6}{##7}{##8}{##9}} \cs_set_protected:Npn \cs_set_eq:NN #1 { \cs_set_eq:NwN #1=~ } -\cs_set_nopar:Npn \cs_set_eq:cN { \exp_args:Nc \cs_set_eq:NN } -\cs_set_nopar:Npn \cs_set_eq:Nc { \exp_args:NNc \cs_set_eq:NN } -\cs_set_nopar:Npn \cs_set_eq:cc { \exp_args:Ncc \cs_set_eq:NN } +\cs_set_protected_nopar:Npn \cs_set_eq:cN { \exp_args:Nc \cs_set_eq:NN } +\cs_set_protected_nopar:Npn \cs_set_eq:Nc { \exp_args:NNc \cs_set_eq:NN } +\cs_set_protected_nopar:Npn \cs_set_eq:cc { \exp_args:Ncc \cs_set_eq:NN } \cs_new_protected:Npn \cs_new_eq:NN #1 { \chk_if_free_cs:N #1 \cs_set_eq:NN #1 } -\cs_new_nopar:Npn \cs_new_eq:cN { \exp_args:Nc \cs_new_eq:NN } -\cs_new_nopar:Npn \cs_new_eq:Nc { \exp_args:NNc \cs_new_eq:NN } -\cs_new_nopar:Npn \cs_new_eq:cc { \exp_args:Ncc \cs_new_eq:NN } +\cs_new_protected_nopar:Npn \cs_new_eq:cN { \exp_args:Nc \cs_new_eq:NN } +\cs_new_protected_nopar:Npn \cs_new_eq:Nc { \exp_args:NNc \cs_new_eq:NN } +\cs_new_protected_nopar:Npn \cs_new_eq:cc { \exp_args:Ncc \cs_new_eq:NN } \cs_new_protected:Npn \cs_gset_eq:NN { \pref_global:D \cs_set_eq:NN } -\cs_new_nopar:Npn \cs_gset_eq:Nc { \exp_args:NNc \cs_gset_eq:NN } -\cs_new_nopar:Npn \cs_gset_eq:cN { \exp_args:Nc \cs_gset_eq:NN } -\cs_new_nopar:Npn \cs_gset_eq:cc { \exp_args:Ncc \cs_gset_eq:NN } +\cs_new_protected_nopar:Npn \cs_gset_eq:Nc { \exp_args:NNc \cs_gset_eq:NN } +\cs_new_protected_nopar:Npn \cs_gset_eq:cN { \exp_args:Nc \cs_gset_eq:NN } +\cs_new_protected_nopar:Npn \cs_gset_eq:cc { \exp_args:Ncc \cs_gset_eq:NN } \cs_new_protected:Npn \cs_gnew_eq:NN #1 { \chk_if_free_cs:N #1 \pref_global:D \cs_set_eq:NN #1 } -\cs_new_nopar:Npn \cs_gnew_eq:cN { \exp_args:Nc \cs_gnew_eq:NN } -\cs_new_nopar:Npn \cs_gnew_eq:Nc { \exp_args:NNc \cs_gnew_eq:NN } -\cs_new_nopar:Npn \cs_gnew_eq:cc { \exp_args:Ncc \cs_gnew_eq:NN } -\cs_new_nopar:Npn \cs_gundefine:N #1{\cs_gset_eq:NN #1\c_undefined:D} -\cs_new_nopar:Npn \cs_gundefine:c #1{ +\cs_new_protected_nopar:Npn \cs_gnew_eq:cN { \exp_args:Nc \cs_gnew_eq:NN } +\cs_new_protected_nopar:Npn \cs_gnew_eq:Nc { \exp_args:NNc \cs_gnew_eq:NN } +\cs_new_protected_nopar:Npn \cs_gnew_eq:cc { \exp_args:Ncc \cs_gnew_eq:NN } +\cs_new_protected_nopar:Npn \cs_undefine:N #1 { + \cs_set_eq:NN #1 \c_undefined:D +} +\cs_new_protected_nopar:Npn \cs_undefine:c #1 { + \cs_set_eq:cN {#1} \c_undefined:D +} +\cs_new_protected_nopar:Npn \cs_gundefine:N #1 { + \cs_gset_eq:NN #1 \c_undefined:D +} +\cs_new_protected_nopar:Npn \cs_gundefine:c #1 { \cs_gset_eq:cN {#1} \c_undefined:D } \if_cs_exist:N \xetex_version:D diff --git a/Master/texmf-dist/tex/latex/expl3/l3box.sty b/Master/texmf-dist/tex/latex/expl3/l3box.sty index 7f790646251..bada61a0001 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3box.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3box.sty @@ -15,7 +15,7 @@ %% Do not distribute a modified version of this file. %% %% -%% File: l3box.dtx Copyright (C) 2005-2009 LaTeX3 project +%% File: l3box.dtx Copyright (C) 2005-2010 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 @@ -48,16 +48,24 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3box.dtx 1375 2009-06-01 12:28:52Z joseph $ +\GetIdInfo$Id: l3box.dtx 1867 2010-03-23 13:03:12Z will $ {L3 Experimental Box module} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} \package_check_loaded_expl: -\cs_new:Npn \box_new:N #1 { +\cs_new_protected:Npn \box_new:N #1 { \chk_if_free_cs:N #1 \newbox #1 } +\cs_new_protected:Npn \box_new_local:N #1 { + \chk_if_free_cs:N #1 + \int_compare:nNnTF + \tex_currentgrouplevel:D = 0 + \newbox \locbox + #1 +} \cs_generate_variant:Nn \box_new:N {c} +\cs_generate_variant:Nn \box_new_local:N {c} \cs_new_eq:NN \if_hbox:N \tex_ifhbox:D \cs_new_eq:NN \if_vbox:N \tex_ifvbox:D \cs_new_eq:NN \if_box_empty:N \tex_ifvoid:D @@ -82,22 +90,22 @@ \cs_generate_variant:Nn \box_if_empty:NTF {c} \cs_generate_variant:Nn \box_if_empty:NT {c} \cs_generate_variant:Nn \box_if_empty:NF {c} -\cs_new_nopar:Npn \box_set_eq:NN #1#2 {\tex_setbox:D #1 \tex_box:D #2} +\cs_new_protected_nopar:Npn \box_set_eq:NN #1#2 {\tex_setbox:D #1 \tex_box:D #2} \cs_generate_variant:Nn \box_set_eq:NN {cN,Nc,cc} -\cs_new_nopar:Npn \box_gset_eq:NN {\pref_global:D\box_set_eq:NN} +\cs_new_protected_nopar:Npn \box_gset_eq:NN {\pref_global:D\box_set_eq:NN} \cs_generate_variant:Nn \box_gset_eq:NN {cN,Nc,cc} \cs_new_eq:NN \l_last_box \tex_lastbox:D -\cs_new_nopar:Npn \box_set_to_last:N #1{\tex_setbox:D#1\l_last_box} +\cs_new_protected_nopar:Npn \box_set_to_last:N #1{\tex_setbox:D#1\l_last_box} \cs_generate_variant:Nn \box_set_to_last:N {c} -\cs_new_nopar:Npn \box_gset_to_last:N {\pref_global:D \box_set_to_last:N} +\cs_new_protected_nopar:Npn \box_gset_to_last:N {\pref_global:D \box_set_to_last:N} \cs_generate_variant:Nn \box_gset_to_last:N {c} \cs_new:Npn \box_move_left:nn #1#2{\tex_moveleft:D\dim_eval:n{#1}{#2}} \cs_new:Npn \box_move_right:nn #1#2{\tex_moveright:D\dim_eval:n{#1}{#2}} \cs_new:Npn \box_move_up:nn #1#2{\tex_raise:D\dim_eval:n{#1}{#2}} \cs_new:Npn \box_move_down:nn #1#2{\tex_lower:D\dim_eval:n{#1}{#2}} -\cs_new_nopar:Npn \box_clear:N #1{\box_set_eq:NN #1 \c_empty_box } +\cs_new_protected_nopar:Npn \box_clear:N #1{\box_set_eq:NN #1 \c_empty_box } \cs_generate_variant:Nn \box_clear:N {c} -\cs_new_nopar:Npn \box_gclear:N {\pref_global:D\box_clear:N} +\cs_new_protected_nopar:Npn \box_gclear:N {\pref_global:D\box_clear:N} \cs_generate_variant:Nn \box_gclear:N {c} \cs_new_eq:NN \box_ht:N \tex_ht:D \cs_new_eq:NN \box_dp:N \tex_dp:D @@ -114,55 +122,57 @@ \cs_set_eq:NN \c_empty_box \voidb@x \cs_new_eq:NN \l_tmpa_box \@tempboxa \box_new:N \l_tmpb_box -\cs_new_nopar:Npn \vbox:n {\tex_vbox:D \scan_stop:} -\cs_new:Npn \vbox_set:Nn #1#2 {\tex_setbox:D #1 \tex_vbox:D {#2}} +\cs_new_protected_nopar:Npn \vbox:n {\tex_vbox:D \scan_stop:} +\cs_new_protected:Npn \vbox_set:Nn #1#2 {\tex_setbox:D #1 \tex_vbox:D {#2}} \cs_generate_variant:Nn \vbox_set:Nn {cn} -\cs_new_nopar:Npn \vbox_gset:Nn {\pref_global:D \vbox_set:Nn} +\cs_new_protected_nopar:Npn \vbox_gset:Nn {\pref_global:D \vbox_set:Nn} \cs_generate_variant:Nn \vbox_gset:Nn {cn} -\cs_new:Npn \vbox_set_to_ht:Nnn #1#2#3 { +\cs_new_protected:Npn \vbox_set_to_ht:Nnn #1#2#3 { \tex_setbox:D #1 \tex_vbox:D to #2 {#3} } \cs_generate_variant:Nn \vbox_set_to_ht:Nnn {cnn} -\cs_new_nopar:Npn \vbox_gset_to_ht:Nnn { \pref_global:D \vbox_set_to_ht:Nnn } +\cs_new_protected_nopar:Npn \vbox_gset_to_ht:Nnn { \pref_global:D \vbox_set_to_ht:Nnn } \cs_generate_variant:Nn \vbox_gset_to_ht:Nnn {cnn,ccn} -\cs_new_nopar:Npn \vbox_set_inline_begin:N #1 { +\cs_new_protected_nopar:Npn \vbox_set_inline_begin:N #1 { \tex_setbox:D #1 \tex_vbox:D \c_group_begin_token } \cs_new_eq:NN \vbox_set_inline_end: \c_group_end_token -\cs_new_nopar:Npn \vbox_gset_inline_begin:N { +\cs_new_protected_nopar:Npn \vbox_gset_inline_begin:N { \pref_global:D \vbox_set_inline_begin:N } \cs_new_eq:NN \vbox_gset_inline_end: \c_group_end_token -\cs_new:Npn \vbox_to_ht:nn #1#2{\tex_vbox:D to \dim_eval:n{#1}{#2}} -\cs_new:Npn \vbox_to_zero:n #1 {\tex_vbox:D to \c_zero_dim {#1}} -\cs_new_nopar:Npn \vbox_set_split_to_ht:NNn #1#2#3{ +\cs_new_protected:Npn \vbox_to_ht:nn #1#2{\tex_vbox:D to \dim_eval:n{#1}{#2}} +\cs_new_protected:Npn \vbox_to_zero:n #1 {\tex_vbox:D to \c_zero_dim {#1}} +\cs_new_protected_nopar:Npn \vbox_set_split_to_ht:NNn #1#2#3{ \tex_setbox:D #1 \tex_vsplit:D #2 to #3 } \cs_new_eq:NN \vbox_unpack:N \tex_unvcopy:D \cs_generate_variant:Nn \vbox_unpack:N {c} \cs_new_eq:NN \vbox_unpack_clear:N \tex_unvbox:D \cs_generate_variant:Nn \vbox_unpack_clear:N {c} -\cs_new_nopar:Npn \hbox:n {\tex_hbox:D \scan_stop:} -\cs_new:Npn \hbox_set:Nn #1#2 {\tex_setbox:D #1 \tex_hbox:D {#2}} +\cs_new_protected_nopar:Npn \hbox:n {\tex_hbox:D \scan_stop:} +\cs_new_protected:Npn \hbox_set:Nn #1#2 {\tex_setbox:D #1 \tex_hbox:D {#2}} \cs_generate_variant:Nn \hbox_set:Nn {cn} -\cs_new_nopar:Npn \hbox_gset:Nn {\pref_global:D \hbox_set:Nn} +\cs_new_protected_nopar:Npn \hbox_gset:Nn {\pref_global:D \hbox_set:Nn} \cs_generate_variant:Nn \hbox_gset:Nn {cn} -\cs_new:Npn \hbox_set_to_wd:Nnn #1#2#3 { +\cs_new_protected:Npn \hbox_set_to_wd:Nnn #1#2#3 { \tex_setbox:D #1 \tex_hbox:D to \dim_eval:n{#2} {#3} } \cs_generate_variant:Nn \hbox_set_to_wd:Nnn {cnn} -\cs_new_nopar:Npn \hbox_gset_to_wd:Nnn {\pref_global:D \hbox_set_to_wd:Nnn } +\cs_new_protected_nopar:Npn \hbox_gset_to_wd:Nnn {\pref_global:D \hbox_set_to_wd:Nnn } \cs_generate_variant:Nn \hbox_gset_to_wd:Nnn {cnn} -\cs_new_nopar:Npn \hbox_set_inline_begin:N #1 { +\cs_new_protected_nopar:Npn \hbox_set_inline_begin:N #1 { \tex_setbox:D #1 \tex_hbox:D \c_group_begin_token } \cs_generate_variant:Nn \hbox_set_inline_begin:N {c} \cs_new_eq:NN \hbox_set_inline_end: \c_group_end_token -\cs_new_nopar:Npn \hbox_gset_inline_begin:N { +\cs_new_protected_nopar:Npn \hbox_gset_inline_begin:N { \pref_global:D \hbox_set_inline_begin:N } \cs_generate_variant:Nn \hbox_gset_inline_begin:N {c} \cs_new_eq:NN \hbox_gset_inline_end: \c_group_end_token -\cs_new:Npn \hbox_to_wd:nn #1#2 {\tex_hbox:D to #1 {#2}} -\cs_new:Npn \hbox_to_zero:n #1 {\tex_hbox:D to \c_zero_skip {#1}} +\cs_new_protected:Npn \hbox_to_wd:nn #1#2 {\tex_hbox:D to #1 {#2}} +\cs_new_protected:Npn \hbox_to_zero:n #1 {\tex_hbox:D to \c_zero_skip {#1}} +\cs_new_protected:Npn \hbox_overlap_left:n #1 {\hbox_to_zero:n {\tex_hss:D #1}} +\cs_new_protected:Npn \hbox_overlap_right:n #1 {\hbox_to_zero:n {#1 \tex_hss:D}} \cs_new_eq:NN \hbox_unpack:N \tex_unhcopy:D \cs_generate_variant:Nn \hbox_unpack:N {c} \cs_new_eq:NN \hbox_unpack_clear:N \tex_unhbox:D diff --git a/Master/texmf-dist/tex/latex/expl3/l3calc.sty b/Master/texmf-dist/tex/latex/expl3/l3calc.sty index 6bdfdcef00c..e77f86aca93 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3calc.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3calc.sty @@ -48,12 +48,12 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3calc.dtx 1362 2009-05-28 20:19:21Z joseph $ +\GetIdInfo$Id: l3calc.dtx 1776 2010-02-07 21:51:23Z joseph $ {L3 Experimental calc module} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} \package_check_loaded_expl: -\tl_new:Nn\l_calc_expression_tl{} +\tl_new:N \l_calc_expression_tl \cs_new_nopar:Npn \g_calc_A_register{} \cs_new_nopar:Npn \l_calc_B_register{} \int_new:N \l_calc_current_type_int diff --git a/Master/texmf-dist/tex/latex/expl3/l3clist.sty b/Master/texmf-dist/tex/latex/expl3/l3clist.sty index 1af37298751..17f8ff5f80f 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3clist.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3clist.sty @@ -15,7 +15,7 @@ %% Do not distribute a modified version of this file. %% %% -%% File: l3clist.dtx Copyright (C) 2005-2008 Frank Mittelbach, LaTeX3 project +%% File: l3clist.dtx Copyright (C) 2005-2010 Frank Mittelbach, 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 @@ -48,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3clist.dtx 1713 2009-11-06 07:02:42Z will $ +\GetIdInfo$Id: l3clist.dtx 1878 2010-03-29 07:15:02Z joseph $ {L3 Experimental comma separated lists} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -63,19 +63,19 @@ \cs_generate_variant:Nn \clist_clear_new:N {c} \cs_new_eq:NN \clist_gclear_new:N \tl_gclear_new:N \cs_generate_variant:Nn \clist_gclear_new:N {c} -\cs_new_eq:NN \clist_set_eq:NN \cs_set_eq:NN -\cs_new_eq:NN \clist_set_eq:cN \cs_set_eq:cN -\cs_new_eq:NN \clist_set_eq:Nc \cs_set_eq:Nc -\cs_new_eq:NN \clist_set_eq:cc \cs_set_eq:cc -\cs_new_eq:NN \clist_gset_eq:NN \cs_gset_eq:NN -\cs_new_eq:NN \clist_gset_eq:cN \cs_gset_eq:cN -\cs_new_eq:NN \clist_gset_eq:Nc \cs_gset_eq:Nc -\cs_new_eq:NN \clist_gset_eq:cc \cs_gset_eq:cc +\cs_new_eq:NN \clist_set_eq:NN \tl_set_eq:NN +\cs_new_eq:NN \clist_set_eq:cN \tl_set_eq:cN +\cs_new_eq:NN \clist_set_eq:Nc \tl_set_eq:Nc +\cs_new_eq:NN \clist_set_eq:cc \tl_set_eq:cc +\cs_new_eq:NN \clist_gset_eq:NN \tl_gset_eq:NN +\cs_new_eq:NN \clist_gset_eq:cN \tl_gset_eq:cN +\cs_new_eq:NN \clist_gset_eq:Nc \tl_gset_eq:Nc +\cs_new_eq:NN \clist_gset_eq:cc \tl_gset_eq:cc \prg_new_eq_conditional:NNn \clist_if_empty:N \tl_if_empty:N {p,TF,T,F} \prg_new_eq_conditional:NNn \clist_if_empty:c \tl_if_empty:c {p,TF,T,F} -\cs_new_nopar:Npn \clist_if_empty_err:N #1 { +\cs_new_protected_nopar:Npn \clist_if_empty_err:N #1 { \if_meaning:w #1 \c_empty_tl - \tl_clear:N \l_testa_tl % catch prefixes + \tl_clear:N \l_kernel_testa_tl % catch prefixes \msg_kernel_bug:x {Empty~comma-list~`\token_to_str:N #1'} \fi: } @@ -83,7 +83,7 @@ \prg_new_eq_conditional:NNn \clist_if_eq:cN \tl_if_eq:cN {p,TF,T,F} \prg_new_eq_conditional:NNn \clist_if_eq:Nc \tl_if_eq:Nc {p,TF,T,F} \prg_new_eq_conditional:NNn \clist_if_eq:cc \tl_if_eq:cc {p,TF,T,F} -\prg_new_conditional:Nnn \clist_if_in:Nn {TF,T,F} { +\prg_new_protected_conditional:Nnn \clist_if_in:Nn {TF,T,F} { \cs_set:Npn \clist_tmp:w ##1,#2,##2##3 \q_stop { \if_meaning:w \q_no_value ##2 \prg_return_false: \else: \prg_return_true: \fi: @@ -102,17 +102,17 @@ \fi: } \cs_generate_variant:Nn \clist_use:N {c} -\cs_new_nopar:Npn \clist_get:NN #1 { +\cs_new_protected_nopar:Npn \clist_get:NN #1 { \clist_if_empty_err:N #1 \exp_after:wN \clist_get_aux:w #1,\q_stop } -\cs_new:Npn \clist_get_aux:w #1,#2\q_stop #3 { \tl_set:Nn #3{#1} } +\cs_new_protected:Npn \clist_get_aux:w #1,#2\q_stop #3 { \tl_set:Nn #3{#1} } \cs_generate_variant:Nn \clist_get:NN {cN} -\cs_new:Npn \clist_pop_aux:nnNN #1#2#3 { +\cs_new_protected:Npn \clist_pop_aux:nnNN #1#2#3 { \clist_if_empty_err:N #3 \exp_after:wN \clist_pop_aux:w #3,\q_nil\q_stop #1#2#3 } -\cs_new:Npn \clist_pop_aux:w #1,#2\q_stop #3#4#5#6 { +\cs_new_protected:Npn \clist_pop_aux:w #1,#2\q_stop #3#4#5#6 { #4 #6 {#1} #3 #5 {#2} \quark_if_nil:NTF #5 { #3 #5 {} }{ \clist_pop_auxi:w #2 #3#5 } @@ -120,7 +120,7 @@ \cs_new:Npn \clist_pop_auxi:w #1,\q_nil #2#3 { #2#3{#1} } \cs_new_eq:NN \clist_show:N \tl_show:N \cs_new_eq:NN \clist_show:c \tl_show:c -\cs_new_nopar:Npn \clist_display:N #1 { +\cs_new_protected_nopar:Npn \clist_display:N #1 { \iow_term:x { Comma-list~\token_to_str:N #1~contains~ the~elements~(without~outer~braces): } \toks_clear:N \l_tmpa_toks @@ -129,30 +129,30 @@ \toks_put_right:Nx \l_tmpa_toks {^^J>~} } \toks_put_right:Nx \l_tmpa_toks { - \iow_space: \iow_char:N \{ \exp_not:n {##1} \iow_char:N \} + \c_space_tl \iow_char:N \{ \exp_not:n {##1} \iow_char:N \} } } \toks_show:N \l_tmpa_toks } \cs_generate_variant:Nn \clist_display:N {c} -\cs_new:Npn \clist_put_aux:NNnnNn #1#2#3#4#5#6 { +\cs_new_protected:Npn \clist_put_aux:NNnnNn #1#2#3#4#5#6 { \clist_if_empty:NTF #5 { #1 #5 {#6} } { \tl_if_empty:nF {#6} { #2 #5{#3#6#4} } } } -\cs_new_nopar:Npn \clist_put_left:Nn { +\cs_new_protected_nopar:Npn \clist_put_left:Nn { \clist_put_aux:NNnnNn \tl_set:Nn \tl_put_left:Nn {} , } \cs_generate_variant:Nn \clist_put_left:Nn {NV,No,Nx,cn,cV,co} -\cs_new_nopar:Npn \clist_gput_left:Nn { +\cs_new_protected_nopar:Npn \clist_gput_left:Nn { \clist_put_aux:NNnnNn \tl_gset:Nn \tl_gput_left:Nn {} , } \cs_generate_variant:Nn \clist_gput_left:Nn {NV,No,Nx,cn,cV,co} -\cs_new_nopar:Npn \clist_put_right:Nn { +\cs_new_protected_nopar:Npn \clist_put_right:Nn { \clist_put_aux:NNnnNn \tl_set:Nn \tl_put_right:Nn , {} } \cs_generate_variant:Nn \clist_put_right:Nn {NV,No,Nx,cn,cV,co} -\cs_new_nopar:Npn \clist_gput_right:Nn { +\cs_new_protected_nopar:Npn \clist_gput_right:Nn { \clist_put_aux:NNnnNn \tl_gset:Nn \tl_gput_right:Nn , {} } \cs_generate_variant:Nn \clist_gput_right:Nn {NV,No,Nx,cn,cV,co} @@ -175,7 +175,7 @@ } \cs_new_eq:NN \clist_map_break: \use_none_delimit_by_q_recursion_stop:w \int_new:N \g_clist_inline_level_int -\cs_new:Npn \clist_map_inline:Nn #1#2 { +\cs_new_protected:Npn \clist_map_inline:Nn #1#2 { \clist_if_empty:NF #1 { \int_gincr:N \g_clist_inline_level_int \cs_gset:cpn {clist_map_inline_ \int_use:N \g_clist_inline_level_int :n} @@ -187,7 +187,7 @@ } } \cs_generate_variant:Nn \clist_map_inline:Nn {c} -\cs_new:Npn \clist_map_inline:nn #1#2 { +\cs_new_protected:Npn \clist_map_inline:nn #1#2 { \tl_if_empty:nF {#1} { \int_gincr:N \g_clist_inline_level_int \cs_gset:cpn {clist_map_inline_ \int_use:N \g_clist_inline_level_int :n} @@ -198,56 +198,56 @@ \int_gdecr:N \g_clist_inline_level_int } } -\cs_new:Npn \clist_map_variable:nNn #1#2#3 { +\cs_new_protected:Npn \clist_map_variable:nNn #1#2#3 { \tl_if_empty:nF {#1} { \clist_map_variable_aux:Nnw #2 {#3} #1 , \q_recursion_tail , \q_recursion_stop } } -\cs_new_nopar:Npn \clist_map_variable:NNn {\exp_args:No \clist_map_variable:nNn} +\cs_new_protected_nopar:Npn \clist_map_variable:NNn {\exp_args:No \clist_map_variable:nNn} \cs_generate_variant:Nn\clist_map_variable:NNn {cNn} -\cs_new:Npn \clist_map_variable_aux:Nnw #1#2#3,{ +\cs_new_protected:Npn \clist_map_variable_aux:Nnw #1#2#3,{ \cs_set_nopar:Npn #1{#3} \quark_if_recursion_tail_stop:N #1 #2 \clist_map_variable_aux:Nnw #1{#2} } -\cs_new_nopar:Npn \clist_concat_aux:NNNN #1#2#3#4 { - \toks_set:No \l_tmpa_toks {#3} - \toks_set:No \l_tmpb_toks {#4} +\cs_new_protected_nopar:Npn \clist_concat_aux:NNNN #1#2#3#4 { + \tl_set:No \l_tmpa_tl {#3} + \tl_set:No \l_tmpb_tl {#4} #1 #2 { - \toks_use:N \l_tmpa_toks - \toks_if_empty:NF \l_tmpa_toks { \toks_if_empty:NF \l_tmpb_toks , } - \toks_use:N \l_tmpb_toks + \exp_not:V \l_tmpa_tl + \tl_if_empty:NF \l_tmpa_tl { \tl_if_empty:NF \l_tmpb_tl , } + \exp_not:V \l_tmpb_tl } } -\cs_new_nopar:Npn \clist_concat:NNN { \clist_concat_aux:NNNN \tl_set:Nx } -\cs_new_nopar:Npn \clist_gconcat:NNN { \clist_concat_aux:NNNN \tl_gset:Nx } +\cs_new_protected_nopar:Npn \clist_concat:NNN { \clist_concat_aux:NNNN \tl_set:Nx } +\cs_new_protected_nopar:Npn \clist_gconcat:NNN { \clist_concat_aux:NNNN \tl_gset:Nx } \cs_generate_variant:Nn \clist_concat:NNN {ccc} \cs_generate_variant:Nn \clist_gconcat:NNN {ccc} \clist_new:N \l_clist_remove_clist -\cs_new:Npn \clist_remove_duplicates_aux:NN #1#2 { +\cs_new_protected:Npn \clist_remove_duplicates_aux:NN #1#2 { \clist_clear:N \l_clist_remove_clist \clist_map_function:NN #2 \clist_remove_duplicates_aux:n #1 #2 \l_clist_remove_clist } -\cs_new:Npn \clist_remove_duplicates_aux:n #1 { +\cs_new_protected:Npn \clist_remove_duplicates_aux:n #1 { \clist_if_in:NnF \l_clist_remove_clist {#1} { \clist_put_right:Nn \l_clist_remove_clist {#1} } } -\cs_new_nopar:Npn \clist_remove_duplicates:N { +\cs_new_protected_nopar:Npn \clist_remove_duplicates:N { \clist_remove_duplicates_aux:NN \clist_set_eq:NN } -\cs_new_nopar:Npn \clist_gremove_duplicates:N { +\cs_new_protected_nopar:Npn \clist_gremove_duplicates:N { \clist_remove_duplicates_aux:NN \clist_gset_eq:NN } -\cs_new_nopar:Npn \clist_remove_element:Nn { +\cs_new_protected_nopar:Npn \clist_remove_element:Nn { \clist_remove_element_aux:NNn \clist_set_eq:NN } -\cs_new_nopar:Npn \clist_gremove_element:Nn { +\cs_new_protected_nopar:Npn \clist_gremove_element:Nn { \clist_remove_element_aux:NNn \clist_gset_eq:NN } -\cs_new:Npn \clist_remove_element_aux:NNn #1#2#3 { +\cs_new_protected:Npn \clist_remove_element_aux:NNn #1#2#3 { \clist_clear:N \l_clist_remove_clist \cs_set:Npn \clist_remove_element_aux:n ##1 { \tl_if_eq:nnF {#3} {##1} { @@ -262,13 +262,13 @@ \cs_new_eq:NN \clist_push:NV \clist_put_left:NV \cs_new_eq:NN \clist_push:No \clist_put_left:No \cs_new_eq:NN \clist_push:cn \clist_put_left:cn -\cs_new_nopar:Npn \clist_pop:NN {\clist_pop_aux:nnNN \tl_set:Nn \tl_set:Nn} +\cs_new_protected_nopar:Npn \clist_pop:NN {\clist_pop_aux:nnNN \tl_set:Nn \tl_set:Nn} \cs_generate_variant:Nn \clist_pop:NN {cN} \cs_new_eq:NN \clist_gpush:Nn \clist_gput_left:Nn \cs_new_eq:NN \clist_gpush:NV \clist_gput_left:NV \cs_new_eq:NN \clist_gpush:No \clist_gput_left:No \cs_generate_variant:Nn \clist_gpush:Nn {cn} -\cs_new_nopar:Npn \clist_gpop:NN {\clist_pop_aux:nnNN \tl_gset:Nn \tl_set:Nn} +\cs_new_protected_nopar:Npn \clist_gpop:NN {\clist_pop_aux:nnNN \tl_gset:Nn \tl_set:Nn} \cs_generate_variant:Nn \clist_gpop:NN {cN} \cs_new_eq:NN \clist_top:NN \clist_get:NN \cs_new_eq:NN \clist_top:cN \clist_get:cN diff --git a/Master/texmf-dist/tex/latex/expl3/l3doc.cls b/Master/texmf-dist/tex/latex/expl3/l3doc.cls index f2d6d9a6919..0fff4893136 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 1762 2010-01-09 10:05:37Z joseph $ +\GetIdInfo$Id: l3doc.dtx 1786 2010-02-09 12:52:45Z joseph $ {L3 Experimental documentation class} \ProvidesExplClass {\filename}{\filedate}{\fileversion}{\filedescription} @@ -613,7 +613,6 @@ } \seq_new:N \g_doc_functions_seq \seq_new:N \g_doc_macros_seq -\iow_new:N \g_write_func_stream \iow_open:Nn \g_write_func_stream { \jobname.cmds } \cs_new_nopar:Npn \doc_show_functions_defined: { \bool_if:nT { \g_doc_implementation_bool && \g_doc_checkfunc_bool } { @@ -689,7 +688,8 @@ \g@addto@macro \PrintIndex { \AtEndDocument{ \typeout{^^J ========================================^^J Generate~the~index~by~executing^^J - \msg_four_spaces: makeindex~-s~l3doc.ist~-o~\jobname.ind~\jobname.idx^^J + \c_space_tl \c_space_tl \c_space_tl \c_space_tl + makeindex~-s~l3doc.ist~-o~\jobname.ind~\jobname.idx^^J ========================================^^J }} } @@ -702,7 +702,8 @@ \g@addto@macro \PrintChanges { \AtEndDocument{ \typeout{^^J ========================================^^J Generate~the~change~list~by~executing^^J - \msg_four_spaces: makeindex~-s~gglo.ist~~-o~\jobname.gls~\jobname.glo^^J + \c_space_tl \c_space_tl \c_space_tl \c_space_tl + makeindex~-s~gglo.ist~~-o~\jobname.gls~\jobname.glo^^J ========================================^^J }} } diff --git a/Master/texmf-dist/tex/latex/expl3/l3expan.sty b/Master/texmf-dist/tex/latex/expl3/l3expan.sty index 6ee4c4d805f..cbe31dd98b5 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 1673 2009-11-02 05:40:42Z will $ +\GetIdInfo$Id: l3expan.dtx 1873 2010-03-24 08:32:54Z joseph $ {L3 Experimental Argument Expansion module} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -79,19 +79,10 @@ {#1}{#2} } \cs_new_nopar:Npn \exp_stop_f: {~} -%%\cs_new_eq:NN \exp_arg:x \expanded % Move eventually. -%%\cs_if_free:NTF\exp_arg:x{ - \cs_new:Npn \::x #1 \::: #2#3 { + \cs_new_protected:Npn \::x #1 \::: #2#3 { \cs_set_nopar:Npx \l_exp_tl {{#3}} \exp_after:wN \exp_arg_next:nnn \l_exp_tl {#1}{#2} } -%%} -%%{ -%% \cs_new:Npn\::x#1\:::#2#3{ -%% \exp_after:wN\exp_arg_next:nnn -%% \exp_after:wN{\exp_arg:x{#3}}{#1}{#2} -%% } -%%} \cs_new:Npn \::V#1\:::#2#3{ \exp_after:wN\exp_arg_next:nnn \exp_after:wN{ @@ -146,54 +137,51 @@ \cs_set_nopar:Npn \exp_args:Nf {\::f\:::} \cs_set_nopar:Npn \exp_args:Nv {\::v\:::} \cs_set_nopar:Npn \exp_args:NV {\::V\:::} -\cs_set_nopar:Npn \exp_args:Nx {\::x\:::} +\cs_set_protected_nopar:Npn \exp_args:Nx {\::x\:::} \cs_set_nopar:Npn \exp_args:NNf {\::N\::f\:::} \cs_set_nopar:Npn \exp_args:NNv {\::N\::v\:::} \cs_set_nopar:Npn \exp_args:NNV {\::N\::V\:::} -\cs_set_nopar:Npn \exp_args:NNx {\::N\::x\:::} +\cs_set_protected_nopar:Npn \exp_args:NNx {\::N\::x\:::} -\cs_set_nopar:Npn \exp_args:Ncx {\::c\::x\:::} +\cs_set_protected_nopar:Npn \exp_args:Ncx {\::c\::x\:::} \cs_set_nopar:Npn \exp_args:Nfo {\::f\::o\:::} \cs_set_nopar:Npn \exp_args:Nff {\::f\::f\:::} \cs_set_nopar:Npn \exp_args:Ncf {\::c\::f\:::} \cs_set_nopar:Npn \exp_args:Nnf {\::n\::f\:::} \cs_set_nopar:Npn \exp_args:Nno {\::n\::o\:::} \cs_set_nopar:Npn \exp_args:NnV {\::n\::V\:::} -\cs_set_nopar:Npn \exp_args:Nnx {\::n\::x\:::} +\cs_set_protected_nopar:Npn \exp_args:Nnx {\::n\::x\:::} \cs_set_nopar:Npn \exp_args:Noc {\::o\::c\:::} \cs_set_nopar:Npn \exp_args:Noo {\::o\::o\:::} -\cs_set_nopar:Npn \exp_args:Nox {\::o\::x\:::} +\cs_set_protected_nopar:Npn \exp_args:Nox {\::o\::x\:::} \cs_set_nopar:Npn \exp_args:NVV {\::V\::V\:::} -\cs_set_nopar:Npn \exp_args:Nxo {\::x\::o\:::} -\cs_set_nopar:Npn \exp_args:Nxx {\::x\::x\:::} +\cs_set_protected_nopar:Npn \exp_args:Nxo {\::x\::o\:::} +\cs_set_protected_nopar:Npn \exp_args:Nxx {\::x\::x\:::} \cs_set_nopar:Npn \exp_args:NNNV {\::N\::N\::V\:::} \cs_set_nopar:Npn \exp_args:NNno {\::N\::n\::o\:::} -\cs_set_nopar:Npn \exp_args:NNnx {\::N\::n\::x\:::} +\cs_set_protected_nopar:Npn \exp_args:NNnx {\::N\::n\::x\:::} \cs_set_nopar:Npn \exp_args:NNoo {\::N\::o\::o\:::} -\cs_set_nopar:Npn \exp_args:NNox {\::N\::o\::x\:::} +\cs_set_protected_nopar:Npn \exp_args:NNox {\::N\::o\::x\:::} \cs_set_nopar:Npn \exp_args:Nnnc {\::n\::n\::c\:::} \cs_set_nopar:Npn \exp_args:Nnno {\::n\::n\::o\:::} -\cs_set_nopar:Npn \exp_args:Nnnx {\::n\::n\::x\:::} -\cs_set_nopar:Npn \exp_args:Nnox {\::n\::o\::x\:::} +\cs_set_protected_nopar:Npn \exp_args:Nnnx {\::n\::n\::x\:::} +\cs_set_protected_nopar:Npn \exp_args:Nnox {\::n\::o\::x\:::} \cs_set_nopar:Npn \exp_args:NcNc {\::c\::N\::c\:::} \cs_set_nopar:Npn \exp_args:NcNo {\::c\::N\::o\:::} \cs_set_nopar:Npn \exp_args:Ncco {\::c\::c\::o\:::} \cs_set_nopar:Npn \exp_args:Ncco {\::c\::c\::o\:::} -\cs_set_nopar:Npn \exp_args:Nccx {\::c\::c\::x\:::} -\cs_set_nopar:Npn \exp_args:Ncnx {\::c\::n\::x\:::} +\cs_set_protected_nopar:Npn \exp_args:Nccx {\::c\::c\::x\:::} +\cs_set_protected_nopar:Npn \exp_args:Ncnx {\::c\::n\::x\:::} -\cs_set_nopar:Npn \exp_args:Noox {\::o\::o\::x\:::} +\cs_set_protected_nopar:Npn \exp_args:Noox {\::o\::o\::x\:::} \cs_set_nopar:Npn \exp_args:Nooo {\::o\::o\::o\:::} \cs_new:Npn\exp_not:o#1{\exp_not:n\exp_after:wN{#1}} -\cs_new:Npn\exp_not:d#1{ - \exp_not:n\exp_after:wN\exp_after:wN\exp_after:wN{#1} -} \cs_new:Npn\exp_not:f#1{ \exp_not:n\exp_after:wN{\tex_romannumeral:D -`0 #1} } @@ -204,7 +192,7 @@ \exp_not:n\exp_after:wN{\tex_romannumeral:D -`0 \exp_eval_register:N #1} } \cs_new:Npn\exp_not:c#1{\exp_after:wN\exp_not:N\cs:w#1\cs_end:} -\cs_new:Npn \cs_generate_variant:Nn #1 { +\cs_new_protected:Npn \cs_generate_variant:Nn #1 { \chk_if_exist_cs:N #1 \cs_split_function:NN #1 \cs_generate_variant_aux:nnNn } @@ -219,7 +207,8 @@ #1:#3\use:c {use_none:\cs_generate_variant_aux:N #3 ?}#2 } { - \cs_new_nopar:cpx { + \_cs_generate_variant_aux:ccpx { #1 : #2 } + { #1:#3 \use:c{use_none:\cs_generate_variant_aux:N #3 ?}#2 } { @@ -240,7 +229,37 @@ \cs_set:Npn \cs_generate_variant_aux:N #1{ \if:w ?#1 \exp_after:wN\use_none:nn \fi: n \cs_generate_variant_aux:N } -\cs_new:Npn \cs_generate_internal_variant:n #1 { +\group_begin: + \tex_lccode:D `\Z = `\d \scan_stop: + \tex_lccode:D `\? =`\\ \scan_stop: + \tex_catcode:D `\P = 12 \scan_stop: + \tex_catcode:D `\R = 12 \scan_stop: + \tex_catcode:D `\O = 12 \scan_stop: + \tex_catcode:D `\T = 12 \scan_stop: + \tex_catcode:D `\E = 12 \scan_stop: + \tex_catcode:D `\C = 12 \scan_stop: + \tex_catcode:D `\Z = 12 \scan_stop: +\tex_lowercase:D { + \group_end: + \cs_new_nopar:Npn \_cs_generate_variant_aux:Ncpx #1 + { + \exp_after:wN \_cs_generate_variant_aux:w + \tex_meaning:D #1 ? PROTECTEZ \q_nil + } + \cs_new_nopar:Npn \_cs_generate_variant_aux:ccpx + { \exp_args:Nc \_cs_generate_variant_aux:Ncpx} + \cs_new:Npn \_cs_generate_variant_aux:w + #1 ? PROTECTEZ #2 \q_nil + { + \exp_after:wN \tex_ifx:D \exp_after:wN + \q_nil \etex_detokenize:D {#1} \q_nil + \exp_after:wN \cs_new_protected_nopar:cpx + \tex_else:D + \exp_after:wN \cs_new_nopar:cpx + \tex_fi:D + } +} +\cs_new_protected:Npn \cs_generate_internal_variant:n #1 { \cs_if_free:cT { exp_args:N #1 }{ \cs_new:cpx { exp_args:N #1 } { \cs_generate_internal_variant_aux:n #1 : } diff --git a/Master/texmf-dist/tex/latex/expl3/l3file.sty b/Master/texmf-dist/tex/latex/expl3/l3file.sty index 5a1df4c8349..b120352243b 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3file.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3file.sty @@ -15,7 +15,7 @@ %% Do not distribute a modified version of this file. %% %% -%% File: l3file.dtx Copyright (C) 2009 LaTeX3 project +%% File: l3file.dtx Copyright (C) 2009-2010 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 @@ -49,112 +49,87 @@ %% ----------------------------------------------------------------------- %% \RequirePackage{l3names} -\GetIdInfo$Id: l3file.dtx 1676 2009-11-02 08:18:16Z will $ +\GetIdInfo$Id: l3file.dtx 1853 2010-03-21 09:11:08Z joseph $ {L3 Experimental file loading} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} \package_check_loaded_expl: -\clist_new:N \g_file_record_clist -\clist_new:N \g_file_record_full_clist -\clist_new:N \l_file_search_path_clist -\ior_new:N \l_file_test_read_stream -\bool_new:N \l_file_tmp_bool -\tl_new:N \l_file_tmp_tl -\prg_new_conditional:Nnn \file_if_exist:n {p,TF,T,F} { - \ior_open:Nn \l_file_test_read_stream {#1} - \ior_if_eof:NTF \l_file_test_read_stream { - \file_if_exist_path:n {#1} - }{ - \ior_close:N \l_file_test_read_stream - \prg_return_true: - } -} -\cs_new_nopar:Npn \file_if_exist_path:n #1 { - \bool_set_false:N \l_file_tmp_bool - \cs_set_nopar:Npn \file_if_exist_aux:n ##1 { - \ior_open:Nn \l_file_test_read_stream { #1 ##1 } - \ior_if_eof:NF \l_file_test_read_stream { - \bool_set_true:N \l_file_tmp_bool - \clist_map_break: +\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_record_seq +\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_if_exist:NT \input@path { - \cs_set_eq:NN \l_file_search_path_clist \input@path - } - \clist_map_function:NN \l_file_search_path_clist \file_if_exist_aux:n - \ior_close:N \l_file_test_read_stream - \bool_if:NTF \l_file_tmp_bool { - \prg_return_true: - }{ - \prg_return_false: - } -} -\cs_new_nopar:Npn \file_if_exist_aux:n #1 { } -\cs_new_nopar:Npn \file_add_path:nN #1#2 { - \tl_clear:N #2 - \ior_open:Nn \l_file_test_read_stream {#1} - \ior_if_eof:NTF \l_file_test_read_stream { - \file_add_path_search:nN {#1} #2 - }{ - \tl_set:Nn #2 {#1} - } - \ior_close:N \l_file_test_read_stream } -\cs_new_nopar:Npn \file_add_path_search:nN #1#2 { - \cs_set_nopar:Npn \file_add_path_aux:n ##1 { - \ior_open:Nn \l_file_test_read_stream { ##1 #1 } - \ior_if_eof:NF \l_file_test_read_stream { - \tl_set:Nn #2 { ##1 #1 } - \clist_map_break: +\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} } } - } - \cs_if_exist:NT \input@path { - \cs_set_eq:NN \l_file_search_path_clist \input@path - } - \clist_map_function:NN \l_file_search_path_clist \file_add_path_aux:n -} -\cs_new_nopar:Npn \file_add_path_aux:n #1 { } -\cs_new:Npn \file_input:n #1 { - \file_add_path:nN {#1} \l_file_tmp_tl - \tl_if_empty:NF \l_file_tmp_tl { - \file_input_no_check:n \l_file_tmp_tl - } -} -\cs_new:Npn \file_input_no_record:n #1 { - \file_add_path:nN {#1} \l_file_tmp_tl - \tl_if_empty:NF \l_file_tmp_tl { - \file_input_no_check_no_record:n \l_file_tmp_tl - } -} -\cs_new_nopar:Npn \file_input_no_check:n #1 { - \clist_gput_right:Nx \g_file_record_clist {#1} - \wlog{ADDING: #1} - \@addtofilelist {#1} - \clist_gput_right:Nx \g_file_record_full_clist {#1} - \tex_input:D #1 ~ -} -\cs_new_nopar:Npn \file_input_no_check_no_record:n #1 { - \clist_gput_right:Nx \g_file_record_full_clist {#1} - \tex_input:D #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_new_nopar:Npn \file_list: { - \file_list:N \g_file_record_clist +\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_new_nopar:Npn \file_list_full: { - \file_list:N \g_file_record_full_clist +\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_nopar:Npn \file_list:N #1 { - \clist_remove_duplicates:N #1 - \iow_log:x { *~File~List~* } - \clist_map_function:NN #1 \file_list_aux:n - \iow_log:x { ************* } +\cs_new_protected_nopar:Npn \file_path_remove:n #1 { + \seq_remove_element:Nn \l_file_search_path_seq {#1} } -\cs_new_nopar:Npn \file_list_aux:n #1 { - \iow_log:x { #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_put_right:NV \g_file_record_clist \@filelist - \clist_put_right:NV \g_file_record_full_clist \@filelist + \clist_map_inline:Nn \@filelist + { \seq_put_right:Nn \g_file_record_seq {#1} } } %% %% diff --git a/Master/texmf-dist/tex/latex/expl3/l3int.sty b/Master/texmf-dist/tex/latex/expl3/l3int.sty index 533f2d80289..0e9c2df8859 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 1621 2009-10-25 06:36:19Z will $ +\GetIdInfo$Id: l3int.dtx 1867 2010-03-23 13:03:12Z will $ {L3 Experimental Integer module} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -56,50 +56,58 @@ \cs_new_eq:NN \int_to_roman:w \tex_romannumeral:D \cs_new_eq:NN \int_to_number:w \tex_number:D \cs_new_eq:NN \int_advance:w \tex_advance:D -\cs_new_nopar:Npn \int_new:N #1 { +\cs_new_protected_nopar:Npn \int_new:N #1 { \chk_if_free_cs:N #1 \newcount #1 } +\cs_new_protected_nopar:Npn \int_new_local:N #1 { + \chk_if_free_cs:N #1 + \int_compare:nNnTF + \tex_currentgrouplevel:D = 0 + \newcount \loccount + #1 +} \cs_generate_variant:Nn \int_new:N {c} -\cs_new_nopar:Npn \int_set:Nn #1#2{#1 \intexpr_eval:w #2\intexpr_eval_end: +\cs_generate_variant:Nn \int_new_local:N {c} +\cs_new_protected_nopar:Npn \int_set:Nn #1#2{#1 \intexpr_eval:w #2\intexpr_eval_end: } -\cs_new_nopar:Npn \int_gset:Nn { +\cs_new_protected_nopar:Npn \int_gset:Nn { \pref_global:D \int_set:Nn } \cs_generate_variant:Nn\int_set:Nn {cn} \cs_generate_variant:Nn\int_gset:Nn {cn} -\cs_new_nopar:Npn \int_incr:N #1{\int_advance:w#1\c_one +\cs_new_protected_nopar:Npn \int_incr:N #1{\int_advance:w#1\c_one } -\cs_new_nopar:Npn \int_decr:N #1{\int_advance:w#1\c_minus_one +\cs_new_protected_nopar:Npn \int_decr:N #1{\int_advance:w#1\c_minus_one } -\cs_new_nopar:Npn \int_gincr:N { +\cs_new_protected_nopar:Npn \int_gincr:N { \pref_global:D \int_incr:N} -\cs_new_nopar:Npn \int_gdecr:N { +\cs_new_protected_nopar:Npn \int_gdecr:N { \pref_global:D \int_decr:N} -\cs_set_nopar:Npn \int_incr:N #1{\int_add:Nn#1\c_one} -\cs_set_nopar:Npn \int_decr:N #1{\int_add:Nn#1\c_minus_one} -\cs_set_nopar:Npn \int_gincr:N #1{\int_gadd:Nn#1\c_one} -\cs_set_nopar:Npn \int_gdecr:N #1{\int_gadd:Nn#1\c_minus_one} +\cs_set_protected_nopar:Npn \int_incr:N #1{\int_add:Nn#1\c_one} +\cs_set_protected_nopar:Npn \int_decr:N #1{\int_add:Nn#1\c_minus_one} +\cs_set_protected_nopar:Npn \int_gincr:N #1{\int_gadd:Nn#1\c_one} +\cs_set_protected_nopar:Npn \int_gdecr:N #1{\int_gadd:Nn#1\c_minus_one} \cs_generate_variant:Nn \int_incr:N {c} \cs_generate_variant:Nn \int_decr:N {c} \cs_generate_variant:Nn \int_gincr:N {c} \cs_generate_variant:Nn \int_gdecr:N {c} -\cs_new_nopar:Npn \int_zero:N #1 {#1=\c_zero} +\cs_new_protected_nopar:Npn \int_zero:N #1 {#1=\c_zero} \cs_generate_variant:Nn \int_zero:N {c} -\cs_new_nopar:Npn \int_gzero:N #1 {\pref_global:D #1=\c_zero} +\cs_new_protected_nopar:Npn \int_gzero:N #1 {\pref_global:D #1=\c_zero} \cs_generate_variant:Nn \int_gzero:N {c} -\cs_new_nopar:Npn \int_add:Nn #1#2{ +\cs_new_protected_nopar:Npn \int_add:Nn #1#2{ \int_advance:w #1 by \intexpr_eval:w #2\intexpr_eval_end: } \cs_new_nopar:Npn \int_sub:Nn #1#2{ \int_advance:w #1-\intexpr_eval:w #2\intexpr_eval_end: } -\cs_new_nopar:Npn \int_gadd:Nn { +\cs_new_protected_nopar:Npn \int_gadd:Nn { \pref_global:D \int_add:Nn } -\cs_new_nopar:Npn \int_gsub:Nn { +\cs_new_protected_nopar:Npn \int_gsub:Nn { \pref_global:D \int_sub:Nn } \cs_generate_variant:Nn \int_add:Nn {cn} @@ -111,7 +119,7 @@ \cs_new_eq:NN \int_show:N \tex_showthe:D \cs_new_nopar:Npn \int_show:c {\exp_args:Nc \int_show:N } \cs_new_nopar:Npn \int_to_arabic:n #1{ \intexpr_eval:n{#1}} -\cs_new_nopar:Npn \int_roman_lcuc_mapping:Nnn #1#2#3{ +\cs_new_protected_nopar:Npn \int_roman_lcuc_mapping:Nnn #1#2#3{ \cs_set_nopar:cpn {int_to_lc_roman_#1:}{#2} \cs_set_nopar:cpn {int_to_uc_roman_#1:}{#3} } @@ -218,16 +226,23 @@ \cs_set_nopar:Npn \int_pre_eval_two_args:Nnn #1#2#3{ \exp_args:Nff#1{\intexpr_eval:n{#2}}{\intexpr_eval:n{#3}} } -\cs_new_nopar:Npn \int_const:Nn #1#2 { - \intexpr_compare:nNnTF {#2} > \c_minus_one { - \intexpr_compare:nNnTF {#2} > \c_max_register_num { - \int_new:N #1 \int_set:Nn #1{#2} - } { - \chk_if_free_cs:N #1 \tex_mathchardef:D #1 = \intexpr_eval:n{#2} +\cs_new_protected_nopar:Npn \int_const:Nn #1#2 { + \intexpr_compare:nTF { #2 > \c_minus_one } + { + \intexpr_compare:nTF { #2 > \c_max_register_int } + { + \int_new:N #1 + \int_gset:Nn #1 {#2} + } + { + \chk_if_free_cs:N #1 + \tex_global:D \tex_mathchardef:D #1 = \intexpr_eval:n {#2} + } + } + { + \int_new:N #1 + \int_gset:Nn #1 {#2} } - } { - \int_new:N #1 \int_set:Nn #1{#2} - } } %% \tex_countdef:D \c_minus_one = 10 \scan_stop: %% \c_minus_one = -1 \scan_stop: %% in l3basics diff --git a/Master/texmf-dist/tex/latex/expl3/l3intexpr.sty b/Master/texmf-dist/tex/latex/expl3/l3intexpr.sty index 311fdc6dddc..ab4271cc46e 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3intexpr.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3intexpr.sty @@ -53,6 +53,8 @@ \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} \package_check_loaded_expl: +\cs_new_eq:NN \if_num:w \tex_ifnum:D +\cs_new_eq:NN \if_case:w \tex_ifcase:D \cs_set_eq:NN \intexpr_value:w \tex_number:D \cs_set_eq:NN \intexpr_eval:w \etex_numexpr:D \cs_set_protected:Npn \intexpr_eval_end: {\tex_relax:D} @@ -199,6 +201,7 @@ \cs_set:Npn \intexpr_do_until:nNnn #1#2#3#4{ #4 \intexpr_compare:nNnF {#1}#2{#3}{\intexpr_do_until:nNnn {#1}#2{#3}{#4}} } +\tex_mathchardef:D \c_max_register_int = 32767 \scan_stop: %% %% %% End of file `l3intexpr.sty'. diff --git a/Master/texmf-dist/tex/latex/expl3/l3io.sty b/Master/texmf-dist/tex/latex/expl3/l3io.sty index 30212f76420..1bd8c0d627f 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3io.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3io.sty @@ -15,7 +15,7 @@ %% Do not distribute a modified version of this file. %% %% -%% File: l3io.dtx Copyright (C) 1990-2009 LaTeX3 project +%% File: l3io.dtx Copyright (C) 1990-2010 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 @@ -48,72 +48,241 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3io.dtx 1668 2009-11-01 22:13:36Z will $ +\GetIdInfo$Id: l3io.dtx 1853 2010-03-21 09:11:08Z joseph $ {L3 Experimental i/o module} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} \package_check_loaded_expl: -\cs_set_eq:NN \iow_new:N \newwrite -\cs_generate_variant:Nn \iow_new:N {c} -\cs_new_nopar:Npn \iow_open:Nn #1#2 { - \iow_close:N #1 - \tex_immediate:D \tex_openout:D #1#2 \scan_stop: -} -\cs_generate_variant:Nn \iow_open:Nn {c} -\cs_new_nopar:Npn \iow_close:N { \tex_immediate:D \tex_closeout:D } \cs_new_eq:NN \c_iow_term_stream \c_sixteen \cs_new_eq:NN \c_ior_term_stream \c_sixteen -\cs_new_eq:NN \c_iow_log_stream \c_minus_one -\cs_new_eq:NN \c_ior_log_stream \c_minus_one -\cs_new_nopar:Npn \iow_now:Nx { \tex_immediate:D \iow_shipout_x:Nn } -\cs_new_nopar:Npn \iow_now:Nn #1#2 { +\cs_new_eq:NN \c_iow_log_stream \c_minus_one +\cs_new_eq:NN \c_ior_log_stream \c_minus_one +\tl_const:Nn \c_iow_streams_tl + { + \c_zero + \c_one + \c_two + \c_three + \c_four + \c_five + \c_six + \c_seven + \c_eight + \c_nine + \c_ten + \c_eleven + \c_twelve + \c_thirteen + \c_fourteen + \c_fifteen + } +\cs_new_eq:NN \c_ior_streams_tl \c_iow_streams_tl +\prop_new:N \g_iow_streams_prop +\prop_new:N \g_ior_streams_prop +\prop_put:Nnn \g_iow_streams_prop { 0 } { LaTeX2e~reserved } +\prop_put:Nnn \g_iow_streams_prop { 1 } { LaTeX2e~reserved } +\prop_put:Nnn \g_iow_streams_prop { 2 } { LaTeX2e~reserved } +\prop_put:Nnn \g_ior_streams_prop { 0 } { LaTeX2e~reserved } +\int_new:N \l_iow_stream_int +\cs_new_eq:NN \l_ior_stream_int \l_iow_stream_int +\cs_set_eq:NN \iow_raw_new:N \newwrite +\cs_set_eq:NN \ior_raw_new:N \newread +\cs_generate_variant:Nn \iow_raw_new:N { c } +\cs_generate_variant:Nn \ior_raw_new:N { c } +\cs_new_protected_nopar:Npn \iow_new:N #1 { + \cs_gnew_eq:NN #1 \c_iow_log_stream +} +\cs_generate_variant:Nn \iow_new:N { c } +\cs_new_protected_nopar:Npn \ior_new:N #1 { + \cs_gnew_eq:NN #1 \c_ior_log_stream +} +\cs_generate_variant:Nn \ior_new:N { c } +\cs_new_protected_nopar:Npn \iow_open:Nn #1#2 { + \iow_close:N #1 + \int_set:Nn \l_iow_stream_int { \c_sixteen } + \tl_map_function:NN \c_iow_streams_tl \iow_alloc_write:n + \intexpr_compare:nTF { \l_iow_stream_int = \c_sixteen } + { \msg_kernel_error:nn { iow } { streams-exhausted } } + { + \iow_stream_alloc:N #1 + \prop_gput:NVn \g_iow_streams_prop \l_iow_stream_int {#2} + \tex_immediate:D \tex_openout:D #1#2 \scan_stop: + } +} +\cs_generate_variant:Nn \iow_open:Nn { c } +\cs_new_protected_nopar:Npn \ior_open:Nn #1#2 { + \ior_close:N #1 + \int_set:Nn \l_ior_stream_int { \c_sixteen } + \tl_map_function:NN \c_ior_streams_tl \ior_alloc_read:n + \intexpr_compare:nTF { \l_ior_stream_int = \c_sixteen } + { \msg_kernel_error:nn { ior } { streams-exhausted } } + { + \ior_stream_alloc:N #1 + \prop_gput:NVn \g_ior_streams_prop \l_ior_stream_int {#2} + \tex_openin:D #1#2 \scan_stop: + } +} +\cs_generate_variant:Nn \ior_open:Nn { c } +\cs_new_protected_nopar:Npn \iow_alloc_write:n #1 { + \prop_if_in:NnF \g_iow_streams_prop {#1} + { + \int_set:Nn \l_iow_stream_int {#1} + \tl_map_break: + } +} +\cs_new_protected_nopar:Npn \ior_alloc_read:n #1 { + \prop_if_in:NnF \g_iow_streams_prop {#1} + { + \int_set:Nn \l_ior_stream_int {#1} + \tl_map_break: + } +} +\cs_new_protected_nopar:Npn \iow_stream_alloc:N #1 { + \cs_if_exist:cTF { g_iow_ \int_use:N \l_iow_stream_int _stream } + { \cs_gset_eq:Nc #1 { g_iow_ \int_use:N \l_iow_stream_int _stream } } + { + \iow_stream_alloc_aux: + \intexpr_compare:nT { \l_iow_stream_int = \c_sixteen } + { + \iow_raw_new:N \g_iow_tmp_stream + \int_set:Nn \l_iow_stream_int { \g_iow_tmp_stream } + \cs_gset_eq:cN + { g_iow_ \int_use:N \l_iow_stream_int _stream } + \g_iow_tmp_stream + } + \cs_gset_eq:Nc #1 { g_iow_ \int_use:N \l_iow_stream_int _stream } + } +} +\cs_new_protected_nopar:Npn \iow_stream_alloc_aux: { + \int_incr:N \l_iow_stream_int + \intexpr_compare:nT + { \l_iow_stream_int < \c_sixteen } + { + \cs_if_exist:cTF { g_iow_ \int_use:N \l_iow_stream_int _stream } + { + \prop_if_in:NVT \g_iow_streams_prop \l_iow_stream_int + { \iow_stream_alloc_aux: } + } + { \iow_stream_alloc_aux: } + } +} +\cs_new_protected_nopar:Npn \ior_stream_alloc:N #1 { + \cs_if_exist:cTF { g_ior_ \int_use:N \l_ior_stream_int _stream } + { \cs_gset_eq:Nc #1 { g_ior_ \int_use:N \l_ior_stream_int _stream } } + { + \ior_stream_alloc_aux: + \intexpr_compare:nT { \l_ior_stream_int = \c_sixteen } + { + \ior_raw_new:N \g_ior_tmp_stream + \int_set:Nn \l_ior_stream_int { \g_ior_tmp_stream } + \cs_gset_eq:cN + { g_ior_ \int_use:N \l_iow_stream_int _stream } + \g_ior_tmp_stream + } + \cs_gset_eq:Nc #1 { g_ior_ \int_use:N \l_ior_stream_int _stream } + } +} +\cs_new_protected_nopar:Npn \ior_stream_alloc_aux: { + \int_incr:N \l_ior_stream_int + \intexpr_compare:nT + { \l_ior_stream_int < \c_sixteen } + { + \cs_if_exist:cTF { g_ior_ \int_use:N \l_ior_stream_int _stream } + { + \prop_if_in:NVT \g_ior_streams_prop \l_ior_stream_int + { \ior_stream_alloc_aux: } + } + { \ior_stream_alloc_aux: } + } +} +\cs_new_protected_nopar:Npn \iow_close:N #1 { + \cs_if_exist:NT #1 + { + \intexpr_compare:nF { #1 = \c_minus_one } + { + \tex_immediate:D \tex_closeout:D #1 + \prop_gdel:NV \g_iow_streams_prop #1 + \cs_gundefine:N #1 + } + } +} +\cs_generate_variant:Nn \iow_close:N { c } +\cs_new_protected_nopar:Npn \ior_close:N #1 { + \cs_if_exist:NT #1 + { + \intexpr_compare:nF { #1 = \c_minus_one } + { + \tex_closeout:D #1 + \prop_gdel:NV \g_ior_streams_prop #1 + \cs_gundefine:N #1 + } + } +} +\cs_generate_variant:Nn \ior_close:N { c } +\cs_new_protected_nopar:Npn \iow_open_streams: { + \prop_display:N \g_iow_streams_prop +} +\cs_new_protected_nopar:Npn \ior_open_streams: { + \prop_display:N \g_ior_streams_prop +} +\msg_kernel_new:nnnn { iow } { streams-exhausted } + {Output streams exhausted} + {% + TeX can only open up to 16 output streams at one time.\\% + All 16 are currently in use, and something wanted to open + another one.% + } +\msg_kernel_new:nnnn { ior } { streams-exhausted } + {Input streams exhausted} + {% + TeX can only open up to 16 input streams at one time.\\% + All 16 are currently in use, and something wanted to open + another one.% + } +\cs_new_protected_nopar:Npn \iow_now:Nx { \tex_immediate:D \iow_shipout_x:Nn } +\cs_new_protected_nopar:Npn \iow_now:Nn #1#2 { \iow_now:Nx #1 { \exp_not:n {#2} } } -\cs_set_nopar:Npn \iow_log:x { \iow_now:Nx \c_iow_log_stream } -\cs_new_nopar:Npn \iow_log:n { \iow_now:Nn \c_iow_log_stream } -\cs_set_nopar:Npn \iow_term:x { \iow_now:Nx \c_iow_term_stream } -\cs_new_nopar:Npn \iow_term:n { \iow_now:Nn \c_iow_term_stream } -\cs_new_nopar:Npn \iow_now_when_avail:Nn #1 { - \cs_if_free:NTF #1 {\use_none:n} {\iow_now:Nn #1} +\cs_set_protected_nopar:Npn \iow_log:x { \iow_now:Nx \c_iow_log_stream } +\cs_new_protected_nopar:Npn \iow_log:n { \iow_now:Nn \c_iow_log_stream } +\cs_set_protected_nopar:Npn \iow_term:x { \iow_now:Nx \c_iow_term_stream } +\cs_new_protected_nopar:Npn \iow_term:n { \iow_now:Nn \c_iow_term_stream } +\cs_new_protected_nopar:Npn \iow_now_when_avail:Nn #1 { + \cs_if_free:NTF #1 { \use_none:n } { \iow_now:Nn #1 } } -\cs_generate_variant:Nn \iow_now_when_avail:Nn {c} -\cs_new_nopar:Npn \iow_now_buffer_safe_aux:w #1#2#3 { - \group_begin: \tex_newlinechar:D`\ #1#2{#3} \group_end: +\cs_generate_variant:Nn \iow_now_when_avail:Nn { c } +\cs_new_protected_nopar:Npn \iow_now_when_avail:Nx #1 { + \cs_if_free:NTF #1 { \use_none:n } { \iow_now:Nx #1 } } -\cs_new_nopar:Npn \iow_now_buffer_safe:Nx { +\cs_generate_variant:Nn \iow_now_when_avail:Nx { c } +\cs_new_protected_nopar:Npn \iow_now_buffer_safe:Nn { \iow_now_buffer_safe_aux:w \iow_now:Nx } -\cs_new_nopar:Npn \iow_now_buffer_safe:Nn { +\cs_new_protected_nopar:Npn \iow_now_buffer_safe:Nx { \iow_now_buffer_safe_aux:w \iow_now:Nn } +\cs_new_protected_nopar:Npn \iow_now_buffer_safe_aux:w #1#2#3 { + \group_begin: \tex_newlinechar:D`\ #1#2 {#3} \group_end: +} \cs_set_eq:NN \iow_shipout_x:Nn \tex_write:D -\cs_generate_variant:Nn \iow_shipout_x:Nn {Nx} -\cs_new_nopar:Npn \iow_shipout:Nn #1#2{ +\cs_generate_variant:Nn \iow_shipout_x:Nn {Nx } +\cs_new_protected_nopar:Npn \iow_shipout:Nn #1#2 { \iow_shipout_x:Nn #1 { \exp_not:n {#2} } } -\cs_generate_variant:Nn \iow_shipout:Nn {Nx} -\cs_new_nopar:Npn \iow_newline: {^^J} -\cs_new_nopar:Npn \iow_space: {~} +\cs_generate_variant:Nn \iow_shipout:Nn { Nx } +\cs_new_nopar:Npn \iow_newline: { ^^J } \cs_new:Npn \iow_char:N #1 { \cs_to_str:N #1 } -\tl_new:Nx \c_iow_comment_char {\cs_to_str:N\%} -\tl_new:Nx \c_iow_lbrace_char{\cs_to_str:N\{} -\tl_new:Nx \c_iow_rbrace_char{\cs_to_str:N\}} -\cs_set_eq:NN \ior_new:N \newread -\cs_set_eq:NN \ior_close:N \tex_closein:D -\cs_new_nopar:Npn \ior_open:Nn #1#2 { - \ior_close:N #1 \scan_stop: - \tex_openin:D #1#2 \scan_stop: -} \cs_new_eq:NN \if_eof:w \tex_ifeof:D -\prg_new_conditional:Nnn \ior_if_eof:N {p,TF,T,F} { - \tex_ifeof:D #1 \prg_return_true: \else: \prg_return_false: \fi: +\prg_new_conditional:Nnn \ior_if_eof:N { p , TF , T , F } { + \cs_if_exist:NTF #1 + { \tex_ifeof:D #1 \prg_return_true: \else: \prg_return_false: \fi: } + { \prg_return_true: } } -\cs_new_nopar:Npn \ior_to:NN #1#2 { +\cs_new_protected_nopar:Npn \ior_to:NN #1#2 { \tex_read:D #1 to #2 } -\cs_new_nopar:Npn \ior_gto:NN { - \pref_global:D - \ior_to:NN +\cs_new_protected_nopar:Npn \ior_gto:NN { + \pref_global:D \ior_to:NN } %% %% diff --git a/Master/texmf-dist/tex/latex/expl3/l3keys.sty b/Master/texmf-dist/tex/latex/expl3/l3keys.sty index 03090e32afe..d05909724cb 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3keys.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3keys.sty @@ -15,7 +15,7 @@ %% Do not distribute a modified version of this file. %% %% -%% File: l3keys.dtx Copyright (C) 2009 LaTeX3 project +%% File: l3keys.dtx Copyright (C) 2009-2010 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 @@ -48,15 +48,15 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3keys.dtx 1766 2010-01-12 08:59:24Z joseph $ +\GetIdInfo$Id: l3keys.dtx 1863 2010-03-22 20:15:06Z joseph $ {L3 Experimental key-value support} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} \package_check_loaded_expl: -\tl_new:Nn \c_keys_root_tl { keys~>~ } -\tl_new:Nn \c_keys_properties_root_tl { keys_properties } -\tl_new:Nn \c_keys_value_forbidden_tl { forbidden } -\tl_new:Nn \c_keys_value_required_tl { required } +\tl_const:Nn \c_keys_root_tl { keys~>~ } +\tl_const:Nn \c_keys_properties_root_tl { keys_properties } +\tl_const:Nn \c_keys_value_forbidden_tl { forbidden } +\tl_const:Nn \c_keys_value_required_tl { required } \int_new:N \l_keys_choice_int \tl_new:N \l_keys_choice_tl \tl_new:N \l_keys_choice_code_tl @@ -64,11 +64,9 @@ \tl_new:N \l_keys_path_tl \tl_new:N \l_keys_property_tl \tl_new:N \l_keys_module_tl -\seq_new:N \l_keys_nesting_seq -\tl_new:Nn \l_keys_nesting_tl { none } \bool_new:N \l_keys_no_value_bool -\toks_new:N \l_keys_value_toks -\cs_new_nopar:Npn \keys_bool_set:NN #1#2 { +\tl_new:N \l_keys_value_tl +\cs_new_protected_nopar:Npn \keys_bool_set:NN #1#2 { \keys_cmd_set:nx { \l_keys_path_tl / true } { \exp_not:c { bool_ #2 set_true:N } \exp_not:N #1 @@ -84,15 +82,15 @@ } \keys_default_set:n { true } } -\cs_new:Npn \keys_choice_code_store:x #1 { +\cs_new_protected:Npn \keys_choice_code_store:x #1 { \tl_set:cx { \c_keys_root_tl \l_keys_path_tl .choice_code_tl } {#1} } -\cs_new_nopar:Npn \keys_choice_find:n #1 { +\cs_new_protected_nopar:Npn \keys_choice_find:n #1 { \keys_execute_aux:nn { \l_keys_path_tl / #1 } { \keys_execute_aux:nn { \l_keys_path_tl / unknown } { } } } -\cs_new_nopar:Npn \keys_choice_make: { +\cs_new_protected_nopar:Npn \keys_choice_make: { \keys_cmd_set:nn { \l_keys_path_tl } { \keys_choice_find:n {##1} } @@ -101,7 +99,7 @@ { \l_keys_path_tl } {##1} } } -\cs_new:Npn \keys_choices_generate:n #1 { +\cs_new_protected:Npn \keys_choices_generate:n #1 { \keys_choice_make: \int_zero:N \l_keys_choice_int \cs_if_exist:cTF { @@ -116,7 +114,7 @@ } \clist_map_function:nN {#1} \keys_choices_generate_aux:n } -\cs_new_nopar:Npn \keys_choices_generate_aux:n #1 { +\cs_new_protected_nopar:Npn \keys_choices_generate_aux:n #1 { \keys_cmd_set:nx { \l_keys_path_tl / #1 } { \exp_not:n { \tl_set:Nn \l_keys_choice_tl } {#1} \exp_not:n { \int_set:Nn \l_keys_choice_int } @@ -125,46 +123,42 @@ } \int_incr:N \l_keys_choice_int } -\cs_new:Npn \keys_cmd_set:nn #1#2 { +\cs_new_protected:Npn \keys_cmd_set:nn #1#2 { \keys_cmd_set_aux:n {#1} \cs_generate_from_arg_count:cNnn { \c_keys_root_tl #1 .cmd:n } \cs_set:Npn 1 {#2} } -\cs_new:Npn \keys_cmd_set:nx #1#2 { +\cs_new_protected:Npn \keys_cmd_set:nx #1#2 { \keys_cmd_set_aux:n {#1} \cs_generate_from_arg_count:cNnn { \c_keys_root_tl #1 .cmd:n } \cs_set:Npx 1 {#2} } -\cs_new_nopar:Npn \keys_cmd_set_aux:n #1 { +\cs_new_protected_nopar:Npn \keys_cmd_set_aux:n #1 { \keys_property_undefine:n { #1 .default_tl } - \tl_set:cn { \c_keys_root_tl #1 .req_tl } { } + \cs_if_free:cT { \c_keys_root_tl #1 .req_tl } + { \tl_new:c { \c_keys_root_tl #1 .req_tl } } + \tl_clear:c { \c_keys_root_tl #1 .req_tl } } -\cs_new:Npn \keys_default_set:n #1 { +\cs_new_protected:Npn \keys_default_set:n #1 { + \cs_if_free:cT { \c_keys_root_tl \l_keys_path_tl .default_tl } + { \tl_new:c { \c_keys_root_tl \l_keys_path_tl .default_tl } } \tl_set:cn { \c_keys_root_tl \l_keys_path_tl .default_tl } {#1} } \cs_generate_variant:Nn \keys_default_set:n { V } -\cs_new:Npn \keys_define:nn #1#2 { +\cs_new_protected:Npn \keys_define:nn #1#2 { \tl_set:Nn \l_keys_module_tl {#1} - \cs_set_eq:NN \KV_key_no_value_elt:n \keys_define_elt:n - \cs_set_eq:NN \KV_key_value_elt:nn \keys_define_elt:nn - \seq_push:NV \l_keys_nesting_seq \l_keys_nesting_tl - \tl_set:Nn \l_keys_nesting_tl { define } - \KV_parse_no_space_removal_no_sanitize:n {#2} - \seq_pop:NN \l_keys_nesting_seq \l_keys_nesting_tl - \cs_set_eq:Nc \KV_key_no_value_elt:n - { keys_ \l_keys_nesting_tl _elt:n } - \cs_set_eq:Nc \KV_key_value_elt:nn - { keys_ \l_keys_nesting_tl _elt:nn } -} -\cs_new_nopar:Npn \keys_define_elt:n #1 { + \KV_process_no_space_removal_no_sanitize:NNn + \keys_define_elt:n \keys_define_elt:nn {#2} +} +\cs_new_protected_nopar:Npn \keys_define_elt:n #1 { \bool_set_true:N \l_keys_no_value_bool \keys_define_elt_aux:nn {#1} { } } -\cs_new:Npn \keys_define_elt:nn #1#2 { +\cs_new_protected:Npn \keys_define_elt:nn #1#2 { \bool_set_false:N \l_keys_no_value_bool \keys_define_elt_aux:nn {#1} {#2} } -\cs_new:Npn \keys_define_elt_aux:nn #1#2 { +\cs_new_protected:Npn \keys_define_elt_aux:nn #1#2 { \keys_property_find:n {#1} \cs_set_eq:Nc \keys_tmp:w { \c_keys_properties_root_tl \l_keys_property_tl } @@ -175,7 +169,7 @@ { \l_keys_property_tl } { \l_keys_path_tl } } } -\cs_new:Npn \keys_define_key:n #1 { +\cs_new_protected:Npn \keys_define_key:n #1 { \bool_if:NTF \l_keys_no_value_bool { \intexpr_compare:nTF { \exp_args:Nc \cs_get_arg_count_from_signature:N @@ -190,21 +184,21 @@ \keys_tmp:w {#1} } } -\cs_new_nopar:Npn \keys_execute: { +\cs_new_protected_nopar:Npn \keys_execute: { \keys_execute_aux:nn { \l_keys_path_tl } { \keys_execute_unknown: } } -\cs_new_nopar:Npn \keys_execute_unknown: { +\cs_new_protected_nopar:Npn \keys_execute_unknown: { \keys_execute_aux:nn { \l_keys_module_tl / unknown } { \msg_kernel_error:nnxx { keys } { key-unknown } { \l_keys_path_tl } { \l_keys_module_tl } } } -\cs_new_nopar:Npn \keys_execute_aux:nn #1#2 { +\cs_new_protected_nopar:Npn \keys_execute_aux:nn #1#2 { \cs_set_eq:Nc \keys_tmp:w { \c_keys_root_tl #1 .cmd:n } \cs_if_exist:NTF \keys_tmp:w { - \exp_args:NV \keys_tmp:w \l_keys_value_toks + \exp_args:NV \keys_tmp:w \l_keys_value_tl }{ #2 } @@ -221,16 +215,16 @@ \c_keys_root_tl \l_keys_path_tl .req_tl } } -\cs_new_nopar:Npn \keys_meta_make:n #1 { +\cs_new_protected_nopar:Npn \keys_meta_make:n #1 { \exp_last_unbraced:NNo \keys_cmd_set:nn \l_keys_path_tl \exp_after:wN { \exp_after:wN \keys_set:nn \exp_after:wN { \l_keys_module_tl } {#1} } } -\cs_new_nopar:Npn \keys_meta_make:x #1 { +\cs_new_protected_nopar:Npn \keys_meta_make:x #1 { \keys_cmd_set:nx { \l_keys_path_tl } { \exp_not:N \keys_set:nn { \l_keys_module_tl } {#1} } } -\cs_new_nopar:Npn \keys_property_find:n #1 { +\cs_new_protected_nopar:Npn \keys_property_find:n #1 { \tl_set:Nx \l_keys_path_tl { \l_keys_module_tl / } \tl_if_in:nnTF {#1} {.} { \keys_property_find_aux:n {#1} @@ -238,10 +232,10 @@ \msg_kernel_error:nnx { keys } { key-no-property } {#1} } } -\cs_new_nopar:Npn \keys_property_find_aux:n #1 { +\cs_new_protected_nopar:Npn \keys_property_find_aux:n #1 { \keys_property_find_aux:w #1 \q_stop } -\cs_new_nopar:Npn \keys_property_find_aux:w #1 . #2 \q_stop { +\cs_new_protected_nopar:Npn \keys_property_find_aux:w #1 . #2 \q_stop { \tl_if_in:nnTF {#2} { . } { \tl_set:Nx \l_keys_path_tl { \l_keys_path_tl \tl_to_str:n {#1} . @@ -255,35 +249,27 @@ \cs_new_nopar:Npn \keys_property_new:nn #1#2 { \cs_new:cpn { \c_keys_properties_root_tl #1 } {#2} } -\cs_new_nopar:Npn \keys_property_new_arg:nn #1#2 { +\cs_new_protected_nopar:Npn \keys_property_new_arg:nn #1#2 { \cs_new:cpn { \c_keys_properties_root_tl #1 } ##1 {#2} } -\cs_new_nopar:Npn \keys_property_undefine:n #1 { +\cs_new_protected_nopar:Npn \keys_property_undefine:n #1 { \cs_set_eq:cN { \c_keys_root_tl #1 } \c_undefined } -\cs_new:Npn \keys_set:nn #1#2 { +\cs_new_protected:Npn \keys_set:nn #1#2 { \tl_set:Nn \l_keys_module_tl {#1} - \cs_set_eq:NN \KV_key_no_value_elt:n \keys_set_elt:n - \cs_set_eq:NN \KV_key_value_elt:nn \keys_set_elt:nn - \seq_push:NV \l_keys_nesting_seq \l_keys_nesting_tl - \tl_set:Nn \l_keys_nesting_tl { set } - \KV_parse_space_removal_sanitize:n {#2} - \seq_pop:NN \l_keys_nesting_seq \l_keys_nesting_tl - \cs_set_eq:Nc \KV_key_no_value_elt:n - { keys_ \l_keys_nesting_tl _elt:n } - \cs_set_eq:Nc \KV_key_value_elt:nn - { keys_ \l_keys_nesting_tl _elt:nn } + \KV_process_space_removal_sanitize:NNn + \keys_set_elt:n \keys_set_elt:nn {#2} } \cs_generate_variant:Nn \keys_set:nn { nV, nv } -\cs_new_nopar:Npn \keys_set_elt:n #1 { +\cs_new_protected_nopar:Npn \keys_set_elt:n #1 { \bool_set_true:N \l_keys_no_value_bool \keys_set_elt_aux:nn {#1} { } } -\cs_new:Npn \keys_set_elt:nn #1#2 { +\cs_new_protected:Npn \keys_set_elt:nn #1#2 { \bool_set_false:N \l_keys_no_value_bool \keys_set_elt_aux:nn {#1} {#2} } -\cs_new:Npn \keys_set_elt_aux:nn #1#2 { +\cs_new_protected:Npn \keys_set_elt_aux:nn #1#2 { \tl_set:Nx \l_keys_key_tl { \tl_to_str:n {#1} } \tl_set:Nx \l_keys_path_tl { \l_keys_module_tl / \l_keys_key_tl } \keys_value_or_default:n {#2} @@ -298,13 +284,13 @@ \keys_set_elt_aux: } } -\cs_new_nopar:Npn \keys_set_elt_aux: { +\cs_new_protected_nopar:Npn \keys_set_elt_aux: { \keys_if_value_requirement:nTF { forbidden } { \bool_if:NTF \l_keys_no_value_bool { \keys_execute: }{ \msg_kernel_error:nnxx { keys } { value-forbidden } - { \l_keys_path_tl } { \toks_use:N \l_keys_value_toks } + { \l_keys_path_tl } { \tl_use:N \l_keys_value_tl } } }{ \keys_execute: @@ -314,21 +300,21 @@ \cs_show:c { \c_keys_root_tl #1 / \tl_to_str:n {#2} .cmd:n } } \cs_new:Npn \keys_tmp:w {} -\cs_new:Npn \keys_value_or_default:n #1 { - \toks_set:Nn \l_keys_value_toks {#1} +\cs_new_protected:Npn \keys_value_or_default:n #1 { + \tl_set:Nn \l_keys_value_tl {#1} \bool_if:NT \l_keys_no_value_bool { \cs_if_exist:cT { \c_keys_root_tl \l_keys_path_tl .default_tl } { - \toks_set:Nv \l_keys_value_toks { + \tl_set:Nv \l_keys_value_tl { \c_keys_root_tl \l_keys_path_tl .default_tl } } } } -\cs_new_nopar:Npn \keys_value_requirement:n #1 { +\cs_new_protected_nopar:Npn \keys_value_requirement:n #1 { \tl_set_eq:cc { \c_keys_root_tl \l_keys_path_tl .req_tl } { c_keys_value_ #1 _tl } } -\cs_new_nopar:Npn \keys_variable_set:NnNN #1#2#3#4 { +\cs_new_protected_nopar:Npn \keys_variable_set:NnNN #1#2#3#4 { \cs_if_exist:NF #1 { \use:c { #2 _new:N } #1 } @@ -440,67 +426,58 @@ \keys_value_requirement:n { required } } \msg_kernel_new:nnnn { keys } { choice-unknown } - {% - Choice `#2' unknown for key `#1':\\% - the key is being ignored.% - } - {% - The key `#1' takes a limited number of values.\\% - The input you gave, `#2', was not on the list accepted.\\% - Perhaps this is a typing error?% + { Choice~'#2'~unknown~for~key~'#1'. } + { + The~key~'#1'~takes~a~limited~number~of~values.\\ + The~input~given,~'#2',~is~not~on~the~list~accepted. } \msg_kernel_new:nnnn { keys } { generate-choices-before-code } - {% - Cannot create choices for key `#1':\\% - no code has been defined.% - } - {% - Code for use by .generate_choices:n should first be defined\\% - using .choice_code:n or .choice_code:x.% + { No~code~available~to~generate~choices~for~key~'#1'. } + { + \l_msg_coding_error_text_tl + Before~using~.generate_choices:n~the~code~should~be~defined\\% + with~.choice_code:n~or~.choice_code:x. } \msg_kernel_new:nnnn { keys } { key-no-property } - {No property given in definition of key `#1'.} - {% - Inside \token_to_str:N \keys_define:nn \msg_space: each key name - needs a property:\\% - \msg_two_spaces: #1 .<property>:\\% - I did not find a ``.'' to indicate the start of a property.% + { No~property~given~in~definition~of~key~'#1'. } + { + \c_msg_coding_error_text_tl + Inside~\token_to_str:N \keys_define:nn \c_space_tl each~key~name + needs~a~property: \\ + ~ ~ #1 .<property> \\ + LaTeX~did~not~find~a~'.'~to~indicate~the~start~of~a~property. } \msg_kernel_new:nnnn { keys } { key-unknown } - {The key `#1' is unknown and is being ignored.} - {% - The module `#2' does not seem to implement a key called `#1'.\\% - I also checked for code to handle a unknown key, and did not - find any.% - Check that you have spelled the key name correctly.% - } -\msg_kernel_new:nnnn { keys } { property-unknown } - {The key property `#1' is unknown.} - {% - You have asked for key `#2' to have the property `#1'.\\% - However, I don't know the property `#1': this line will be ignored.% + { The~key~'#1'~is~unknown~and~is~being~ignored. } + { + The~module~'#2'~does~not~have~a~key~called~#1'.\\ + Check~that~you~have~spelled~the~key~name~correctly. } \msg_kernel_new:nnnn { keys } { property-requires-value } - {The property `#1' requires a value.} - {% - You have tried to set the property `#2' for key `#1'.\\% - However, you did not give a value for this property, and one is - needed.\\% - The entire line will be ignored.% + { The property '#1' requires a value. } + { + \l_msg_coding_error_text_tl + LaTeX~was~asked~to~set~property~'#2'~for~key~'#1'.\\ + No~value~was~given~for~the~property,~and~one~is~required. + } +\msg_kernel_new:nnnn { keys } { property-unknown } + { The key property '#1' is unknown. } + { + \l_msg_coding_error_text_tl + LaTeX~has~been~asked~to~set~the~property~'#1'~for~key~'#2':\\ + this~property~is~not~defined. } \msg_kernel_new:nnnn { keys } { value-forbidden } - {The key `#1' does not taken a value.} - {% - The key `#1' should be given without a value.\\% - You gave `#1 = #2'; I will ignore `#2' and carry out whatever\\% - key `#1' is supposed to do.% + { The~key~'#1'~does~not~taken~a~value. } + { + The~key~'#1'~should~be~given~without~a~value.\\ + LaTeX~will~ignore~the~given~value~'#2'. } \msg_kernel_new:nnnn { keys } { value-required } - {The key `#1' requires a value.} - {% - The key `#1' should be given with a value.\\% - You gave `#1', but should have given `#1 = <value>'.\\% - I will ignore the key entirely.\\% + { The~key~'#1'~requires~a~value. } + { + The~key~'#1'~must~have~a~value.\\ + No~value~was~present:~the~key~will~be~ignored. } %% %% diff --git a/Master/texmf-dist/tex/latex/expl3/l3keyval.sty b/Master/texmf-dist/tex/latex/expl3/l3keyval.sty index f67bfb16daf..782b899dd87 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3keyval.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3keyval.sty @@ -48,26 +48,53 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3keyval.dtx 1424 2009-07-13 06:05:25Z joseph $ +\GetIdInfo$Id: l3keyval.dtx 1872 2010-03-24 07:53:45Z mittelba $ {L3 Experimental keyval processing} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} \package_check_loaded_expl: \tl_new:N \l_KV_tmpa_tl \tl_new:N \l_KV_tmpb_tl -\tl_new:Nn \c_KV_single_equal_sign_tl{=} -\toks_new:N \l_KV_parse_toks -\toks_new:N \l_KV_currkey_toks -\toks_new:N \l_KV_currval_toks +\tl_const:Nn \c_KV_single_equal_sign_tl { = } +\tl_new:N \l_KV_parse_tl +\tl_new:N \l_KV_currkey_tl +\tl_new:N \l_KV_currval_tl +\int_new:N \l_KV_level_int \bool_new:N \l_KV_remove_one_level_of_braces_bool \bool_set_true:N \l_KV_remove_one_level_of_braces_bool +\cs_new_protected_nopar:Npn \KV_process_space_removal_sanitize:NNn { + \KV_process_aux:NNNn \KV_parse_space_removal_sanitize:n +} +\cs_new_protected_nopar:Npn \KV_process_space_removal_no_sanitize:NNn { + \KV_process_aux:NNNn \KV_parse_space_removal_no_sanitize:n +} +\cs_new_protected_nopar:Npn \KV_process_no_space_removal_no_sanitize:NNn { + \KV_process_aux:NNNn \KV_parse_no_space_removal_no_sanitize:n +} +\cs_new_protected:Npn \KV_process_aux:NNNn #1#2#3#4 { + \cs_set_eq:cN + { KV_key_no_value_elt_ \int_use:N \l_KV_level_int :n } + \KV_key_no_value_elt:n + \cs_set_eq:cN + { KV_key_value_elt_ \int_use:N \l_KV_level_int :nn } + \KV_key_value_elt:nn + \cs_set_eq:NN \KV_key_no_value_elt:n #2 + \cs_set_eq:NN \KV_key_value_elt:nn #3 + \int_incr:N \l_KV_level_int + #1 {#4} + \int_decr:N \l_KV_level_int + \cs_set_eq:Nc \KV_key_no_value_elt:n + { KV_key_no_value_elt_ \int_use:N \l_KV_level_int :n } + \cs_set_eq:Nc \KV_key_value_elt:nn + { KV_key_value_elt_ \int_use:N \l_KV_level_int :nn } +} \group_begin: \char_set_catcode:nn{`\=}{13} \char_set_catcode:nn{`\,}{13} \char_set_lccode:nn{`\8}{`\=} \char_set_lccode:nn{`\9}{`\,} \tl_to_lowercase:n{\group_end: -\cs_new_nopar:Npn \KV_sanitize_outerlevel_active_equals:N #1{ +\cs_new_protected_nopar:Npn \KV_sanitize_outerlevel_active_equals:N #1{ \tl_replace_all_in:Nnn #1 = 8 } \cs_new_nopar:Npn \KV_sanitize_outerlevel_active_commas:N #1{ @@ -83,47 +110,46 @@ \KV_remove_surrounding_spaces_auxii:w #1 Q } \cs_gnew:Npn\KV_remove_surrounding_spaces_auxii:w#1Q#2{#1} -\cs_gnew:Npn\KV_add_value_element:w\q_stop#1\q_nil{ - \toks_set:Nf\l_KV_currval_toks { +\cs_gnew_protected:Npn\KV_add_value_element:w\q_stop#1\q_nil{ + \tl_set:Nf\l_KV_currval_tl { \KV_remove_surrounding_spaces_auxi:w \exp_not:N#1Q~Q } - \toks_put_right:No\l_KV_parse_toks{ - \exp_after:wN {\toks_use:N \l_KV_currval_toks} + \tl_put_right:No\l_KV_parse_tl{ + \exp_after:wN { \l_KV_currval_tl } } } -\cs_gnew:Npn\KV_set_key_element:w#1\q_nil{ - \toks_set:Nf\l_KV_currkey_toks +\cs_gnew_protected:Npn\KV_set_key_element:w#1\q_nil{ + \tl_set:Nf\l_KV_currkey_tl { \exp_last_unbraced:NNo \KV_remove_surrounding_spaces_auxi:w \exp_not:N \use_none:n #1Q~Q } \bool_if:NT \l_KV_remove_one_level_of_braces_bool { - \exp_args:NNo \toks_set:No \l_KV_currkey_toks { - \exp_after:wN \KV_add_element_aux:w - \toks_use:N \l_KV_currkey_toks \q_nil + \exp_args:NNo \tl_set:No \l_KV_currkey_tl { + \exp_after:wN \KV_add_element_aux:w \l_KV_currkey_tl \q_nil } } } \group_end: \cs_new:Npn \KV_add_element_aux:w#1\q_nil{#1} -\cs_new:Npn \KV_parse_sanitize_aux:n #1 { +\cs_new_protected:Npn \KV_parse_sanitize_aux:n #1 { \group_begin: - \toks_clear:N \l_KV_parse_toks - \tl_set:Nx \l_KV_tmpa_tl { \exp_not:n {#1} } + \tl_clear:N \l_KV_parse_tl + \tl_set:Nn \l_KV_tmpa_tl {#1} \KV_sanitize_outerlevel_active_equals:N \l_KV_tmpa_tl \KV_sanitize_outerlevel_active_commas:N \l_KV_tmpa_tl \exp_last_unbraced:NNV \KV_parse_elt:w \q_no_value \l_KV_tmpa_tl , \q_nil , - \exp_last_unbraced:NV \group_end: - \l_KV_parse_toks + \exp_after:wN \group_end: + \l_KV_parse_tl } -\cs_new:Npn \KV_parse_no_sanitize_aux:n #1{ +\cs_new_protected:Npn \KV_parse_no_sanitize_aux:n #1{ \group_begin: - \toks_clear:N \l_KV_parse_toks + \tl_clear:N \l_KV_parse_tl \KV_parse_elt:w \q_no_value #1 , \q_nil , - \exp_last_unbraced:NV \group_end: - \l_KV_parse_toks + \exp_after:wN \group_end: + \l_KV_parse_tl } \cs_set:Npn \KV_parse_elt:w #1,{ \tl_if_blank:oTF{\use_none:n #1} @@ -137,46 +163,46 @@ } } \cs_new:Npn \KV_split_key_value_current:w {\ERROR} -\cs_new:Npn \KV_split_key_value_space_removal:w #1 = #2\q_nil{ +\cs_new_protected:Npn \KV_split_key_value_space_removal:w #1 = #2\q_nil{ \KV_set_key_element:w#1\q_nil - \tl_set:Nx\l_KV_tmpa_tl{\exp_not:n{#2}} + \tl_set:Nn\l_KV_tmpa_tl{#2} \tl_if_eq:NNTF\l_KV_tmpa_tl\c_KV_single_equal_sign_tl { - \toks_put_right:No\l_KV_parse_toks{ + \tl_put_right:No\l_KV_parse_tl{ \exp_after:wN \KV_key_no_value_elt:n - \exp_after:wN {\toks_use:N\l_KV_currkey_toks} + \exp_after:wN {\l_KV_currkey_tl} } } { \KV_split_key_value_space_removal_detect_error:wTF#2\q_no_value\q_nil {\KV_split_key_value_space_removal_aux:w \q_stop #2} - {\ERROR} + { \msg_kernel_error:nn { keyval } { misplaced-equals-sign } } } } -\cs_new:Npn +\cs_new_protected:Npn \KV_split_key_value_space_removal_detect_error:wTF#1=#2#3\q_nil{ \tl_if_head_eq_meaning:nNTF{#3}\q_no_value } \cs_new:Npn \KV_val_preserve_braces:NnN #1#2#3{{#2}} -\cs_new:Npn\KV_split_key_value_space_removal_aux:w #1=={ +\cs_new_protected:Npn\KV_split_key_value_space_removal_aux:w #1=={ \tl_set:Nx\l_KV_tmpa_tl{\exp_not:o{\use_none:nnn#1\q_nil\q_nil}} - \toks_put_right:No\l_KV_parse_toks{ + \tl_put_right:No\l_KV_parse_tl{ \exp_after:wN \KV_key_value_elt:nn - \exp_after:wN {\toks_use:N\l_KV_currkey_toks} + \exp_after:wN {\l_KV_currkey_tl} } \tl_if_empty:NTF\l_KV_tmpa_tl - { \toks_put_right:Nn\l_KV_parse_toks{{}} } + { \tl_put_right:Nn\l_KV_parse_tl{{}} } { \quark_if_nil:NTF\l_KV_tmpa_tl { \bool_if:NTF \l_KV_remove_one_level_of_braces_bool { - \toks_put_right:No\l_KV_parse_toks{ + \tl_put_right:No\l_KV_parse_tl{ \exp_after:wN{\use_ii:nnn #1\q_nil} } } { - \toks_put_right:No\l_KV_parse_toks{ + \tl_put_right:No\l_KV_parse_tl{ \exp_after:wN{\KV_val_preserve_braces:NnN #1\q_nil} } } @@ -184,34 +210,41 @@ { \KV_add_value_element:w #1\q_nil } } } -\cs_new:Npn \KV_split_key_value_no_space_removal:w #1#2=#3=#4\q_nil{ +\cs_new_protected:Npn \KV_split_key_value_no_space_removal:w #1#2=#3=#4\q_nil{ \tl_set:Nn\l_KV_tmpa_tl{#4} \tl_if_empty:NTF \l_KV_tmpa_tl { - \toks_put_right:Nn\l_KV_parse_toks{\KV_key_no_value_elt:n{#2}} + \tl_put_right:Nn\l_KV_parse_tl{\KV_key_no_value_elt:n{#2}} } { \tl_if_eq:NNTF\c_KV_single_equal_sign_tl\l_KV_tmpa_tl { - \toks_put_right:Nn\l_KV_parse_toks{\KV_key_value_elt:nn{#2}{#3}} + \tl_put_right:Nn\l_KV_parse_tl{\KV_key_value_elt:nn{#2}{#3}} } - {\ERROR} + { \msg_kernel_error:nn { keyval } { misplaced-equals-sign } } } } \cs_new:Npn \KV_key_no_value_elt:n #1{\ERROR} \cs_new:Npn \KV_key_value_elt:nn #1#2{\ERROR} -\cs_new_nopar:Npn \KV_parse_no_space_removal_no_sanitize:n { +\cs_new_protected_nopar:Npn \KV_parse_no_space_removal_no_sanitize:n { \cs_set_eq:NN \KV_split_key_value_current:w \KV_split_key_value_no_space_removal:w \KV_parse_no_sanitize_aux:n } -\cs_new_nopar:Npn \KV_parse_space_removal_sanitize:n { +\cs_new_protected_nopar:Npn \KV_parse_space_removal_sanitize:n { \cs_set_eq:NN \KV_split_key_value_current:w \KV_split_key_value_space_removal:w \KV_parse_sanitize_aux:n } -\cs_new_nopar:Npn \KV_parse_space_removal_no_sanitize:n { +\cs_new_protected_nopar:Npn \KV_parse_space_removal_no_sanitize:n { \cs_set_eq:NN \KV_split_key_value_current:w \KV_split_key_value_space_removal:w \KV_parse_no_sanitize_aux:n } +\msg_kernel_new:nnnn { keyval } { misplaced-equals-sign } + {Misplaced~equals~sign~in~key--value~input~\msg_line_context:} + { + I~am~trying~to~read~some~key--value~input~but~found~two~equals~ + signs\\% + without~a~comma~between~them. + } %% %% %% End of file `l3keyval.sty'. diff --git a/Master/texmf-dist/tex/latex/expl3/l3msg.sty b/Master/texmf-dist/tex/latex/expl3/l3msg.sty index 04d32519912..6ed3dad14c1 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3msg.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3msg.sty @@ -49,36 +49,40 @@ %% ----------------------------------------------------------------------- %% \RequirePackage{l3names} -\GetIdInfo$Id: l3msg.dtx 1722 2009-11-06 13:22:12Z joseph $ +\GetIdInfo$Id: l3msg.dtx 1866 2010-03-23 08:29:27Z joseph $ {L3 Experimental LaTeX Messages module} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} \package_check_loaded_expl: \int_set:Nn \tex_errorcontextlines:D { \c_minus_one } -\tl_new:Nn \c_msg_fatal_tl { Fatal~Error } -\tl_new:Nn \c_msg_error_tl { Error } -\tl_new:Nn \c_msg_warning_tl { Warning } -\tl_new:Nn \c_msg_info_tl { Info } -\tl_new:Nn \c_msg_fatal_text_tl { +\tl_const:Nn \c_msg_fatal_tl { Fatal~Error } +\tl_const:Nn \c_msg_error_tl { Error } +\tl_const:Nn \c_msg_warning_tl { Warning } +\tl_const:Nn \c_msg_info_tl { Info } +\tl_const:Nn \c_msg_coding_error_text_tl { + This~is~a~coding~error. + \msg_two_newlines: +} +\tl_const:Nn \c_msg_fatal_text_tl { This~is~a~fatal~error:~LaTeX~will~abort } -\tl_new:Nn \c_msg_help_text_tl { +\tl_const:Nn \c_msg_help_text_tl { For~immediate~help~type~H~<return> } -\tl_new:Nn \c_msg_kernel_bug_text_tl { +\tl_const:Nn \c_msg_kernel_bug_text_tl { This~is~a~LaTeX~bug:~check~coding! } -\tl_new:Nn \c_msg_kernel_bug_more_text_tl { +\tl_const:Nn \c_msg_kernel_bug_more_text_tl { There~is~a~coding~bug~somewhere~around~here. \msg_newline: This~probably~needs~examining~by~an~expert. \c_msg_return_text_tl } -\tl_new:Nn \c_msg_no_info_text_tl { +\tl_const:Nn \c_msg_no_info_text_tl { LaTeX~does~not~know~anything~more~about~this~error,~sorry. \c_msg_return_text_tl } -\tl_new:Nn \c_msg_return_text_tl { +\tl_const:Nn \c_msg_return_text_tl { \msg_two_newlines: Try~typing~<return>~to~proceed. \msg_newline: @@ -88,67 +92,54 @@ \char_make_letter:N\ % \tl_to_lowercase:n{% \group_end:% -\tl_new:Nn% +\tl_const:Nn% \c_msg_hide_tl % {}% }% -\tl_new:Nn \c_msg_on_line_tl { on~line } -\tl_new:Nn \c_msg_text_prefix_tl { msg_text ~>~ } -\tl_new:Nn \c_msg_more_text_prefix_tl { msg_text_more ~>~ } +\tl_const:Nn \c_msg_on_line_tl { on~line } +\tl_const:Nn \c_msg_text_prefix_tl { msg_text ~>~ } +\tl_const:Nn \c_msg_more_text_prefix_tl { msg_text_more ~>~ } \tl_new:N \l_msg_class_tl \tl_new:N \l_msg_current_class_tl +\tl_new:N \l_msg_current_module_tl \clist_new:N \l_msg_names_clist \prop_new:N \l_msg_redirect_classes_prop \prop_new:N \l_msg_redirect_names_prop \clist_new:N \l_msg_redirect_classes_clist +\tl_new:N \l_msg_tmp_tl \cs_new_nopar:Npn \msg_line_number: { \toks_use:N \tex_inputlineno:D } \cs_new_nopar:Npn \msg_line_context: { \c_msg_on_line_tl - \msg_space: + \c_space_tl \msg_line_number: } \cs_new_nopar:Npn \msg_newline: { ^^J } \cs_new_nopar:Npn \msg_two_newlines: { ^^J ^^J } -\cs_new_nopar:Npn \msg_space: { ~ } -\cs_new_nopar:Npn \msg_two_spaces: { \msg_space: \msg_space: } -\cs_new_nopar:Npn \msg_four_spaces: { - \msg_two_spaces: \msg_two_spaces: -} -\cs_new_nopar:Npn \msg_generic_new:nnn #1 { +\cs_new_protected_nopar:Npn \msg_generic_new:nnn #1 { \chk_if_free_cs:c { \c_msg_text_prefix_tl #1 :xxxx } \msg_generic_set:nnn {#1} } -\cs_new_nopar:Npn \msg_generic_new:nn #1 { +\cs_new_protected_nopar:Npn \msg_generic_new:nn #1 { \chk_if_free_cs:c { \c_msg_text_prefix_tl #1 :xxxx } \msg_generic_set:nn {#1} } -\cs_new_nopar:Npn \msg_generic_set:nnn #1 { +\cs_new_protected_nopar:Npn \msg_generic_set:nnn #1#2#3 { \msg_generic_set_clist:n {#1} - \char_make_space:N \ - \msg_generic_set_more_text:nnn {#1} + \cs_set:cpn { \c_msg_text_prefix_tl #1 :xxxx } ##1##2##3##4 {#2} + \cs_set:cpn { \c_msg_more_text_prefix_tl #1 :xxxx } ##1##2##3##4 {#3} } -\cs_new_nopar:Npn \msg_generic_set:nn #1 { +\cs_new_protected_nopar:Npn \msg_generic_set:nn #1#2 { \msg_generic_set_clist:n {#1} - \char_make_space:N \ - \msg_generic_set_text:nn {#1} + \cs_set:cpn { \c_msg_text_prefix_tl #1 :xxxx } ##1##2##3##4 {#2} + \cs_set_eq:cN { \c_msg_more_text_prefix_tl #1 :xxxx } \c_undefined } -\cs_new_nopar:Npn \msg_generic_set_clist:n #1 { +\cs_new_protected_nopar:Npn \msg_generic_set_clist:n #1 { \clist_if_in:NnF \l_msg_names_clist { // #1 / } { \clist_put_right:Nn \l_msg_names_clist { // #1 / } } } -\cs_new:Npn \msg_generic_set_text:nn #1#2 { - \cs_set:cpn { \c_msg_text_prefix_tl #1 :xxxx } ##1##2##3##4 {#2} - \cs_set_eq:cN { \c_msg_more_text_prefix_tl #1 :xxxx } \c_undefined - \char_make_ignore:N \ -} -\cs_new:Npn \msg_generic_set_more_text:nnn #1#2#3 { - \cs_set:cpn { \c_msg_text_prefix_tl #1 :xxxx } ##1##2##3##4 {#2} - \cs_set:cpn { \c_msg_more_text_prefix_tl #1 :xxxx } ##1##2##3##4 {#3} - \char_make_ignore:N \ -} \group_begin: \char_set_lccode:nn {`\&} {`\ } % { \char_set_lccode:w `\} = `\ \scan_stop: @@ -159,7 +150,7 @@ \cs_new_protected:Npn\msg_direct_interrupt:xxxx#1#2#3#4{% \group_begin:% \cs_set_eq:NN\\\msg_newline:% -\cs_set_eq:NN\ \msg_space:% +\cs_set_eq:NN\ \c_space_tl% \msg_direct_interrupt_aux:n{#4}% \cs_set_nopar:Npn\\{\msg_newline:#3}% \tex_errhelp:D\l_msg_tmp_tl% @@ -175,7 +166,7 @@ \group_end:% }% }% -\cs_new:Npn \msg_direct_interrupt_aux:n #1 { +\cs_new_protected:Npn \msg_direct_interrupt_aux:n #1 { \tl_if_empty:nTF {#1} { \tl_set:Nx \l_msg_tmp_tl { { \c_msg_no_info_text_tl } } }{ @@ -185,35 +176,35 @@ \cs_new_protected:Npn \msg_direct_log:xx #1#2 { \group_begin: \cs_set:Npn \\ { \msg_newline: #2 } - \cs_set_eq:NN \ \msg_space: + \cs_set_eq:NN \ \c_space_tl \iow_log:x { #1 \msg_newline: } \group_end: } \cs_new_protected:Npn \msg_direct_term:xx #1#2 { \group_begin: \cs_set:Npn \\ { \msg_newline: #2 } - \cs_set_eq:NN \ \msg_space: + \cs_set_eq:NN \ \c_space_tl \iow_term:x { #1 \msg_newline: } \group_end: } -\cs_new_nopar:Npn \msg_new:nnnn #1#2 { +\cs_new_protected_nopar:Npn \msg_new:nnnn #1#2 { \msg_generic_new:nnn { #1 / #2 } } -\cs_new_nopar:Npn \msg_new:nnn #1#2 { +\cs_new_protected_nopar:Npn \msg_new:nnn #1#2 { \msg_generic_new:nn { #1 / #2 } } -\cs_new_nopar:Npn \msg_set:nnnn #1#2 { +\cs_new_protected_nopar:Npn \msg_set:nnnn #1#2 { \msg_generic_set:nnn { #1 / #2 } } -\cs_new_nopar:Npn \msg_set:nnn #1#2 { +\cs_new_protected_nopar:Npn \msg_set:nnn #1#2 { \msg_generic_set:nn { #1 / #2 } } -\cs_new_nopar:Npn \msg_class_new:nn #1 { +\cs_new_protected_nopar:Npn \msg_class_new:nn #1 { \chk_if_free_cs:c { msg_ #1 :nnxxxx } \prop_new:c { l_msg_redirect_ #1 _prop } \msg_class_set:nn {#1} } -\cs_new_nopar:Npn \msg_class_set:nn #1#2 { +\cs_new_protected_nopar:Npn \msg_class_set:nn #1#2 { \prop_clear:c { l_msg_redirect_ #1 _prop } \cs_set_protected:cpn { msg_ #1 :nnxxxx } ##1##2##3##4##5##6 { \msg_use:nnnnxxxx {#1} {#2} {##1} {##2} {##3} {##4} {##5} {##6} @@ -231,7 +222,7 @@ \exp_not:c { msg_ #1 :nnxxxx } {##1} {##2} { } { } { } { } } } -\cs_new:Npn \msg_use:nnnnxxxx #1#2#3#4#5#6#7#8 { +\cs_new_protected:Npn \msg_use:nnnnxxxx #1#2#3#4#5#6#7#8 { \cs_set_nopar:Npn \msg_use_code: { \clist_clear:N \l_msg_redirect_classes_clist #2 @@ -256,7 +247,7 @@ } \cs_new_nopar:Npn \msg_use_code: { } \cs_new:Npn \msg_use_loop:n #1 { } -\cs_new_nopar:Npn \msg_use_aux:nnn #1#2#3 { +\cs_new_protected_nopar:Npn \msg_use_aux:nnn #1#2#3 { \tl_set:Nn \l_msg_current_class_tl {#1} \tl_set:Nn \l_msg_current_module_tl {#2} \prop_if_in:NnTF \l_msg_redirect_names_prop { // #2 / #3 / } { @@ -265,7 +256,7 @@ \msg_use_aux:nn {#1} {#2} } } -\cs_new_nopar:Npn \msg_use_aux:nn #1#2 { +\cs_new_protected_nopar:Npn \msg_use_aux:nn #1#2 { \prop_if_in:cnTF { l_msg_redirect_ #1 _prop } {#2} { \msg_use_loop_check:nn {#1} {#2} }{ @@ -276,7 +267,7 @@ } } } -\cs_new:Npn \msg_use_loop_check:nn #1#2 { +\cs_new_protected:Npn \msg_use_loop_check:nn #1#2 { \prop_get:cnN { l_msg_redirect_ #1 _prop } {#2} \l_msg_class_tl \tl_if_eq:NNTF \l_msg_current_class_tl \l_msg_class_tl { \msg_use_code: @@ -288,10 +279,10 @@ \msg_direct_interrupt:xxxx { \c_msg_fatal_tl \msg_two_newlines: } { - ( \c_msg_fatal_tl ) \msg_space: + ( \c_msg_fatal_tl ) \c_space_tl \use:c { \c_msg_text_prefix_tl #1 / #2 :xxxx } {#3} {#4} {#5} {#6} } - { ( \c_msg_fatal_tl ) \msg_space: } + { ( \c_msg_fatal_tl ) \c_space_tl } { \c_msg_fatal_text_tl } \tex_end:D } @@ -299,10 +290,10 @@ \msg_direct_interrupt:xxxx { #1~\c_msg_error_tl \msg_newline: } { - ( #1 ) \msg_space: + ( #1 ) \c_space_tl \use:c { \c_msg_text_prefix_tl #1 / #2 :xxxx } {#3} {#4} {#5} {#6} } - { ( #1 ) \msg_space: } + { ( #1 ) \c_space_tl } { \cs_if_exist:cTF { \c_msg_more_text_prefix_tl #1 / #2 :xxxx } { @@ -314,17 +305,17 @@ } \msg_class_new:nn { warning } { \msg_direct_term:xx { - \msg_space: #1 ~ \c_msg_warning_tl :~ + \c_space_tl #1 ~ \c_msg_warning_tl :~ \use:c { \c_msg_text_prefix_tl #1 / #2 :xxxx } {#3} {#4} {#5} {#6} } - { ( #1 ) \msg_two_spaces: } + { ( #1 ) \c_space_tl \c_space_tl } } \msg_class_new:nn { info } { \msg_direct_log:xx { - \msg_space: #1~\c_msg_info_tl :~ + \c_space_tl #1~\c_msg_info_tl :~ \use:c { \c_msg_text_prefix_tl #1 / #2 :xxxx } {#3} {#4} {#5} {#6} } - { ( #1 ) \msg_two_spaces: } + { ( #1 ) \c_space_tl \c_space_tl } } \msg_class_new:nn { log } { \msg_direct_log:xx { @@ -339,28 +330,28 @@ { } } \msg_class_new:nn { none } { } -\cs_new_nopar:Npn \msg_redirect_class:nn #1#2 { +\cs_new_protected_nopar:Npn \msg_redirect_class:nn #1#2 { \prop_put:cnn { l_msg_redirect_ #1 _prop } { * } {#2} } -\cs_new_nopar:Npn \msg_redirect_module:nnn #1#2#3 { +\cs_new_protected_nopar:Npn \msg_redirect_module:nnn #1#2#3 { \prop_put:cnn { l_msg_redirect_ #2 _prop } {#1} {#3} } -\cs_new_nopar:Npn \msg_redirect_name:nnn #1#2#3 { +\cs_new_protected_nopar:Npn \msg_redirect_name:nnn #1#2#3 { \prop_put:Nnn \l_msg_redirect_names_prop { // #1 / #2 / } {#3} } -\cs_new_nopar:Npn \msg_kernel_new:nnnn #1#2 { +\cs_new_protected_nopar:Npn \msg_kernel_new:nnnn #1#2 { \msg_new:nnnn { LaTeX } { #1 / #2 } } -\cs_new_nopar:Npn \msg_kernel_new:nnn #1#2 { +\cs_new_protected_nopar:Npn \msg_kernel_new:nnn #1#2 { \msg_new:nnn { LaTeX } { #1 / #2 } } -\cs_new_nopar:Npn \msg_kernel_set:nnnn #1#2 { +\cs_new_protected_nopar:Npn \msg_kernel_set:nnnn #1#2 { \msg_set:nnnn { LaTeX } { #1 / #2 } } -\cs_new_nopar:Npn \msg_kernel_set:nnn #1#2 { +\cs_new_protected_nopar:Npn \msg_kernel_set:nnn #1#2 { \msg_set:nnn { LaTeX } { #1 / #2 } } -\cs_new_nopar:Npn \msg_kernel_classes_new:n #1 { +\cs_new_protected_nopar:Npn \msg_kernel_classes_new:n #1 { \cs_new_protected:cpx { msg_kernel_ #1 :nnxxx } ##1##2##3##4##5 { \exp_not:c { msg_kernel_ #1 :nnxxxx } @@ -384,11 +375,11 @@ \msg_direct_interrupt:xxxx { \c_msg_fatal_tl \msg_two_newlines: } { - ( LaTeX ) \msg_space: + ( LaTeX ) \c_space_tl \use:c { \c_msg_text_prefix_tl LaTeX / #1 / #2 :xxxx } {#3} {#4} {#5} {#6} } - { ( LaTeX ) \msg_space: } + { ( LaTeX ) \c_space_tl} { \c_msg_fatal_text_tl } \tex_end:D } @@ -397,11 +388,11 @@ \msg_direct_interrupt:xxxx { LaTeX~\c_msg_error_tl \msg_newline: } { - ( LaTeX ) \msg_space: + ( LaTeX ) \c_space_tl \use:c { \c_msg_text_prefix_tl LaTeX / #1 / #2 :xxxx } {#3} {#4} {#5} {#6} } - { ( LaTeX ) \msg_space: } + { ( LaTeX ) \c_space_tl } { \cs_if_exist:cTF { \c_msg_more_text_prefix_tl LaTeX / #1 / #2 :xxxx } @@ -422,27 +413,26 @@ } \msg_kernel_classes_new:n { info } \msg_kernel_new:nnnn { msg } { message-unknown } - {Unknown message `#2' for module `#1'.} - {% - LaTeX was asked to display a message by the `#1' module.\\% - The message was supposed to be called `#2', but I can't\\% - find a message with that name.% + { Unknown~message~'#2'~for~module~'#1'.} + { + \c_msg_coding_error_text_tl + LaTeX~was~asked~to~display~a~message~called~'#2'\\ + by~the~module~'#1'~module:~this~message~does~not~exist. \c_msg_return_text_tl } \msg_kernel_new:nnnn { msg } { message-class-unknown } - {Unknown message class `#1'.} - {% - You have asked for a message to be redirected to class `#1'.\\% - The message class `#1' has not been set up:\\% - perhaps this is a typing error.% + { Unknown~message~class~'#1'. } + { + LaTeX~has~been~asked~to~redirect~messages~to~a~class~'#1':\\ + this~was~never~defined. + \c_msg_return_text_tl } \msg_kernel_new:nnnn { msg } { redirect-loop } - {Message redirection loop for message class `#1'.} - {% - You have asked for a message to be redirected,\\% - but the redirection instructions form a loop:\\% - you've lost the message.% + { Message~redirection~loop~for~message~class~'#1'. } + { + LaTeX~has~been~asked~to~redirect~messages~in~an~infinite~loop.\\ + The~original~message~here~has~been~lost. \c_msg_return_text_tl } \cs_set_protected:Npn \msg_kernel_bug:x #1 { diff --git a/Master/texmf-dist/tex/latex/expl3/l3names.sty b/Master/texmf-dist/tex/latex/expl3/l3names.sty index 9c6fd97f716..0c475563656 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3names.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3names.sty @@ -48,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \begingroup -\def\GetIdInfo$#1${% +\protected\def\GetIdInfo$#1${% \begingroup \def\GetIdInfoString{#1}% \def\IdInfoStringUnexp{Id}% @@ -59,35 +59,35 @@ \fi \next } -\def\GetIdInfoFull$#1 #2.#3 #4 #5 #6 #7${% +\protected\def\GetIdInfoFull$#1 #2.#3 #4 #5 #6 #7${% \GetIdInfoAux #5\relax{#2}#5\relax{#4}% } -\def\GetIdInfoAux #1#2#3#4#5#6\relax{% +\protected\def\GetIdInfoAux #1#2#3#4#5#6\relax{% \ifx#5/% \expandafter\GetIdInfoAuxCVS \else \expandafter\GetIdInfoAuxSVN \fi } -\def\GetIdInfoAuxCVS #1#2\relax#3#4{% +\protected\def\GetIdInfoAuxCVS #1#2\relax#3#4{% \gdef\fileversion{#3}% \gdef\filedate{#2}% \gdef\filedescription{#4}% \ProvidesPackage{#1}[#2 v#3 #4]% } -\def\GetIdInfoAuxSVN #1#2-#3-#4\relax#5#6{% +\protected\def\GetIdInfoAuxSVN #1#2-#3-#4\relax#5#6{% \gdef\fileversion{#5}% \gdef\filedate{#2/#3/#4}% \gdef\filedescription{#6}% \ProvidesPackage{#1}[#2/#3/#4 v#5 #6] } -\def\GetIdInfoMissing#1{% +\protected\def\GetIdInfoMissing#1{% \gdef\fileversion{000}% \gdef\filedate{0000/00/00}% \gdef\filedescription{#1}% \ProvidesPackage{[unknown package]}[0000/00/00 v0.0 #1] } -\GetIdInfo$Id: l3names.dtx 1751 2009-11-26 08:36:12Z joseph $ +\GetIdInfo$Id: l3names.dtx 1853 2010-03-21 09:11:08Z joseph $ {L3 Experimental Naming Scheme for TeX Primitives} \endgroup \begingroup @@ -106,7 +106,7 @@ \endgroup \endinput } -\edef\ExplSyntaxOff{ +\protected\edef\ExplSyntaxOff{ \unexpanded{\ifodd \ExplSyntaxStatus\relax \def\ExplSyntaxStatus{0} } @@ -635,10 +635,10 @@ \name_primitive:NN \strcmp \pdf_strcmp:D \tex_fi:D \tex_fi:D -\tex_def:D \ExplSyntaxOn { +\etex_protected:D \tex_def:D \ExplSyntaxOn { \tex_ifodd:D \ExplSyntaxStatus \tex_relax:D \tex_else:D - \tex_edef:D \ExplSyntaxOff { + \etex_protected:D \tex_edef:D \ExplSyntaxOff { \etex_unexpanded:D{ \tex_ifodd:D \ExplSyntaxStatus \tex_relax:D \tex_def:D \ExplSyntaxStatus{0} @@ -661,24 +661,24 @@ \tex_fi:D } \tex_def:D \ExplSyntaxStatus { 1 } -\tex_def:D \ExplSyntaxNamesOn { +\etex_protected:D \tex_def:D \ExplSyntaxNamesOn { \tex_catcode:D `\_=11\tex_relax:D \tex_catcode:D `\:=11\tex_relax:D } -\tex_def:D \ExplSyntaxNamesOff { +\etex_protected:D \tex_def:D \ExplSyntaxNamesOff { \tex_catcode:D `\_=8\tex_relax:D \tex_catcode:D `\:=12\tex_relax:D } -\tex_def:D \GetIdInfo { +\etex_protected:D \tex_def:D \GetIdInfo { \tex_begingroup:D \tex_catcode:D 32=10 \tex_relax:D % needed? Probably for now. \GetIdInfoMaybeMissing:w } -\tex_def:D\GetIdInfoMaybeMissing:w$#1$#2{ - \tex_def:D \l_tmpa_tl {#1} - \tex_def:D \l_tmpb_tl {Id} - \tex_ifx:D \l_tmpa_tl \l_tmpb_tl - \tex_def:D \l_tmpa_tl { +\etex_protected:D \tex_def:D\GetIdInfoMaybeMissing:w$#1$#2{ + \tex_def:D \l_kernel_tmpa_tl {#1} + \tex_def:D \l_kernel_tmpb_tl {Id} + \tex_ifx:D \l_kernel_tmpa_tl \l_kernel_tmpb_tl + \tex_def:D \l_kernel_tmpa_tl { \tex_endgroup:D \tex_def:D\filedescription{#2} \tex_def:D\filename {[unknown~name]} @@ -689,11 +689,11 @@ \tex_def:D\filetimestamp {[unknown~timestamp]} } \tex_else:D - \tex_def:D \l_tmpa_tl {\GetIdInfoAuxi:w$#1${#2}} + \tex_def:D \l_kernel_tmpa_tl {\GetIdInfoAuxi:w$#1${#2}} \tex_fi:D - \l_tmpa_tl + \l_kernel_tmpa_tl } -\tex_def:D\GetIdInfoAuxi:w$#1~#2.#3~#4~#5~#6~#7~#8$#9{ +\etex_protected:D \tex_def:D\GetIdInfoAuxi:w$#1~#2.#3~#4~#5~#6~#7~#8$#9{ \tex_endgroup:D \tex_def:D\filename{#2} \tex_def:D\fileversion{#4} @@ -702,34 +702,34 @@ \GetIdInfoAuxii:w #5\tex_relax:D #3\tex_relax:D#5\tex_relax:D#6\tex_relax:D } -\tex_def:D\GetIdInfoAuxii:w #1#2#3#4#5#6\tex_relax:D{ +\etex_protected:D \tex_def:D\GetIdInfoAuxii:w #1#2#3#4#5#6\tex_relax:D{ \tex_ifx:D#5/ \tex_expandafter:D\GetIdInfoAuxCVS:w \tex_else:D \tex_expandafter:D\GetIdInfoAuxSVN:w \tex_fi:D } -\tex_def:D\GetIdInfoAuxCVS:w #1,v\tex_relax:D +\etex_protected:D \tex_def:D\GetIdInfoAuxCVS:w #1,v\tex_relax:D #2\tex_relax:D#3\tex_relax:D{ \tex_def:D\filedate{#2} \tex_def:D\filenameext{#1} \tex_def:D\filetimestamp{#3} } -\tex_def:D\GetIdInfoAuxSVN:w #1\tex_relax:D#2-#3-#4 +\etex_protected:D \tex_def:D\GetIdInfoAuxSVN:w #1\tex_relax:D#2-#3-#4 \tex_relax:D#5Z\tex_relax:D{ \tex_def:D\filenameext{#1} \tex_def:D\filedate{#2/#3/#4} \tex_def:D\filetimestamp{#5} } -\tex_def:D \ProvidesExplPackage#1#2#3#4{ +\etex_protected:D \tex_def:D \ProvidesExplPackage#1#2#3#4{ \ProvidesPackage{#1}[#2~v#3~#4] \ExplSyntaxOn } -\tex_def:D \ProvidesExplClass#1#2#3#4{ +\etex_protected:D \tex_def:D \ProvidesExplClass#1#2#3#4{ \ProvidesClass{#1}[#2~v#3~#4] \ExplSyntaxOn } -\tex_def:D \ProvidesExplFile#1#2#3#4{ +\etex_protected:D \tex_def:D \ProvidesExplFile#1#2#3#4{ \ProvidesFile{#1}[#2~v#3~#4] \ExplSyntaxOn } @@ -749,7 +749,7 @@ \tex_fi:D } } -\tex_def:D\ExplSyntaxPopStack#1#2\q_nil{ +\etex_protected:D\tex_def:D\ExplSyntaxPopStack#1#2\q_nil{ \tex_def:D\ExplSyntaxStack{#2} \tex_ifodd:D#1\tex_relax:D \ExplSyntaxOn @@ -798,7 +798,7 @@ \tex_fi:D} \tex_fi:D \tex_futurelet:D\name_tmp:\name_pop_stack:w -\tex_def:D \package_check_loaded_expl: { +\etex_protected:D\tex_def:D \package_check_loaded_expl: { \@ifpackageloaded{expl3}{}{ \PackageError{expl3}{Cannot~load~the~expl3~modules~separately}{ The~expl3~modules~cannot~be~loaded~separately;\MessageBreak diff --git a/Master/texmf-dist/tex/latex/expl3/l3num.sty b/Master/texmf-dist/tex/latex/expl3/l3num.sty index 884658dc5c1..e75489bfc88 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3num.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3num.sty @@ -15,7 +15,7 @@ %% Do not distribute a modified version of this file. %% %% -%% File: l3num.dtx Copyright (C) 2005-2009 Frank Mittelbach, LaTeX3 project +%% File: l3num.dtx Copyright (C) 2005-2010 Frank Mittelbach, 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 @@ -48,40 +48,40 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3num.dtx 1451 2009-08-08 06:33:34Z joseph $ +\GetIdInfo$Id$ {L3 Experimental token numbers} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} \package_check_loaded_expl: -\cs_new_eq:NN \if_num:w \tex_ifnum:D -\cs_new_eq:NN \if_case:w \tex_ifcase:D -\cs_set_nopar:Npn \num_incr:N #1{\num_add:Nn#1 1} -\cs_set_nopar:Npn \num_decr:N #1{\num_add:Nn#1 \c_minus_one} -\cs_set_nopar:Npn \num_gincr:N #1{\num_gadd:Nn#1 1} -\cs_set_nopar:Npn \num_gdecr:N #1{\num_gadd:Nn#1 \c_minus_one} +\cs_set_eq:NN \if_num:w \tex_ifnum:D +\cs_set_eq:NN \if_case:w \tex_ifcase:D +\cs_set_protected_nopar:Npn \num_incr:N #1{\num_add:Nn#1 1} +\cs_set_protected_nopar:Npn \num_decr:N #1{\num_add:Nn#1 \c_minus_one} +\cs_set_protected_nopar:Npn \num_gincr:N #1{\num_gadd:Nn#1 1} +\cs_set_protected_nopar:Npn \num_gdecr:N #1{\num_gadd:Nn#1 \c_minus_one} \cs_generate_variant:Nn \num_incr:N {c} \cs_generate_variant:Nn \num_decr:N {c} \cs_generate_variant:Nn \num_gincr:N {c} \cs_generate_variant:Nn \num_gdecr:N {c} -\cs_new_nopar:Npn \num_zero:N #1 {\num_set:Nn #1 0} -\cs_new_nopar:Npn \num_gzero:N #1 {\num_gset:Nn #1 0} +\cs_new_protected_nopar:Npn \num_zero:N #1 {\num_set:Nn #1 0} +\cs_new_protected_nopar:Npn \num_gzero:N #1 {\num_gset:Nn #1 0} \cs_generate_variant:Nn \num_zero:N {c} \cs_generate_variant:Nn \num_gzero:N {c} -\cs_new_nopar:Npn \num_new:N #1{\tl_new:Nn #1{0}} +\cs_new_protected_nopar:Npn \num_new:N #1{\tl_new:Nn #1{0}} \cs_generate_variant:Nn \num_new:N {c} -\cs_new_nopar:Npn \num_set:Nn #1#2{ +\cs_new_protected_nopar:Npn \num_set:Nn #1#2{ \tl_set:No #1{ \tex_number:D \intexpr_eval:n {#2} } } \cs_generate_variant:Nn\num_set:Nn {c} -\cs_new_nopar:Npn \num_gset:Nn {\pref_global:D \num_set:Nn} +\cs_new_protected_nopar:Npn \num_gset:Nn {\pref_global:D \num_set:Nn} \cs_generate_variant:Nn\num_gset:Nn {c} \cs_new_eq:NN \num_set_eq:NN \tl_set_eq:NN \cs_generate_variant:Nn\num_set_eq:NN {c,Nc,cc} \cs_new_eq:NN \num_gset_eq:NN \tl_gset_eq:NN \cs_generate_variant:Nn\num_gset_eq:NN {c,Nc,cc} -\cs_new_nopar:Npn \num_add:Nn #1#2 {\num_set:Nn #1{#1+#2}} +\cs_new_protected_nopar:Npn \num_add:Nn #1#2 {\num_set:Nn #1{#1+#2}} \cs_generate_variant:Nn\num_add:Nn {c} -\cs_new_nopar:Npn \num_gadd:Nn {\pref_global:D \num_add:Nn} +\cs_new_protected_nopar:Npn \num_gadd:Nn {\pref_global:D \num_add:Nn} \cs_generate_variant:Nn\num_gadd:Nn {c} \cs_new_eq:NN\num_use:N \use:n \cs_new_eq:NN\num_use:c \use:c diff --git a/Master/texmf-dist/tex/latex/expl3/l3precom.sty b/Master/texmf-dist/tex/latex/expl3/l3precom.sty index 7beb5d43c72..61cfe7c2a07 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3precom.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3precom.sty @@ -48,16 +48,12 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3precom.dtx 1453 2009-08-08 14:38:49Z joseph $ +\GetIdInfo$Id: l3precom.dtx 1793 2010-02-09 20:36:19Z joseph $ {L3 Experimental precompilation module} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} -\RequirePackage{l3num} -\RequirePackage{l3io} -\RequirePackage{l3seq} -\RequirePackage{l3int} -\iow_new:N\c_cs_dump_stream -\tl_new:Nn\g_cs_dump_name_tl{} +\package_check_loaded_expl: +\tl_new:N \g_cs_dump_name_tl \seq_new:N\g_cs_dump_seq \cs_new_nopar:Npn\cs_record_name:N#1{ \seq_gput_left:Nn @@ -67,8 +63,8 @@ \cs_generate_variant:Nn \cs_record_name:N {c} \cs_new_nopar:Npn\cs_dump:{ \iow_term:x{Precompiling~style~into~(\g_cs_dump_name_tl)} -\iow_open:Nn\c_cs_dump_stream{\g_cs_dump_name_tl} -\iow_now:Nx\c_cs_dump_stream +\iow_open:Nn\g_cs_dump_stream{\g_cs_dump_name_tl} +\iow_now:Nx\g_cs_dump_stream {\group_begin: \tex_catcode:D`\token_to_str:N\*=11\scan_stop: \token_to_str:N\ExplSyntaxOn @@ -76,19 +72,19 @@ \seq_map_inline:Nn \g_cs_dump_seq {\tex_message:D{.} -\iow_now:Nx\c_cs_dump_stream +\iow_now:Nx\g_cs_dump_stream {\exp_not:n{\cs_gset_nopar:Npn ##1} {\tl_to_str:N##1}} } -\iow_now:Nx \c_cs_dump_stream {\exp_not:n{\num_gset:Nn - \g_gen_sym_num} - {\num_use:N\g_gen_sym_num}^^J -\exp_not:n{\num_gset:Nn \g_ggen_sym_num} - {\num_use:N\g_ggen_sym_num}} +\iow_now:Nx \g_cs_dump_stream {\exp_not:n{\int_gset:Nn + \g_gen_sym_int} + {\int_use:N\g_gen_sym_int}^^J +\exp_not:n{\int_gset:Nn \g_ggen_sym_int} + {\int_use:N\g_ggen_sym_int}} \iow_now:Nx -\c_cs_dump_stream +\g_cs_dump_stream {\group_end:} -\iow_close:N\c_cs_dump_stream +\iow_close:N\g_cs_dump_stream \tex_message:D{~finished} } \cs_new_nopar:Npn \cs_load_dump:n #1 { @@ -100,16 +96,16 @@ \tl_gset:Nn \g_cs_dump_name_tl { #1 .cmp } } } -\num_new:N\g_gen_sym_num \num_gset:Nn\g_gen_sym_num{0} -\num_new:N\g_ggen_sym_num \num_gset:Nn\g_ggen_sym_num{0} +\int_new:N\g_gen_sym_int \int_gset:Nn\g_gen_sym_int{0} +\int_new:N\g_ggen_sym_int \int_gset:Nn\g_ggen_sym_int{0} \cs_new_nopar:Npn\cs_gen_sym:N#1{ -\num_gincr:N\g_gen_sym_num -\tl_set:Nc#1{l*\tex_romannumeral:D\num_use:N\g_gen_sym_num} +\int_gincr:N\g_gen_sym_num +\tl_set:Nc#1{l*\tex_romannumeral:D\int_use:N\g_gen_sym_int} \exp_after:wN\cs_record_name:N#1 \exp_after:wN\tl_clear_new:N#1} \cs_new_nopar:Npn\cs_ggen_sym:N#1{ -\num_gincr:N\g_ggen_sym_num -\tl_set:Nc#1{g*\tex_romannumeral:D\num_use:N\g_ggen_sym_num} +\int_gincr:N\g_ggen_sym_int +\tl_set:Nc#1{g*\tex_romannumeral:D\int_use:N\g_ggen_sym_int} \exp_after:wN\cs_record_name:N#1 \exp_after:wN\tl_clear_new:N#1} \seq_new:N\g_cs_trace_seq @@ -122,11 +118,11 @@ \g_register_trace_seq#1} \cs_new_nopar:Npn\dumpLaTeXstate#1{ \iow_term:x{Dumping~commands~into~(#1.dmp)} - \iow_open:Nn\c_cs_dump_stream{#1.dmp} + \iow_open:Nn\g_cs_dump_stream{#1.dmp} \seq_map_inline:Nn \g_cs_trace_seq {\tex_message:D{.} - \iow_now:Nx\c_cs_dump_stream + \iow_now:Nx\g_cs_dump_stream {\token_to_str:N##1~ \token_to_meaning:N##1} } @@ -134,10 +130,11 @@ \seq_map_inline:Nn \g_register_trace_seq {\tex_message:D{.} - \iow_now:Nx\c_cs_dump_stream + \iow_now:Nx\g_cs_dump_stream {\token_to_str:N##1 \toks_use:N##1} } + \iow_clos:Nn \g_cs_dump_stream \tex_message:D{~finished} } %% diff --git a/Master/texmf-dist/tex/latex/expl3/l3prg.sty b/Master/texmf-dist/tex/latex/expl3/l3prg.sty index 63354678065..5476a648597 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 1677 2009-11-02 08:24:04Z joseph $ +\GetIdInfo$Id: l3prg.dtx 1853 2010-03-21 09:11:08Z joseph $ {L3 Experimental control structures} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -112,6 +112,7 @@ \cs_end:{#1#1#1#1#1#1#1#1#1#1}#1#1#1#1#1#1#1#1} \cs_new:cpn {prg_replicate_9:n}#1{ \cs_end:{#1#1#1#1#1#1#1#1#1#1}#1#1#1#1#1#1#1#1#1} +\cs_new:cpn {prg_replicate_first_-:n}#1{\cs_end: \ERROR } \cs_new:cpn {prg_replicate_first_0:n}#1{\cs_end: } \cs_new:cpn {prg_replicate_first_1:n}#1{\cs_end: #1} \cs_new:cpn {prg_replicate_first_2:n}#1{\cs_end: #1#1} @@ -147,7 +148,7 @@ } } \int_new:N\g_prg_inline_level_int -\cs_new:Npn\prg_stepwise_inline:nnnn #1#2#3#4{ +\cs_new_protected:Npn\prg_stepwise_inline:nnnn #1#2#3#4{ \int_gincr:N \g_prg_inline_level_int \cs_gset_nopar:cpn{prg_stepwise_inline_\int_use:N\g_prg_inline_level_int :n}##1{#4} \intexpr_compare:nNnTF {#2}<\c_zero @@ -173,13 +174,13 @@ {\intexpr_eval:n{#2 + #3}} {#3}{#4} } } -\cs_new:Npn \prg_stepwise_variable:nnnNn #1#2 { +\cs_new_protected:Npn \prg_stepwise_variable:nnnNn #1#2 { \intexpr_compare:nNnTF {#2}<\c_zero {\exp_args:Nf\prg_stepwise_variable_decr:nnnNn} {\exp_args:Nf\prg_stepwise_variable_incr:nnnNn} {\intexpr_eval:n{#1}}{#2} } -\cs_new:Npn \prg_stepwise_variable_incr:nnnNn #1#2#3#4#5 { +\cs_new_protected:Npn \prg_stepwise_variable_incr:nnnNn #1#2#3#4#5 { \intexpr_compare:nNnF {#1}>{#3} { \cs_set_nopar:Npn #4{#1} #5 @@ -187,7 +188,7 @@ {\intexpr_eval:n{#1 + #2}}{#2}{#3}#4{#5} } } -\cs_new:Npn \prg_stepwise_variable_decr:nnnNn #1#2#3#4#5 { +\cs_new_protected:Npn \prg_stepwise_variable_decr:nnnNn #1#2#3#4#5 { \intexpr_compare:nNnF {#1}<{#3} { \cs_set_nopar:Npn #4{#1} #5 @@ -195,16 +196,16 @@ {\intexpr_eval:n{#1 + #2}}{#2}{#3}#4{#5} } } -\cs_new_nopar:Npn \bool_new:N #1 { \cs_new_eq:NN #1 \c_false_bool } -\cs_new_nopar:Npn \bool_new:c #1 { \cs_new_eq:cN {#1} \c_false_bool } -\cs_new_nopar:Npn \bool_set_true:N #1 { \cs_set_eq:NN #1 \c_true_bool } -\cs_new_nopar:Npn \bool_set_true:c #1 { \cs_set_eq:cN {#1} \c_true_bool } -\cs_new_nopar:Npn \bool_set_false:N #1 { \cs_set_eq:NN #1 \c_false_bool } -\cs_new_nopar:Npn \bool_set_false:c #1 { \cs_set_eq:cN {#1} \c_false_bool } -\cs_new_nopar:Npn \bool_gset_true:N #1 { \cs_gset_eq:NN #1 \c_true_bool } -\cs_new_nopar:Npn \bool_gset_true:c #1 { \cs_gset_eq:cN {#1} \c_true_bool } -\cs_new_nopar:Npn \bool_gset_false:N #1 { \cs_gset_eq:NN #1 \c_false_bool } -\cs_new_nopar:Npn \bool_gset_false:c #1 { \cs_gset_eq:cN {#1} \c_false_bool } +\cs_new_protected_nopar:Npn \bool_new:N #1 { \cs_new_eq:NN #1 \c_false_bool } +\cs_new_protected_nopar:Npn \bool_new:c #1 { \cs_new_eq:cN {#1} \c_false_bool } +\cs_new_protected_nopar:Npn \bool_set_true:N #1 { \cs_set_eq:NN #1 \c_true_bool } +\cs_new_protected_nopar:Npn \bool_set_true:c #1 { \cs_set_eq:cN {#1} \c_true_bool } +\cs_new_protected_nopar:Npn \bool_set_false:N #1 { \cs_set_eq:NN #1 \c_false_bool } +\cs_new_protected_nopar:Npn \bool_set_false:c #1 { \cs_set_eq:cN {#1} \c_false_bool } +\cs_new_protected_nopar:Npn \bool_gset_true:N #1 { \cs_gset_eq:NN #1 \c_true_bool } +\cs_new_protected_nopar:Npn \bool_gset_true:c #1 { \cs_gset_eq:cN {#1} \c_true_bool } +\cs_new_protected_nopar:Npn \bool_gset_false:N #1 { \cs_gset_eq:NN #1 \c_false_bool } +\cs_new_protected_nopar:Npn \bool_gset_false:c #1 { \cs_gset_eq:cN {#1} \c_false_bool } \cs_new_eq:NN \bool_set_eq:NN \cs_set_eq:NN \cs_new_eq:NN \bool_set_eq:Nc \cs_set_eq:Nc \cs_new_eq:NN \bool_set_eq:cN \cs_set_eq:cN @@ -249,8 +250,28 @@ :w } #1 } -\cs_set:cpn {bool_!:w}#1{ - \exp_after:wN \intexpr_if_even_p:n \tex_number:D \bool_get_next:N +\cs_set:cpn { bool_!:w } #1#2 { + \if_meaning:w ( #2 + \exp_after:wN \bool_Not:w + \else: + \if_meaning:w ! #2 + \exp_after:wN \exp_after:wN \exp_after:wN \use_none:n + \else: + \exp_after:wN \exp_after:wN \exp_after:wN \bool_Not:N + \fi: + \fi: + #2 +} +\cs_new:Npn \bool_Not:w { + \exp_after:wN \intexpr_if_even_p:n \tex_number:D \bool_get_next:N +} +\cs_new:Npn \bool_Not:N #1 { + \exp_after:wN \bool_p:w + \if_meaning:w #1 \c_true_bool + \c_false_bool + \else: + \c_true_bool + \fi: } \cs_set:cpn {bool_(:w}#1{ \exp_after:wN \bool_cleanup:N \tex_number:D \bool_get_next:N @@ -349,7 +370,7 @@ } \cs_new:Npn \prg_end_case:nw #1#2\q_recursion_stop#3{#1} -\cs_new_nopar:Npn \prg_define_quicksort:nnn #1#2#3 { +\cs_new_protected_nopar:Npn \prg_define_quicksort:nnn #1#2#3 { \cs_set:cpx{#1_quicksort:n}##1{ \exp_not:c{#1_quicksort_start_partition:w} ##1 \exp_not:n{#2\q_nil#3\q_stop} diff --git a/Master/texmf-dist/tex/latex/expl3/l3prop.sty b/Master/texmf-dist/tex/latex/expl3/l3prop.sty index 14c542416e8..9d702a4004f 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 1622 2009-10-25 06:41:23Z will $ +\GetIdInfo$Id: l3prop.dtx 1857 2010-03-21 21:32:09Z joseph $ {L3 Experimental Property Lists} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -70,7 +70,7 @@ \cs_new_eq:NN \prop_gset_eq:cc \toks_gset_eq:cc \cs_new_eq:NN \prop_show:N \toks_show:N \cs_new_eq:NN \prop_show:c \toks_show:c -\cs_new_nopar:Npn \prop_display:N #1 { +\cs_new_protected_nopar:Npn \prop_display:N #1 { \iow_term:x { Property-list~\token_to_str:N #1~contains~ the~pairs~(without~outer~braces): } \toks_clear:N \l_tmpa_toks @@ -79,50 +79,50 @@ \toks_put_right:Nx \l_tmpa_toks {^^J>~} } \toks_put_right:Nx \l_tmpa_toks { - \iow_space: \iow_char:N \{ \exp_not:n {##1} \iow_char:N \} \iow_space: - \iow_space: => \iow_space: - \iow_space: \iow_char:N \{ \exp_not:n {##2} \iow_char:N \} + \c_space_tl \iow_char:N \{ \exp_not:n {##1} \iow_char:N \} \c_space_tl + \c_space_tl => \c_space_tl + \c_space_tl \iow_char:N \{ \exp_not:n {##2} \iow_char:N \} } } \toks_show:N \l_tmpa_toks } \cs_generate_variant:Nn \prop_display:N {c} -\cs_new:Npn \prop_split_aux:Nnn #1#2#3{ +\cs_new_protected:Npn \prop_split_aux:Nnn #1#2#3{ \cs_set:Npn \prop_tmp:w ##1 \q_prop #2 \q_prop ##2##3 \q_stop { #3 {##1}{##2}{##3} } \exp_after:wN \prop_tmp:w \toks_use:N #1 \q_prop #2 \q_prop \q_no_value \q_stop } -\cs_new:Npn \prop_get:NnN #1#2 { +\cs_new_protected:Npn \prop_get:NnN #1#2 { \prop_split_aux:Nnn #1{#2}\prop_get_aux:w } -\cs_new:Npn \prop_get_aux:w #1#2#3#4 { \tl_set:Nx #4 {\exp_not:n{#2}} } +\cs_new_protected:Npn \prop_get_aux:w #1#2#3#4 { \tl_set:Nn #4 {#2} } \cs_generate_variant:Nn \prop_get:NnN { NVN, cnN, cVN } -\cs_new:Npn \prop_gget:NnN #1#2{ +\cs_new_protected:Npn \prop_gget:NnN #1#2{ \prop_split_aux:Nnn #1{#2}\prop_gget_aux:w} -\cs_new:Npn \prop_gget_aux:w #1#2#3#4{\tl_gset:Nx#4{\exp_not:n{#2}}} +\cs_new_protected:Npn \prop_gget_aux:w #1#2#3#4{\tl_gset:Nx#4{\exp_not:n{#2}}} \cs_generate_variant:Nn \prop_gget:NnN { NVN, cnN, cVN } -\cs_new:Npn \prop_get_gdel:NnN #1#2#3{ +\cs_new_protected:Npn \prop_get_gdel:NnN #1#2#3{ \prop_split_aux:Nnn #1{#2}{\prop_get_del_aux:w #3{\toks_gset:Nn #1}{#2}}} -\cs_new:Npn \prop_get_del_aux:w #1#2#3#4#5#6{ - \tl_set:Nx #1{\exp_not:n{#5}} +\cs_new_protected:Npn \prop_get_del_aux:w #1#2#3#4#5#6{ + \tl_set:Nn #1 {#5} \quark_if_no_value:NF #1 { \cs_set_nopar:Npn \prop_tmp:w ##1\q_prop#3\q_prop\q_no_value {#2{#4##1}} \prop_tmp:w #6} } -\cs_new:Npn \prop_put:Nnn #1#2{ +\cs_new_protected:Npn \prop_put:Nnn #1#2{ \prop_split_aux:Nnn #1{#2}{ \prop_clear:N #1 \prop_put_aux:w {\toks_put_right:Nn #1}{#2} } } -\cs_new:Npn \prop_gput:Nnn #1#2{ +\cs_new_protected:Npn \prop_gput:Nnn #1#2{ \prop_split_aux:Nnn #1{#2}{ \prop_gclear:N #1 \prop_put_aux:w {\toks_gput_right:Nn #1}{#2} } } -\cs_new:Npn \prop_put_aux:w #1#2#3#4#5#6{ +\cs_new_protected:Npn \prop_put_aux:w #1#2#3#4#5#6{ #1{\q_prop#2\q_prop{#6}#3} \tl_if_empty:nF{#5} { @@ -131,12 +131,12 @@ } } \cs_generate_variant:Nn \prop_put:Nnn { NnV, NVn, NVV, cnn } -\cs_generate_variant:Nn \prop_gput:Nnn {NnV,Nno,Nnx,Nox,cnn,ccx} -\cs_new:Npn \prop_del:Nn #1#2{ +\cs_generate_variant:Nn \prop_gput:Nnn {NVn,NnV,Nno,Nnx,Nox,cnn,ccx} +\cs_new_protected:Npn \prop_del:Nn #1#2{ \prop_split_aux:Nnn #1{#2}{\prop_del_aux:w {\toks_set:Nn #1}{#2}}} -\cs_new:Npn \prop_gdel:Nn #1#2{ +\cs_new_protected:Npn \prop_gdel:Nn #1#2{ \prop_split_aux:Nnn #1{#2}{\prop_del_aux:w {\toks_gset:Nn #1}{#2}}} -\cs_new:Npn \prop_del_aux:w #1#2#3#4#5{ +\cs_new_protected:Npn \prop_del_aux:w #1#2#3#4#5{ \cs_set_nopar:Npn \prop_tmp:w {#4} \quark_if_no_value:NF \prop_tmp:w { \cs_set_nopar:Npn \prop_tmp:w ##1\q_prop#2\q_prop\q_no_value {#1{#3##1}} @@ -145,9 +145,9 @@ } \cs_generate_variant:Nn \prop_del:Nn { NV } \cs_generate_variant:Nn \prop_gdel:Nn { NV } -\cs_new:Npn \prop_gput_if_new:Nnn #1#2{ +\cs_new_protected:Npn \prop_gput_if_new:Nnn #1#2{ \prop_split_aux:Nnn #1{#2}{\prop_put_if_new_aux:w #1{#2}}} -\cs_new:Npn \prop_put_if_new_aux:w #1#2#3#4#5#6{ +\cs_new_protected:Npn \prop_put_if_new_aux:w #1#2#3#4#5#6{ \tl_if_empty:nT {#5}{#1{\q_prop#2\q_prop{#6}#3}}} \prg_new_eq_conditional:NNn \prop_if_empty:N \toks_if_empty:N {p,TF,T,F} \prg_new_eq_conditional:NNn \prop_if_empty:c \toks_if_empty:c {p,TF,T,F} @@ -155,7 +155,7 @@ \prg_new_eq_conditional:NNn \prop_if_eq:cN \toks_if_eq:cN {p,TF,T,F} \prg_new_eq_conditional:NNn \prop_if_eq:Nc \toks_if_eq:Nc {p,TF,T,F} \prg_new_eq_conditional:NNn \prop_if_eq:cc \toks_if_eq:cc {p,TF,T,F} -\prg_new_conditional:Nnn \prop_if_in:Nn {TF,T,F} { +\prg_new_protected_conditional:Nnn \prop_if_in:Nn {TF,T,F} { \prop_split_aux:Nnn #1 {#2} {\prop_if_in_aux:w} } \cs_new_nopar:Npn \prop_if_in_aux:w #1#2#3 { @@ -177,7 +177,7 @@ } \cs_generate_variant:Nn \prop_map_function:NN {c,Nc,cc} \int_new:N \g_prop_inline_level_int -\cs_new_nopar:Npn \prop_map_inline:Nn #1#2 { +\cs_new_protected_nopar:Npn \prop_map_inline:Nn #1#2 { \int_gincr:N \g_prop_inline_level_int \cs_gset:cpn {prop_map_inline_ \int_use:N \g_prop_inline_level_int :n} ##1##2{#2} diff --git a/Master/texmf-dist/tex/latex/expl3/l3quark.sty b/Master/texmf-dist/tex/latex/expl3/l3quark.sty index 8302f07306a..79e0f26f0b3 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3quark.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3quark.sty @@ -48,12 +48,12 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3quark.dtx 1365 2009-05-31 17:26:17Z mittelba $ +\GetIdInfo$Id: l3quark.dtx 1853 2010-03-21 09:11:08Z joseph $ {L3 Experimental Quark Commands} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} \package_check_loaded_expl: -\cs_new_nopar:Npn \quark_new:N #1{\tl_new:Nn #1{#1}} +\cs_new_protected_nopar:Npn \quark_new:N #1 { \tl_const:Nn #1 {#1} } \quark_new:N \q_stop \quark_new:N \q_no_value \quark_new:N \q_nil @@ -110,7 +110,7 @@ \prg_new_conditional:Nnn \quark_if_no_value:n {p,TF,T,F} { \exp_args:NNo \if_predicate:w \str_if_eq_var_p:nf - {\token_to_str:N\q_no_value\iow_space:} + {\token_to_str:N\q_no_value\c_space_tl} {\tl_to_str:n{#1}} \prg_return_true: \else: \prg_return_false: \fi: @@ -132,7 +132,7 @@ \prg_new_conditional:Nnn \quark_if_nil:n {p,TF,T,F} { \exp_args:NNo \if_predicate:w \str_if_eq_var_p:nf - {\token_to_str:N\q_nil\iow_space:} + {\token_to_str:N\q_nil\c_space_tl} {\tl_to_str:n{#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 a14df7ccef1..8f6b8c95e01 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3seq.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3seq.sty @@ -15,7 +15,7 @@ %% Do not distribute a modified version of this file. %% %% -%% File: l3seq.dtx Copyright (C) 1990-2009 LaTeX3 project +%% File: l3seq.dtx Copyright (C) 1990-2010 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 @@ -48,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3seq.dtx 1692 2009-11-03 21:02:34Z joseph $ +\GetIdInfo$Id: l3seq.dtx 1857 2010-03-21 21:32:09Z joseph $ {L3 Experimental sequences and stacks} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -73,7 +73,7 @@ \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_nopar:Npn \seq_gconcat:NNN #1#2#3 { +\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} @@ -81,11 +81,11 @@ \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_testa_tl % catch prefixes + \tl_clear:N \l_kernel_testa_tl % catch prefixes \msg_kernel_bug:x {Empty~sequence~`\token_to_str:N#1'} \fi: } -\prg_new_conditional:Nnn \seq_if_in:Nn {TF,T,F} { +\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: @@ -95,26 +95,26 @@ \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_nopar:Npn \seq_get:NN #1 { +\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:Npn \seq_get_aux:w \seq_elt:w #1 \seq_elt_end: #2 \q_stop #3 { +\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:Npn \seq_pop_aux:nnNN #1#2#3 { +\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:Npn \seq_pop_aux:w +\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_nopar:Npn \seq_display:N #1 { +\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 @@ -123,85 +123,84 @@ \toks_put_right:Nx \l_tmpa_toks {^^J>~} } \toks_put_right:Nx \l_tmpa_toks { - \iow_space: \iow_char:N \{ \exp_not:n {##1} \iow_char:N \} + \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:Npn \seq_put_aux:Nnn #1 { +\cs_new_protected:Npn \seq_put_aux:Nnn #1 { \exp_after:wN \seq_put_aux:w #1 \q_stop #1 } -\cs_new:Npn \seq_put_aux:w #1\q_stop #2#3#4 { \tl_set:Nn #2 {#3#1#4} } -\cs_new:Npn \seq_put_left:Nn #1#2 { +\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:Npn \seq_put_right:Nn #1#2{ +\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:Npn \seq_gput_left:Nn { +\cs_new_protected:Npn \seq_gput_left:Nn { \pref_global:D \seq_put_left:Nn } -\cs_new:Npn \seq_gput_right: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_generate_variant:Nn \seq_gput_right:Nn {Nc} -\cs_new:Npn \seq_map_variable_aux:Nnw #1#2 \seq_elt:w #3 \seq_elt_end: { - \tl_set:Nx #1{\exp_not:n{#3}} +\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:Npn \seq_map_variable:NNn #1#2#3 { - \tl_set:Nx #2 {\exp_not:n{\seq_map_variable_aux:Nnw #2{#3}}} +\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_nopar:Npn \seq_map_function:NN #1#2 { +\cs_new_protected_nopar:Npn \seq_map_function:NN #1#2 { \cs_set:Npn \seq_elt:w ##1 \seq_elt_end: {#2{##1}} - #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_nopar:Npn \seq_map_inline:Nn #1#2 { +\cs_new_protected_nopar:Npn \seq_map_inline: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_inline:Nn {c} \seq_new:N \l_seq_remove_seq -\cs_new:Npn \seq_remove_duplicates_aux:NN #1#2 { +\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:Npn \seq_remove_duplicates_aux:n #1 { +\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_nopar:Npn \seq_remove_duplicates:N { +\cs_new_protected_nopar:Npn \seq_remove_duplicates:N { \seq_remove_duplicates_aux:NN \seq_set_eq:NN } -\cs_new_nopar:Npn \seq_gremove_duplicates:N { +\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_nopar:Npn \seq_pop:NN { \seq_pop_aux:nnNN \tl_set:Nn \tl_set:Nn } +\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_nopar:Npn \seq_gpop:NN { \seq_pop_aux:nnNN \tl_gset:Nn \tl_set: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 diff --git a/Master/texmf-dist/tex/latex/expl3/l3skip.sty b/Master/texmf-dist/tex/latex/expl3/l3skip.sty index 53462fcaea7..210d9e0c86b 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3skip.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3skip.sty @@ -48,42 +48,50 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3skip.dtx 1362 2009-05-28 20:19:21Z joseph $ +\GetIdInfo$Id: l3skip.dtx 1867 2010-03-23 13:03:12Z will $ {L3 Experimental skip registers} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} \package_check_loaded_expl: -\cs_new_nopar:Npn \skip_new:N #1 { +\cs_new_protected_nopar:Npn \skip_new:N #1 { \chk_if_free_cs:N #1 \newskip #1 } +\cs_new_protected_nopar:Npn \skip_new_local:N #1 { + \chk_if_free_cs:N #1 + \int_compare:nNnTF + \tex_currentgrouplevel:D = 0 + \newskip \locskip + #1 +} \cs_generate_variant:Nn \skip_new:N {c} -\cs_new_nopar:Npn \skip_set:Nn #1#2 { +\cs_generate_variant:Nn \skip_new_local:N {c} +\cs_new_protected_nopar:Npn \skip_set:Nn #1#2 { #1\skip_eval:n{#2} } -\cs_new_nopar:Npn \skip_gset:Nn { +\cs_new_protected_nopar:Npn \skip_gset:Nn { \pref_global:D \skip_set:Nn } \cs_generate_variant:Nn \skip_set:Nn {cn} \cs_generate_variant:Nn \skip_gset:Nn {cn} -\cs_new_nopar:Npn \skip_zero:N #1{ +\cs_new_protected_nopar:Npn \skip_zero:N #1{ #1\c_zero_skip \scan_stop: } -\cs_new_nopar:Npn \skip_gzero:N { +\cs_new_protected_nopar:Npn \skip_gzero:N { \pref_global:D \skip_zero:N } \cs_generate_variant:Nn \skip_zero:N {c} \cs_generate_variant:Nn \skip_gzero:N {c} -\cs_new_nopar:Npn \skip_add:Nn #1#2 { +\cs_new_protected_nopar:Npn \skip_add:Nn #1#2 { \tex_advance:D#1 by \skip_eval:n{#2} } \cs_generate_variant:Nn \skip_add:Nn {cn} -\cs_new_nopar:Npn \skip_sub:Nn #1#2{ +\cs_new_protected_nopar:Npn \skip_sub:Nn #1#2{ \tex_advance:D#1-\skip_eval:n{#2} } -\cs_new_nopar:Npn \skip_gadd:Nn { +\cs_new_protected_nopar:Npn \skip_gadd:Nn { \pref_global:D \skip_add:Nn } @@ -102,7 +110,7 @@ \cs_generate_variant:Nn \skip_use:N {c} \cs_new_eq:NN \skip_show:N \tex_showthe:D \cs_new_nopar:Npn \skip_show:c #1 { \skip_show:N \cs:w #1 \cs_end: } -\cs_new_nopar:Npn \skip_eval:n #1 { \etex_glueexpr:D #1 \scan_stop: } +\cs_new_protected_nopar:Npn \skip_eval:n #1 { \etex_glueexpr:D #1 \scan_stop: } %%\chk_if_free_cs:N \l_tmpa_skip %%\tex_skipdef:D\l_tmpa_skip 255 %currently taken up by \skip@ \skip_new:N \l_tmpa_skip @@ -130,28 +138,36 @@ #4 = \etex_glueshrink:D #1 \scan_stop: } } -\cs_new_nopar:Npn \dim_new:N #1 { +\cs_new_protected_nopar:Npn \dim_new:N #1 { \chk_if_free_cs:N #1 \newdimen #1 } +\cs_new_protected_nopar:Npn \dim_new_local:N #1 { + \chk_if_free_cs:N #1 + \int_compare:nNnTF + \tex_currentgrouplevel:D = 0 + \newdimen \locdimen + #1 +} \cs_generate_variant:Nn \dim_new:N {c} -\cs_new_nopar:Npn \dim_set:Nn #1#2 { #1~ \dim_eval:n{#2} } +\cs_generate_variant:Nn \dim_new_local:N {c} +\cs_new_protected_nopar:Npn \dim_set:Nn #1#2 { #1~ \dim_eval:n{#2} } \cs_generate_variant:Nn \dim_set:Nn {cn,Nc} -\cs_new_nopar:Npn \dim_gset:Nn { \pref_global:D \dim_set:Nn } +\cs_new_protected_nopar:Npn \dim_gset:Nn { \pref_global:D \dim_set:Nn } \cs_generate_variant:Nn \dim_gset:Nn {cn,Nc,cc} -\cs_new_nopar:Npn \dim_zero:N #1 { #1\c_zero_skip } +\cs_new_protected_nopar:Npn \dim_zero:N #1 { #1\c_zero_skip } \cs_generate_variant:Nn \dim_zero:N {c} -\cs_new_nopar:Npn \dim_gzero:N { \pref_global:D \dim_zero:N } +\cs_new_protected_nopar:Npn \dim_gzero:N { \pref_global:D \dim_zero:N } \cs_generate_variant:Nn \dim_gzero:N {c} -\cs_new_nopar:Npn \dim_add:Nn #1#2{ +\cs_new_protected_nopar:Npn \dim_add:Nn #1#2{ \tex_advance:D#1 by \dim_eval:n{#2}\scan_stop: } \cs_generate_variant:Nn \dim_add:Nn {cn,Nc} -\cs_new_nopar:Npn \dim_gadd:Nn { \pref_global:D \dim_add:Nn } +\cs_new_protected_nopar:Npn \dim_gadd:Nn { \pref_global:D \dim_add:Nn } \cs_generate_variant:Nn \dim_gadd:Nn {cn} -\cs_new_nopar:Npn \dim_sub:Nn #1#2 { \tex_advance:D#1-#2\scan_stop: } +\cs_new_protected_nopar:Npn \dim_sub:Nn #1#2 { \tex_advance:D#1-#2\scan_stop: } \cs_generate_variant:Nn \dim_sub:Nn {cn,Nc} -\cs_new_nopar:Npn \dim_gsub:Nn { \pref_global:D \dim_sub:Nn } +\cs_new_protected_nopar:Npn \dim_gsub:Nn { \pref_global:D \dim_sub:Nn } \cs_generate_variant:Nn \dim_gsub:Nn {cn} \cs_new_eq:NN \dim_use:N \tex_the:D \cs_generate_variant:Nn \dim_use:N {c} @@ -165,7 +181,7 @@ \dim_new:N \g_tmpb_dim \cs_new_eq:NN \c_zero_dim \c_zero_skip \cs_new_eq:NN \c_max_dim \c_max_skip -\cs_new_nopar:Npn \dim_eval:n #1 { \etex_dimexpr:D #1 \scan_stop: } +\cs_new_protected_nopar:Npn \dim_eval:n #1 { \etex_dimexpr:D #1 \scan_stop: } \cs_new_eq:NN \if_dim:w \tex_ifdim:D \prg_new_conditional:Nnn \dim_compare:nNn {p,TF,T,F} { \if_dim:w \dim_eval:n {#1} #2 \dim_eval:n {#3} @@ -183,16 +199,23 @@ \cs_new_nopar:Npn \dim_do_until:nNnn #1#2#3#4{ #4 \dim_compare:nNnF {#1}#2{#3}{\dim_do_until:nNnn {#1}#2{#3}{#4}} } -\cs_new_nopar:Npn \muskip_new:N #1 { +\cs_new_protected_nopar:Npn \muskip_new:N #1 { \chk_if_free_cs:N #1 \newmuskip #1 } -\cs_new_nopar:Npn \muskip_set:Nn#1#2{#1\etex_muexpr:D#2\scan_stop:} -\cs_new_nopar:Npn \muskip_gset:Nn{\pref_global:D\muskip_set:Nn} -\cs_new_nopar:Npn \muskip_add:Nn#1#2{\tex_advance:D#1\etex_muexpr:D#2\scan_stop:} -\cs_new_nopar:Npn \muskip_gadd:Nn{\pref_global:D\muskip_add:Nn} -\cs_new_nopar:Npn \muskip_sub:Nn#1#2{\tex_advance:D#1-\etex_muexpr:D#2\scan_stop:} -\cs_new_nopar:Npn \muskip_gsub:Nn{\pref_global:D\muskip_sub:Nn} +\cs_new_protected_nopar:Npn \muskip_new_local:N #1 { + \chk_if_free_cs:N #1 + \int_compare:nNnTF + \tex_currentgrouplevel:D = 0 + \newmuskip \locmuskip + #1 +} +\cs_new_protected_nopar:Npn \muskip_set:Nn#1#2{#1\etex_muexpr:D#2\scan_stop:} +\cs_new_protected_nopar:Npn \muskip_gset:Nn{\pref_global:D\muskip_set:Nn} +\cs_new_protected_nopar:Npn \muskip_add:Nn#1#2{\tex_advance:D#1\etex_muexpr:D#2\scan_stop:} +\cs_new_protected_nopar:Npn \muskip_gadd:Nn{\pref_global:D\muskip_add:Nn} +\cs_new_protected_nopar:Npn \muskip_sub:Nn#1#2{\tex_advance:D#1-\etex_muexpr:D#2\scan_stop:} +\cs_new_protected_nopar:Npn \muskip_gsub:Nn{\pref_global:D\muskip_sub:Nn} \cs_new_eq:NN \muskip_use:N \tex_the:D %% %% diff --git a/Master/texmf-dist/tex/latex/expl3/l3tl.sty b/Master/texmf-dist/tex/latex/expl3/l3tl.sty index 7ca05792d8e..00dcc85798c 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3tl.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3tl.sty @@ -15,7 +15,7 @@ %% Do not distribute a modified version of this file. %% %% -%% File: l3tl.dtx Copyright (C) 1990-2009 LaTeX3 project +%% File: l3tl.dtx Copyright (C) 1990-2010 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 @@ -48,22 +48,26 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3tl.dtx 1621 2009-10-25 06:36:19Z will $ +\GetIdInfo$Id: l3tl.dtx 1873 2010-03-24 08:32:54Z joseph $ {L3 Experimental Token Lists} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} \package_check_loaded_expl: -\cs_new:Npn \tl_new:Nn #1#2{ +\cs_new_protected:Npn \tl_new:Nn #1#2{ \chk_if_free_cs:N #1 \cs_gset_nopar:Npn #1{#2} } \cs_generate_variant:Nn \tl_new:Nn {cn} -\cs_new:Npn \tl_new:Nx #1#2{ +\cs_new_protected:Npn \tl_new:Nx #1#2{ \chk_if_free_cs:N #1 \cs_gset_nopar:Npx #1{#2} } -\cs_new_nopar:Npn \tl_new:N #1{\tl_new:Nn #1{}} -\cs_new_nopar:Npn \tl_new:c #1{\tl_new:cn {#1}{}} +\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}{}} +\cs_new_protected:Npn \tl_const:Nn #1#2 { + \tl_new:N #1 + \tl_gset:Nn #1 {#2} +} \cs_new_nopar:Npn \tl_use:N #1 { \if_meaning:w #1 \tex_relax:D \msg_kernel_bug:x {Token~list~variable~ `\token_to_str:N #1'~ @@ -76,100 +80,141 @@ \cs_new_nopar:Npn \tl_show:N #1 { \cs_show:N #1 } \cs_generate_variant:Nn \tl_show:N {c} \cs_set_eq:NN \tl_show:n \etex_showtokens:D -\cs_new:Npn\tl_set:Nn#1#2{\cs_set_nopar:Npn#1{#2}} -\cs_new:Npn\tl_set:Nx#1#2{\cs_set_nopar:Npx#1{#2}} -\cs_new:Npn\tl_gset:Nn#1#2{\cs_gset_nopar:Npn#1{#2}} -\cs_new:Npn\tl_gset:Nx#1#2{\cs_gset_nopar:Npx#1{#2}} -\cs_generate_variant:Nn \tl_set:Nn {NV,No,Nv,Nf,cn,cV,co,cx} -\cs_generate_variant:Nn \tl_gset:Nn {NV,No,Nv,cn,cx} +\cs_new_protected:Npn \tl_set:Nn #1#2 { + \cs_set_nopar:Npx #1 { \exp_not:n {#2} } +} +\cs_new_protected:Npn \tl_set:Nx #1#2 { + \cs_set_nopar:Npx #1 {#2} +} +\cs_new_protected:Npn \tl_gset:Nn #1#2 { + \cs_gset_nopar:Npx #1 { \exp_not:n {#2} } +} +\cs_new_protected:Npn \tl_gset:Nx #1#2 { + \cs_gset_nopar:Npx #1 {#2} +} +\cs_generate_variant:Nn \tl_set:Nn { NV } +\cs_generate_variant:Nn \tl_set:Nn { Nv } +\cs_generate_variant:Nn \tl_set:Nn { No } +\cs_generate_variant:Nn \tl_set:Nn { Nf } +\cs_generate_variant:Nn \tl_set:Nn { cV } +\cs_generate_variant:Nn \tl_set:Nn { c } +\cs_generate_variant:Nn \tl_set:Nn { cv } +\cs_generate_variant:Nn \tl_set:Nn { co } +\cs_generate_variant:Nn \tl_set:Nx { c } +\cs_generate_variant:Nn \tl_gset:Nn { NV } +\cs_generate_variant:Nn \tl_gset:Nn { Nv } +\cs_generate_variant:Nn \tl_gset:Nn { No } +\cs_generate_variant:Nn \tl_gset:Nn { Nf } +\cs_generate_variant:Nn \tl_gset:Nn { c } +\cs_generate_variant:Nn \tl_gset:Nn { cV } +\cs_generate_variant:Nn \tl_gset:Nn { cv } +\cs_generate_variant:Nn \tl_gset:Nx { c } + \cs_new_eq:NN \tl_set_eq:NN \cs_set_eq:NN \cs_new_eq:NN \tl_gset_eq:NN \cs_gset_eq:NN \cs_generate_variant:Nn \tl_set_eq:NN {Nc,c,cc} \cs_generate_variant:Nn \tl_gset_eq:NN {Nc,c,cc} -\cs_new_nopar:Npn \tl_clear:N #1{\tl_set_eq:NN #1\c_empty_tl} +\cs_new_protected_nopar:Npn \tl_clear:N #1{\tl_set_eq:NN #1\c_empty_tl} \cs_generate_variant:Nn \tl_clear:N {c} -\cs_new_nopar:Npn \tl_gclear:N #1{\tl_gset_eq:NN #1\c_empty_tl} +\cs_new_protected_nopar:Npn \tl_gclear:N #1{\tl_gset_eq:NN #1\c_empty_tl} \cs_generate_variant:Nn \tl_gclear:N {c} \cs_new_eq:NN \tl_clear_new:N \tl_clear:N \cs_generate_variant:Nn \tl_clear_new:N {c} \cs_new_eq:NN \tl_gclear_new:N \tl_gclear:N \cs_generate_variant:Nn \tl_gclear_new:N {c} -\cs_new:Npn \tl_put_left:Nn #1#2 { - \tl_set:Nn \l_exp_tl {#2} - \tl_set:Nx #1 { \exp_not:V \l_exp_tl \exp_not:V #1 } +\cs_new_protected:Npn \tl_put_right:Nn #1#2 { + \cs_set_nopar:Npx #1 { \exp_not:V #1 \exp_not:n {#2} } +} +\cs_new_protected:Npn \tl_put_right:NV #1#2 { + \cs_set_nopar:Npx #1 { \exp_not:V #1 \exp_not:V #2 } +} +\cs_new_protected:Npn \tl_put_right:Nv #1#2 { + \cs_set_nopar:Npx #1 { \exp_not:V #1 \exp_not:v {#2} } } -\cs_new:Npn \tl_put_left:NV #1#2 { - \tl_set:Nx #1 { \exp_not:V #2 \exp_not:V #1 } +\cs_new_protected:Npn \tl_put_right:Nx #1#2 { + \cs_set_nopar:Npx #1 { \exp_not:V #1 #2 } } -\cs_new:Npn \tl_put_left:No #1#2{ - \tl_set:No \l_exp_tl {#2} - \tl_set:Nx #1 { \exp_not:V \l_exp_tl \exp_not:V #1 } +\cs_new_protected:Npn \tl_put_right:No #1#2 { + \cs_set_nopar:Npx #1 { \exp_not:V #1 \exp_not:o {#2} } } -\cs_new:Npn \tl_put_left:Nx #1#2{ - \tl_set:Nx #1 { #2 \exp_not:V #1 } +\cs_new_protected:Npn \tl_gput_right:Nn #1#2 { + \cs_gset_nopar:Npx #1 { \exp_not:V #1 \exp_not:n {#2} } } -\cs_new:Npn \tl_gput_left:Nn #1#2{ - \tl_set:Nn \l_exp_tl{#2} - \tl_gset:Nx #1 { \exp_not:V \l_exp_tl \exp_not:V #1 } +\cs_new_protected:Npn \tl_gput_right:NV #1#2 { + \cs_gset_nopar:Npx #1 { \exp_not:V #1 \exp_not:V #2 } } -\cs_new:Npn \tl_gput_left:NV #1#2 { - \tl_gset:Nx #1 { \exp_not:V #2 \exp_not:V #1 } +\cs_new_protected:Npn \tl_gput_right:Nv #1#2 { + \cs_gset_nopar:Npx #1 { \exp_not:V #1 \exp_not:v {#2} } } -\cs_new:Npn \tl_gput_left:No #1#2{ - \tl_set:No \l_exp_tl {#2} - \tl_gset:Nx #1 { \exp_not:V \l_exp_tl \exp_not:V #1 } +\cs_new_protected:Npn \tl_gput_right:No #1#2 { + \cs_gset_nopar:Npx #1 { \exp_not:V #1 \exp_not:o {#2} } } -\cs_new:Npn \tl_gput_left:Nx #1#2{ - \tl_gset:Nx #1 { #2 \exp_not:V #1 } +\cs_new_protected:Npn \tl_gput_right:Nx #1#2 { + \cs_gset_nopar:Npx #1 { \exp_not:V #1 #2 } } -\cs_generate_variant:Nn \tl_put_left:Nn {cn,co,cV} -\cs_generate_variant:Nn \tl_gput_left:Nn {cn,co} -\cs_generate_variant:Nn \tl_gput_left:NV {cV} -\cs_new:Npn \tl_put_right:Nn #1#2 { - \tl_set:Nn \l_exp_tl {#2} - \tl_set:Nx #1 { \exp_not:V #1 \exp_not:V \l_exp_tl } +\cs_generate_variant:Nn \tl_put_right:Nn { c } +\cs_generate_variant:Nn \tl_put_right:NV { c } +\cs_generate_variant:Nn \tl_put_right:Nv { c } +\cs_generate_variant:Nn \tl_put_right:Nx { c } +\cs_generate_variant:Nn \tl_gput_right:Nn { c } +\cs_generate_variant:Nn \tl_gput_right:NV { c } +\cs_generate_variant:Nn \tl_gput_right:Nv { c } +\cs_generate_variant:Nn \tl_gput_right:No { c } +\cs_generate_variant:Nn \tl_gput_right:Nx { c } +\cs_new_protected:Npn \tl_put_left:Nn #1#2 { + \cs_set_nopar:Npx #1 { \exp_not:n {#2} \exp_not:V #1 } } -\cs_new:Npn \tl_gput_right:Nn #1#2{ - \tl_set:Nn \l_exp_tl {#2} - \tl_gset:Nx #1 { \exp_not:V #1 \exp_not:V \l_exp_tl } +\cs_new_protected:Npn \tl_put_left:NV #1#2 { + \cs_set_nopar:Npx #1 { \exp_not:V #2 \exp_not:V #1 } } -\cs_new:Npn \tl_put_right:NV #1#2 { - \tl_set:Nx #1 { \exp_not:V #1 \exp_not:V #2 } +\cs_new_protected:Npn \tl_put_left:Nv #1#2 { + \cs_set_nopar:Npx #1 { \exp_not:v {#2} \exp_not:V #1 } } -\cs_new:Npn \tl_put_right:No #1#2 { - \tl_set:No \l_exp_tl {#2} - \tl_set:Nx #1 { \exp_not:V #1 \exp_not:V \l_exp_tl } +\cs_new_protected:Npn \tl_put_left:Nx #1#2 { + \cs_set_nopar:Npx #1 { #2 \exp_not:V #1 } } -\cs_new:Npn \tl_gput_right:NV #1#2 { - \tl_gset:Nx #1 { \exp_not:V #1 \exp_not:V #2 } +\cs_new_protected:Npn \tl_put_left:No #1#2 { + \cs_set_nopar:Npx #1 { \exp_not:o {#2} \exp_not:V #1 } } -\cs_new:Npn \tl_gput_right:No #1#2 { - \tl_set:No \l_exp_tl {#2} - \tl_gset:Nx #1 { \exp_not:V #1 \exp_not:V \l_exp_tl } +\cs_new_protected:Npn \tl_gput_left:Nn #1#2 { + \cs_gset_nopar:Npx #1 { \exp_not:n {#2} \exp_not:V #1 } } -\cs_set:Npn \tl_put_right:Nx #1#2 { - \tl_set:Nx #1 { \exp_not:V #1 #2 } +\cs_new_protected:Npn \tl_gput_left:NV #1#2 { + \cs_gset_nopar:Npx #1 { \exp_not:V #2 \exp_not:V #1 } } -\cs_set:Npn \tl_gput_right:Nx #1#2 { - \tl_gset:Nx #1 { \exp_not:V #1 #2 } +\cs_new_protected:Npn \tl_gput_left:Nv #1#2 { + \cs_gset_nopar:Npx #1 { \exp_not:v {#2} \exp_not:V #1 } } -\cs_generate_variant:Nn \tl_put_right:Nn {cn,co} -\cs_generate_variant:Nn \tl_put_right:NV {cV} -\cs_generate_variant:Nn \tl_gput_right:Nn {cn,co,cV} -\cs_new_nopar:Npn \tl_gset:Nc { +\cs_new_protected:Npn \tl_gput_left:No #1#2 { + \cs_gset_nopar:Npx #1 { \exp_not:o {#2} \exp_not:V #1 } +} +\cs_new_protected:Npn \tl_gput_left:Nx #1#2 { + \cs_gset_nopar:Npx #1 { #2 \exp_not:V #1 } +} +\cs_generate_variant:Nn \tl_put_left:Nn { c } +\cs_generate_variant:Nn \tl_put_left:NV { c } +\cs_generate_variant:Nn \tl_put_left:Nv { c } +\cs_generate_variant:Nn \tl_put_left:Nx { c } +\cs_generate_variant:Nn \tl_gput_left:Nn { c } +\cs_generate_variant:Nn \tl_gput_left:NV { c } +\cs_generate_variant:Nn \tl_gput_left:Nv { c } +\cs_generate_variant:Nn \tl_gput_left:Nx { c } +\cs_new_protected_nopar:Npn \tl_gset:Nc { \pref_global:D \tl_set:Nc} -\cs_new_nopar:Npn \tl_set:Nc #1#2{\tl_set:No #1{\cs:w#2\cs_end:}} -\tl_new:Nn \c_job_name_tl {\tex_jobname:D} -\tl_new:Nn \c_empty_tl {} -\tl_new:Nn \g_tmpa_tl{} -\tl_new:Nn \g_tmpb_tl{} -\tl_new:Nn \l_testa_tl {} -\tl_new:Nn \l_testb_tl {} -\tl_new:Nn \g_testa_tl {} -\tl_new:Nn \g_testb_tl {} -\tl_new:Nn \l_tmpa_tl{} -\tl_new:Nn \l_tmpb_tl{} +\cs_new_protected_nopar:Npn \tl_set:Nc #1#2{\tl_set:No #1{\cs:w#2\cs_end:}} +\tl_new:N \c_job_name_tl +\tl_set:Nx \c_job_name_tl { \tex_jobname:D } +\tl_const:Nn \c_empty_tl { } +\tl_const:Nn \c_space_tl { ~ } +\tl_new:N \g_tmpa_tl +\tl_new:N \g_tmpb_tl +\tl_new:N \l_kernel_testa_tl +\tl_new:N \l_kernel_testb_tl +\tl_new:N \l_tmpa_tl +\tl_new:N \l_tmpb_tl +\tl_new:N \l_kernel_tmpa_tl +\tl_new:N \l_kernel_tmpb_tl \prg_set_conditional:Npnn \tl_if_empty:N #1 {p,TF,T,F} { \if_meaning:w #1 \c_empty_tl \prg_return_true: \else: \prg_return_false: \fi: @@ -211,6 +256,31 @@ \cs_generate_variant:Nn \tl_if_blank:nTF {o} \cs_generate_variant:Nn \tl_if_blank:nT {o} \cs_generate_variant:Nn \tl_if_blank:nF {o} +\prg_new_conditional:Nnn \tl_if_single:n {p,TF,T,F} { + \tl_if_empty:nTF {#1} + {\prg_return_false:} + { + \tl_if_blank:nTF {#1} + {\prg_return_true:} + { + \_tl_if_single_aux:w #1 \q_nil + } + } +} +\prg_new_conditional:Nnn \tl_if_single:N {p,TF,T,F} { + \tl_if_empty:NTF #1 + {\prg_return_false:} + { + \exp_after:wN \tl_if_blank:nTF #1 + {\prg_return_true:} + { + \exp_after:wN \_tl_if_single_aux:w #1 \q_nil + } + } +} +\cs_new:Npn \_tl_if_single_aux:w #1#2 \q_nil { + \tl_if_empty:nTF {#2} \prg_return_true: \prg_return_false: +} \cs_new_eq:NN \tl_compare:xx \pdf_strcmp:D \cs_new:Npn \tl_compare:nn #1#2{ \tl_compare:xx{\exp_not:n{#1}}{\exp_not:n{#2}} @@ -252,7 +322,7 @@ \tl_compare:xx{\exp_not:n\exp_after:wN{#1}}{#2} } \cs_set_nopar:Npn \tl_tmp:w #1 { - \tl_set:Nx \l_tmpa_tl { + \tl_set:Nx \l_kernel_tmpa_tl { \exp_not:N \prg_new_conditional:Npnn \exp_not:c {tl_if_eq:#1} ####1 ####2 {p,TF,T,F} { \exp_not:N \tex_ifnum:D @@ -260,7 +330,7 @@ \exp_not:n{ =\c_zero \prg_return_true: \else: \prg_return_false: \fi: } } } - \l_tmpa_tl + \l_kernel_tmpa_tl } \tl_tmp:w{xx} \tl_tmp:w{nx} \tl_tmp:w{ox} \tl_tmp:w{Vx} \tl_tmp:w{xn} \tl_tmp:w{nn} \tl_tmp:w{on} \tl_tmp:w{Vn} @@ -268,100 +338,100 @@ \tl_tmp:w{xV} \tl_tmp:w{nV} \tl_tmp:w{VV} \cs_if_exist:cF{pdf_strcmp:D}{ \prg_set_protected_conditional:Npnn \tl_if_eq:nn #1#2 {TF,T,F} { - \tl_set:Nx \l_testa_tl {\exp_not:n{#1}} - \tl_set:Nx \l_testb_tl {\exp_not:n{#2}} - \if_meaning:w\l_testa_tl \l_testb_tl + \tl_set:Nx \l_kernel_testa_tl {\exp_not:n{#1}} + \tl_set:Nx \l_kernel_testb_tl {\exp_not:n{#2}} + \if_meaning:w\l_kernel_testa_tl \l_kernel_testb_tl \prg_return_true: \else: \prg_return_false: \fi: } \prg_set_protected_conditional:Npnn \tl_if_eq:nV #1#2 {TF,T,F} { - \tl_set:Nx \l_testa_tl { \exp_not:n {#1} } - \tl_set:Nx \l_testb_tl { \exp_not:V #2 } - \if_meaning:w \l_testa_tl \l_testb_tl + \tl_set:Nx \l_kernel_testa_tl { \exp_not:n {#1} } + \tl_set:Nx \l_kernel_testb_tl { \exp_not:V #2 } + \if_meaning:w \l_kernel_testa_tl \l_kernel_testb_tl \prg_return_true: \else: \prg_return_false: \fi: } \prg_set_protected_conditional:Npnn \tl_if_eq:no #1#2 {TF,T,F} { - \tl_set:Nx \l_testa_tl {\exp_not:n{#1}} - \tl_set:Nx \l_testb_tl {\exp_not:o{#2}} - \if_meaning:w\l_testa_tl \l_testb_tl + \tl_set:Nx \l_kernel_testa_tl {\exp_not:n{#1}} + \tl_set:Nx \l_kernel_testb_tl {\exp_not:o{#2}} + \if_meaning:w\l_kernel_testa_tl \l_kernel_testb_tl \prg_return_true: \else: \prg_return_false: \fi: } \prg_set_protected_conditional:Npnn \tl_if_eq:nx #1#2 {TF,T,F} { - \tl_set:Nx \l_testa_tl {\exp_not:n{#1}} - \tl_set:Nx \l_testb_tl {#2} - \if_meaning:w\l_testa_tl \l_testb_tl + \tl_set:Nx \l_kernel_testa_tl {\exp_not:n{#1}} + \tl_set:Nx \l_kernel_testb_tl {#2} + \if_meaning:w\l_kernel_testa_tl \l_kernel_testb_tl \prg_return_true: \else: \prg_return_false: \fi: } \prg_set_protected_conditional:Npnn \tl_if_eq:Vn #1#2 {TF,T,F} { - \tl_set:Nx \l_testa_tl { \exp_not:V #1 } - \tl_set:Nx \l_testb_tl { \exp_not:n{#2} } - \if_meaning:w \l_testa_tl \l_testb_tl + \tl_set:Nx \l_kernel_testa_tl { \exp_not:V #1 } + \tl_set:Nx \l_kernel_testb_tl { \exp_not:n{#2} } + \if_meaning:w \l_kernel_testa_tl \l_kernel_testb_tl \prg_return_true: \else: \prg_return_false: \fi: } \prg_set_protected_conditional:Npnn \tl_if_eq:on #1#2 {TF,T,F} { - \tl_set:Nx \l_testa_tl {\exp_not:o{#1}} - \tl_set:Nx \l_testb_tl {\exp_not:n{#2}} - \if_meaning:w\l_testa_tl \l_testb_tl + \tl_set:Nx \l_kernel_testa_tl {\exp_not:o{#1}} + \tl_set:Nx \l_kernel_testb_tl {\exp_not:n{#2}} + \if_meaning:w\l_kernel_testa_tl \l_kernel_testb_tl \prg_return_true: \else: \prg_return_false: \fi: } \prg_set_protected_conditional:Npnn \tl_if_eq:VV #1#2 {TF,T,F} { - \tl_set:Nx \l_testa_tl { \exp_not:V #1 } - \tl_set:Nx \l_testb_tl { \exp_not:V #2 } - \if_meaning:w \l_testa_tl \l_testb_tl + \tl_set:Nx \l_kernel_testa_tl { \exp_not:V #1 } + \tl_set:Nx \l_kernel_testb_tl { \exp_not:V #2 } + \if_meaning:w \l_kernel_testa_tl \l_kernel_testb_tl \prg_return_true: \else: \prg_return_false: \fi: } \prg_set_protected_conditional:Npnn \tl_if_eq:oo #1#2 {TF,T,F} { - \tl_set:Nx \l_testa_tl {\exp_not:o{#1}} - \tl_set:Nx \l_testb_tl {\exp_not:o{#2}} - \if_meaning:w\l_testa_tl \l_testb_tl + \tl_set:Nx \l_kernel_testa_tl {\exp_not:o{#1}} + \tl_set:Nx \l_kernel_testb_tl {\exp_not:o{#2}} + \if_meaning:w\l_kernel_testa_tl \l_kernel_testb_tl \prg_return_true: \else: \prg_return_false: \fi: } \prg_set_protected_conditional:Npnn \tl_if_eq:Vx #1#2 {TF,T,F} { - \tl_set:Nx \l_testa_tl { \exp_not:V #1 } - \tl_set:Nx \l_testb_tl {#2} - \if_meaning:w \l_testa_tl \l_testb_tl + \tl_set:Nx \l_kernel_testa_tl { \exp_not:V #1 } + \tl_set:Nx \l_kernel_testb_tl {#2} + \if_meaning:w \l_kernel_testa_tl \l_kernel_testb_tl \prg_return_true: \else: \prg_return_false: \fi: } \prg_set_protected_conditional:Npnn \tl_if_eq:ox #1#2 {TF,T,F} { - \tl_set:Nx \l_testa_tl {\exp_not:o{#1}} - \tl_set:Nx \l_testb_tl {#2} - \if_meaning:w\l_testa_tl \l_testb_tl + \tl_set:Nx \l_kernel_testa_tl {\exp_not:o{#1}} + \tl_set:Nx \l_kernel_testb_tl {#2} + \if_meaning:w\l_kernel_testa_tl \l_kernel_testb_tl \prg_return_true: \else: \prg_return_false: \fi: } \prg_set_protected_conditional:Npnn \tl_if_eq:xn #1#2 {TF,T,F} { - \tl_set:Nx \l_testa_tl {#1} - \tl_set:Nx \l_testb_tl {\exp_not:n{#2}} - \if_meaning:w\l_testa_tl \l_testb_tl + \tl_set:Nx \l_kernel_testa_tl {#1} + \tl_set:Nx \l_kernel_testb_tl {\exp_not:n{#2}} + \if_meaning:w\l_kernel_testa_tl \l_kernel_testb_tl \prg_return_true: \else: \prg_return_false: \fi: } \prg_set_protected_conditional:Npnn \tl_if_eq:xV #1#2 {TF,T,F} { - \tl_set:Nx \l_testa_tl {#1} - \tl_set:Nx \l_testb_tl { \exp_not:V #2 } - \if_meaning:w \l_testa_tl \l_testb_tl + \tl_set:Nx \l_kernel_testa_tl {#1} + \tl_set:Nx \l_kernel_testb_tl { \exp_not:V #2 } + \if_meaning:w \l_kernel_testa_tl \l_kernel_testb_tl \prg_return_true: \else: \prg_return_false: \fi: } \prg_set_protected_conditional:Npnn \tl_if_eq:xo #1#2 {TF,T,F} { - \tl_set:Nx \l_testa_tl {#1} - \tl_set:Nx \l_testb_tl {\exp_not:o{#2}} - \if_meaning:w\l_testa_tl \l_testb_tl + \tl_set:Nx \l_kernel_testa_tl {#1} + \tl_set:Nx \l_kernel_testb_tl {\exp_not:o{#2}} + \if_meaning:w\l_kernel_testa_tl \l_kernel_testb_tl \prg_return_true: \else: \prg_return_false: \fi: } \prg_set_protected_conditional:Npnn \tl_if_eq:xx #1#2 {TF,T,F} { - \tl_set:Nx \l_testa_tl {#1} - \tl_set:Nx \l_testb_tl {#2} - \if_meaning:w\l_testa_tl \l_testb_tl + \tl_set:Nx \l_kernel_testa_tl {#1} + \tl_set:Nx \l_kernel_testb_tl {#2} + \if_meaning:w\l_kernel_testa_tl \l_kernel_testb_tl \prg_return_true: \else: \prg_return_false: \fi: } @@ -385,7 +455,7 @@ #1{#2} \tl_map_function_aux:Nn #1 } \cs_generate_variant:Nn \tl_map_function:NN {cN} -\cs_new:Npn \tl_map_inline:nn #1#2{ +\cs_new_protected:Npn \tl_map_inline:nn #1#2{ \int_gincr:N \g_tl_inline_level_int \cs_gset:cpn {tl_map_inline_ \int_use:N \g_tl_inline_level_int :n} ##1{#2} @@ -394,7 +464,7 @@ #1 \q_recursion_tail\q_recursion_stop \int_gdecr:N \g_tl_inline_level_int } -\cs_new:Npn \tl_map_inline:Nn #1#2{ +\cs_new_protected:Npn \tl_map_inline:Nn #1#2{ \int_gincr:N \g_tl_inline_level_int \cs_gset:cpn {tl_map_inline_ \int_use:N \g_tl_inline_level_int :n} ##1{#2} @@ -404,12 +474,12 @@ \int_gdecr:N \g_tl_inline_level_int } \cs_generate_variant:Nn \tl_map_inline:Nn {c} -\cs_new:Npn \tl_map_variable:nNn #1#2#3{ +\cs_new_protected:Npn \tl_map_variable:nNn #1#2#3{ \tl_map_variable_aux:Nnn #2 {#3} #1 \q_recursion_tail \q_recursion_stop } -\cs_new_nopar:Npn \tl_map_variable:NNn {\exp_args:No \tl_map_variable:nNn} +\cs_new_protected_nopar:Npn \tl_map_variable:NNn {\exp_args:No \tl_map_variable:nNn} \cs_generate_variant:Nn \tl_map_variable:NNn {c} -\cs_new:Npn \tl_map_variable_aux:Nnn #1#2#3{ +\cs_new_protected:Npn \tl_map_variable_aux:Nnn #1#2#3{ \tl_set:Nn #1{#3} \quark_if_recursion_tail_stop:N #1 #2 \tl_map_variable_aux:Nnn #1{#2} @@ -423,22 +493,23 @@ \tl_reverse_aux:nN {#2#1} } \cs_generate_variant:Nn \tl_reverse:n {V,o} -\cs_new_nopar:Npn \tl_reverse:N #1 { +\cs_new_protected_nopar:Npn \tl_reverse:N #1 { \tl_set:Nf #1 { \tl_reverse:o { #1 \exp_stop_f: } } } \cs_new:Npn \tl_elt_count:n #1{ \intexpr_eval:n { - \tl_map_function:nN {#1}\num_elt_count:n + 0 \tl_map_function:nN {#1} \tl_elt_count_aux:n } } \cs_generate_variant:Nn \tl_elt_count:n {V,o} \cs_new_nopar:Npn \tl_elt_count:N #1{ \intexpr_eval:n { - \tl_map_function:NN #1 \num_elt_count:n + 0 \tl_map_function:NN #1 \tl_elt_count_aux:n } } -\cs_new:Npn \tl_set_rescan:Nnn { \tl_set_rescan_aux:NNnn \tl_set:Nn } -\cs_new:Npn \tl_gset_rescan:Nnn { \tl_set_rescan_aux:NNnn \tl_gset:Nn } +\cs_new:Npn \tl_elt_count_aux:n #1 { + 1 } +\cs_new_protected:Npn \tl_set_rescan:Nnn { \tl_set_rescan_aux:NNnn \tl_set:Nn } +\cs_new_protected:Npn \tl_gset_rescan:Nnn { \tl_set_rescan_aux:NNnn \tl_gset:Nn } \group_begin: \tex_lccode:D `\A = `\@ \scan_stop: \tex_lccode:D `\B = `\@ \scan_stop: @@ -446,9 +517,9 @@ \tex_catcode:D `\B = 3 \scan_stop: \tl_to_lowercase:n { \group_end: - \tl_new:Nn \c_two_ats_with_two_catcodes_tl {AB} + \tl_const:Nn \c_two_ats_with_two_catcodes_tl { A B } } -\cs_new:Npn \tl_set_rescan_aux:NNnn #1#2#3#4 { +\cs_new_protected:Npn \tl_set_rescan_aux:NNnn #1#2#3#4 { \group_begin: \toks_set:NV \etex_everyeof:D \c_two_ats_with_two_catcodes_tl \tex_endlinechar:D = \c_minus_one @@ -456,25 +527,25 @@ \exp_after:wN \tl_rescan_aux:w \etex_scantokens:D {#4} \exp_args:NNNV \group_end: - #1 #2 \l_tmpa_toks + #1 #2 \l_tmpa_tl } \exp_after:wN \cs_set:Npn \exp_after:wN \tl_rescan_aux:w \exp_after:wN # \exp_after:wN 1 \c_two_ats_with_two_catcodes_tl { - \tl_set:Nn \l_tmpa_toks {#1} + \tl_set:Nn \l_tmpa_tl {#1} } -\cs_new:Npn \tl_set_rescan:Nnx #1#2#3 { +\cs_new_protected:Npn \tl_set_rescan:Nnx #1#2#3 { \group_begin: \etex_everyeof:D { \exp_not:N } \tex_endlinechar:D = \c_minus_one #2 - \tl_set:Nx \l_tmpa_tl { \etex_scantokens:D {#3} } + \tl_set:Nx \l_kernel_tmpa_tl { \etex_scantokens:D {#3} } \exp_args:NNNV \group_end: - \tl_set:Nn #1 \l_tmpa_tl + \tl_set:Nn #1 \l_kernel_tmpa_tl } -\cs_new:Npn \tl_gset_rescan:Nnx #1#2#3 { +\cs_new_protected:Npn \tl_gset_rescan:Nnx #1#2#3 { \group_begin: \etex_everyeof:D { \exp_not:N } \tex_endlinechar:D = \c_minus_one @@ -482,14 +553,14 @@ \tl_gset:Nx #1 { \etex_scantokens:D {#3} } \group_end: } -\cs_new:Npn \tl_rescan:nn #1#2 { +\cs_new_protected:Npn \tl_rescan:nn #1#2 { \group_begin: \toks_set:NV \etex_everyeof:D \c_two_ats_with_two_catcodes_tl \tex_endlinechar:D = \c_minus_one #1 \exp_after:wN \tl_rescan_aux:w \etex_scantokens:D {#2} \exp_args:NV \group_end: - \l_tmpa_toks + \l_tmpa_tl } \prg_new_protected_conditional:Npnn \tl_if_in:Nn #1#2 {TF,T,F} { \cs_set:Npn \tl_tmp:w ##1 #2 ##2 \q_stop { @@ -512,56 +583,70 @@ \cs_generate_variant:Nn \tl_if_in:nnTF {o} \cs_generate_variant:Nn \tl_if_in:nnT {o} \cs_generate_variant:Nn \tl_if_in:nnF {o} -%%\l_tl_replace_toks % moved to l3token as alloc not set up yet. -\cs_new:Npn \tl_replace_in_aux:NNnn #1#2#3#4{ - \cs_set:Npn \tl_tmp:w ##1#3##2\q_stop{ - \quark_if_no_value:nF{##2} +\tl_new:N \_l_tl_replace_tl +\cs_new_protected_nopar:Npn \tl_replace_in:Nnn { + \_tl_replace_in_aux:NNnn \tl_set_eq:NN +} +\cs_new_protected:Npn \_tl_replace_in_aux:NNnn #1#2#3#4 { + \cs_set:Npn \_tl_tmp:w ##1 #3 ##2 \q_stop { - \toks_set:No\l_tl_replace_toks{##1#4} - \cs_set:Npn \tl_tmp:w ####1#3\q_no_value{ - \toks_put_right:No \l_tl_replace_toks { ####1 } - } - \tl_tmp:w \prg_do_nothing: ##2 - #1#2{\toks_use:N\l_tl_replace_toks} + \quark_if_no_value:nF {##2} + { + \tl_set:No \_l_tl_replace_tl { ##1 #4 } + \cs_set:Npn \_tl_tmp:w ####1 #3 \q_no_value { + \tl_put_right:No \_l_tl_replace_tl {####1} + } + \_tl_tmp:w \prg_do_nothing: ##2 + #1 #2 \_l_tl_replace_tl + } } - } - \use:n{\exp_after:wN \tl_tmp:w\exp_after:wN\prg_do_nothing:} - #2#3 \q_no_value\q_stop -} -\cs_new_nopar:Npn \tl_replace_in:Nnn {\tl_replace_in_aux:NNnn \tl_set:Nx} -\cs_generate_variant:Nn\tl_replace_in:Nnn {cnn} -\cs_new_nopar:Npn \tl_greplace_in:Nnn {\tl_replace_in_aux:NNnn \tl_gset:Nx} -\cs_generate_variant:Nn\tl_greplace_in:Nnn {cnn} -\cs_set:Npn \tl_replace_all_in_aux:NNnn #1#2#3#4{ - \toks_clear:N \l_tl_replace_toks - \cs_set:Npn \tl_tmp:w ##1#3##2\q_stop{ - \quark_if_no_value:nTF{##2} + \use:n + { + \exp_after:wN \_tl_tmp:w \exp_after:wN + \prg_do_nothing: + } + #2 #3 \q_no_value \q_stop +} +\cs_new_protected_nopar:Npn \tl_greplace_in:Nnn { + \_tl_replace_in_aux:NNnn \tl_gset_eq:NN +} +\cs_generate_variant:Nn \tl_replace_in:Nnn { c } +\cs_generate_variant:Nn \tl_greplace_in:Nnn { c } +\cs_new_protected_nopar:Npn \tl_replace_all_in:Nnn { + \_tl_replace_all_in_aux:NNnn \tl_set_eq:NN +} +\cs_new_protected_nopar:Npn \tl_greplace_all_in:Nnn { + \_tl_replace_all_in_aux:NNnn \tl_gset_eq:NN +} +\cs_new_protected:Npn \_tl_replace_all_in_aux:NNnn #1#2#3#4 { + \tl_clear:N \_l_tl_replace_tl + \cs_set:Npn \_tl_tmp:w ##1 #3 ##2 \q_stop { - \toks_put_right:No \l_tl_replace_toks {##1} + \quark_if_no_value:nTF {##2} + { \tl_put_right:No \_l_tl_replace_tl {##1} } + { + \tl_put_right:No \_l_tl_replace_tl { ##1 #4 } + \_tl_tmp:w \prg_do_nothing: ##2 \q_stop + } } + \use:n { - \toks_put_right:No \l_tl_replace_toks {##1 #4} - \tl_tmp:w \prg_do_nothing: ##2 \q_stop + \exp_after:wN \_tl_tmp:w \exp_after:wN + \prg_do_nothing: } - } - \use:n{\exp_after:wN \tl_tmp:w \exp_after:wN \prg_do_nothing:} - #2#3 \q_no_value\q_stop - #1#2{\toks_use:N\l_tl_replace_toks} -} -\cs_new_nopar:Npn \tl_replace_all_in:Nnn { - \tl_replace_all_in_aux:NNnn \tl_set:Nx} -\cs_generate_variant:Nn \tl_replace_all_in:Nnn {cnn} -\cs_new_nopar:Npn \tl_greplace_all_in:Nnn { - \tl_replace_all_in_aux:NNnn \tl_gset:Nx} -\cs_generate_variant:Nn \tl_greplace_all_in:Nnn {cnn} -\cs_new:Npn \tl_remove_in:Nn #1#2{\tl_replace_in:Nnn #1{#2}{}} -\cs_new:Npn \tl_gremove_in:Nn #1#2{\tl_greplace_in:Nnn #1{#2}{}} + #2 #3 \q_no_value \q_stop + #1 #2 \_l_tl_replace_tl +} +\cs_generate_variant:Nn \tl_replace_all_in:Nnn { c } +\cs_generate_variant:Nn \tl_greplace_all_in:Nnn { c } +\cs_new_protected:Npn \tl_remove_in:Nn #1#2{\tl_replace_in:Nnn #1{#2}{}} +\cs_new_protected:Npn \tl_gremove_in:Nn #1#2{\tl_greplace_in:Nnn #1{#2}{}} \cs_generate_variant:Nn \tl_remove_in:Nn {cn} \cs_generate_variant:Nn \tl_gremove_in:Nn {cn} -\cs_new:Npn \tl_remove_all_in:Nn #1#2{ +\cs_new_protected:Npn \tl_remove_all_in:Nn #1#2{ \tl_replace_all_in:Nnn #1{#2}{} } -\cs_new:Npn \tl_gremove_all_in:Nn #1#2{ +\cs_new_protected:Npn \tl_gremove_all_in:Nn #1#2{ \tl_greplace_all_in:Nnn #1{#2}{} } \cs_generate_variant:Nn \tl_remove_all_in:Nn {cn} diff --git a/Master/texmf-dist/tex/latex/expl3/l3token.sty b/Master/texmf-dist/tex/latex/expl3/l3token.sty index e90b3aa472d..46de3e83a57 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3token.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3token.sty @@ -48,13 +48,13 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3token.dtx 1550 2009-09-22 06:06:25Z joseph $ +\GetIdInfo$Id: l3token.dtx 1857 2010-03-21 21:32:09Z joseph $ {L3 Experimental token investigation and manipulation} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} \package_check_loaded_expl: \cs_new_eq:NN \char_set_catcode:w \tex_catcode:D -\cs_new_nopar:Npn \char_set_catcode:nn #1#2 { +\cs_new_protected_nopar:Npn \char_set_catcode:nn #1#2 { \char_set_catcode:w #1 = \intexpr_eval:w #2\intexpr_eval_end: } \cs_new_nopar:Npn \char_value_catcode:w { \int_use:N \tex_catcode:D } @@ -67,44 +67,44 @@ \cs_new_nopar:Npn \char_show_value_catcode:n #1 { \char_show_value_catcode:w \intexpr_eval:w #1\intexpr_eval_end: } -\cs_new_nopar:Npn \char_make_escape:N #1 { \char_set_catcode:nn {`#1} {\c_zero} } -\cs_new_nopar:Npn \char_make_begin_group:N #1 { \char_set_catcode:nn {`#1} {\c_one} } -\cs_new_nopar:Npn \char_make_end_group:N #1 { \char_set_catcode:nn {`#1} {\c_two} } -\cs_new_nopar:Npn \char_make_math_shift:N #1 { \char_set_catcode:nn {`#1} {\c_three} } -\cs_new_nopar:Npn \char_make_alignment:N #1 { \char_set_catcode:nn {`#1} {\c_four} } -\cs_new_nopar:Npn \char_make_end_line:N #1 { \char_set_catcode:nn {`#1} {\c_five} } -\cs_new_nopar:Npn \char_make_parameter:N #1 { \char_set_catcode:nn {`#1} {\c_six} } -\cs_new_nopar:Npn \char_make_math_superscript:N #1 { \char_set_catcode:nn {`#1} {\c_seven} } -\cs_new_nopar:Npn \char_make_math_subscript:N #1 { \char_set_catcode:nn {`#1} {\c_eight} } -\cs_new_nopar:Npn \char_make_ignore:N #1 { \char_set_catcode:nn {`#1} {\c_nine} } -\cs_new_nopar:Npn \char_make_space:N #1 { \char_set_catcode:nn {`#1} {\c_ten} } -\cs_new_nopar:Npn \char_make_letter:N #1 { \char_set_catcode:nn {`#1} {\c_eleven} } -\cs_new_nopar:Npn \char_make_other:N #1 { \char_set_catcode:nn {`#1} {\c_twelve} } -\cs_new_nopar:Npn \char_make_active:N #1 { \char_set_catcode:nn {`#1} {\c_thirteen} } -\cs_new_nopar:Npn \char_make_comment:N #1 { \char_set_catcode:nn {`#1} {\c_fourteen} } -\cs_new_nopar:Npn \char_make_invalid:N #1 { \char_set_catcode:nn {`#1} {\c_fifteen} } -\cs_new_nopar:Npn \char_make_escape:n #1 { \char_set_catcode:nn {#1} {\c_zero} } -\cs_new_nopar:Npn \char_make_begin_group:n #1 { \char_set_catcode:nn {#1} {\c_one} } -\cs_new_nopar:Npn \char_make_end_group:n #1 { \char_set_catcode:nn {#1} {\c_two} } -\cs_new_nopar:Npn \char_make_math_shift:n #1 { \char_set_catcode:nn {#1} {\c_three} } -\cs_new_nopar:Npn \char_make_alignment:n #1 { \char_set_catcode:nn {#1} {\c_four} } -\cs_new_nopar:Npn \char_make_end_line:n #1 { \char_set_catcode:nn {#1} {\c_five} } -\cs_new_nopar:Npn \char_make_parameter:n #1 { \char_set_catcode:nn {#1} {\c_six} } -\cs_new_nopar:Npn \char_make_math_superscript:n #1 { \char_set_catcode:nn {#1} {\c_seven} } -\cs_new_nopar:Npn \char_make_math_subscript:n #1 { \char_set_catcode:nn {#1} {\c_eight} } -\cs_new_nopar:Npn \char_make_ignore:n #1 { \char_set_catcode:nn {#1} {\c_nine} } -\cs_new_nopar:Npn \char_make_space:n #1 { \char_set_catcode:nn {#1} {\c_ten} } -\cs_new_nopar:Npn \char_make_letter:n #1 { \char_set_catcode:nn {#1} {\c_eleven} } -\cs_new_nopar:Npn \char_make_other:n #1 { \char_set_catcode:nn {#1} {\c_twelve} } -\cs_new_nopar:Npn \char_make_active:n #1 { \char_set_catcode:nn {#1} {\c_thirteen} } -\cs_new_nopar:Npn \char_make_comment:n #1 { \char_set_catcode:nn {#1} {\c_fourteen} } -\cs_new_nopar:Npn \char_make_invalid:n #1 { \char_set_catcode:nn {#1} {\c_fifteen} } +\cs_new_protected_nopar:Npn \char_make_escape:N #1 { \char_set_catcode:nn {`#1} {\c_zero} } +\cs_new_protected_nopar:Npn \char_make_begin_group:N #1 { \char_set_catcode:nn {`#1} {\c_one} } +\cs_new_protected_nopar:Npn \char_make_end_group:N #1 { \char_set_catcode:nn {`#1} {\c_two} } +\cs_new_protected_nopar:Npn \char_make_math_shift:N #1 { \char_set_catcode:nn {`#1} {\c_three} } +\cs_new_protected_nopar:Npn \char_make_alignment:N #1 { \char_set_catcode:nn {`#1} {\c_four} } +\cs_new_protected_nopar:Npn \char_make_end_line:N #1 { \char_set_catcode:nn {`#1} {\c_five} } +\cs_new_protected_nopar:Npn \char_make_parameter:N #1 { \char_set_catcode:nn {`#1} {\c_six} } +\cs_new_protected_nopar:Npn \char_make_math_superscript:N #1 { \char_set_catcode:nn {`#1} {\c_seven} } +\cs_new_protected_nopar:Npn \char_make_math_subscript:N #1 { \char_set_catcode:nn {`#1} {\c_eight} } +\cs_new_protected_nopar:Npn \char_make_ignore:N #1 { \char_set_catcode:nn {`#1} {\c_nine} } +\cs_new_protected_nopar:Npn \char_make_space:N #1 { \char_set_catcode:nn {`#1} {\c_ten} } +\cs_new_protected_nopar:Npn \char_make_letter:N #1 { \char_set_catcode:nn {`#1} {\c_eleven} } +\cs_new_protected_nopar:Npn \char_make_other:N #1 { \char_set_catcode:nn {`#1} {\c_twelve} } +\cs_new_protected_nopar:Npn \char_make_active:N #1 { \char_set_catcode:nn {`#1} {\c_thirteen} } +\cs_new_protected_nopar:Npn \char_make_comment:N #1 { \char_set_catcode:nn {`#1} {\c_fourteen} } +\cs_new_protected_nopar:Npn \char_make_invalid:N #1 { \char_set_catcode:nn {`#1} {\c_fifteen} } +\cs_new_protected_nopar:Npn \char_make_escape:n #1 { \char_set_catcode:nn {#1} {\c_zero} } +\cs_new_protected_nopar:Npn \char_make_begin_group:n #1 { \char_set_catcode:nn {#1} {\c_one} } +\cs_new_protected_nopar:Npn \char_make_end_group:n #1 { \char_set_catcode:nn {#1} {\c_two} } +\cs_new_protected_nopar:Npn \char_make_math_shift:n #1 { \char_set_catcode:nn {#1} {\c_three} } +\cs_new_protected_nopar:Npn \char_make_alignment:n #1 { \char_set_catcode:nn {#1} {\c_four} } +\cs_new_protected_nopar:Npn \char_make_end_line:n #1 { \char_set_catcode:nn {#1} {\c_five} } +\cs_new_protected_nopar:Npn \char_make_parameter:n #1 { \char_set_catcode:nn {#1} {\c_six} } +\cs_new_protected_nopar:Npn \char_make_math_superscript:n #1 { \char_set_catcode:nn {#1} {\c_seven} } +\cs_new_protected_nopar:Npn \char_make_math_subscript:n #1 { \char_set_catcode:nn {#1} {\c_eight} } +\cs_new_protected_nopar:Npn \char_make_ignore:n #1 { \char_set_catcode:nn {#1} {\c_nine} } +\cs_new_protected_nopar:Npn \char_make_space:n #1 { \char_set_catcode:nn {#1} {\c_ten} } +\cs_new_protected_nopar:Npn \char_make_letter:n #1 { \char_set_catcode:nn {#1} {\c_eleven} } +\cs_new_protected_nopar:Npn \char_make_other:n #1 { \char_set_catcode:nn {#1} {\c_twelve} } +\cs_new_protected_nopar:Npn \char_make_active:n #1 { \char_set_catcode:nn {#1} {\c_thirteen} } +\cs_new_protected_nopar:Npn \char_make_comment:n #1 { \char_set_catcode:nn {#1} {\c_fourteen} } +\cs_new_protected_nopar:Npn \char_make_invalid:n #1 { \char_set_catcode:nn {#1} {\c_fifteen} } \cs_new_eq:NN \char_set_mathcode:w \tex_mathcode:D -\cs_new_nopar:Npn \char_set_mathcode:nn #1#2 { +\cs_new_protected_nopar:Npn \char_set_mathcode:nn #1#2 { \char_set_mathcode:w #1 = \intexpr_eval:w #2\intexpr_eval_end: } \cs_new_protected_nopar:Npn \char_gset_mathcode:w { \pref_global:D \tex_mathcode:D } -\cs_new_nopar:Npn \char_gset_mathcode:nn #1#2 { +\cs_new_protected_nopar:Npn \char_gset_mathcode:nn #1#2 { \char_gset_mathcode:w #1 = \intexpr_eval:w #2\intexpr_eval_end: } \cs_new_nopar:Npn \char_value_mathcode:w { \int_use:N \tex_mathcode:D } @@ -116,7 +116,7 @@ \char_show_value_mathcode:w \intexpr_eval:w #1\intexpr_eval_end: } \cs_new_eq:NN \char_set_lccode:w \tex_lccode:D -\cs_new_nopar:Npn \char_set_lccode:nn #1#2{ +\cs_new_protected_nopar:Npn \char_set_lccode:nn #1#2{ \char_set_lccode:w #1 = \intexpr_eval:w #2\intexpr_eval_end: } \cs_new_nopar:Npn \char_value_lccode:w {\int_use:N\tex_lccode:D} @@ -126,7 +126,7 @@ \cs_new_nopar:Npn \char_show_value_lccode:n #1{ \char_show_value_lccode:w \intexpr_eval:w #1\intexpr_eval_end:} \cs_new_eq:NN \char_set_uccode:w \tex_uccode:D -\cs_new_nopar:Npn \char_set_uccode:nn #1#2{ +\cs_new_protected_nopar:Npn \char_set_uccode:nn #1#2{ \char_set_uccode:w #1 = \intexpr_eval:w #2\intexpr_eval_end: } \cs_new_nopar:Npn \char_value_uccode:w {\int_use:N\tex_uccode:D} @@ -136,7 +136,7 @@ \cs_new_nopar:Npn \char_show_value_uccode:n #1{ \char_show_value_uccode:w \intexpr_eval:w #1\intexpr_eval_end:} \cs_new_eq:NN \char_set_sfcode:w \tex_sfcode:D -\cs_new_nopar:Npn \char_set_sfcode:nn #1#2 { +\cs_new_protected_nopar:Npn \char_set_sfcode:nn #1#2 { \char_set_sfcode:w #1 = \intexpr_eval:w #2\intexpr_eval_end: } \cs_new_nopar:Npn \char_value_sfcode:w { \int_use:N \tex_sfcode:D } @@ -147,7 +147,7 @@ \cs_new_nopar:Npn \char_show_value_sfcode:n #1 { \char_show_value_sfcode:w \intexpr_eval:w #1\intexpr_eval_end: } -\cs_new_nopar:Npn \token_new:Nn #1#2 {\cs_gnew_eq:NN #1#2} +\cs_new_protected_nopar:Npn \token_new:Nn #1#2 {\cs_gnew_eq:NN #1#2} \cs_new_eq:NN \c_group_begin_token { \cs_new_eq:NN \c_group_end_token } \group_begin: @@ -405,34 +405,34 @@ \token_new:Nn \l_peek_token {?} \token_new:Nn \g_peek_token {?} \token_new:Nn \l_peek_search_token {?} -\cs_new_nopar:Npn \peek_after:NN {\tex_futurelet:D \l_peek_token } -\cs_new_nopar:Npn \peek_gafter:NN { +\cs_new_protected_nopar:Npn \peek_after:NN {\tex_futurelet:D \l_peek_token } +\cs_new_protected_nopar:Npn \peek_gafter:NN { \pref_global:D \tex_futurelet:D \g_peek_token } -\tl_new:Nn \l_peek_true_tl {} -\tl_new:Nn \l_peek_false_tl {} +\tl_new:N \l_peek_true_tl +\tl_new:N \l_peek_false_tl \cs_new_nopar:Npn \peek_tmp:w {} -\tl_new:Nn \l_peek_search_tl {} -\cs_new:Npn \peek_token_generic:NNTF #1#2#3#4 { +\tl_new:N \l_peek_search_tl +\cs_new_protected:Npn \peek_token_generic:NNTF #1#2#3#4 { \cs_set_eq:NN \l_peek_search_token #2 \tl_set:Nn \l_peek_search_tl {#2} - \tl_set:Nx \l_peek_true_tl {\exp_not:n{\group_align_safe_end: #3}} - \tl_set:Nx \l_peek_false_tl {\exp_not:n{\group_align_safe_end: #4}} + \tl_set:Nn \l_peek_true_tl { \group_align_safe_end: #3 } + \tl_set:Nn \l_peek_false_tl { \group_align_safe_end: #4 } \group_align_safe_begin: \peek_after:NN #1 } -\cs_new:Npn \peek_token_generic:NNT #1#2#3 { +\cs_new_protected:Npn \peek_token_generic:NNT #1#2#3 { \peek_token_generic:NNTF #1#2 {#3} {} } -\cs_new:Npn \peek_token_generic:NNF #1#2#3 { +\cs_new_protected:Npn \peek_token_generic:NNF #1#2#3 { \peek_token_generic:NNTF #1#2 {} {#3} } -\cs_new:Npn \peek_token_remove_generic:NNTF #1#2#3#4 { +\cs_new_protected:Npn \peek_token_remove_generic:NNTF #1#2#3#4 { \cs_set_eq:NN \l_peek_search_token #2 \tl_set:Nn \l_peek_search_tl {#2} - \tl_set:Nx \l_peek_true_aux_tl { \exp_not:n{ #3 } } + \tl_set:Nn \l_peek_true_aux_tl {#3} \tl_set_eq:NN \l_peek_true_tl \c_peek_true_remove_next_tl - \tl_set:Nx \l_peek_false_tl {\exp_not:n{\group_align_safe_end: #4}} + \tl_set:Nn \l_peek_false_tl {\group_align_safe_end: #4} \group_align_safe_begin: \peek_after:NN #1 } @@ -442,8 +442,8 @@ \cs_new:Npn \peek_token_remove_generic:NNF #1#2#3 { \peek_token_remove_generic:NNTF #1#2 {} {#3} } -\tl_new:Nn \l_peek_true_aux_tl {} -\tl_new:Nn \c_peek_true_remove_next_tl {\group_align_safe_end: +\tl_new:N \l_peek_true_aux_tl +\tl_const:Nn \c_peek_true_remove_next_tl {\group_align_safe_end: \tex_afterassignment:D \l_peek_true_aux_tl \cs_set_eq:NN \peek_tmp:w } \cs_new_nopar:Npn \peek_execute_branches_meaning: { @@ -482,7 +482,7 @@ \peek_def_aux_ii:nnnnn {#1} {#2} {#3} {#4} { T } \peek_def_aux_ii:nnnnn {#1} {#2} {#3} {#4} { F } } -\cs_new_nopar:Npn \peek_def_aux_ii:nnnnn #1#2#3#4#5 { +\cs_new_protected_nopar:Npn \peek_def_aux_ii:nnnnn #1#2#3#4#5 { \cs_new_nopar:cpx { #1 #5 } { \tl_if_empty:nF {#2} { \exp_not:n { \cs_set_eq:NN \peek_execute_branches: #2 } @@ -554,7 +554,7 @@ \cs_new_nopar:Npn \peek_ignore_spaces_aux: { \peek_after:NN \peek_ignore_spaces_execute_branches: } -\cs_new_nopar:Npn \peek_ignore_spaces_execute_branches: { +\cs_new_protected_nopar:Npn \peek_ignore_spaces_execute_branches: { \token_if_eq_meaning:NNTF \l_peek_token \c_space_token { \tex_afterassignment:D \peek_ignore_spaces_aux: \cs_set_eq:NN \peek_tmp:w diff --git a/Master/texmf-dist/tex/latex/expl3/l3toks.sty b/Master/texmf-dist/tex/latex/expl3/l3toks.sty index 2ed07333187..afe5ff158a9 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3toks.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3toks.sty @@ -48,24 +48,35 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3toks.dtx 1412 2009-06-14 17:55:48Z joseph $ +\GetIdInfo$Id: l3toks.dtx 1867 2010-03-23 13:03:12Z will $ {L3 Experimental Token Registers} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} \package_check_loaded_expl: -\cs_set_eq:NN \toks_new:N \newtoks % nick from LaTeX for the moment +\cs_new_protected_nopar:Npn \toks_new:N #1 { + \chk_if_free_cs:N #1 + \newtoks #1 +} +\cs_new_protected_nopar:Npn \toks_new_local:N #1 { + \chk_if_free_cs:N #1 + \int_compare:nNnTF + \tex_currentgrouplevel:D = 0 + \newtoks \loctoks + #1 +} \cs_generate_variant:Nn \toks_new:N {c} +\cs_generate_variant:Nn \toks_new_local:N {c} \cs_new_eq:NN \toks_use:N \tex_the:D \cs_generate_variant:Nn \toks_use:N {c} \cs_new_eq:NN \toks_set:Nn \prg_do_nothing: -\cs_new:Npn \toks_set:NV #1#2 { +\cs_new_protected:Npn \toks_set:NV #1#2 { #1 \exp_after:wN { \int_to_roman:w -`0 \exp_eval_register:N #2 } } -\cs_new:Npn \toks_set:Nv #1#2 { +\cs_new_protected:Npn \toks_set:Nv #1#2 { #1 \exp_after:wN { \int_to_roman:w -`0 \exp_eval_register:c {#2} } } -\cs_new:Npn \toks_set:No #1#2 { #1 \exp_after:wN {#2} } -\cs_new:Npn \toks_set:Nf #1#2 { +\cs_new_protected:Npn \toks_set:No #1#2 { #1 \exp_after:wN {#2} } +\cs_new_protected:Npn \toks_set:Nf #1#2 { #1 \exp_after:wN { \int_to_roman:w -`0#2 } } \cs_generate_variant:Nn \toks_set:Nn {Nx,cn,cV,cv,co,cx,cf} @@ -75,19 +86,19 @@ \cs_new_eq:NN \toks_gset_eq:NN \pref_global:D \cs_generate_variant:Nn \toks_set_eq:NN {Nc,cN,cc} \cs_generate_variant:Nn \toks_gset_eq:NN {Nc,cN,cc} -\cs_new_nopar:Npn \toks_clear:N #1 { +\cs_new_protected_nopar:Npn \toks_clear:N #1 { #1\c_empty_toks } -\cs_new_nopar:Npn \toks_gclear:N { +\cs_new_protected_nopar:Npn \toks_gclear:N { \pref_global:D \toks_clear:N } \cs_generate_variant:Nn \toks_clear:N {c} \cs_generate_variant:Nn \toks_gclear:N {c} -\cs_new_nopar:Npn \toks_use_clear:N #1 { +\cs_new_protected_nopar:Npn \toks_use_clear:N #1 { \exp_last_unbraced:NNV \toks_clear:N #1 #1 } -\cs_new_nopar:Npn \toks_use_gclear:N { +\cs_new_protected_nopar:Npn \toks_use_gclear:N { \pref_global:D \toks_use_clear:N } @@ -95,12 +106,12 @@ \cs_generate_variant:Nn \toks_use_gclear:N {c} \cs_new_eq:NN \toks_show:N \tex_showthe:D \cs_generate_variant:Nn \toks_show:N {c} -\cs_new_nopar:Npn \toks_put_left:Nn #1 { +\cs_new_protected_nopar:Npn \toks_put_left:Nn #1 { \exp_after:wN \toks_put_left_aux:w \exp_after:wN \q_mark \toks_use:N #1 \q_stop #1 } \cs_generate_variant:Nn \toks_put_left:Nn {NV,No,Nx,cn,co,cV} -\cs_new_nopar:Npn \toks_gput_left:Nn { +\cs_new_protected_nopar:Npn \toks_gput_left:Nn { \pref_global:D \toks_put_left:Nn } @@ -108,27 +119,27 @@ \cs_new:Npn \toks_put_left_aux:w #1\q_stop #2#3 { #2 \exp_after:wN { \use_i:nn {#3} #1 } } -\cs_new:Npn \toks_put_right:Nn #1#2 { +\cs_new_protected:Npn \toks_put_right:Nn #1#2 { #1 \exp_after:wN { \toks_use:N #1 #2 } } -\cs_new_nopar:Npn \toks_gput_right:Nn { +\cs_new_protected_nopar:Npn \toks_gput_right:Nn { \pref_global:D \toks_put_right:Nn } -\cs_new:Npn \toks_put_right:NV #1#2 { +\cs_new_protected:Npn \toks_put_right:NV #1#2 { #1 \exp_after:wN \exp_after:wN \exp_after:wN { \exp_after:wN \toks_use:N \exp_after:wN #1 \int_to_roman:w -`0 \exp_eval_register:N #2 } } -\cs_new:Npn \toks_put_right:No #1#2 { +\cs_new_protected:Npn \toks_put_right:No #1#2 { #1 \exp_after:wN \exp_after:wN \exp_after:wN { \exp_after:wN \toks_use:N \exp_after:wN #1 #2 } } \cs_generate_variant:Nn \toks_put_right:Nn {Nx,cn,cV,co} \cs_generate_variant:Nn \toks_gput_right:Nn {NV,No,Nx,cn,cV,co} -\cs_new:Npn \toks_put_right:Nf #1#2 { +\cs_new_protected:Npn \toks_put_right:Nf #1#2 { #1 \exp_after:wN \exp_after:wN \exp_after:wN { \exp_after:wN \toks_use:N \exp_after:wN #1 \int_to_roman:w -`0#2 } diff --git a/Master/texmf-dist/tex/latex/expl3/l3xref.sty b/Master/texmf-dist/tex/latex/expl3/l3xref.sty index 98a3ca09251..43a67abdcda 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 1362 2009-05-28 20:19:21Z joseph $ +\GetIdInfo$Id: l3xref.dtx 1786 2010-02-09 12:52:45Z joseph $ {L3 Experimental cross referencing} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -105,7 +105,6 @@ } } } -\iow_new:N \xref_write %% %% %% End of file `l3xref.sty'. |