>> I just made a definition command that can produce commands >> having optional arguments > >You can not do this for commands that are to appear `mid word' without >breaking TeX's ligatures. You can not have *any* non expandable >command there. Even \relax which does `nothing' is too much. Compare > >ff with f\relax f > >So as Frank mentioned, `shortref' definitions are very constrained in >what they can have in their definition. They can not use \def or \let >or \futurelet or pretty much anything else that you normally would use >for parsing. they are more or less restricted to using >\if\noexpand#1? >... > >or >\expandafter\ifx\csname #1-xxx\endcsname\? >... > > >Well you can have optional arguments, perhaps by looking for [ with >these methods, but you could not use the normal \@ifnextchar mechanisms. But, continuing this theme of non-deterministic parsing, have you tried picking up say a whole word in advance, then doing some parsing of it (expanding all macros in it, and replacing it with a word where TeX might regonize it. More explicitly, one would type say <foo\a bar> Then the "<" would pick up the whole "foo\a bar>", expanding the \a, finally returning "foobar". Would it be possible to recognize a ligature "ob" by this method? (The example is otherwise entirely hypothetical.) Hans Aberg