[NTG-context] Virtual font question

Zhichu Chen chenzhichu at sinap.ac.cn
Mon Jun 22 18:47:07 CEST 2015


Hello list,

I was trying to use the Math Times Pro 2 fonts in ConTeXt MKIV. This 
Type1 font
contains a map file, a set of pfb files and the corresponding tfm files. 
I was managed
to write a .lfg file and a type-imp-xxx file, but here's my problem.

The font comes with three different sizes, the virtual fonts in my .lfg 
file look like:
===================================================================
         virtuals = {
             ["mtpro06a-regular"] = {
                 { name = "file:texgyretermes-regular.otf", features = 
"virtualmath", main = true },
                 { name = "mt2mif.tfm", vector = "mtpro2-mi", 
skewchar=0x7F },
                 { name = "mt2syf.tfm", vector = "mtpro2-sy", 
skewchar=0x30, parameters = true },
                 { name = "mt2mbf.tfm", vector = "mtpro2-mb", 
skewchar=0x7F },
                 { name = "mt2syaf.tfm", vector = "mtpro2-sya", 
skewchar=0x7F },
                 { name = "mt2bbf.tfm", vector = "mtpro2-bb", 
skewchar=0x7F },
                 { name = "mt2msf.tfm", vector = "mtpro2-mca", 
skewchar=0x7F },
                 { name = "mt2bmsf.tfm", vector = "mtpro2-bmca", 
skewchar=0x7F },
                 { name = "mt2mff.tfm", vector = "mtpro2-mfa", 
skewchar=0x7F },
                 { name = "mt2bmff.tfm", vector = "mtpro2-bmfa", 
skewchar=0x7F },
                 { name = "mt2bbif.tfm", vector = "mtpro2-bbi", 
skewchar=0x7F },
             },
             ["mtpro08a-regular"] = {
                 { name = "file:texgyretermes-regular.otf", features = 
"virtualmath", main = true },
                 { name = "mt2mis.tfm", vector = "mtpro2-mi", 
skewchar=0x7F },
                 { name = "mt2sys.tfm", vector = "mtpro2-sy", 
skewchar=0x30, parameters = true },
                 { name = "mt2mbs.tfm", vector = "mtpro2-mb", 
skewchar=0x7F },
                 { name = "mt2syas.tfm", vector = "mtpro2-sya", 
skewchar=0x7F },
                 { name = "mt2bbs.tfm", vector = "mtpro2-bb", 
skewchar=0x7F },
                 { name = "mt2mss.tfm", vector = "mtpro2-mca", 
skewchar=0x7F },
                 { name = "mt2bmss.tfm", vector = "mtpro2-bmca", 
skewchar=0x7F },
                 { name = "mt2mfs.tfm", vector = "mtpro2-mfa", 
skewchar=0x7F },
                 { name = "mt2bmfs.tfm", vector = "mtpro2-bmfa", 
skewchar=0x7F },
                 { name = "mt2bbis.tfm", vector = "mtpro2-bbi", 
skewchar=0x7F },
             },
             ["mtpro10a-regular"] = {
                 { name = "file:texgyretermes-regular.otf", features = 
"virtualmath", main = true },
                 { name = "mt2mit.tfm", vector = "mtpro2-mi", 
skewchar=0x7F },
                 { name = "mt2syt.tfm", vector = "mtpro2-sy", 
skewchar=0x30, parameters = true },
                 { name = "mt2mbt.tfm", vector = "mtpro2-mb", 
skewchar=0x7F },
                 { name = "mt2syat.tfm", vector = "mtpro2-sya", 
skewchar=0x7F },
                 { name = "mt2bbt.tfm", vector = "mtpro2-bb", 
skewchar=0x7F },
                 { name = "mt2mst.tfm", vector = "mtpro2-mca", 
skewchar=0x7F },
                 { name = "mt2bmst.tfm", vector = "mtpro2-bmca", 
skewchar=0x7F },
                 { name = "mt2mft.tfm", vector = "mtpro2-mfa", 
skewchar=0x7F },
                 { name = "mt2bmft.tfm", vector = "mtpro2-bmfa", 
skewchar=0x7F },
                 { name = "mt2bbit.tfm", vector = "mtpro2-bbi", 
skewchar=0x7F },
             },
===================================================================
I guess the suffixes "f" "s" and "t" may correspond to "five" "seven" 
and "ten", but that's
not important. I could use one of them as the virtual font in the 
typescript:
===================================================================
\definefontsynonym [\s!MathRoman] [MTPro10a-Regular at mtpro10a-regular]
===================================================================
The output pdf used the 10-size font as expected.

I stole some codes from lm.lfg and added the following code:
===================================================================
     designsizes = {
         ["MathTimeProA-Regular"] = {
             ["4pt"]  = "MTPro06a-Regular at mtpro06a-regular",
             ["5pt"]  = "MTPro06a-Regular at mtpro06a-regular",
             ["6pt"]  = "MTPro06a-Regular at mtpro06a-regular",
             ["7pt"]  = "MTPro08a-Regular at mtpro08a-regular",
             ["8pt"]  = "MTPro08a-Regular at mtpro08a-regular",
             ["9pt"]  = "MTPro08a-Regular at mtpro08a-regular",
             ["10pt"] = "MTPro10a-Regular at mtpro10a-regular",
             ["11pt"] = "MTPro10a-Regular at mtpro10a-regular",
             ["12pt"] = "MTPro10a-Regular at mtpro10a-regular",
             default  = "MTPro10a-Regular at mtpro10a-regular"
         },
===================================================================
and modified the typescript:
===================================================================
\definefontsynonym [\s!MathRoman] [\v!name:MathTimeProA-Regular] 
[\s!goodies=math-times-pro-math]
===================================================================
It failed as expected:
===================================================================
fonts           > defining > start stage one: MathRoman mo 1
fonts           > defining > specification 'MathRoman mo 1', lookup 
'file', name 'MathRoman', sub '', method '', detail ''
fonts           > defining > stop stage one
fonts           > defining > start stage two: name:MathTimeProA-Regular 
(size 393216)
fonts           > names > font with name 'mathtimeproaregular' cannot be 
found
fonts           > names > font database has matching configuration and 
file hashes
fonts           > defining > trying (reader sequence driven) type 'otf' 
for 'MathTimeProA-Regular' with file ''
fonts           > names > font database has matching configuration and 
file hashes
fonts           > defining > trying (reader sequence driven) type 'ttf' 
for 'MathTimeProA-Regular' with file ''
fonts           > names > font database has matching configuration and 
file hashes
fonts           > defining > trying (reader sequence driven) type 'afm' 
for 'MathTimeProA-Regular' with file ''
fonts           > names > font database has matching configuration and 
file hashes
fonts           > names > font database has matching configuration and 
file hashes
fonts           > defining > loading tfm with name 
'MathTimeProA-Regular' fails
fonts           > defining > trying (reader sequence driven) type 'tfm' 
for 'MathTimeProA-Regular' with file ''
fonts           > names > font database has matching configuration and 
file hashes
fonts           > defining > loading tfm with name 
'MathTimeProA-Regular' fails
fonts           > defining > trying (reader sequence driven) type 'lua' 
for 'MathTimeProA-Regular' with file ''
fonts           > lua loading > using lua reader for 'MathRoman mo 1'
fonts           > defining > font with asked name 'MathTimeProA-Regular' 
is not found using lookup 'name'
fonts           > defining > not loaded and hashed: mathtimeproa-regular 
@ normal:goodies=math-times-pro-math @ 393216
fonts           > defining > unknown font 'MathTimeProA-Regular', 
loading aborted
fonts           > defining > unable to define 'MathTimeProA-Regular' as 
'math-times-pro-11pt-mm-mr--3'
fonts           > defining > memory usage after: 45 MB (ctx: 45 MB)
fonts           > defining > stop stage two
===================================================================
I get it. There's no MathTimeProA-Regular file. I've tried the built-in 
"ebgaramond"
typescript which also comes with the "designsizes" field. Interesting, the
"ebgaramond-regular" is remapped to "EBGaramond12-Regular" magically:
===================================================================
fonts           > defining > start stage two: file:ebgaramond-regular 
(size 720896)
fonts           > defining > remapping name 'ebgaramond-regular', 
specification 'auto', size 720896, designsize 'file:EBGaramond12-Regular'
===================================================================

Well, what am I missing? How to get the designsize names recognized? 
What is the right
way to make the virtual fonts?

Thanks for noticing.

Best regards,
Zhichu



More information about the ntg-context mailing list