[NTG-context] nath problems and patches

Christopher Creutzig ccr at mupad.de
Fri Aug 13 16:15:20 CEST 2004


Giuseppe,

  you may or may not know about these problems already, so I decided to 
simply send them all.  I'm using t-nath.tex 2003.12.08, updated five 
minutes ago from www.tug.org, ConTeXt 2004.6.26, and pdfeTeX 
3.14159-1.10b-2.1 (Web2C 7.4.5).

nath seems to have trouble with $$...$$-formulas. This file won't compile:

\usemodule[nath]

\starttext
\placeformula
$$a$$
\stoptext

Error message:
Runaway argument?
\@@dollar {\to \asciiB \ExpandBothAfter \doifincsnameelse \asciiA 
\asciiB \ETC.
! File ended while scanning use of \convertargument.

Replacing $$...$$ by \startformula...\stopformula fixes this, but the 
following file won't compile either:

\usemodule[nath]

\starttext
\placeformula
\startformula \sum_{i=0}^m a_i\stopformula
\stoptext


The culprit, it seems, is that \inlinemath uses \xdef, but \mathop@@@ 
puts unexpandable code into the argument of ^ and _.  The following 
hackery seems to work:

\def\mathop@@@{%
  \ifsp@
   ^{\hbox{\edef\noexpand\!!stringa%
	{\noexpand\noexpand\noexpand\imath@{\the\sp at toks}}%
    \def\noexpand\\{,\ }\noexpand\!!stringa}}
  \fi
  \ifsb@
   _{\hbox{\edef\noexpand\!!stringa%
	{\noexpand\noexpand\noexpand\imath@{\the\sb at toks}}%
    \def\noexpand\\{,\ }\noexpand\!!stringa}}
  \fi}

Though I must confess I don't understand why the complexity with 
introducing \!!stringa is needed.  The following version works for me:

\def\mathop@@@{%
  \pushmacro\\
  \def\\{\noexpand\text{, }}%
  \ifsp@
    ^{\the\sp at toks}%
  \fi
  \ifsb@
    _{\the\sb at toks}%
  \fi
  \popmacro\\}



Parentheses in display formulas don't work:
\usemodule[nath]
\starttext
\startformula (x) \stopformula
\stoptext

  I don't know if at some time ConTeXt placed \the\everymath inside 
\everydisplay, but with the current ConTeXt, you need to \appendtoks to 
both.  I regard the output as broken, but at least it will compile.



  Another bug: t-nath.tex defines \savecatcode and \restorecatcode, but 
these names have already been used in verb-ini.tex.  I have locally 
replaced these with \nath!savecatcode and \nath!restorecatcode, seems to 
work.



A math problem not related to nath:
\starttext
\setupformulae[align=left]
\startformula
   \eqalignno{a&=b\cr c&=d}
\stopformula
\stoptext

doesn't work for me.  Anyone else?


Regards,
	Christopher Creutzig

PS: I won't be able to read mails in the next four weeks.


More information about the ntg-context mailing list