[HarfBuzz] Fwd: ZWNJ is being ignored

Georg Duffner g.duffner at gmail.com
Wed May 1 05:57:22 PDT 2013


Am 2013-05-01 11:30, schrieb Jonathan Kew:
> On 30/4/13 21:49, Behdad Esfahbod wrote:
>> On 13-04-28 05:27 PM, Georg Duffner wrote:
>>> Hi,
>>>
>>> I posted this on the XeTeX list. Khaled meant it could have something
>>> to do
>>> with
>>> http://cgit.freedesktop.org/harfbuzz/commit/?id=607feb7cff0e50f8738d2e49ca463fc9d7d494de
>>>
>>>
>>>
>>> Recently I’ve changed the behaviour of liga. The f-ligatures are now
>>> formed by
>>> component glyphs which get substituted by means of contextual chaining
>>> lookups. Thus, instead of
>>>
>>> sub f f by f_f; the lookup is now sub f' f by f._f;
>>
>> What you should be doing is:
>>
>> sub f' f' by f._f f;
>>
>> Not sure if the format supports that.  However, I understand that this
>> would
>> cause a problem in that every other f won't be substituted.
>>
>> We really do want to ignore ZWNJ in backtrack/lookahead.  The problem
>> is that
>> you are abusing those contexts to do a ligation using single
>> substitutions.
>>
>> Jonathan, do you have any suggestions?
>>
>
> Presumably, the way to handle this as a font developer is to explicitly
> handle the ZWNJ, by adding something like
>
>    sub f' zwnj f by f;
 >
> ahead of the existing rule. That should in effect block the "ligature"
> when ZWNJ is present, if I'm understanding correctly.

It wouldn’t change anything, as zwnj is ignored in contextual chaining 
lookups.

The relevant lookups are

feature liga:
     sub [ f f.DEU ]' [ f f.DEU ] by f._f;

feature calt:
     sub @DEFAULT_F' uni200C @SHORT_F by @SHORT_F;

They appear in this order in the font. IMO, ZWNJ should prevent lookup 
liga. I also thought of reverting the order, having first calt and then 
liga, but this wouldn’t change anything, as ZWNJ is ignored in 
contextual chaining.

I’d like you to consider, that ZWNJ is very uncommon in latin script, 
so, if it appears, you can be sure it has been inserted on purpose for 
breaking up a context. Therefore I don’t think it should be ignored. At 
the moment I only know of one keyboard layout for latin that has ZWNJ, 
which is the new german layout, standardized last year.

Best regards,
Georg



More information about the HarfBuzz mailing list