summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2012-02-07 22:42:14 +0000
committerKarl Berry <karl@freefriends.org>2012-02-07 22:42:14 +0000
commit8b88d8570ac83e33a29938f8799ab728a94a6b70 (patch)
tree2389ca3bc088a4fe26c26bd2c0b01fa2d1b87600 /Master
parent7dd80542eb368ed18c1298c24250b409350a2059 (diff)
l3kernel 3331 (7feb12)
git-svn-id: svn://tug.org/texlive/trunk@25329 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/expl3.pdfbin645777 -> 645574 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/interface3.pdfbin1108064 -> 1105824 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/interface3.tex89
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdfbin265601 -> 265597 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex174
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdfbin200418 -> 200416 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex80
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/source3.pdfbin2738591 -> 2734140 bytes
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/source3.tex106
-rw-r--r--Master/texmf-dist/doc/latex/l3kernel/source3body.tex421
-rw-r--r--Master/texmf-dist/makeindex/l3kernel/l3doc.ist72
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/expl3.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3.ins71
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3basics.dtx199
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3format.ins77
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3fp.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3int.dtx8
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3msg.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3prg.dtx242
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3skip.dtx32
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3tl.dtx4
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3token.dtx4
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.sty4
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3basics.sty96
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3doc.cls2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3fp.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3int.sty4
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3msg.sty4
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3prg.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3skip.sty22
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3tl.sty4
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3token.sty2
32 files changed, 412 insertions, 1321 deletions
diff --git a/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf b/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
index c55f7095749..7b8da4440ff 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/expl3.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf b/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
index 56506b03746..ab840c4a3d3 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/interface3.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/interface3.tex b/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
deleted file mode 100644
index 4c0a2761e92..00000000000
--- a/Master/texmf-dist/doc/latex/l3kernel/interface3.tex
+++ /dev/null
@@ -1,89 +0,0 @@
-% \iffalse meta-comment
-%
-%% File: interfaces3.tex Copyright (C) 1990-2011 The 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 "l3kernel 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 LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-%
-% \fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% This document will typeset the LaTeX3 interface descriptions a single
-% document. This will produce quite a large file (more than 170 pages
-% currently).
-%
-% There is also a full version of the sources (source3.tex) which additionally
-% also typesets the command implementations.
-%
-% Do not forget to generate the index (as explained on the terminal output
-% near the end of the run)!
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-\documentclass{l3doc}
-\listfiles
-
-\begin{document}
-
-\title{The \LaTeX3 Interfaces}
-\author{%
- The \LaTeX3 Project\thanks
- {%
- E-mail:
- \href{mailto:latex-team@latex-project.org}
- {latex-team@latex-project.org}%
- }%
-}
-
-\pagenumbering{roman}
-\maketitle
-
-%
-% First load all modules and typeset the documentation parts
-%
-
-\input{source3body} % all the individual modules
-
-\clearpage
-
-\begingroup
- \def\endash{--}
- \catcode`\-\active
- \def-{\futurelet\temp\indexdash}
- \def\indexdash{\ifx\temp-\endash\fi}
- \DelayPrintIndex
-\endgroup
-
-\end{document}
-
-
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
index 203b3896df8..10cecf96683 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex b/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex
deleted file mode 100644
index c14d7d8eefd..00000000000
--- a/Master/texmf-dist/doc/latex/l3kernel/l3styleguide.tex
+++ /dev/null
@@ -1,174 +0,0 @@
-\iffalse meta-comment
-
-File l3styleguide.tex Copyright (C) 2011 The 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 "l3kernel 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.
-
-\fi
-
-\documentclass{l3doc}
-\usepackage{svn-multi}
-
-\svnid{$Id: l3styleguide.tex 2772 2011-09-07 15:07:41Z joseph $}
-\def\filedate{\svnfileyear/\svnfilemonth/\svnfileday}
-
-\title{%
- The \LaTeX3 kernel: style guide for code authors%
- \thanks
- {%
- This file describes v\svnfilerev,
- last revised \filedate.
- }%
-}
-\author{%
- The \LaTeX3 Project\thanks
- {%
- E-mail:
- \href{mailto:latex-team@latex-project.org}%
- {latex-team@latex-project.org}%
- }%
-}
-\date{Released \filedate}
-
-\begin{document}
-
-\maketitle
-
-\tableofcontents
-
-\section{Introduction}
-
-This document is intended as a style guide for authors of code and
-documentation for the \LaTeX3 kernel. It covers both aspects of coding
-style and the formatting of the sources. The aim of providing these
-guidelines is help ensure consistency of the code and sources from
-different authors. Experience suggests that in the long-term this helps
-with maintenance. There will of course be places where there are
-exceptions to these guidelines: common sense should always be
-applied!
-
-\section{Documentation style}
-
-\LaTeX3 source and documentation should be written using the document
-class \cls{l3doc} in \file{dtx} format. This class provides a number
-of logical mark up elements, which should be used where possible.
-In the main, this is standard \LaTeX{} practice, but there are a
-few points to highlight:
-\begin{itemize}
- \item
- Where possible, use \cs{cs} to mark up control sequences
- rather than using a verbatim environment.
- \item
- Arguments which are given in braces should be marked using
- \cs{Arg} when code-level functions are discussed, but using
- \cs{marg} for document functions.
- \item
- The names \TeX{}, \LaTeX{}, \emph{etc}.\ use the normal logical mark
- up followed by an empty group (|{}|), with the exception of |\LaTeX3|,
- where the number should follow directly.
- \item
- Where in line verbatim text is used, it should be marked up
- using the \verb=|...|= construct (\emph{i.e.}~vertical bars delimit
- the verbatim text).
- \item In line quotes should be marked up using the \cs{enquote}
- function.
- \item
- Where numbers in the source have a mathematical meaning,
- they should be included in math mode. Such in-line math mode
- material should be marked up using |$...$| and \emph{not}
- |\(...\)|.
-\end{itemize}
-
-Line length in the source files should to be under $80$
-characters where possible, as this helps keep everything on the screen
-when editing files. In the \file{dtx} format, documentation lines start
-with a \texttt{\%}, which is usually followed by a space to leave a
-\enquote{comment margin} at the start of each line.
-
-As with code indenting (see later), nested environments and arguments
-should be indented by (at least) two spaces to make the nature of the nesting
-clear. Thus for example a typical arrangement for the \env{function}
-environment might be
-\begin{verbatim*}
-\begin{function}{\seq_gclear:N, \seq_gclear:c}
- \begin{syntax}
- \cs{seq_gclear:N} \meta{sequence}
- \end{syntax}
- Clears all entries from the \meta{sequence} globally.
-\end{function}
-\end{verbatim*}
-The \enquote{outer} \verb*|% \begin{function}| should have the customary
-space after the |%| character at the start of the line.
-
-In general, a single \env{function} or \env{macro} environment should be
-used for a group of closely-related functions, for example argument
-specification variants. In such cases, a comma-separated list should be
-used, as shown in the preceding example.
-
-\section{Format of the code itself}
-
-The requirement for less than $80$ characters per line applies to the code
-itself as well as the surrounding documentation. A number of the general
-style principals for \LaTeX3 code apply: these are described in the following
-paragraph and an example is then given.
-
-With the exception of simple runs of parameter (|{#1}|, |#1#2|,
-\emph{etc.}), everything should divided up using spaces to make the code
-more readable. In general, these will be single spaces, but in some
-places it makes more sense to align parts of the code to emphasise
-similarity. (Tabs should not be used for introducing white space.)
-
-Each conceptually-separate step in a function should be on a separate
-line, to make the meaning clearer. Hence the \texttt{false} branch
-in the example uses two lines for the two auxiliary function uses.
-
-Within the definition, a two-space indent should be used to show each
-\enquote{level} of code. Thus in the example \cs{tl_if_empty:nTF} is
-indented by two spaces, but the two branches are indented by four
-spaces. Within the \texttt{false} branch, the need for multiple lines
-means that an additional two-space indent should be used to show that
-these lines are all part of the brace group.
-
-The result of these lay-out conventions is code which will in general
-look like the example:
-\begin{verbatim*}
-\cs_new:Npn \module_foo:nn #1#2
- {
- \tl_if_empty:nTF {#1}
- { \module_foo_aux:n { X #2 } }
- {
- \module_foo_aux:nn {#1} {#2}
- \module_foo_aux:n {#1#2}
- }
- }
-\end{verbatim*}
-
-\section{Code conventions}
-
-When using \cs{cs_generate_variant:Nn}, group related variants together
-to make the pattern clearer. A common example is variants of a function
-which has an \texttt{N}-type first argument:
-\begin{verbatim*}
-\cs_generate_variant:Nn \foo:Nn { NV , No }
-\cs_generate_variant:Nn \foo:Nn { c , cV , co }
-\end{verbatim*}
-
-There are cases where omitting braces from \texttt{o}-type arguments
-is desirable for performance reasons. This should only be done if the
-argument is a single token, thus for example
-\begin{verbatim}
-\tl_set:No \l_some_tl \l_some_other_tl
-\end{verbatim}
-remains clear and can be used where appropriate.
-
-\end{document}
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf
index d19a6e07d19..f8eec0523b8 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex b/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex
deleted file mode 100644
index 31b07550060..00000000000
--- a/Master/texmf-dist/doc/latex/l3kernel/l3syntax-changes.tex
+++ /dev/null
@@ -1,80 +0,0 @@
-\iffalse meta-comment
-
-File l3syntax-changes.tex Copyright (C) 2011 The 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 "l3kernel 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.
-
-\fi
-
-\documentclass{l3doc}
-
-\usepackage{svn-multi}
-
-\svnid{$Id: l3syntax-changes.tex 2772 2011-09-07 15:07:41Z joseph $}
-\def\filedate{\svnfileyear/\svnfilemonth/\svnfileday}
-
-\title{%
- Syntax changes in \LaTeX3 functions
- \thanks
- {%
- This file describes v\svnfilerev,
- last revised \filedate.
- }%
-}
-\author{%
- The \LaTeX3 Project\thanks
- {%
- E-mail:
- \href{mailto:latex-team@latex-project.org}%
- {latex-team@latex-project.org}%
- }%
-}
-\date{Released \filedate}
-
-\newcommand{\TF}{\textit{(TF)}}
-
-\begin{document}
-
-\maketitle
-
-This file lists functions whose syntax has changed after August 2011,
-with an approximate date.
-
-\section{August 2011}
-
-\begin{itemize}
- \item \cs{tl_if_single:n\TF} recognized any non-zero number of
- explicit spaces as \meta{true}, and did not ignore trailing spaces.
- Now it is \meta{true} for
- \[
- \meta{optional spaces}
- \meta{normal token or brace group}
- \meta{optional spaces}.
- \]
- \item \cs{tl_reverse:n} stripped outer braces and lost unprotected spaces.
- Now it keeps spaces, leaves unbraced single tokens unbraced, and
- braced groups braced.
- \item \cs{tl_trim_spaces:n} only removed one leading and trailing space.
- Now removes recursively. Also, on the left it used to strip implicit
- and explicit spaces with any character code. Now it strips only explicit
- space characters $(32,10)$.
-\end{itemize}
-
-\section{September 2011}
-
-\begin{itemize}
-\item clist functions which receive an \texttt{n}-type comma list argument
- now trim spaces from each item in the argument.
-\end{itemize}
-
-\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/l3kernel/source3.pdf b/Master/texmf-dist/doc/latex/l3kernel/source3.pdf
index 156c4baaf35..f4cbf6eaa9c 100644
--- a/Master/texmf-dist/doc/latex/l3kernel/source3.pdf
+++ b/Master/texmf-dist/doc/latex/l3kernel/source3.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/l3kernel/source3.tex b/Master/texmf-dist/doc/latex/l3kernel/source3.tex
deleted file mode 100644
index e8b76f8701e..00000000000
--- a/Master/texmf-dist/doc/latex/l3kernel/source3.tex
+++ /dev/null
@@ -1,106 +0,0 @@
-% \iffalse meta-comment
-%
-%% File: source3.tex Copyright (C) 1990-2011 The 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 "l3kernel 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 LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-%
-% \fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% This document will typeset the LaTeX3 sources as a single document.
-% This will produce quite a large file (more than 400 pages).
-%
-% There is also a shorter version (interface3.tex) that only typesets the
-% command % interface descriptions.
-%
-% Do not forget to generate the index (as explained on the terminal output
-% near the end of the run)!
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\documentclass{l3doc}
-\listfiles
-
-\begin{document}
-
-\title{The \LaTeX3 Sources}
-\author{%
- The \LaTeX3 Project\thanks
- {%
- E-mail:
- \href{mailto:latex-team@latex-project.org}
- {latex-team@latex-project.org}%
- }%
-}
-
-\pagenumbering{roman}
-\maketitle
-
-%
-% First load all modules and typeset the documentation parts
-%
-
-\input{source3body} % all the individual modules
-
-%
-% Now reload all modules and typeset the implementation parts
-%
-
-\part{Implementation}
-
-\def\maketitle{}
-\EnableImplementation
-\DisableDocumentation
-\DocInputAgain
-
-\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} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/l3kernel/source3body.tex b/Master/texmf-dist/doc/latex/l3kernel/source3body.tex
deleted file mode 100644
index 119886c86cb..00000000000
--- a/Master/texmf-dist/doc/latex/l3kernel/source3body.tex
+++ /dev/null
@@ -1,421 +0,0 @@
-% \iffalse meta-comment
-%
-%% File: source3body.tex Copyright (C) 1990-2011 The 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 "l3kernel 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 LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-%
-% \fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%
-% This file is used by
-%
-% source3.tex % documentation including implementation
-%
-% interface3.tex % only interface documentation
-%
-%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-\begin{abstract}
-
-\setlength\parindent{0pt}
-\setlength\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{\clearpage\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 \enquote{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} (\enquote{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 through 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}: every token in the argument is fully expanded until only
- unexpandable ones remain. The \TeX{} \tn{edef} primitive carries out
- this type of expansion. Functions which feature an \texttt{x}-type
- argument are in general \emph{not} expandable, unless specifically
- noted.
- \item[\texttt{f}] The \texttt{f} specifier stands for \emph{full
- expansion}, and in contrast to \texttt{x} stops at the first
- non-expandable item (reading the argument from left to right) without
- trying to expand it. For example, when setting a token list
- variable (a macro used for storage), the sequence
- \begin{verbatim}
- \tl_set:Nn \l_mya_tl { A }
- \tl_set:Nn \l_myb_tl { B }
- \tl_set:Nf \l_mya_tl { \l_mya_tl \l_myb_tl }
- \end{verbatim}
- will leave |\l_mya_tl| with the content |A\l_myb_tl|, as |A| cannot
- be expanded and so terminates expansion before |\l_myb_tl| is considered.
- \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{coffin}] a \enquote{box with handles} --- a higher-level data
- type for carrying out |box| alignment operations.
- \item[\texttt{dim}] \enquote{Rigid} lengths.
- \item[\texttt{fp}] floating-point values;
- \item[\texttt{int}] Integer-valued count register.
- \item[\texttt{prop}] Property list.
- \item[\texttt{seq}] \enquote{Sequence}: a data-type used to implement lists
- (with access at both ends) and stacks.
- \item[\texttt{skip}] \enquote{Rubber} lengths.
- \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.
-\end{description}
-
-\subsection{Terminological inexactitude}
-
-A word of warning. In this document, and others referring to the \pkg{expl3}
-programming modules, we often refer to \enquote{variables} and
-\enquote{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 may not 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 \enquote{function} with no arguments and a
-\enquote{token list variable} are in truth one and the same. On the other
-hand, some \enquote{variables} are actually registers that must be
-initialised and their values set and retrieved with specific functions.
-
-The conventions of the \pkg{expl3} code are designed to clearly separate the
-ideas of \enquote{macros that contain data} and
-\enquote{macros that contain code}, and a
-consistent wrapper is applied to all forms of \enquote{data} whether they be
-macros or
-actually registers. This means that sometimes we will use phrases like
-\enquote{the function returns a value}, when actually we just mean
-\enquote{the macro expands to something}. Similarly, the term
-\enquote{execute} might be used in place of \enquote{expand}
-or it might refer to the more specific case of
-\enquote{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 \enquote{user} name, this might read:
-\begin{function}{\ExplSyntaxOn, \ExplSyntaxOff}
- \begin{syntax}
- \cs{ExplSyntaxOn} \dots{} \cs{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}
- \cs{seq_new:N} \meta{sequence}
- \end{syntax}
- When a number of variants are described, the arguments are usually
- illustrated only for the base function. Here, \meta{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}
-
-\paragraph{Fully expandable functions}
-\hypertarget{expstar}{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}),
-as well as within an \texttt{f}-type argument.
-These fully expandable functions are indicated in the documentation by
-a star:
-\begin{function}[EXP]{\cs_to_str:N}
- \begin{syntax}
- \cs{cs_to_str:N} \meta{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 \meta{cs},
- shorthand for a \meta{control sequence}.
-\end{function}
-
-\paragraph{Restricted expandable functions}
-\hypertarget{rexpstar}{A few functions are fully expandable} but cannot be fully expanded within
-an \texttt{f}-type argument. In this case a hollow star is used to indicate
-this:
-\begin{function}[rEXP]{\seq_map_function:NN}
- \begin{syntax}
- \cs{seq_map_function:NN} \meta{seq} \meta{function}
- \end{syntax}
-\end{function}
-
-\paragraph{Conditional functions}
-\hypertarget{explTF}{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 \enquote{true}/\enquote{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}[EXP,TF]{\xetex_if_engine:}
- \begin{syntax}
- \cs{xetex_if_engine:TF} \Arg{true code} \Arg{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 \meta{true code}
- and \meta{false code} will be shown. The two variant forms \texttt{T} and
- \texttt{F} take only \meta{true code} and \meta{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 \enquote{\textbf{\TeX{}hackers
-note}} section:
-\begin{function}[EXP]{\token_to_str:N}
- \begin{syntax}
- \cs{token_to_str:N} \meta{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}
-
-\section{Formal language conventions which apply generally}
-
-As this is a formal reference guide for \LaTeX3 programming, the descriptions
-of functions are intended to be reasonably \enquote{complete}. However, there
-is also a need to avoid repetition. Formal ideas which apply to general
-classes of function are therefore summarised here.
-
-For tests which have a \texttt{TF} argument specification, the test if
-evaluated to give a logically \texttt{TRUE} or \texttt{FALSE} result.
-Depending on this result, either the \meta{true code} or the \meta{false code}
-will be left in the input stream. In the case where the test is expandable,
-and a predicate (|_p|) variant is available, the logical value determined by
-the test is left in the input stream: this will typically be part of a larger
-logical construct.
-
-\DisableImplementation
-
-\DocInput{l3bootstrap.dtx}
-\DocInput{l3names.dtx}
-\DocInput{l3basics.dtx}
-\DocInput{l3expan.dtx}
-\DocInput{l3prg.dtx}
-\DocInput{l3quark.dtx}
-\DocInput{l3token.dtx}
-\DocInput{l3int.dtx}
-\DocInput{l3skip.dtx}
-\DocInput{l3tl.dtx}
-\DocInput{l3seq.dtx}
-\DocInput{l3clist.dtx}
-\DocInput{l3prop.dtx}
-\DocInput{l3box.dtx}
-\DocInput{l3coffins.dtx}
-\DocInput{l3color.dtx}
-\DocInput{l3io.dtx}
-\DocInput{l3msg.dtx}
-\DocInput{l3keys.dtx}
-\DocInput{l3file.dtx}
-\DocInput{l3fp.dtx}
-\DocInput{l3luatex.dtx}
-
-\endinput
diff --git a/Master/texmf-dist/makeindex/l3kernel/l3doc.ist b/Master/texmf-dist/makeindex/l3kernel/l3doc.ist
deleted file mode 100644
index 464dc931e12..00000000000
--- a/Master/texmf-dist/makeindex/l3kernel/l3doc.ist
+++ /dev/null
@@ -1,72 +0,0 @@
-%%
-%% This is file `l3doc.ist',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% l3doc.dtx (with options: `docist')
-%%
-%%
-%% EXPERIMENTAL CODE
-%%
-%% Do not distribute this file without also distributing the
-%% source files specified above.
-%%
-%% Do not distribute a modified version of this file.
-%%
-%%
-%% File: l3doc.dtx Copyright (C) 1990-2011 The 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 "l3kernel 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 LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-actual '='
-quote '!'
-level '#'
-preamble
-"\n \\begin{theindex} \n \\makeatletter\\scan@allowedfalse\n"
-postamble
-"\n\n \\end{theindex}\n"
-item_x1 "\\efill \n \\subitem "
-item_x2 "\\efill \n \\subsubitem "
-delim_0 "\\pfill "
-delim_1 "\\pfill "
-delim_2 "\\pfill "
-lethead_prefix "{\\bfseries\\hfil "
-lethead_suffix "\\hfil}\\nopagebreak\n"
-lethead_flag 1
-heading_prefix "{\\bfseries\\hfil "
-heading_suffix "\\hfil}\\nopagebreak\n"
-headings_flag 1
-
-page_precedence "rnaA"
-%%
-%%
-%% End of file `l3doc.ist'.
diff --git a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
index c8f4fedeb38..dbd073eaa21 100644
--- a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx
@@ -48,8 +48,8 @@
%<package> }
\def\ExplFileName{expl3}
\def\ExplFileDescription{L3 Experimental code bundle wrapper}
-\def\ExplFileDate{2012/01/31}
-\def\ExplFileVersion{3287}
+\def\ExplFileDate{2012/02/07}
+\def\ExplFileVersion{3331}
%</driver|package>
%<*driver>
\documentclass[full]{l3doc}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3.ins b/Master/texmf-dist/source/latex/l3kernel/l3.ins
new file mode 100644
index 00000000000..b4048d009e5
--- /dev/null
+++ b/Master/texmf-dist/source/latex/l3kernel/l3.ins
@@ -0,0 +1,71 @@
+\iffalse meta-comment
+
+File l3.ins Copyright (C) 2011 The 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 "l3kernel 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.
+
+\fi
+
+\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
+
+% ===== PACKAGE ONLY ======
+\generate{\file{expl3.sty} {\from{expl3.dtx} {package}}}
+% ========================
+\generate{\file{l3bootstrap.sty}{\from{l3bootstrap.dtx}{package}}}
+\generate{\file{l3names.sty} {\from{l3names.dtx} {package}}}
+\generate{\file{l3basics.sty} {\from{l3basics.dtx} {package}}}
+\generate{\file{l3expan.sty} {\from{l3expan.dtx} {package}}}
+\generate{\file{l3tl.sty} {\from{l3tl.dtx} {package}}}
+\generate{\file{l3seq.sty} {\from{l3seq.dtx} {package}}}
+\generate{\file{l3int.sty} {\from{l3int.dtx} {package}}}
+\generate{\file{l3quark.sty} {\from{l3quark.dtx} {package}}}
+\generate{\file{l3prg.sty} {\from{l3prg.dtx} {package}}}
+\generate{\file{l3clist.sty} {\from{l3clist.dtx} {package}}}
+\generate{\file{l3token.sty} {\from{l3token.dtx} {package}}}
+\generate{\file{l3prop.sty} {\from{l3prop.dtx} {package}}}
+\generate{\file{l3msg.sty} {\from{l3msg.dtx} {package}}}
+\generate{\file{l3io.sty} {\from{l3io.dtx} {package}}}
+\generate{\file{l3file.sty} {\from{l3file.dtx} {package}}}
+\generate{\file{l3skip.sty} {\from{l3skip.dtx} {package}}}
+\generate{\file{l3keys.sty} {\from{l3keys.dtx} {package}}}
+\generate{\file{l3fp.sty} {\from{l3fp.dtx} {package}}}
+\generate{\file{l3box.sty} {\from{l3box.dtx} {package}}}
+\generate{\file{l3coffins.sty} {\from{l3coffins.dtx} {package}}}
+\generate{\file{l3color.sty} {\from{l3color.dtx} {package}}}
+\generate{\file{l3luatex.sty} {\from{l3luatex.dtx} {package}}}
+
+\generate{\file{l3doc.cls} {\from{l3doc.dtx} {class}}}
+\generate{\file{l3doc.ist} {\from{l3doc.dtx} {docist}}}
+
+\generate{\file{l3dvips.def} {\from{l3drivers.dtx}{package,dvips} }}
+\generate{\file{l3pdfmode.def} {\from{l3drivers.dtx}{package,pdfmode} }}
+\generate{\file{l3xdvipdfmx.def}{\from{l3drivers.dtx}{package,xdvipdfmx}}}
+
+\endbatchfile
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
index 9a2b94c4a3e..d16781461b0 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
@@ -35,7 +35,7 @@
%
%<*driver|package>
\RequirePackage{l3names}
-\GetIdInfo$Id: l3basics.dtx 3196 2012-01-15 09:44:05Z joseph $
+\GetIdInfo$Id: l3basics.dtx 3317 2012-02-06 12:26:40Z bruno $
{L3 Experimental basic definitions}
%</driver|package>
%<*driver>
@@ -253,7 +253,7 @@
% Sets \meta{function} to expand to \meta{code} as replacement text.
% Within the \meta{code}, the \meta{parameters} (|#1|, |#2|,
% \emph{etc.}) will be replaced by those absorbed by the function.
-% The assignment of a meaning to \meta{function} is restricted to
+% The assignment of a meaning to the \meta{function} is restricted to
% the current \TeX{} group level.
% \end{function}
%
@@ -270,7 +270,7 @@
% \emph{etc.}) will be replaced by those absorbed by the function.
% When the \meta{function} is used the \meta{parameters} absorbed
% cannot contain \cs{par} tokens. The assignment of a meaning
-% to \meta{function} is restricted to the current \TeX{} group
+% to the \meta{function} is restricted to the current \TeX{} group
% level.
% \end{function}
%
@@ -285,7 +285,7 @@
% Sets \meta{function} to expand to \meta{code} as replacement text.
% Within the \meta{code}, the \meta{parameters} (|#1|, |#2|,
% \emph{etc.}) will be replaced by those absorbed by the function.
-% The assignment of a meaning to \meta{function} is restricted to
+% The assignment of a meaning to the \meta{function} is restricted to
% the current \TeX{} group level. The \meta{function} will
% not expand within an \texttt{x}-type argument.
% \end{function}
@@ -303,7 +303,7 @@
% \emph{etc.}) will be replaced by those absorbed by the function.
% When the \meta{function} is used the \meta{parameters} absorbed
% cannot contain \cs{par} tokens. The assignment of a meaning
-% to \meta{function} is restricted to the current \TeX{} group
+% to the \meta{function} is restricted to the current \TeX{} group
% level. The \meta{function} will not expand within an
% \texttt{x}-type argument.
% \end{function}
@@ -315,7 +315,7 @@
% Globally sets \meta{function} to expand to \meta{code} as replacement
% text. Within the \meta{code}, the \meta{parameters} (|#1|, |#2|,
% \emph{etc.}) will be replaced by those absorbed by the function.
-% The assignment of a meaning to \meta{function} is \emph{not}
+% The assignment of a meaning to the \meta{function} is \emph{not}
% restricted to the current \TeX{} group level: the assignment is
% global.
% \end{function}
@@ -332,7 +332,7 @@
% text. Within the \meta{code}, the \meta{parameters} (|#1|, |#2|,
% \emph{etc.}) will be replaced by those absorbed by the function.
% When the \meta{function} is used the \meta{parameters} absorbed
-% cannot contain \cs{par} tokens. The assignment of a meaning to
+% cannot contain \cs{par} tokens. The assignment of a meaning to the
% \meta{function} is \emph{not} restricted to the current \TeX{}
% group level: the assignment is global.
% \end{function}
@@ -348,7 +348,7 @@
% Globally sets \meta{function} to expand to \meta{code} as replacement
% text. Within the \meta{code}, the \meta{parameters} (|#1|, |#2|,
% \emph{etc.}) will be replaced by those absorbed by the function.
-% The assignment of a meaning to \meta{function} is \emph{not}
+% The assignment of a meaning to the \meta{function} is \emph{not}
% restricted to the current \TeX{} group level: the assignment is
% global. The \meta{function} will not expand within an
% \texttt{x}-type argument.
@@ -366,7 +366,7 @@
% text. Within the \meta{code}, the \meta{parameters} (|#1|, |#2|,
% \emph{etc.}) will be replaced by those absorbed by the function.
% When the \meta{function} is used the \meta{parameters} absorbed
-% cannot contain \cs{par} tokens. The assignment of a meaning to
+% cannot contain \cs{par} tokens. The assignment of a meaning to the
% \meta{function} is \emph{not} restricted to the current \TeX{}
% group level: the assignment is global. The \meta{function} will
% not expand within an \texttt{x}-type argument.
@@ -455,7 +455,7 @@
% automatically from the function signature. These \meta{parameters}
% (|#1|, |#2|, \emph{etc.}) will be replaced by those absorbed by the
% function.
-% The assignment of a meaning to \meta{function} is restricted to
+% The assignment of a meaning to the \meta{function} is restricted to
% the current \TeX{} group level.
% \end{function}
%
@@ -473,7 +473,7 @@
% (|#1|, |#2|, \emph{etc.}) will be replaced by those absorbed by the
% function. When the \meta{function} is used the \meta{parameters}
% absorbed cannot contain \cs{par} tokens.
-% The assignment of a meaning to \meta{function} is restricted to
+% The assignment of a meaning to the \meta{function} is restricted to
% the current \TeX{} group level.
% \end{function}
%
@@ -491,7 +491,7 @@
% (|#1|, |#2|, \emph{etc.}) will be replaced by those absorbed by the
% function. The \meta{function} will not expand within an \texttt{x}-type
% argument.
-% The assignment of a meaning to \meta{function} is restricted to
+% The assignment of a meaning to the \meta{function} is restricted to
% the current \TeX{} group level.
% \end{function}
%
@@ -510,7 +510,7 @@
% function. When the \meta{function} is used the \meta{parameters}
% absorbed cannot contain \cs{par} tokens. The \meta{function} will not
% expand within an \texttt{x}-type argument.
-% The assignment of a meaning to \meta{function} is restricted to
+% The assignment of a meaning to the \meta{function} is restricted to
% the current \TeX{} group level.
% \end{function}
%
@@ -527,7 +527,7 @@
% automatically from the function signature. These \meta{parameters}
% (|#1|, |#2|, \emph{etc.}) will be replaced by those absorbed by the
% function.
-% The assignment of a meaning to \meta{function} is global.
+% The assignment of a meaning to the \meta{function} is global.
% \end{function}
%
% \begin{function}
@@ -544,7 +544,7 @@
% (|#1|, |#2|, \emph{etc.}) will be replaced by those absorbed by the
% function. When the \meta{function} is used the \meta{parameters}
% absorbed cannot contain \cs{par} tokens.
-% The assignment of a meaning to \meta{function} is global.
+% The assignment of a meaning to the \meta{function} is global.
% \end{function}
%
% \begin{function}
@@ -561,7 +561,7 @@
% (|#1|, |#2|, \emph{etc.}) will be replaced by those absorbed by the
% function. The \meta{function} will not expand within an \texttt{x}-type
% argument.
-% The assignment of a meaning to \meta{function} is global.
+% The assignment of a meaning to the \meta{function} is global.
% \end{function}
%
% \begin{function}
@@ -579,7 +579,7 @@
% function. When the \meta{function} is used the \meta{parameters}
% absorbed cannot contain \cs{par} tokens. The \meta{function} will not
% expand within an \texttt{x}-type argument.
-% The assignment of a meaning to \meta{function} is global.
+% The assignment of a meaning to the \meta{function} is global.
% \end{function}
%
% \begin{function}[updated = 2012-01-14]
@@ -632,7 +632,7 @@
% \meta{control sequence 2} (or <token>).
% The second control sequence may subsequently be
% altered without affecting the copy. The assignment of a meaning
-% to \meta{control sequence 1} is restricted to the current
+% to the \meta{control sequence 1} is restricted to the current
% \TeX{} group level.
% \end{function}
%
@@ -646,7 +646,7 @@
% \meta{control sequence 2} (or <token>).
% The second control sequence may subsequently be
% altered without affecting the copy. The assignment of a meaning to
-% \meta{control sequence 1} is \emph{not} restricted to the current
+% the \meta{control sequence 1} is \emph{not} restricted to the current
% \TeX{} group level: the assignment is global.
% \end{function}
%
@@ -1768,92 +1768,78 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}{\prg_set_conditional:Npnn,\prg_new_conditional:Npnn,
-% \prg_set_protected_conditional:Npnn,\prg_new_protected_conditional:Npnn}
+% \begin{macro}
+% {
+% \prg_set_conditional:Npnn ,
+% \prg_new_conditional:Npnn ,
+% \prg_set_protected_conditional:Npnn ,
+% \prg_new_protected_conditional:Npnn ,
+% }
+% \begin{macro}[aux]{\prg_generate_conditional_parm_aux:NNpnn}
% The user functions for the types using parameter text from the
-% programmer. Call aux function to grab parameters, split the base
-% function into name and signature and then use, \emph{e.g.}, |\cs_set:Npn|
-% to define it with.
-% \begin{macrocode}
-\cs_set_protected:Npn \prg_set_conditional:Npnn #1
- {
- \prg_get_parm_aux:nw
- {
- \cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn
- \cs_set:Npn { parm }
- }
- }
-\cs_set_protected:Npn \prg_new_conditional:Npnn #1
- {
- \prg_get_parm_aux:nw
- {
- \cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn
- \cs_new:Npn { parm }
- }
- }
-\cs_set_protected:Npn \prg_set_protected_conditional:Npnn #1
- {
- \prg_get_parm_aux:nw{
- \cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn
- \cs_set_protected:Npn { parm }
- }
- }
-\cs_set_protected:Npn \prg_new_protected_conditional:Npnn #1
+% programmer. The various functions only differ by which function is
+% used for the assignment. For those |Npnn| type functions, we must
+% grab the parameter text, reading everything up to a left brace
+% before continuing. Then split the base function into name and
+% signature, and feed \Arg{name} \Arg{signature} \meta{boolean}
+% \meta{defining~function} |{parm}| \Arg{parameters} |{TF,...}|
+% \Arg{code} to the auxiliary function responsible for defining all
+% conditionals.
+% \begin{macrocode}
+\cs_set_protected_nopar:Npn \prg_set_conditional:Npnn
+ { \prg_generate_conditional_parm_aux:NNpnn \cs_set:Npn }
+\cs_set_protected_nopar:Npn \prg_new_conditional:Npnn
+ { \prg_generate_conditional_parm_aux:NNpnn \cs_new:Npn }
+\cs_set_protected_nopar:Npn \prg_set_protected_conditional:Npnn
+ { \prg_generate_conditional_parm_aux:NNpnn \cs_set_protected:Npn }
+\cs_set_protected_nopar:Npn \prg_new_protected_conditional:Npnn
+ { \prg_generate_conditional_parm_aux:NNpnn \cs_new_protected:Npn }
+\cs_set_protected:Npn \prg_generate_conditional_parm_aux:NNpnn #1#2#3#
{
- \prg_get_parm_aux:nw
- {
- \cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn
- \cs_new_protected:Npn { parm }
- }
+ \cs_split_function:NN #2 \prg_generate_conditional_aux:nnNNnnnn
+ #1 { parm } {#3}
}
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
-% \begin{macro}{\prg_set_conditional:Nnn,\prg_new_conditional:Nnn,
-% \prg_set_protected_conditional:Nnn,\prg_new_protected_conditional:Nnn}
-% The user functions for the types automatically inserting the
-% correct parameter text based on the signature. Call aux function
-% after calculating number of arguments, split the base function
-% into name and signature and then use, \emph{e.g.}, |\cs_set:Npn| to
-% define it with.
-% \begin{macrocode}
-\cs_set_protected:Npn \prg_set_conditional:Nnn #1
- {
- \exp_args:Nnf \prg_get_count_aux:nn
- {
- \cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn
- \cs_set:Npn { count }
- }
- { \cs_get_arg_count_from_signature:N #1 }
- }
-\cs_set_protected:Npn \prg_new_conditional:Nnn #1
- {
- \exp_args:Nnf \prg_get_count_aux:nn
- {
- \cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn
- \cs_new:Npn { count}
- }
- { \cs_get_arg_count_from_signature:N #1 }
- }
-
-\cs_set_protected:Npn \prg_set_protected_conditional:Nnn #1{
- \exp_args:Nnf \prg_get_count_aux:nn{
- \cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn
- \cs_set_protected:Npn {count}
- }{\cs_get_arg_count_from_signature:N #1}
-}
-
-\cs_set_protected:Npn \prg_new_protected_conditional:Nnn #1
+% \begin{macro}
+% {
+% \prg_set_conditional:Nnn ,
+% \prg_new_conditional:Nnn ,
+% \prg_set_protected_conditional:Nnn ,
+% \prg_new_protected_conditional:Nnn ,
+% }
+% \begin{macro}[aux]{\prg_generate_conditional_count_aux:NNnn}
+% The user functions for the types automatically inserting the correct
+% parameter text based on the signature. The various functions only
+% differ by which function is used for the assignment. For those |Nnn|
+% type functions, we calculate the number of arguments. Then split the
+% base function into name and signature, and feed \Arg{name}
+% \Arg{signature} \meta{boolean} \meta{defining~function} |{count}|
+% \Arg{arg~count} |{TF,...}| \Arg{code} to the auxiliary function
+% responsible for defining all conditionals.
+% \begin{macrocode}
+\cs_set_protected_nopar:Npn \prg_set_conditional:Nnn
+ { \prg_generate_conditional_count_aux:NNnn \cs_set:Npn }
+\cs_set_protected_nopar:Npn \prg_new_conditional:Nnn
+ { \prg_generate_conditional_count_aux:NNnn \cs_new:Npn }
+\cs_set_protected_nopar:Npn \prg_set_protected_conditional:Nnn
+ { \prg_generate_conditional_count_aux:NNnn \cs_set_protected:Npn }
+\cs_set_protected_nopar:Npn \prg_new_protected_conditional:Nnn
+ { \prg_generate_conditional_count_aux:NNnn \cs_new_protected:Npn }
+\cs_set_protected:Npn \prg_generate_conditional_count_aux:NNnn #1#2
{
- \exp_args:Nnf \prg_get_count_aux:nn
+ \exp_args:Nnf \use:n
{
- \cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn
- \cs_new_protected:Npn {count}
+ \cs_split_function:NN #2 \prg_generate_conditional_aux:nnNNnnnn
+ #1 { count }
}
- { \cs_get_arg_count_from_signature:N #1 }
+ { \cs_get_arg_count_from_signature:N #2 }
}
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
% \begin{macro}{\prg_set_eq_conditional:NNn,\prg_new_eq_conditional:NNn}
% The obvious setting-equal functions.
@@ -1863,21 +1849,10 @@
\cs_set_protected:Npn \prg_new_eq_conditional:NNn #1#2#3
{ \prg_set_eq_conditional_aux:NNNn \cs_new_eq:cc #1#2 {#3} }
% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}[aux]{\prg_get_parm_aux:nw,\prg_get_count_aux:nn}
-% For the |Npnn| type we must grab the parameter text before
-% continuing. We make this a very generic function that takes one
-% argument before reading everything up to a left brace. Something
-% similar for the |Nnn| type.
-% \begin{macrocode}
-\cs_set:Npn \prg_get_count_aux:nn #1#2 { #1 {#2} }
-\cs_set:Npn \prg_get_parm_aux:nw #1#2# { #1 {#2} }
-% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux]{\prg_generate_conditional_parm_aux:nnNNnnnn,
-% \prg_generate_conditional_parm_aux:nw}
+% \begin{macro}[aux]{\prg_generate_conditional_aux:nnNNnnnn,
+% \prg_generate_conditional_aux:nnw}
% The workhorse here is going through a list of desired forms, \emph{i.e.},
% |p|, |TF|, |T| and |F|. The first three arguments come from splitting up
% the base form of the conditional, which gives the name, signature
@@ -2003,14 +1978,12 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[aux]{\prg_set_eq_conditional_aux:NNNn,
-% \prg_set_eq_conditional_aux:NNNw}
+% \begin{macro}[aux]
+% {\prg_set_eq_conditional_aux:NNNn, \prg_set_eq_conditional_aux:NNNw}
+% Manual clist loop over argument |#4|.
% \begin{macrocode}
\cs_set_protected:Npn \prg_set_eq_conditional_aux:NNNn #1#2#3#4
- { \prg_set_eq_conditional_aux:NNNw #1#2#3#4 , ? , \q_recursion_stop }
-% \end{macrocode}
-% Manual clist loop over argument |#4|.
-% \begin{macrocode}
+ { \prg_set_eq_conditional_aux:NNNw #1#2#3#4 , ? , \q_recursion_stop }
\cs_set_protected:Npn \prg_set_eq_conditional_aux:NNNw #1#2#3#4 ,
{
\if:w ? #4 \scan_stop:
@@ -2021,8 +1994,6 @@
{ \exp_args:NNc \cs_split_function:NN #3 { prg_conditional_form_#4:nnn } }
\prg_set_eq_conditional_aux:NNNw #1 {#2} {#3}
}
-% \end{macrocode}
-% \begin{macrocode}
\cs_set:Npn \prg_conditional_form_p:nnn #1#2#3 { #1 _p : #2 }
\cs_set:Npn \prg_conditional_form_TF:nnn #1#2#3 { #1 : #2 TF }
\cs_set:Npn \prg_conditional_form_T:nnn #1#2#3 { #1 : #2 T }
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3format.ins b/Master/texmf-dist/source/latex/l3kernel/l3format.ins
new file mode 100644
index 00000000000..ef01ceff9c7
--- /dev/null
+++ b/Master/texmf-dist/source/latex/l3kernel/l3format.ins
@@ -0,0 +1,77 @@
+\iffalse meta-comment
+
+File l3format.ins Copyright (C) 2011 The 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 "l3kernel 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.
+
+\fi
+
+\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
+ {
+ \file{l3format.ltx}
+ {
+ \from{l3bootstrap.dtx}{initex}
+ \from{l3names.dtx} {initex}
+ \from{l3basics.dtx} {initex}
+ \from{l3expan.dtx} {initex}
+ \from{l3tl.dtx} {initex}
+ \from{l3seq.dtx} {initex}
+ % ===== FORMAT ONLY ======
+ \from{l3alloc.dtx} {initex}
+ % ========================
+ \from{l3int.dtx} {initex}
+ \from{l3quark.dtx} {initex}
+ \from{l3prg.dtx} {initex}
+ \from{l3clist.dtx} {initex}
+ \from{l3token.dtx} {initex}
+ \from{l3prop.dtx} {initex}
+ \from{l3msg.dtx} {initex}
+ \from{l3io.dtx} {initex}
+ \from{l3file.dtx} {initex}
+ \from{l3skip.dtx} {initex}
+ \from{l3keys.dtx} {initex}
+ \from{l3fp.dtx} {initex}
+ \from{l3box.dtx} {initex}
+ \from{l3coffins.dtx} {initex}
+ \from{l3color.dtx} {initex}
+ \from{l3luatex.dtx} {initex}
+ % ===== FORMAT ONLY ======
+ \from{l3final.dtx} {initex}
+ % ========================
+ }
+ }
+
+\generate{\file{l3dvips.ltx} {\from{l3drivers.dtx}{initex,dvips} }}
+\generate{\file{l3pdfmode.ltx} {\from{l3drivers.dtx}{initex,pdfmode} }}
+\generate{\file{l3xdvipdfmx.ltx}{\from{l3drivers.dtx}{initex,xdvipdfmx}}}
+
+\endbatchfile \ No newline at end of file
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
index 35213537c69..ea947680f43 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx
@@ -35,7 +35,7 @@
%
%<*driver|package>
\RequirePackage{l3names}
-\GetIdInfo$Id: l3fp.dtx 3154 2012-01-08 22:46:28Z bruno $
+\GetIdInfo$Id: l3fp.dtx 3315 2012-02-06 11:17:04Z bruno $
{L3 Experimental floating-point operations}
%</driver|package>
%<*driver>
@@ -110,7 +110,7 @@
% \cs{fp_new:N} \meta{floating point variable}
% \end{syntax}
% Creates a new \meta{floating point variable} or raises an error if
-% the name is already taken. The declaration global. The
+% the name is already taken. The declaration is global. The
% \meta{floating point} will initially be set to |+0.000000000e0|
% (the zero floating point).
% \end{function}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
index 5b94e7ccef7..f977f49c9f8 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx
@@ -35,7 +35,7 @@
%
%<*driver|package>
\RequirePackage{l3names}
-\GetIdInfo$Id: l3int.dtx 3216 2012-01-21 04:03:53Z bruno $
+\GetIdInfo$Id: l3int.dtx 3315 2012-02-06 11:17:04Z bruno $
{L3 Experimental integers}
%</driver|package>
%<*driver>
@@ -379,7 +379,7 @@
%
% \begin{function}[rEXP]{\int_do_while:nn}
% \begin{syntax}
-% \cs{int_do_while:nNnn}
+% \cs{int_do_while:nn}
% ~~\{ \meta{intexpr1} \meta{relation} \meta{intexpr2} \} \Arg{code}
% \end{syntax}
% Evaluates the relationship between the two \meta{integer expressions}
@@ -1386,7 +1386,7 @@
{
#2
\int_compare:nT {#1}
- { \int_do_while:nNnn {#1} {#2} }
+ { \int_do_while:nn {#1} {#2} }
}
\cs_new:Npn \int_do_until:nn #1#2
{
@@ -2069,7 +2069,7 @@
%
% \begin{variable}{\l_tmpa_int, \l_tmpb_int, \l_tmpc_int}
% \begin{variable}{\g_tmpa_int, \g_tmpb_int}
-% We provide four local and two global scratch counters, maybe we
+% We provide three local and two global scratch counters, maybe we
% need more or less.
% \begin{macrocode}
\int_new:N \l_tmpa_int
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
index 510747c1068..e0cb6029a79 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx
@@ -35,7 +35,7 @@
%
%<*driver|package>
\RequirePackage{l3names}
-\GetIdInfo$Id: l3msg.dtx 3153 2012-01-08 22:05:30Z bruno $
+\GetIdInfo$Id: l3msg.dtx 3316 2012-02-06 12:24:43Z bruno $
{L3 Experimental messages}
%</driver|package>
%<*driver>
@@ -1076,7 +1076,7 @@
% A test to see if any more text is available, using a
% permanently-empty text function.
% \begin{macrocode}
-\prg_set_conditional:Npnn \msg_if_more_text:N #1 { p , T , F , TF }
+\prg_new_conditional:Npnn \msg_if_more_text:N #1 { p , T , F , TF }
{
\cs_if_eq:NNTF #1 \msg_no_more_text:xxxx
{ \prg_return_false: }
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
index 6aa802d3ba4..8134b827bda 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx
@@ -35,7 +35,7 @@
%
%<*driver|package>
\RequirePackage{l3names}
-\GetIdInfo$Id: l3prg.dtx 3250 2012-01-28 04:54:49Z bruno $
+\GetIdInfo$Id: l3prg.dtx 3317 2012-02-06 12:26:40Z bruno $
{L3 Experimental control structures}
%</driver|package>
%<*driver>
@@ -91,128 +91,100 @@
%
% \section{Defining a set of conditional functions}
%
-% \begin{function}
+% \begin{function}[updated = 2012-02-06]
% {
% \prg_new_conditional:Npnn, \prg_set_conditional:Npnn,
% \prg_new_conditional:Nnn, \prg_set_conditional:Nnn
% }
% \begin{syntax}
-% \cs{prg_set_conditional:Npnn} \cs{\meta{name}:\meta{arg spec}} \meta{parameters} \Arg{conditions} \Arg{code} \\
-% \cs{prg_set_conditional:Nnn} \cs{\meta{name}:\meta{arg spec}} \Arg{conditions} \Arg{code}
+% \cs{prg_new_conditional:Npnn} \cs{\meta{name}:\meta{arg spec}} \meta{parameters} \Arg{conditions} \Arg{code} \\
+% \cs{prg_new_conditional:Nnn} \cs{\meta{name}:\meta{arg spec}} \Arg{conditions} \Arg{code}
% \end{syntax}
% These functions create a family of conditionals using the same
-% \Arg{code} to perform the test created. The \texttt{new} version will
-% check for existing definitions (\emph{cf.}~\cs{cs_new:Npn}) whereas
-% the \texttt{set} version will not (\emph{cf.}~\cs{cs_set:Npn}). The
-% conditionals created are dependent on the comma-separated list of
-% \meta{conditions}, which should be one or more of \texttt{p},
+% \Arg{code} to perform the test created. Those conditionals are
+% expandable if \meta{code} is. The \texttt{new} versions will check
+% for existing definitions and perform assignments globally
+% (\emph{cf.}~\cs{cs_new:Npn}) whereas the \texttt{set} versions do no
+% check and perform assignments locally (\emph{cf.}~\cs{cs_set:Npn}).
+% The conditionals created are dependent on the comma-separated list
+% of \meta{conditions}, which should be one or more of \texttt{p},
% \texttt{T}, \texttt{F} and \texttt{TF}.
% \end{function}
%
-% The conditionals are defined by \cs{prg_new_conditional:Npnn} and friends
-% as:
-% \begin{itemize}
-% \item \cs{\meta{name}_p:\meta{arg spec}} --- a predicate function
-% which will supply either a logical \texttt{true} or
-% logical \texttt{false}. This function is intended for use
-% in cases where one or more logical tests are combined to
-% lead to a final outcome.
-% \item \cs{\meta{name}:\meta{arg spec}T} --- a function with one
-% more argument than the original \meta{arg spec} demands. The
-% \meta{true branch} code in this additional argument will be
-% left on the input stream only if the test is \texttt{true}.
-% \item \cs{\meta{name}:\meta{arg spec}F} --- a function with one
-% more argument than the original \meta{arg spec} demands. The
-% \meta{false branch} code in this additional argument will be
-% left on the input stream only if the test is \texttt{false}.
-% \item \cs{\meta{name}:\meta{arg spec}TF} --- a function with two
-% more argument than the original \meta{arg spec} demands. The
-% \meta{true branch} code in the first additional argument will
-% be left on the input stream if the test is \texttt{true}, while
-% the \meta{false branch} code in the second argument will be
-% left on the input stream if the test is \texttt{false}.
-% \end{itemize}
-% The \meta{code} of the test may use \meta{parameters} as specified
-% by the second argument to \cs{prg_set_conditional:Npnn}: this should
-% match the \meta{argument specification} but this is not enforced.
-% The |Nnn| versions infer the number of arguments from the argument
-% specification given (\emph{cf.}~\cs{cs_new:Nn}, \emph{etc.}).
-% Within the \meta{code}, the functions \cs{prg_return_true:} and
-% \cs{prg_return_false:} are used to indicate the logical outcomes of
-% the test. If \meta{code} is expandable then
-% \cs{prg_set_conditional:Npnn} will generate a family of conditionals
-% which are also expandable. All of the functions are created globally.
-%
-% An example can easily clarify matters here:
-% \begin{verbatim}
-% \prg_set_conditional:Nnn \foo_if_bar:NN { p , T , TF }
-% {
-% \if_meaning:w \l_tmpa_tl #1
-% \prg_return_true:
-% \else:
-% \if_meaning:w \l_tmpa_tl #2
-% \prg_return_true:
-% \else:
-% \prg_return_false:
-% \fi:
-% \fi:
-% }
-% \end{verbatim}
-% This defines the function |\foo_if_bar_p:NN|, |\foo_if_bar:NNTF| and
-% |\foo_if_bar:NNT| but not |\foo_if_bar:NNF| (because |F| is missing from
-% the \meta{conds} list). The return statements
-% take care of resolving the remaining |\else:| and |\fi:| before
-% returning the state. There must be a return statement for each
-% branch, failing to do so will result in an error if that branch is
-% executed.
-%
-% \begin{function}
+% \begin{function}[updated = 2012-02-06]
% {
% \prg_new_protected_conditional:Npnn, \prg_set_protected_conditional:Npnn,
% \prg_new_protected_conditional:Nnn, \prg_set_protected_conditional:Nnn
% }
% \begin{syntax}
-% \cs{prg_set_protected_conditional:Npnn} \cs{\meta{name}:\meta{arg spec}} \meta{parameters} \Arg{conditions} \Arg{code} \\
-% \cs{prg_set_protected_conditional:Nnn} \cs{\meta{name}:\meta{arg spec}} \Arg{conditions} \Arg{code}
+% \cs{prg_new_protected_conditional:Npnn} \cs{\meta{name}:\meta{arg spec}} \meta{parameters} \Arg{conditions} \Arg{code} \\
+% \cs{prg_new_protected_conditional:Nnn} \cs{\meta{name}:\meta{arg spec}} \Arg{conditions} \Arg{code}
% \end{syntax}
-% These functions create a family of conditionals using the same
-% \Arg{code} to perform the test created. The \texttt{new} version will
-% check for existing definitions (\emph{cf.}~\cs{cs_new:Npn}) whereas
-% the \texttt{set} version will not (\emph{cf.}~\cs{cs_set:Npn}). The
-% conditionals created are depended on the comma-separated list of
-% \meta{conditions}, which should be one or more of \texttt{T},
-% \texttt{F} and \texttt{TF}.
+% These functions create a family of protected conditionals using the
+% same \Arg{code} to perform the test created. The \meta{code} does
+% not need to be expandable. The \texttt{new} version will check for
+% existing definitions and perform assignments globally
+% (\emph{cf.}~\cs{cs_new:Npn}) whereas the \texttt{set} version will
+% not (\emph{cf.}~\cs{cs_set:Npn}). The conditionals created are
+% depended on the comma-separated list of \meta{conditions}, which
+% should be one or more of \texttt{T}, \texttt{F} and \texttt{TF} (not
+% \texttt{p}).
% \end{function}
%
-% The conditionals are defined by \cs{prg_new_protected_conditional:Npnn}
-% and friends as:
-% \begin{itemize}
-% \item \cs{\meta{name}:\meta{arg spec}T} --- a function with one
-% more argument than the original \meta{arg spec} demands. The
-% \meta{true branch} code in this additional argument will be
-% left on the input stream only if the test is \texttt{true}.
-% \item \cs{\meta{name}:\meta{arg spec}F} --- a function with one
-% more argument than the original \meta{arg spec} demands. The
-% \meta{false branch} code in this additional argument will be
-% left on the input stream only if the test is \texttt{false}.
-% \item \cs{\meta{name}:\meta{arg spec}TF} --- a function with two
-% more argument than the original \meta{arg spec} demands. The
-% \meta{true branch} code in the first additional argument will
-% be left on the input stream if the test is \texttt{true}, while
-% the \meta{false branch} code in the second argument will be
-% left on the input stream if the test is \texttt{false}.
-% \end{itemize}
-% The \meta{code} of the test may use \meta{parameters} as specified
-% by the second argument to \cs{prg_set_conditional:Npn}: this should
-% match the \meta{argument specification} but this is not enforced.
-% The |Nnn| versions infer the number of arguments from the argument
-% specification given (\emph{cf.}~\cs{cs_new:Nn}, \emph{etc.}).
-% Within the \meta{code}, the functions \cs{prg_return_true:} and
-% \cs{prg_return_false:} are used to indicate the logical outcomes of
-% the test. \cs{prg_set_protected_conditional:Npn} will generate
-% a family of protected conditional functions, and so \meta{code}
-% does not need to be expandable. All of the functions are created
-% globally.
+% The conditionals are defined by \cs{prg_new_conditional:Npnn} and
+% friends as:
+% \begin{itemize}
+% \item \cs{\meta{name}_p:\meta{arg spec}} --- a predicate function
+% which will supply either a logical \texttt{true} or logical
+% \texttt{false}. This function is intended for use in cases where
+% one or more logical tests are combined to lead to a final outcome.
+% This function will not work properly for \texttt{protected}
+% conditionals.
+% \item \cs{\meta{name}:\meta{arg spec}T} --- a function with one more
+% argument than the original \meta{arg spec} demands. The \meta{true
+% branch} code in this additional argument will be left on the
+% input stream only if the test is \texttt{true}.
+% \item \cs{\meta{name}:\meta{arg spec}F} --- a function with one more
+% argument than the original \meta{arg spec} demands. The
+% \meta{false branch} code in this additional argument will be left
+% on the input stream only if the test is \texttt{false}.
+% \item \cs{\meta{name}:\meta{arg spec}TF} --- a function with two
+% more argument than the original \meta{arg spec} demands. The
+% \meta{true branch} code in the first additional argument will be
+% left on the input stream if the test is \texttt{true}, while the
+% \meta{false branch} code in the second argument will be left on
+% the input stream if the test is \texttt{false}.
+% \end{itemize}
+% The \meta{code} of the test may use \meta{parameters} as specified by
+% the second argument to \cs{prg_set_conditional:Npnn}: this should
+% match the \meta{argument specification} but this is not enforced. The
+% |Nnn| versions infer the number of arguments from the argument
+% specification given (\emph{cf.}~\cs{cs_new:Nn}, \emph{etc.}). Within
+% the \meta{code}, the functions \cs{prg_return_true:} and
+% \cs{prg_return_false:} are used to indicate the logical outcomes of
+% the test.
+%
+% An example can easily clarify matters here:
+% \begin{verbatim}
+% \prg_set_conditional:Nnn \foo_if_bar:NN { p , T , TF }
+% {
+% \if_meaning:w \l_tmpa_tl #1
+% \prg_return_true:
+% \else:
+% \if_meaning:w \l_tmpa_tl #2
+% \prg_return_true:
+% \else:
+% \prg_return_false:
+% \fi:
+% \fi:
+% }
+% \end{verbatim}
+% This defines the function |\foo_if_bar_p:NN|, |\foo_if_bar:NNTF| and
+% |\foo_if_bar:NNT| but not |\foo_if_bar:NNF| (because |F| is missing
+% from the \meta{conditions} list). The return statements take care of
+% resolving the remaining |\else:| and |\fi:| before returning the
+% state. There must be a return statement for each branch, failing to do
+% so will result in an error if that branch is executed.
%
% \begin{function}{\prg_new_eq_conditional:NNn, \prg_set_eq_conditional:NNn}
% \begin{syntax}
@@ -265,71 +237,47 @@
% \meta{boolean} will initially be \texttt{false}.
% \end{function}
%
-% \begin{function}{\bool_set_false:N, \bool_set_false:c}
+% \begin{function}
+% {
+% \bool_set_false:N , \bool_set_false:c ,
+% \bool_gset_false:N, \bool_gset_false:c
+% }
% \begin{syntax}
% \cs{bool_set_false:N} \meta{boolean}
% \end{syntax}
-% Sets \meta{boolean} logically \texttt{false} within the current
-% \TeX{} group.
+% Sets \meta{boolean} logically \texttt{false}.
% \end{function}
%
-% \begin{function}{\bool_gset_false:N, \bool_gset_false:c}
-% \begin{syntax}
-% \cs{bool_sget_false:N} \meta{boolean}
-% \end{syntax}
-% Sets \meta{boolean} logically \texttt{false} globally.
-% \end{function}
-%
-% \begin{function}{\bool_set_true:N, \bool_set_true:c}
+% \begin{function}
+% {
+% \bool_set_true:N , \bool_set_true:c ,
+% \bool_gset_true:N , \bool_gset_true:c
+% }
% \begin{syntax}
% \cs{bool_set_true:N} \meta{boolean}
% \end{syntax}
-% Sets \meta{boolean} logically \texttt{true} within the current
-% \TeX{} group.
-% \end{function}
-%
-% \begin{function}{\bool_gset_true:N, \bool_gset_true:c}
-% \begin{syntax}
-% \cs{bool_gset_true:N} \meta{boolean}
-% \end{syntax}
-% Sets \meta{boolean} logically \texttt{true} globally.
+% Sets \meta{boolean} logically \texttt{true}.
% \end{function}
%
% \begin{function}
-% {\bool_set_eq:NN, \bool_set_eq:cN, \bool_set_eq:Nc, \bool_set_eq:cc}
+% {
+% \bool_set_eq:NN , \bool_set_eq:cN , \bool_set_eq:Nc , \bool_set_eq:cc ,
+% \bool_gset_eq:NN, \bool_gset_eq:cN, \bool_gset_eq:Nc, \bool_gset_eq:cc
+% }
% \begin{syntax}
% \cs{bool_set_eq:NN} \meta{boolean1} \meta{boolean2}
% \end{syntax}
% Sets the content of \meta{boolean1} equal to that of \meta{boolean2}.
-% This assignment is restricted to the current \TeX{} group level.
% \end{function}
%
% \begin{function}
-% {\bool_gset_eq:NN, \bool_gset_eq:cN, \bool_gset_eq:Nc, \bool_gset_eq:cc}
-% \begin{syntax}
-% \cs{bool_gset_eq:NN} \meta{boolean1} \meta{boolean2}
-% \end{syntax}
-% Sets the content of \meta{boolean1} equal to that of \meta{boolean2}.
-% This assignment is global and so is not limited by the current
-% \TeX{} group level.
-% \end{function}
-%
-% \begin{function}{\bool_set:Nn, \bool_set:cn}
+% {\bool_set:Nn, \bool_set:cn, \bool_gset:Nn, \bool_gset:cn}
% \begin{syntax}
% \cs{bool_set:Nn} \meta{boolean} \Arg{boolexpr}
% \end{syntax}
% Evaluates the \meta{boolean expression} as described for
% \cs{bool_if:n(TF)}, and sets the \meta{boolean} variable to
-% the logical truth of this evaluation. This assignment is local.
-% \end{function}
-%
-% \begin{function}{\bool_gset:Nn, \bool_gset:cn}
-% \begin{syntax}
-% \cs{bool_gset:Nn} \meta{boolean} \Arg{boolexpr}
-% \end{syntax}
-% Evaluates the \meta{boolean expression} as described for
-% \cs{bool_if:n(TF)}, and sets the \meta{boolean} variable to
-% the logical truth of this evaluation. This assignment is global.
+% the logical truth of this evaluation.
% \end{function}
%
% \begin{function}[EXP,pTF]{\bool_if:N, \bool_if:c}
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
index 44e0bf5a45d..02cc54e90d3 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx
@@ -36,7 +36,7 @@
%
%<*driver|package>
\RequirePackage{l3names}
-\GetIdInfo$Id: l3skip.dtx 3139 2012-01-07 19:53:09Z bruno $
+\GetIdInfo$Id: l3skip.dtx 3313 2012-02-06 11:15:21Z bruno $
{L3 Experimental dimensions and skips}
%</driver|package>
%<*driver>
@@ -138,7 +138,7 @@
% \meta{dimension2}.
% \end{function}
%
-% \begin{function}[updated = 2011-10-22]
+% \begin{function}[updated = 2012-02-06]
% {\dim_set_max:Nn, \dim_set_max:cn, \dim_gset_max:Nn, \dim_gset_max:cn}
% \begin{syntax}
% \cs{dim_set_max:Nn} \meta{dimension} \Arg{dimension expression}
@@ -148,7 +148,7 @@
% larger of these two value.
% \end{function}
%
-% \begin{function}[updated = 2011-10-22]
+% \begin{function}[updated = 2012-02-06]
% {\dim_set_min:Nn, \dim_set_min:cn, \dim_gset_min:Nn, \dim_gset_min:cn}
% \begin{syntax}
% \cs{dim_set_min:Nn} \meta{dimension} \Arg{dimension expression}
@@ -293,7 +293,7 @@
%
% \begin{function}[rEXP]{\dim_do_while:nn}
% \begin{syntax}
-% \cs{dim_do_while:nNnn} \{ \meta{dimexpr1} \meta{relation} \meta{dimexpr2} \} \Arg{code}
+% \cs{dim_do_while:nn} \{ \meta{dimexpr1} \meta{relation} \meta{dimexpr2} \} \Arg{code}
% \end{syntax}
% Evaluates the relationship between the two \meta{dimension expressions}
% as described for \cs{dim_compare:nTF}, and then places the
@@ -916,17 +916,20 @@
% \begin{macro}{\dim_set_min:Nn, \dim_set_min:cn}
% \begin{macro}{\dim_gset_max:Nn, \dim_gset_max:cn}
% \begin{macro}{\dim_gset_min:Nn, \dim_gset_min:cn}
+% \begin{macro}[aux]{\dim_set_max_aux:NNNn}
% Setting maximum and minimum values is simply a case of so build-in
% comparison. This only applies to dimensions as skips are not ordered.
% \begin{macrocode}
-\cs_new_protected:Npn \dim_set_max:Nn #1#2
- { \dim_compare:nNnT {#1} < {#2} { \dim_set:Nn #1 {#2} } }
-\cs_new_protected:Npn \dim_gset_max:Nn
- { \tex_global:D \dim_set_max:Nn }
-\cs_new_protected:Npn \dim_set_min:Nn #1#2
- { \dim_compare:nNnT {#1} > {#2} { \dim_set:Nn #1 {#2} } }
-\cs_new_protected:Npn \dim_gset_min:Nn
- { \tex_global:D \dim_set_min:Nn }
+\cs_new_protected_nopar:Npn \dim_set_max:Nn
+ { \dim_set_max_aux:NNNn < \dim_set:Nn }
+\cs_new_protected_nopar:Npn \dim_gset_max:Nn
+ { \dim_set_max_aux:NNNn < \dim_gset:Nn }
+\cs_new_protected_nopar:Npn \dim_set_min:Nn
+ { \dim_set_max_aux:NNNn > \dim_set:Nn }
+\cs_new_protected_nopar:Npn \dim_gset_min:Nn
+ { \dim_set_max_aux:NNNn > \dim_gset:Nn }
+\cs_new_protected:Npn \dim_set_max_aux:NNNn #1#2#3#4
+ { \dim_compare:nNnT {#3} #1 {#4} { #2 #3 {#4} } }
\cs_generate_variant:Nn \dim_set_max:Nn { c }
\cs_generate_variant:Nn \dim_gset_max:Nn { c }
\cs_generate_variant:Nn \dim_set_min:Nn { c }
@@ -936,6 +939,7 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \begin{macro}{\dim_add:Nn, \dim_add:cn}
% \begin{macro}{\dim_gadd:Nn, \dim_gadd:cn}
@@ -1148,7 +1152,7 @@
{
#2
\dim_compare:nT {#1}
- { \dim_do_while:nNnn {#1} {#2} }
+ { \dim_do_while:nn {#1} {#2} }
}
\cs_set:Npn \dim_do_until:nn #1#2
{
@@ -1673,7 +1677,7 @@
% |#3| and |#4| to the stretch and shrink component, resp. If it holds
% infinite glue set |#3| and |#4| to zero and issue the special action
% |#2| which is probably an error message.
-% Assignments are global.
+% Assignments are local.
% \begin{macrocode}
\cs_new:Npn \skip_split_finite_else_action:nnNN #1#2#3#4
{
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
index 8fd54e3388a..f0279ff6bfc 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx
@@ -35,7 +35,7 @@
%
%<*driver|package>
\RequirePackage{l3names}
-\GetIdInfo$Id: l3tl.dtx 3286 2012-01-31 21:57:22Z joseph $
+\GetIdInfo$Id: l3tl.dtx 3316 2012-02-06 12:24:43Z bruno $
{L3 Experimental token lists}
%</driver|package>
%<*driver>
@@ -1531,7 +1531,7 @@
% These functions check whether the token list in the argument is
% empty and execute the proper code from their argument(s).
% \begin{macrocode}
-\prg_set_conditional:Npnn \tl_if_empty:N #1 { p , T , F , TF }
+\prg_new_conditional:Npnn \tl_if_empty:N #1 { p , T , F , TF }
{
\if_meaning:w #1 \c_empty_tl
\prg_return_true:
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
index 107abc826ee..3c5ba351913 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx
@@ -35,7 +35,7 @@
%
%<*driver|package>
\RequirePackage{l3names}
-\GetIdInfo$Id: l3token.dtx 3234 2012-01-25 12:55:06Z joseph $
+\GetIdInfo$Id: l3token.dtx 3316 2012-02-06 12:24:43Z bruno $
{L3 Experimental token manipulation}
%</driver|package>
%<*driver>
@@ -2087,7 +2087,7 @@
% \begin{macro}[aux]{\peek_def:nnnn}
% \begin{macro}[aux]{\peek_def_aux:nnnnn}
% The public functions themselves cannot be defined using
-% \cs{prg_set_conditional:Npnn} and so a couple of auxiliary functions
+% \cs{prg_new_conditional:Npnn} and so a couple of auxiliary functions
% are used. As a result, everything is done inside a group. As a result
% things are a bit complicated.
% \begin{macrocode}
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
index fd93024f965..1603a8728b3 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
@@ -59,8 +59,8 @@
}
\def\ExplFileName{expl3}
\def\ExplFileDescription{L3 Experimental code bundle wrapper}
-\def\ExplFileDate{2012/01/31}
-\def\ExplFileVersion{3287}
+\def\ExplFileDate{2012/02/07}
+\def\ExplFileVersion{3331}
\RequirePackage{etex}
\reserveinserts{32}
\ProvidesExplPackage
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty b/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty
index 39a6bbaef22..4ea5a1ce780 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3basics.dtx 3196 2012-01-15 09:44:05Z joseph $
+\GetIdInfo$Id: l3basics.dtx 3317 2012-02-06 12:26:40Z bruno $
{L3 Experimental basic definitions}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -177,78 +177,40 @@
{ \exp_after:wN \use_i:nn \int_to_roman:w }
\cs_set_nopar:Npn \prg_return_false:
{ \exp_after:wN \use_ii:nn \int_to_roman:w}
-\cs_set_protected:Npn \prg_set_conditional:Npnn #1
- {
- \prg_get_parm_aux:nw
- {
- \cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn
- \cs_set:Npn { parm }
- }
- }
-\cs_set_protected:Npn \prg_new_conditional:Npnn #1
- {
- \prg_get_parm_aux:nw
- {
- \cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn
- \cs_new:Npn { parm }
- }
- }
-\cs_set_protected:Npn \prg_set_protected_conditional:Npnn #1
- {
- \prg_get_parm_aux:nw{
- \cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn
- \cs_set_protected:Npn { parm }
- }
- }
-\cs_set_protected:Npn \prg_new_protected_conditional:Npnn #1
- {
- \prg_get_parm_aux:nw
- {
- \cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn
- \cs_new_protected:Npn { parm }
- }
- }
-\cs_set_protected:Npn \prg_set_conditional:Nnn #1
- {
- \exp_args:Nnf \prg_get_count_aux:nn
- {
- \cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn
- \cs_set:Npn { count }
- }
- { \cs_get_arg_count_from_signature:N #1 }
- }
-\cs_set_protected:Npn \prg_new_conditional:Nnn #1
- {
- \exp_args:Nnf \prg_get_count_aux:nn
- {
- \cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn
- \cs_new:Npn { count}
- }
- { \cs_get_arg_count_from_signature:N #1 }
- }
-
-\cs_set_protected:Npn \prg_set_protected_conditional:Nnn #1{
- \exp_args:Nnf \prg_get_count_aux:nn{
- \cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn
- \cs_set_protected:Npn {count}
- }{\cs_get_arg_count_from_signature:N #1}
-}
-
-\cs_set_protected:Npn \prg_new_protected_conditional:Nnn #1
- {
- \exp_args:Nnf \prg_get_count_aux:nn
+\cs_set_protected_nopar:Npn \prg_set_conditional:Npnn
+ { \prg_generate_conditional_parm_aux:NNpnn \cs_set:Npn }
+\cs_set_protected_nopar:Npn \prg_new_conditional:Npnn
+ { \prg_generate_conditional_parm_aux:NNpnn \cs_new:Npn }
+\cs_set_protected_nopar:Npn \prg_set_protected_conditional:Npnn
+ { \prg_generate_conditional_parm_aux:NNpnn \cs_set_protected:Npn }
+\cs_set_protected_nopar:Npn \prg_new_protected_conditional:Npnn
+ { \prg_generate_conditional_parm_aux:NNpnn \cs_new_protected:Npn }
+\cs_set_protected:Npn \prg_generate_conditional_parm_aux:NNpnn #1#2#3#
+ {
+ \cs_split_function:NN #2 \prg_generate_conditional_aux:nnNNnnnn
+ #1 { parm } {#3}
+ }
+\cs_set_protected_nopar:Npn \prg_set_conditional:Nnn
+ { \prg_generate_conditional_count_aux:NNnn \cs_set:Npn }
+\cs_set_protected_nopar:Npn \prg_new_conditional:Nnn
+ { \prg_generate_conditional_count_aux:NNnn \cs_new:Npn }
+\cs_set_protected_nopar:Npn \prg_set_protected_conditional:Nnn
+ { \prg_generate_conditional_count_aux:NNnn \cs_set_protected:Npn }
+\cs_set_protected_nopar:Npn \prg_new_protected_conditional:Nnn
+ { \prg_generate_conditional_count_aux:NNnn \cs_new_protected:Npn }
+\cs_set_protected:Npn \prg_generate_conditional_count_aux:NNnn #1#2
+ {
+ \exp_args:Nnf \use:n
{
- \cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn
- \cs_new_protected:Npn {count}
+ \cs_split_function:NN #2 \prg_generate_conditional_aux:nnNNnnnn
+ #1 { count }
}
- { \cs_get_arg_count_from_signature:N #1 }
+ { \cs_get_arg_count_from_signature:N #2 }
}
\cs_set_protected:Npn \prg_set_eq_conditional:NNn #1#2#3
{ \prg_set_eq_conditional_aux:NNNn \cs_set_eq:cc #1#2 {#3} }
\cs_set_protected:Npn \prg_new_eq_conditional:NNn #1#2#3
{ \prg_set_eq_conditional_aux:NNNn \cs_new_eq:cc #1#2 {#3} }
-\cs_set:Npn \prg_get_count_aux:nn #1#2 { #1 {#2} }
-\cs_set:Npn \prg_get_parm_aux:nw #1#2# { #1 {#2} }
\cs_set_protected:Npn \prg_generate_conditional_aux:nnNNnnnn #1#2#3#4#5#6#7#8
{
\prg_generate_conditional_aux:nnw {#5}
@@ -324,7 +286,7 @@
{ #5 \c_zero }
}
\cs_set_protected:Npn \prg_set_eq_conditional_aux:NNNn #1#2#3#4
- { \prg_set_eq_conditional_aux:NNNw #1#2#3#4 , ? , \q_recursion_stop }
+ { \prg_set_eq_conditional_aux:NNNw #1#2#3#4 , ? , \q_recursion_stop }
\cs_set_protected:Npn \prg_set_eq_conditional_aux:NNNw #1#2#3#4 ,
{
\if:w ? #4 \scan_stop:
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
index 33821fa37f4..b1b9ac3c5c4 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
@@ -6,7 +6,6 @@
%%
%% l3doc.dtx (with options: `class')
%%
-%%
%% EXPERIMENTAL CODE
%%
%% Do not distribute this file without also distributing the
@@ -14,7 +13,6 @@
%%
%% Do not distribute a modified version of this file.
%%
-%%
%% File: l3doc.dtx Copyright (C) 1990-2011 The LaTeX3 project
%%
%% It may be distributed and/or modified under the conditions of the
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty b/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty
index e22994a4726..df321de33c9 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3fp.dtx 3154 2012-01-08 22:46:28Z bruno $
+\GetIdInfo$Id: l3fp.dtx 3315 2012-02-06 11:17:04Z bruno $
{L3 Experimental floating-point operations}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3int.sty b/Master/texmf-dist/tex/latex/l3kernel/l3int.sty
index 492cc028025..2747a0afeeb 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3int.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3int.sty
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3int.dtx 3216 2012-01-21 04:03:53Z bruno $
+\GetIdInfo$Id: l3int.dtx 3315 2012-02-06 11:17:04Z bruno $
{L3 Experimental integers}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -317,7 +317,7 @@
{
#2
\int_compare:nT {#1}
- { \int_do_while:nNnn {#1} {#2} }
+ { \int_do_while:nn {#1} {#2} }
}
\cs_new:Npn \int_do_until:nn #1#2
{
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty b/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty
index 90d70060297..1531c7a39b1 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3msg.dtx 3153 2012-01-08 22:05:30Z bruno $
+\GetIdInfo$Id: l3msg.dtx 3316 2012-02-06 12:24:43Z bruno $
{L3 Experimental messages}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -229,7 +229,7 @@
\cs_set_protected:cpx { msg_ #1 :nn } ##1##2
{ \exp_not:c { msg_ #1 :nnxxxx } {##1} {##2} { } { } { } { } }
}
-\prg_set_conditional:Npnn \msg_if_more_text:N #1 { p , T , F , TF }
+\prg_new_conditional:Npnn \msg_if_more_text:N #1 { p , T , F , TF }
{
\cs_if_eq:NNTF #1 \msg_no_more_text:xxxx
{ \prg_return_false: }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty b/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty
index 8689a2970f1..6f4e81129bf 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3prg.dtx 3250 2012-01-28 04:54:49Z bruno $
+\GetIdInfo$Id: l3prg.dtx 3317 2012-02-06 12:26:40Z bruno $
{L3 Experimental control structures}
%%
\ProvidesExplPackage
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty b/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty
index 0250bedeb7c..8fdb538a031 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty
@@ -47,7 +47,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3skip.dtx 3139 2012-01-07 19:53:09Z bruno $
+\GetIdInfo$Id: l3skip.dtx 3313 2012-02-06 11:15:21Z bruno $
{L3 Experimental dimensions and skips}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -82,14 +82,16 @@
\cs_new_protected:Npn \dim_gset_eq:NN #1#2 { \tex_global:D #1 = #2 }
\cs_generate_variant:Nn \dim_gset_eq:NN { c }
\cs_generate_variant:Nn \dim_gset_eq:NN { Nc , cc }
-\cs_new_protected:Npn \dim_set_max:Nn #1#2
- { \dim_compare:nNnT {#1} < {#2} { \dim_set:Nn #1 {#2} } }
-\cs_new_protected:Npn \dim_gset_max:Nn
- { \tex_global:D \dim_set_max:Nn }
-\cs_new_protected:Npn \dim_set_min:Nn #1#2
- { \dim_compare:nNnT {#1} > {#2} { \dim_set:Nn #1 {#2} } }
-\cs_new_protected:Npn \dim_gset_min:Nn
- { \tex_global:D \dim_set_min:Nn }
+\cs_new_protected_nopar:Npn \dim_set_max:Nn
+ { \dim_set_max_aux:NNNn < \dim_set:Nn }
+\cs_new_protected_nopar:Npn \dim_gset_max:Nn
+ { \dim_set_max_aux:NNNn < \dim_gset:Nn }
+\cs_new_protected_nopar:Npn \dim_set_min:Nn
+ { \dim_set_max_aux:NNNn > \dim_set:Nn }
+\cs_new_protected_nopar:Npn \dim_gset_min:Nn
+ { \dim_set_max_aux:NNNn > \dim_gset:Nn }
+\cs_new_protected:Npn \dim_set_max_aux:NNNn #1#2#3#4
+ { \dim_compare:nNnT {#3} #1 {#4} { #2 #3 {#4} } }
\cs_generate_variant:Nn \dim_set_max:Nn { c }
\cs_generate_variant:Nn \dim_gset_max:Nn { c }
\cs_generate_variant:Nn \dim_set_min:Nn { c }
@@ -172,7 +174,7 @@
{
#2
\dim_compare:nT {#1}
- { \dim_do_while:nNnn {#1} {#2} }
+ { \dim_do_while:nn {#1} {#2} }
}
\cs_set:Npn \dim_do_until:nn #1#2
{
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty b/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty
index a3c773c37b4..95b2d84cd8a 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3tl.dtx 3286 2012-01-31 21:57:22Z joseph $
+\GetIdInfo$Id: l3tl.dtx 3316 2012-02-06 12:24:43Z bruno $
{L3 Experimental token lists}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -274,7 +274,7 @@
\cs_generate_variant:Nn \tl_if_blank:nT { o }
\cs_generate_variant:Nn \tl_if_blank:nF { o }
\cs_generate_variant:Nn \tl_if_blank:nTF { o }
-\prg_set_conditional:Npnn \tl_if_empty:N #1 { p , T , F , TF }
+\prg_new_conditional:Npnn \tl_if_empty:N #1 { p , T , F , TF }
{
\if_meaning:w #1 \c_empty_tl
\prg_return_true:
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3token.sty b/Master/texmf-dist/tex/latex/l3kernel/l3token.sty
index 3a615eaef75..3bab1bd32dd 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3token.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3token.sty
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3token.dtx 3234 2012-01-25 12:55:06Z joseph $
+\GetIdInfo$Id: l3token.dtx 3316 2012-02-06 12:24:43Z bruno $
{L3 Experimental token manipulation}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}