On 11/05/2011 20:01, Bruno Le Floch wrote:
> Not quite true. For instance, amsmath redefined \\ not to skip spaces
> when looking for an optional argument, I believe. And that works
> because \\ is a control symbol, not a control word. I think this
> choice of behaviour really needs to be supported, since it leads to
> surprises for the end-user otherwise.
> 
>> really correct! (At the same time, the implementation would be slightly
>> easier to follow if this change was made.)
> 
> On the other hand, emulating LaTeX2e arguments with space skipping
> seems needed as well. Is it possible to get the best of the two worlds
> with a "o_no_skip" argument specifier? Or more generally a modifier,
> say K, which makes the next argument keep spaces (except perhaps for m
> arguments where it should produce an error)?
> 
> \DeclareDocumentCommand {\\} { Ks Ko } {...}

We did do that at one point, but the problem then became that there is
not a hard-and-fast rule. (While the AMS might be very clever in their
redefinition, I'd prefer to be consistent with things like the classic
"\item [" case even if it means rembering to do "\item{} [" and "\\{} [".)

(As a user, I'd like to see one reliable syntax, and not have to read
package documentation to explain why in one case "\foo{...} [...]" works
but in another case "\baz{...} [...]" fails.)
-- 
Joseph Wright