Re: ZWJ and Latin Ligatures

Date: Thu Jul 18 2002 - 19:05:53 EDT

On 07/17/2002 11:48:28 AM John Hudson wrote:

>>In Graphite, character sequences get mapped into glyph sequences
>>via the cmap...

>Presumably, though, making ligature lookups dependent on ZWJ in Graphite

>as in OpenType -- relies on the ZWJ character actually being painted.

Yes, if I understand you: the font developer would create rules in the Graphite Description Language (which get compiled into state tables) that look for glyph sequences that would include a virtual glyph corresponding to ZWJ. So, a sequence of glyphs gLtnSmS gZWJ gLtnSmT would be transformed into a different sequence gLtnLigSmSSmT. The vitual glyph that was in the initial glyph string doesn't survive and so doesn't get rasterised, but it does have to be part of the original glyph sequence.

>One >of the issues I am looking at with ZWJ is treatment of that character as an >unpainted control character in some systems and applications. If a glyph is >never painted, it doesn't matter how many font lookups include the glyph: >nothing is going to happen.

In principle, it would be possible with Graphite to have a layer (in the app, say) that converted a character sequence like < ... s, ZWJ, t ... > into a sequence without ZWJ -- < ... s, t ... > -- and also set a feature, and then have a font that has a glyph mapping gLtnSmS + gLtnSmT -> gLtnLigSmSSmT that operates only if that feature is set. That would go counter to the general philosophy of Graphite (which is like AAT and unlike OT in this regard) which fundamentally assumes that the shaping behaviour is entirely encapsulated in the font and not in any way dependent upon behaviours being hard-wired into the software. This was one of the basic design criteria in order to ensure that support for a script could be added by building a font using tools assessible to people with less that than C-programming skills and without requiring any re-write of software. Something like this could perhaps be considered as a special case, though, if it is to become conventional programming practice for applications to suppress ZWJ from strings that it asks the system to draw.

Perhaps this represents an area that would benefit from a TR or something from the Consortium spelling out what is considered best practice. It's the kind of thing that really should be standardised across implementations.

- Peter

--------------------------------------------------------------------------- Peter Constable

Non-Roman Script Initiative, SIL International 7500 W. Camp Wisdom Rd., Dallas, TX 75236, USA Tel: +1 972 708 7485 E-mail: <>

This archive was generated by hypermail 2.1.2 : Thu Jul 18 2002 - 17:15:16 EDT