[HarfBuzz] Skipping Control for Attaching Marks using OpenType

Behdad Esfahbod behdad at behdad.org
Thu Jun 6 12:50:38 PDT 2013

On 13-06-01 06:50 PM, Richard Wordingham wrote:
> Are these standard restrictions, or are they just a feature of
> HarfBuzz?

No, they are what the spirit of the standard is, what Uniscribe implements,
and what we do too.

> The restrictions on mark-to-base and mark-to-ligature prevent a simple
> rule for, say, attaching the first mark above at one point and the
> second mark above at another point.  I have no evidence that this is a
> problem.

For those you are supposed to use mark-to-base for the first one, and
mark-to-mark for the second one.  Or if you want them side-by-side, use
different mark classes and a contextual lookup to detect that there are two

The problem with allowing base/ligature skipping is simply that that's not
what Uniscribe does.  The "IgnoreBase" flag is used in very popular fonts like
Tahoma to mean "this lookup only applies to marks".  So, their mark-to-base
and mark-to-mark lookups have the IgnoreBase flag set.  Years ago, in Pango,
we use to implement these they way you suggest.  The result was that marks
from different bases were being positioned on top of eachother because of the
mark-to-mark lookup having IgnoreBase.

It just doesn't work that way.

If you have to try so hard, maybe there's reordering that we can do in the
shaper to make it easier.


More information about the HarfBuzz mailing list