Re: ZWJ and Latin Ligatures (was Re: (long) Re: Chromatic font research)

From: John H. Jenkins (
Date: Sun Jun 30 2002 - 13:34:48 EDT

On Sunday, June 30, 2002, at 05:31 AM, James Kass wrote:

> Can you please point me to a URL for Unicode 3.2 ligature control?
> This link (March 2002):
> ...glosses over Latin ligatures suggesting that mark-up should be
> used in some cases and ZWJ in others.

The precise language of the TR is:


Ligatures and Latin Typography (addition)

It is the task of the rendering system to select a ligature (where
ligatures are possible) as part of the task of creating the most pleasing
line layout. Fonts that provide more ligatures give the rendering system
more options.

However, defining the locations where ligatures are possible cannot be
done by the rendering system, because there are many languages in which
this depends not on simple letter pair context but on the meaning of the
word in question. 

ZWJ and ZWNJ are to be used for the latter task, marking the non-regular
cases where ligatures are required or prohibited. This is different from
selecting a degree of ligation for stylistic reasons. Such selection is
best done with style markup. See Unicode Technical Report #20, “Unicode in
XML and other Markup Languages” for more information.


That seems pretty clear to me. If you want a "ct" ligature in your
document because you think it "looks cool," then you use some higher-level
protocol. The "looks cool" factor simply doesn't apply unless you know
what font you're dealing with, because "ct" "looks cool" in some fonts,
but not others.

In real Latin typography, the set of ligatures available with a typeface
varies from font to font. Type designers add ligatures (or not) depending
on their esthetic sense of what looks good and how the letters interact
with one another. From a type design perspective, a monospaced font like
Courier should have no ligatures; they don't make sense. A rich book font
like Adobe Minion Pro will have a fairly large but standard set, and a
calligraphic font like Linotype's Zapfino will have a huge and imaginative

The programs that provide ligature control do so by means of having the
user select a range of text and then changing the level of ligation. The
type formats like OpenType or AAT support this by allowing the type
designer to categorize ligatures as "common," "rare," "required," and so
on. Thus, if I'm typesetting a document in Adobe InDesign, I'll select
text, and turn "rare" ligatures on and thus see the "ct" ligature, if it
exists in the font and if the type designer has designated it a "rare"

To be frank, turning on an optional "ct" ligature throughout a document by
means of inserting ZWJ everywhere you want it to take place makes as much
sense in that model—the model that Western typography uses for languages
such as English—as having the user insert a <i></i> pair around every
letter they want in italics.

Remember, Unicode is aiming at encoding *plain text*. For the bulk of
Latin-based languages, ligation control is simply not a matter of *plain
text*—that is, the message is still perfectly correct whether ligatures
are on or off. There are some exceptional cases. The ZWJ/ZWNJ is
available for such exceptional cases.

John H. Jenkins

This archive was generated by hypermail 2.1.2 : Sun Jun 30 2002 - 11:50:06 EDT