By the way, I wasn't really serious about dropping trailing optional arguments. > > \bar{apa} cepa > > > > used to have a space, and \bar for some reason in a package needs to be > > extended > > On the other hand I don't think that a package author doing this would get > very happy customers It seems technically possible for xparse to store the info of whether it has skipped spaces or not, and put them back in case there was no optional argument. I quite like Frank's key-val + positional idea. However, I'd change it a little bit by getting rid of the trailing optional arguments part by delimiting the argument with (for instance) a semicolon. Uses of \\ could then be \\ ; \\ [3cm] ; \\ * [3cm] < color=normal, decoration=fancy-flowers > ; This combines nicely with an earlier discussion on document shorthands, noting that every document short-hand should really have a trailing \Marker; to prevent \TeX; from losing spaces. These short-hands could then easily be made to accept arguments by putting them before the marker. Bruno