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
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to