ZWJ as a Ligature Suppressor

Khaled Hosny khaledhosny at
Mon Aug 10 14:00:41 CDT 2015

This is not always true, some rendering engines (like HarfBuzz) try to
follow the Unicode rules so ZWJ does not break ligatures except in
Arabic where the standard says it should be interpreted as <ZWJ, ZWNJ,


On Mon, Aug 10, 2015 at 05:58:24PM +0000, Andrew Glass (WINDOWS) wrote:
> Hi Richard,
> To ligate or not to ligate is up to the font designer. Normally, GSUB lookups that perform ligation will be broken by the presence of ZWJ or ZWNJ. If a font designer wishes to ligate in the presence of a ZWJ or ZWNJ then they could choose to include appropriate glyph sequences in their ligation lookups. For example:
> glyphA glyphB -> glyphC
> glyphA ZWJ glyphB -> glyphC
> Cheers,
> Andrew
> Andrew Glass Ph.D.
> Program Manager
> Shell Text Input Group | Windows | Microsoft
> -----Original Message-----
> From: Unicode [mailto:unicode-bounces at] On Behalf Of Richard Wordingham
> Sent: Sunday, August 9, 2015 3:58 AM
> To: unicode at
> Subject: ZWJ as a Ligature Suppressor
> According to the text just after TUS 7.0.0 Figure 23-3 (, ZWJ suppresses ligatures in Arabic script.  Does this rule apply to other normally cursive joined scripts, e.g. Syriac and Mongolian?
> Am I right in thinking that for an OpenType font for other scripts, the font writer must take precautions to prevent ZWJ accidentally suppressing ligatures that would be better suppressed by ZWNJ or <ZWJ ZWNJ ZWJ>?

More information about the Unicode mailing list