[NTG-context] extra math symbols and alignment

Aditya Mahajan adityam at umich.edu
Wed Aug 1 18:33:19 CEST 2007

Quoting WN <wneimeijer at tiscali.nl>:

> Hi Aditya
> I tried your code and performed more tests. My first tests show your fix
> works. But than I added a \section{} in my test code and I am sorry 
> to say that
> the math matrix alignment does not work at that point.
> However the extra math fonts I defined still do work.

Ok. I will test this to see what is happening. (I do not have an 
uptodate context on this machine).

> General observation
> I thought from the examples like using the RSFS font on the wiki page
> http://wiki.contextgarden.net/rsfs that using other fonts for math 
> should be easy.
> Thinking about this specific example I now understand that this 
> example is flawed
> as some default math characters are also overwritten.

I am out of depths here. I do not really understand how math fonts are 
handled. The wiki example was modified from a suggestion from Taco. For 
rsfs, you can go to the plain tex way of doing things also.


> PS
> Attached my modified test code along with the map file for the RSFS fonts.
> For the RSFS fonts I am using \definedfont and not using the definebodyfont.
>> Hi Wim,
>> On Tue, 31 Jul 2007, WN wrote:
>> see previous email
>> Phew! This was a hard to find bug. First, to illustrate the bug:
>> \definetypeface[mainface] [rm] [serif] [modern] [default] [encoding=texansi]
>> \definetypeface[mainface] [mm] [math]  [modern] [modern]  [encoding=texansi]
>> \setupbodyfont[mainface,11pt]
>> \loggingall
>> \starttext
>> \startformula
>> A = \startmatrix[align={left,right}]
>>   \NC 11 \NC 2  \NR
>>   \NC 2  \NC -5 \NR
>> \stopmatrix
>> \stopformula
>> \stoptext
>> Try with and without the font declarations. With the font 
>> declarations, you lost matrix alignment. The reason is that 
>> \startmatrix uses \scratchcounter, which gets rewritten when using a 
>> font collection other than "default". One fix it to replace 
>> \scractcounter in matrix constructions by some other counter, for 
>> example \!!counta.
>> So, add this to your file (beware of false line breaks in email)
>> \unprotect
>> \def\dostartmathmatrix[#1][#2]%
>>   {\begingroup
>>    \edef\currentmathmatrix{#1}%
>>    \doifassignmentelse{#2}{\setupmathmatrix[#1][#2]}\donothing
>>    \null
>> \executeifdefined{\??mx:\mathmatrixparameter\c!location}{\getvalue{\??mx:\v!lohi}}%
>>    \mathmatrixleft
>>    \mathmatrixbox\bgroup
>>    \pushmacro\domatrixNC
>>    \let\endmath\relax
>>    \def\NC{\domatrixNC}%
>>    \def\MC{\domatrixNC\ifmmode\else$\def\endmath{$}\fi}%
>>    \global\let\domatrixNC\dodomatrixNC
>>    \def\NR{\endmath\global\let\domatrixNC\dodomatrixNC\crcr}%
>>    \normalbaselines
>>    \mathsurround\zeropoint
>>    \everycr\emptytoks
>>    \tabskip\zeropoint
>>    \eqaligncolumn\zerocount % could be \!!counta
>> \processcommacommand[\mathmatrixparameter\c!align]{\advance\eqaligncolumn\plusone\dosetmatrixcolumn}%
>>    \!!counta=\ifnum\eqaligncolumn>\!!counta \eqaligncolumn \else 
>> \plusone \fi
>>    \global\eqaligncolumn\plusone
>>    \preparemathmatrix } % uses !!counta
>> \def\buildmathmatrix % beware: etex only
>>   {\scratchtoks\emptytoks
>>    \expanded{\scratchtoks{\the\scratchtoks\the\!!toksa}}%
>>    \dorecurse{\numexpr\!!counta-\plusone\relax}
>>      {\expanded{\scratchtoks{\the\scratchtoks\the\!!toksb}}}%
>>    \expanded{\scratchtoks{\the\scratchtoks\the\!!toksc }}}
>> \protect
>> Hans, this needs to be changed in core-mat.tex. I do not know if 
>> something can be done to avoid such errors in future.
>> Wim, I am attaching a modified version of your file which gives the 
>> correct output. (I needed to make some changes since I did not have 
>> your map file for rsfs). You loose some symbols from the math 
>> collection. I do not know how to add extra math symbol sets without 
>> loosing these characters. Look at math-tim.tex to see how more 
>> families can be supported. But I would suggest waiting for mkiv, 
>> where the limit on font families will be removed and some of this 
>> font mess would be cleaner.
>> Aditya

More information about the ntg-context mailing list