From: Dov G. <dov...@gm...> - 2006-09-26 20:32:42
|
I give up... I've been reading both the OpenType spec, and all the relevant FontForge manuals, but I can still not figure out "how it works". I guess I would really need a "FontForge and OpenType for Dummies" introduction. So let me describe my toy problem, and what I don't understand from the FontForge tutorial and manual. E.g. let's take the "5th" examples from the manual. Let's take two examples. In the first we want to do a vertical displacement of t and h, and in the second example we want to replace the th with a separate glyph. Example 1: Q1. Which table should I use? "Context Pos" or "Chain Pos"? Q2. I'm assuming Context Pos since I want to match a certain context. I choose Contextual/Context Pos/New. What tag should I use? I'm trying "kern". This is probably not ok. But how can I know what is allowed here? Q3. I choose "by coverage". I do Match/New and type "five t h"? Is this ok? Q4. In the lookup I choose Sequence number 0 and type the label L001. Is this ok? If I now save the font as an otf font and reload it I get the following error messages: Attempt to apply a lookup to a location out of the range of this contextual lookup seq=1, max=0 Bad format for coverage table 3 Attempt to reference lookup 3 (within a contextual lookup), but there are only 2 lookups in 'GPOS' : So I erase the "Context Pos" entry and will instead try "Chain Pos". Try reloading and I still get a similar error message. Erase the context pos and save and reload without any gpos/gsub tables. This works without any error message. So I moved over to example 2, using "Chained Sub" and it worked! I.e. I could save and reload a truetype font. Some progress. :-) But now the question is, how do I use my newly created tag L001? What do I now need to do to make it trigger the use of glyph "thlig" glyph that I presumably defined? (What I want to do later is to change the order of "B n m" to "B m n" so that the "B m" ligature may be applied, where B is a base character and m and n are marks. But I figured that I should first learn the basics.) Thank you very much in advance! Dov |