# [NTG-context] extra math symbols and alignment

Wed Aug 1 18:33:19 CEST 2007

Quoting WN <wneimeijer at tiscali.nl>:

>
> 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.
> 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
>>
>>    \!!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.
>>