summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/latex/xbase/00readme.txt66
-rw-r--r--Master/texmf-dist/doc/latex/xbase/ldcsetup.pdfbin104068 -> 100608 bytes
-rw-r--r--Master/texmf-dist/doc/latex/xbase/template.pdfbin233686 -> 225000 bytes
-rw-r--r--Master/texmf-dist/doc/latex/xbase/xparse.pdfbin480359 -> 465775 bytes
-rw-r--r--Master/texmf-dist/source/latex/xbase/ldcsetup.dtx45
-rw-r--r--Master/texmf-dist/source/latex/xbase/template.dtx130
-rw-r--r--Master/texmf-dist/source/latex/xbase/xparse.dtx41
-rw-r--r--Master/texmf-dist/tex/latex/xbase/ldcsetup.sty23
-rw-r--r--Master/texmf-dist/tex/latex/xbase/template.sty47
-rw-r--r--Master/texmf-dist/tex/latex/xbase/xparse.sty12
-rwxr-xr-xMaster/tlpkg/bin/ctan2tds1
11 files changed, 212 insertions, 153 deletions
diff --git a/Master/texmf-dist/doc/latex/xbase/00readme.txt b/Master/texmf-dist/doc/latex/xbase/00readme.txt
index 2459b91379a..ba835d2ef46 100644
--- a/Master/texmf-dist/doc/latex/xbase/00readme.txt
+++ b/Master/texmf-dist/doc/latex/xbase/00readme.txt
@@ -1,7 +1,65 @@
-The xbase bundle is currently being rewritten using the expl3 language
-(which itself is being modified and updated). So intermediate versions
-may show problems and errors.
+ Experimental Packages Demonstrating
+ A Possible LaTeX3 Programming Convention
+ ========================================
-Frank 2004/11/11
+ 2008/06/20
+
+WHERE TO GET IT
+---------------
+
+The current version of these packages can be obtained by following the
+instructions at <http://www.latex-project.org/code.html>.
+
+OVERVIEW
+--------
+
+The xbase bundle provides the packages xparse and template, and the
+support package ldcsetup.
+
+The packages require expl3 to be installed.
+
+The xparse provides a high-level interface for declaring document
+commands, e.g., a uniform way to define commands taking optional
+arguments, optional stars (and others), mandatory arguments and more.
+
+The template package provides an interface for defining generic
+functions using a key=val syntax.
+
+The ldcsetup package used to establish prototype LaTeX3 coding conventions,
+needed by xparse and xbase, but is now slowly being stripped in favor
+of functionality added to expl3.
+
+
+DISCUSSION
+----------
+
+Discussion concerning the approach, suggestions for improvements, changes,
+additions, etc. should be addressed to the list LATEX-L.
+
+You can subscribe to this list by sending mail to
+
+ listserv@urz.uni-heidelberg.de
+
+with the body containing
+
+ subscribe LATEX-L <Your-First-Name> <Your-Second-Name>
+
+
+BUGS
+----
+
+If you find a real bug that makes a package stop working you can
+report it via the standard LaTeX bug reporting mechanism of the LaTeX
+distribution (see bugs.txt there) using the category "Experimental
+LaTeX kernel". However please do *not* use this method for
+suggestions / comments / improvements / etc. For this the list LATEX-L
+should be used instead.
+
+Also please don't expect these package to work with *any* code that
+floats around in the LaTeX2e world. :-)
+
+
+--- Copyright 1998 -- 2008
+ The LaTeX3 Project. All rights reserved ---
diff --git a/Master/texmf-dist/doc/latex/xbase/ldcsetup.pdf b/Master/texmf-dist/doc/latex/xbase/ldcsetup.pdf
index ae48b3b8bec..f4dd92920ac 100644
--- a/Master/texmf-dist/doc/latex/xbase/ldcsetup.pdf
+++ b/Master/texmf-dist/doc/latex/xbase/ldcsetup.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/xbase/template.pdf b/Master/texmf-dist/doc/latex/xbase/template.pdf
index a37c74472f9..8fcc2270517 100644
--- a/Master/texmf-dist/doc/latex/xbase/template.pdf
+++ b/Master/texmf-dist/doc/latex/xbase/template.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/xbase/xparse.pdf b/Master/texmf-dist/doc/latex/xbase/xparse.pdf
index 84bd62e9b47..91ef9561a57 100644
--- a/Master/texmf-dist/doc/latex/xbase/xparse.pdf
+++ b/Master/texmf-dist/doc/latex/xbase/xparse.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/xbase/ldcsetup.dtx b/Master/texmf-dist/source/latex/xbase/ldcsetup.dtx
index 7ebb1d59830..7d2d729d622 100644
--- a/Master/texmf-dist/source/latex/xbase/ldcsetup.dtx
+++ b/Master/texmf-dist/source/latex/xbase/ldcsetup.dtx
@@ -1,6 +1,6 @@
% \iffalse
%% File: ldcsetup.dtx (C) Copyright 1999 Frank Mittelbach, Chris Rowley, David Carlisle
-%% (C) Copyright 2004-2006 Frank Mittelbach, LaTeX3 Project
+%% (C) Copyright 2004-2007 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
@@ -33,22 +33,18 @@
%%
%% -----------------------------------------------------------------------
%%
-%<package>\RequirePackage{l3names}
-%<*dtx>
+%<*driver|package>
+\RequirePackage{l3names}
+%</driver|package>
%\fi
-\def\GetIdInfo$Id: #1.dtx #2 #3-#4-#5 #6 #7$#8{%
- \def\fileversion{#2}%
- \def\filedate{#3/#4/#5}%
- \ProvidesFile{#1.dtx}[#3/#4/#5 v#2 #8]%
-}
-%\iffalse
-%</dtx>
-%\fi
-\GetIdInfo$Id: ldcsetup.dtx 574 2006-08-21 23:30:10Z morten $
+\GetIdInfo$Id: ldcsetup.dtx 636 2007-09-12 20:03:06Z mittelba $
{coding conventions and stuff}
-%
-% \iffalse
+%\iffalse
%<*driver>
+%\fi
+\ProvidesFile{\filename.\filenameext}
+ [\filedate\space v\fileversion\space\filedescription]
+%\iffalse
\documentclass{ltxdoc}
\begin{document}
\DocInput{ldcsetup.dtx}
@@ -73,12 +69,12 @@
%
% \begin{macrocode}
%<*package>
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
% \end{macrocode}
-% |\CodeStart| is in effect here so we better stop it again.
% \begin{macrocode}
-\CodeStop
-\RequirePackage{keyval,calc}
-\makeatletter
+\RequirePackage{keyval,l3calc}
+\ExplSyntaxOff
% \end{macrocode}
%
% \section{Ignoring White Space}
@@ -152,7 +148,8 @@
%
% Do it for this package.
% \begin{macrocode}
-\IgnoreWhiteSpace
+%\InternalSyntaxOn
+\ExplSyntaxOn
% \end{macrocode}
%
% \section{KV fixes}
@@ -301,9 +298,8 @@
% Count Register assignments via calc. Here we also provide some
% global versions since a normal global prefix won't have any effect.
% \begin{macrocode}
-\let\SetInternalCounter\calc@assign@count
-\def\GsetInternalCounter#1{\SetInternalCounter{\global#1}}
-\def\gsetlength#1{\setlength{\global#1}}
+\let:NN \SetInternalCounter \calc_int_set:Nn
+\let:NN \GSetInternalCounter\calc_int_gset:Nn
% \end{macrocode}
%
%
@@ -319,9 +315,8 @@
% the space gets reclaimed.
% \begin{macrocode}
\def\UndeclareRobustCommand#1{%
- \global\let#1\undefined
- \global\expandafter
- \let\csname\expandafter\@gobble\string#1~\endcsname\undefined
+ \cs_gundefine:N #1
+ \exp_args:Nc \cs_gundefine:N {\cs_to_str:N #1~}
}
% \end{macrocode}
% \end{macro}
diff --git a/Master/texmf-dist/source/latex/xbase/template.dtx b/Master/texmf-dist/source/latex/xbase/template.dtx
index 3e6a4050454..68e27966fa4 100644
--- a/Master/texmf-dist/source/latex/xbase/template.dtx
+++ b/Master/texmf-dist/source/latex/xbase/template.dtx
@@ -1,6 +1,6 @@
% \iffalse
%% File: template.dtx (C) Copyright 1999-2001 David Carlisle, Frank Mittelbach
-%% (C) Copyright 2004-2006 Frank Mittelbach, LaTeX3 Project
+%% (C) Copyright 2004-2007 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
@@ -33,23 +33,18 @@
%%
%% -----------------------------------------------------------------------
%%
-%<package>\RequirePackage{l3names}
-%<*dtx>
+%<*driver|package>
+\RequirePackage{l3names}
+%</driver|package>
%\fi
-\def\GetIdInfo$Id: #1.dtx #2 #3-#4-#5 #6 #7$#8{%
- \def\fileversion{#2}%
- \def\filedate{#3/#4/#5}%
- \ProvidesFile{#1.dtx}[#3/#4/#5 v#2 #8]%
-}
-%\iffalse
-%</dtx>
-%\fi
-\GetIdInfo$Id: template.dtx 584 2006-12-12 17:29:34Z morten $
+\GetIdInfo$Id: template.dtx 652 2007-09-21 20:35:36Z morten $
{template}
-% \iffalse
-%
-%
+%\iffalse
%<*driver>
+%\fi
+\ProvidesFile{\filename.\filenameext}
+ [\filedate\space v\fileversion\space\filedescription]
+%\iffalse
\documentclass{ltxdoc}
\makeatletter
\newenvironment{decl}[1][]%
@@ -474,7 +469,7 @@
% passed to the internal parameter list (this has to happen explicitly
% from within the code). |#1| may be used to access the value
% specified.
-
+%
% The main purpose for this type is of historical nature (originally
% most of the other types have been implemented internally using |g|).
%
@@ -1126,17 +1121,15 @@
% \section{Implementation}
% \begin{macrocode}
%<*package>
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
% \end{macrocode}
%
% \begin{macrocode}
\RequirePackage{ldcsetup,xparse}
-\RequirePackage{l3toks,l3tlp,l3skip,l3int,l3clist,l3token}
+\RequirePackage{l3toks,l3tlp,l3skip,l3int,l3clist,l3token,l3calc}
% \end{macrocode}
%
-% Ignore white space in this package.
-% \begin{macrocode}
-\CodeStart
-% \end{macrocode}
%
% Declare a private token register for building parameter lists.
% Having the number saves a few expandafters
@@ -1236,38 +1229,26 @@
% \end{macro}
%
% \begin{macro}{\TP_push_assignments:n}
-% Store a list of parameter assignments given as an argument
-% in |\l_TP_KV_assignments_toks| and
-% then push it
-% onto the |\g_TP_assignments_stack_toks|. (My assumption is that
-% the somewhat strange
-% way to do this is in fact neccesary to preserve the |#| marks
-% which would otherwise need doubling --- check).
-% \begin{macrocode}
-\def_new:Npn \TP_push_assignments:n{
- \tex_afterassignment:D \TP_push_assignments:
- \l_TP_KV_assignments_toks}
-% \end{macrocode}
-%
-% \end{macro}
-%
% \begin{macro}{\TP_push_assignments:}
-% Pushes the parameter assignment list stored in
-% |\l_TV_KV_assignments_toks| onto the stack
-% |\g_TP_assignments_stack_toks|.
+% Push a list of parameter assignments onto the
+% |\g_TP_assignments_stack_toks|. As it all happens in token
+% registers |#|s need no doubling. |\TP_push_assignments:| expects
+% it to be |\l_TP_KV_assignments_toks| (needs fixing).
% \begin{macrocode}
+\def_long_new:Npn \TP_push_assignments:n#1{
+ \toks_gput_left:Nn\g_TP_assignments_stack_toks{{#1}}
+}
\def_new:Npn \TP_push_assignments:{
\toks_gset:No \g_TP_assignments_stack_toks
{\exp_after:NN
-% \end{macrocode}
-% this misuses the fact that |\toks_use:N| is really |\the| so expands
-% a little strangely (fix).
-% \begin{macrocode}
{\toks_use:N\exp_after:NN\l_TP_KV_assignments_toks\exp_after:NN}
- \toks_use:N\g_TP_assignments_stack_toks}}
+ \toks_use:N\g_TP_assignments_stack_toks}
+}
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
+%
% \begin{macro}{\DeclareTemplateType}
% |{type}{nofarg}|
% \begin{macrocode}
@@ -2022,8 +2003,17 @@
\group_begin:
\TP_templdecl_multiselection:nnnn ##1
\group_end:
+% \end{macrocode}
+% Extracting the correct item from the |\if_case:w| we are building
+% requires a bit of care. Firstly we want to expand the appropirate
+% number of times to get to the item but we also want to ensure we do
+% not have any unwanted leftover |\fi:|s or other junk which is bound
+% to cause errors later on. Therefore we start an |f| expansion (so we
+% don't have to count |\exp_after:NN|s and then stop it again when we
+% want to.
+% \begin{macrocode}
\toks_put_right:Nx\l_TP_KV_assignments_toks {
- \exp_not:n{\tlp_set:No #1} { \toks_use:N \g_TP_multiselection_toks}
+ \exp_not:n{\tlp_set:Nf #1} { \toks_use:N \g_TP_multiselection_toks}
}
}
{
@@ -2037,12 +2027,18 @@
% \end{macro}
%
% \begin{macro}{\TP_templdecl_multiselection:nnnn}
-% Start the |\if_case:w|
+% Start the |\if_case:w|. When the item is retrieved using an |f|
+% type expansion we better stop it at the right place once we have
+% emerged on the other side of the conditional.
% \begin{macrocode}
\def_new:Npn \TP_templdecl_multiselection:nnnn #1#2#3#4{
\toks_gset:Nn \g_TP_multiselection_toks {\if_case:w #2}
- \clist_map_inline:nn {#3}{ \TP_multiselection_add_or_case:n {##1} }
- \toks_gput_right:Nn\g_TP_multiselection_toks { \else: #4\fi: }
+ \clist_map_inline:nn {#3}{
+ \TP_multiselection_add_or_case:n {\exp_stop_f:##1}
+ }
+ \toks_gput_right:Nn\g_TP_multiselection_toks {
+ \else: \use_arg_i_after_fi:nw { \exp_stop_f: #4} \fi:
+ }
}
% \end{macrocode}
% \end{macro}
@@ -2182,9 +2178,9 @@
% {#1#2{##1}\def:Npx #3{\toks_use:N#2}}
\toks_set:No \l_tmpa_toks {\use_arg_ii:nn ##1}
\toks_put_right:Nx \l_TP_KV_assignments_toks {
- {\exp_not:n{#1#2}{\toks_use:N \l_tmpa_toks}
+ \exp_not:n{#1#2}{\toks_use:N \l_tmpa_toks}
\exp_not:n{ \def:Npx #3{\toks_use:N#2} }
- }
+
}
}
% \end{macrocode}
@@ -2232,12 +2228,12 @@
% \marg{operation} \marg{register} |\MultiSelection|
% \marg{selector} \marg{case-list} \marg{else-case}
%
-% This command builds up the |\if_case:w| code from the three arguments
-% of |\MultiSelection| and stores it in
-% |\g_TP_multiselection_toks|. This code is supposed to be run in
-% a group so a) we don't have to initialise
-% |\g_TP_multiselection_toks| and b) all changes to the used
-% registers not affecting the outside.
+% This command builds up the |\if_case:w| code from the three
+% arguments of |\MultiSelection| and stores it in
+% |\g_TP_multiselection_toks|. This code is supposed to be run in a
+% group so a) we don't have to initialise |\g_TP_multiselection_toks|
+% and b) all changes to the used registers not affecting the
+% outside.
%
% \begin{macrocode}
\def_new:Npn \TP_multiselection_add:nnnnnn #1#2#3#4#5#6{
@@ -2249,28 +2245,28 @@
}
{
#1#2{##1}
- \TP_multiselection_add_or_case:n { \toks_use:N #2 }
+ \TP_multiselection_add_or_case:o { \toks_use:N #2 }
}
}
- \toks_gput_right:Nn \g_TP_multiselection_toks { \else: #6\fi: }
+ \toks_gput_right:Nn \g_TP_multiselection_toks {
+ \else: \use_arg_i_after_fi:nw{#6}\fi:
+ }
}
% \end{macrocode}
%
% \end{macro}
%
% \begin{macro}{\TP_multiselection_add_or_case:o}
-% Since we intend to add |\or:| to |\g_TP_multiselection_toks|
-% within the |\_for| loop we have to hide it carefully or else we
-% will get some unmatched conditionals.
-%
-% Actually the |:o| is a slight lie here since the expanion happens
-% when we add things to the toks register inside.
+% No need to worry about where |\or:| is allowed to be added since
+% all loops in \LaTeX3 process the item outside conditionals.
% \begin{macrocode}
\def_new:Npn \TP_multiselection_add_or_case:n #1 {
- \toks_gput_right:Nn \g_TP_multiselection_toks { \or: #1 }
+ \toks_gput_right:Nn \g_TP_multiselection_toks {
+ \or: \use_arg_i_after_orelse:nw{#1}
+ }
}
\def_new:Npn \TP_multiselection_add_or_case:o {
- \exp_args:NNo \TP_multiselection_add_or_case:n
+ \exp_args:No \TP_multiselection_add_or_case:n
}
% \end{macrocode}
% \end{macro}
@@ -2342,7 +2338,7 @@
% adds stuff to \l_TP_KV_assignments_toks
\setkeys {\cs:w TPO>/#1/#3\cs_end:}{#4}
- \tlp_set:co { TPR>/#1/#2 }
+ \tlp_set:cx { TPR>/#1/#2 }
{ \toks_use:N \l_TP_KV_assignments_toks }
\cs_if_free:cTF { TPO>/#1/#3 }
{ \tlp_set:cn {TPO>/#1/#2}{#1/#3} }
diff --git a/Master/texmf-dist/source/latex/xbase/xparse.dtx b/Master/texmf-dist/source/latex/xbase/xparse.dtx
index 90346556975..0ecd05af7bc 100644
--- a/Master/texmf-dist/source/latex/xbase/xparse.dtx
+++ b/Master/texmf-dist/source/latex/xbase/xparse.dtx
@@ -1,6 +1,6 @@
% \iffalse
%% File: xparse.dtx (C) Copyright 1999 Frank Mittelbach, Chris Rowley, David Carlisle
-%% (C) Copyright 2004-2006 Frank Mittelbach, LaTeX3 Project
+%% (C) Copyright 2004-2007 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
@@ -33,21 +33,18 @@
%%
%% -----------------------------------------------------------------------
%%
-%<package>\RequirePackage{l3names}
-%<*dtx>
+%<*driver|package>
+\RequirePackage{l3names}
+%</driver|package>
%\fi
-\def\GetIdInfo$Id: #1.dtx #2 #3-#4-#5 #6 #7$#8{%
- \def\fileversion{#2}%
- \def\filedate{#3/#4/#5}%
- \ProvidesFile{#1.dtx}[#3/#4/#5 v#2 #8]%
-}
-%\iffalse
-%</dtx>
-%\fi
-\GetIdInfo$Id: xparse.dtx 574 2006-08-21 23:30:10Z morten $
+\GetIdInfo$Id: xparse.dtx 700 2007-11-27 14:18:29Z morten $
{generic document command parser}
-% \iffalse
+%\iffalse
%<*driver>
+%\fi
+\ProvidesFile{\filename.\filenameext}
+ [\filedate\space v\fileversion\space\filedescription]
+%\iffalse
\documentclass{ltxdoc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
@@ -65,7 +62,7 @@
%</driver>
% \fi
%
-% \CheckSum{621}
+% \CheckSum{626}
%
%
% \title{The \textsf{xparse} package\thanks{This file
@@ -691,7 +688,8 @@
% square brackets this often leads to errors. The following example
% definition works (I \emph{did} try it).
% \begin{verbatim}
-% \CodeStart
+% \ExplSyntaxOn
+% \makeatletter
% \cs_gundefine:N \math@cr
% \DeclareDocumentCommand\math@cr{>{W}s >{W}O{\z@}}{
% \IfBooleanTF{#1}
@@ -706,7 +704,8 @@
% \math@cr@@@
% \noalign{\vskip#2\relax}
% }
-% \CodeStop
+% \makeatother
+% \ExplSyntaxOn
% \end{verbatim}
% Note that this definition automatically avoids problems within the
% alignments even if it is called as |\\&|.
@@ -835,6 +834,8 @@
% First the required packages.
% \begin{macrocode}
%<*package>
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
\RequirePackage{l3tlp,l3num,l3toks,l3prg,l3int,l3seq,l3token}
% \end{macrocode}
%
@@ -1946,11 +1947,11 @@
% \begin{macro}{\IfBooleanF}
% The logical \meta{true} and \meta{false} statements are just our
% normal |\c_true| and |\c_false| so testing for them is done with
-% our usual |\prg_if_predicate:nTF| functions from \textsf{l3prg}.
+% our usual |\bool_if:NTF| functions from \textsf{l3prg}.
% \begin{macrocode}
-\let_new:NN \IfBooleanTF \prg_if_predicate:nTF
-\let_new:NN \IfBooleanT \prg_if_predicate:nT
-\let_new:NN \IfBooleanF \prg_if_predicate:nF
+\let_new:NN \IfBooleanTF \bool_if:NTF
+\let_new:NN \IfBooleanT \bool_if:NT
+\let_new:NN \IfBooleanF \bool_if:NF
% \end{macrocode}
% \end{macro}
% \end{macro}
diff --git a/Master/texmf-dist/tex/latex/xbase/ldcsetup.sty b/Master/texmf-dist/tex/latex/xbase/ldcsetup.sty
index 286097bd17c..57d5e448d17 100644
--- a/Master/texmf-dist/tex/latex/xbase/ldcsetup.sty
+++ b/Master/texmf-dist/tex/latex/xbase/ldcsetup.sty
@@ -20,7 +20,7 @@
%% ======================================================================
%%
%% File: ldcsetup.dtx (C) Copyright 1999 Frank Mittelbach, Chris Rowley, David Carlisle
-%% (C) Copyright 2004-2006 Frank Mittelbach, LaTeX3 Project
+%% (C) Copyright 2004-2007 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
@@ -54,11 +54,12 @@
%% -----------------------------------------------------------------------
%%
\RequirePackage{l3names}
-\GetIdInfo$Id: ldcsetup.dtx 574 2006-08-21 23:30:10Z morten $
+\GetIdInfo$Id: ldcsetup.dtx 636 2007-09-12 20:03:06Z mittelba $
{coding conventions and stuff}
-\CodeStop
-\RequirePackage{keyval,calc}
-\makeatletter
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
+\RequirePackage{keyval,l3calc}
+\ExplSyntaxOff
%% Puts an ignored space at the end of the line, so `|\ |' does the right
\def\IgnoreWhiteSpace{%
\edef\@tempa{%
@@ -111,7 +112,7 @@
\relax
}
\let\InternalSyntaxOff\relax
-\IgnoreWhiteSpace
+\ExplSyntaxOn
\def\define@key#1#2{%
\@ifnextchar[
{\KV@def{#1}{\string#2}}
@@ -180,13 +181,11 @@
\expandafter
\endgroup
\the\KV@toks}
-\let\SetInternalCounter\calc@assign@count
-\def\GsetInternalCounter#1{\SetInternalCounter{\global#1}}
-\def\gsetlength#1{\setlength{\global#1}}
+\let:NN \SetInternalCounter \calc_int_set:Nn
+\let:NN \GSetInternalCounter\calc_int_gset:Nn
\def\UndeclareRobustCommand#1{%
- \global\let#1\undefined
- \global\expandafter
- \let\csname\expandafter\@gobble\string#1~\endcsname\undefined
+ \cs_gundefine:N #1
+ \exp_args:Nc \cs_gundefine:N {\cs_to_str:N #1~}
}
\endinput
%%
diff --git a/Master/texmf-dist/tex/latex/xbase/template.sty b/Master/texmf-dist/tex/latex/xbase/template.sty
index 53365373ddb..1a00efd1107 100644
--- a/Master/texmf-dist/tex/latex/xbase/template.sty
+++ b/Master/texmf-dist/tex/latex/xbase/template.sty
@@ -20,7 +20,7 @@
%% ======================================================================
%%
%% File: template.dtx (C) Copyright 1999-2001 David Carlisle, Frank Mittelbach
-%% (C) Copyright 2004-2006 Frank Mittelbach, LaTeX3 Project
+%% (C) Copyright 2004-2007 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
@@ -54,12 +54,12 @@
%% -----------------------------------------------------------------------
%%
\RequirePackage{l3names}
-\GetIdInfo$Id: template.dtx 584 2006-12-12 17:29:34Z morten $
+\GetIdInfo$Id: template.dtx 652 2007-09-21 20:35:36Z morten $
{template}
-
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
\RequirePackage{ldcsetup,xparse}
-\RequirePackage{l3toks,l3tlp,l3skip,l3int,l3clist,l3token}
-\CodeStart
+\RequirePackage{l3toks,l3tlp,l3skip,l3int,l3clist,l3token,l3calc}
\toks_new:N\l_TP_KV_assignments_toks
\toks_new:N\l_TP_default_assignments_toks
\def_new:NNn \TP_declare_instance:Nnn 3{
@@ -92,14 +92,15 @@
#1}
\toks_new:N \g_TP_assignments_stack_toks
\toks_gset:Nn \g_TP_assignments_stack_toks {\scan_stop:}% avoid brace loss
-\def_new:Npn \TP_push_assignments:n{
- \tex_afterassignment:D \TP_push_assignments:
- \l_TP_KV_assignments_toks}
+\def_long_new:Npn \TP_push_assignments:n#1{
+ \toks_gput_left:Nn\g_TP_assignments_stack_toks{{#1}}
+}
\def_new:Npn \TP_push_assignments:{
\toks_gset:No \g_TP_assignments_stack_toks
{\exp_after:NN
{\toks_use:N\exp_after:NN\l_TP_KV_assignments_toks\exp_after:NN}
- \toks_use:N\g_TP_assignments_stack_toks}}
+ \toks_use:N\g_TP_assignments_stack_toks}
+}
\def_new:NNn \DeclareTemplateType 2{
\tlp_set:cn {TP@<#1>} {{}#2}}
\def_new:Npn \TP_get_csname_prefix:n#1{
@@ -383,7 +384,7 @@
\TP_templdecl_multiselection:nnnn ##1
\group_end:
\toks_put_right:Nx\l_TP_KV_assignments_toks {
- \exp_not:n{\tlp_set:No #1} { \toks_use:N \g_TP_multiselection_toks}
+ \exp_not:n{\tlp_set:Nf #1} { \toks_use:N \g_TP_multiselection_toks}
}
}
{
@@ -395,8 +396,12 @@
}
\def_new:Npn \TP_templdecl_multiselection:nnnn #1#2#3#4{
\toks_gset:Nn \g_TP_multiselection_toks {\if_case:w #2}
- \clist_map_inline:nn {#3}{ \TP_multiselection_add_or_case:n {##1} }
- \toks_gput_right:Nn\g_TP_multiselection_toks { \else: #4\fi: }
+ \clist_map_inline:nn {#3}{
+ \TP_multiselection_add_or_case:n {\exp_stop_f:##1}
+ }
+ \toks_gput_right:Nn\g_TP_multiselection_toks {
+ \else: \use_arg_i_after_fi:nw { \exp_stop_f: #4} \fi:
+ }
}
\def_new:Npn \DeclareInstance { \DeclareCollectionInstance{} }
\def_long_new:Npn \DeclareCollectionInstance#1#2#3#4{
@@ -450,9 +455,9 @@
{
\toks_set:No \l_tmpa_toks {\use_arg_ii:nn ##1}
\toks_put_right:Nx \l_TP_KV_assignments_toks {
- {\exp_not:n{#1#2}{\toks_use:N \l_tmpa_toks}
+ \exp_not:n{#1#2}{\toks_use:N \l_tmpa_toks}
\exp_not:n{ \def:Npx #3{\toks_use:N#2} }
- }
+
}
}
{
@@ -482,16 +487,20 @@
}
{
#1#2{##1}
- \TP_multiselection_add_or_case:n { \toks_use:N #2 }
+ \TP_multiselection_add_or_case:o { \toks_use:N #2 }
}
}
- \toks_gput_right:Nn \g_TP_multiselection_toks { \else: #6\fi: }
+ \toks_gput_right:Nn \g_TP_multiselection_toks {
+ \else: \use_arg_i_after_fi:nw{#6}\fi:
+ }
}
\def_new:Npn \TP_multiselection_add_or_case:n #1 {
- \toks_gput_right:Nn \g_TP_multiselection_toks { \or: #1 }
+ \toks_gput_right:Nn \g_TP_multiselection_toks {
+ \or: \use_arg_i_after_orelse:nw{#1}
+ }
}
\def_new:Npn \TP_multiselection_add_or_case:o {
- \exp_args:NNo \TP_multiselection_add_or_case:n
+ \exp_args:No \TP_multiselection_add_or_case:n
}
\def_new:Npn \IfExistsInstanceTF#1#2{
\cs_if_exist:cTF{<>#1/#2}
@@ -513,7 +522,7 @@
\setkeys {\cs:w TPO>/#1/#3\cs_end:}{#4}
- \tlp_set:co { TPR>/#1/#2 }
+ \tlp_set:cx { TPR>/#1/#2 }
{ \toks_use:N \l_TP_KV_assignments_toks }
\cs_if_free:cTF { TPO>/#1/#3 }
{ \tlp_set:cn {TPO>/#1/#2}{#1/#3} }
diff --git a/Master/texmf-dist/tex/latex/xbase/xparse.sty b/Master/texmf-dist/tex/latex/xbase/xparse.sty
index 05e4758cf52..193844abbdf 100644
--- a/Master/texmf-dist/tex/latex/xbase/xparse.sty
+++ b/Master/texmf-dist/tex/latex/xbase/xparse.sty
@@ -20,7 +20,7 @@
%% ======================================================================
%%
%% File: xparse.dtx (C) Copyright 1999 Frank Mittelbach, Chris Rowley, David Carlisle
-%% (C) Copyright 2004-2006 Frank Mittelbach, LaTeX3 Project
+%% (C) Copyright 2004-2007 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
@@ -54,8 +54,10 @@
%% -----------------------------------------------------------------------
%%
\RequirePackage{l3names}
-\GetIdInfo$Id: xparse.dtx 574 2006-08-21 23:30:10Z morten $
+\GetIdInfo$Id: xparse.dtx 700 2007-11-27 14:18:29Z morten $
{generic document command parser}
+\ProvidesExplPackage
+ {\filename}{\filedate}{\fileversion}{\filedescription}
\RequirePackage{l3tlp,l3num,l3toks,l3prg,l3int,l3seq,l3token}
\def_new:NNn \xparse_already_defined_error_msg:N 1 {
\xparse_error:x {
@@ -497,9 +499,9 @@
}
}
\DeclareArgumentTypeShorthand s {S{*}}
-\let_new:NN \IfBooleanTF \prg_if_predicate:nTF
-\let_new:NN \IfBooleanT \prg_if_predicate:nT
-\let_new:NN \IfBooleanF \prg_if_predicate:nF
+\let_new:NN \IfBooleanTF \bool_if:NTF
+\let_new:NN \IfBooleanT \bool_if:NT
+\let_new:NN \IfBooleanF \bool_if:NF
\tlp_new:Nn \NoValue {-NoValue-}
\tlp_new:Nn \c_xparse_hidden_no_value_tlp {\NoValue}
\def_long_new:Npn \xparse_if_no_value:nTF #1{
diff --git a/Master/tlpkg/bin/ctan2tds b/Master/tlpkg/bin/ctan2tds
index 3fc0843aeda..534531657ac 100755
--- a/Master/tlpkg/bin/ctan2tds
+++ b/Master/tlpkg/bin/ctan2tds
@@ -398,7 +398,6 @@ chdir $startdir || die "chdir($startdir) failed: $!"; # back to raw
'wasy2', "&MAKEflatten",
'wntamil', "die 'skipping, nonfree license'",
'wordcount', "&MAKEwordcount",
- #'xbase', "&MAKEnosymlinks",
'xecyr', "&MAKEcopy",
'xetex-pstricks',"&MAKEcopy",
'xfrac', "die 'skipping, still experimental'", #&MAKEflatten",