Am 13.01.2011 um 17:18 schrieb Mathieu Boespflug:
Hi all,
today's beta introduced a really strange problem. Consider two source files:
definitions.tex: \startmodule[definitions] \def\lambdax{\lambda_x} \stopmodule[definitions]
main.tex: \usemodule[definitions] \starttext blah $\lambdax$ blah. \stoptext
This results in the following compile error:
! Undefined control sequence. \lambdax ->\lambda_x
l.5 blah $\lambdax $ blah. ?
However, if you change "\usemodule[definitions]" into "\input definitions" instead, then there is no compile error! My understanding is that the underscore is a valid character for macro names now outside of math mode, which is what is causing the problem. But I really don't understand what magic is going on in the modules code to trigger this.
I would be very interested in an explanation of what is going on.
You need \normalsubscript in your module. You define a command and in this case it doesn’t matter that you plan to use it in math mode, the _ is now a normal letter like “a” and this won’t change when you call \lambdax in your document. Write \def\lambdax{\lambda\normalsubscript x} and it will work again. Wolfgang