Inclined Arabic Font

cxfyylx 注册会员
2023-01-25 02:36

OpenType Layout tables can accommodate this. Two things in particular are worth noting.

For context, OpenType Layout tables include the GSUB table for doing glyph substitutions, and the GPOS table for making glyph positioning adjustments. Within these tables, features are used as a way for shaping engines to trigger font-specific actions, and lookup subtables are used to define the font-specific actions. Both GSUB and GPOS have different lookup types — i.e., different types of substitution or positioning actions.

With that in mind...

  • Within the GSUB table, type 8 lookups are reverse chaining lookups, which means that the actions operate from the logical end of the glyph sequence going backwards. So, within each sloping cluster, you can start with the leftmost glyph — the one that sits on the baseline — and progress to the right to make glyph substitutions, if needed.

("Chaining" here means that the lookup can specify an input glyph sequence plus backtrack and lookahead context sequences, and then it links (chains) to another simpler lookup that performs the actual actions on the input sequence.)

  • Within the GPOS table, type 3 lookups are used for cursive attachment positioning. With this lookup type, you can specify anchor points on adjacent glyphs — an anchor on the exit stroke on the left side of one glyph and another anchor on the entry stroke on the right side of another glyph. Then the layout engine will automatically align the two anchors. There is a RIGHT_TO_LEFT flag that can be set on this lookup which will have the effect of making glyphs on the right of a given glyph pair to align to the glyph on the left of that pair. So, for the sloping clusters, the leftmost glyph will remain in its initial position and the glyph to the right will be positioned relative to it.

Those are key OpenType mechanisms you'll want to use. You can also use other lookup types if they are useful; for example, there might be situations in which you'd like to create a single glyph for some combination of elements and then use a GSUB type 4 lookup to substitute the one glyph for the particular sequence of glyphs it replaces.

I'm not familiar enough with FontForge to tell you how you go about defining the GSUB or GPOS tables in that app, but I'm sure you can search for info that explains that.

About the Author

Question Info

Publish Time
2023-01-25 02:36
Update Time
2023-01-25 02:36