[HarfBuzz] Regression in ZWJ handling for Indic CV ligatures

Behdad Esfahbod behdad at behdad.org
Thu Apr 11 11:01:28 PDT 2013


On 13-04-05 03:45 PM, Ian-Mathew Hornburg wrote:
> 2013/4/4 Behdad Esfahbod <behdad at behdad.org>:
>> To add more context here, there's an inherent conflict between general Unicode
>> principle that inserting a ZWJ should encourage ligation, and the use of ZWJ
>> in most of Indic parts of the standard to inhibit conjunct formation. We
>> tried to implement this in HarfBuzz, by transparently skipping ZWJ in
>> "presentation forms" features, but respecting its presence to inhibit ligation
>> in "basic shaping features". However, fonts in common circulation use (what I
>> call) arbitrary features to perform ligations and substitutions, which as a
>> result can behave incorrectly when, say, a font uses 'psts' instead of 'pstf'
>> to form a subjoined conjunct. *That* is why we had to revert this change.
> 
> So what you're saying is that because Indic ZWJ behavior is different
> than the general Unicode principle, it can't be automagically handled
> by HarfBuzz, and instead that the *fonts themselves* that need to
> contain lookups to handle ZWJs for special shaping cases?

It's more that in Indic, sometimes ZWJ encourages ligatures, other times it
prohibits them.  To be able to do it properly we would then need to
differentiate the two cases.  We have not found a uniform logic to do that so
far.  And since Uniscribe doesn't try to do this, for now, yes, fonts should
include ZWJ if they want it to shape correctly.

behdad

> Am I understanding that correctly?

-- 
behdad
http://behdad.org/



More information about the HarfBuzz mailing list