Re: [NTG-context] Virtual font question
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. 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? 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 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 fon
Re: [NTG-context] Virtual font question
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. 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? 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 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 ___
Re: [NTG-context] Virtual font question
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 ___ 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 ___
[NTG-context] Virtual font question
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 e