On Sun, Apr 28, 2013 at 12:45 PM, Theppitak Karoonboonyanan <[email protected]> wrote: > On Fri, Apr 26, 2013 at 2:06 AM, Richard Wordingham > <[email protected]> wrote: >> Having slept on the idea, I think 'pref' would be a more appropriate. >> As this is for items *before* the base consonant, it makes sense to >> exclude adjustments to MAI KANG LAI from that feature unless it is in >> some sense coming from before the base consonant. Also, 'pref' is the >> first feature applied after rearrangement. >> >> The necessary condition for re-ordering would be the presence of the MAI >> KANG LAI glyph (as defined by the cmap table) in the initial character >> coverage for the 'pref' feature in GSUB. I'm not sure if it is >> sufficient, or whether the lookup might have to be a single >> substitution. > > It may looks quite tricky for a font feature to exist just for signalling > purpose without explicit definition. > >> A bigger design change would be to require it in the >> 'rphf' feature, used for kinzi in the Myanmar script. While this would >> be even better, at present the SEA shaper ignores the 'rphf' feature. > > OK. I finally learn what 'rphf' is for from [1]. This looks more elegant. > I like it. > > [1] http://www.microsoft.com/typography/OpenTypeDev/myanmar/intro.htm
So, assuming we choose the SAKOT-less encoding scheme, let me summarize the issue for Behdad: U+1A58 TAI THAM SIGN MAI KANG LAI has a special property. There are two styles of rendering. 1. In Lao Tham and traditional Lanna, it's placed on the next base consonant, like Myanmar Kinzi. So, the word "ᩈᩘᨥᩮᩣ" <U+1A48 HIGH SA, U+1A58 MAI KANG LAI, U+1A25 LOW KHA, U+1A6E VOWEL E, U+1A63 VOWEL AA> should be rendered as: <HIGH SA, VOWEL E, LOW KHA, MAI KANG LAI, VOWEL AA> 2. In Khuen and modern Lanna, it's placed on the first base consonant, although a little bit shifted to the right. So, the same word above should be rendered as: <HIGH SA, MAI KANG LAI, VOWEL E, LOW KHA, VOWEL AA> That is, only the leading vowel is reordered. Therefore, we need rendering engine to reorder MAI KANG LAI when certain feature exists in the font. Richard suggests two choices: 'pref' and 'rphf'. The reordering should be similar to Myanmar Kinzi. The substituted Kinzi glyph should be place next to the next base consonant, or a dotted circle if no valid base consonant exists. The reordering may take place before the leading vowel is reordered. However, it may require extra check so that the reordering should not happen if there is an upper vowel on the next base consonant, for proper rendering of words like "ᩋᩘᨠᩕᩥ᩠ᩈ" <A, MAI KANG LAI, HIGH KA, MEDIAL RA, VOWEL I, SAKOT, HIGH SA> in Tai Khuen. As a side note, another choice which is not favored by the majority is to encode the different spellings differently, by using SAKOT after MAI KANG LAI when it requires the reordering. So, the shifting version of the sample word avobe would be: <HIGH SA, MAI KANG LAI, SAKOT, LOW KHA, VOWEL E, VOWEL AA> while the non-shifting version would be: <HIGH SA, MAI KANG LAI, LOW KHA, VOWEL E, VOWEL AA>. Just FYI, it's not chosen by the majority, though. Regards, -- Theppitak Karoonboonyanan http://linux.thai.net/~thep/ _______________________________________________ HarfBuzz mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/harfbuzz
