Rich Felker wrote:
Whether it's possible to support all combinations efficiently, I don't
know. The OpenType system is very poorly designed from what I can
tell. In the Tibetan fonts I've examined, rather than just saying
"character U+0F62 needs to use an alternate glyph when followed by any
of {list here} combining characters", there are individual ligature
combination tables for each pairing. Whether this is just lack of
understanding on the font designer's part or fundamental limitations
of OpenType, I'm not sure.
Although you can build Tibetan stacks using contextual substitutions
I've found through trial and error that it is generally much more
efficient to have pre-composed consonant stacks and simple
(non-contextual) GSUB lookups. You will probably still need some
contextual lookups for vowel marks and for a few variant forms of stacks
- especially in cursive style Tibetan - but having a lot of contextual
substitution lookups in a Tibetan font seems to slow everything to a
crawl especially with long documents.
Since existing elements in a Tibetan stack usually need to get smaller
as additional elements are added to the stack, building stacks at run
time (rather than having pre-composed ligatures) inevitably involves a
lot of complex contextual substitution. IMO these are best used
sparingly with existing OT rendering engines.
A downside of this is that a font needs to contain a lot of glyphs for
comprehensive support of Tibetan script.
best regards
- Chris
Virus Checked by Fastlink ISP Bhutan