diff options
author | Karl Berry <karl@freefriends.org> | 2010-09-27 00:38:35 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2010-09-27 00:38:35 +0000 |
commit | 6f75f25fe8d374ef4209118bd8849d742410ccd1 (patch) | |
tree | c485a2517a4fba54346c4492d4b34f0c8d815962 /Master/texmf-dist/tex | |
parent | 36e4bf755052bf5d5cef33cc2ffbad8f00b22163 (diff) |
expl3 2047 (26sep10)
git-svn-id: svn://tug.org/texlive/trunk@19904 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/expl3/expl3.sty | 3 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/expl3/l3basics.sty | 56 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/expl3/l3box.sty | 14 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/expl3/l3clist.sty | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/expl3/l3doc.cls | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/expl3/l3expan.sty | 30 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/expl3/l3fp.sty | 10 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/expl3/l3int.sty | 8 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/expl3/l3intexpr.sty | 22 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/expl3/l3luatex.sty | 19 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/expl3/l3names.sty | 58 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/expl3/l3prg.sty | 95 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/expl3/l3quark.sty | 57 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/expl3/l3skip.sty | 47 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/expl3/l3tl.sty | 201 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/expl3/l3token.sty | 50 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/expl3/l3toks.sty | 6 |
17 files changed, 309 insertions, 375 deletions
diff --git a/Master/texmf-dist/tex/latex/expl3/expl3.sty b/Master/texmf-dist/tex/latex/expl3/expl3.sty index 8ab93d24188..1c4c346d8a7 100644 --- a/Master/texmf-dist/tex/latex/expl3/expl3.sty +++ b/Master/texmf-dist/tex/latex/expl3/expl3.sty @@ -49,11 +49,12 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: expl3.dtx 2020 2010-09-14 10:37:46Z joseph $ +\GetIdInfo$Id: expl3.dtx 2022 2010-09-16 13:00:35Z joseph $ {L3 Experimental code bundle wrapper}% \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} \RequirePackage{etex} +\reserveinserts{32} \newcommand*\@l@expl@check@declarations@bool{0} \newcommand*\@l@expl@log@functions@bool{0} \DeclareOption{check-declarations}{ diff --git a/Master/texmf-dist/tex/latex/expl3/l3basics.sty b/Master/texmf-dist/tex/latex/expl3/l3basics.sty index 785b120b2dc..d128e2fa1f3 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3basics.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3basics.sty @@ -15,7 +15,7 @@ %% Do not distribute a modified version of this file. %% %% -%% File: l3basics.dtx Copyright (C) 1990-2008 LaTeX3 project +%% File: l3basics.dtx Copyright (C) 1990-2008,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: l3basics.dtx 1992 2010-08-04 20:41:40Z joseph $ +\GetIdInfo$Id: l3basics.dtx 2037 2010-09-20 21:22:45Z joseph $ {L3 Experimental basic definitions} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -307,13 +307,13 @@ \tex_chardef:D \c_true_bool = 1~ \tex_chardef:D \c_false_bool = 0~ \cs_set_nopar:Npn \cs_to_str:N { - \if:w \exp_after:wN \cs_str_aux:w\token_to_str:N \a ax\q_nil + \if:w \exp_after:wN \cs_str_aux:w\token_to_str:N \a ax\q_stop \else: \exp_after:wN \exp_after:wN\exp_after:wN \use_ii:nn \fi: \exp_after:wN \use_none:n \token_to_str:N } -\cs_set:Npn \cs_str_aux:w #1#2#3#4\q_nil{#2#3} +\cs_set:Npn \cs_str_aux:w #1#2#3#4\q_stop{#2#3} \group_begin: \tex_lccode:D `\@ = `\: \scan_stop: \tex_catcode:D `\@ = 12~ @@ -321,18 +321,18 @@ \group_end: \cs_set:Npn \cs_split_function:NN #1#2{ \exp_after:wN \cs_split_function_aux:w - \tex_romannumeral:D -`\q \cs_to_str:N #1 @a \q_nil #2 + \tex_romannumeral:D -`\q \cs_to_str:N #1 @a \q_stop #2 } -\cs_set:Npn \cs_split_function_aux:w #1@#2#3\q_nil#4{ +\cs_set:Npn \cs_split_function_aux:w #1@#2#3\q_stop#4{ \if_meaning:w a#2 \exp_after:wN \use_i:nn \else: \exp_after:wN\use_ii:nn \fi: {#4{#1}{}\c_false_bool} - {\cs_split_function_auxii:w#2#3\q_nil #4{#1}} + {\cs_split_function_auxii:w#2#3\q_stop #4{#1}} } -\cs_set:Npn \cs_split_function_auxii:w #1@a\q_nil#2#3{ +\cs_set:Npn \cs_split_function_auxii:w #1@a\q_stop#2#3{ #2{#3}{#1}\c_true_bool } } @@ -372,7 +372,7 @@ \cs_split_function:NN #1 \cs_if_do_not_use_aux:nnN } \cs_set:Npn \cs_if_do_not_use_aux:nnN #1#2#3{ - \exp_after:wN\str_if_eq_p:nn \token_to_str:N D {#2} + \str_if_eq_p:nn { D } {#2} } \prg_set_conditional:Npnn \cs_if_free:N #1{p,TF,T,F}{ \tex_ifnum:D \cs_if_exist_p:N #1 =\c_zero @@ -445,32 +445,18 @@ \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:\\ +\prg_set_conditional:Npnn \str_if_eq:nn #1#2 { p , T , F , TF } { + \tex_ifnum:D \pdf_strcmp:D + { \etex_unexpanded:D {#1} } { \etex_unexpanded:D {#2} } + = \c_zero + \prg_return_true: \else: \prg_return_false: \fi: +} +\prg_set_conditional:Npnn \str_if_eq:xx #1#2 { p , T , F , TF } { + \tex_ifnum:D \pdf_strcmp:D {#1} {#2} = \c_zero + \prg_return_true: \else: \prg_return_false: \fi: } -\cs_set_nopar:Npn \str_if_eq_p_aux:w #1#2\\#3#4\\{ - \if_meaning:w#1#3 - \if_meaning:w#1\scan_stop:\prg_return_true: \else: - \if_meaning:w#3\scan_stop:\prg_return_false: \else: - \str_if_eq_p_aux:w #2\\#4\\\fi:\fi: - \else:\prg_return_false: \fi:} \prg_set_conditional:Npnn \cs_if_eq_name:NN #1#2{p}{ - \exp_after:wN\exp_after:wN - \exp_after:wN\str_if_eq_p_aux:w - \exp_after:wN\token_to_str:N - \exp_after:wN#1 - \exp_after:wN\scan_stop: - \exp_after:wN\\ - \token_to_str:N#2\scan_stop:\\} -\prg_set_conditional:Npnn \str_if_eq_var:nf #1#2 {p} { - \if:w \tex_number:D\str_if_eq_var_start:nnN{}{}#1\scan_stop:{#2} -} -\cs_set_nopar:Npn\str_if_eq_var_start:nnN#1#2#3{ - \if:w#3\scan_stop:\exp_after:wN\str_if_eq_var_stop:w\fi: - \str_if_eq_var_start:nnN{\if:w#3#1}{#2\fi:} -} -\cs_set:Npn\str_if_eq_var_stop:w\str_if_eq_var_start:nnN#1#2#3{ - #1#3\scan_stop:'#213~\prg_return_true:\else:\prg_return_false:\fi: + \str_if_eq_p:nn {#1} {#2} } \cs_set:Npn \cs_tmp:w #1#2 { \cs_set_protected_nopar:Npn #1 ##1 @@ -613,11 +599,11 @@ \fi: { \exp_after:wN \cs_get_arg_count_from_signature_auxii:w - \use_none:nnnnnnnnn #2 9876543210\q_nil + \use_none:nnnnnnnnn #2 9876543210\q_stop } {-1} } -\cs_set:Npn \cs_get_arg_count_from_signature_auxii:w #1#2\q_nil{#1} +\cs_set:Npn \cs_get_arg_count_from_signature_auxii:w #1#2\q_stop{#1} \cs_set_nopar:Npn \cs_get_arg_count_from_signature:c { \exp_args:Nc \cs_get_arg_count_from_signature:N } diff --git a/Master/texmf-dist/tex/latex/expl3/l3box.sty b/Master/texmf-dist/tex/latex/expl3/l3box.sty index 484e7c4a635..3982125a979 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3box.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3box.sty @@ -48,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3box.dtx 2015 2010-09-03 17:45:09Z mittelba $ +\GetIdInfo$Id: l3box.dtx 2044 2010-09-22 03:34:46Z will $ {L3 Experimental Box module} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -109,6 +109,18 @@ \cs_generate_variant:Nn \box_ht:N {c} \cs_generate_variant:Nn \box_dp:N {c} \cs_generate_variant:Nn \box_wd:N {c} +\cs_new_protected_nopar:Npn \box_set_dp:Nn #1#2 { + \box_dp:N #1 \etex_dimexpr:D #2 \scan_stop: +} +\cs_new_protected_nopar:Npn \box_set_ht:Nn #1#2 { + \box_ht:N #1 \etex_dimexpr:D #2 \scan_stop: +} +\cs_new_protected_nopar:Npn \box_set_wd:Nn #1#2 { + \box_wd:N #1 \etex_dimexpr:D #2 \scan_stop: +} +\cs_generate_variant:Nn \box_set_ht:Nn { c } +\cs_generate_variant:Nn \box_set_dp:Nn { c } +\cs_generate_variant:Nn \box_set_wd:Nn { c } \cs_new_eq:NN \box_use_clear:N \tex_box:D \cs_generate_variant:Nn \box_use_clear:N {c} \cs_new_eq:NN \box_use:N \tex_copy:D diff --git a/Master/texmf-dist/tex/latex/expl3/l3clist.sty b/Master/texmf-dist/tex/latex/expl3/l3clist.sty index e99dfef6703..257c7209ba8 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3clist.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3clist.sty @@ -48,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3clist.dtx 1992 2010-08-04 20:41:40Z joseph $ +\GetIdInfo$Id: l3clist.dtx 2037 2010-09-20 21:22:45Z joseph $ {L3 Experimental comma separated lists} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -214,7 +214,7 @@ \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} { + \str_if_eq:nnF {#3} {##1} { \clist_put_right:Nn \l_clist_remove_clist {##1} } } diff --git a/Master/texmf-dist/tex/latex/expl3/l3doc.cls b/Master/texmf-dist/tex/latex/expl3/l3doc.cls index b31d5e6ceb0..09ece930f47 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 2004 2010-08-18 19:39:24Z joseph $ +\GetIdInfo$Id: l3doc.dtx 2037 2010-09-20 21:22:45Z joseph $ {L3 Experimental documentation class} \ProvidesExplClass {\filename}{\filedate}{\fileversion}{\filedescription} @@ -262,7 +262,7 @@ \cs_set_nopar:Npn \doc_showmacro_aux_ii:w #1:#2:#3 \q_stop { \nextnewline - \tl_if_eq:xxTF {#1} {\g_doc_macro_tl} { + \str_if_eq:xxTF {#1} {\g_doc_macro_tl} { \doc_typeset_aux:n }{ \tl_gset:Nn \g_doc_macro_tl {#1} diff --git a/Master/texmf-dist/tex/latex/expl3/l3expan.sty b/Master/texmf-dist/tex/latex/expl3/l3expan.sty index ddfce301801..7f52c7a22be 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3expan.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3expan.sty @@ -15,7 +15,7 @@ %% Do not distribute a modified version of this file. %% %% -%% File: l3expan.dtx Copyright (C) 1990-2009 LaTeX3 project +%% File: l3expan.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: l3expan.dtx 1991 2010-08-04 19:49:35Z joseph $ +\GetIdInfo$Id: l3expan.dtx 2037 2010-09-20 21:22:45Z joseph $ {L3 Experimental Argument Expansion module} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -244,15 +244,15 @@ \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 + \tex_meaning:D #1 ? PROTECTEZ \q_stop } \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 + #1 ? PROTECTEZ #2 \q_stop { \exp_after:wN \tex_ifx:D \exp_after:wN - \q_nil \etex_detokenize:D {#1} \q_nil + \q_no_value \etex_detokenize:D {#1} \q_no_value \exp_after:wN \cs_new_protected_nopar:cpx \tex_else:D \exp_after:wN \cs_new_nopar:cpx @@ -309,6 +309,26 @@ \cs_new:Npn \exp_last_unbraced:NNNo #1#2#3#4 { \exp_after:wN #1 \exp_after:wN #2 \exp_after:wN #3 #4 } +\cs_generate_variant:Nn \str_if_eq_p:nn { V } +\cs_generate_variant:Nn \str_if_eq_p:nn { o } +\cs_generate_variant:Nn \str_if_eq_p:nn { nV } +\cs_generate_variant:Nn \str_if_eq_p:nn { no } +\cs_generate_variant:Nn \str_if_eq_p:nn { VV } +\cs_generate_variant:Nn \str_if_eq:nnT { V } +\cs_generate_variant:Nn \str_if_eq:nnT { o } +\cs_generate_variant:Nn \str_if_eq:nnT { nV } +\cs_generate_variant:Nn \str_if_eq:nnT { no } +\cs_generate_variant:Nn \str_if_eq:nnT { VV } +\cs_generate_variant:Nn \str_if_eq:nnF { V } +\cs_generate_variant:Nn \str_if_eq:nnF { o } +\cs_generate_variant:Nn \str_if_eq:nnF { nV } +\cs_generate_variant:Nn \str_if_eq:nnF { no } +\cs_generate_variant:Nn \str_if_eq:nnF { VV } +\cs_generate_variant:Nn \str_if_eq:nnTF { V } +\cs_generate_variant:Nn \str_if_eq:nnTF { o } +\cs_generate_variant:Nn \str_if_eq:nnTF { nV } +\cs_generate_variant:Nn \str_if_eq:nnTF { no } +\cs_generate_variant:Nn \str_if_eq:nnTF { VV } %% %% %% End of file `l3expan.sty'. diff --git a/Master/texmf-dist/tex/latex/expl3/l3fp.sty b/Master/texmf-dist/tex/latex/expl3/l3fp.sty index 8b7f7b67093..a94e6c3763e 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3fp.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3fp.sty @@ -48,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3fp.dtx 2021 2010-09-14 15:59:54Z joseph $ +\GetIdInfo$Id: l3fp.dtx 2029 2010-09-19 13:59:02Z joseph $ {L3 Experimental floating-point operations} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -152,23 +152,23 @@ } \cs_new_protected_nopar:Npn \fp_split_sign: { \tex_ifnum:D \pdf_strcmp:D - { \exp_after:wN \tl_head:w \l_fp_tmp_tl ? \q_nil } { - } + { \exp_after:wN \tl_head:w \l_fp_tmp_tl ? \q_stop } { - } = \c_zero \tl_set:Nx \l_fp_tmp_tl { \exp_after:wN - \tl_tail:w \l_fp_tmp_tl \prg_do_nothing: \q_nil + \tl_tail:w \l_fp_tmp_tl \prg_do_nothing: \q_stop } \l_fp_split_sign_int -\l_fp_split_sign_int \exp_after:wN \fp_split_sign: \tex_else:D \tex_ifnum:D \pdf_strcmp:D - { \exp_after:wN \tl_head:w \l_fp_tmp_tl ? \q_nil } { + } + { \exp_after:wN \tl_head:w \l_fp_tmp_tl ? \q_stop } { + } = \c_zero \tl_set:Nx \l_fp_tmp_tl { \exp_after:wN - \tl_tail:w \l_fp_tmp_tl \prg_do_nothing: \q_nil + \tl_tail:w \l_fp_tmp_tl \prg_do_nothing: \q_stop } \exp_after:wN \exp_after:wN \exp_after:wN \fp_split_sign: diff --git a/Master/texmf-dist/tex/latex/expl3/l3int.sty b/Master/texmf-dist/tex/latex/expl3/l3int.sty index 6909f182286..44c910a145c 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3int.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3int.sty @@ -15,7 +15,7 @@ %% Do not distribute a modified version of this file. %% %% -%% File: l3int.dtx Copyright (C) 1990-2009 LaTeX3 project +%% File: l3int.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: l3int.dtx 1933 2010-05-25 00:26:38Z will $ +\GetIdInfo$Id: l3int.dtx 2029 2010-09-19 13:59:02Z joseph $ {L3 Experimental Integer module} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -338,10 +338,10 @@ } } \cs_new_nopar:Npn \int_convert_to_base_ten_aux:nn #1#2{ - \int_convert_to_base_ten_auxi:nnN {0}{#2} #1 \q_nil + \int_convert_to_base_ten_auxi:nnN {0}{#2} #1 \q_no_value } \cs_new_nopar:Npn \int_convert_to_base_ten_auxi:nnN#1#2#3{ - \quark_if_nil:NTF #3 + \quark_if_no_value:NTF #3 {#1} {\exp_args:Nf\int_convert_to_base_ten_auxi:nnN {\intexpr_eval:n{ #1*#2+\int_convert_letter_to_number:N #3} } diff --git a/Master/texmf-dist/tex/latex/expl3/l3intexpr.sty b/Master/texmf-dist/tex/latex/expl3/l3intexpr.sty index 268881a29df..d751152223b 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3intexpr.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3intexpr.sty @@ -15,7 +15,7 @@ %% Do not distribute a modified version of this file. %% %% -%% File: l3intexpr.dtx Copyright (C) 2009 LaTeX3 project +%% File: l3intexpr.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,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3intexpr.dtx 1957 2010-06-15 06:33:43Z mittelba $ +\GetIdInfo$Id: l3intexpr.dtx 2045 2010-09-22 03:59:34Z will $ {L3 Integer Expressions} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -70,39 +70,39 @@ } \cs_set:Npn \intexpr_compare_auxi:w #1#2\q_stop{ \exp_after:wN \intexpr_compare_auxii:w \tex_romannumeral:D - \if:w #1- \else: -\fi: #1#2 \q_stop #1#2 \q_nil + \if:w #1- \else: -\fi: #1#2 \q_mark #1#2 \q_stop } -\cs_set:Npn \intexpr_compare_auxii:w #1#2#3\q_stop{ +\cs_set:Npn \intexpr_compare_auxii:w #1#2#3\q_mark{ \use:c{ intexpr_compare_ #1 \if_meaning:w =#2 = \fi: :w} } -\cs_set:cpn {intexpr_compare_=:w} #1=#2\q_nil{ +\cs_set:cpn {intexpr_compare_=:w} #1=#2\q_stop{ \if_intexpr_compare:w #1=\intexpr_eval:w #2 \intexpr_eval_end: \prg_return_true: \else: \prg_return_false: \fi: } -\cs_set:cpn {intexpr_compare_==:w} #1==#2\q_nil{ +\cs_set:cpn {intexpr_compare_==:w} #1==#2\q_stop{ \if_intexpr_compare:w #1=\intexpr_eval:w #2 \intexpr_eval_end: \prg_return_true: \else: \prg_return_false: \fi: } -\cs_set:cpn {intexpr_compare_!=:w} #1!=#2\q_nil{ +\cs_set:cpn {intexpr_compare_!=:w} #1!=#2\q_stop{ \if_intexpr_compare:w #1=\intexpr_eval:w #2 \intexpr_eval_end: \prg_return_false: \else: \prg_return_true: \fi: } -\cs_set:cpn {intexpr_compare_<:w} #1<#2\q_nil{ +\cs_set:cpn {intexpr_compare_<:w} #1<#2\q_stop{ \if_intexpr_compare:w #1<\intexpr_eval:w #2 \intexpr_eval_end: \prg_return_true: \else: \prg_return_false: \fi: } -\cs_set:cpn {intexpr_compare_>:w} #1>#2\q_nil{ +\cs_set:cpn {intexpr_compare_>:w} #1>#2\q_stop{ \if_intexpr_compare:w #1>\intexpr_eval:w #2 \intexpr_eval_end: \prg_return_true: \else: \prg_return_false: \fi: } -\cs_set:cpn {intexpr_compare_<=:w} #1<=#2\q_nil{ +\cs_set:cpn {intexpr_compare_<=:w} #1<=#2\q_stop{ \if_intexpr_compare:w #1>\intexpr_eval:w #2 \intexpr_eval_end: \prg_return_false: \else: \prg_return_true: \fi: } -\cs_set:cpn {intexpr_compare_>=:w} #1>=#2\q_nil{ +\cs_set:cpn {intexpr_compare_>=:w} #1>=#2\q_stop{ \if_intexpr_compare:w #1<\intexpr_eval:w #2 \intexpr_eval_end: \prg_return_false: \else: \prg_return_true: \fi: } diff --git a/Master/texmf-dist/tex/latex/expl3/l3luatex.sty b/Master/texmf-dist/tex/latex/expl3/l3luatex.sty index 0aa6468d7e8..49f232528f4 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3luatex.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3luatex.sty @@ -148,25 +148,6 @@ \cs_new_eq:NN \c_other_cctab \CatcodeTableOther \cs_new_eq:NN \c_string_cctab \CatcodeTableString } -\luatex_if_engine:T { - \cs_set_protected_nopar:Npn \ExplSyntaxOn - { - \tex_ifodd:D \ExplSyntaxStatus \scan_stop: - \tex_else:D - \cs_set_protected_nopar:Npx \ExplSyntaxOff - { - \cctab_end: - \tex_endlinechar:D = - \tex_the:D \tex_endlinechar:D \scan_stop: - \cs_set_protected:Npn \ExplSyntaxOff { } - \tl_set:Nn \exp_not:N \ExplSyntaxStatus { 0 } - } - \tl_set:Nn \ExplSyntaxStatus { 1 } - \cctab_begin:N \c_code_cctab - \tex_endlinechar:D = 32 \scan_stop: - \tex_fi:D - } -} %% %% %% End of file `l3luatex.sty'. diff --git a/Master/texmf-dist/tex/latex/expl3/l3names.sty b/Master/texmf-dist/tex/latex/expl3/l3names.sty index dce13baccdb..e3fbe730eae 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3names.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3names.sty @@ -15,7 +15,7 @@ %% Do not distribute a modified version of this file. %% %% -%% File: l3names.dtx Copyright (C) 1990-2006,2009 LaTeX3 project +%% File: l3names.dtx Copyright (C) 1990-2006,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,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \begingroup -\protected\def\GetIdInfo$#1${% +\def\GetIdInfo$#1${% \begingroup \def\GetIdInfoString{#1}% \def\IdInfoStringUnexp{Id}% @@ -59,53 +59,37 @@ \fi \next } -\protected\def\GetIdInfoFull$#1 #2.#3 #4 #5 #6 #7${% +\def\GetIdInfoFull$#1 #2.#3 #4 #5 #6 #7${% \GetIdInfoAux #5\relax{#2}#5\relax{#4}% } -\protected\def\GetIdInfoAux #1#2#3#4#5#6\relax{% +\def\GetIdInfoAux #1#2#3#4#5#6\relax{% \ifx#5/% \expandafter\GetIdInfoAuxCVS \else \expandafter\GetIdInfoAuxSVN \fi } -\protected\def\GetIdInfoAuxCVS #1#2\relax#3#4{% +\def\GetIdInfoAuxCVS #1#2\relax#3#4{% \gdef\fileversion{#3}% \gdef\filedate{#2}% \gdef\filedescription{#4}% \ProvidesPackage{#1}[#2 v#3 #4]% } -\protected\def\GetIdInfoAuxSVN #1#2-#3-#4\relax#5#6{% +\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] } -\protected\def\GetIdInfoMissing#1{% +\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 1987 2010-07-25 14:55:46Z joseph $ +\GetIdInfo$Id: l3names.dtx 2034 2010-09-20 20:17:43Z joseph $ {L3 Experimental Naming Scheme for TeX Primitives} \endgroup -\begingroup -\def\firstoftwo#1#2{#1} -\def\secondoftwo#1#2{#2} -\def\etexmissingerror{Not running under e-TeX} -\def\etexmissinghelp{% - This package requires e-TeX.^^J% - Try compiling the document with `elatex' instead of `latex'.^^J% - When using pdfTeX, try `pdfelatex' instead of `pdflatex'% -}% -\expandafter\ifx\csname eTeXversion\endcsname\relax - \expandafter\secondoftwo\else\expandafter\firstoftwo\fi - {\endgroup}{% - \PackageError{l3names}{\etexmissingerror}{\etexmissinghelp}% - \endgroup - \endinput - } \def\@tempa{% \def\@tempa{}% \RequirePackage{luatex}% @@ -117,6 +101,26 @@ \else \expandafter\@tempa \fi +\begingroup\expandafter\expandafter\expandafter\endgroup + \ifx\csname pdfstrcmp\endcsname\relax + \let\pdfstrcmp\strcmp +\fi +\begingroup\expandafter\expandafter\expandafter\endgroup +\ifx\csname pdfstrcmp\endcsname\relax + \PackageError{l3names}{Required primitives not found} + {% + LaTeX3 requires the e-TeX primitives and + \string\pdfstrcmp.\MessageBreak + These are available in engine versions: \MessageBreak + - pdfTeX 1.30 \MessageBreak + - XeTeX 0.9994 \MessageBreak + - LuaTeX 0.60 \MessageBreak + or later. \MessageBreak + \MessageBreak + Loading of l3names will abort! + } + \expandafter\endinput +\fi \protected\edef\ExplSyntaxOff{ \unexpanded{\ifodd \ExplSyntaxStatus\relax \def\ExplSyntaxStatus{0} @@ -685,7 +689,7 @@ \tex_endlinechar:D =32 \tex_relax:D % endline is space \tex_catcode:D 95=11 \tex_relax:D % underscore letter \tex_catcode:D 58=11 \tex_relax:D % colon letter - \tex_catcode:D 124=11 \tex_relax:D % vertical bar, other + \tex_catcode:D 124=12 \tex_relax:D % vertical bar, other \tex_catcode:D 38=4 \tex_relax:D % ampersand, alignment token \tex_catcode:D 94=7 \tex_relax:D % caret, math superscript \tex_catcode:D 34=12 \tex_relax:D % doublequote, other @@ -776,11 +780,11 @@ \tex_if:D 2\ExplSyntaxStack 2 \ExplSyntaxOff \tex_else:D - \tex_expandafter:D\ExplSyntaxPopStack\ExplSyntaxStack\q_nil + \tex_expandafter:D\ExplSyntaxPopStack\ExplSyntaxStack\q_stop \tex_fi:D } } -\etex_protected:D\tex_def:D\ExplSyntaxPopStack#1#2\q_nil{ +\etex_protected:D\tex_def:D\ExplSyntaxPopStack#1#2\q_stop{ \tex_def:D\ExplSyntaxStack{#2} \tex_ifodd:D#1\tex_relax:D \ExplSyntaxOn diff --git a/Master/texmf-dist/tex/latex/expl3/l3prg.sty b/Master/texmf-dist/tex/latex/expl3/l3prg.sty index 38112ebffa8..b4f8ec44ed6 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3prg.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3prg.sty @@ -15,7 +15,7 @@ %% Do not distribute a modified version of this file. %% %% -%% File: l3prg.dtx Copyright (C) 2005-2009 LaTeX3 project +%% File: l3prg.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,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3prg.dtx 1992 2010-08-04 20:41:40Z joseph $ +\GetIdInfo$Id: l3prg.dtx 2043 2010-09-22 02:10:43Z will $ {L3 Experimental control structures} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -239,31 +239,59 @@ #2 \bool_if:NF #1 {\bool_do_until:Nn #1 {#2}} } \cs_generate_variant:Nn \bool_do_until:Nn {c} -\cs_set:Npn \bool_if_p:n #1{ +\cs_new:Npn \bool_if_p:n #1{ \group_align_safe_begin: \bool_get_next:N ( #1 )S } -\cs_set:Npn \bool_get_next:N #1{ +\cs_new:Npn \bool_get_next:N #1{ \use:c { bool_ \if_meaning:w !#1 ! \else: \if_meaning:w (#1 ( \else: p \fi: \fi: :w } #1 } -\cs_set:cpn { bool_!:w } #1#2 { +\cs_new:Npn \bool_get_not_next:N #1{ + \use:c { + bool_not_ + \if_meaning:w !#1 ! \else: \if_meaning:w (#1 ( \else: p \fi: \fi: + :w + } #1 +} +\cs_new:Npn \bool_get_next:NN #1#2{ + \bool_get_next:N #2 +} +\cs_new:Npn \bool_get_not_next:NN #1#2{ + \bool_get_not_next:N #2 +} +\cs_new: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 + \exp_after:wN \exp_after:wN \exp_after:wN \bool_get_next:NN \else: \exp_after:wN \exp_after:wN \exp_after:wN \bool_Not:N \fi: \fi: #2 } +\cs_new:cpn { bool_not_!:w } #1#2 { + \if_meaning:w ( #2 + \exp_after:wN \bool_not_Not:w + \else: + \if_meaning:w ! #2 + \exp_after:wN \exp_after:wN \exp_after:wN \bool_get_not_next:NN + \else: + \exp_after:wN \exp_after:wN \exp_after:wN \bool_not_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 + \exp_after:wN \tex_number:D \bool_get_not_next:N +} +\cs_new:Npn \bool_not_Not:w { + \exp_after:wN \tex_number:D \bool_get_next:N } \cs_new:Npn \bool_Not:N #1 { \exp_after:wN \bool_p:w @@ -273,32 +301,55 @@ \c_true_bool \fi: } -\cs_set:cpn {bool_(:w}#1{ +\cs_new:Npn \bool_not_Not:N #1 { + \exp_after:wN \bool_p:w + \if_meaning:w #1 \c_true_bool + \c_true_bool + \else: + \c_false_bool + \fi: +} +\cs_new:cpn {bool_(:w}#1{ \exp_after:wN \bool_cleanup:N \tex_number:D \bool_get_next:N } -\cs_set:cpn {bool_p:w}{\exp_after:wN \bool_cleanup:N \tex_number:D } +\cs_new:cpn {bool_not_(:w}#1{ + \exp_after:wN \bool_not_cleanup:N \tex_number:D \bool_get_next:N +} +\cs_new:cpn {bool_p:w}{\exp_after:wN \bool_cleanup:N \tex_number:D } +\cs_new:cpn {bool_not_p:w}{\exp_after:wN \bool_not_cleanup:N \tex_number:D } \cs_new_nopar:Npn \bool_cleanup:N #1{ \exp_after:wN \bool_choose:NN \exp_after:wN #1 \int_to_roman:w-`\q } +\cs_new_nopar:Npn \bool_not_cleanup:N #1{ + \exp_after:wN \bool_not_choose:NN \exp_after:wN #1 + \int_to_roman:w-`\q +} \cs_new_nopar:Npn \bool_choose:NN #1#2{ \use:c{bool_#2_#1:w} } +\cs_new_nopar:Npn \bool_not_choose:NN #1#2{ \use:c{bool_not_#2_#1:w} } \cs_new_nopar:cpn{bool_&_1:w}&{\bool_get_next:N} \cs_new_nopar:cpn{bool_|_0:w}|{\bool_get_next:N} +\cs_new_nopar:cpn{bool_not_&_0:w}&{\bool_get_next:N} +\cs_new_nopar:cpn{bool_not_|_1:w}|{\bool_get_next:N} \cs_new_nopar:cpn{bool_)_0:w}{ \c_false_bool } \cs_new_nopar:cpn{bool_)_1:w}{ \c_true_bool } +\cs_new_nopar:cpn{bool_not_)_0:w}{ \c_true_bool } +\cs_new_nopar:cpn{bool_not_)_1:w}{ \c_false_bool } \cs_new_nopar:cpn{bool_S_0:w}{\group_align_safe_end: \c_false_bool } \cs_new_nopar:cpn{bool_S_1:w}{\group_align_safe_end: \c_true_bool } -\cs_set:cpn{bool_&_0:w}&{\bool_eval_skip_to_end:Nw \c_false_bool} -\cs_set:cpn{bool_|_1:w}|{\bool_eval_skip_to_end:Nw \c_true_bool} -\cs_set:Npn \bool_eval_skip_to_end:Nw #1#2){ - \bool_eval_skip_to_end_aux:Nw #1 #2(\q_no_value\q_nil{#2} -} -\cs_set:Npn \bool_eval_skip_to_end_aux:Nw #1#2(#3#4\q_nil#5{ +\cs_new:cpn{bool_&_0:w}&{\bool_eval_skip_to_end:Nw \c_false_bool} +\cs_new:cpn{bool_|_1:w}|{\bool_eval_skip_to_end:Nw \c_true_bool} +\cs_new:cpn{bool_not_&_1:w}&{\bool_eval_skip_to_end:Nw \c_false_bool} +\cs_new:cpn{bool_not_|_0:w}|{\bool_eval_skip_to_end:Nw \c_true_bool} +\cs_new:Npn \bool_eval_skip_to_end:Nw #1#2){ + \bool_eval_skip_to_end_aux:Nw #1 #2(\q_no_value\q_stop{#2} +} +\cs_new:Npn \bool_eval_skip_to_end_aux:Nw #1#2(#3#4\q_stop#5{ \quark_if_no_value:NTF #3 { #1 } { \bool_eval_skip_to_end_auxii:Nw #1 #5 } } -\cs_set:Npn \bool_eval_skip_to_end_auxii:Nw #1#2(#3){ +\cs_new:Npn \bool_eval_skip_to_end_auxii:Nw #1#2(#3){ \bool_eval_skip_to_end:Nw #1#3 ) } \cs_new:Npn \bool_set:Nn #1#2 {\tex_chardef:D #1 = \bool_if_p:n {#2}} @@ -354,7 +405,7 @@ } \cs_new:Npn \prg_case_str_aux:nnn #1#2#3{ \quark_if_recursion_tail_stop_do:nn{#2}{\use:n} - \tl_if_eq:xxTF{#1}{#2} + \str_if_eq:xxTF{#1}{#2} { \prg_end_case:nw {#3} } { \prg_case_str_aux:nnn {#1}} } @@ -455,9 +506,9 @@ \group_end: \cs_new_nopar:Npn \prg_variable_get_scope:N #1 { \exp_last_unbraced:Nf \prg_variable_get_scope_aux:w - { \cs_to_str:N #1 \exp_stop_f: \q_nil } + { \cs_to_str:N #1 \exp_stop_f: \q_stop } } - \cs_new_nopar:Npn \prg_variable_get_scope_aux:w #1#2 \q_nil { + \cs_new_nopar:Npn \prg_variable_get_scope_aux:w #1#2 \q_stop { \token_if_eq_meaning:NNT & #1 {g} } } @@ -468,13 +519,13 @@ \group_end: \cs_new_nopar:Npn \prg_variable_get_type:N #1 { \exp_after:wN \p;rg_variable_get_type_aux:w - \token_to_str:N #1 & a \q_nil + \token_to_str:N #1 & a \q_stop } - \cs_new_nopar:Npn \prg_variable_get_type_aux:w #1 & #2#3 \q_nil { + \cs_new_nopar:Npn \prg_variable_get_type_aux:w #1 & #2#3 \q_stop { \token_if_eq_meaning:NNTF a #2 { #1 }{ - \prg_variable_get_type_aux:w #2#3 \q_nil + \prg_variable_get_type_aux:w #2#3 \q_stop } } } diff --git a/Master/texmf-dist/tex/latex/expl3/l3quark.sty b/Master/texmf-dist/tex/latex/expl3/l3quark.sty index 79e0f26f0b3..3fb3d4ee1f8 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3quark.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3quark.sty @@ -48,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3quark.dtx 1853 2010-03-21 09:11:08Z joseph $ +\GetIdInfo$Id: l3quark.dtx 2036 2010-09-20 20:33:54Z joseph $ {L3 Experimental Quark Commands} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -63,7 +63,7 @@ \quark_new:N\q_recursion_stop \cs_new:Npn \quark_if_recursion_tail_stop:n #1 { \exp_after:wN\if_meaning:w - \quark_if_recursion_tail_aux:w #1?\q_nil\q_recursion_tail\q_recursion_tail + \quark_if_recursion_tail_aux:w #1?\q_stop\q_recursion_tail\q_recursion_tail \exp_after:wN \use_none_delimit_by_q_recursion_stop:w \fi: } @@ -75,7 +75,7 @@ \cs_generate_variant:Nn \quark_if_recursion_tail_stop:n {o} \cs_new:Npn \quark_if_recursion_tail_stop_do:nn #1#2 { \exp_after:wN\if_meaning:w - \quark_if_recursion_tail_aux:w #1?\q_nil\q_recursion_tail\q_recursion_tail + \quark_if_recursion_tail_aux:w #1?\q_stop\q_recursion_tail\q_recursion_tail \exp_after:wN \use_i_delimit_by_q_recursion_stop:nw \else: \exp_after:wN\use_none:n @@ -91,52 +91,27 @@ {#2} } \cs_generate_variant:Nn \quark_if_recursion_tail_stop_do:nn {on} -\cs_new:Npn \quark_if_recursion_tail_aux:w #1#2 \q_nil \q_recursion_tail {#1} +\cs_new:Npn \quark_if_recursion_tail_aux:w #1#2 \q_stop \q_recursion_tail {#1} \prg_new_conditional:Nnn \quark_if_no_value:N {p,TF,T,F} { \if_meaning:w \q_no_value #1 \prg_return_true: \else: \prg_return_false: \fi: } -\cs_if_exist:cTF {pdf_strcmp:D} -{ - \prg_new_conditional:Nnn \quark_if_no_value:n {p,TF,T,F} { - \if_num:w \pdf_strcmp:D - {\exp_not:N \q_no_value} - {\exp_not:n{#1}} = \c_zero - \prg_return_true: \else: \prg_return_false: - \fi: - } -} -{ - \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\c_space_tl} - {\tl_to_str:n{#1}} - \prg_return_true: \else: \prg_return_false: - \fi: - } +\prg_new_conditional:Nnn \quark_if_no_value:n {p,TF,T,F} { + \if_num:w \pdf_strcmp:D + {\exp_not:N \q_no_value} + {\exp_not:n{#1}} = \c_zero + \prg_return_true: \else: \prg_return_false: + \fi: } \prg_new_conditional:Nnn \quark_if_nil:N {p,TF,T,F} { \if_meaning:w \q_nil #1 \prg_return_true: \else: \prg_return_false: \fi: } -\cs_if_exist:cTF {pdf_strcmp:D} { - \prg_new_conditional:Nnn \quark_if_nil:n {p,TF,T,F} { - \if_num:w \pdf_strcmp:D - {\exp_not:N \q_nil} - {\exp_not:n{#1}} = \c_zero - \prg_return_true: \else: \prg_return_false: - \fi: - } -} -{ - \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\c_space_tl} - {\tl_to_str:n{#1}} - \prg_return_true: \else: \prg_return_false: - \fi: - } +\prg_new_conditional:Nnn \quark_if_nil:n {p,TF,T,F} { + \if_num:w \pdf_strcmp:D + {\exp_not:N \q_nil} + {\exp_not:n{#1}} = \c_zero + \prg_return_true: \else: \prg_return_false: + \fi: } \cs_generate_variant:Nn \quark_if_nil_p:n {V} \cs_generate_variant:Nn \quark_if_nil:nTF {V} diff --git a/Master/texmf-dist/tex/latex/expl3/l3skip.sty b/Master/texmf-dist/tex/latex/expl3/l3skip.sty index 86bf7cf1d43..b6f10c5127d 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3skip.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3skip.sty @@ -48,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3skip.dtx 1933 2010-05-25 00:26:38Z will $ +\GetIdInfo$Id: l3skip.dtx 2047 2010-09-23 09:27:30Z will $ {L3 Experimental skip registers} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -171,6 +171,51 @@ \if_dim:w \dim_eval:n {#1} #2 \dim_eval:n {#3} \prg_return_true: \else: \prg_return_false: \fi: } +\cs_set_eq:NN \dim_value:w \tex_number:D +\cs_set_eq:NN \dim_eval:w \etex_dimexpr:D +\cs_set_eq:NN \if_dim_compare:w \if_dim:w +\cs_set_eq:NN \dim_eval_end: \scan_stop: +\prg_new_conditional:Npnn \dim_compare:n #1 {p,TF,T,F} { + \exp_after:wN \dim_compare_auxi:w \dim_value:w + \dim_eval:w #1 \q_stop +} +\cs_new:Npn \dim_compare_auxi:w #1#2 \q_stop { + \exp_after:wN \dim_compare_auxii:w \tex_romannumeral:D + \if:w #1- \else: -\fi: #1#2 \q_mark #1#2 \q_stop +} +\cs_new:Npn \dim_compare_auxii:w #1#2#3\q_mark{ + \use:c{ + dim_compare_ #1 \if_meaning:w =#2 = \fi: + :w} +} +\cs_new:cpn {dim_compare_=:w} #1 = #2 \q_stop { + \if_dim_compare:w #1 sp = \dim_eval:w #2 \dim_eval_end: + \prg_return_true: \else: \prg_return_false: \fi: +} +\cs_new:cpn {dim_compare_==:w} #1 == #2 \q_stop { + \if_dim_compare:w #1 sp = \dim_eval:w #2 \dim_eval_end: + \prg_return_true: \else: \prg_return_false: \fi: +} +\cs_new:cpn {dim_compare_!=:w} #1 != #2 \q_stop { + \if_dim_compare:w #1 sp = \dim_eval:w #2 \dim_eval_end: + \prg_return_false: \else: \prg_return_true: \fi: +} +\cs_new:cpn {dim_compare_<:w} #1 < #2 \q_stop { + \if_dim_compare:w #1 sp < \dim_eval:w #2 \dim_eval_end: + \prg_return_true: \else: \prg_return_false: \fi: +} +\cs_new:cpn {dim_compare_>:w} #1 > #2 \q_stop { + \if_dim_compare:w #1 sp > \dim_eval:w #2 \dim_eval_end: + \prg_return_true: \else: \prg_return_false: \fi: +} +\cs_new:cpn {dim_compare_<=:w} #1 <= #2 \q_stop { + \if_dim_compare:w #1 sp > \dim_eval:w #2 \dim_eval_end: + \prg_return_false: \else: \prg_return_true: \fi: +} +\cs_new:cpn {dim_compare_>=:w} #1 >= #2 \q_stop { + \if_dim_compare:w #1 sp < \dim_eval:w #2 \dim_eval_end: + \prg_return_false: \else: \prg_return_true: \fi: +} \cs_new_nopar:Npn \dim_while_do:nNnn #1#2#3#4{ \dim_compare:nNnT {#1}#2{#3}{#4 \dim_while_do:nNnn {#1}#2{#3}{#4}} } diff --git a/Master/texmf-dist/tex/latex/expl3/l3tl.sty b/Master/texmf-dist/tex/latex/expl3/l3tl.sty index c55f9dc82ab..19df9805a95 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3tl.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3tl.sty @@ -48,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3tl.dtx 1919 2010-05-22 05:56:38Z will $ +\GetIdInfo$Id: l3tl.dtx 2040 2010-09-21 18:11:09Z joseph $ {L3 Experimental Token Lists} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -229,6 +229,20 @@ \cs_generate_variant:Nn \tl_if_eq:NNTF {Nc,c,cc} \cs_generate_variant:Nn \tl_if_eq:NNT {Nc,c,cc} \cs_generate_variant:Nn \tl_if_eq:NNF {Nc,c,cc} +\prg_new_protected_conditional:Npnn \tl_if_eq:nn #1#2 { T , F , TF } { + \group_begin: + \tl_set:Nn \l_tl_tmpa_tl {#1} + \tl_set:Nn \l_tl_tmpb_tl {#2} + \tex_ifx:D \l_tl_tmpa_tl \l_tl_tmpb_tl + \group_end: + \prg_return_false: + \tex_else:D + \group_end: + \prg_return_false: + \tex_fi:D +} +\tl_new:N \l_tl_tmpa_tl +\tl_new:N \l_tl_tmpb_tl \prg_new_conditional:Npnn \tl_if_empty:n #1 {p,TF,T,F} { \exp_after:wN \if_meaning:w \exp_after:wN \q_nil \tl_to_str:n {#1} \q_nil \prg_return_true: \else: \prg_return_false: \fi: @@ -242,9 +256,9 @@ \cs_generate_variant:Nn \tl_if_empty:nT {o} \cs_generate_variant:Nn \tl_if_empty:nF {o} \prg_new_conditional:Npnn \tl_if_blank:n #1 {p,TF,T,F} { - \exp_after:wN \tl_if_blank_p_aux:w \tl_to_str:n {#1} aa..\q_nil + \exp_after:wN \tl_if_blank_p_aux:w \tl_to_str:n {#1} aa..\q_stop } -\cs_new:Npn \tl_if_blank_p_aux:w #1#2 a #3#4 \q_nil { +\cs_new:Npn \tl_if_blank_p_aux:w #1#2 a #3#4 \q_stop { \if_meaning:w #3 #4 \prg_return_true: \else: \prg_return_false: \fi: } \cs_generate_variant:Nn \tl_if_blank_p:n {V} @@ -262,7 +276,7 @@ \tl_if_blank:nTF {#1} {\prg_return_true:} { - \_tl_if_single_aux:w #1 \q_nil + \_tl_if_single_aux:w #1 \q_stop } } } @@ -273,168 +287,13 @@ \exp_after:wN \tl_if_blank:nTF #1 {\prg_return_true:} { - \exp_after:wN \_tl_if_single_aux:w #1 \q_nil + \exp_after:wN \_tl_if_single_aux:w #1 \q_stop } } } -\cs_new:Npn \_tl_if_single_aux:w #1#2 \q_nil { +\cs_new:Npn \_tl_if_single_aux:w #1#2 \q_stop { \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}} -} -\cs_new:Npn \tl_compare:nx #1{ - \tl_compare:xx{\exp_not:n{#1}} -} -\cs_new:Npn \tl_compare:xn #1#2{ - \tl_compare:xx{#1}{\exp_not:n{#2}} -} -\cs_new:Npn \tl_compare:nV #1#2 { - \tl_compare:xx { \exp_not:n {#1} } { \exp_not:V #2 } -} -\cs_new:Npn \tl_compare:no #1#2{ - \tl_compare:xx{\exp_not:n{#1}}{\exp_not:n\exp_after:wN{#2}} -} -\cs_new:Npn \tl_compare:Vn #1#2 { - \tl_compare:xx { \exp_not:V #1 } { \exp_not:n {#2} } -} -\cs_new:Npn \tl_compare:on #1#2{ - \tl_compare:xx{\exp_not:n\exp_after:wN{#1}}{\exp_not:n{#2}} -} -\cs_new:Npn \tl_compare:VV #1#2 { - \tl_compare:xx { \exp_not:V #1 } { \exp_not:V #2 } -} -\cs_new:Npn \tl_compare:oo #1#2{ - \tl_compare:xx{\exp_not:n\exp_after:wN{#1}}{\exp_not:n\exp_after:wN{#2}} -} -\cs_new:Npn \tl_compare:xV #1#2 { - \tl_compare:xx {#1} { \exp_not:V #2 } -} -\cs_new:Npn \tl_compare:xo #1#2{ - \tl_compare:xx{#1}{\exp_not:n\exp_after:wN{#2}} -} -\cs_new:Npn \tl_compare:Vx #1#2 { - \tl_compare:xx { \exp_not:V #1 } {#2} -} -\cs_new:Npn \tl_compare:ox #1#2{ - \tl_compare:xx{\exp_not:n\exp_after:wN{#1}}{#2} -} -\cs_set_nopar:Npn \tl_tmp:w #1 { - \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 - \exp_not:c {tl_compare:#1} {####1}{####2} - \exp_not:n{ =\c_zero \prg_return_true: \else: \prg_return_false: \fi: } - } - } - \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} -\tl_tmp:w{xo} \tl_tmp:w{no} \tl_tmp:w{oo} -\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_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_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_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_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_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_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_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_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_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_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_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_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_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_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: - } -} \cs_new_eq:NN \tl_to_lowercase:n \tex_lowercase:D \cs_new_eq:NN \tl_to_uppercase:n \tex_uppercase:D \cs_new_eq:NN \tl_to_str:n \etex_detokenize:D @@ -650,29 +509,29 @@ } \cs_generate_variant:Nn \tl_remove_all_in:Nn {cn} \cs_generate_variant:Nn \tl_gremove_all_in:Nn {cn} -\cs_new:Npn \tl_head:n #1{\tl_head:w #1\q_nil} +\cs_new:Npn \tl_head:n #1{\tl_head:w #1\q_stop} \cs_new_eq:NN \tl_head_i:n \tl_head:n -\cs_new:Npn \tl_tail:n #1{\tl_tail:w #1\q_nil} +\cs_new:Npn \tl_tail:n #1{\tl_tail:w #1\q_stop} \cs_generate_variant:Nn \tl_tail:n {f} -\cs_new:Npn \tl_head_iii:n #1{\tl_head_iii:w #1\q_nil} +\cs_new:Npn \tl_head_iii:n #1{\tl_head_iii:w #1\q_stop} \cs_generate_variant:Nn \tl_head_iii:n {f} -\cs_new_eq:NN \tl_head:w \use_i_delimit_by_q_nil:nw +\cs_new:Npn \tl_head:w #1#2\q_stop{#1} \cs_new_eq:NN \tl_head_i:w \tl_head:w -\cs_new:Npn \tl_tail:w #1#2\q_nil{#2} -\cs_new:Npn \tl_head_iii:w #1#2#3#4\q_nil{#1#2#3} +\cs_new:Npn \tl_tail:w #1#2\q_stop{#2} +\cs_new:Npn \tl_head_iii:w #1#2#3#4\q_stop{#1#2#3} \cs_generate_variant:Nn \tl_head:n { V } \cs_generate_variant:Nn \tl_tail:n { V } \prg_new_conditional:Npnn \tl_if_head_eq_meaning:nN #1#2 {p,TF,T,F} { - \exp_after:wN \if_meaning:w \tl_head:w #1 \q_nil #2 + \exp_after:wN \if_meaning:w \tl_head:w #1 \q_stop #2 \prg_return_true: \else: \prg_return_false: \fi: } \prg_new_conditional:Npnn \tl_if_head_eq_charcode:nN #1#2 {p,TF,T,F} { \exp_after:wN \if:w \exp_after:wN \exp_not:N - \tl_head:w #1 \q_nil \exp_not:N #2 + \tl_head:w #1 \q_stop \exp_not:N #2 \prg_return_true: \else: \prg_return_false: \fi: } %% \cs_new:Npn \tl_if_head_eq_charcode_p:fN #1#2{ -%% \exp_after:wN\if_charcode:w \tl_head:w #1\q_nil\exp_not:N#2 +%% \exp_after:wN\if_charcode:w \tl_head:w #1\q_stop\exp_not:N#2 %% \c_true_bool %% \else: %% \c_false_bool @@ -686,7 +545,7 @@ \cs_generate_variant:Nn \tl_if_head_eq_charcode:nNF {f} \prg_new_conditional:Npnn \tl_if_head_eq_catcode:nN #1#2 {p,TF,T,F} { \exp_after:wN \if_catcode:w \exp_after:wN \exp_not:N - \tl_head:w #1 \q_nil \exp_not:N #2 + \tl_head:w #1 \q_stop \exp_not:N #2 \prg_return_true: \else: \prg_return_false: \fi: } \tex_ifodd:D \@l@expl@check@declarations@bool \scan_stop: diff --git a/Master/texmf-dist/tex/latex/expl3/l3token.sty b/Master/texmf-dist/tex/latex/expl3/l3token.sty index 4feba030a6b..873775f95d0 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3token.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3token.sty @@ -48,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3token.dtx 1890 2010-04-11 03:37:15Z will $ +\GetIdInfo$Id: l3token.dtx 2029 2010-09-19 13:59:02Z joseph $ {L3 Experimental token investigation and manipulation} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -222,9 +222,9 @@ \prg_return_true: \else: \prg_return_false: \fi: } \prg_new_conditional:Nnn \token_if_macro:N {p,TF,T,F} { - \exp_after:wN \token_if_macro_p_aux:w \token_to_meaning:N #1 -> \q_nil + \exp_after:wN \token_if_macro_p_aux:w \token_to_meaning:N #1 -> \q_stop } -\cs_new_nopar:Npn \token_if_macro_p_aux:w #1 -> #2 \q_nil{ +\cs_new_nopar:Npn \token_if_macro_p_aux:w #1 -> #2 \q_stop{ \if_predicate:w \tl_if_empty_p:n{#2} \prg_return_false: \else: \prg_return_true: \fi: } @@ -252,16 +252,16 @@ \group_end: \prg_new_conditional:Nnn \token_if_chardef:N {p,TF,T,F} { \exp_after:wN \token_if_chardef_aux:w - \token_to_meaning:N #1?CHAR"\q_nil + \token_to_meaning:N #1?CHAR"\q_stop } -\cs_new_nopar:Npn \token_if_chardef_aux:w #1?CHAR"#2\q_nil{ +\cs_new_nopar:Npn \token_if_chardef_aux:w #1?CHAR"#2\q_stop{ \tl_if_empty:nTF {#1} {\prg_return_true:} {\prg_return_false:} } \prg_new_conditional:Nnn \token_if_mathchardef:N {p,TF,T,F} { \exp_after:wN \token_if_mathchardef_aux:w - \token_to_meaning:N #1?MAYHCHAR"\q_nil + \token_to_meaning:N #1?MAYHCHAR"\q_stop } -\cs_new_nopar:Npn \token_if_mathchardef_aux:w #1?MAYHCHAR"#2\q_nil{ +\cs_new_nopar:Npn \token_if_mathchardef_aux:w #1?MAYHCHAR"#2\q_stop{ \tl_if_empty:nTF {#1} {\prg_return_true:} {\prg_return_false:} } \prg_new_conditional:Nnn \token_if_int_register:N {p,TF,T,F} { @@ -269,10 +269,10 @@ \prg_return_false: \else: \exp_after:wN \token_if_int_register_aux:w - \token_to_meaning:N #1?COUXY\q_nil + \token_to_meaning:N #1?COUXY\q_stop \fi: } -\cs_new_nopar:Npn \token_if_int_register_aux:w #1?COUXY#2\q_nil{ +\cs_new_nopar:Npn \token_if_int_register_aux:w #1?COUXY#2\q_stop{ \tl_if_empty:nTF {#1} {\prg_return_true:} {\prg_return_false:} } \prg_new_conditional:Nnn \token_if_skip_register:N {p,TF,T,F} { @@ -280,10 +280,10 @@ \prg_return_false: \else: \exp_after:wN \token_if_skip_register_aux:w - \token_to_meaning:N #1?SKIP\q_nil + \token_to_meaning:N #1?SKIP\q_stop \fi: } -\cs_new_nopar:Npn \token_if_skip_register_aux:w #1?SKIP#2\q_nil{ +\cs_new_nopar:Npn \token_if_skip_register_aux:w #1?SKIP#2\q_stop{ \tl_if_empty:nTF {#1} {\prg_return_true:} {\prg_return_false:} } \prg_new_conditional:Nnn \token_if_dim_register:N {p,TF,T,F} { @@ -291,10 +291,10 @@ \c_false_bool \else: \exp_after:wN \token_if_dim_register_aux:w - \token_to_meaning:N #1?ZIMEX\q_nil + \token_to_meaning:N #1?ZIMEX\q_stop \fi: } -\cs_new_nopar:Npn \token_if_dim_register_aux:w #1?ZIMEX#2\q_nil{ +\cs_new_nopar:Npn \token_if_dim_register_aux:w #1?ZIMEX#2\q_stop{ \tl_if_empty:nTF {#1} {\prg_return_true:} {\prg_return_false:} } \prg_new_conditional:Nnn \token_if_toks_register:N {p,TF,T,F} { @@ -302,32 +302,32 @@ \prg_return_false: \else: \exp_after:wN \token_if_toks_register_aux:w - \token_to_meaning:N #1?YOKS\q_nil + \token_to_meaning:N #1?YOKS\q_stop \fi: } -\cs_new_nopar:Npn \token_if_toks_register_aux:w #1?YOKS#2\q_nil{ +\cs_new_nopar:Npn \token_if_toks_register_aux:w #1?YOKS#2\q_stop{ \tl_if_empty:nTF {#1} {\prg_return_true:} {\prg_return_false:} } \prg_new_conditional:Nnn \token_if_protected_macro:N {p,TF,T,F} { \exp_after:wN \token_if_protected_macro_aux:w - \token_to_meaning:N #1?PROYECYEZ~MACRO\q_nil + \token_to_meaning:N #1?PROYECYEZ~MACRO\q_stop } -\cs_new_nopar:Npn \token_if_protected_macro_aux:w #1?PROYECYEZ~MACRO#2\q_nil{ +\cs_new_nopar:Npn \token_if_protected_macro_aux:w #1?PROYECYEZ~MACRO#2\q_stop{ \tl_if_empty:nTF {#1} {\prg_return_true:} {\prg_return_false:} } \prg_new_conditional:Nnn \token_if_long_macro:N {p,TF,T,F} { \exp_after:wN \token_if_long_macro_aux:w - \token_to_meaning:N #1?LOXG~MACRO\q_nil + \token_to_meaning:N #1?LOXG~MACRO\q_stop } -\cs_new_nopar:Npn \token_if_long_macro_aux:w #1?LOXG~MACRO#2\q_nil{ +\cs_new_nopar:Npn \token_if_long_macro_aux:w #1?LOXG~MACRO#2\q_stop{ \tl_if_empty:nTF {#1} {\prg_return_true:} {\prg_return_false:} } \prg_new_conditional:Nnn \token_if_protected_long_macro:N {p,TF,T,F} { \exp_after:wN \token_if_protected_long_macro_aux:w - \token_to_meaning:N #1?PROYECYEZ?LOXG~MACRO\q_nil + \token_to_meaning:N #1?PROYECYEZ?LOXG~MACRO\q_stop } \cs_new_nopar:Npn \token_if_protected_long_macro_aux:w #1 - ?PROYECYEZ?LOXG~MACRO#2\q_nil{ + ?PROYECYEZ?LOXG~MACRO#2\q_stop{ \tl_if_empty:nTF {#1} {\prg_return_true:} {\prg_return_false:} } } @@ -340,25 +340,25 @@ \char_set_catcode:nn{`\O}{12} \tl_to_lowercase:n{ \group_end: - \cs_new_nopar:Npn \token_get_prefix_arg_replacement_aux:w #1MACRO?#2->#3\q_nil#4{ + \cs_new_nopar:Npn \token_get_prefix_arg_replacement_aux:w #1MACRO?#2->#3\q_stop#4{ #4{#1}{#2}{#3} } \cs_new_nopar:Npn\token_get_prefix_spec:N #1{ \token_if_macro:NTF #1{ \exp_after:wN \token_get_prefix_arg_replacement_aux:w - \token_to_meaning:N #1\q_nil\use_i:nnn + \token_to_meaning:N #1\q_stop\use_i:nnn }{\scan_stop:} } \cs_new_nopar:Npn\token_get_arg_spec:N #1{ \token_if_macro:NTF #1{ \exp_after:wN \token_get_prefix_arg_replacement_aux:w - \token_to_meaning:N #1\q_nil\use_ii:nnn + \token_to_meaning:N #1\q_stop\use_ii:nnn }{\scan_stop:} } \cs_new_nopar:Npn\token_get_replacement_spec:N #1{ \token_if_macro:NTF #1{ \exp_after:wN \token_get_prefix_arg_replacement_aux:w - \token_to_meaning:N #1\q_nil\use_iii:nnn + \token_to_meaning:N #1\q_stop\use_iii:nnn }{\scan_stop:} } } diff --git a/Master/texmf-dist/tex/latex/expl3/l3toks.sty b/Master/texmf-dist/tex/latex/expl3/l3toks.sty index ce2a909f3db..23c8f1fd9dd 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3toks.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3toks.sty @@ -48,7 +48,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3toks.dtx 1933 2010-05-25 00:26:38Z will $ +\GetIdInfo$Id: l3toks.dtx 2037 2010-09-20 21:22:45Z joseph $ {L3 Experimental Token Registers} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -99,7 +99,7 @@ \cs_new_eq:NN \toks_show:N \kernel_register_show:N \cs_generate_variant:Nn \toks_show:N {c} \cs_new_protected_nopar:Npn \toks_put_left:Nn #1 { - \exp_after:wN \toks_put_left_aux:w \exp_after:wN \q_mark + \exp_after:wN \toks_put_left_aux:w \exp_after:wN \q_nil \toks_use:N #1 \q_stop #1 } \cs_generate_variant:Nn \toks_put_left:Nn {NV,No,Nx,cn,co,cV} @@ -144,7 +144,7 @@ \cs_generate_variant:Nn \toks_if_empty:NT {c} \cs_generate_variant:Nn \toks_if_empty:NF {c} \prg_new_conditional:Nnn \toks_if_eq:NN {p,TF,T,F} { - \tl_if_eq:xxTF {\toks_use:N #1} {\toks_use:N #2} + \str_if_eq:xxTF {\toks_use:N #1} {\toks_use:N #2} {\prg_return_true:} {\prg_return_false:} } \cs_generate_variant:Nn \toks_if_eq_p:NN {Nc,c,cc} |