Search code examples
fontsarabictypefaceturkish

Inclined Arabic Font


I am building a website to teach Ottoman Turkish and I want to design a font for Ruqah. In Ruqah, some letters force preceding letters to join them from above. What I mean is some letters are placed above baseline. Please inspect below link:

Aref Ruqaa

Please also inspect this image below:

enter image description here

I am trying to use FontForge. What setting do I need to achive this multi baseline font? Or should I say how can make my font's letters join from above, or make words look slanted?

I have found Aref Ruqaa font and added the letters used in Ottoman Turkish. However this font is not easy for beginners. I want to improve its design but stuck at multi baseline problem.


Solution

  • 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.