On 28/05/2011 18:08, Bruno Le Floch wrote: > 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, > > \DeclareDocumentCommand{\X} > { > 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 > token.) I have to say my initial reaction is 'not keen'. While xparse is a 'glue' layer between LaTeX2e and LaTeX3, and may not make it to a LaTeX3 format, I think we don't want to encourage irregular input if we can avoid it. Do we _really_ want to suggest that this may even be considered as a good idea for a new format? On the other hand, I guess it does fall within the 'parsing' remit of xparse, and may be something that is occasionally useful. I'd like to see a real use case, I guess. Joseph