summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/expl3
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-05-23 23:50:45 +0000
committerKarl Berry <karl@freefriends.org>2010-05-23 23:50:45 +0000
commitad61437dbc77ced3998eeb1fbc47f07382a9740b (patch)
tree43555571c2b6a10cae679df9a7e3677823a5bfa1 /Master/texmf-dist/source/latex/expl3
parent64ba2a9dbcc524178aec8cecbb6947b449724990 (diff)
expl3 1925 (23may10)
git-svn-id: svn://tug.org/texlive/trunk@18438 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/expl3')
-rw-r--r--Master/texmf-dist/source/latex/expl3/l3.ins118
-rw-r--r--Master/texmf-dist/source/latex/expl3/l3basics.dtx607
-rw-r--r--Master/texmf-dist/source/latex/expl3/l3box.dtx52
-rw-r--r--Master/texmf-dist/source/latex/expl3/l3candidates.dtx4
-rw-r--r--Master/texmf-dist/source/latex/expl3/l3format.ins81
-rw-r--r--Master/texmf-dist/source/latex/expl3/l3int.dtx18
-rw-r--r--Master/texmf-dist/source/latex/expl3/l3io.dtx4
-rw-r--r--Master/texmf-dist/source/latex/expl3/l3num.dtx2
-rw-r--r--Master/texmf-dist/source/latex/expl3/l3skip.dtx49
-rw-r--r--Master/texmf-dist/source/latex/expl3/l3tl.dtx47
-rw-r--r--Master/texmf-dist/source/latex/expl3/l3toks.dtx18
-rw-r--r--Master/texmf-dist/source/latex/expl3/source3.tex414
12 files changed, 54 insertions, 1360 deletions
diff --git a/Master/texmf-dist/source/latex/expl3/l3.ins b/Master/texmf-dist/source/latex/expl3/l3.ins
deleted file mode 100644
index 4d6718c0431..00000000000
--- a/Master/texmf-dist/source/latex/expl3/l3.ins
+++ /dev/null
@@ -1,118 +0,0 @@
-
-\input docstrip.tex
-\askforoverwritefalse
-
-\preamble
-
-
-EXPERIMENTAL CODE
-
-Do not distribute this file without also distributing the
-source files specified above.
-
-Do not distribute a modified version of this file.
-
-
-\endpreamble
-% stop docstrip adding \endinput
-\postamble
-\endpostamble
-
-\keepsilent
-
-% wrapper package for the expl3 bundle
-\generate{\file{expl3.sty}{\from{expl3.dtx}{package}}}
-
-
-% l3names.sty sets up the naming scheme for TeX primitives.
-\generate{\file{l3names.sty}{\from{l3names.dtx}{package}}}
-
-
-
-% Define some basic commands to get us started with the new
-% programming style.
-\generate{\file{l3basics.sty}{\from{l3basics.dtx}{package,trace}}}
-
-
-% Define some basic commands that check various conditions
-% related to defining commands eg defined/undefined global/local
-% Not sure how much of this really makes sense as a package, but...
-\generate{\file{l3chk.sty}{\from{l3chk.dtx}{package,trace}}}
-
-
-%% toks register handling (can be compiled with check module)
-\generate{\file{l3toks.sty}{\from{l3toks.dtx}{package,trace}}}
-
-
-%% token lists
-\generate{\file{l3tl.sty}{\from{l3tl.dtx}{package,trace}}}
-
-
-%% LaTeX3 expansion module
-\generate{\file{l3expan.sty}{\from{l3expan.dtx}{package,trace}}}
-
-
-%% LaTeX3 quarks.
-\generate{\file{l3quark.sty}{\from{l3quark.dtx}{package,trace}}}
-
-
-%% LaTeX3 sequences.
-\generate{\file{l3seq.sty}{\from{l3seq.dtx}{package,trace}}}
-
-
-%% LaTeX3 clists.
-\generate{\file{l3clist.sty}{\from{l3clist.dtx}{package,trace}}}
-
-
-%% LaTeX3 property lists.
-\generate{\file{l3prop.sty}{\from{l3prop.dtx}{package,trace}}}
-
-
-%% LaTeX3 fake integer macros. --- this is still needed in places such as xor !!!
-\generate{\file{l3num.sty}{\from{l3num.dtx}{package,trace}}}
-
-%% LaTeX3 integer registers. (can be compiled with check module)
-\generate{\file{l3int.sty}{\from{l3int.dtx}{package,trace}}}
-
-%% LaTeX3 integer expressions.
-\generate{\file{l3intexpr.sty}{\from{l3intexpr.dtx}{package,trace}}}
-
-
-%% LaTeX3 skip registers.
-\generate{\file{l3skip.sty}{\from{l3skip.dtx}{package,trace}}}
-
-
-%% LaTeX3 precompilation
-\generate{\file{l3precom.sty}{\from{l3precom.dtx}{package,precompile,trace}}}
-
-%% LaTeX3 I/O module.
-\generate{\file{l3io.sty}{\from{l3io.dtx}{package,trace}}}
-
-%% LaTeX3 program control structures (loops, booleans, ...)
-\generate{\file{l3prg.sty}{\from{l3prg.dtx}{package}}}
-
-%% LaTeX3 box module
-\generate{\file{l3box.sty}{\from{l3box.dtx}{package}}}
-
-%% LaTeX3 messages
-\generate{\file{l3msg.sty}{\from{l3msg.dtx}{package}}}
-
-%% LaTeX3 tokens
-\generate{\file{l3token.sty}{\from{l3token.dtx}{package}}}
-
-%% LaTeX3 cross references
-\generate{\file{l3xref.sty}{\from{l3xref.dtx}{package}}}
-%%\generate{\file{l3xref-test.tex}{\from{l3xref.dtx}{testfile}}}
-
-%% LaTeX3 calc module
-\generate{\file{l3calc.sty}{\from{l3calc.dtx}{package}}}
-
-%% LaTeX3 keyval modules
-\generate{\file{l3keyval.sty}{\from{l3keyval.dtx}{package}}}
-\generate{\file{l3keys.sty}{\from{l3keys.dtx}{package}}}
-
-%% LaTeX3 file loading
-\generate{\file{l3file.sty}{\from{l3file.dtx}{package}}}
-
-
-\endbatchfile
diff --git a/Master/texmf-dist/source/latex/expl3/l3basics.dtx b/Master/texmf-dist/source/latex/expl3/l3basics.dtx
index defe09a5277..69e40a05f59 100644
--- a/Master/texmf-dist/source/latex/expl3/l3basics.dtx
+++ b/Master/texmf-dist/source/latex/expl3/l3basics.dtx
@@ -35,7 +35,7 @@
\RequirePackage{l3names}
%</driver|package>
%\fi
-\GetIdInfo$Id: l3basics.dtx 1905 2010-05-19 07:45:31Z joseph $
+\GetIdInfo$Id: l3basics.dtx 1921 2010-05-22 08:28:54Z joseph $
{L3 Experimental basic definitions}
%\iffalse
%<*driver>
@@ -703,16 +703,6 @@
% when called. This is not allowed for normal functions.
% \end{function}
%
-% \begin{function}{\cs_new_local:Npn |
-% \cs_new_local:Npx |
-% \cs_new_local:cpn |
-% \cs_new_local:cpx }
-% \begin{syntax}
-% "\cs_new_local:Npn" <cs> <parms> \Arg{code}
-% \end{syntax}
-% Local versions of the above functions.
-% \end{function}
-%
% \begin{function}{\cs_new_nopar:Npn |
% \cs_new_nopar:Npx |
% \cs_new_nopar:cpn |
@@ -729,17 +719,6 @@
% (under the "x" variants).
% \end{function}
%
-% \begin{function}{\cs_new_local_nopar:Npn |
-% \cs_new_local_nopar:Npx |
-% \cs_new_local_nopar:cpn |
-% \cs_new_local_nopar:cpx }
-% \begin{syntax}
-% "\cs_new_local_nopar:Npn" <cs> <parms> \Arg{code}
-% \end{syntax}
-% Like "\cs_new_nopar:Npn" but defines the new function locally. See
-% comments above.
-% \end{function}
-%
% \begin{function}{\cs_new_protected:Npn |
% \cs_new_protected:Npx |
% \cs_new_protected:cpn |
@@ -752,16 +731,6 @@
% in the argument(s) when called.
% \end{function}
%
-% \begin{function}{ \cs_new_local_protected:Npn |
-% \cs_new_local_protected:Npx |
-% \cs_new_local_protected:cpn |
-% \cs_new_local_protected:cpx }
-% \begin{syntax}
-% "\cs_new_local_protected:Npn" <cs> <parms> \Arg{code}
-% \end{syntax}
-% Local versions of the above functions.
-% \end{function}
-%
% \begin{function}{\cs_new_protected_nopar:Npn |
% \cs_new_protected_nopar:Npx |
% \cs_new_protected_nopar:cpn |
@@ -774,132 +743,6 @@
% expansion.
% \end{function}
%
-% \begin{function}{\cs_new_local_protected_nopar:Npn |
-% \cs_new_local_protected_nopar:Npx |
-% \cs_new_local_protected_nopar:cpn |
-% \cs_new_local_protected_nopar:cpx }
-% \begin{syntax}
-% "\cs_new_local_protected_nopar:Npn" <cs> <parms> \Arg{code}
-% \end{syntax}
-% Local versions of the above functions.
-% \end{function}
-%
-%
-%
-%
-%
-%
-%
-%
-%
-% \subsection{Defining new functions using the signature}
-%
-%
-% \begin{function}{\cs_new:Nn |
-% \cs_new:Nx |
-% \cs_new:cn |
-% \cs_new:cx
-% }
-% \begin{syntax}
-% "\cs_new:Nn" <cs> \Arg{code}
-% \end{syntax}
-% Defines a new function, making sure that <cs> is unused so far. The
-% parameter text is automatically detected from the length of the
-% function signature. If <cs> is missing a colon in its name, an error
-% is raised. It is under the responsibility of the programmer to name
-% the new function according to the rules laid out in the previous
-% section. <code> is either passed literally or may be subject to
-% expansion (under the "x" variants).
-% \begin{texnote}
-% Internally, these use \TeX's "\long". These forms are
-% recommended for low-level definitions as experience has shown that "\par"
-% tokens often turn up in programming situations that wouldn't have been
-% expected.
-% \end{texnote}
-% \end{function}
-%
-% \begin{function}{\cs_new_local:Nn |
-% \cs_new_local:Nx |
-% \cs_new_local:cn |
-% \cs_new_local:cx
-% }
-% \begin{syntax}
-% "\cs_new_local:Nn" <cs> \Arg{code}
-% \end{syntax}
-% Local versions of the above functions.
-% \end{function}
-%
-% \begin{function}{\cs_new_nopar:Nn |
-% \cs_new_nopar:Nx |
-% \cs_new_nopar:cn |
-% \cs_new_nopar:cx
-% }
-% \begin{syntax}
-% "\cs_new_nopar:Nn" <cs> \Arg{code}
-% \end{syntax}
-% Version of the above in which "\par" is not allowed to appear within the
-% argument(s) of the defined functions.
-% \end{function}
-%
-% \begin{function}{\cs_new_local_nopar:Nn |
-% \cs_new_local_nopar:Nx |
-% \cs_new_local_nopar:cn |
-% \cs_new_local_nopar:cx
-% }
-% \begin{syntax}
-% "\cs_new_local_nopar:Nn" <cs> \Arg{code}
-% \end{syntax}
-% Local versions of the above functions.
-% \end{function}
-%
-% \begin{function}{\cs_new_protected:Nn |
-% \cs_new_protected:Nx |
-% \cs_new_protected:cn |
-% \cs_new_protected:cx
-% }
-% \begin{syntax}
-% "\cs_new_protected:Nn" <cs> \Arg{code}
-% \end{syntax}
-% Defines a function that is both robust and may contain "\par" tokens
-% in the argument(s) when called.
-% \end{function}
-%
-% \begin{function}{\cs_new_local_protected:Nn |
-% \cs_new_local_protected:Nx |
-% \cs_new_local_protected:cn |
-% \cs_new_local_protected:cx
-% }
-% \begin{syntax}
-% "\cs_new_local_protected:Nn" <cs> \Arg{code}
-% \end{syntax}
-% Local versions of the above functions.
-% \end{function}
-%
-% \begin{function}{\cs_new_protected_nopar:Nn |
-% \cs_new_protected_nopar:Nx |
-% \cs_new_protected_nopar:cn |
-% \cs_new_protected_nopar:cx
-% }
-% \begin{syntax}
-% "\cs_new_protected_nopar:Nn" <cs> \Arg{code}
-% \end{syntax}
-% Defines a function that does not expand when inside an |x| type
-% expansion. "\par" is not allowed in the argument(s) of the defined function.
-% \end{function}
-%
-% \begin{function}{\cs_new_local_protected_nopar:Nn |
-% \cs_new_local_protected_nopar:Nx |
-% \cs_new_local_protected_nopar:cn |
-% \cs_new_local_protected_nopar:cx
-% }
-% \begin{syntax}
-% "\cs_new_local_protected_nopar:Nn" <cs> \Arg{code}
-% \end{syntax}
-% Local versions of the above functions.
-% \end{function}
-%
-%
-%
% \subsection{Defining functions using primitive parameter text}
%
%
@@ -1019,107 +862,6 @@
% \end{function}
%
%
-% \subsection{Defining functions using the signature (no checks)}
-%
-% As above but now detecting the parameter text from inspecting the
-% signature.
-%
-% \begin{function}{\cs_set:Nn |
-% \cs_set:Nx |
-% \cs_set:cn |
-% \cs_set:cx |
-% }
-% \begin{syntax}
-% "\cs_set:Nn" <cs> \Arg{code}
-% \end{syntax}
-% Like "\cs_set_nopar:Nn" but allows "\par" tokens in the arguments of the
-% function being defined.
-% \end{function}
-%
-% \begin{function}{\cs_gset:Nn |
-% \cs_gset:Nx |
-% \cs_gset:cn |
-% \cs_gset:cx |
-% }
-% \begin{syntax}
-% "\cs_gset:Nn" <cs> \Arg{code}
-% \end{syntax}
-% Global variant of "\cs_set:Nn".
-% \end{function}
-%
-% \begin{function}{\cs_set_nopar:Nn |
-% \cs_set_nopar:Nx |
-% \cs_set_nopar:cn |
-% \cs_set_nopar:cx |
-% }
-% \begin{syntax}
-% "\cs_set_nopar:Nn" <cs> \Arg{code}
-% \end{syntax}
-% Like "\cs_new_nopar:Nn" etc.\ but does not check the <cs> name.
-% \end{function}
-%
-% \begin{function}{\cs_gset_nopar:Nn |
-% \cs_gset_nopar:Nx |
-% \cs_gset_nopar:cn |
-% \cs_gset_nopar:cx |
-% }
-% \begin{syntax}
-% "\cs_gset_nopar:Nn" <cs> \Arg{code}
-% \end{syntax}
-% Like "\cs_set_nopar:Nn" but defines the <cs> globally.
-% \end{function}
-%
-% \begin{function}{\cs_set_protected:Nn |
-% \cs_set_protected:cn |
-% \cs_set_protected:Nx |
-% \cs_set_protected:cx |
-% }
-% \begin{syntax}
-% "\cs_set_protected:Nn" <cs> \Arg{code}
-% \end{syntax}
-% Naturally robust macro that won't expand in an |x| type argument.
-% These varieties also allow |\par| tokens in the arguments of the
-% function being defined.
-% \end{function}
-%
-% \begin{function}{\cs_gset_protected:Nn |
-% \cs_gset_protected:cn |
-% \cs_gset_protected:Nx |
-% \cs_gset_protected:cx |
-% }
-% \begin{syntax}
-% "\cs_gset_protected:Nn" <cs> \Arg{code}
-% \end{syntax}
-% Global versions of the above functions.
-% \end{function}
-%
-% \begin{function}{\cs_set_protected_nopar:Nn |
-% \cs_set_protected_nopar:cn |
-% \cs_set_protected_nopar:Nx |
-% \cs_set_protected_nopar:cx |
-% }
-% \begin{syntax}
-% "\cs_set_protected_nopar:Nn" <cs> \Arg{code}
-% \end{syntax}
-% Naturally robust macro that won't expand in an |x| type argument.
-% This also comes as a |long| version. If you for some reason want to
-% expand it inside an |x| type expansion, prefix it with
-% |\exp_after:wN \prg_do_nothing:|.
-% \end{function}
-%
-% \begin{function}{\cs_gset_protected_nopar:Nn |
-% \cs_gset_protected_nopar:cn |
-% \cs_gset_protected_nopar:Nx |
-% \cs_gset_protected_nopar:cx |
-% }
-% \begin{syntax}
-% "\cs_gset_protected_nopar:Nn" <cs> \Arg{code}
-% \end{syntax}
-% Global versions of the above functions.
-% \end{function}
-%
-%
-%
% \subsection{Undefining functions}
%
% \begin{function}{
@@ -1144,11 +886,7 @@
% \begin{function}{ \cs_new_eq:NN |
% \cs_new_eq:cN |
% \cs_new_eq:Nc |
-% \cs_new_eq:cc |
-% \cs_new_local_eq:NN |
-% \cs_new_local_eq:cN |
-% \cs_new_local_eq:Nc |
-% \cs_new_local_eq:cc }
+% \cs_new_eq:cc }
% \begin{syntax}
% "\cs_new_eq:NN" <cs1> <cs2>
% \end{syntax}
@@ -2556,42 +2294,6 @@
%
%
%
-% \begin{macro}{\cs_new_local_nopar:Npn}
-% \begin{macro}{\cs_new_local_nopar:Npx}
-% \begin{macro}{\cs_new_local:Npn}
-% \begin{macro}{\cs_new_local:Npx}
-% \begin{macro}{\cs_new_local_protected_nopar:Npn}
-% \begin{macro}{\cs_new_local_protected_nopar:Npx}
-% \begin{macro}{\cs_new_local_protected:Npn}
-% \begin{macro}{\cs_new_local_protected:Npx}
-% These are like |\cs_set_nopar:Npn| and |\cs_set_eq:NN|, but they
-% first check that the argument command is not already in use. You
-% may use |\pref_global:D|, |\pref_long:D|, |\pref_protected:D|, and
-% |\tex_outer:D| as prefixes.
-% \begin {macrocode}
-\cs_set:Npn \cs_tmp:w #1#2{
- \cs_set_protected_nopar:Npn #1 ##1 {
- \chk_if_free_cs:N ##1
- #2 ##1
- }
-}
-\cs_tmp:w \cs_new_local_nopar:Npn \cs_set_nopar:Npn
-\cs_tmp:w \cs_new_local_nopar:Npx \cs_set_nopar:Npx
-\cs_tmp:w \cs_new_local:Npn \cs_set:Npn
-\cs_tmp:w \cs_new_local:Npx \cs_set:Npx
-\cs_tmp:w \cs_new_local_protected_nopar:Npn \cs_set_protected_nopar:Npn
-\cs_tmp:w \cs_new_local_protected_nopar:Npx \cs_set_protected_nopar:Npx
-\cs_tmp:w \cs_new_local_protected:Npn \cs_set_protected:Npn
-\cs_tmp:w \cs_new_local_protected:Npx \cs_set_protected:Npx
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
%
% \begin{macro}{\cs_new_nopar:Npn}
% \begin{macro}{\cs_new_nopar:Npx}
@@ -2603,6 +2305,13 @@
% \begin{macro}{\cs_new_protected:Npx}
% Global versions of the above functions.
% \begin {macrocode}
+\cs_set:Npn \cs_tmp:w #1#2 {
+ \cs_set_protected_nopar:Npn #1 ##1
+ {
+ \chk_if_free_cs:N ##1
+ #2 ##1
+ }
+}
\cs_tmp:w \cs_new_nopar:Npn \cs_gset_nopar:Npn
\cs_tmp:w \cs_new_nopar:Npx \cs_gset_nopar:Npx
\cs_tmp:w \cs_new:Npn \cs_gset:Npn
@@ -2629,8 +2338,6 @@
% \begin{macro}{\cs_gset_nopar:cpx}
% \begin{macro}{\cs_new_nopar:cpn}
% \begin{macro}{\cs_new_nopar:cpx}
-% \begin{macro}{\cs_new_local_nopar:cpn}
-% \begin{macro}{\cs_new_local_nopar:cpx}
% Like |\cs_set_nopar:Npn| and |\cs_new_nopar:Npn|, except that the
% first argument consists of the sequence of characters that should
% be used to form the name of the desired control sequence (the |c|
@@ -2649,8 +2356,6 @@
\cs_tmp:w \cs_set_nopar:cpx \cs_set_nopar:Npx
\cs_tmp:w \cs_gset_nopar:cpn \cs_gset_nopar:Npn
\cs_tmp:w \cs_gset_nopar:cpx \cs_gset_nopar:Npx
-\cs_tmp:w \cs_new_local_nopar:cpn \cs_new_local_nopar:Npn
-\cs_tmp:w \cs_new_local_nopar:cpx \cs_new_local_nopar:Npx
\cs_tmp:w \cs_new_nopar:cpn \cs_new_nopar:Npn
\cs_tmp:w \cs_new_nopar:cpx \cs_new_nopar:Npx
% \end{macrocode}
@@ -2660,8 +2365,6 @@
% \end{macro}
% \end{macro}
% \end{macro}
-% \end{macro}
-% \end{macro}
%
%
%
@@ -2671,8 +2374,6 @@
% \begin{macro}{\cs_gset:cpx}
% \begin{macro}{\cs_new:cpn}
% \begin{macro}{\cs_new:cpx}
-% \begin{macro}{\cs_new_local:cpn}
-% \begin{macro}{\cs_new_local:cpx}
% Variants of the |\cs_set:Npn| versions which make a csname out
% of the first arguments. We may also do this globally.
% \begin{macrocode}
@@ -2682,8 +2383,6 @@
\cs_tmp:w \cs_gset:cpx \cs_gset:Npx
\cs_tmp:w \cs_new:cpn \cs_new:Npn
\cs_tmp:w \cs_new:cpx \cs_new:Npx
-\cs_tmp:w \cs_new_local:cpn \cs_new_local:Npn
-\cs_tmp:w \cs_new_local:cpx \cs_new_local:Npx
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -2691,8 +2390,6 @@
% \end{macro}
% \end{macro}
% \end{macro}
-% \end{macro}
-% \end{macro}
%
% \begin{macro}{\cs_set_protected_nopar:cpn}
% \begin{macro}{\cs_set_protected_nopar:cpx}
@@ -2700,8 +2397,6 @@
% \begin{macro}{\cs_gset_protected_nopar:cpx}
% \begin{macro}{\cs_new_protected_nopar:cpn}
% \begin{macro}{\cs_new_protected_nopar:cpx}
-% \begin{macro}{\cs_new_local_protected_nopar:cpn}
-% \begin{macro}{\cs_new_local_protected_nopar:cpx}
% Variants of the |\cs_set_protected_nopar:Npn| versions which make a csname
% out of the first arguments. We may also do this globally.
% \begin{macrocode}
@@ -2711,8 +2406,6 @@
\cs_tmp:w \cs_gset_protected_nopar:cpx \cs_gset_protected_nopar:Npx
\cs_tmp:w \cs_new_protected_nopar:cpn \cs_new_protected_nopar:Npn
\cs_tmp:w \cs_new_protected_nopar:cpx \cs_new_protected_nopar:Npx
-\cs_tmp:w \cs_new_local_protected_nopar:cpn \cs_new_local_protected_nopar:Npn
-\cs_tmp:w \cs_new_local_protected_nopar:cpx \cs_new_local_protected_nopar:Npx
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -2720,8 +2413,6 @@
% \end{macro}
% \end{macro}
% \end{macro}
-% \end{macro}
-% \end{macro}
%
% \begin{macro}{\cs_set_protected:cpn}
% \begin{macro}{\cs_set_protected:cpx}
@@ -2729,8 +2420,6 @@
% \begin{macro}{\cs_gset_protected:cpx}
% \begin{macro}{\cs_new_protected:cpn}
% \begin{macro}{\cs_new_protected:cpx}
-% \begin{macro}{\cs_new_local_protected:cpn}
-% \begin{macro}{\cs_new_local_protected:cpx}
% Variants of the |\cs_set_protected:Npn| versions which make a csname
% out of the first arguments. We may also do this globally.
% \begin{macrocode}
@@ -2740,8 +2429,6 @@
\cs_tmp:w \cs_gset_protected:cpx \cs_gset_protected:Npx
\cs_tmp:w \cs_new_protected:cpn \cs_new_protected:Npn
\cs_tmp:w \cs_new_protected:cpx \cs_new_protected:Npx
-\cs_tmp:w \cs_new_local_protected:cpn \cs_new_local_protected:Npn
-\cs_tmp:w \cs_new_local_protected:cpx \cs_new_local_protected:Npx
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -2749,8 +2436,6 @@
% \end{macro}
% \end{macro}
% \end{macro}
-% \end{macro}
-% \end{macro}
%
% BACKWARDS COMPATIBILITY:
% \begin{macrocode}
@@ -2875,23 +2560,6 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\cs_new_local_eq:NN}
-% \begin{macro}{\cs_new_local_eq:cN}
-% \begin{macro}{\cs_new_local_eq:Nc}
-% \begin{macro}{\cs_new_local_eq:cc}
-% \begin{macrocode}
-\cs_new_protected:Npn \cs_new_local_eq:NN #1 {
- \chk_if_free_cs:N #1
- \cs_set_eq:NN #1
-}
-\cs_new_protected_nopar:Npn \cs_gnew_eq:cN { \exp_args:Nc \cs_gnew_eq:NN }
-\cs_new_protected_nopar:Npn \cs_gnew_eq:Nc { \exp_args:NNc \cs_gnew_eq:NN }
-\cs_new_protected_nopar:Npn \cs_gnew_eq:cc { \exp_args:Ncc \cs_gnew_eq:NN }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
%
% BACKWARDS COMPATIBILITY
% \begin{macrocode}
@@ -3107,263 +2775,6 @@
% \end{macro}
%
%
-%
-%
-% \subsection{Using the signature to define functions}
-%
-% We can now combine some of the tools we have to provide a simple
-% interface for defining functions. We define some simpler functions
-% with user interface |\cs_set:Nn \foo_bar:nn {#1,#2}|, i.e., the
-% number of arguments is read from the signature.
-%
-%
-% \begin{macro}{\cs_set:Nn}
-% \begin{macro}{\cs_set:Nx}
-% \begin{macro}{\cs_set_nopar:Nn}
-% \begin{macro}{\cs_set_nopar:Nx}
-% \begin{macro}{\cs_set_protected:Nn}
-% \begin{macro}{\cs_set_protected:Nx}
-% \begin{macro}{\cs_set_protected_nopar:Nn}
-% \begin{macro}{\cs_set_protected_nopar:Nx}
-% \begin{macro}{\cs_gset:Nn}
-% \begin{macro}{\cs_gset:Nx}
-% \begin{macro}{\cs_gset_nopar:Nn}
-% \begin{macro}{\cs_gset_nopar:Nx}
-% \begin{macro}{\cs_gset_protected:Nn}
-% \begin{macro}{\cs_gset_protected:Nx}
-% \begin{macro}{\cs_gset_protected_nopar:Nn}
-% \begin{macro}{\cs_gset_protected_nopar:Nx}
-% We want to define |\cs_set:Nn| as
-% \begin{verbatim}
-% \cs_set_protected:Npn \cs_set:Nn #1#2{
-% \cs_generate_from_arg_count:NNnn #1\cs_set:Npn
-% {\cs_get_arg_count_from_signature:N #1}{#2}
-% }
-% \end{verbatim}
-% In short, to define |\cs_set:Nn| we need just use |\cs_set:Npn|,
-% everything else is the same for each variant. Therefore, we can
-% make it simpler by temporarily defining a function to do this for
-% us.
-% \begin{macrocode}
-\cs_set:Npn \cs_tmp:w #1#2#3{
- \cs_set_protected:cpx {cs_#1:#2}##1##2{
- \exp_not:N \cs_generate_from_arg_count:NNnn ##1
- \exp_after:wN \exp_not:N \cs:w cs_#1:#3 \cs_end:
- {\exp_not:N\cs_get_arg_count_from_signature:N ##1}{##2}
- }
-}
-% \end{macrocode}
-% Then we define the 32 variants beginning with |N|.
-% \begin{macrocode}
-\cs_tmp:w {set}{Nn}{Npn}
-\cs_tmp:w {set}{Nx}{Npx}
-\cs_tmp:w {set_nopar}{Nn}{Npn}
-\cs_tmp:w {set_nopar}{Nx}{Npx}
-\cs_tmp:w {set_protected}{Nn}{Npn}
-\cs_tmp:w {set_protected}{Nx}{Npx}
-\cs_tmp:w {set_protected_nopar}{Nn}{Npn}
-\cs_tmp:w {set_protected_nopar}{Nx}{Npx}
-\cs_tmp:w {gset}{Nn}{Npn}
-\cs_tmp:w {gset}{Nx}{Npx}
-\cs_tmp:w {gset_nopar}{Nn}{Npn}
-\cs_tmp:w {gset_nopar}{Nx}{Npx}
-\cs_tmp:w {gset_protected}{Nn}{Npn}
-\cs_tmp:w {gset_protected}{Nx}{Npx}
-\cs_tmp:w {gset_protected_nopar}{Nn}{Npn}
-\cs_tmp:w {gset_protected_nopar}{Nx}{Npx}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\cs_new:Nn}
-% \begin{macro}{\cs_new:Nx}
-% \begin{macro}{\cs_new_nopar:Nn}
-% \begin{macro}{\cs_new_nopar:Nx}
-% \begin{macro}{\cs_new_protected:Nn}
-% \begin{macro}{\cs_new_protected:Nx}
-% \begin{macro}{\cs_new_protected_nopar:Nn}
-% \begin{macro}{\cs_new_protected_nopar:Nx}
-% \begin{macro}{\cs_new_local:Nn}
-% \begin{macro}{\cs_new_local:Nx}
-% \begin{macro}{\cs_new_local_nopar:Nn}
-% \begin{macro}{\cs_new_local_nopar:Nx}
-% \begin{macro}{\cs_new_local_protected:Nn}
-% \begin{macro}{\cs_new_local_protected:Nx}
-% \begin{macro}{\cs_new_local_protected_nopar:Nn}
-% \begin{macro}{\cs_new_local_protected_nopar:Nx}
-% \begin{macrocode}
-\cs_tmp:w {new}{Nn}{Npn}
-\cs_tmp:w {new}{Nx}{Npx}
-\cs_tmp:w {new_nopar}{Nn}{Npn}
-\cs_tmp:w {new_nopar}{Nx}{Npx}
-\cs_tmp:w {new_protected}{Nn}{Npn}
-\cs_tmp:w {new_protected}{Nx}{Npx}
-\cs_tmp:w {new_protected_nopar}{Nn}{Npn}
-\cs_tmp:w {new_protected_nopar}{Nx}{Npx}
-\cs_tmp:w {new_local}{Nn}{Npn}
-\cs_tmp:w {new_local}{Nx}{Npx}
-\cs_tmp:w {new_local_nopar}{Nn}{Npn}
-\cs_tmp:w {new_local_nopar}{Nx}{Npx}
-\cs_tmp:w {new_local_protected}{Nn}{Npn}
-\cs_tmp:w {new_local_protected}{Nx}{Npx}
-\cs_tmp:w {new_local_protected_nopar}{Nn}{Npn}
-\cs_tmp:w {new_local_protected_nopar}{Nx}{Npx}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% Then something similar for the |c| variants.
-% \begin{verbatim}
-% \cs_set_protected:Npn \cs_set:cn #1#2{
-% \cs_generate_from_arg_count:cNnn {#1}\cs_set:Npn
-% {\cs_get_arg_count_from_signature:c {#1}}{#2}
-% }
-% \end{verbatim}
-% \begin{macrocode}
-\cs_set:Npn \cs_tmp:w #1#2#3{
- \cs_set_protected:cpx {cs_#1:#2}##1##2{
- \exp_not:N\cs_generate_from_arg_count:cNnn {##1}
- \exp_after:wN \exp_not:N \cs:w cs_#1:#3 \cs_end:
- {\exp_not:N\cs_get_arg_count_from_signature:c {##1}}{##2}
- }
-}
-% \end{macrocode}
-% \begin{macro}{\cs_set:cn}
-% \begin{macro}{\cs_set:cx}
-% \begin{macro}{\cs_set_nopar:cn}
-% \begin{macro}{\cs_set_nopar:cx}
-% \begin{macro}{\cs_set_protected:cn}
-% \begin{macro}{\cs_set_protected:cx}
-% \begin{macro}{\cs_set_protected_nopar:cn}
-% \begin{macro}{\cs_set_protected_nopar:cx}
-% \begin{macro}{\cs_gset:cn}
-% \begin{macro}{\cs_gset:cx}
-% \begin{macro}{\cs_gset_nopar:cn}
-% \begin{macro}{\cs_gset_nopar:cx}
-% \begin{macro}{\cs_gset_protected:cn}
-% \begin{macro}{\cs_gset_protected:cx}
-% \begin{macro}{\cs_gset_protected_nopar:cn}
-% \begin{macro}{\cs_gset_protected_nopar:cx}
-% The 32 |c| variants.
-% \begin{macrocode}
-\cs_tmp:w {set}{cn}{Npn}
-\cs_tmp:w {set}{cx}{Npx}
-\cs_tmp:w {set_nopar}{cn}{Npn}
-\cs_tmp:w {set_nopar}{cx}{Npx}
-\cs_tmp:w {set_protected}{cn}{Npn}
-\cs_tmp:w {set_protected}{cx}{Npx}
-\cs_tmp:w {set_protected_nopar}{cn}{Npn}
-\cs_tmp:w {set_protected_nopar}{cx}{Npx}
-\cs_tmp:w {gset}{cn}{Npn}
-\cs_tmp:w {gset}{cx}{Npx}
-\cs_tmp:w {gset_nopar}{cn}{Npn}
-\cs_tmp:w {gset_nopar}{cx}{Npx}
-\cs_tmp:w {gset_protected}{cn}{Npn}
-\cs_tmp:w {gset_protected}{cx}{Npx}
-\cs_tmp:w {gset_protected_nopar}{cn}{Npn}
-\cs_tmp:w {gset_protected_nopar}{cx}{Npx}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\cs_new:cn}
-% \begin{macro}{\cs_new:cx}
-% \begin{macro}{\cs_new_nopar:cn}
-% \begin{macro}{\cs_new_nopar:cx}
-% \begin{macro}{\cs_new_protected:cn}
-% \begin{macro}{\cs_new_protected:cx}
-% \begin{macro}{\cs_new_protected_nopar:cn}
-% \begin{macro}{\cs_new_protected_nopar:cx}
-% \begin{macro}{\cs_new_local:cn}
-% \begin{macro}{\cs_new_local:cx}
-% \begin{macro}{\cs_new_local_nopar:cn}
-% \begin{macro}{\cs_new_local_nopar:cx}
-% \begin{macro}{\cs_new_local_protected:cn}
-% \begin{macro}{\cs_new_local_protected:cx}
-% \begin{macro}{\cs_new_local_protected_nopar:cn}
-% \begin{macro}{\cs_new_local_protected_nopar:cx}
-% \begin{macrocode}
-\cs_tmp:w {new}{cn}{Npn}
-\cs_tmp:w {new}{cx}{Npx}
-\cs_tmp:w {new_nopar}{cn}{Npn}
-\cs_tmp:w {new_nopar}{cx}{Npx}
-\cs_tmp:w {new_protected}{cn}{Npn}
-\cs_tmp:w {new_protected}{cx}{Npx}
-\cs_tmp:w {new_protected_nopar}{cn}{Npn}
-\cs_tmp:w {new_protected_nopar}{cx}{Npx}
-\cs_tmp:w {new_local}{cn}{Npn}
-\cs_tmp:w {new_local}{cx}{Npx}
-\cs_tmp:w {new_local_nopar}{cn}{Npn}
-\cs_tmp:w {new_local_nopar}{cx}{Npx}
-\cs_tmp:w {new_local_protected}{cn}{Npn}
-\cs_tmp:w {new_local_protected}{cx}{Npx}
-\cs_tmp:w {new_local_protected_nopar}{cn}{Npn}
-\cs_tmp:w {new_local_protected_nopar}{cx}{Npx}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-%
-%
-%
-%
-%
% \begin{macro}{\cs_if_eq_p:NN,\cs_if_eq_p:cN,\cs_if_eq_p:Nc,\cs_if_eq_p:cc}
% \begin{macro}[TF]{\cs_if_eq:NN,\cs_if_eq:cN,\cs_if_eq:Nc,\cs_if_eq:cc}
% Check if two control sequences are identical.
diff --git a/Master/texmf-dist/source/latex/expl3/l3box.dtx b/Master/texmf-dist/source/latex/expl3/l3box.dtx
index 652decb8a9e..6f3c0b21c1b 100644
--- a/Master/texmf-dist/source/latex/expl3/l3box.dtx
+++ b/Master/texmf-dist/source/latex/expl3/l3box.dtx
@@ -36,7 +36,7 @@
\RequirePackage{l3names}
%</driver|package>
%\fi
-\GetIdInfo$Id: l3box.dtx 1902 2010-05-13 14:58:53Z mittelba $
+\GetIdInfo$Id: l3box.dtx 1919 2010-05-22 05:56:38Z will $
{L3 Experimental Box module}
%\iffalse
%<*driver>
@@ -70,15 +70,11 @@
% \section{Generic functions}
%
% \begin{function}{ \box_new:N |
-% \box_new:c |
-% \box_new_local:N |
-% \box_new_local:c }
+% \box_new:c }
% \begin{syntax}
% "\box_new:N" <box>
% \end{syntax}
% Defines <box> to be a new variable of type "box".
-% With the |local| variant, the variable is only available within the
-% current group level (or below).
% \begin{texnote}
% "\box_new:N" is the equivalent of plain \TeX{}'s \tn{newbox}.
% \end{texnote}
@@ -144,11 +140,15 @@
% \box_set_eq:cN |
% \box_set_eq:Nc |
% \box_set_eq:cc |
+% \box_set_eq_clear:NN |
+% \box_set_eq_clear:cN |
+% \box_set_eq_clear:Nc |
+% \box_set_eq_clear:cc |
% }
% \begin{syntax}
% "\box_set_eq:NN" <box1> <box2>
% \end{syntax}
-% Sets <box1> equal to <box2>. Note that this eradicates the contents
+% Sets <box1> equal to <box2>. The "_clear" versions eradicate the contents
% of <box2> afterwards.
% \end{function}
%
@@ -158,11 +158,16 @@
% \box_gset_eq:cN |
% \box_gset_eq:Nc |
% \box_gset_eq:cc |
+% \box_gset_eq_clear:NN |
+% \box_gset_eq_clear:cN |
+% \box_gset_eq_clear:Nc |
+% \box_gset_eq_clear:cc |
% }
% \begin{syntax}
% "\box_gset_eq:NN" <box1> <box2>
% \end{syntax}
-% Globally sets <box1> equal to <box2>.
+% Globally sets <box1> equal to <box2>. The "_clear" versions eradicate the contents
+% of <box2> afterwards.
% \end{function}
%
%
@@ -508,7 +513,6 @@
% \subsection{Generic boxes}
%
% \begin{macro}{\box_new:N,\box_new:c}
-% \begin{macro}{\box_new_local:N,\box_new_local:c}
% Defining a new \m{box} register.
% \begin{macrocode}
%<*initex>
@@ -528,22 +532,13 @@
\chk_if_free_cs:N #1
\newbox #1
}
-\cs_new_protected:Npn \box_new_local:N #1 {
- \chk_if_free_cs:N #1
- \intexpr_compare:nNnTF
- \etex_currentgrouplevel:D = 0
- \newbox \locbox
- #1
-}
%</package>
% \end{macrocode}
%
% \begin{macrocode}
\cs_generate_variant:Nn \box_new:N {c}
-\cs_generate_variant:Nn \box_new_local:N {c}
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
% \begin{macro}{\if_hbox:N}
% \begin{macro}{\if_vbox:N}
@@ -608,19 +603,32 @@
% \begin{macro}{\box_set_eq:NN,\box_set_eq:cN,
% \box_set_eq:Nc,\box_set_eq:cc}
% Assigning the contents of a box to be another box.
-% This clears the second box globally (that's how \TeX{} does it).
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \box_set_eq:NN #1#2 {\tex_setbox:D #1 \tex_box:D #2}
+\cs_new_protected_nopar:Npn \box_set_eq:NN #1#2 {\tex_setbox:D #1 \tex_copy:D #2}
\cs_generate_variant:Nn \box_set_eq:NN {cN,Nc,cc}
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\box_set_eq_clear:NN,\box_set_eq_clear:cN,
+% \box_set_eq_clear:Nc,\box_set_eq_clear:cc}
+% Assigning the contents of a box to be another box.
+% This clears the second box globally (that's how \TeX{} does it).
+% \begin{macrocode}
+\cs_new_protected_nopar:Npn \box_set_eq_clear:NN #1#2 {\tex_setbox:D #1 \tex_box:D #2}
+\cs_generate_variant:Nn \box_set_eq_clear:NN {cN,Nc,cc}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\box_gset_eq:NN,\box_gset_eq:cN,
-% \box_gset_eq:Nc,\box_gset_eq:cc}
+% \box_gset_eq:Nc,\box_gset_eq:cc,
+% \box_gset_eq_clear:NN,\box_gset_eq_clear:cN,
+% \box_gset_eq_clear:Nc,\box_gset_eq_clear:cc}
% Global version of the above.
% \begin{macrocode}
\cs_new_protected_nopar:Npn \box_gset_eq:NN {\pref_global:D\box_set_eq:NN}
\cs_generate_variant:Nn \box_gset_eq:NN {cN,Nc,cc}
+\cs_new_protected_nopar:Npn \box_gset_eq_clear:NN {\pref_global:D\box_set_eq_clear:NN}
+\cs_generate_variant:Nn \box_gset_eq_clear:NN {cN,Nc,cc}
% \end{macrocode}
% \end{macro}
%
@@ -663,7 +671,7 @@
% \begin{macro}{\box_gclear:N,\box_gclear:c}
% Clear a \m{box} register.
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \box_clear:N #1{\box_set_eq:NN #1 \c_empty_box }
+\cs_new_protected_nopar:Npn \box_clear:N #1{\box_set_eq_clear:NN #1 \c_empty_box }
\cs_generate_variant:Nn \box_clear:N {c}
\cs_new_protected_nopar:Npn \box_gclear:N {\pref_global:D\box_clear:N}
\cs_generate_variant:Nn \box_gclear:N {c}
diff --git a/Master/texmf-dist/source/latex/expl3/l3candidates.dtx b/Master/texmf-dist/source/latex/expl3/l3candidates.dtx
index b753191559d..2c8d8968e6c 100644
--- a/Master/texmf-dist/source/latex/expl3/l3candidates.dtx
+++ b/Master/texmf-dist/source/latex/expl3/l3candidates.dtx
@@ -164,8 +164,8 @@
% \begin{function}{\seq_set_from_clist:NN|\seq_set_from_clist:Nn|
% \seq_gset_from_clist:NN|\seq_gset_from_clist:Nn}
% \begin{syntax}
-% "\seq_set_from_seq:Nn" <seq> \Arg{clist}
-% "\seq_set_from_seq:NN" <seq> <clist variable>
+% "\seq_set_from_clist:Nn" <seq> \Arg{clist}
+% "\seq_set_from_clist:NN" <seq> <clist variable>
% \end{syntax}
% Transforms comma-list <clist> into sequence <seq>.
% \end{function}
diff --git a/Master/texmf-dist/source/latex/expl3/l3format.ins b/Master/texmf-dist/source/latex/expl3/l3format.ins
deleted file mode 100644
index fc3e62d85f0..00000000000
--- a/Master/texmf-dist/source/latex/expl3/l3format.ins
+++ /dev/null
@@ -1,81 +0,0 @@
-
-\input docstrip.tex
-\askforoverwritefalse
-
-\preamble
-
-
-EXPERIMENTAL CODE
-
-Do not distribute this file without also distributing the
-source files specified above.
-
-Do not distribute a modified version of this file.
-
-
-\endpreamble
-% stop docstrip adding \endinput
-\postamble
-\endpostamble
-
-\keepsilent
-
-% generate the format file
-\generate{%
- \file{latex3.ltx}{%
- \from{l3names.dtx}{initex} % The naming conventions
- \from{l3basics.dtx}{initex} % Initialisations
- \from{l3expan.dtx}{initex} % Controlling expansion of arguments
- \from{l3tl.dtx}{initex} % token list variables
- \from{l3intexpr.dtx}{initex} %
- \from{l3quark.dtx}{initex} % quarks
- \from{l3seq.dtx}{initex} % Sequences and stacks
-%
- \from{l3alloc.dtx}{initex} % Register allocations
-%
- \from{l3toks.dtx}{initex} % dealing with token registers
- \from{l3int.dtx}{initex} % dealing with integer registers
- \from{l3prg.dtx}{initex} % Program control structures
- \from{l3clist.dtx}{initex} % Comma separated lists
- \from{l3token.dtx}{initex} % token investigation
- \from{l3prop.dtx}{initex} % property lists
- \from{l3msg.dtx}{initex} % setting up for user communication
- \from{l3io.dtx}{initex} % dealing with I/O
- \from{l3skip.dtx}{initex} % dealing with skip registers
- \from{l3box.dtx}{initex} % dealing with box registers
- \from{l3keyval.dtx}{initex} %
- \from{l3keys.dtx}{initex} %
-%
-% \from{l3precom.dtx}{initex,precompile} %
-%
- \from{l3calc.dtx}{initex} %
- \from{l3xref.dtx}{initex} % Cross references
- \from{l3file.dtx}{initex} % file loading
-%
- \from{l3vers.dtx}{initex} % Version information
-%
-%
-% \from{l3chk.dtx}{initex} % Checking functions
-%
- \from{l3final.dtx}{initex} % Final wrap-up
- }
-}
-
-% generate higher-level material
-\generate{%
- \file{xparse.ltx}{\from{xparse.dtx}{initex}}
- \file{xtemplate.ltx}{\from{xtemplate.dtx}{initex}}
-}
-
-\Msg{}
-\Msg{*************************************}
-\Msg{*}
-\Msg{* Now run (PDF)INITEX on lbase.ltx}
-\Msg{*}
-\Msg{* On an up to date system, run }
-\Msg{* pdftex -ini -etex *latex3.ltx }
-\Msg{*}
-\Msg{*************************************}
-\Msg{}
-
-\endbatchfile
diff --git a/Master/texmf-dist/source/latex/expl3/l3int.dtx b/Master/texmf-dist/source/latex/expl3/l3int.dtx
index 4af558c3a47..ac4819295e6 100644
--- a/Master/texmf-dist/source/latex/expl3/l3int.dtx
+++ b/Master/texmf-dist/source/latex/expl3/l3int.dtx
@@ -36,7 +36,7 @@
\RequirePackage{l3names}
%</driver|package>
%\fi
-\GetIdInfo$Id: l3int.dtx 1893 2010-04-11 12:54:05Z will $
+\GetIdInfo$Id: l3int.dtx 1919 2010-05-22 05:56:38Z will $
{L3 Experimental Integer module}
%\iffalse
%<*driver>
@@ -75,15 +75,11 @@
% \section{Functions}
%
% \begin{function}{ \int_new:N |
-% \int_new:c |
-% \int_new_local:N |
-% \int_new_local:c }
+% \int_new:c }
% \begin{syntax}
% "\int_new:N" <int>
% \end{syntax}
% Defines <int> to be a new variable of type "int".
-% With the |local| variant, the variable is only available within the
-% current group level (or below).
% \begin{texnote}
% "\int_new:N" is the equivalent to plain \TeX{}'s \tn{newcount}.
% \end{texnote}
@@ -457,7 +453,6 @@
% \subsection{Allocation and setting}
%
% \begin{macro}{\int_new:N,\int_new:c}
-% \begin{macro}{\int_new_local:N,\int_new_local:c}
% For the \LaTeX3 format:
% \begin{macrocode}
%<*initex>
@@ -471,21 +466,12 @@
\chk_if_free_cs:N #1
\newcount #1
}
-\cs_new_protected_nopar:Npn \int_new_local:N #1 {
- \chk_if_free_cs:N #1
- \intexpr_compare:nNnTF
- \etex_currentgrouplevel:D = 0
- \newcount \loccount
- #1
-}
%</package>
% \end{macrocode}
% \begin{macrocode}
\cs_generate_variant:Nn \int_new:N {c}
-\cs_generate_variant:Nn \int_new_local:N {c}
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
%
% \begin{macro}{\int_set:Nn}
diff --git a/Master/texmf-dist/source/latex/expl3/l3io.dtx b/Master/texmf-dist/source/latex/expl3/l3io.dtx
index cb11e46f2ca..f27175de874 100644
--- a/Master/texmf-dist/source/latex/expl3/l3io.dtx
+++ b/Master/texmf-dist/source/latex/expl3/l3io.dtx
@@ -36,7 +36,7 @@
\RequirePackage{l3names}
%</driver|package>
%\fi
-\GetIdInfo$Id: l3io.dtx 1890 2010-04-11 03:37:15Z will $
+\GetIdInfo$Id: l3io.dtx 1923 2010-05-22 12:45:49Z joseph $
{L3 Experimental i/o module}
%\iffalse
%<*driver>
@@ -712,7 +712,7 @@
{
\intexpr_compare:nF { #1 = \c_minus_one }
{
- \tex_closeout:D #1
+ \tex_closein:D #1
\prop_gdel:NV \g_ior_streams_prop #1
\cs_gundefine:N #1
}
diff --git a/Master/texmf-dist/source/latex/expl3/l3num.dtx b/Master/texmf-dist/source/latex/expl3/l3num.dtx
index a17b7768cc5..866216ca57a 100644
--- a/Master/texmf-dist/source/latex/expl3/l3num.dtx
+++ b/Master/texmf-dist/source/latex/expl3/l3num.dtx
@@ -36,7 +36,7 @@
\RequirePackage{l3names}
%</driver|package>
%\fi
-\GetIdInfo$Id$
+\GetIdInfo$Id: l3num.dtx 1914 2010-05-21 16:18:46Z schoepf $
{L3 Experimental token numbers}
%\iffalse
%<*driver>
diff --git a/Master/texmf-dist/source/latex/expl3/l3skip.dtx b/Master/texmf-dist/source/latex/expl3/l3skip.dtx
index 055ed886304..47ffe1c7535 100644
--- a/Master/texmf-dist/source/latex/expl3/l3skip.dtx
+++ b/Master/texmf-dist/source/latex/expl3/l3skip.dtx
@@ -36,7 +36,7 @@
\RequirePackage{l3names}
%</driver|package>
%\fi
-\GetIdInfo$Id: l3skip.dtx 1892 2010-04-11 08:59:45Z will $
+\GetIdInfo$Id: l3skip.dtx 1919 2010-05-22 05:56:38Z will $
{L3 Experimental skip registers}
%\iffalse
%<*driver>
@@ -72,15 +72,11 @@
% \subsection{Functions}
%
% \begin{function}{ \skip_new:N |
-% \skip_new:c |
-% \skip_new_local:N |
-% \skip_new_local:c }
+% \skip_new:c }
% \begin{syntax}
% "\skip_new:N" <skip>
% \end{syntax}
% Defines <skip> to be a new variable of type "skip".
-% With the |local| variant, the variable is only available within the
-% current group level (or below).
% \begin{texnote}
% "\skip_new:N" is the equivalent to plain \TeX{}'s \tn{newskip}.
% \end{texnote}
@@ -277,15 +273,11 @@
%
%
% \begin{function}{ \dim_new:N |
-% \dim_new:c |
-% \dim_new_local:N |
-% \dim_new_local:c }
+% \dim_new:c }
% \begin{syntax}
% "\dim_new:N" <dim>
% \end{syntax}
% Defines <dim> to be a new variable of type "dim".
-% With the |local| variant, the variable is only available within the
-% current group level (or below).
% \begin{texnote}
% "\dim_new:N" is the equivalent to plain \TeX{}'s \tn{newdimen}.
% \end{texnote}
@@ -480,14 +472,12 @@
%
% \section{Muskips}
%
-% \begin{function}{ \muskip_new:N |
-% \muskip_new_local:N }
+% \begin{function}{ \muskip_new:N }
% \begin{syntax}
% "\muskip_new:N" <muskip>
% \end{syntax}
+% \begin{texnote}
% Defines <muskip> to be a new variable of type "muskip".
-% With the |local| variant, the variable is only available within the
-% current group level (or below).% \begin{texnote}
% "\muskip_new:N" is the equivalent to plain \TeX{}'s \tn{newmuskip}.
% \end{texnote}
% \end{function}
@@ -559,7 +549,6 @@
% \subsection{Skip registers}
%
% \begin{macro}{\skip_new:N,\skip_new:c}
-% \begin{macro}{\skip_new_local:N,\skip_new_local:c}
% Allocation of a new internal registers.
% \begin{macrocode}
%<*initex>
@@ -570,19 +559,10 @@
\chk_if_free_cs:N #1
\newskip #1
}
-\cs_new_protected_nopar:Npn \skip_new_local:N #1 {
- \chk_if_free_cs:N #1
- \intexpr_compare:nNnTF
- \etex_currentgrouplevel:D = 0
- \newskip \locskip
- #1
-}
%</package>
\cs_generate_variant:Nn \skip_new:N {c}
-\cs_generate_variant:Nn \skip_new_local:N {c}
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
%
% \begin{macro}{\skip_set:Nn}
@@ -850,7 +830,6 @@
% \subsection{Dimen registers}
%
% \begin{macro}{\dim_new:N,\dim_new:c}
-% \begin{macro}{\dim_new_local:N,\dim_new_local:c}
% Allocating \meta{dim} registers...
% \begin{macrocode}
%<*initex>
@@ -861,19 +840,10 @@
\chk_if_free_cs:N #1
\newdimen #1
}
-\cs_new_protected_nopar:Npn \dim_new_local:N #1 {
- \chk_if_free_cs:N #1
- \intexpr_compare:nNnTF
- \etex_currentgrouplevel:D = 0
- \newdimen \locdimen
- #1
-}
%</package>
\cs_generate_variant:Nn \dim_new:N {c}
-\cs_generate_variant:Nn \dim_new_local:N {c}
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
% \begin{macro}{\dim_set:Nn}
% \begin{macro}{\dim_set:cn}
@@ -1070,7 +1040,6 @@
% \subsection{Muskips}
%
% \begin{macro}{\muskip_new:N}
-% \begin{macro}{\muskip_new_local:N}
% And then we add muskips.
% \begin{macrocode}
%<*initex>
@@ -1081,17 +1050,9 @@
\chk_if_free_cs:N #1
\newmuskip #1
}
-\cs_new_protected_nopar:Npn \muskip_new_local:N #1 {
- \chk_if_free_cs:N #1
- \intexpr_compare:nNnTF
- \etex_currentgrouplevel:D = 0
- \newmuskip \locmuskip
- #1
-}
%</package>
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
% \begin{macro}{\muskip_set:Nn}
% \begin{macro}{\muskip_gset:Nn}
diff --git a/Master/texmf-dist/source/latex/expl3/l3tl.dtx b/Master/texmf-dist/source/latex/expl3/l3tl.dtx
index 5c5bc8990be..24b80f731bb 100644
--- a/Master/texmf-dist/source/latex/expl3/l3tl.dtx
+++ b/Master/texmf-dist/source/latex/expl3/l3tl.dtx
@@ -36,7 +36,7 @@
\RequirePackage{l3names}
%</driver|package>
%\fi
-\GetIdInfo$Id: l3tl.dtx 1905 2010-05-19 07:45:31Z joseph $
+\GetIdInfo$Id: l3tl.dtx 1919 2010-05-22 05:56:38Z will $
{L3 Experimental Token Lists}
%\iffalse
%<*driver>
@@ -93,17 +93,6 @@
% The form "\tl_new:N" initializes the token list variable with an empty value.
% \end{function}
%
-% \begin{function}{\tl_new_local:N |
-% \tl_new_local:c |
-% \tl_new_local:Nn |
-% \tl_new_local:cn |
-% \tl_new_local:Nx }
-% \begin{syntax}
-% "\tl_new_local:Nn" <\tlvar> \Arg{initial token list}
-% \end{syntax}
-% Locally defines <\tlvar> to be a new variable to store a token list.
-% It will only exist while the current group is open.
-% \end{function}
%
% \begin{function}{\tl_const:Nn}
% \begin{syntax}
@@ -887,39 +876,6 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\tl_new_local:N}
-% \begin{macro}{\tl_new_local:c}
-% \begin{macro}{\tl_new_local:Nn}
-% \begin{macro}{\tl_new_local:cn}
-% \begin{macro}{\tl_new_local:Nx}
-% \begin{macrocode}
-\cs_new_protected:Npn \tl_new_local:Nn #1#2{
- \chk_if_free_cs:N #1
-% \end{macrocode}
-% If checking we don't allow constants to be defined.
-% \begin{macrocode}
-%<*check>
- \chk_var_or_const:N #1
-%</check>
-% \end{macrocode}
-% Otherwise any variable type is allowed.
-% \begin{macrocode}
- \cs_set_nopar:Npn #1{#2}
-}
-\cs_generate_variant:Nn \tl_new_local:Nn {cn}
-\cs_new_protected:Npn \tl_new_local:Nx #1#2{
- \chk_if_free_cs:N #1
-%<check> \chk_var_or_const:N #1
- \cs_set_nopar:Npx #1{#2}
-}
-\cs_new_protected_nopar:Npn \tl_new_local:N #1{\tl_new_local:Nn #1{}}
-\cs_new_protected_nopar:Npn \tl_new_local:c #1{\tl_new_local:cn {#1}{}}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
%
%
%\begin{macro}{\tl_const:Nn}
@@ -1038,7 +994,6 @@
%\end{macro}
%\end{macro}
%\end{macro}
-
%
% \begin{macro}{\tl_set_eq:NN}
% \begin{macro}{\tl_set_eq:Nc}
diff --git a/Master/texmf-dist/source/latex/expl3/l3toks.dtx b/Master/texmf-dist/source/latex/expl3/l3toks.dtx
index ef09b0132a8..5d89fbdfb27 100644
--- a/Master/texmf-dist/source/latex/expl3/l3toks.dtx
+++ b/Master/texmf-dist/source/latex/expl3/l3toks.dtx
@@ -36,7 +36,7 @@
\RequirePackage{l3names}
%</driver|package>
%\fi
-\GetIdInfo$Id: l3toks.dtx 1892 2010-04-11 08:59:45Z will $
+\GetIdInfo$Id: l3toks.dtx 1919 2010-05-22 05:56:38Z will $
{L3 Experimental Token Registers}
%\iffalse
%<*driver>
@@ -95,15 +95,11 @@
% \section{Allocation and use}
%
% \begin{function}{ \toks_new:N |
-% \toks_new:c |
-% \toks_new_local:N |
-% \toks_new_local:c }
+% \toks_new:c }
% \begin{syntax}
% "\toks_new:N" <toks>
% \end{syntax}
% Defines <toks> to be a new token list register.
-% With the |local| variant, the variable is only available within the
-% current group level (or below).
% \begin{texnote}
% This is the \LaTeX3 allocation for what was called \tn{newtoks} in
% plain \TeX.
@@ -352,7 +348,6 @@
% \subsection{Allocation and use}
%
% \begin{macro}{\toks_new:N,\toks_new:c}
-% \begin{macro}{\toks_new_local:N,\toks_new_local:c}
% Allocates a new token register.
% \begin{macrocode}
%<*initex>
@@ -366,22 +361,13 @@
\chk_if_free_cs:N #1
\newtoks #1
}
-\cs_new_protected_nopar:Npn \toks_new_local:N #1 {
- \chk_if_free_cs:N #1
- \intexpr_compare:nNnTF
- \etex_currentgrouplevel:D = 0
- \newtoks \loctoks
- #1
-}
%</package>
% \end{macrocode}
%
% \begin{macrocode}
\cs_generate_variant:Nn \toks_new:N {c}
-\cs_generate_variant:Nn \toks_new_local:N {c}
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
%
% \begin{macro}{\toks_use:N}
diff --git a/Master/texmf-dist/source/latex/expl3/source3.tex b/Master/texmf-dist/source/latex/expl3/source3.tex
deleted file mode 100644
index bb530ae9b02..00000000000
--- a/Master/texmf-dist/source/latex/expl3/source3.tex
+++ /dev/null
@@ -1,414 +0,0 @@
-% \iffalse
-%% File: source3.dtx Copyright (C) 1990-2009 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.
-%%
-%% -----------------------------------------------------------------------
-%% \fi
-
-% This document will typeset the LaTeX3 sources as a single document.
-% This will produce quite a large file (roughly ??? pages) and may
-% take a long time on a slow machine.
-
-\documentclass{l3doc}
-\listfiles
-
-\begin{document}
-
-\title{The \LaTeX3 Sources}
-\author{\Team}
-
-
-\pagenumbering{roman}
-\maketitle
-
-\begin{abstract}
-
-\parindent=0pt
-\parskip=\baselineskip
-
-\noindent This is the reference documentation for the \pkg{expl3}
-programming environment. The \pkg{expl3} modules set up an experimental
-naming scheme for \LaTeX\ commands, which allow the \LaTeX\ programmer
-to systematically name functions and variables, and specify the argument
-types of functions.
-
-The \TeX\ and \eTeX\ primitives are all given a new name according to
-these conventions. However, in the main direct use of the primitives is
-not required or encouraged: the \pkg{expl3} modules define an
-independent low-level \LaTeX3 programming language.
-
-At present, the \pkg{expl3} modules are designed to be loaded on top of
-\LaTeXe. In time, a \LaTeX3 format will be produced based on this code.
-This allows the code to be used in \LaTeXe\ packages \emph{now} while a
-stand-alone \LaTeX3 is developed.
-
-\begin{bfseries}
- While \pkg{expl3} is still experimental, the bundle is now regarded as
- broadly stable. The syntax conventions and functions provided are now
- ready for wider use. There may still be changes to some functions, but
- these will be minor when compared to the scope of \pkg{expl3}.
-
- New modules will be added to the distributed version of \pkg{expl3} as
- they reach maturity.
-\end{bfseries}
-
-\end{abstract}
-
-\clearpage
-
-{\def\\{:}% fix "newlines" in the ToC
-\tableofcontents}
-
-\clearpage
-\pagenumbering{arabic}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-% Each of the following \DocInput lines includes a file with extension
-% .dtx. Each of these files may be typeset separately. For instance
-% pdflatex l3box.dtx
-% will typeset the source of the LaTeX3 box commands. If you use the
-% Makefile, the index will be generated automatically; e.g.,
-% make doc F=l3box
-%
-% If this file is processed, each of these separate dtx files will be
-% contained as a part of a single document.
-
-\makeatletter
-\def\partname{Part}
-\def\maketitle{\part{\@title}}
-\let\thanks\@gobble
-\let\DelayPrintIndex\PrintIndex
-\let\PrintIndex\@empty
-\makeatother
-
-\part{Introduction to \pkg{expl3} and this document}
-
-This document is intended to act as a comprehensive reference manual
-for the \pkg{expl3} language. A general guide to the \LaTeX3
-programming language is found in \href{expl3.pdf}{expl3.pdf}.
-
-\section{Naming functions and variables}
-
-\LaTeX3 does not use \texttt{@} as a ``letter'' for defining
-internal macros. Instead, the symbols |_| and \texttt{:}
-are used in internal macro names to provide structure. The name of
-each \emph{function} is divided into logical units using \texttt{_},
-while \texttt{:} separates the \emph{name} of the function from the
-\emph{argument specifier} (``arg-spec''). This describes the arguments
-expected by the function. In most cases, each argument is represented
-by a single letter. The complete list of arg-spec letters for a function
-is referred to as the \emph{signature} of the function.
-
-Each function name starts with the \emph{module} to which it belongs.
-Thus apart from a small number of very basic functions, all \pkg{expl3}
-function names contain at least one underscore to divide the module
-name from the descriptive name of the function. For example, all
-functions concerned with comma lists are in module \texttt{clist} and
-begin \cs{clist_}.
-
-Every function must include an argument specifier. For functions which
-take no arguments, this will be blank and the function name will end
-\texttt{:}. Most functions take one or more arguments, and use the
-following argument specifiers:
-\begin{description}
- \item[\texttt{D}] The \texttt{D} specifier means \emph{do not use}.
- All of the \TeX\ primitives are initially \cs{let} to a \texttt{D}
- name, and some are then given a second name. Only the kernel
- team should use anything with a \texttt{D} specifier!
- \item[\texttt{N} and \texttt{n}] These mean \emph{no manipulation},
- of a single token for \texttt{N} and of a set of tokens given in
- braces for \texttt{n}. Both pass the argument though exactly as
- given. Usually, if you use a single token for an \texttt{n} argument,
- all will be well.
- \item[\texttt{c}] This means \emph{csname}, and indicates that the
- argument will be turned into a csname before being used. So
- So \cs{foo:c} |{ArgumentOne}| will act in the same way as \cs{foo:N}
- \cs{ArgumentOne}.
- \item[\texttt{V} and \texttt{v}] These mean \emph{value
- of variable}. The \texttt{V} and \texttt{v} specifiers are used to
- get the content of a variable without needing to worry about the
- underlying \TeX\ structure containing the data. A \texttt{V}
- argument will be a single token (similar to \texttt{N}), for example
- \cs{foo:V} \cs{MyVariable}; on the other hand, using \texttt{v} a
- csname is constructed first, and then the value is recovered, for
- example \cs{foo:v} |{MyVariable}|.
- \item[\texttt{o}] This means \emph{expansion once}. In general, the
- \texttt{V} and \texttt{v} specifiers are favoured over \texttt{o}
- for recovering stored information. However, \texttt{o} is useful
- for correctly processing information with delimited arguments.
- \item[\texttt{x}] The \texttt{x} specifier stands for \emph{exhaustive
- expansion}: the plain \TeX\ \cs{edef}.
- \item[\texttt{f}] The \texttt{f} specifier stands for \emph{full
- expansion}, and in contrast to \emph{x} stops at the first
- non-expandable item without trying to execute it.
- \item[\texttt{T} and \texttt{F}] For logic tests, there are the branch
- specifiers \texttt{T} (\emph{true}) and \texttt{F} (\emph{false}).
- Both specifiers treat the input in the same way as \texttt{n} (no
- change), but make the logic much easier to see.
- \item[\texttt{p}] The letter \texttt{p} indicates \TeX\
- \emph{parameters}. Normally this will be used for delimited
- functions as \pkg{expl3} provides better methods for creating simple
- sequential arguments.
- \item[\texttt{w}] Finally, there is the \texttt{w} specifier for
- \emph{weird} arguments. This covers everything else, but mainly
- applies to delimited values (where the argument must be terminated
- by some arbitrary string).
-\end{description}
-Notice that the argument specifier describes how the argument is
-processed prior to being passed to the underlying function. For example,
-\cs{foo:c} will take its argument, convert it to a control sequence and
-pass it to \cs{foo:N}.
-
-Variables are named in a similar manner to functions, but begin with
-a single letter to define the type of variable:
-\begin{description}
- \item[\texttt{c}] Constant: global parameters whose value should not
- be changed.
- \item[\texttt{g}] Parameters whose value should only be set globally.
- \item[\texttt{l}] Parameters whose value should only be set locally.
-\end{description}
-Each variable name is then build up in a similar way to that of a
-function, typically starting with the module\footnote{The module names are
- not used in case of generic scratch registers defined in the data
- type modules, e.g., the
- \texttt{int} module contains some scratch variables called \cs{l_tmpa_int},
- \cs{l_tmpb_int}, and so on. In such a case adding the module name up front
- to denote the module
- and in the back to indicate the type, as in
- \cs{l_int_tmpa_int} would be very unreadable.} name
-and then a descriptive part.
-Variables end with a short identifier to show the variable type:
-\begin{description}
- \item[\texttt{bool}] Either true or false.
- \item[\texttt{box}] Box register.
- \item[\texttt{clist}] Comma separated list.
- \item[\texttt{dim}] `Rigid' lengths.
- \item[\texttt{int}] Integer-valued count register.
- \item[\texttt{num}] A `fake' integer type using only macros. Useful for
- setting up allocation routines.
- \item[\texttt{prop}] Property list.
- \item[\texttt{skip}] `Rubber' lengths.
- \item[\texttt{seq}] `Sequence': a data-type used to implement lists
- (with access at both ends) and stacks.
- \item[\texttt{stream}] An input or output stream (for reading from or
- writing to, respectively).
- \item[\texttt{tl}] Token list variables: placeholder for a token list.
- \item[\texttt{toks}] Token register.
-\end{description}
-
-\subsubsection{Terminological inexactitude}
-
-A word of warning. In this document, and others referring to the \pkg{expl3}
-programming modules, we often refer to `variables' and `functions' as if
-they were actual constructs from a real programming language.
-In truth, \TeX\ is a macro processor, and functions are simply macros that
-may or mayn't take arguments and expand to their replacement text.
-Many of the common variables are \emph{also} macros, and if placed into the
-input stream will simply expand to their definition as well~--- a `function'
-with no arguments and a `token list variable' are in truth one and the same.
-On the other hand, some `variables' are actually registers that must be initialised and their values set and retreived with specific functions.
-
-The conventions of the \pkg{expl3} code are designed to clearly separate the
-ideas of `macros that contain data' and `macros that contain code', and a consistent wrapper is applied to all forms of `data' whether they be macros or actually registers.
-This means that sometimes we will use phrases like `the function returns a value', when actually we just mean `the macro expands to something'. Similarly, the term `execute' might be used in place of `expand' or it might refer to the more specific case of `processing in \TeX's stomach' (if you are familiar with the \TeX{}book parlance).
-
-If in doubt, please ask; chances are we've been hasty in writing certain definitions and need to be told to tighten up our terminology.
-
-\section{Documentation conventions}
-
-This document is typeset with the experimental \pkg{l3doc} class;
-several conventions are used to help describe the features of the code.
-A number of conventions are used here to make the documentation clearer.
-
-Each group of related functions is given in a box. For a function with
-a ``user'' name, this might read:
-\begin{function}{
- \ExplSyntaxOn |
- \ExplSyntaxOff
- }
- \begin{syntax}
- "\ExplSyntaxOn" \dots\ "\ExplSyntaxOff"
- \end{syntax}
- The textual description of how the function works would appear here. The
- syntax of the function is shown in mono-spaced text to the right of
- the box. In this example, the function takes no arguments and so the
- name of the function is simply reprinted.
-\end{function}
-
-For programming functions, which use \texttt{_} and \texttt{:} in their
-name there are a few additional conventions: If two related functions are given with identical names but
-different argument specifiers, these are termed \emph{variants} of each
-other, and the latter functions are printed in grey to show this more
-clearly. They will carry out the same function but will take different
-types of argument:
-\begin{function}{
- \seq_new:N |
- \seq_new:c
- }
- \begin{syntax}
- "\seq_new:N" <sequence>
- \end{syntax}
- When a number of variants are described, the arguments are usually
- illustrated only for the base function. Here, <sequence> indicates
- that \cs{seq_new:N} expects the name of a sequence. From the argument
- specifier, \cs{seq_new:c} also expects a sequence name, but as a
- name rather than as a control sequence. Each argument given in the
- illustration should be described in the following text.
-\end{function}
-
-Some functions are fully expandable, which allows it to be used within
-an \texttt{x}-type argument (in plain \TeX\ terms, inside an \cs{edef}).
-These fully expandable functions are indicated in the documentation by
-a star:
-\begin{function}{
- \cs_to_str:N / (EXP)
- }
- \begin{syntax}
- "\cs_to_str:N" <cs>
- \end{syntax}
- As with other functions, some text should follow which explains how
- the function works. Usually, only the star will indicate that the
- function is expandable. In this case, the function expects a <cs>,
- shorthand for a <control sequence>.
-\end{function}
-
-Conditional (\texttt{if}) functions are normally defined in three variants, with
-\texttt{T}, \texttt{F} and \texttt{TF} argument specifiers. This allows
-them to be used for different `true'/`false' branches, depending on
-which outcome the conditional is being used to test. To indicate this
-without repetition, this information is given in a shortened form:
-\begin{function}{
- \xetex_if_engine: / (TF) (EXP)
- }
- \begin{syntax}
- "\xetex_if_engine:TF" <true code> <false code>
- \end{syntax}
- The underlining and italic of \texttt{TF} indicates that
- \cs{xetex_if_engine:T}, \cs{xetex_if_engine:F} and
- \cs{xetex_if_engine:TF} are all available. Usually, the illustration
- will use the \texttt{TF} variant, and so both <true code>
- and <false code> will be shown. The two variant forms \texttt{T} and
- \texttt{F} take only <true code> and <false code>, respectively.
- Here, the star also shows that this function is expandable.
- With some minor exceptions, \emph{all} conditional functions in the
- \pkg{expl3} modules should be defined in this way.
-\end{function}
-
-Variables, constants and so on are described in a similar manner:
-\begin{variable}{
- \l_tmpa_tl
- }
- A short piece of text will describe the variable: there is no
- syntax illustration in this case.
-\end{variable}
-
-In some cases, the function is similar to one in \LaTeXe\ or plain \TeX.
-In these cases, the text will include an extra `\textbf{\TeX{}hackers
-note}' section:
-\begin{function}{
- \token_to_str:N / (EXP)
- }
- \begin{syntax}
- "\token_to_str:N" <token>
- \end{syntax}
- The normal description text.
- \begin{texnote}
- Detail for the experienced \TeX\ or \LaTeXe\ programmer. In this
- case, it would point out that this function is the \TeX\ primitive
- \cs{string}.
- \end{texnote}
-\end{function}
-
-\DisableImplementation
-
-\DocInput{l3names.dtx}
-
-\DocInput{l3basics.dtx}
-\DocInput{l3expan.dtx}
-\DocInput{l3prg.dtx}
-\DocInput{l3quark.dtx}
-\DocInput{l3token.dtx}
-
-\DocInput{l3int.dtx}
-\DocInput{l3intexpr.dtx}
-\DocInput{l3skip.dtx}
-
-\DocInput{l3tl.dtx}
-\DocInput{l3toks.dtx}
-\DocInput{l3seq.dtx}
-\DocInput{l3clist.dtx}
-\DocInput{l3prop.dtx}
-
-\DocInput{l3io.dtx}
-\DocInput{l3msg.dtx}
-\DocInput{l3box.dtx}
-\DocInput{l3xref.dtx}
-\DocInput{l3keyval.dtx}
-\DocInput{l3keys.dtx}
-\DocInput{l3calc.dtx}
-\DocInput{l3file.dtx}
-
-% \DocInput{l3precom.dtx}
-% \DocInput{l3alloc.dtx}
-% \DocInput{l3chk.dtx}
-
-\part{Implementation}
-\def\maketitle{}
-\EnableImplementation
-\DisableDocumentation
-\DocInputAgain
-
-%% \DocInput{l3vers.dtx} % Current version date
-
-\clearpage
-\pagestyle{headings}
-
-% Make TeX shut up.
-\hbadness=10000
-\newcount\hbadness
-\hfuzz=\maxdimen
-
-\PrintChanges
-\clearpage
-
-\begingroup
-\def\endash{--}
-\catcode`\-\active
-\def-{\futurelet\temp\indexdash}
-\def\indexdash{\ifx\temp-\endash\fi}
-
-\DelayPrintIndex
-\endgroup
-
-\end{document}
-
-