[HarfBuzz] Multiple substitution and mark positioning

Khaled Hosny khaledhosny at eglug.org
Tue Jun 12 03:31:23 PDT 2012


I’m not sure if this is related, but I now get no mkmk positioning when
the marks are “inserted” using multiple substitution. For example, “للّٰه”
is positioned correctly, while “لله” is not though it is the same mark
glyphs except they are being added by multiple substation.

[uni0647.fina_Lellah=4+721|uni0670=1 at -267,-162|uni0651=1 at -277,-440|uni0644.medi_Lellah=1+473|uni0644.init_Lellah=0+319]

vs.:

[uni0647.fina_Lellah=2+721|uni0670=1 at -245,-440|uni0651=1 at -277,-440|uni0644.medi_Lellah=1+473|uni0644.init_Lellah=0+319]

Regards,
 Khaled

On Fri, Jun 08, 2012 at 10:14:19PM -0400, Behdad Esfahbod wrote:
> Hi Khaled and others,
> 
> I fixed this, among other things, including a major mlig and mkmk regression.
>  Please test.
> 
> 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