[Speaking for Uniscribe]

>So, any rule as to what ZWJ means is not implemented in the OpenType engine, 
>but rather in the font.  (As is the rule that 'a' does not look like 'b'.)

Our Arabic and Universal Shaping Engines understand that ZWJ invokes a joining 
form for joining scripts. Ligation is handled by the font. The presence of ZWJ 
invokes the joining forms, but since it is not included in the ligature lookup, 
the ligature does not form. The ZWNJ does not invoke a joining form. Thus we 
can achieve the forms illustrated figure 23-3.

The fi case is different because Latin is not a joining script. Furthermore, 
the ligated form fi, when supported, is usually a discretionary ligature. 
Therefore to achieve the Latin forms in 23-3, I would attach a lookup for the 
fi substitution to <dlig>, and specify a substitution that includes ZWJ under 
<rlig>.

As Chapter 23 states (TUS 7.0, p. 804), there is no way to request a 
discretionary ligature in plain text for Arabic (and other joining scripts).

>For which scripts may a font designer defensibly omit the duplicate with ZWJ?  
>The TUS says Arabic is one. Are there any others?

In general I  would say that a designer can omit the lookup with ZWJ for 
joining scripts that include ligated forms. 
Our Mongolian font has ligatures that behave in the same way as Arabic, in that 
they can be blocked, but the components still join. Our Syriac fonts have 
<rlig> lookups but these are cosmetic and don't produce a visually distinct 
ligated form so the impact of ZWJ is negligible, but effectively still the same 
as Arabic. Our other joining scripts don't have ligatures.
For Indic scripts see TUS (7.0) Figure 12.7: 
http://www.unicode.org/versions/Unicode7.0.0/ch12.pdf

Cheers,

Andrew

Reply via email to