[HarfBuzz] Multiple substitution and mark positioning

Behdad Esfahbod behdad at behdad.org
Tue May 22 16:55:52 PDT 2012


On 05/22/2012 07:53 PM, Behdad Esfahbod wrote:
> Khaled,
> 
> So, I have a theory: may it be that Uniscribe is doing what it's doing because
> of IgnoreMarks settings?  If that is the case, then I see why HarfBuzz is
> getting it wrong, since we copy glyph class for the Multi substitute lookups
> from the original glyph instead of looking them in GDEF.

Humm.  Maybe not.  Still, using mark ignoring may be a way for the font to
achieve the desired output on both HarfBuzz and Uniscribe currently.

behdad


> behdad
> 
> On 05/12/2012 08:54 AM, Khaled Hosny wrote:
>> Hi all,
>>
>> There seems to be a difference between HarfBuzz and Uniscribe on how to
>> handle mark positioning when there is multiple glyph substitution,
>> namely HB seems to apply the mark to the last component while USP
>> applies it to the first component.
>>
>> In other words, if there is <base> → <base₁><base₂> substitution, the
>> sequence <base><mark> will be rendered as if it was <base₁><base₂><mark>
>> with HB, but as <base₁><mark><base₂> with USP.
>>
>> Using hb-shape with “uniscribe” shaper, and the word “سَتا” and Arabic
>> Typesetting font, I get
>>
>>   [uniFE8E=3+343|uniFE98=2+376|uni064E=0 at 501,-260|uni0640.curvehalf=0@,34+152|uniFEB3=0@,34+840]
>>                                          ^^^^^^^^
>> but with “ot” shaper, I get:
>>
>>   [uniFE8E=3+343|uniFE98=2+376|uni064E=0 at -11,-310|uni0640.curvehalf=0@,34+152|uniFEB3=0@,34+840]
>>                                          ^^^^^^^^
>> though the glyph string is the same, the position of the mark is clearly
>> different.
>>
>> (background: I need this to contextually insert tatweel to avoid mark
>> collision in “crowded” places, but with the difference between both
>> engines this can’t be reliably done without breaking mark positioning in
>> one of them).
>>
>> Regards,
>>  Khaled
>> _______________________________________________
>> HarfBuzz mailing list
>> HarfBuzz at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/harfbuzz



More information about the HarfBuzz mailing list