Encoding and mapping glyphs from an expert font
[To all the font experts out there: I really need your help!! I have spent at
least 12 hours (!) trying to make this work but to no avail.]
Dear gang,
I have two fonts (actually, lots more but let's keep it simple), one normal
and one expert. I did the following:
1. installed the regular font with texnansi encoding. It works fine. It uses,
say,
texnansi-myfont.map, texnansi-lm.enc
with lines like
====================================================
texnansi-raw-myfont MyFont 4 From this point I am lost. I set up my type-myfont.tex to load these maps. I
can get myfont to work alone, and myfontx to work alone, but I cannot map
characters from myfontx to myfont. By the way, I still don't understand how placing, e.g., /zerooldstyle in the
respective /zero position in an encoding file will instruct LatinModern to
pick up the glyph from cmmi10. In, for example,
====================================================
texnansi-lmb10 LMRomanDemi10-Regular
Idris, I am not sure I have understood everything you write, but here's a very brief outline of what I think you need to do. There are two cases you need to consider: 1. You have more than one font (this seems to be your case), normally these will be postscript type1 fonts (extensions .pfb or .pfa). If you want to mix characters from two fonts (say, normal letters from font A, oldstyle numerals and maybe small caps from font B), you can most easily do this via a virtual font. It's not too hard; I wrote a small how-to which you can find on CTAN (http://www.ctan.org/tex-archive/info/virtualfontshowto/?action=/tex- archive/info/) 2. Your expert glyphs are within the same TrueType font (extension .ttf). In that case, the approach would be to have special encoding vectors which would be used to produce special tfms. For TeX, this would then constitute a new font (this is explained in the article I sent you last week.) So there is no simple answer to your question. TeX knows to pick up zerooldstyle instead of zero either 1. because you have a virtual font that says MAPFONT 1, so it knows it will have to use a different pfb than for the rest, or 2. because the encoding file points to character zerooldstyle within the ttf. Sounds too complicated? It isnt! Best Thomas On Apr 9, 2005, at 11:02 PM, Idris Samawi Hamid wrote:
[To all the font experts out there: I really need your help!! I have spent at least 12 hours (!) trying to make this work but to no avail.]
Dear gang,
I have two fonts (actually, lots more but let's keep it simple), one normal and one expert. I did the following:
1. installed the regular font with texnansi encoding. It works fine. It uses, say,
texnansi-myfont.map, texnansi-lm.enc
with lines like
==================================================== texnansi-raw-myfont MyFont 4
2. also installed the expert font with a private encoding. Basically the same as texnansi where they share characters in common. It uses, say,
myfontx.map, myencoding.enc
with lines like
==================================================== myencoding-raw-myfontx MyFontX 4 < myfont.pfb myencoding.enc ====================================================
3. With a view to getting characters from my expert font, I carefully studied as best as I could the implementation of old style figures in lmr, which involves mappings to cmmi10. This is what I could figure out: Activating old style is done by
==================================================== \usetypescript [modern][texnansi] \usetypescript [map] [latin-modern-os] [texnansi]
\usetypescript[latin-modern][texnansi] \setupbodyfont[latin-modern] ====================================================
There appear to be two main things going on (but I think I'm missing something):
a. loading a map file:
==================================================== \starttypescript [map] [latin-modern-os] [ec,texnansi,qx,t5,pl0,il2] \loadmapfile[\typescriptthree-os-public-lm.map] \stoptypescript ====================================================
Since I'm using texnansi, I looked at texnansi-os-public-lm.map . It contains lines like
==================================================== texnansi-lmb10 LMRomanDemi10-Regular
So I designed an encoding file myfont-plus.enc almost identical to texnansi-os-lm.enc, containing, e.g., old style numerals from my expert font. I edited the myfont map files to exactly match the syntax of both
texnansi-os-public-lm.map and texnansi-public-lm.map
So for my fonts I have a total of three map files:
\loadmapfile[texnansi-myfont.map] % for regular font
\loadmapfile[myencoding-myfontx.map] % for expert font
\loadmapfile[texnansi-x-myfont.map] % for mapping minion reg to minion ex
From this point I am lost. I set up my type-myfont.tex to load these maps. I can get myfont to work alone, and myfontx to work alone, but I cannot map characters from myfontx to myfont.
By the way, I still don't understand how placing, e.g., /zerooldstyle in the respective /zero position in an encoding file will instruct LatinModern to pick up the glyph from cmmi10. In, for example,
==================================================== texnansi-lmb10 LMRomanDemi10-Regular
How does ConTeXt know that /zerooldstyle is to be mapped to cmmbi10? I must be missing something....
Thnx in advance for your help Idris
============================ Professor Idris Samawi Hamid Department of Philosophy Colorado State University Fort Collins, CO 80523
_______________________________________________ ntg-context mailing list ntg-context@ntg.nl http://www.ntg.nl/mailman/listinfo/ntg-context
Idris Samawi Hamid said this at Sat, 9 Apr 2005 15:02:51 -0600:
By the way, I still don't understand how placing, e.g., /zerooldstyle in the respective /zero position in an encoding file will instruct LatinModern to pick up the glyph from cmmi10. In, for example,
==================================================== texnansi-lmb10 LMRomanDemi10-Regular
How does ConTeXt know that /zerooldstyle is to be mapped to cmmbi10? I must be missing something....
I think I'm missing something from your description. What markup are you using in your source in order to ascribe these magical properties to OldStyle? Are you aware of the default mapping of OldStyle to MathItalic? -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Adam T. Lindsay, Computing Dept. atl@comp.lancs.ac.uk Lancaster University, InfoLab21 +44(0)1524/510.514 Lancaster, LA1 4WA, UK Fax:+44(0)1524/510.492 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
participants (3)
-
Adam Lindsay
-
Idris Samawi Hamid
-
Thomas A.Schmitz