OpenType GPOS Lookups for Urdu

IvanIvan Posts: 2
edited March 28 in Technique and Theory
I am trying to understand the rendering of "بڑ" (Urdu - Unicode 1576, 1681) with a font Jameel_Noori_Nastaleeq.ttf

The string is converted into glyphs [607, 460, 471, 1651] by the GSUB table. I can detect the correct anchor-attachment of the second glyph under the first one. But I can not find an appropriate GSUB rule, that would position the third glyph on top of the first one. Here, the left one is correct, the right one is what my program does at the moment.

Could you look into the OTF file (and possibly use your favourite software) and explain to me, what rule precisely is responsible for positioning the third glyph? I see, that the "mark" feature defines several lookup tables for that glyph (one of type 4: Mark-to-base and the rest of type 5: Mark-to-ligature), but I can not match the previous glyph with any of them.


  • FontCreator reveals it is due to the second mark-to-ligature lookup:

  • IvanIvan Posts: 2
    Oh, thank you very much! My engine could not match it with this lookup. So when looking for a preceding ligature glyph (for which the lookup is defined), we should skip all preceding mark glyphs? Even when the "ignoreMarks" flag of the lookup is not set (as it is not set in case of MarkToLigature2)?

    Also, how do I choose a "component" of ligature, to which the mark should be attached to? In Mark-To-Ligature subtables, a ligature has several "components", and each component has its own attachment points (for each mark class). 
Sign In or Register to comment.