> 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. David