LATEX-L Archives

Mailing list for the LaTeX3 project


Options: Use Classic View

Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Bruno Le Floch <[log in to unmask]>
Sat, 28 May 2011 13:08:11 -0400
text/plain (33 lines)
Hello all,

on the TeX.stackexchange Q&A website [1], was asked the following
question: how do I get with xparse a macro with three optional
arguments: <any number of *> <any number of '> <any positive integer>
(without the <>). This can be achieved by providing a new argument
type, which collects tokens as long as they obey a user-defined
condition. Namely,

    W { \token_if_eq_meaning:NNTF * }
    W { \token_if_eq_meaning:NNTF ' }
    W { \token_if_digit:NTF }
  { \tl_show:n { #1 | #2 | #3 | #4 } }

would declare \X to first grab tokens as long as they are equal in
meaning to *, then grab tokens as long as they are equal in meaning to
', and finally grab digit tokens.

Do you think that it would be useful to add yet another argument type
for that? (In the code I have now, I decided that the argument
grabbing would stop at the first { or space or }, or implicit such