[NTG-context] Re: Re: nath catcode issues

Giuseppe Bilotta gip.bilotta at iol.it
Sat Aug 7 16:58:24 CEST 2004


Monday, July 5, 2004 Nikolai Weibull wrote:

> * Giuseppe Bilotta <gip.bilotta at iol.it> [Jul 05, 2004 14:00]:
>> Weird indeed. I'm not using the latest ConTeXt. (Actually I'm
>> quite back with the updates ... gotta get down to it.) I'll see
>> if upgrading gives me the same problem and in case get a fix.

> OK.

I'm now using

ConTeXt  ver: 2004.6.30  fmt: 2004.7.27  int: english  mes: english

and your example

\usemodule[nath]

\starttext

$a, b, \dots, n$
\[
a=b, \dots c=d \dots
\]
\stoptext

uses, in order, \ldots, \ldots, \cdots which sounds like the
correct behaviour to me. The engine is

This is pdfeTeX, Version 3.141592-1.20a-rc4-2.1 (MiKTeX 2.4)


>> >> \def\over{\ifmmode\n at err{Disabled command \string\over }
>> >>  {No more a valid command. Replace {A \over B} with \frac A
>> >>  B.}\else\o at over\fi}
>> >> \def\atop{\ifmmode\n at err{Disabled command \string\atop }
>> >>  {No more a valid command. Use array instead.}\else\o at atop\fi}
>> >> \def\choose{\ifmmode\n at err{Disabled command \string\choose }
>> >>  {No more a valid command. Replace {A \choose B} with \binom A
>> >>  B.}\else\o at choose\fi}
>>
>> > Ah, of course...
>> > 	nikolai
>>
>> It works like that? Excellent.

> It seems I spoke too soon.  It does in fact not work.  \o at over can't be
> put like that inside the if-statement.  A suggestion would be to re-work
> the whole section and instead make it

> \appendtoks
> \def\over{\n at err{Disabled command \string\over }
>  {No more a valid command. Replace {A \string\over B} with \string\frac A B.}}
> \def\atop{\n at err{Disabled command \string\atop }
>  {No more a valid command. Use array instead.}}
> \def\choose{\n at err{Disabled command \string\choose }
>  {No more a valid command. Replace {A \string\choose B}
> with \string\binom A B. >>> }}
> \to\everymath

> but I don't know if that's a good solution.  It forces you to use
> \string\over in the second argument to \n at err which I don't understand
> why, but otherwise TeX runs out of stack space.  I suppose it's being
> expanded even though it shouldn't be.
> 	nikolai

Also, I'm not sure that will work with text inside math. Can
you design a small test case that uses \over (directly or
indirectly) in normal text and in some \text inside a math
environment so that I can see what solution works fine?

In the meantime, I'm thinking along the lines of something like

\def\over{%
 \ifmmode\n at err{Disabled command \string\over }
  {No more a valid command. Replace {A \over B} with \frac A B.}%
  \let\next\relax
 \else\let\next\o at over\fi\next}
\def\atop{%
 \ifmmode\n at err{Disabled command \string\atop }
  {No more a valid command. Use array instead.}%
  \let\next\relax
 \else\let\next\o at atop\fi\next}
\def\choose{%
 \ifmmode\n at err{Disabled command \string\choose }
  {No more a valid command. Replace {A \choose B} with \binom A B.}%
  \lext\next\relax
 \else\let\next\o at choose\fi\next}

which should be robust enough. Can you try it in the context
where my previous solution busted?

-- 
Giuseppe "Oblomov" Bilotta



More information about the ntg-context mailing list