From 6e411d4c9dba73649f1ca5e25984ae667d57997a Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 23 May 2010 23:52:38 +0000 Subject: xpackages update (23may10) git-svn-id: svn://tug.org/texlive/trunk@18440 c570f23f-e606-0410-a88d-b1316a301751 --- .../doc/latex/xpackages/xbase/ldcsetup.pdf | Bin 339721 -> 339725 bytes .../doc/latex/xpackages/xbase/template-test.tex | 77 ++++++ .../doc/latex/xpackages/xbase/template-test2.tex | 110 ++++++++ .../doc/latex/xpackages/xbase/template.pdf | Bin 498456 -> 498459 bytes .../doc/latex/xpackages/xbase/tprestrict-test.tex | 80 ++++++ .../doc/latex/xpackages/xbase/xparse-test.tex | 296 +++++++++++++++++++++ .../doc/latex/xpackages/xbase/xparse.pdf | Bin 565852 -> 568149 bytes .../doc/latex/xpackages/xbase/xtemplate.pdf | Bin 632955 -> 632958 bytes .../doc/latex/xpackages/xtras/l3keys2e-demo.tex | 46 ++++ .../doc/latex/xpackages/xtras/l3keys2e.pdf | Bin 390003 -> 390006 bytes .../source/latex/xpackages/xbase/template-test.tex | 77 ------ .../latex/xpackages/xbase/template-test2.tex | 110 -------- .../latex/xpackages/xbase/tprestrict-test.tex | 80 ------ .../source/latex/xpackages/xbase/xparse-test.tex | 296 --------------------- .../source/latex/xpackages/xbase/xparse.dtx | 24 +- .../source/latex/xpackages/xtras/l3keys2e-demo.tex | 46 ---- .../tex/latex/xpackages/xbase/xparse.sty | 2 +- 17 files changed, 633 insertions(+), 611 deletions(-) create mode 100644 Master/texmf-dist/doc/latex/xpackages/xbase/template-test.tex create mode 100644 Master/texmf-dist/doc/latex/xpackages/xbase/template-test2.tex create mode 100644 Master/texmf-dist/doc/latex/xpackages/xbase/tprestrict-test.tex create mode 100644 Master/texmf-dist/doc/latex/xpackages/xbase/xparse-test.tex create mode 100644 Master/texmf-dist/doc/latex/xpackages/xtras/l3keys2e-demo.tex delete mode 100644 Master/texmf-dist/source/latex/xpackages/xbase/template-test.tex delete mode 100644 Master/texmf-dist/source/latex/xpackages/xbase/template-test2.tex delete mode 100644 Master/texmf-dist/source/latex/xpackages/xbase/tprestrict-test.tex delete mode 100644 Master/texmf-dist/source/latex/xpackages/xbase/xparse-test.tex delete mode 100644 Master/texmf-dist/source/latex/xpackages/xtras/l3keys2e-demo.tex diff --git a/Master/texmf-dist/doc/latex/xpackages/xbase/ldcsetup.pdf b/Master/texmf-dist/doc/latex/xpackages/xbase/ldcsetup.pdf index 59fad8a0d68..db02bbe34ad 100644 Binary files a/Master/texmf-dist/doc/latex/xpackages/xbase/ldcsetup.pdf and b/Master/texmf-dist/doc/latex/xpackages/xbase/ldcsetup.pdf differ diff --git a/Master/texmf-dist/doc/latex/xpackages/xbase/template-test.tex b/Master/texmf-dist/doc/latex/xpackages/xbase/template-test.tex new file mode 100644 index 00000000000..5684ce7a90f --- /dev/null +++ b/Master/texmf-dist/doc/latex/xpackages/xbase/template-test.tex @@ -0,0 +1,77 @@ +% \iffalse +%% (C) Copyright 2000-2004 LaTeX3 Project +%% +%% It may be distributed and/or modified under the conditions of the +%% LaTeX Project Public License (LPPL), either version 1.3a 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 ``xbase 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. +%% +%% ----------------------------------------------------------------------- +%% +%% $Id: template-test.tex 1628 2009-10-25 09:54:34Z mittelba $ +%% +% \fi +% +\RequirePackage{template} + +\DeclareTemplateType{xxx}{0} + +\DeclareTemplate{xxx}{test}{0} + { + xkey=n \xkey, + key =i {yyy} \value + } + { + \DoParameterAssignments + \show\xkey + \show\value + \value + } + +\DeclareTemplateType{yyy}{0} + +\DeclareTemplate{yyy}{foo}{0} + { + keya =L \foo + } + { + \DoParameterAssignments + \show\foo + } + + +\DeclareInstance{xxx}{bar}{test} + { + xkey = \UseTemplate{yyy}{foo}{ keya = 20pt }, + key = \UseTemplate{yyy}{foo}{ keya = 10pt } + } + +\ShowInstance{xxx}{bar} + +\UseInstance{xxx}{bar} + +\stop diff --git a/Master/texmf-dist/doc/latex/xpackages/xbase/template-test2.tex b/Master/texmf-dist/doc/latex/xpackages/xbase/template-test2.tex new file mode 100644 index 00000000000..489e9f2304a --- /dev/null +++ b/Master/texmf-dist/doc/latex/xpackages/xbase/template-test2.tex @@ -0,0 +1,110 @@ +% \iffalse +%% (C) Copyright 2000-2004 LaTeX3 Project +%% +%% It may be distributed and/or modified under the conditions of the +%% LaTeX Project Public License (LPPL), either version 1.3a 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 ``xbase 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/cgi-bin/cvsweb.cgi/ +%% +%% 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. +%% +%% ----------------------------------------------------------------------- +%% +%% $Id: template-test2.tex 585 2006-12-12 17:31:48Z morten $ +%% +% \fi +% + + +\RequirePackage{template} +\RequirePackage{trace} + +\DeclareTemplateType{xxx}{0} + +\def\MultiSelection{\MultiSelectionError} +%\def\foo{bar} + +%\traceon + +\DeclareTemplate{xxx}{test}{0} + { + xkey=n [\foo] \xkey, + ykey=n [\DelayEvaluation\foo] \ykey, + zkey=n \zkey, + last=n [last] \lastkey, + set =i {xxx} \xxx + } + { + \DoParameterAssignments + \typeout{abc} + } +\ShowTemplate{xxx}{test} + + +\DeclareInstance{xxx}{bar}{test} + { + zkey = foo, + xkey = baz, + } + +\DeclareInstance{xxx}{baz}{test} + { + last = first, + set = \UseTemplate{xxx}{test}{zkey=rrr}, + zkey = foo + } + + +\ShowInstance{xxx}{bar} +\ShowInstance{xxx}{baz} + +\DeclareTemplateType{yyy}{0} + +\DeclareTemplate{yyy}{foo}{0} + { + keya =L \foo + } + { + \DoParameterAssignments + \show\foo + } + + +\DeclareInstance{xxx}{bar}{test} + { + xkey = \UseTemplate{yyy}{foo}{ keya = 20pt }, + key = \UseTemplate{yyy}{foo}{ keya = 10pt } + } + +\ShowInstance{xxx}{bar} + +\UseInstance{xxx}{bar} + +\stop + +%%% Local Variables: +%%% mode: plain-tex +%%% TeX-master: t +%%% End: diff --git a/Master/texmf-dist/doc/latex/xpackages/xbase/template.pdf b/Master/texmf-dist/doc/latex/xpackages/xbase/template.pdf index 61fae371165..40153f38ca7 100644 Binary files a/Master/texmf-dist/doc/latex/xpackages/xbase/template.pdf and b/Master/texmf-dist/doc/latex/xpackages/xbase/template.pdf differ diff --git a/Master/texmf-dist/doc/latex/xpackages/xbase/tprestrict-test.tex b/Master/texmf-dist/doc/latex/xpackages/xbase/tprestrict-test.tex new file mode 100644 index 00000000000..d981888d450 --- /dev/null +++ b/Master/texmf-dist/doc/latex/xpackages/xbase/tprestrict-test.tex @@ -0,0 +1,80 @@ +% \iffalse +%% (C) Copyright 2000-2004 LaTeX3 Project +%% +%% It may be distributed and/or modified under the conditions of the +%% LaTeX Project Public License (LPPL), either version 1.3a 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 ``xbase 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. +%% +%% ----------------------------------------------------------------------- +%% +%% $Id: tprestrict-test.tex 1628 2009-10-25 09:54:34Z mittelba $ +%% +% \fi +% + +\makeatletter +\RequirePackage{template} +\IgnoreWhiteSpace + +\newcount\ca +\newdimen\da + + +\DeclareTemplateType{type}{0} + +\DeclareTemplate{type}{Ta}{0}{ + one =l [2in] \da, + two =c [5] \ca} + {\DoParameterAssignments\typeout{\da=\the\da,\@spaces \ca=\the\ca}} + +\ShowTemplate{type}{Ta} + +\typeout{1^^J==} +\UseTemplate{type}{Ta}{} + +\typeout{2^^J==} +\UseTemplate{type}{Ta}{one=44pt, two=7} + + +\DeclareRestrictedTemplate{type}{Tb}{Ta}{one=33pt} + +\ShowTemplate{type}{Tb} + +\typeout{RESTRICT^^J3^^J==} + +\DeclareInstance{type}{foo}{Tb}{two=9} + +\ShowInstance{type}{foo} + +\UseInstance{type}{foo} + +\typeout{4^^J==} +\UseTemplate{type}{Tb}{two=7} + +\stop + diff --git a/Master/texmf-dist/doc/latex/xpackages/xbase/xparse-test.tex b/Master/texmf-dist/doc/latex/xpackages/xbase/xparse-test.tex new file mode 100644 index 00000000000..8614c4ed06a --- /dev/null +++ b/Master/texmf-dist/doc/latex/xpackages/xbase/xparse-test.tex @@ -0,0 +1,296 @@ +% \iffalse +%% (C) Copyright 2000-2009 LaTeX3 Project +%% +%% It may be distributed and/or modified under the conditions of the +%% LaTeX Project Public License (LPPL), either version 1.3a 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 ``xbase 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. +%% +%% ----------------------------------------------------------------------- +%% +%% $Id: xparse-test.tex 1628 2009-10-25 09:54:34Z mittelba $ +%% +% \fi +% + +\documentclass{minimal} + +\usepackage{xparse,l3box} + + +\typeout{Testing the complicated makebox setup} +\typeout{*****************************} +\typeout{* look at dvi output for this part} +\typeout{*****************************} + +\ExplSyntaxOn +\makeatletter +% Let's just take the error messages for a ride: +\cs_set_nopar:Npn \makebox{} +% Here should be an error because it is defined +\NewDocumentCommand \makebox {m}{Gobbledygook} +\cs_gundefine:N \makebox +% And now one for being undefined +\RenewDocumentCommand \makebox {m}{More~gobbledygook} +\cs_set_eq:NN \makebox \scan_stop: +% Another one for being undefined +\RenewDocumentCommand \makebox {m}{Even~more~gobbledygook} +% Now it should work +\DeclareDocumentCommand \makebox + { >{\xparse_process_comma_split:n}d() o O{c} m} + {\IfNoValueTF{#1} + { \ltx@maketextbox{#2}{#3}{#4}\mbox } + { \ltx@makepicbox #1 {#2}{#4}\@firstofone } + } + +\DeclareDocumentCommand \framebox + { >{\xparse_process_comma_split:n} d() o O{c} m} + { + \IfNoValueTF{#1} + { \ltx@maketextbox{#2}{#3}{#4}\fbox } + { \ltx@makepicbox #1 {#2}{#4}\frame } + } + +\def\ltx@maketextbox#1#2#3#4{ + \IfNoValueTF{#1} + {#4{#3}} + { + \leavevmode + \@begin@tempboxa\hbox{#3} + \setlength\@tempdima{#1} + \if_meaning:w #4\fbox + \setbox\@tempboxa\hb@xt@\@tempdima{ + \kern\fboxsep + \use:c{bm@#2} + \kern\fboxsep + } + \@frameb@x{\kern-\fboxrule} + \else: + \hb@xt@\@tempdima{\use:c{bm@#2}} + \fi: + \@end@tempboxa + } +} + +\def\ltx@makepicbox#1#2#3#4#5{ + #5 + { + \vbox to#2\unitlength { + \cs_set_eq:NN \mb@b\vss \cs_set_eq:NN \mb@l\hss + \cs_set_eq:NN \mb@r\hss \cs_set_eq:NN \mb@t\vss + \IfNoValueF{#3}{ + \tl_map_variable:nNn {#3}\l_tmpa_tl { + \if:w s\l_tmpa_tl + \cs_set_eq:NN \mb@l \scan_stop: + \cs_set_eq:NN \mb@r \scan_stop: + \else: + \cs_set_eq:cN {mb@\l_tmpa_tl}\scan_stop: + \fi: + } + } + \mb@t + \hb@xt@ #1\unitlength{\mb@l #4\mb@r} + \mb@b + \kern\z@ + } + } +} + +\makeatother +\ExplSyntaxOff + +\begin{document} + + +\thicklines + +\makebox{A} +\makebox(1,2){B} +\makebox(0,0)[lt]{C} +\makebox[20pt]{D} +\makebox[30pt][r]{E} + +\vspace{1cm} + + +\framebox{A} +\framebox(1,2){B} +\framebox(0,0)[lt]{C} +\framebox[20pt]{D} +\framebox[30pt][r]{E} + + +\typeout{Testing optional coordinates} + +\DeclareDocumentCommand \foo { mmo } +{ \typeout{1:#1} + \typeout{2:#2} +} + +\show\foo + +\ExplSyntaxOn +\DeclareDocumentCommand \foo + { m >{\xparse_process_comma_split:n} D(){0,0} m } +{ \typeout{1:#1} + \typeout{2:#2} + \typeout{3:#3} +} +\ExplSyntaxOff + +\show\foo + +\foo A(1,2)B + +\foo A B + +\typeout{Testing mandatory coordinates (gives error on second examples)} + +\ExplSyntaxOn +\DeclareDocumentCommand \foo { m >{\xparse_process_comma_split:n} d() m } +{ \IfNoValueTF {#2} { + \ERROR + }{ + \typeout{1:#1} + \typeout{2:#2} + \typeout{3:#3} + } +} +\ExplSyntaxOff + +\show\foo + +\foo A(1,2)B + +\foo A B + +\typeout{Testing normal optional arguments} + + +\DeclareDocumentCommand \foo { mmmm o mm o } +{ \typeout{1:#1} + \typeout{2:#2} + \typeout{3:#3} + \typeout{4:#4} + \typeout{5:#5} + \typeout{6:#6} + \typeout{7:#7} + \typeout{8:#8} +} + +\foo 1234 [5]67[8] +\foo 1234 [5]67 [8] % 8 should not be picked up here +\foo 123467 + +\show\foo +\expandafter\show\csname\string\foo\endcsname + + +\typeout{Testing optional arguments with default} + +\DeclareDocumentCommand \baz { O{?}mmm o mm m } +{ \typeout{1:#1} + \typeout{2:#2} + \typeout{3:#3} + \typeout{4:#4} + \typeout{5:#5} + \typeout{6:#6} + \typeout{7:#7} + \typeout{8:#8} +} + +\show\baz +\expandafter\show\csname\string\baz\endcsname + +\baz [1]234[5]678 +\baz 234678 + +%\tracingall\tracingassigns=1 +\DeclareDocumentCommand \bar { mmmm mmmm m} +{ \typeout{1:#1} + \typeout{2:#2} + \typeout{3:#3} + \typeout{4:#4} + \typeout{5:#5} + \typeout{6:#6} + \typeout{7:#7} + \typeout{8:#8} + \typeout{9:#9} +} + +\show\bar +\expandafter\show\csname\string\bar\endcsname + +\bar 123456789 + +\DeclareDocumentCommand\chapter{soom} +{\typeout{a{#1}^^Jb{#2}^^Jc{#3}^^Jd{#4}^^Je}} + +\show\chapter +\expandafter\show\csname\string\chapter\endcsname + +\typeout{1:} +\chapter*[xxx][yyy]{zzz} + +\typeout{2:} +\chapter[xxx][yyy]{zzz} + +\typeout{3:} +\chapter*[xxx]{zzz} + +\typeout{4:} +\typeout{\chapter*[xxx][yyy]{zzz}} + + + + +\DeclareDocumentCommand\chapter{soom} +{\typeout{a{#1}^^Jb{#2}^^Jc{#3}^^Jd{#4}^^Je}} + +\DeclareDocumentEnvironment{hello}{ooo} + {\typeout{B1(#1)^^JB2(#2)^^JB3(#3)^^J}} + {\typeout{E1(#1)^^JE2(#2)^^JE3(#3)^^J}} + + +\show\hello +\expandafter\show\csname\string\hello\endcsname + +\show\endhello +\expandafter\show\csname end\string\\hello\endcsname + +\begin{hello}[abc][aabbcc] +\typeout{body} +\typeout{5:} +\chapter[xxx][yyy]{zzz} +\end{hello} + +\begin{hello}[1] +\typeout{outer body} +\hello[2]\typeout{inner body}\endhello +\end{hello} + +\stop diff --git a/Master/texmf-dist/doc/latex/xpackages/xbase/xparse.pdf b/Master/texmf-dist/doc/latex/xpackages/xbase/xparse.pdf index 90c64ec0228..43b8a86025a 100644 Binary files a/Master/texmf-dist/doc/latex/xpackages/xbase/xparse.pdf and b/Master/texmf-dist/doc/latex/xpackages/xbase/xparse.pdf differ diff --git a/Master/texmf-dist/doc/latex/xpackages/xbase/xtemplate.pdf b/Master/texmf-dist/doc/latex/xpackages/xbase/xtemplate.pdf index 3a1cb4026c8..fd6a2a6c431 100644 Binary files a/Master/texmf-dist/doc/latex/xpackages/xbase/xtemplate.pdf and b/Master/texmf-dist/doc/latex/xpackages/xbase/xtemplate.pdf differ diff --git a/Master/texmf-dist/doc/latex/xpackages/xtras/l3keys2e-demo.tex b/Master/texmf-dist/doc/latex/xpackages/xtras/l3keys2e-demo.tex new file mode 100644 index 00000000000..a00531e0741 --- /dev/null +++ b/Master/texmf-dist/doc/latex/xpackages/xtras/l3keys2e-demo.tex @@ -0,0 +1,46 @@ +% !TEX encoding = ISO-8859-1 +% !TEX program = pdflatex +% +% This file demonstrates the use of the l3keys2e module to allow +% LaTeX3 keyvals (created using l3keys) to be used as LaTeX2e +% package or class options. +% + +% First, create a class +\begin{filecontents}{l3keys2e-class.cls} + \LoadClass{article} + \RequirePackage{l3keys2e} + \ProvidesExplClass{l3keys2e-class}{0000/00/00}{0.0}{test} + \keys_define:nn { test1 } { + option1 .code:n = {\wlog{You~gave~`#1'~for~option1}} + } + \ProcessKeysOptions { test1 } +\end{filecontents} + +% Load the class with some options. +% The class itself recognises `option1', leaving `option2' and +% `option3' as global optons which are not yet used. +\documentclass[option1=check,option2=more stuff,option3=unused] + {l3keys2e-class} + +%Now create a package +\begin{filecontents}{l3keys2e-package.sty} + \RequirePackage{l3keys2e} + \ProvidesExplPackage{l3keys2e-package}{0000/00/00}{0.0}{test} + \keys_define:nn { test2 } { + option1 .code:n = {\wlog{You~gave~`#1'~for~option1~(again)}}, + option2 .code:n = {\wlog{You~gave~`#1'~for~option2}}, + option4 .code:n = {\wlog{You~gave~`#1'~for~option4}}, + } + \ProcessKeysOptions { test2 } +\end{filecontents} + +% Load the package. +\usepackage[option4={extra stuff},option5=undefined!] + {l3keys2e-package} + +\begin{document} +% The log should show that option3 is an unused global option, and that +% option5 is not known by the l3keys2e-demo package. Everything else +% should simply be listed in the log. +\end{document} diff --git a/Master/texmf-dist/doc/latex/xpackages/xtras/l3keys2e.pdf b/Master/texmf-dist/doc/latex/xpackages/xtras/l3keys2e.pdf index f3b1e7af46b..e10d40f7726 100644 Binary files a/Master/texmf-dist/doc/latex/xpackages/xtras/l3keys2e.pdf and b/Master/texmf-dist/doc/latex/xpackages/xtras/l3keys2e.pdf differ diff --git a/Master/texmf-dist/source/latex/xpackages/xbase/template-test.tex b/Master/texmf-dist/source/latex/xpackages/xbase/template-test.tex deleted file mode 100644 index 5684ce7a90f..00000000000 --- a/Master/texmf-dist/source/latex/xpackages/xbase/template-test.tex +++ /dev/null @@ -1,77 +0,0 @@ -% \iffalse -%% (C) Copyright 2000-2004 LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of the -%% LaTeX Project Public License (LPPL), either version 1.3a 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 ``xbase 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. -%% -%% ----------------------------------------------------------------------- -%% -%% $Id: template-test.tex 1628 2009-10-25 09:54:34Z mittelba $ -%% -% \fi -% -\RequirePackage{template} - -\DeclareTemplateType{xxx}{0} - -\DeclareTemplate{xxx}{test}{0} - { - xkey=n \xkey, - key =i {yyy} \value - } - { - \DoParameterAssignments - \show\xkey - \show\value - \value - } - -\DeclareTemplateType{yyy}{0} - -\DeclareTemplate{yyy}{foo}{0} - { - keya =L \foo - } - { - \DoParameterAssignments - \show\foo - } - - -\DeclareInstance{xxx}{bar}{test} - { - xkey = \UseTemplate{yyy}{foo}{ keya = 20pt }, - key = \UseTemplate{yyy}{foo}{ keya = 10pt } - } - -\ShowInstance{xxx}{bar} - -\UseInstance{xxx}{bar} - -\stop diff --git a/Master/texmf-dist/source/latex/xpackages/xbase/template-test2.tex b/Master/texmf-dist/source/latex/xpackages/xbase/template-test2.tex deleted file mode 100644 index 489e9f2304a..00000000000 --- a/Master/texmf-dist/source/latex/xpackages/xbase/template-test2.tex +++ /dev/null @@ -1,110 +0,0 @@ -% \iffalse -%% (C) Copyright 2000-2004 LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of the -%% LaTeX Project Public License (LPPL), either version 1.3a 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 ``xbase 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/cgi-bin/cvsweb.cgi/ -%% -%% 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. -%% -%% ----------------------------------------------------------------------- -%% -%% $Id: template-test2.tex 585 2006-12-12 17:31:48Z morten $ -%% -% \fi -% - - -\RequirePackage{template} -\RequirePackage{trace} - -\DeclareTemplateType{xxx}{0} - -\def\MultiSelection{\MultiSelectionError} -%\def\foo{bar} - -%\traceon - -\DeclareTemplate{xxx}{test}{0} - { - xkey=n [\foo] \xkey, - ykey=n [\DelayEvaluation\foo] \ykey, - zkey=n \zkey, - last=n [last] \lastkey, - set =i {xxx} \xxx - } - { - \DoParameterAssignments - \typeout{abc} - } -\ShowTemplate{xxx}{test} - - -\DeclareInstance{xxx}{bar}{test} - { - zkey = foo, - xkey = baz, - } - -\DeclareInstance{xxx}{baz}{test} - { - last = first, - set = \UseTemplate{xxx}{test}{zkey=rrr}, - zkey = foo - } - - -\ShowInstance{xxx}{bar} -\ShowInstance{xxx}{baz} - -\DeclareTemplateType{yyy}{0} - -\DeclareTemplate{yyy}{foo}{0} - { - keya =L \foo - } - { - \DoParameterAssignments - \show\foo - } - - -\DeclareInstance{xxx}{bar}{test} - { - xkey = \UseTemplate{yyy}{foo}{ keya = 20pt }, - key = \UseTemplate{yyy}{foo}{ keya = 10pt } - } - -\ShowInstance{xxx}{bar} - -\UseInstance{xxx}{bar} - -\stop - -%%% Local Variables: -%%% mode: plain-tex -%%% TeX-master: t -%%% End: diff --git a/Master/texmf-dist/source/latex/xpackages/xbase/tprestrict-test.tex b/Master/texmf-dist/source/latex/xpackages/xbase/tprestrict-test.tex deleted file mode 100644 index d981888d450..00000000000 --- a/Master/texmf-dist/source/latex/xpackages/xbase/tprestrict-test.tex +++ /dev/null @@ -1,80 +0,0 @@ -% \iffalse -%% (C) Copyright 2000-2004 LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of the -%% LaTeX Project Public License (LPPL), either version 1.3a 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 ``xbase 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. -%% -%% ----------------------------------------------------------------------- -%% -%% $Id: tprestrict-test.tex 1628 2009-10-25 09:54:34Z mittelba $ -%% -% \fi -% - -\makeatletter -\RequirePackage{template} -\IgnoreWhiteSpace - -\newcount\ca -\newdimen\da - - -\DeclareTemplateType{type}{0} - -\DeclareTemplate{type}{Ta}{0}{ - one =l [2in] \da, - two =c [5] \ca} - {\DoParameterAssignments\typeout{\da=\the\da,\@spaces \ca=\the\ca}} - -\ShowTemplate{type}{Ta} - -\typeout{1^^J==} -\UseTemplate{type}{Ta}{} - -\typeout{2^^J==} -\UseTemplate{type}{Ta}{one=44pt, two=7} - - -\DeclareRestrictedTemplate{type}{Tb}{Ta}{one=33pt} - -\ShowTemplate{type}{Tb} - -\typeout{RESTRICT^^J3^^J==} - -\DeclareInstance{type}{foo}{Tb}{two=9} - -\ShowInstance{type}{foo} - -\UseInstance{type}{foo} - -\typeout{4^^J==} -\UseTemplate{type}{Tb}{two=7} - -\stop - diff --git a/Master/texmf-dist/source/latex/xpackages/xbase/xparse-test.tex b/Master/texmf-dist/source/latex/xpackages/xbase/xparse-test.tex deleted file mode 100644 index 8614c4ed06a..00000000000 --- a/Master/texmf-dist/source/latex/xpackages/xbase/xparse-test.tex +++ /dev/null @@ -1,296 +0,0 @@ -% \iffalse -%% (C) Copyright 2000-2009 LaTeX3 Project -%% -%% It may be distributed and/or modified under the conditions of the -%% LaTeX Project Public License (LPPL), either version 1.3a 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 ``xbase 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. -%% -%% ----------------------------------------------------------------------- -%% -%% $Id: xparse-test.tex 1628 2009-10-25 09:54:34Z mittelba $ -%% -% \fi -% - -\documentclass{minimal} - -\usepackage{xparse,l3box} - - -\typeout{Testing the complicated makebox setup} -\typeout{*****************************} -\typeout{* look at dvi output for this part} -\typeout{*****************************} - -\ExplSyntaxOn -\makeatletter -% Let's just take the error messages for a ride: -\cs_set_nopar:Npn \makebox{} -% Here should be an error because it is defined -\NewDocumentCommand \makebox {m}{Gobbledygook} -\cs_gundefine:N \makebox -% And now one for being undefined -\RenewDocumentCommand \makebox {m}{More~gobbledygook} -\cs_set_eq:NN \makebox \scan_stop: -% Another one for being undefined -\RenewDocumentCommand \makebox {m}{Even~more~gobbledygook} -% Now it should work -\DeclareDocumentCommand \makebox - { >{\xparse_process_comma_split:n}d() o O{c} m} - {\IfNoValueTF{#1} - { \ltx@maketextbox{#2}{#3}{#4}\mbox } - { \ltx@makepicbox #1 {#2}{#4}\@firstofone } - } - -\DeclareDocumentCommand \framebox - { >{\xparse_process_comma_split:n} d() o O{c} m} - { - \IfNoValueTF{#1} - { \ltx@maketextbox{#2}{#3}{#4}\fbox } - { \ltx@makepicbox #1 {#2}{#4}\frame } - } - -\def\ltx@maketextbox#1#2#3#4{ - \IfNoValueTF{#1} - {#4{#3}} - { - \leavevmode - \@begin@tempboxa\hbox{#3} - \setlength\@tempdima{#1} - \if_meaning:w #4\fbox - \setbox\@tempboxa\hb@xt@\@tempdima{ - \kern\fboxsep - \use:c{bm@#2} - \kern\fboxsep - } - \@frameb@x{\kern-\fboxrule} - \else: - \hb@xt@\@tempdima{\use:c{bm@#2}} - \fi: - \@end@tempboxa - } -} - -\def\ltx@makepicbox#1#2#3#4#5{ - #5 - { - \vbox to#2\unitlength { - \cs_set_eq:NN \mb@b\vss \cs_set_eq:NN \mb@l\hss - \cs_set_eq:NN \mb@r\hss \cs_set_eq:NN \mb@t\vss - \IfNoValueF{#3}{ - \tl_map_variable:nNn {#3}\l_tmpa_tl { - \if:w s\l_tmpa_tl - \cs_set_eq:NN \mb@l \scan_stop: - \cs_set_eq:NN \mb@r \scan_stop: - \else: - \cs_set_eq:cN {mb@\l_tmpa_tl}\scan_stop: - \fi: - } - } - \mb@t - \hb@xt@ #1\unitlength{\mb@l #4\mb@r} - \mb@b - \kern\z@ - } - } -} - -\makeatother -\ExplSyntaxOff - -\begin{document} - - -\thicklines - -\makebox{A} -\makebox(1,2){B} -\makebox(0,0)[lt]{C} -\makebox[20pt]{D} -\makebox[30pt][r]{E} - -\vspace{1cm} - - -\framebox{A} -\framebox(1,2){B} -\framebox(0,0)[lt]{C} -\framebox[20pt]{D} -\framebox[30pt][r]{E} - - -\typeout{Testing optional coordinates} - -\DeclareDocumentCommand \foo { mmo } -{ \typeout{1:#1} - \typeout{2:#2} -} - -\show\foo - -\ExplSyntaxOn -\DeclareDocumentCommand \foo - { m >{\xparse_process_comma_split:n} D(){0,0} m } -{ \typeout{1:#1} - \typeout{2:#2} - \typeout{3:#3} -} -\ExplSyntaxOff - -\show\foo - -\foo A(1,2)B - -\foo A B - -\typeout{Testing mandatory coordinates (gives error on second examples)} - -\ExplSyntaxOn -\DeclareDocumentCommand \foo { m >{\xparse_process_comma_split:n} d() m } -{ \IfNoValueTF {#2} { - \ERROR - }{ - \typeout{1:#1} - \typeout{2:#2} - \typeout{3:#3} - } -} -\ExplSyntaxOff - -\show\foo - -\foo A(1,2)B - -\foo A B - -\typeout{Testing normal optional arguments} - - -\DeclareDocumentCommand \foo { mmmm o mm o } -{ \typeout{1:#1} - \typeout{2:#2} - \typeout{3:#3} - \typeout{4:#4} - \typeout{5:#5} - \typeout{6:#6} - \typeout{7:#7} - \typeout{8:#8} -} - -\foo 1234 [5]67[8] -\foo 1234 [5]67 [8] % 8 should not be picked up here -\foo 123467 - -\show\foo -\expandafter\show\csname\string\foo\endcsname - - -\typeout{Testing optional arguments with default} - -\DeclareDocumentCommand \baz { O{?}mmm o mm m } -{ \typeout{1:#1} - \typeout{2:#2} - \typeout{3:#3} - \typeout{4:#4} - \typeout{5:#5} - \typeout{6:#6} - \typeout{7:#7} - \typeout{8:#8} -} - -\show\baz -\expandafter\show\csname\string\baz\endcsname - -\baz [1]234[5]678 -\baz 234678 - -%\tracingall\tracingassigns=1 -\DeclareDocumentCommand \bar { mmmm mmmm m} -{ \typeout{1:#1} - \typeout{2:#2} - \typeout{3:#3} - \typeout{4:#4} - \typeout{5:#5} - \typeout{6:#6} - \typeout{7:#7} - \typeout{8:#8} - \typeout{9:#9} -} - -\show\bar -\expandafter\show\csname\string\bar\endcsname - -\bar 123456789 - -\DeclareDocumentCommand\chapter{soom} -{\typeout{a{#1}^^Jb{#2}^^Jc{#3}^^Jd{#4}^^Je}} - -\show\chapter -\expandafter\show\csname\string\chapter\endcsname - -\typeout{1:} -\chapter*[xxx][yyy]{zzz} - -\typeout{2:} -\chapter[xxx][yyy]{zzz} - -\typeout{3:} -\chapter*[xxx]{zzz} - -\typeout{4:} -\typeout{\chapter*[xxx][yyy]{zzz}} - - - - -\DeclareDocumentCommand\chapter{soom} -{\typeout{a{#1}^^Jb{#2}^^Jc{#3}^^Jd{#4}^^Je}} - -\DeclareDocumentEnvironment{hello}{ooo} - {\typeout{B1(#1)^^JB2(#2)^^JB3(#3)^^J}} - {\typeout{E1(#1)^^JE2(#2)^^JE3(#3)^^J}} - - -\show\hello -\expandafter\show\csname\string\hello\endcsname - -\show\endhello -\expandafter\show\csname end\string\\hello\endcsname - -\begin{hello}[abc][aabbcc] -\typeout{body} -\typeout{5:} -\chapter[xxx][yyy]{zzz} -\end{hello} - -\begin{hello}[1] -\typeout{outer body} -\hello[2]\typeout{inner body}\endhello -\end{hello} - -\stop diff --git a/Master/texmf-dist/source/latex/xpackages/xbase/xparse.dtx b/Master/texmf-dist/source/latex/xpackages/xbase/xparse.dtx index 45b7ab9bb96..f1d6ebf872d 100644 --- a/Master/texmf-dist/source/latex/xpackages/xbase/xparse.dtx +++ b/Master/texmf-dist/source/latex/xpackages/xbase/xparse.dtx @@ -41,7 +41,7 @@ \RequirePackage{l3names} % %\fi -\GetIdInfo$Id: xparse.dtx 1905 2010-05-19 07:45:31Z joseph $ +\GetIdInfo$Id: xparse.dtx 1927 2010-05-23 11:00:21Z joseph $ {Generic document command parser} %\iffalse %<*driver> @@ -191,6 +191,28 @@ % argument processors is a somewhat advanced topic, (or at least a less % commonly used feature) and is covered in Section~\ref{sec:processors}. % +%\subsection{Spacing and optional arguments} +% +% TeX will find the first argument after a function name irrespective +% of any intervening spaces. This is true for both mandatory and +% optional arguments. So "\foo[arg]" and \verb*"\foo [arg]" are +% equivalent. Spaces are also ignored when collecting arguments up +% to the last mandatory argument to be collected (as it must exist). +% So after +%\begin{verbatim} +% \DeclareDocumentCommand \foo { m o m } { ... } +%\end{verbatim} +% the user input "\foo{arg1}[arg2]{arg3}" and +% \verb*"\foo{arg1} [arg2] {arg3}" will both be parsed in the same +% way. However, spaces are \emph{not} ignored when parsing optional +% arguments after the last mandatory argument. Thus with +%\begin{verbatim} +% \DeclareDocumentCommand \foo { m o } { ... } +%\end{verbatim} +% "\foo{arg1}[arg2]" will find an optional argument but +% \verb*"\foo{arg1} [arg2]" will not. This is so that trailing optional +% arguments are not picked up `by accident' in input. +% %\subsection{Declaring commands and environments} % % With the concept of an argument specifier defined, it is now diff --git a/Master/texmf-dist/source/latex/xpackages/xtras/l3keys2e-demo.tex b/Master/texmf-dist/source/latex/xpackages/xtras/l3keys2e-demo.tex deleted file mode 100644 index a00531e0741..00000000000 --- a/Master/texmf-dist/source/latex/xpackages/xtras/l3keys2e-demo.tex +++ /dev/null @@ -1,46 +0,0 @@ -% !TEX encoding = ISO-8859-1 -% !TEX program = pdflatex -% -% This file demonstrates the use of the l3keys2e module to allow -% LaTeX3 keyvals (created using l3keys) to be used as LaTeX2e -% package or class options. -% - -% First, create a class -\begin{filecontents}{l3keys2e-class.cls} - \LoadClass{article} - \RequirePackage{l3keys2e} - \ProvidesExplClass{l3keys2e-class}{0000/00/00}{0.0}{test} - \keys_define:nn { test1 } { - option1 .code:n = {\wlog{You~gave~`#1'~for~option1}} - } - \ProcessKeysOptions { test1 } -\end{filecontents} - -% Load the class with some options. -% The class itself recognises `option1', leaving `option2' and -% `option3' as global optons which are not yet used. -\documentclass[option1=check,option2=more stuff,option3=unused] - {l3keys2e-class} - -%Now create a package -\begin{filecontents}{l3keys2e-package.sty} - \RequirePackage{l3keys2e} - \ProvidesExplPackage{l3keys2e-package}{0000/00/00}{0.0}{test} - \keys_define:nn { test2 } { - option1 .code:n = {\wlog{You~gave~`#1'~for~option1~(again)}}, - option2 .code:n = {\wlog{You~gave~`#1'~for~option2}}, - option4 .code:n = {\wlog{You~gave~`#1'~for~option4}}, - } - \ProcessKeysOptions { test2 } -\end{filecontents} - -% Load the package. -\usepackage[option4={extra stuff},option5=undefined!] - {l3keys2e-package} - -\begin{document} -% The log should show that option3 is an unused global option, and that -% option5 is not known by the l3keys2e-demo package. Everything else -% should simply be listed in the log. -\end{document} diff --git a/Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty b/Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty index d3a64fcc10f..2b3f8cd388b 100644 --- a/Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty +++ b/Master/texmf-dist/tex/latex/xpackages/xbase/xparse.sty @@ -57,7 +57,7 @@ %% ----------------------------------------------------------------------- %% \RequirePackage{l3names} -\GetIdInfo$Id: xparse.dtx 1905 2010-05-19 07:45:31Z joseph $ +\GetIdInfo$Id: xparse.dtx 1927 2010-05-23 11:00:21Z joseph $ {Generic document command parser} \ProvidesExplPackage {\filename}{\filedate}{\fileversion}{\filedescription} -- cgit v1.2.3