Hi, The dsrom math font only works partially with MKIV, and I do not understand what is happening. Consider the following example from http://wiki.contextgarden.net/Doublestroke (which I wrote, after suggestions on the mailing list). One needs the fonts, which are part of TL and are also available at http://ctan.org/tex-archive/fonts/doublestroke/ %======================================================================= \loadmapfile[dstroke.map] \starttypescript [math] [modern,computer-modern,latin-modern,ams] [size] \definebodyfont [17.3pt,14.4pt,12pt][mm] [mb=dsrom12 sa 1] \definebodyfont [11pt,10pt,9pt] [mm] [mb=dsrom10 sa 1] \definebodyfont [8pt,7pt,6pt,5pt,4pt] [mm] [mb=dsrom8 sa 1] \stoptypescript \definetypeface [modern] [mm] [math] [modern] [ams] [encoding=texnansi] \setupbodyfont[reset,modern,10pt] \definefamilysynonym [default] [doublestroke] [mb] \def\dstroke {\fam\purefamily {doublestroke}} \def\doublestroke#1{{\dstroke#1}} \starttext $\doublestroke{E} \doublestroke{1}$ \stoptext %======================================================================= This works correctly in MKII (Both E and 1 are shown in dsrom font). However, in MKIV the 1 is shown in LM Roman rather than dsrom. Is this a bug in context font handling, or a bug in the typescript? I am using: context version: 2008.12.01 10:25 This is LuaTeX, Version snapshot-0.30.3-2008112812 Aditya
Am 24.12.2008 um 19:47 schrieb Aditya Mahajan:
Hi,
The dsrom math font only works partially with MKIV, and I do not understand what is happening. Consider the following example from http://wiki.contextgarden.net/Doublestroke (which I wrote, after suggestions on the mailing list). One needs the fonts, which are part of TL and are also available at http://ctan.org/tex-archive/fonts/doublestroke/
This works correctly in MKII (Both E and 1 are shown in dsrom font). However, in MKIV the 1 is shown in LM Roman rather than dsrom.
Is this a bug in context font handling, or a bug in the typescript?
I think in the font handling because \loadmapfile[dstroke.map] \starttypescript [math] [modern,computer-modern,latin-modern,ams] [size] \definebodyfont [17.3pt,14.4pt,12pt] [mm] [mr=dsrom12 sa 1] \definebodyfont [11pt,10pt,9pt] [mm] [mr=dsrom10 sa 1] \definebodyfont [8pt,7pt,6pt,5pt,4pt] [mm] [mr=dsrom8 sa 1] \stoptypescript \definetypeface [modern] [mm] [math] [modern] [ams] [encoding=texnansi] \setupbodyfont[modern,10pt] \definefamilysynonym [default] [doublestroke] [mr] \def\dstroke{\fam\purefamily{doublestroke}} \def\doublestroke#1{{\dstroke#1}} \starttext $\doublestroke{E} \doublestroke{1}$ \stoptext works with MkIV (I used mr). Wolfgang
On Wed, 24 Dec 2008, Wolfgang Schuster wrote:
Am 24.12.2008 um 19:47 schrieb Aditya Mahajan:
However, in MKIV the 1 is shown in LM Roman rather than dsrom.
Is this a bug in context font handling, or a bug in the typescript?
I think in the font handling because
[snip]
works with MkIV (I used mr).
I am now really confused. I thought that mr was just like any other math family, just predefined to a default. But the above example shows that this is not the case. Of course, I cannot use mr=dsrom in a complete document, since mr is the math roman font. Aditya
Aditya Mahajan wrote:
Hi,
The dsrom math font only works partially with MKIV, and I do not understand what is happening. Consider the following example from http://wiki.contextgarden.net/Doublestroke (which I wrote, after suggestions on the mailing list). One needs the fonts, which are part of TL and are also available at http://ctan.org/tex-archive/fonts/doublestroke/
%======================================================================= \loadmapfile[dstroke.map]
\starttypescript [math] [modern,computer-modern,latin-modern,ams] [size] \definebodyfont [17.3pt,14.4pt,12pt][mm] [mb=dsrom12 sa 1] \definebodyfont [11pt,10pt,9pt] [mm] [mb=dsrom10 sa 1] \definebodyfont [8pt,7pt,6pt,5pt,4pt] [mm] [mb=dsrom8 sa 1] \stoptypescript
\definetypeface [modern] [mm] [math] [modern] [ams] [encoding=texnansi] \setupbodyfont[reset,modern,10pt]
\definefamilysynonym [default] [doublestroke] [mb]
\def\dstroke {\fam\purefamily {doublestroke}}
\def\doublestroke#1{{\dstroke#1}}
\starttext $\doublestroke{E} \doublestroke{1}$ \stoptext %=======================================================================
This works correctly in MKII (Both E and 1 are shown in dsrom font). However, in MKIV the 1 is shown in LM Roman rather than dsrom.
Is this a bug in context font handling, or a bug in the typescript?
I am using: context version: 2008.12.01 10:25 This is LuaTeX, Version snapshot-0.30.3-2008112812
\def\doublestroke#1{{\fam\mbfam#1}} \starttext $\doublestroke{E} \doublestroke{1}$ \stoptext indeed does not give a dstroked 1 ... i wonder why; maybe something with the mathcodes ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
On Wed, 24 Dec 2008, Hans Hagen wrote:
Aditya Mahajan wrote:
Hi,
The dsrom math font only works partially with MKIV, and I do not understand what is happening. Consider the following example from http://wiki.contextgarden.net/Doublestroke (which I wrote, after suggestions on the mailing list). One needs the fonts, which are part of TL and are also available at http://ctan.org/tex-archive/fonts/doublestroke/
%======================================================================= \loadmapfile[dstroke.map]
\starttypescript [math] [modern,computer-modern,latin-modern,ams] [size] \definebodyfont [17.3pt,14.4pt,12pt][mm] [mb=dsrom12 sa 1] \definebodyfont [11pt,10pt,9pt] [mm] [mb=dsrom10 sa 1] \definebodyfont [8pt,7pt,6pt,5pt,4pt] [mm] [mb=dsrom8 sa 1] \stoptypescript
\definetypeface [modern] [mm] [math] [modern] [ams] [encoding=texnansi] \setupbodyfont[reset,modern,10pt]
\definefamilysynonym [default] [doublestroke] [mb]
\def\dstroke {\fam\purefamily {doublestroke}}
\def\doublestroke#1{{\dstroke#1}}
\starttext $\doublestroke{E} \doublestroke{1}$ \stoptext %=======================================================================
This works correctly in MKII (Both E and 1 are shown in dsrom font). However, in MKIV the 1 is shown in LM Roman rather than dsrom.
Is this a bug in context font handling, or a bug in the typescript?
I am using: context version: 2008.12.01 10:25 This is LuaTeX, Version snapshot-0.30.3-2008112812
\def\doublestroke#1{{\fam\mbfam#1}}
Thanks. I never understood why one needed to define such things using familysynonyms. The above defintition makes more sense. I will clean up the wiki examples for using other fonts.
\starttext $\doublestroke{E} \doublestroke{1}$ \stoptext
indeed does not give a dstroked 1 ... i wonder why; maybe something with the mathcodes
But why does it work if I replace mc by mr (as Wolfgang showed). Also, how can I check the mathcode of a character, other than going through the sources and figuring out where it is set. Aditya
Aditya Mahajan wrote:
But why does it work if I replace mc by mr (as Wolfgang showed). Also, how can I check the mathcode of a character, other than going through the sources and figuring out where it is set.
\message{\the\mathcode`\1 } And it is "0031. It should have been "7031 for variable family use. That is the value that initex initializes it to (that explains mkii). Mkiv sets the values explicitly (and incorrectly) In math-ini.lua: @@ -52,7 +52,7 @@ mathematics.classes.diacritic = mathematics.classes.accent mathematics.classes.large = mathematics.classes.op mathematics.classes.variable = mathematics.classes.alphabetic -mathematics.classes.number = mathematics.classes.nothing +mathematics.classes.number = mathematics.classes.alphabetic Best wishes, Taco
Taco Hoekwater wrote:
Aditya Mahajan wrote:
But why does it work if I replace mc by mr (as Wolfgang showed). Also, how can I check the mathcode of a character, other than going through the sources and figuring out where it is set.
\message{\the\mathcode`\1 }
And it is "0031. It should have been "7031 for variable family use. That is the value that initex initializes it to (that explains mkii). Mkiv sets the values explicitly (and incorrectly)
In math-ini.lua:
@@ -52,7 +52,7 @@ mathematics.classes.diacritic = mathematics.classes.accent mathematics.classes.large = mathematics.classes.op mathematics.classes.variable = mathematics.classes.alphabetic -mathematics.classes.number = mathematics.classes.nothing +mathematics.classes.number = mathematics.classes.alphabetic
ok fixed ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
On Thu, 25 Dec 2008, Taco Hoekwater wrote:
Aditya Mahajan wrote:
But why does it work if I replace mc by mr (as Wolfgang showed). Also, how can I check the mathcode of a character, other than going through the sources and figuring out where it is set.
\message{\the\mathcode`\1 }
And it is "0031. It should have been "7031 for variable family use. That is the value that initex initializes it to (that explains mkii). Mkiv sets the values explicitly (and incorrectly)
In math-ini.lua:
@@ -52,7 +52,7 @@ mathematics.classes.diacritic = mathematics.classes.accent mathematics.classes.large = mathematics.classes.op mathematics.classes.variable = mathematics.classes.alphabetic -mathematics.classes.number = mathematics.classes.nothing +mathematics.classes.number = mathematics.classes.alphabetic
Thank you. After making this change and regenerating formats, the dsrom works correctly for both the test document and my actual document. Aditya
participants (4)
-
Aditya Mahajan
-
Hans Hagen
-
Taco Hoekwater
-
Wolfgang Schuster