On 16/05/2011, at 3:39 PM, Joseph Wright wrote:

> To me, that means
> 
>  \foo[...]{...}
> 
> is a possible, but I'd hope not
> 
>  \foo{...}[...]

I think there are enough examples on CTAN where people have needed to extend the optional argument syntax to indicate that the 2e model above is too restricted for user purposes.

Having said that, I do agree in some cases (such as \makebox[][]{}) an overload of optional arguments is also a bad idea, where a keyval interface makes more sense.

Dropping trailing optional arguments just doesn't feel right to me; in the interests of disclosure, however, at least two of the packages I've written (pstool and mlist) use them, so I'm clearly biased :)  Their interfaces could certainly be revised but I don't think (yet) in hindsight that the way the commands work therein is necessary a bad idea.

-- Will