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@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@mtpro06a-regular", ["5pt"] = "MTPro06a-Regular@mtpro06a-regular", ["6pt"] = "MTPro06a-Regular@mtpro06a-regular", ["7pt"] = "MTPro08a-Regular@mtpro08a-regular", ["8pt"] = "MTPro08a-Regular@mtpro08a-regular", ["9pt"] = "MTPro08a-Regular@mtpro08a-regular", ["10pt"] = "MTPro10a-Regular@mtpro10a-regular", ["11pt"] = "MTPro10a-Regular@mtpro10a-regular", ["12pt"] = "MTPro10a-Regular@mtpro10a-regular", default = "MTPro10a-Regular@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
On Tue, 23 Jun 2015, Zhichu Chen wrote:
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.
I don't have the fonts, so I cannot describe the exact method. But see below and also have a look at Section 5 of https://www.tug.org/TUGboat/tb30-2/tb95mahajan-cmath.pdf The description is old, and some of the file locations have changes, but the basic infrastructure is still the same.
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 }, [...] },
The vectors mptpro2-mi etc are not defined. Look at math-ttv.lua for a list of predefined vectors (mapping type1 fonts to unicode symbols. It is quite likely that the mtpro fonts would follow the "standard" mappings; if not, you will need to create an approrpriate mapping for each font. This is not difficult (just monotonous).
=================================================================== 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:
Once this is done, rest of the typescript should work. It may be a good idea to try to see if you can get roman letters from mtpro. Aditya
Hi Aditya, On 06/23/2015 11:57 AM, Aditya Mahajan wrote:
I don't have the fonts, so I cannot describe the exact method. But see below and also have a look at Section 5 of https://www.tug.org/TUGboat/tb30-2/tb95mahajan-cmath.pdf The description is old, and some of the file locations have changes, but the basic infrastructure is still the same. Thank you for sharing this article. It seems that the =================================================================== return { mathematics = { mapfiles = { "mtpro2.map", }, virtuals = { ["mtpro06a-regular"] = { ... =================================================================== codes may have done the job in the mathematics.make_font function.
The vectors mptpro2-mi etc are not defined. Look at math-ttv.lua for a list of predefined vectors (mapping type1 fonts to unicode symbols. It is quite likely that the mtpro fonts would follow the "standard" mappings; if not, you will need to create an approrpriate mapping for each font. This is not difficult (just monotonous). I've already defined these vectors in the same .lfg file. What a tedious work it was, by the way. I thought
In this snippet: =================================================================== \definefontsynonym [LMMathRoman10-Regular] [LMMath10-Regular@lmroman10-math] =================================================================== I know that LMMathRoman10-Regular will be used as the font synonym, @lmroman10-math is the virtual font, but what does LMMath10-Regular stand for? I chose some random names in my typescript but maybe there's some magic there? that would be irrelevant, so I skipped those codes. I'm sorry I didn't make that clear. I almost forgot to mention. The font has its own \Relbar and \relbar characters rather than the equality and the dash marks. What is the best way to use them? I currently put them in a private-use-area slot in the vectors' definitions, but I'm not sure that's a good solution.
=================================================================== 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:
Once this is done, rest of the typescript should work. It may be a good idea to try to see if you can get roman letters from mtpro.
If I claimed the font synonym with the virtual font directly: =================================================================== # typescripts \definefontsynonym [\s!MathRoman] [MTPro10a-Regular@mtpro10a-regular] =================================================================== the 10-size-version fonts were loaded without any problem. But if I want to use the designsize feature: =================================================================== -- lfg designsizes = { ["MathTimeProA-Regular"] = { ["4pt"] = "MTPro06a-Regular@mtpro06a-regular", ["5pt"] = "MTPro06a-Regular@mtpro06a-regular", ["6pt"] = "MTPro06a-Regular@mtpro06a-regular", ... # typescripts \definefontsynonym [\s!MathRoman] [\v!file:mathtimeproa-regular] =================================================================== the mathtimeproa-regular font could not be remapped to the correct virtual font with the appropriate size. I just want to know how type-imp-ebgaramond.mkiv managed to remap the designsize filename "file:ebgaramond-regular" to "file:EBGaramond12-Regular".
Aditya ___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
Hi everybody, I finally got my typescript work. It was the "serif" typeface that failed me. When I defined the fixed size type: =================================================================== \definetypeface [mathtimespro] [rm] [serif] [times] [default] \definetypeface [mathtimespro] [ss] [sans] [helvetica] [default] [rscale=0.9] \definetypeface [mathtimespro] [tt] [mono] [courier] [default] [rscale=1.1] \definetypeface [mathtimespro] [mm] [math] [mathtimespro] [default] =================================================================== where mathtimespro in the last line was defined as: =================================================================== \definefontsynonym [MathTimeProA-Regular] [MTP06A-Regular@mtpro06a-regular] =================================================================== Everything was fine. But the designsize version needs to be: =================================================================== \definetypeface [mathtimespro] [rm] [serif] [times] [default][designsize=auto] \definetypeface [mathtimespro] [ss] [sans] [helvetica] [default] [rscale=0.9] \definetypeface [mathtimespro] [tt] [mono] [courier] [default] [rscale=1.1] \definetypeface [mathtimespro] [mm] [math] [mathtimespro] [default][designsize=auto] =================================================================== Without the last parameter in the serif definition, the math font could not be remapped (WHY???). Fix me if I'm wrong about this conclusion. Best regards, Zhichu On 06/23/2015 01:20 PM, Zhichu Chen wrote:
Hi Aditya,
On 06/23/2015 11:57 AM, Aditya Mahajan wrote:
I don't have the fonts, so I cannot describe the exact method. But see below and also have a look at Section 5 of https://www.tug.org/TUGboat/tb30-2/tb95mahajan-cmath.pdf The description is old, and some of the file locations have changes, but the basic infrastructure is still the same. Thank you for sharing this article. It seems that the =================================================================== return { mathematics = { mapfiles = { "mtpro2.map", }, virtuals = { ["mtpro06a-regular"] = { ... =================================================================== codes may have done the job in the mathematics.make_font function.
The vectors mptpro2-mi etc are not defined. Look at math-ttv.lua for a list of predefined vectors (mapping type1 fonts to unicode symbols. It is quite likely that the mtpro fonts would follow the "standard" mappings; if not, you will need to create an approrpriate mapping for each font. This is not difficult (just monotonous). I've already defined these vectors in the same .lfg file. What a tedious work it was, by the way. I thought
In this snippet: =================================================================== \definefontsynonym [LMMathRoman10-Regular] [LMMath10-Regular@lmroman10-math] =================================================================== I know that LMMathRoman10-Regular will be used as the font synonym, @lmroman10-math is the virtual font, but what does LMMath10-Regular stand for? I chose some random names in my typescript but maybe there's some magic there? that would be irrelevant, so I skipped those codes. I'm sorry I didn't make that clear.
I almost forgot to mention. The font has its own \Relbar and \relbar characters rather than the equality and the dash marks. What is the best way to use them? I currently put them in a private-use-area slot in the vectors' definitions, but I'm not sure that's a good solution.
=================================================================== 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:
Once this is done, rest of the typescript should work. It may be a good idea to try to see if you can get roman letters from mtpro.
If I claimed the font synonym with the virtual font directly: =================================================================== # typescripts \definefontsynonym [\s!MathRoman] [MTPro10a-Regular@mtpro10a-regular] =================================================================== the 10-size-version fonts were loaded without any problem. But if I want to use the designsize feature: =================================================================== -- lfg designsizes = { ["MathTimeProA-Regular"] = { ["4pt"] = "MTPro06a-Regular@mtpro06a-regular", ["5pt"] = "MTPro06a-Regular@mtpro06a-regular", ["6pt"] = "MTPro06a-Regular@mtpro06a-regular", ... # typescripts \definefontsynonym [\s!MathRoman] [\v!file:mathtimeproa-regular] =================================================================== the mathtimeproa-regular font could not be remapped to the correct virtual font with the appropriate size. I just want to know how type-imp-ebgaramond.mkiv managed to remap the designsize filename "file:ebgaramond-regular" to "file:EBGaramond12-Regular".
Aditya ___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________
participants (2)
-
Aditya Mahajan
-
Zhichu Chen