[latex3-commits] [latex3/latex3] main: Round out \use_i:nn... functions (fixes #1204) (537c97f79)

github at latex-project.org github at latex-project.org
Tue May 16 13:33:46 CEST 2023


Repository : https://github.com/latex3/latex3
On branch  : main
Link       : https://github.com/latex3/latex3/commit/537c97f7971a207626ea20767d84a1536b460de9

>---------------------------------------------------------------

commit 537c97f7971a207626ea20767d84a1536b460de9
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Tue May 16 12:33:46 2023 +0100

    Round out \use_i:nn... functions (fixes #1204)


>---------------------------------------------------------------

537c97f7971a207626ea20767d84a1536b460de9
 l3kernel/CHANGELOG.md |   4 ++
 l3kernel/l3basics.dtx | 119 ++++++++++++++++++++++++++++++++------------------
 2 files changed, 80 insertions(+), 43 deletions(-)

diff --git a/l3kernel/CHANGELOG.md b/l3kernel/CHANGELOG.md
index 9b2db5427..2d937c53d 100644
--- a/l3kernel/CHANGELOG.md
+++ b/l3kernel/CHANGELOG.md
@@ -7,6 +7,10 @@ this project uses date-based 'snapshot' version identifiers.
 
 ## [Unreleased]
 
+### Added
+- Rounded out the `\use_i:nn...` functions to cover all cases taking
+  one argument from up to nine arguments
+
 ## [2023-05-15]
 
 ### Changed
diff --git a/l3kernel/l3basics.dtx b/l3kernel/l3basics.dtx
index fa09cc480..4790ddab9 100644
--- a/l3kernel/l3basics.dtx
+++ b/l3kernel/l3basics.dtx
@@ -925,52 +925,39 @@
 %   \end{texnote}
 % \end{function}
 %
-% \begin{function}[EXP]{\use_i:nn, \use_ii:nn}
+% \begin{function}[EXP]
+%   {
+%     \use_i:nn, \use_ii:nn ,
+%     \use_i:nnn , \use_ii:nnn , \use_iii:nnn , \use_i_ii:nnn ,
+%     \use_i:nnnn, \use_ii:nnnn, \use_iii:nnnn, \use_iv:nnnn  ,
+%     \use_i:nnnnn, \use_ii:nnnnn, \use_iii:nnnnn, \use_iv:nnnnn ,
+%       \use_v:nnnnn ,
+%     \use_i:nnnnnn, \use_ii:nnnnnn, \use_iii:nnnnnn, \use_iv:nnnnnn ,
+%       \use_v:nnnnnn , \use_vi:nnnnnn ,
+%     \use_i:nnnnnnn, \use_ii:nnnnnnn, \use_iii:nnnnnnn, \use_iv:nnnnnnn ,
+%       \use_v:nnnnnnn , \use_vi:nnnnnnn , \use_vii:nnnnnnn ,
+%     \use_i:nnnnnnnn, \use_ii:nnnnnnnn, \use_iii:nnnnnnnn, \use_iv:nnnnnnnn ,
+%       \use_v:nnnnnnnn , \use_vi:nnnnnnnn , \use_vii:nnnnnnnn , \use_vii:nnnnnnnn ,
+%     \use_i:nnnnnnnnn, \use_ii:nnnnnnnnn, \use_iii:nnnnnnnnn, \use_iv:nnnnnnnnn ,
+%       \use_v:nnnnnnnnn , \use_vi:nnnnnnnnn , \use_vii:nnnnnnnnn , \use_viii:nnnnnnnnn ,
+%       \use_ix:nnnnnnnnn
+%   }
 %    \begin{syntax}
 %     \cs{use_i:nn} \Arg{arg_1} \Arg{arg_2}
-%   \end{syntax}
-%   These functions absorb two arguments from the input stream. The function
-%   \cs{use_i:nn} discards the second argument, and leaves the content
-%   of the first argument in the input stream. \cs{use_ii:nn} discards
-%   the first argument and leaves the content of the second argument in
-%   the input stream.
-%   The category code
-%   of these tokens is also fixed (if it has not already been by
-%   some other absorption). A single expansion is needed for the
-%   functions to take effect.
-%   \begin{texnote}
-%     These are equivalent to \LaTeXe{}'s \tn{@firstoftwo} and
-%     \tn{@secondoftwo}.
-%   \end{texnote}
-% \end{function}
-%
-% \begin{function}[EXP]{\use_i:nnn, \use_ii:nnn, \use_iii:nnn}
-%   \begin{syntax}
 %     \cs{use_i:nnn} \Arg{arg_1} \Arg{arg_2} \Arg{arg_3}
-%   \end{syntax}
-%   These functions absorb three arguments from the input stream. The
-%   function \cs{use_i:nnn} discards the second and third arguments, and
-%   leaves the content of the first argument in the input stream.
-%   \cs{use_ii:nnn} and \cs{use_iii:nnn} work similarly, leaving the
-%   content of second or third arguments in the input stream, respectively.
-%   The category code
-%   of these tokens is also fixed (if it has not already been by
-%   some other absorption). A single expansion is needed for the
-%   functions to take effect.
-% \end{function}
-%
-% \begin{function}[EXP]
-%   {\use_i:nnnn, \use_ii:nnnn, \use_iii:nnnn, \use_iv:nnnn}
-%   \begin{syntax}
 %     \cs{use_i:nnnn} \Arg{arg_1} \Arg{arg_2} \Arg{arg_3} \Arg{arg_4}
-%   \end{syntax}
-%   These functions absorb four arguments from the input stream. The
-%   function \cs{use_i:nnnn} discards the second, third and fourth
-%   arguments, and leaves the content of the first argument in the input
-%   stream.
-%   \cs{use_ii:nnnn}, \cs{use_iii:nnnn} and \cs{use_iv:nnnn} work similarly,
-%   leaving the content of second, third or fourth arguments in the input
-%   stream, respectively. The category code
+%     \cs{use_i:nnnnn} \Arg{arg_1} \Arg{arg_2} \Arg{arg_3} \Arg{arg_4} \Arg{arg_5}
+%     \cs{use_i:nnnnnn} \Arg{arg_1} \Arg{arg_2} \Arg{arg_3} \Arg{arg_4} \Arg{arg_5} \Arg{arg_6}
+%     \cs{use_i:nnnnnnn} \Arg{arg_1} \Arg{arg_2} \Arg{arg_3} \Arg{arg_4} \Arg{arg_5} \Arg{arg_6} \Arg{arg_7}
+%     \cs{use_i:nnnnnnnn} \Arg{arg_1} \Arg{arg_2} \Arg{arg_3} \Arg{arg_4} \Arg{arg_5} \Arg{arg_6} \Arg{arg_7} \Arg{arg_8}
+%     \cs{use_i:nnnnnnnnn} \Arg{arg_1} \Arg{arg_2} \Arg{arg_3} \Arg{arg_4} \Arg{arg_5} \Arg{arg_6} \Arg{arg_7} \Arg{arg_8} \Arg{arg_9}
+%   \end{syntax}
+%   These functions absorb a number ($n$) arguments from the input stream.
+%   They then discard all arguments other than that indicated by the roman
+%   numeral, which is left in the input stream. For example, \cs{use_i:nn}
+%   discards the second argument, and leaves the content of the first
+%   argument in the input stream.
+%   The category code
 %   of these tokens is also fixed (if it has not already been by
 %   some other absorption). A single expansion is needed for the
 %   functions to take effect.
@@ -1662,7 +1649,18 @@
 % \begin{macro}[EXP]
 %   {
 %     \use_i:nnn , \use_ii:nnn , \use_iii:nnn , \use_i_ii:nnn ,
-%     \use_i:nnnn, \use_ii:nnnn, \use_iii:nnnn, \use_iv:nnnn
+%     \use_i:nnnn, \use_ii:nnnn, \use_iii:nnnn, \use_iv:nnnn  ,
+%     \use_i:nnnnn, \use_ii:nnnnn, \use_iii:nnnnn, \use_iv:nnnnn ,
+%       \use_v:nnnnn ,
+%     \use_i:nnnnnn, \use_ii:nnnnnn, \use_iii:nnnnnn, \use_iv:nnnnnn ,
+%       \use_v:nnnnnn , \use_vi:nnnnnn ,
+%     \use_i:nnnnnnn, \use_ii:nnnnnnn, \use_iii:nnnnnnn, \use_iv:nnnnnnn ,
+%       \use_v:nnnnnnn , \use_vi:nnnnnnn , \use_vii:nnnnnnn ,
+%     \use_i:nnnnnnnn, \use_ii:nnnnnnnn, \use_iii:nnnnnnnn, \use_iv:nnnnnnnn ,
+%       \use_v:nnnnnnnn , \use_vi:nnnnnnnn , \use_vii:nnnnnnnn , \use_vii:nnnnnnnn ,
+%     \use_i:nnnnnnnnn, \use_ii:nnnnnnnnn, \use_iii:nnnnnnnnn, \use_iv:nnnnnnnnn ,
+%       \use_v:nnnnnnnnn , \use_vi:nnnnnnnnn , \use_vii:nnnnnnnnn , \use_viii:nnnnnnnnn ,
+%       \use_ix:nnnnnnnnn
 %   }
 %   We also need something for picking up arguments from a longer list.
 %    \begin{macrocode}
@@ -1674,6 +1672,41 @@
 \cs_set:Npn \use_ii:nnnn  #1#2#3#4 {#2}
 \cs_set:Npn \use_iii:nnnn #1#2#3#4 {#3}
 \cs_set:Npn \use_iv:nnnn  #1#2#3#4 {#4}
+\cs_set:Npn \use_i:nnnnn   #1#2#3#4#5 {#1}
+\cs_set:Npn \use_ii:nnnnn  #1#2#3#4#5 {#2}
+\cs_set:Npn \use_iii:nnnnn #1#2#3#4#5 {#3}
+\cs_set:Npn \use_iv:nnnnn  #1#2#3#4#5 {#4}
+\cs_set:Npn \use_v:nnnnn   #1#2#3#4#5 {#5}
+\cs_set:Npn \use_i:nnnnnn   #1#2#3#4#5#6 {#1}
+\cs_set:Npn \use_ii:nnnnnn  #1#2#3#4#5#6 {#2}
+\cs_set:Npn \use_iii:nnnnnn #1#2#3#4#5#6 {#3}
+\cs_set:Npn \use_iv:nnnnnn  #1#2#3#4#5#6 {#4}
+\cs_set:Npn \use_v:nnnnnn   #1#2#3#4#5#6 {#5}
+\cs_set:Npn \use_vi:nnnnnn  #1#2#3#4#5#6 {#6}
+\cs_set:Npn \use_i:nnnnnnn   #1#2#3#4#5#6#7 {#1}
+\cs_set:Npn \use_ii:nnnnnnn  #1#2#3#4#5#6#7 {#2}
+\cs_set:Npn \use_iii:nnnnnnn #1#2#3#4#5#6#7 {#3}
+\cs_set:Npn \use_iv:nnnnnnn  #1#2#3#4#5#6#7 {#4}
+\cs_set:Npn \use_v:nnnnnnn   #1#2#3#4#5#6#7 {#5}
+\cs_set:Npn \use_vi:nnnnnnn  #1#2#3#4#5#6#7 {#6}
+\cs_set:Npn \use_vii:nnnnnnn #1#2#3#4#5#6#7 {#7}
+\cs_set:Npn \use_i:nnnnnnnn    #1#2#3#4#5#6#7#8 {#1}
+\cs_set:Npn \use_ii:nnnnnnnn   #1#2#3#4#5#6#7#8 {#2}
+\cs_set:Npn \use_iii:nnnnnnnn  #1#2#3#4#5#6#7#8 {#3}
+\cs_set:Npn \use_iv:nnnnnnnn   #1#2#3#4#5#6#7#8 {#4}
+\cs_set:Npn \use_v:nnnnnnnn    #1#2#3#4#5#6#7#8 {#5}
+\cs_set:Npn \use_vi:nnnnnnnn   #1#2#3#4#5#6#7#8 {#6}
+\cs_set:Npn \use_vii:nnnnnnnn  #1#2#3#4#5#6#7#8 {#7}
+\cs_set:Npn \use_viii:nnnnnnnn #1#2#3#4#5#6#7#8 {#8}
+\cs_set:Npn \use_i:nnnnnnnnn    #1#2#3#4#5#6#7#8#9 {#1}
+\cs_set:Npn \use_ii:nnnnnnnnn   #1#2#3#4#5#6#7#8#9 {#2}
+\cs_set:Npn \use_iii:nnnnnnnnn  #1#2#3#4#5#6#7#8#9 {#3}
+\cs_set:Npn \use_iv:nnnnnnnnn   #1#2#3#4#5#6#7#8#9 {#4}
+\cs_set:Npn \use_v:nnnnnnnnn    #1#2#3#4#5#6#7#8#9 {#5}
+\cs_set:Npn \use_vi:nnnnnnnnn   #1#2#3#4#5#6#7#8#9 {#6}
+\cs_set:Npn \use_vii:nnnnnnnnn  #1#2#3#4#5#6#7#8#9 {#7}
+\cs_set:Npn \use_viii:nnnnnnnnn #1#2#3#4#5#6#7#8#9 {#8}
+\cs_set:Npn \use_ix:nnnnnnnnn   #1#2#3#4#5#6#7#8#9 {#9} 
 %    \end{macrocode}
 % \end{macro}
 %





More information about the latex3-commits mailing list.