From 743bc34fac4c76ac8e33a48ae49291dc4cd4fb3f Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 8 Mar 2011 00:12:32 +0000 Subject: expl3 2184 (7mar11) git-svn-id: svn://tug.org/texlive/trunk@21634 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/expl3/expl3.sty | 5 +- Master/texmf-dist/tex/latex/expl3/l3basics.sty | 8 +- Master/texmf-dist/tex/latex/expl3/l3box.sty | 4 +- Master/texmf-dist/tex/latex/expl3/l3clist.sty | 6 +- Master/texmf-dist/tex/latex/expl3/l3doc.cls | 307 +++++++++++++++++++++++-- Master/texmf-dist/tex/latex/expl3/l3font.sty | 105 +++++++++ Master/texmf-dist/tex/latex/expl3/l3fp.sty | 4 +- Master/texmf-dist/tex/latex/expl3/l3int.sty | 8 +- Master/texmf-dist/tex/latex/expl3/l3prg.sty | 14 +- Master/texmf-dist/tex/latex/expl3/l3quark.sty | 3 +- Master/texmf-dist/tex/latex/expl3/l3skip.sty | 6 +- Master/texmf-dist/tex/latex/expl3/l3tl.sty | 21 +- Master/texmf-dist/tex/latex/expl3/l3token.sty | 2 +- Master/texmf-dist/tex/latex/expl3/l3xref.sty | 2 +- 14 files changed, 434 insertions(+), 61 deletions(-) create mode 100644 Master/texmf-dist/tex/latex/expl3/l3font.sty (limited to 'Master/texmf-dist/tex/latex/expl3') diff --git a/Master/texmf-dist/tex/latex/expl3/expl3.sty b/Master/texmf-dist/tex/latex/expl3/expl3.sty index c300e06c1e3..cec0003dbd8 100644 --- a/Master/texmf-dist/tex/latex/expl3/expl3.sty +++ b/Master/texmf-dist/tex/latex/expl3/expl3.sty @@ -49,7 +49,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: expl3.dtx 2083 2010-11-13 13:01:31Z will $ +\GetIdInfo$Id: expl3.dtx 2156 2011-02-17 15:40:23Z will $ {L3 Experimental code bundle wrapper}% \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -88,7 +88,8 @@ l3xref, l3file, l3fp, - l3luatex + l3luatex, + l3font } \RequirePackage{calc} \bool_if:nT { \@l@expl@check@declarations@bool } { diff --git a/Master/texmf-dist/tex/latex/expl3/l3basics.sty b/Master/texmf-dist/tex/latex/expl3/l3basics.sty index 1c0e8c5243b..8afc6cdeb81 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,2010 LaTeX3 project +%% File: l3basics.dtx Copyright (C) 1990-2011 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 2063 2010-10-03 08:26:49Z mittelba $ +\GetIdInfo$Id: l3basics.dtx 2158 2011-02-26 12:37:22Z mittelba $ {L3 Experimental basic definitions} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -396,6 +396,10 @@ \cs_set_eq:NwN \c_minus_one\m@ne \tex_chardef:D \c_sixteen = 16~ \tex_chardef:D \c_zero = 0~ +\tex_chardef:D \c_six = 6~ +\tex_chardef:D \c_seven = 7~ +\tex_chardef:D \c_twelve = 12~ +\tex_mathchardef:D \c_max_register_int = 32767 \tex_relax:D \cs_set_protected_nopar:Npn \iow_log:x { \tex_immediate:D \iow_shipout_x:Nn \c_minus_one } diff --git a/Master/texmf-dist/tex/latex/expl3/l3box.sty b/Master/texmf-dist/tex/latex/expl3/l3box.sty index ad546da7c67..7b06929a060 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-2010 LaTeX3 project +%% File: l3box.dtx Copyright (C) 2005-2011 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: l3box.dtx 2048 2010-09-26 19:13:59Z joseph $ +\GetIdInfo$Id: l3box.dtx 2178 2011-03-06 09:03:44Z mittelba $ {L3 Experimental Box module} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} diff --git a/Master/texmf-dist/tex/latex/expl3/l3clist.sty b/Master/texmf-dist/tex/latex/expl3/l3clist.sty index 2e40898a0dc..abbf7133cea 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-2010 Frank Mittelbach, LaTeX3 project +%% File: l3clist.dtx Copyright (C) 2005-2011 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 2071 2010-10-09 09:48:48Z joseph $ +\GetIdInfo$Id: l3clist.dtx 2178 2011-03-06 09:03:44Z mittelba $ {L3 Experimental comma separated lists} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -106,8 +106,8 @@ \clist_if_empty_err:N #1 \exp_after:wN \clist_get_aux:w #1,\q_stop } -\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_protected:Npn \clist_get_aux:w #1,#2\q_stop #3 { \tl_set:Nn #3{#1} } \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 diff --git a/Master/texmf-dist/tex/latex/expl3/l3doc.cls b/Master/texmf-dist/tex/latex/expl3/l3doc.cls index 09ece930f47..e79e3fbee21 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3doc.cls +++ b/Master/texmf-dist/tex/latex/expl3/l3doc.cls @@ -53,11 +53,11 @@ \let \filedateOld \filedate \let \fileversionOld \fileversion \let \filedescriptionOld \filedescription -\GetIdInfo$Id: l3doc.dtx 2037 2010-09-20 21:22:45Z joseph $ +\GetIdInfo$Id: l3doc.dtx 2180 2011-03-06 10:38:35Z will $ {L3 Experimental documentation class} \ProvidesExplClass {\filename}{\filedate}{\fileversion}{\filedescription} -\RequirePackage{expl3} +\RequirePackage{expl3,xparse} \let \filename \filenameOld \let \filenameext \filenameextOld \let \filedate \filedateOld @@ -73,14 +73,17 @@ \bool_new:N \g_doc_full_bool \bool_new:N \g_doc_lmodern_bool \bool_new:N \g_doc_checkfunc_bool +\bool_new:N \g_doc_checktest_bool \DeclareOption{full}{ \bool_set_true:N \g_doc_full_bool } \DeclareOption{onlydoc}{ \bool_set_false:N \g_doc_full_bool } \DeclareOption{check}{ \bool_set_true:N \g_doc_checkfunc_bool } \DeclareOption{nocheck}{ \bool_set_false:N \g_doc_checkfunc_bool } +\DeclareOption{checktest}{ \bool_set_true:N \g_doc_checktest_bool } +\DeclareOption{nochecktest}{ \bool_set_false:N \g_doc_checktest_bool } \DeclareOption{cm-default}{ \bool_set_false:N \g_doc_lmodern_bool } \DeclareOption{lm-default}{ \bool_set_true:N \g_doc_lmodern_bool } \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} -\ExecuteOptions{full,a4paper,nocheck,lm-default} +\ExecuteOptions{full,a4paper,nocheck,nochecktest,lm-default} \InputIfFileExists{l3doc.cfg} { \typeout{*************************************^^J @@ -165,13 +168,20 @@ \index{TeX~and~LaTeX2e~commands\actualchar \string\TeX{}~and~\string\LaTeXe{}~commands:\levelchar #1\actualchar{\string\ttfamily\string\bslash{}#1}}} -\newenvironment{documentation}{}{} -\newenvironment{implementation}{}{} +\cs_new:Npn \doc_implementation: { + \cs_set:Npn \variable {\macro[var]} +} +\cs_new:Npn \doc_docu: { + \cs_set_eq:NN \variable \variabledoc +} +\AtEndOfPackage{\doc_docu:} +\newenvironment{documentation}{\doc_docu:}{} +\newenvironment{implementation}{\doc_implementation:}{} \newcommand\EnableDocumentation{% - \renewenvironment{documentation}{}{}% + \renewenvironment{documentation}{\doc_docu:}{}% } \newcommand\EnableImplementation{% - \renewenvironment{implementation}{}{}% + \renewenvironment{implementation}{\doc_implementation:}{}% } \newcommand\DisableDocumentation{% \cs_set_eq:NN \documentation \comment @@ -193,6 +203,7 @@ \group_begin: \char_make_active:N \< \cs_new_nopar:Npn \function { + \phantomsection \char_make_active:N \< \cs_set_eq:NN < \doc_open_meta:n \group_begin: @@ -206,7 +217,7 @@ \function_aux:n } \group_end: -\cs_set_eq:NN \variable \function +\cs_set_eq:NN \variabledoc \function \group_begin: \char_make_other:N \| \cs_gset_nopar:Npn \function_aux:n #1 { @@ -215,7 +226,7 @@ \bigskip\endgraf\noindent\ttfamily \tabular[b]{ | l @{} c | } \hline - \doc_showmacro:w #1 | \q_stop \\ + \clist_map_inline:nn {#1} {\doc_showmacro:w ##1 | \q_stop} \\ \hline \endtabular \group_end: @@ -233,6 +244,7 @@ } \group_end: \bool_new:N \l_doc_meta_TF_bool +\bool_new:N \l_doc_meta_pTF_bool \bool_new:N \l_doc_meta_EXP_bool \cs_new_nopar:Npn \doc_showmacro_aux:w #1 / #2 \q_stop { @@ -246,6 +258,19 @@ }{ \bool_gset_false:N \l_doc_meta_EXP_bool } + \tl_if_in:nnTF {#2} { (pTF) } { + \bool_gset_true:N \l_doc_meta_TF_bool + \bool_gset_true:N \l_doc_meta_pTF_bool + \bool_gset_true:N \l_doc_meta_EXP_bool + \tl_set:Nx \l_doc_pTF_name_tl { \doc_predicate_from_base:w #1 \q_nil } + }{ + \bool_gset_false:N \l_doc_meta_pTF_bool + } + + \bool_if:NT \l_doc_meta_pTF_bool { + \doc_special_main_index:o { \l_doc_pTF_name_tl } + \seq_gput_right:Nx \g_doc_functions_seq { \tl_to_str:N \l_doc_pTF_name_tl } + } \bool_if:NTF \l_doc_meta_TF_bool { \doc_special_main_index:o { #1 TF } @@ -257,11 +282,17 @@ \seq_gput_right:Nx \g_doc_functions_seq { \tl_to_str:n { #1 } } } - \doc_showmacro_aux_ii:w #1::\q_stop + \bool_if:NTF \l_doc_meta_pTF_bool { + \bool_gset_false:N \l_doc_meta_TF_bool + \exp_after:wN \doc_showmacro_aux_ii:w \l_doc_pTF_name_tl ::\q_stop + \bool_gset_true:N \l_doc_meta_TF_bool + \doc_showmacro_aux_ii:w #1::\q_stop + }{ + \doc_showmacro_aux_ii:w #1::\q_stop + } } \cs_set_nopar:Npn \doc_showmacro_aux_ii:w #1:#2:#3 \q_stop { \nextnewline - \str_if_eq:xxTF {#1} {\g_doc_macro_tl} { \doc_typeset_aux:n }{ @@ -277,6 +308,12 @@ \hspace{\tabcolsep} $\star$ } + \tl_set:Nx \g_doc_macro_tl { \tl_to_str:N \g_doc_macro_tl } + \exp_args:NNf \tl_replace_all_in:Nnn \g_doc_macro_tl {\token_to_str:N _} {/} + \exp_args:NNf \tl_replace_all_in:Nnn \g_doc_macro_tl {\@backslashchar} {} + \bool_if:NT \g_doc_full_bool { + \exp_args:Nf\label{doc/function/\g_doc_macro_tl#3#2} + } } \dim_new:N \g_doc_syntax_dim \dim_set:Nn \g_doc_syntax_dim {0.7\textwidth} @@ -317,14 +354,25 @@ \cs_set_nopar:Npn #1 { \unskip \, $ {} \sb { \use:c { char_other_\string #1 } } $ } } \renewcommand \macro [1][] { + + \int_compare:nNnTF \currentgrouplevel=2 + { \int_gzero:N \g_doc_nested_macro_int } + { \int_incr:N \g_doc_nested_macro_int } + \bool_set_false:N \l_doc_macro_aux_bool \bool_set_false:N \l_doc_macro_TF_bool + \bool_set_false:N \l_doc_macro_pTF_bool + \bool_set_false:N \l_doc_macro_var_bool + \bool_set_false:N \l_doc_tested_bool + \cs_set_eq:NN \doc_macroname_prefix:n \use:n \cs_set_eq:NN \doc_macroname_suffix: \c_empty_tl \cs_set_nopar:Npn \KV_key_no_value_elt:n ##1 { \use:c {doc_macro_opt_##1:} } \KV_parse_space_removal_sanitize:n {#1} + \cs_set_eq:NN \testfile \doc_print_testfile:n + \group_begin: \MakePrivateLetters \char_make_letter:N \\ @@ -335,13 +383,34 @@ } \cs_new_nopar:Npn \doc_macro_aux:n #1 { \group_end: - \clist_map_inline:nn {#1} { \doc_macro_single {##1} } + \cs_set:Npn \l_doc_macro_input_clist {#1} + \bool_if:NTF \l_doc_macro_pTF_bool + { + \clist_map_inline:nn {#1} + { + \exp_args:Nf \doc_macro_single + { \doc_predicate_from_base:w ##1 \q_nil } + } + \bool_set_true:N \l_doc_macro_TF_bool + \clist_map_inline:nn {#1} { \doc_macro_single {##1} } + \bool_set_false:N \l_doc_macro_TF_bool + } + { + \clist_map_inline:nn {#1} { \doc_macro_single {##1} } + } } \bool_new:N \l_doc_macro_aux_bool \bool_new:N \l_doc_macro_TF_bool +\bool_new:N \l_doc_macro_pTF_bool +\bool_new:N \l_doc_macro_var_bool \cs_set_nopar:Npn \doc_macro_opt_aux: { \bool_set_true:N \l_doc_macro_aux_bool } -\cs_set_nopar:Npn \doc_macro_opt_TF: { \bool_set_true:N \l_doc_macro_TF_bool } +\cs_set_nopar:Npn \doc_macro_opt_TF: { \bool_set_true:N \l_doc_macro_TF_bool } +\cs_set_nopar:Npn \doc_macro_opt_pTF: { \bool_set_true:N \l_doc_macro_pTF_bool } +\cs_set_nopar:Npn \doc_macro_opt_var: { \bool_set_true:N \l_doc_macro_var_bool } +\cs_set:Npn \doc_predicate_from_base:w #1:#2 \q_nil {#1_p:#2} +\int_new:N \l_doc_macro_int \cs_set_nopar:Npn \doc_macro_single #1 { + \int_incr:N \l_doc_macro_int \tl_set:Nx \saved@macroname { \token_to_str:N #1 } \topsep\MacroTopsep \trivlist @@ -368,11 +437,17 @@ \cs_set_eq:NN \doc_macroname_suffix: \doc_typeset_TF: } - \cs_set_nopar:Npx \@tempa { + \bool_if:NF \l_doc_macro_aux_bool { + \tl_gset:Nx \l_doc_macro_tl { \tl_to_str:n {#1} } + \exp_args:NNf \tl_greplace_all_in:Nnn \l_doc_macro_tl {\token_to_str:N _} {/} + \exp_args:NNf \tl_greplace_all_in:Nnn \l_doc_macro_tl {\@backslashchar} {} + } + + \use:x { \exp_not:N \item [ \exp_not:N \doc_print_macroname:n { \tl_to_str:n {#1} }] - } \@tempa + } \global\advance \c@CodelineNo \@ne \bool_if:NF \l_doc_macro_aux_bool { @@ -395,17 +470,167 @@ \global\advance \c@CodelineNo \m@ne \ignorespaces } +\tl_clear:N \l_doc_macro_tl \cs_set_nopar:Npn \doc_print_macroname:n #1 { - \strut \MacroFont - \doc_macroname_prefix:n {#1} \doc_macroname_suffix: \ % space! + \strut + \int_compare:nTF { \tl_elt_count:n {#1} <= 28 } + { \MacroFont } { \MacroLongFont } + + % INEFFICIENT: (!) + \exp_args:NNx \seq_if_in:NnTF \g_doc_functions_seq + { #1 \bool_if:NT \l_doc_macro_TF_bool { \tl_to_str:n {TF} } } + { + \hyperref [doc/function/\l_doc_macro_tl] + } + { \use:n } + { + \doc_macroname_prefix:n {#1} \doc_macroname_suffix: \ % space! + } +} +\providecommand \MacroLongFont { + \fontfamily{lmtt}\fontseries{lc}\small } \cs_set_nopar:Npn \doc_typeset_TF: { - \color[gray]{0.5} - \underline { \color{black} \itshape TF \kern-0.1em } + \itshape TF% + \makebox[0pt][r]{% + \color[gray]{0.5} + \underline { \phantom{\itshape TF} \kern-0.1em } + } } \cs_set_nopar:Npn \doc_typeset_aux:n #1 { {\color[gray]{0.5} #1} } +\DeclareDocumentCommand \doc_print_testfile:n {m} { + \bool_set_true:N \l_doc_tested_bool + \tl_if_eq:nnF {#1} {*} { + \seq_if_in:NnF \g_doc_testfiles_seq {#1} + { + \par{\footnotesize(\textit{ + The~ test~ suite~ for~ this~ command,~ and~ others~ in~ this~ file,~ is~ \textsf{#1}}. + )\par} + \seq_gput_right:Nn \g_doc_testfiles_seq {#1} + } + } +} +\seq_new:N \g_doc_testfiles_seq +\DeclareDocumentCommand \TestFiles {m} { + \par + {\itshape + The~ following~ test~ files~ are~ used~ for~ this~ code:~ \textsf{#1}. + } + \par\ignorespaces +} +\DeclareDocumentCommand \UnitTested {} { + \testfile* +} +\cs_generate_variant:Nn \prop_gput:Nnn {NVx} +\prop_new:N \g_doc_missing_tests_prop +\DeclareDocumentCommand \TestMissing {m} { + \prop_if_in:NVTF \g_doc_missing_tests_prop \l_doc_macro_input_clist + { + \prop_get:NVN \g_doc_missing_tests_prop \l_doc_macro_input_clist \l_tmpa_tl + \prop_gput:NVx \g_doc_missing_tests_prop \l_doc_macro_input_clist + { + *~ \l_tmpa_tl + ^^J \exp_not:n {\space\space\space\space\space\space} + *~ #1 + } + } + { \prop_gput:NVn \g_doc_missing_tests_prop \l_doc_macro_input_clist {#1} } +} +\cs_set_nopar:Npn \clist_length:N #1 { + \tex_number:D \etex_numexpr:D + 0 + \clist_map_function:NN #1 \tl_elt_count_aux:n + \scan_stop: +} +\cs_set_nopar:Npn \clist_length:n #1 { + \tex_number:D \etex_numexpr:D + 0 + \clist_map_function:nN {#1} \tl_elt_count_aux:n + \scan_stop: +} +\cs_set_nopar:Npn \clist_item:Nn #1#2 { + \exp_args:No \clist_item:nn {#1} {#2} +} +\cs_generate_variant:Nn \clist_item:Nn { c } +\cs_set:Npn \clist_item:nn #1#2 { + \int_compare:nNnTF {#2} < { 0 } + { + \exp_args:Nf \clist_item_aux:nw + { \clist_length:n {#1} + #2 } + #1 , \q_recursion_tail \q_recursion_stop + } + { + \clist_item_aux:nw {#2} #1 + , \q_recursion_tail \q_recursion_stop + } +} +\cs_set:Npn \clist_item_aux:nw #1#2 , #3 { + \int_compare:nNnTF {#1} = { 0 } + { \use_i_delimit_by_q_recursion_stop:nw {#2} } + { + \quark_if_recursion_tail_stop:n {#3} + \clist_item_aux:nw { #1 - 1 } #3 + } +} +\int_new:N \g_doc_nested_macro_int +\cs_set:Nn \doc_texttt_comma:n {\,,~\texttt{#1}} +\cs_set:Npn \endmacro { + \int_compare:nT {\g_doc_nested_macro_int<1} + { + \par\nobreak{\footnotesize(\emph{ + End~ definition~ for~ + \prg_case_int:nnn { \clist_length:N \l_doc_macro_input_clist } + { + {1} { \texttt{ \clist_use:N \l_doc_macro_input_clist }. } + {2} + { + \tl_set:Nx \l_clist_first_tl { \clist_item:Nn \l_doc_macro_input_clist {0} } + \tl_set:Nx \l_clist_last_tl { \clist_item:Nn \l_doc_macro_input_clist {1} } + \texttt{\l_clist_first_tl}\,~ and~ \texttt{\l_clist_last_tl}\,. + } + {3} + { + \tl_set:Nx \l_clist_first_tl { \clist_item:Nn \l_doc_macro_input_clist {0} } + \tl_set:Nx \l_clist_mid_tl { \clist_item:Nn \l_doc_macro_input_clist {1} } + \tl_set:Nx \l_clist_last_tl { \clist_item:Nn \l_doc_macro_input_clist {2} } + \texttt{\l_clist_first_tl}\,,~ + \texttt{\l_clist_mid_tl}\,,~ + and~ \texttt{\l_clist_last_tl}\,. + } + } + { + \tl_set:Nx \l_clist_first_tl { \clist_item:Nn \l_doc_macro_input_clist {0} } + \texttt{\l_clist_first_tl}\,~and~others. + } + \bool_if:nT { + !\l_doc_macro_aux_bool && + \int_compare_p:n {\g_doc_nested_macro_int<1} + } + { + \int_compare:nNnTF \l_doc_macro_int=1 {~This~} {~These~} + \bool_if:NTF \l_doc_macro_var_bool{variable}{function} + \int_compare:nNnTF \l_doc_macro_int=1 {~is~}{s~are~} + documented~on~page~ + \exp_args:Nx\pageref{doc/function/\l_doc_macro_tl}. + } + })\par} + } + \bool_if:nT + { \g_doc_checktest_bool && + !( \l_doc_macro_aux_bool || \l_doc_macro_var_bool ) && + !\l_doc_tested_bool + } + { + \seq_gput_right:Nx \g_doc_not_tested_seq + { + \l_doc_macro_input_clist + \bool_if:NT \l_doc_macro_pTF_bool {~(pTF)} + \bool_if:NT \l_doc_macro_TF_bool {~(TF)} + } + } +} \newcommand*{\DescribeOption}{ \leavevmode \@bsphack @@ -624,6 +849,7 @@ } \seq_new:N \g_doc_functions_seq \seq_new:N \g_doc_macros_seq +\seq_new:N \g_doc_not_tested_seq \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 } { @@ -668,6 +894,49 @@ \tl_clear:N \l_tmpa_tl } } +\cs_new:Npn \doc_show_not_tested: { + \bool_if:NT \g_doc_checktest_bool + { + \bool_if:nT { !(\seq_if_empty_p:N \g_doc_not_tested_seq) || + !(\prop_if_empty_p:N \g_doc_missing_tests_prop) } + { + \tl_clear:N \l_tmpa_tl + \prop_if_empty:NF \g_doc_missing_tests_prop + { + \tl_put_right:Nn \l_tmpa_tl + { + ^^J^^JThe~ following~ macro(s)~ have~ incomplete~ tests:^^J + } + \prop_map_inline:Nn \g_doc_missing_tests_prop + { + \tl_put_right:Nn \l_tmpa_tl + {^^J\space\space\space\space ##1 + ^^J\space\space\space\space\space\space ##2} + } + } + \seq_if_empty:NF \g_doc_not_tested_seq + { + \tl_put_right:Nn \l_tmpa_tl + { + ^^J^^J + The~ following~ macro(s)~ do~ not~ have~ any~ tests:^^J + } + \seq_map_inline:Nn \g_doc_not_tested_seq + { + \clist_map_inline:nn {##1} + { + \tl_put_right:Nn \l_tmpa_tl {^^J\space\space\space\space ####1} + } + } + \int_set:Nn \l_tmpa_int {\etex_interactionmode:D} + \errorstopmode + \ClassError{l3doc}{\l_tmpa_tl}{} + \int_set:Nn \etex_interactionmode:D {\l_tmpa_int} + } + } + } +} +\AtEndDocument{ \doc_show_not_tested: } \g@addto@macro\theindex{\MakePrivateLetters} \cs_set:Npn \verbatimchar {&} \setcounter{IndexColumns}{2} diff --git a/Master/texmf-dist/tex/latex/expl3/l3font.sty b/Master/texmf-dist/tex/latex/expl3/l3font.sty new file mode 100644 index 00000000000..78a6f23ec48 --- /dev/null +++ b/Master/texmf-dist/tex/latex/expl3/l3font.sty @@ -0,0 +1,105 @@ +%% +%% This is file `l3font.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% l3font.dtx (with options: `package') +%% +%% +%% EXPERIMENTAL CODE +%% +%% Do not distribute this file without also distributing the +%% source files specified above. +%% +%% Do not distribute a modified version of this file. +%% +%% +%% File: l3font.dtx Copyright (C) 1990-2011 LaTeX3 project +%% +%% It may be distributed and/or modified under the conditions of the +%% LaTeX Project Public License (LPPL), either version 1.3c of this +%% license or (at your option) any later version. The latest version +%% of this license is in the file +%% +%% http://www.latex-project.org/lppl.txt +%% +%% This file is part of the ``expl3 bundle'' (The Work in LPPL) +%% and all files in that bundle must be distributed together. +%% +%% The released version of this bundle is available from CTAN. +%% +%% ----------------------------------------------------------------------- +%% +%% The development version of the bundle can be found at +%% +%% http://www.latex-project.org/svnroot/experimental/trunk/ +%% +%% for those people who are interested. +%% +%%%%%%%%%%% +%% NOTE: %% +%%%%%%%%%%% +%% +%% Snapshots taken from the repository represent work in progress and may +%% not work or may contain conflicting material! We therefore ask +%% people _not_ to put them into distributions, archives, etc. without +%% prior consultation with the LaTeX Project Team. +%% +%% ----------------------------------------------------------------------- +\RequirePackage{l3names} +\GetIdInfo$Id: l3font.dtx 2175 2011-03-03 12:16:46Z will $ + {L3 Experimental Font Loading} +\ProvidesExplPackage + {\filename}{\filedate}{\fileversion}{\filedescription} +\package_check_loaded_expl: +\cs_new_protected:Npn \font_set:Nnn #1#2#3 { \tex_font:D #1 = #2 ~at~ #3 \scan_stop: } +\cs_new_protected:Npn \font_gset:Nnn #1#2#3 { + \tex_global:D \tex_font:D #1 = #2 ~at~ #3 \scan_stop: +} +\cs_generate_variant:Nn \font_set:Nnn {c} +\cs_generate_variant:Nn \font_gset:Nnn {c} +\cs_set_eq:NN \font_set_eq:NN \tex_let:D +\cs_set_protected:Npn \font_gset_eq:NN { \tex_global:D \tex_let:D } +\cs_set:Npn \font_set_to_current:N #1 { + \exp_after:wN \font_set_eq:NN \exp_after:wN #1 \tex_the:D \tex_font:D +} +\cs_set:Npn \font_gset_to_current:N #1 { + \tex_global:D \exp_after:wN \font_set_eq:NN \exp_after:wN #1 \tex_the:D \tex_font:D +} +\luatex_if_engine:TF +{ + \cs_new:Npn \font_suppress_not_found_error: + {\luatexsuppressfontnotfounderror=\c_one} + \cs_new:Npn \font_enable_not_found_error: + {\luatexsuppressfontnotfounderror=\c_zero} +} +{ + \xetex_if_engine:TF + { + \cs_new:Npn \font_suppress_not_found_error: + {\suppressfontnotfounderror=\c_one} + \cs_new:Npn \font_enable_not_found_error: + {\suppressfontnotfounderror=\c_zero} + } + { + \cs_new:Npn \font_suppress_not_found_error: + { + \msg_kernel_warning:nnx {l3font} {cmd-pdftex-unavail} + {\font_suppress_not_found_error:} + } + } +} +\msg_kernel_new:nnn {l3font} {cmd-pdftex-unavail} { + The~ command~ `\exp_not:n{#1}'~ is~ not~ available~ for~ the~ pdfTeX~ format. +} +\prg_new_conditional:Nnn \font_if_null:N {p,TF,T,F} { + \if_meaning:w #1 \tex_nullfont:D + \prg_return_true: + \else: + \prg_return_false: + \fi: +} +%% +%% +%% End of file `l3font.sty'. diff --git a/Master/texmf-dist/tex/latex/expl3/l3fp.sty b/Master/texmf-dist/tex/latex/expl3/l3fp.sty index 6ac5741afb0..4ce67fbb7d9 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3fp.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3fp.sty @@ -15,7 +15,7 @@ %% Do not distribute a modified version of this file. %% %% -%% File: l3fp.dtx Copyright (C) 2010 LaTeX3 project +%% File: l3fp.dtx Copyright (C) 2010-2011 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: l3fp.dtx 2129 2011-01-10 22:58:48Z joseph $ +\GetIdInfo$Id: l3fp.dtx 2178 2011-03-06 09:03:44Z mittelba $ {L3 Experimental floating-point operations} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} diff --git a/Master/texmf-dist/tex/latex/expl3/l3int.sty b/Master/texmf-dist/tex/latex/expl3/l3int.sty index 276059fb0bf..97db73b44cd 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 2121 2011-01-07 08:46:09Z joseph $ +\GetIdInfo$Id: l3int.dtx 2178 2011-03-06 09:03:44Z mittelba $ {L3 Experimental Integer module} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -654,7 +654,6 @@ \cs_set:Npn \int_do_until:nNnn #1#2#3#4{ #4 \int_compare:nNnF {#1}#2{#3}{\int_do_until:nNnn {#1}#2{#3}{#4}} } - \cs_new_protected_nopar:Npn \int_const:Nn #1#2 { \int_compare:nTF { #2 > \c_minus_one } { @@ -674,7 +673,6 @@ } } \cs_generate_variant:Nn \int_const:Nn { c } -\tex_mathchardef:D \c_max_register_int = 32767 \scan_stop: %% \tex_countdef:D \c_minus_one = 10 \scan_stop: %% \c_minus_one = -1 \scan_stop: %% in l3basics \int_const:Nn \c_one {1} @@ -682,13 +680,10 @@ \int_const:Nn \c_three {3} \int_const:Nn \c_four {4} \int_const:Nn \c_five {5} -\int_const:Nn \c_six {6} -\int_const:Nn \c_seven {7} \int_const:Nn \c_eight {8} \int_const:Nn \c_nine {9} \int_const:Nn \c_ten {10} \int_const:Nn \c_eleven {11} -\int_const:Nn \c_twelve {12} \int_const:Nn \c_thirteen {13} \int_const:Nn \c_fourteen {14} \int_const:Nn \c_fifteen {15} @@ -720,6 +715,7 @@ \int_const:cn { c_int_from_roman_D_int } { 500 } \int_const:cn { c_int_from_roman_M_int } { 1000 } \int_new:N \g_tl_inline_level_int +\int_new:N\g_prg_inline_level_int \cs_set_eq:NN \intexpr_value:w \int_value:w \cs_set_eq:NN \intexpr_eval:w \int_eval:w \cs_set_eq:NN \intexpr_eval_end: \int_eval_end: diff --git a/Master/texmf-dist/tex/latex/expl3/l3prg.sty b/Master/texmf-dist/tex/latex/expl3/l3prg.sty index 8dc053e7c5f..5e18591892b 100644 --- a/Master/texmf-dist/tex/latex/expl3/l3prg.sty +++ b/Master/texmf-dist/tex/latex/expl3/l3prg.sty @@ -48,26 +48,23 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3prg.dtx 2121 2011-01-07 08:46:09Z joseph $ +\GetIdInfo$Id: l3prg.dtx 2178 2011-03-06 09:03:44Z mittelba $ {L3 Experimental control structures} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} \package_check_loaded_expl: \prg_set_conditional:Npnn \mode_if_vertical: {p,TF,T,F}{ - \if_mode_vertical: - \prg_return_true: \else: \prg_return_false: \fi: + \if_mode_vertical: \prg_return_true: \else: \prg_return_false: \fi: } \prg_set_conditional:Npnn \mode_if_horizontal: {p,TF,T,F}{ - \if_mode_horizontal: - \prg_return_true: \else: \prg_return_false: \fi: + \if_mode_horizontal: \prg_return_true: \else: \prg_return_false: \fi: } \prg_set_conditional:Npnn \mode_if_inner: {p,TF,T,F}{ - \if_mode_inner: - \prg_return_true: \else: \prg_return_false: \fi: + \if_mode_inner: \prg_return_true: \else: \prg_return_false: \fi: } \prg_set_conditional:Npnn \mode_if_math: {p,TF,T,F}{ \scan_align_safe_stop: \if_mode_math: - \prg_return_true: \else: \prg_return_false: \fi: + \prg_return_true: \else: \prg_return_false: \fi: } \cs_new_nopar:Npn \group_align_safe_begin: { \if_false:{\fi:\if_num:w`}=\c_zero\fi:} @@ -147,7 +144,6 @@ {#2}{#3}{#4} } } -\int_new:N\g_prg_inline_level_int \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} diff --git a/Master/texmf-dist/tex/latex/expl3/l3quark.sty b/Master/texmf-dist/tex/latex/expl3/l3quark.sty index 3fb3d4ee1f8..65935330d67 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 2036 2010-09-20 20:33:54Z joseph $ +\GetIdInfo$Id: l3quark.dtx 2172 2011-03-03 10:56:49Z will $ {L3 Experimental Quark Commands} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -121,7 +121,6 @@ \cs_generate_variant:Nn \quark_if_nil:nTF {o} \cs_generate_variant:Nn \quark_if_nil:nT {o} \cs_generate_variant:Nn \quark_if_nil:nF {o} - %% %% %% End of file `l3quark.sty'. diff --git a/Master/texmf-dist/tex/latex/expl3/l3skip.sty b/Master/texmf-dist/tex/latex/expl3/l3skip.sty index 7248309d1cb..9dae6498cc0 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 2121 2011-01-07 08:46:09Z joseph $ +\GetIdInfo$Id: l3skip.dtx 2149 2011-02-15 20:50:02Z mittelba $ {L3 Experimental skip registers} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -106,7 +106,7 @@ \cs_generate_variant:Nn \skip_use:N {c} \cs_new_eq:NN \skip_show:N \kernel_register_show:N \cs_generate_variant:Nn \skip_show:N {c} -\cs_new_protected_nopar:Npn \skip_eval:n #1 { +\cs_new_nopar:Npn \skip_eval:n #1 { \tex_the:D \etex_glueexpr:D #1 \scan_stop: } %%\chk_if_free_cs:N \l_tmpa_skip @@ -189,7 +189,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_protected_nopar:Npn \dim_eval:n #1 { +\cs_new_nopar:Npn \dim_eval:n #1 { \tex_the:D \etex_dimexpr:D #1 \scan_stop: } \cs_new_eq:NN \if_dim:w \tex_ifdim:D diff --git a/Master/texmf-dist/tex/latex/expl3/l3tl.sty b/Master/texmf-dist/tex/latex/expl3/l3tl.sty index e334d246130..cacec3e0fdf 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 2138 2011-01-26 08:15:27Z joseph $ +\GetIdInfo$Id: l3tl.dtx 2184 2011-03-07 18:07:12Z joseph $ {L3 Experimental Token Lists} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} @@ -446,14 +446,13 @@ \_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 + \cs_set_protected:Npn \_tl_tmp:w ##1 #3 ##2 \q_stop { \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} - } + \cs_set_protected:Npn \_tl_tmp:w ####1 \q_nil #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 } @@ -463,7 +462,7 @@ \exp_after:wN \_tl_tmp:w \exp_after:wN \prg_do_nothing: } - #2 #3 \q_no_value \q_stop + #2 \q_nil #3 \q_no_value \q_stop } \cs_new_protected_nopar:Npn \tl_greplace_in:Nnn { \_tl_replace_in_aux:NNnn \tl_gset_eq:NN @@ -478,10 +477,14 @@ } \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 + \cs_set_protected:Npn \_tl_tmp:w ##1 #3 ##2 \q_stop { \quark_if_no_value:nTF {##2} - { \tl_put_right:No \_l_tl_replace_tl {##1} } + { + \cs_set_protected:Npn \_tl_tmp:w ####1 \q_nil ####2 \q_stop + { \tl_put_right:No \_l_tl_replace_tl {####1} } + \_tl_tmp:w ##1 \q_stop + } { \tl_put_right:No \_l_tl_replace_tl { ##1 #4 } \_tl_tmp:w \prg_do_nothing: ##2 \q_stop @@ -492,7 +495,7 @@ \exp_after:wN \_tl_tmp:w \exp_after:wN \prg_do_nothing: } - #2 #3 \q_no_value \q_stop + #2 \q_nil #3 \q_no_value \q_stop #1 #2 \_l_tl_replace_tl } \cs_generate_variant:Nn \tl_replace_all_in:Nnn { c } diff --git a/Master/texmf-dist/tex/latex/expl3/l3token.sty b/Master/texmf-dist/tex/latex/expl3/l3token.sty index 826763a5693..4fa8cc3f704 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 2063 2010-10-03 08:26:49Z mittelba $ +\GetIdInfo$Id: l3token.dtx 2151 2011-02-16 06:58:12Z will $ {L3 Experimental token investigation and manipulation} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} diff --git a/Master/texmf-dist/tex/latex/expl3/l3xref.sty b/Master/texmf-dist/tex/latex/expl3/l3xref.sty index 43a67abdcda..44e5bc5e554 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 1786 2010-02-09 12:52:45Z joseph $ +\GetIdInfo$Id: l3xref.dtx 2151 2011-02-16 06:58:12Z will $ {L3 Experimental cross referencing} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} -- cgit v1.2.3