
Idris Samawi Hamid wrote:
That finally ocurred to me after you all were sleep yesterday-) Yes, the \unexpanded solves things.
I'm curious: how exactly does \unexpanded work? Is this an eTeX primitive?
\unexpanded is macro, but it normally expands to \protected, which is an eTeX primitive indeed. In 'normal' tex, it uses a macro approach to achieve a similar effect: it defines two macros instead of one. There will be \def\IBAR{\donottest\doIBAR} and it's accompagnying \def\doIBAR% ... your definition ConTeXt internals toggle the definition of \donottest depending on the surrounding environment, using \let\donottest\noexpand or \let\donottest\relax etc. This achieves the same effect as the eTeX primitive, but is not as robust. Cheers, Taco