summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/l3packages
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-04-30 22:39:09 +0000
committerKarl Berry <karl@freefriends.org>2018-04-30 22:39:09 +0000
commita28e1bfccd6fe522fcd296426e4d89c7fb4f19b6 (patch)
treeb72347e08575b56fcfed87c4d837b48dcfd1e02a /Master/texmf-dist/source/latex/l3packages
parentb40c37a9e22b8235ff9c0bc256d00f7af94304c3 (diff)
l3 (30apr18)
git-svn-id: svn://tug.org/texlive/trunk@47516 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/l3packages')
-rw-r--r--Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx6
-rw-r--r--Master/texmf-dist/source/latex/l3packages/xfp/xfp.dtx18
-rw-r--r--Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx16
-rw-r--r--Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx180
-rw-r--r--Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx19
5 files changed, 145 insertions, 94 deletions
diff --git a/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx b/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx
index 716c0e4d665..c4cda370057 100644
--- a/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx
+++ b/Master/texmf-dist/source/latex/l3packages/l3keys2e/l3keys2e.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: l3keys2e.dtx (C) Copyright 2009,2011-2017 The LaTeX3 Project
+%% File: l3keys2e.dtx (C) Copyright 2009,2011-2018 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
@@ -60,7 +60,7 @@
% }^^A
% }
%
-% \date{Released 2018/02/21}
+% \date{Released 2018-04-30}
%
% \maketitle
%
@@ -131,7 +131,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3keys2e}{2018/02/21}{}
+\ProvidesExplPackage{l3keys2e}{2018-04-30}{}
{LaTeX2e option processing using LaTeX3 keys}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3packages/xfp/xfp.dtx b/Master/texmf-dist/source/latex/l3packages/xfp/xfp.dtx
index 3351207ab22..7007c9a3ab6 100644
--- a/Master/texmf-dist/source/latex/l3packages/xfp/xfp.dtx
+++ b/Master/texmf-dist/source/latex/l3packages/xfp/xfp.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: xfp.dtx (C) Copyright 2017 The LaTeX3 Project
+%% File: xfp.dtx (C) Copyright 2017-2018 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
@@ -62,7 +62,7 @@
% }^^A
% }
%
-% \date{Released 2018/02/21}
+% \date{Released 2018-04-30}
%
% \maketitle
%
@@ -73,8 +73,8 @@
% integer expression interface for convenience.
%
% \begin{function}[EXP]{\fpeval}
-% The expandable command \cs{fpeval} takes as it's argument a floating
-% point expression and will produce a result using the normal rules of
+% The expandable command \cs{fpeval} takes as its argument a floating
+% point expression and produces a result using the normal rules of
% mathematics. As this command is expandable it can be used where \TeX{}
% requires a number and for example within a low-level \cs{edef} operation
% to give a purely numerical result.
@@ -116,15 +116,17 @@
% $\operatorname{round}(x,n,t)$ rounds to the closest value, with
% ties rounded to an even value by default, towards zero if $t=0$,
% towards $+\infty$ if $t>0$ and towards $-\infty$ if $t<0$.
-% \item Random numbers: $\mathop{rand}()$, $\mathop{randint}(m,n)$ (requires
-% \pdfTeX{} or \LuaTeX{}).
+% \item Random numbers: $\mathop{rand}()$, $\mathop{randint}(m,n)$
+% (not available in \XeTeX{}).
% \item Constants: \texttt{pi}, \texttt{deg} (one degree in radians).
% \item Dimensions, automatically expressed in points, \emph{e.g.},
% \texttt{pc} is~$12$.
% \item Automatic conversion (no need for \cs{number}) of
-% integer, dimension, and skip variables to floating points,
+% integer, dimension, and skip variables to floating points numbers,
% expressing dimensions in points and ignoring the stretch and
% shrink components of skips.
+% \item Tuples: $(x_1,\ldots{},x_n)$ that can be added together,
+% multiplied or divided by a floating point number, and nested.
% \end{itemize}
%
% An example of use could be the following.
@@ -159,7 +161,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xfp}{2018/02/21}{}
+\ProvidesExplPackage{xfp}{2018-04-30}{}
{L3 Floating point unit}
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx b/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx
index 1952e2687b8..cc811e56983 100644
--- a/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx
+++ b/Master/texmf-dist/source/latex/l3packages/xfrac/xfrac.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
%
%% File: xfrac.dtx Copyright (C) 2004, 2008-2010 Morten Hoegholm
-%% (C) 2011,2012,2014-2017 The LaTeX3 Project
+%% (C) 2011,2012,2014-2018 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
@@ -63,7 +63,7 @@
% }^^A
% }
%
-% \date{Released 2018/02/21}
+% \date{Released 2018-04-30}
%
% \maketitle
%
@@ -533,7 +533,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xfrac}{2018/02/21}{}
+\ProvidesExplPackage{xfrac}{2018-04-30}{}
{L3 Experimental split-level fractions}
% \end{macrocode}
%
@@ -745,12 +745,12 @@
false =
\cs_set:Npn \@@_relscale:
{
- \__dim_eval:n
+ \dim_eval:n
{ \box_ht:N \l_@@_tmp_box + \box_dp:N \l_@@_tmp_box }
},
true =
\cs_set:Npn \@@_relscale:
- { \box_ht:N \l_@@_slash_box }
+ { \dim_eval:n { \box_ht:N \l_@@_slash_box } }
},
scaling =
{
@@ -759,7 +759,7 @@
\cs_set:Npn \@@_fontscale:
{
\fontsize
- { \fp_use:N \l_@@_scale_factor_fp \@@_relscale: }
+ { \fp_to_dim:n { \l_@@_scale_factor_fp * \@@_relscale: } }
{ \c_zero_dim }
\selectfont
}
@@ -842,7 +842,7 @@
{
\raisebox
{
- \__dim_eval:n
+ \dim_eval:n
{
\box_ht:N \l_@@_slash_box
- \box_dp:N \l_@@_slash_box
@@ -871,7 +871,7 @@
{
\raisebox
{
- \__dim_eval:n
+ \dim_eval:n
{
\box_ht:N \l_@@_slash_box
- \dim_use:N \l_@@_numerator_top_sep_dim
diff --git a/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx b/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx
index 045d969b6ba..c7ec377316e 100644
--- a/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx
+++ b/Master/texmf-dist/source/latex/l3packages/xparse/xparse.dtx
@@ -4,7 +4,7 @@
%% David Carlisle
%% (C) Copyright 2004-2008 Frank Mittelbach,
%% The LaTeX3 Project
-%% (C) Copyright 2009-2017 The LaTeX3 Project
+%% (C) Copyright 2009-2018 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
@@ -27,8 +27,8 @@
%<*driver|package>
% The version of expl3 required is tested as early as possible, as
% some really old versions do not define \ProvidesExplPackage.
-\RequirePackage{expl3}[2018/02/21]
-%<package>\@ifpackagelater{expl3}{2018/02/21}
+\RequirePackage{expl3}[2018-04-12]
+%<package>\@ifpackagelater{expl3}{2018-04-12}
%<package> {}
%<package> {%
%<package> \PackageError{xparse}{Support package l3kernel too old}
@@ -67,7 +67,7 @@
% }^^A
% }
%
-% \date{Released 2018/02/21}
+% \date{Released 2018-04-30}
%
% \maketitle
%
@@ -130,8 +130,6 @@
% Regardless of the input, the argument will be passed to the
% internal code surrounded by a brace pair. This is the \pkg{xparse}
% type specifier for a normal \TeX{} argument.
-% \item[l] An argument which reads everything up to the first
-% begin-group token: in standard \LaTeX{} this is a left brace.
% \item[r] Reads a \enquote{required} delimited argument, where the
% delimiters are given as \meta{char1} and \meta{char2}:
% \texttt{r}\meta{char1}\meta{char2}. If the opening \meta{character}
@@ -140,9 +138,6 @@
% \item[R] As for \texttt{r}, this is a \enquote{required} delimited
% argument but has a user-definable recovery \meta{default}, given
% as \texttt{R}\meta{char1}\meta{char2}\marg{default}.
-% \item[u] Reads an argument \enquote{until} \meta{tokens} are encountered,
-% where the desired \meta{tokens} are given as an argument to the
-% specifier: \texttt{u}\marg{tokens}.
% \item[v] Reads an argument \enquote{verbatim}, between the following
% character and its next occurrence, in a way similar to the argument
% of the \LaTeXe{} command \cs{verb}. Thus a \texttt{v}-type argument
@@ -174,11 +169,6 @@
% \item[t] An optional \meta{char}, which will result in a value
% \cs{BooleanTrue} if \meta{char} is present and \cs{BooleanFalse}
% otherwise. Given as \texttt{t}\meta{char}.
-% \item[g] An optional argument given inside a pair of \TeX{} group
-% tokens (in standard \LaTeX, |{| \ldots |}|), which returns
-% |-NoValue-| if not present.
-% \item[G] As for \texttt{g} but returns \meta{default} if no value
-% is given: \texttt{G}\marg{default}.
% \item[e] A set of optional \emph{embellishments}, each of which
% requires a \emph{value}: \texttt{e}\marg{chars}. If an
% embellishment is not present, |-NoValue-| is returned. Each
@@ -257,6 +247,20 @@
% arguments, but also to \texttt{g} or \texttt{G} type arguments
% followed by \texttt{m} type arguments.
%
+% As \pkg{xparse} is also used to describe interfaces that have appeared
+% in the wider \LaTeXe{} eco-system, it also defines additional argument
+% types, described in Section~\ref{sec:backwards}: the mandatory types
+% \texttt{l} and \texttt{u} and the optional brace group types
+% \texttt{g} and \texttt{G}. Their use is not recommended because it is
+% simpler for a user if all packages use a similar syntax. For the same
+% reason, delimited arguments \texttt{r}, \texttt{R}, \texttt{d} and
+% \texttt{D} should normally use delimiters that are naturally paired,
+% such as |[| and |]| or |(| and |)|, or that are identical, such as |"|
+% and~|"|. A very common syntax is to have one optional argument
+% \texttt{o} treated as a key--value list (using for instance
+% \pkg{l3keys}) followed by some mandatory arguments~\texttt{m} (or
+% \texttt{+m}).
+%
% \subsection{Spacing and optional arguments}
%
% \TeX{} will find the first argument after a function name irrespective
@@ -270,20 +274,31 @@
% \end{verbatim}
% the user input |\foo{arg1}[arg2]{arg3}| and
% \verb*|\foo{arg1} [arg2] {arg3}| will both be parsed in the same
-% way. However, spaces are \emph{not} ignored when parsing optional
-% arguments after the last mandatory argument. Thus with
+% way.
+%
+% The behavior of optional arguments \emph{after} any mandatory arguments is
+% selectable. The standard settings will allow spaces here, and thus
+% with
% \begin{verbatim}
% \NewDocumentCommand \foobar { m o } { ... }
% \end{verbatim}
-% |\foobar{arg1}[arg2]| will find an optional argument but
-% \verb*|\foobar{arg1} [arg2]| will not. This is so that trailing optional
-% arguments are not picked up \enquote{by accident} in input.
-%
-% There is one major exception to the rules listed above: when
-% \pkg{xparse} is used to define what \TeX\ defines as \enquote{control
-% symbols} in which the function name is made up of a single character,
-% such as \enquote{\cmd{\\}}, spaces are \emph{not} ignored directly
-% after them even for mandatory arguments.
+% both |\foobar{arg1}[arg2]| and \verb*|\foobar{arg1} [arg2]| will find an
+% optional argument. This can be changed by giving the modified |!| in
+% the argument specification:
+% \begin{verbatim}
+% \NewDocumentCommand \foobar { m !o } { ... }
+% \end{verbatim}
+% where \verb*|\foobar{arg1} [arg2]| will not find an optional argument.
+%
+% There is one subtly here due to the difference in handling by \TeX{}
+% of \enquote{control symbols}, where the command name is made up of a single
+% character, such as \enquote{\cmd{\\}}. Spaces are not ignored by \TeX{}
+% here, and thus it is possible to require an optional argument directly
+% follow such a command. The most common example is the use of \cmd{\\} in
+% \pkg{amsmath} environments. In \pkg{xparse} terms it has signature
+% \begin{verbatim}
+% \DeclareDocumentCommad \\ { !s !o } { ... }
+% \end{verbatim}
%
% \subsection{Required delimited arguments}
%
@@ -761,6 +776,33 @@
% \end{verbatim}
% this may be suppressed and no information messages are produced.
%
+% \section{Backwards Compatibility}
+% \label{sec:backwards}
+%
+% One role of \pkg{xparse} is to describe existing \LaTeX{} interfaces,
+% including some that are rather unusual in \LaTeX{} (as opposed to
+% formats such as plain \TeX{}) such as delimited arguments. As such,
+% the package defines some argument specifiers that should largely be
+% avoided nowadays as using them in packages leads to inconsistent user
+% interfaces. The simplest syntax is often best, with argument
+% specifications such as |mmmm| or |ommmm|, namely an optional argument
+% followed by some standard mandatory ones. The optional argument can
+% be made to support key--value syntax using tools from \pkg{l3keys}.
+%
+% The argument types that are not recommended any longer are:
+% \begin{itemize}[font=\ttfamily]
+% \item[l] A mandatory argument which reads everything up to the first
+% begin-group token: in standard \LaTeX{} this is a left brace.
+% \item[u] Reads a mandatory argument \enquote{until} \meta{tokens} are encountered,
+% where the desired \meta{tokens} are given as an argument to the
+% specifier: \texttt{u}\marg{tokens}.
+% \item[g] An optional argument given inside a pair of \TeX{} group
+% tokens (in standard \LaTeX{}, |{| \ldots |}|), which returns
+% |-NoValue-| if not present.
+% \item[G] As for \texttt{g} but returns \meta{default} if no value
+% is given: \texttt{G}\marg{default}.
+% \end{itemize}
+%
% \end{documentation}
%
% \begin{implementation}
@@ -776,7 +818,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xparse}{2018/02/21}{}
+\ProvidesExplPackage{xparse}{2018-04-30}{}
{L3 Experimental document command parser}
% \end{macrocode}
%
@@ -929,6 +971,13 @@
% \end{macrocode}
% \end{variable}
%
+% \begin{variable}{\l_@@_ignore_spaces_bool}
+% For trailing optionals.
+% \begin{macrocode}
+\bool_new:N \l_@@_ignore_spaces_bool
+% \end{macrocode}
+% \end{variable}
+%
% \begin{variable}{\l_@@_m_args_int}
% The number of \texttt{m} arguments: if this is the same as the total
% number of arguments, then a short-cut can be taken in the creation of
@@ -1527,6 +1576,7 @@
\bool_set_false:N \l_@@_long_bool
\bool_set_false:N \l_@@_some_long_bool
\bool_set_false:N \l_@@_some_short_bool
+ \bool_set_false:N \l_@@_ignore_spaces_bool
\@@_normalize_arg_spec_loop:n #1
\q_recursion_tail \q_recursion_tail \q_recursion_tail \q_recursion_stop
\int_compare:nNnT \l_@@_current_arg_int > 9
@@ -1615,6 +1665,7 @@
% {
% \@@_normalize_type_>:w,
% \@@_normalize_type_+:w,
+% \@@_normalize_type_!:w,
% }
% Check that these prefixes have arguments, namely that the next token
% is not \cs{q_recursion_tail}, and remember to leave it after the
@@ -1645,6 +1696,13 @@
\int_decr:N \l_@@_current_arg_int
\@@_normalize_arg_spec_loop:n {#1}
}
+\cs_new_protected:cpn { @@_normalize_type_!:w } #1
+ {
+ \quark_if_recursion_tail_stop_do:nn {#1} { \@@_bad_arg_spec:wn }
+ \tl_put_right:Nn \l_@@_arg_spec_tl { ! }
+ \int_decr:N \l_@@_current_arg_int
+ \@@_normalize_arg_spec_loop:n {#1}
+ }
% \end{macrocode}
% \end{macro}
%
@@ -1793,7 +1851,7 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_single_char_check:n #1
{
- \exp_args:Nx \tl_if_single_token:nTF { \tl_trim_spaces:n {#1} }
+ \tl_trim_spaces_apply:nN {#1} \tl_if_single_token:nTF
{
\group_begin:
\tex_escapechar:D = 92 \scan_stop:
@@ -1923,6 +1981,7 @@
{
\int_zero:N \l_@@_current_arg_int
\bool_set_false:N \l_@@_long_bool
+ \bool_set_false:N \l_@@_ignore_spaces_bool
\int_zero:N \l_@@_m_args_int
\bool_set_false:N \l_@@_defaults_bool
\tl_clear:N \l_@@_defaults_tl
@@ -1991,6 +2050,19 @@
% \end{macrocode}
% \end{macro}
%
+% \begin{macro}{\@@_add_type_!:w}
+% Much the same for controlling trailing optional arguments.
+% \begin{macrocode}
+\cs_new_protected:cpn { @@_add_type_!:w }
+ {
+ \@@_flush_m_args:
+ \bool_set_true:N \l_@@_ignore_spaces_bool
+ \bool_set_true:N \l_@@_prefixed_bool
+ \@@_prepare_signature_bypass:N
+ }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\@@_add_type_>:w}
% When a processor is found, the processor code is stored. It will be
% used by \cs{@@_args_process:} once arguments are all found. Here,
@@ -2195,12 +2267,15 @@
{
@@_grab_ #1
\bool_if:NT \l_@@_long_bool { _long }
- \int_compare:nNnF \l_@@_mandatory_args_int > 0
- { _trailing }
+ \bool_lazy_and:nnT
+ { \l_@@_ignore_spaces_bool }
+ { \int_compare_p:nNn \l_@@_mandatory_args_int = 0 }
+ { _ignore_spaces }
:w
}
}
\bool_set_false:N \l_@@_long_bool
+ \bool_set_false:N \l_@@_ignore_spaces_bool
\tl_put_right:Nx \l_@@_process_all_tl
{ { \exp_not:o \l_@@_process_one_tl } }
\tl_clear:N \l_@@_process_one_tl
@@ -2498,8 +2573,8 @@
%
% \begin{macro}{\@@_grab_D:w}
% \begin{macro}{\@@_grab_D_long:w}
-% \begin{macro}{\@@_grab_D_trailing:w}
-% \begin{macro}{\@@_grab_D_long_trailing:w}
+% \begin{macro}{\@@_grab_D_ignore_spaces:w}
+% \begin{macro}{\@@_grab_D_long_ignore_spaces:w}
% The generic delimited argument grabber. The auxiliary function does
% a peek test before calling \cs{@@_grab_D_call:Nw}, so that the
% optional nature of the argument works as expected.
@@ -2514,9 +2589,9 @@
\@@_grab_D_aux:NNnNn #1 #2 {#3} \cs_set_protected:Npn
{ _ignore_spaces }
}
-\cs_new_protected:Npn \@@_grab_D_trailing:w #1#2#3 \@@_run_code:
+\cs_new_protected:Npn \@@_grab_D_ignore_spaces:w #1#2#3 \@@_run_code:
{ \@@_grab_D_aux:NNnNn #1 #2 {#3} \cs_set_protected_nopar:Npn { } }
-\cs_new_protected:Npn \@@_grab_D_long_trailing:w #1#2#3 \@@_run_code:
+\cs_new_protected:Npn \@@_grab_D_long_ignore_spaces:w #1#2#3 \@@_run_code:
{ \@@_grab_D_aux:NNnNn #1 #2 {#3} \cs_set_protected:Npn { } }
% \end{macrocode}
% \begin{macro}{\@@_grab_D_aux:NNnNn}
@@ -2668,7 +2743,7 @@
% \begin{macro}
% {
% \@@_grab_E:w, \@@_grab_E_long:w,
-% \@@_grab_E_trailing:w, \@@_grab_E_long_trailing:w
+% \@@_grab_E_ignore_spaces:w, \@@_grab_E_long_ignore_spaces:w
% }
% \begin{macro}{\@@_grab_E:nnNn}
% \begin{macro}{\@@_grab_E_loop:nnN}
@@ -2687,13 +2762,13 @@
\cs_set_protected:Npn
{ _ignore_spaces }
}
-\cs_new_protected:Npn \@@_grab_E_trailing:w #1#2 \@@_run_code:
+\cs_new_protected:Npn \@@_grab_E_ignore_spaces:w #1#2 \@@_run_code:
{
\@@_grab_E:nnNn {#1} {#2}
\cs_set_protected_nopar:Npn
{ }
}
-\cs_new_protected:Npn \@@_grab_E_long_trailing:w #1#2 \@@_run_code:
+\cs_new_protected:Npn \@@_grab_E_long_ignore_spaces:w #1#2 \@@_run_code:
{
\@@_grab_E:nnNn {#1} {#2}
\cs_set_protected:Npn
@@ -2746,11 +2821,11 @@
%
% \begin{macro}{\@@_grab_G:w}
% \begin{macro}{\@@_grab_G_long:w}
-% \begin{macro}{\@@_grab_G_trailing:w}
-% \begin{macro}{\@@_grab_G_long_trailing:w}
+% \begin{macro}{\@@_grab_G_ignore_spaces:w}
+% \begin{macro}{\@@_grab_G_long_ignore_spaces:w}
% \begin{macro}{\@@_grab_G_aux:nNn}
% Optional groups are checked by meaning, so that the same code will
-% work with, for example, Con\TeX{}t-like input.
+% work with, for example, \ConTeXt{}-like input.
% \begin{macrocode}
\cs_new_protected:Npn \@@_grab_G:w #1 \@@_run_code:
{
@@ -2761,9 +2836,9 @@
{
\@@_grab_G_aux:nNn {#1} \cs_set_protected:Npn { _ignore_spaces }
}
-\cs_new_protected:Npn \@@_grab_G_trailing:w #1 \@@_run_code:
+\cs_new_protected:Npn \@@_grab_G_ignore_spaces:w #1 \@@_run_code:
{ \@@_grab_G_aux:nNn {#1} \cs_set_protected_nopar:Npn { } }
-\cs_new_protected:Npn \@@_grab_G_long_trailing:w #1 \@@_run_code:
+\cs_new_protected:Npn \@@_grab_G_long_ignore_spaces:w #1 \@@_run_code:
{ \@@_grab_G_aux:nNn {#1} \cs_set_protected:Npn { } }
\cs_new_protected:Npn \@@_grab_G_aux:nNn #1#2#3
{
@@ -2938,8 +3013,8 @@
%
% \begin{macro}{\@@_grab_t:w}
% \begin{macro}{\@@_grab_t_long:w}
-% \begin{macro}{\@@_grab_t_trailing:w}
-% \begin{macro}{\@@_grab_t_long_trailing:w}
+% \begin{macro}{\@@_grab_t_ignore_spaces:w}
+% \begin{macro}{\@@_grab_t_long_ignore_spaces:w}
% \begin{macro}{\@@_grab_t_aux:NNw}
% Dealing with a token is quite easy. Check the match, remove the
% token if needed and add a flag to the output.
@@ -2947,9 +3022,9 @@
\cs_new_protected:Npn \@@_grab_t:w
{ \@@_grab_t_aux:NNw \peek_meaning_remove_ignore_spaces:NTF }
\cs_new_eq:NN \@@_grab_t_long:w \@@_grab_t:w
-\cs_new_protected:Npn \@@_grab_t_trailing:w
+\cs_new_protected:Npn \@@_grab_t_ignore_spaces:w
{ \@@_grab_t_aux:NNw \peek_meaning_remove:NTF }
-\cs_new_eq:NN \@@_grab_t_long_trailing:w \@@_grab_t_trailing:w
+\cs_new_eq:NN \@@_grab_t_long_ignore_spaces:w \@@_grab_t_ignore_spaces:w
\cs_new_protected:Npn \@@_grab_t_aux:NNw #1#2#3 \@@_run_code:
{
\tl_set:Nn \l_@@_signature_tl {#3}
@@ -3895,7 +3970,7 @@
% local must be closed.
% \begin{macrocode}
\cs_new_protected:Npn \@@_check_definable:nNT #1
- { \exp_args:Nx \@@_check_definable_aux:nN { \tl_trim_spaces:n {#1} } }
+ { \tl_trim_spaces_apply:nN {#1} \@@_check_definable_aux:nN }
\group_begin:
\char_set_catcode_active:n { `? }
\cs_new_protected:Npn \@@_check_definable_aux:nN #1#2
@@ -3998,7 +4073,6 @@
\__kernel_msg_new:nnnn { xparse } { bad-arg-spec }
{ Bad~argument~specification~'#2'~for~command~'#1'. }
{
- \c__msg_coding_error_text_tl
The~argument~specification~provided~was~not~valid:~
one~or~more~mandatory~pieces~of~information~were~missing. \\ \\
LaTeX~will~ignore~this~entire~definition.
@@ -4037,7 +4111,6 @@
ends~with~optional~argument.
}
{
- \c__msg_coding_error_text_tl
Expandable~commands~must~have~a~final~mandatory~argument~
(or~no~arguments~at~all).~You~cannot~have~a~terminal~optional~
argument~with~expandable~commands.
@@ -4045,21 +4118,18 @@
\__kernel_msg_new:nnnn { xparse } { if-boolean }
{ Invalid~use~\iow_char:N\\IfBooleanTF~{#1} }
{
- \c__msg_coding_error_text_tl
The~first~argument~of~\iow_char:N\\IfBoolean(TF/T/F)~must~be~
a~boolean~argument~obtained~from~parsing~'s'~or~'t'~arguments.
}
\__kernel_msg_new:nnnn { xparse } { inconsistent-long }
{ Inconsistent~long~arguments~for~expandable~command~'#1'. }
{
- \c__msg_coding_error_text_tl
The~arguments~for~an~expandable~command~must~not~involve~short~
arguments~after~long~arguments.~You~have~tried~to~mix~the~two~types.
}
\__kernel_msg_new:nnnn { xparse } { invalid-expandable-argument-type }
{ Argument~type~'#2'~not~available~for~expandable~command~'#1'. }
{
- \c__msg_coding_error_text_tl
The~letter~'#2'~does~not~specify~an~argument~type~which~can~be~used~
in~an~expandable~command.
\\ \\
@@ -4071,7 +4141,6 @@
for~expandable~command~'#1'.
}
{
- \c__msg_coding_error_text_tl
The~letter~'#2'~does~not~specify~an~argument~type~which~can~be~used~
in~an~expandable~command~after~an~optional~argument.
\\ \\
@@ -4080,7 +4149,6 @@
\__kernel_msg_new:nnnn { xparse } { loop-in-defaults }
{ Circular~dependency~in~defaults~of~'#1'. }
{
- \c__msg_coding_error_text_tl
The~default~values~of~two~or~more~arguments~of~'#1'~depend~on~each~
other~in~a~way~that~cannot~be~resolved.
}
@@ -4105,7 +4173,6 @@
\__kernel_msg_new:nnnn { xparse } { not-definable }
{ First~argument~of~'#2'~must~be~a~command. }
{
- \c__msg_coding_error_text_tl
The~first~argument~of~'#2'~should~be~the~document~command~that~will~
be~defined.~The~provided~argument~'#1'~is~a~character.~Perhaps~a~
backslash~is~missing?
@@ -4115,7 +4182,6 @@
\__kernel_msg_new:nnnn { xparse } { not-one-token }
{ First~argument~of~'#2'~must~be~a~command. }
{
- \c__msg_coding_error_text_tl
The~first~argument~of~'#2'~should~be~the~document~command~that~will~
be~defined.~The~provided~argument~'#1'~contains~more~than~one~
token.
@@ -4128,7 +4194,6 @@
a~single~character.
}
{
- \c__msg_coding_error_text_tl
The~argument~specification~provided~was~not~valid:~in~a~place~
where~a~single~character~is~required,~LaTeX~found~'#2'. \\ \\
LaTeX~will~ignore~this~entire~definition.
@@ -4136,7 +4201,6 @@
\__kernel_msg_new:nnnn { xparse } { processor-in-expandable }
{ Argument~processor~'>{#2}'~cannot~be~used~for~the~expandable~command~'#1'. }
{
- \c__msg_coding_error_text_tl
The~argument~specification~for~#1~contains~a~processor~function:~
this~is~only~supported~for~standard~robust~commands. \\ \\
LaTeX~will~ignore~this~entire~definition.
@@ -4151,7 +4215,6 @@
\__kernel_msg_new:nnnn { xparse } { too-many-arguments }
{ Too~many~arguments~in~argument~specification~'#2'~of~command~'#1'. }
{
- \c__msg_coding_error_text_tl
The~argument~specification~provided~has~more~than~9~arguments.~
This~cannot~be~implemented. \\ \\
LaTeX~will~ignore~this~entire~definition.
@@ -4159,7 +4222,6 @@
\__kernel_msg_new:nnnn { xparse } { unknown-argument-type }
{ Unknown~argument~type~'#2'~for~the~command~'#1'. }
{
- \c__msg_coding_error_text_tl
The~letter~'#2'~does~not~specify~a~known~argument~type.~
LaTeX~will~ignore~this~entire~definition.
}
diff --git a/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx b/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx
index b2cbbdb5d0f..0a951ea3ee8 100644
--- a/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx
+++ b/Master/texmf-dist/source/latex/l3packages/xtemplate/xtemplate.dtx
@@ -4,7 +4,7 @@
%% David Carlisle
%% (C) Copyright 2004-2010 Frank Mittelbach,
%% The LaTeX3 Project
-%% (C) Copyright 2011-2017 The LaTeX3 Project
+%% (C) Copyright 2011-2018 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
@@ -63,7 +63,7 @@
% }^^A
% }
%
-% \date{Released 2018/02/21}
+% \date{Released 2018-04-30}
%
% \maketitle
%
@@ -682,7 +682,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xtemplate}{2018/02/21}{}
+\ProvidesExplPackage{xtemplate}{2018-04-30}{}
{L3 Experimental prototype document functions}
% \end{macrocode}
%
@@ -2576,7 +2576,6 @@
\msg_new:nnnn { xtemplate } { argument-number-mismatch }
{ Object~type~'#1'~takes~#2~argument(s). }
{
- \c__msg_coding_error_text_tl
Objects~of~type~'#1'~require~#2~argument(s).\\
You~have~tried~to~make~a~template~for~'#1'~
with~#3~argument(s),~which~is~not~possible:~
@@ -2585,7 +2584,6 @@
\msg_new:nnnn { xtemplate } { bad-number-of-arguments }
{ Bad~number~of~arguments~for~object~type~'#1'. }
{
- \c__msg_coding_error_text_tl
An~object~may~accept~between~0~and~9~arguments.\\
You~asked~to~use~#2~arguments:~this~is~not~supported.
}
@@ -2607,7 +2605,6 @@
\msg_new:nnnn { xtemplate } { choice-no-code }
{ The~choice~'#1'~requires~implementation~details. }
{
- \c__msg_coding_error_text_tl
When~creating~template~code~using~\DeclareTemplateCode,~
each~choice~name~must~have~an~associated~implementation.\\
This~should~be~given~after~a~'='~sign:~LaTeX~did~not~find~one.
@@ -2615,7 +2612,6 @@
\msg_new:nnnn { xtemplate } { duplicate-key-interface }
{ Key~'#1'~appears~twice~in~interface~definition~\msg_line_context:. }
{
- \c__msg_coding_error_text_tl
Each~key~can~only~have~one~interface~declared~in~a~template.\\
LaTeX~found~two~interfaces~for~'#1'.
}
@@ -2629,7 +2625,6 @@
\msg_new:nnnn { xtemplate } { invalid-keytype }
{ The~key~'#1'~is~missing~a~key-type~\msg_line_context:. }
{
- \c__msg_coding_error_text_tl
Each~key~in~a~template~requires~a~key-type,~given~in~the~form:\\
\ \ <key>~:~<key-type>\\
LaTeX~could~not~find~a~<key-type>~in~your~input.
@@ -2637,7 +2632,6 @@
\msg_new:nnnn { xtemplate } { key-no-value }
{ The~key~'#1'~has~no~value~\msg_line_context:. }
{
- \c__msg_coding_error_text_tl
When~creating~an~instance~of~a~template~
every~key~listed~must~include~a~value:\\
\ \ <key>~=~<value>
@@ -2645,7 +2639,6 @@
\msg_new:nnnn { xtemplate } { key-no-variable }
{ The~key~'#1'~requires~implementation~details~\msg_line_context:. }
{
- \c__msg_coding_error_text_tl
When~creating~template~code~using~\DeclareTemplateCode,~
each~key~name~must~have~an~associated~implementation.\\
This~should~be~given~after~a~'='~sign:~LaTeX~did~not~find~one.
@@ -2653,7 +2646,6 @@
\msg_new:nnnn { xtemplate } { key-not-implemented }
{ Key~'#1'~has~no~implementation~\msg_line_context:. }
{
- \c__msg_coding_error_text_tl
The~definition~of~key~implementations~for~template~'#2'~
of~object~type~'#3'~does~not~include~any~details~for~key~'#1'.\\
The~key~was~declared~in~the~interface~definition,~
@@ -2662,7 +2654,6 @@
\msg_new:nnnn { xtemplate } { missing-keytype }
{ The~key~'#1'~is~missing~a~key-type~\msg_line_context:. }
{
- \c__msg_coding_error_text_tl
Key~interface~definitions~should~be~of~the~form\\
\ \ #1~:~<key-type>\\
but~LaTeX~could~not~find~a~<key-type>.
@@ -2673,7 +2664,6 @@
or~has~no~implementation.
}
{
- \c__msg_coding_error_text_tl
There~is~no~code~available~for~the~template~name~given.\\
This~should~be~given~using~\DeclareTemplateCode.
}
@@ -2711,14 +2701,12 @@
\msg_new:nnnn { xtemplate } { unknown-key }
{ Unknown~template~key~'#1'. }
{
- \c__msg_coding_error_text_tl
The~key~'#1'~was~not~declared~in~the~interface~
for~the~current~template.
}
\msg_new:nnnn { xtemplate } { unknown-keytype }
{ The~key-type~'#1'~is~unknown. }
{
- \c__msg_coding_error_text_tl
Valid~key-types~are:\\
-~boolean;\\
-~choice;\\
@@ -2736,7 +2724,6 @@
\msg_new:nnnn { xtemplate } { unknown-object-type }
{ The~object~type~'#1'~is~unknown. }
{
- \c__msg_coding_error_text_tl
An~object~type~needs~to~be~declared~with~\DeclareObjectType
prior~to~using~it.
}