Re: Presentation forms (was Re: dotless j)

From: Peter_Constable@sil.org
Date: Mon Jul 05 1999 - 15:47:11 EDT


>I would suppose that in TrueType fonts, which carry Unicode encoding, the
glyphs that aren't characters have to be given Unicode codes anyway, in the
Private Use areas. Is that right?

Not at all! It's very much possible to have glyphs in a TrueType font that
aren't directly associated with any Unicode value. I wouldn't be at all
surprised if some of the fonts that ship with Windows 2000 or with Office 2000
are this way.

>If so, the font has to contain the mapping information for presentation glyphs,
and there should be no chance for confusion between glyph encodings in different
fonts using different internal mappings. Is that right?

Correct. A font contains a variety of tables. One is the glyph table, which
contains all the outlines. Another is the cmap table, which associates each
Unicode value with a glyph in the glyph table (very often the "undefined" glyph
- usually appears as a square box). It is possible to have other tables as well,
one of which can be used by an appropriate algorithm as follows (e.g.):

Let's suppose an app requests the system to write "fi". The system looks into
the cmap table of the font at U+0066 and U+0069 and gets a couple of glyph IDs,
let's say x0011 and x0012. Then another routine in the rendering process takes
that pair of IDs and looks into a different table in the font, and finds an
entry which indicates that this pair of IDs should be replaced by a single ID,
x0135, say. Finally, the rendering system draws on the display device the glyph
at entry x0135 in the glyph table, and the user sees an fi ligature.

The magic is all in the extra tables and the rendering routine that manipulates
that information. This is what many of us are lacking. Since there has been a
lot of concern expressed in this thread that app developers don't want to have
to mess with the nitty gritty of selecting appropriate presentation forms, note
that a thorough implementation of this kind of thing has been provided by Apple
in the form of ATSUI. MS has provided a limited implementation in the form of
Uniscribe (though it's still in process and they haven't, that I know, promoted
it to developers or even provided complete documentation). The folks at Sun are
also working on the same for Java, and others are working on similar projects.
And if those of you for whom this is news want to know more, then you should
consider attending the next conference.

Peter



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