On Thu, 13 Jan 2011, Wolfgang Schuster wrote: > > 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. Untested: \def\lambdax{\math{\lambda_x}} should also work. Aditya