[HarfBuzz] OpenType "mark" Ligatures ... ?

Georg Duffner g.duffner at gmail.com
Tue Apr 23 23:01:13 PDT 2013


Am 2013-04-23 21:59, schrieb Ed Trager:
> Hi, Behdad and OpenType Experts-at-Large!
>
> I'm trying to find a good OpenType solution to a problem in the Tai Tham
> font that I am developing.
>
> The problem, as illustrated in (1) in the attached image, is that the
> subjoined form of consonant u1A36 TAI THAM LETTER NA or subjoined form of
> consonant u1A3E TAI THAM LETTER MA may commonly be followed by a subjoined
> dependent vowel u1A69 TAI THAM VOWEL SIGN U or u1A6A TAI THAM VOWEL SIGN UU
> and we don't want these to overlap.
>
> The solution that I thought would work quite well is to create ligature
> glyphs with the correct spacing, as shown in (2) in the attached figure.
> Note that these "ligature" glyphs are "mark" glyphs
>
> The lookup table, as one would expect it to be, is shown in (3).
>
> However, this apparently does not work!
>
> Perhaps the reason has to do with what Matthew Scala, in his blog at
> http://ansuz.sooke.bc.ca/entry/131 says ? :
>
> "It appears that if you use a glyph as a "mark" in the GPOS table, then you
> are not allowed to use it at all in the GSUB table. This is because every
> glyph must be categorized as at most one of "base," "ligature," "mark," or
> "component" in the (usually implicit) GDEF table, a fact which is alluded
> to rather vaguely in subsection 9.b of the specification. FontForge allows
> putting "mark" glyphs in substitutions, but not really. The GSUB table ends
> up full of garbage if you try, and it segfaults when you save. Apparently,
> some of the Adobe tools I don't have will fail in a more informative way. I
> don't see a good reason for marks in substitutions not to be allowed, and
> it would be useful if they were allowed, but it seems clear that they are
> not allowed."
>
> OK, Dear OpenType Experts, If my solution is not workable, then please
> enlighten me: ¿¿¿What is the BEST OpenType solution to this sort of problem
> ???
>

I can’t say much about the Tai Tham problem, but what Matthew Scala says 
about marks in GPOS vs. GSUB is not true. I’m using lots of contextual 
chaining one-to-one substitutions of marks in EB Garamond and Fontforge 
has never crashed on this. Other fonts like Gentium also make heavy use 
of ligature substitution lookups for mark glyphs. You’ll probably have 
to investigate more at the feature side.
Georg



More information about the HarfBuzz mailing list