Re: Latin ligatures and Unicode

From: John Jenkins (
Date: Tue Dec 28 1999 - 12:10:22 EST

on 12/28/99 5:23 AM, Michael Everson at wrote:

> That's the problem. It's application-dependent. ZWL selects glyph cells in
> the font in all environments in EXACTLY the same way that
> base-character/combining-character sequences are selected. No change in
> technology. No change in model.

Er, Michael -- it doesn't quite work that way.

There are basically two ways to have a base-character/combining-character
sequence handled in current technologies. The most common one is to give
the combining character a zero width and negative left-side bearing. This
gives less than optimal display but doesn't require the glyph to be
pre-built into the font. It also works *without* AAT/OpenType support.

This approach won't work at all for ligatures.

The other way is to use the AAT/OpenType tables in the font to map multiple
glyphs to a single glyph. This allows for user overrides of the visual
display and designer-tuned glyphs for the combining sequence, but it limits
you to the glyphs pre-designed into the font and requires AAT/OpenType
support to work.

It is certainly true that this is basically the same way that ligature
support *already* works in AAT/OpenType. The difficulty is that both AAT
and OpenType envisage ligation control as existing *outside* the text
stream. A model of having that control exist simultaneously within the text
stream doesn't fit well on top of it.

The other real objection is that both AAT and OpenType are based on the
assumption that ligatures exist within certain classes, and that those
*classes* of ligatures are either on or off at a given point in the text.
It isn't a simple matter of running through a ligature table in the font to
find whether or not a particular ligature exists -- you have to run through
all the ligature classes in the font to see if a particular ligature exists
within that class then turn that class on or off, which would require
interaction with the client software (as the client software is maintaining
state information on which ligature classes are on and off at a given point
in the text stream).

Moreover, there are fonts (e.g., Linotype's Zapfino) which could easily have
multiple ligatures for a given glyph pair. How do you select between them?
And how do you deal with the case where a calligraphic font has
extraordinarily rare ligatures that only "make sense" within that context?
E.g., do I have to tag every "pp" pair in my text with a ZWL so that on the
off chance that it's ever displayed with Zapfino, one of the "pp" ligatures
is used?

In any event, if you're going to require AAT or OpenType for this to work,
why not use their current model for ligation control?

John H. Jenkins

This archive was generated by hypermail 2.1.2 : Tue Jul 10 2001 - 17:20:57 EDT