Re: ZWJ and Latin Ligatures

From: John H. Jenkins (
Date: Tue Jul 02 2002 - 13:16:36 EDT

On Tuesday, July 2, 2002, at 10:55 AM, Marco Cimarosti wrote:

> I mean: isn't this two-step mapping:
> code point -> glyph ID
> component glyph ID's -> ligature glyph ID
> functionally equivalent to an hypothetical one-step mapping?
> component code points -> ligature glyph ID
> Am I missing something?

Functionally, the two are equivalent. There are, however, two subtle

1) If you map directly from multiple characters to a single glyph, you don'
t have to include glyphs in your font for all the "pieces" if they're
never supposed to appear by themselves. As an extreme example, if I
implemented astral character support via ligating surrogate pairs, I'd
need to include glyphs for the unpaired surrogates. As it is, Windows and
the Mac *do* support mapping paired surrogates directly to glyphs, so you
don't need these extra glyphs which are never seen.

2) A mapping directly from multiple characters to single glyphs expressly
makes the process something not to percolate up to the UI. The indirect
process means that there are some actions in glyph space which *are*
optional and which the user can turn on and off, and others which aren't.

In OpenType, this is less of an issue since this was always the case and
applications are expected to do the UI work themselves. In AAT, we
originally assumed (back in the days of the Technology That Must Not Be
Named) that all layout features are optional and can be turned on and off,
  and that the UI would always reflect the entire suite of available
features. We had to rewrite our tools to allow for required actions which
cannot be turned off.

Poor Michael is saddled with older versions of our tools which are hard to
use and don't let him do this. We're working on getting newer and better
ones to him.

John H. Jenkins

This archive was generated by hypermail 2.1.2 : Tue Jul 02 2002 - 11:32:56 EDT