diff options
author | Karl Berry <karl@freefriends.org> | 2010-05-23 23:50:45 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2010-05-23 23:50:45 +0000 |
commit | ad61437dbc77ced3998eeb1fbc47f07382a9740b (patch) | |
tree | 43555571c2b6a10cae679df9a7e3677823a5bfa1 /Master/texmf-dist/source | |
parent | 64ba2a9dbcc524178aec8cecbb6947b449724990 (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')
-rw-r--r-- | Master/texmf-dist/source/latex/expl3/l3.ins | 118 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/expl3/l3basics.dtx | 607 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/expl3/l3box.dtx | 52 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/expl3/l3candidates.dtx | 4 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/expl3/l3format.ins | 81 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/expl3/l3int.dtx | 18 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/expl3/l3io.dtx | 4 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/expl3/l3num.dtx | 2 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/expl3/l3skip.dtx | 49 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/expl3/l3tl.dtx | 47 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/expl3/l3toks.dtx | 18 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/expl3/source3.tex | 414 |
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} - - |