[HarfBuzz] Complex NAA ligatures in Tai Tham
Richard Wordingham
richard.wordingham at ntlworld.com
Fri Apr 12 11:59:08 PDT 2013
On Fri, 12 Apr 2013 16:12:23 +0700
Theppitak Karoonboonyanan <thep at linux.thai.net> wrote:
> On Thu, Apr 11, 2013 at 11:21 PM, Behdad Esfahbod <behdad at behdad.org>
> wrote:
> > On 13-04-10 07:45 AM, Theppitak Karoonboonyanan wrote:
> >> But it will fail if there is a leading vowel before vowel AA, like
> >> in <HIGH PA, NA, SAKOT, HIGH THA, vowel E, vowel AA>.
> >
> > What do you expect HarfBuzz to do?
>
> <HIGH PA, NA, SAKOT, HIGH THA, vowel E, vowel AA> should be reordered
> to <HIGH PA, vowel E, NA, SAKOT, HIGH THA, vowel AA> before GSUB is
> applied.
>
> > Are you correctly using mark skipping?
>
> The rule does not need mark skipping. You can see the first case of
> <WA, NA, SAKOT, LOW TA, vowel AA> already works.
>
> > What feature are you using?
>
> 'ccmp' for script 'lana'.
From looking at Version 0.9.14's function collect_features_sea() in
hb-ot-shape-complex-sea.cc, I think that's the problem. I think the
order of operations is:
1) Tag the characters with their roles within syllables, breaking them
up into syllables.
2) Convert characters to glyphs in accordance with the cmap.
3) Apply the GSUB locl feature.
4) Apply the GSUB ccmp feature.
5) Apply 'Indic rearrangement', using SEA rules.
6) Apply GSUB 'basic' features - pref, abvf, blwf, pstf
7) Forget the division into syllables
8) Apply 'other' GSUB features - pres, abvs, blws, psts, dist
(I'm confused here - isn't dist for GPOS?)
9) Apply GPOS features
Now, Khmer applies the ligatures of consonants and the AA vowel in the
clig look-up. I don't know what the recommended place is for Tai
Tham. It might make sense to put it at the end of pstf, after
all the occurrences of <SAKOT, consonant> have been converted to marks.
Richard.
More information about the HarfBuzz
mailing list