jDo@emperor.scs.com (James Do) (06/28/91)
I have delved some more into PostScript's specifications for kerning
and composing, and would like to share the things I have found,
continuing the thread which Charles Bigelow had started in [Linguist
List, Vol. 2, No. 0295] from Mon, 10 Jun 91 22:16:36 PDT.
1/ The basic rendering mechanism takes a character, abbreviated c ,
and performs the following transformation:
c --> code(c) --> name(c) --> glyph(c) (1)
where
code(c) is the character code value for c ;
name(c) is the PostScript name (from the Encoding dictionary);
glyph(c) is the rendering of c (from the CharStrings dictionary).
2/ The Adobe Font Metric (AFM) file for each font specifies kerning and
composite font information so that, for a given set of characters (two
characters in this example), we get:
c1 c2 --> ... ? ... --> kerned_glyph(c1,c2) (2)
or
c1 c2 --> ... ? ... --> composite_glyph(c1,c2) (3)
through some internal [?] transformation, where:
kerned_glyph(c1,c2) "kerns" c1 and c2 ;
composite_glyph(c1,c2) "composes" c1 and c2 .
It turns out that relative positions in x- and y-directions can be
specified in both kerning and composing, according to the AFM 3.0 specs.
Relative sizes may *not* be specified, however.
3/ Finally -- this is the crucial point why character encoding in
precomposed or separable architectures really does *depend* on
rendering technology, but does *not* matter for PostScript -- the AFM
file allows ligatures to be specified, so that:
c1 c2 --> ... ? ... --> ligature_name(c1,c2) (4)
and thus can be fed into the latter part of formula (1). This
methodology allows for high fidelity in rendering, especially when
relative positioning of the components is inadequate.
I hope that the above does not contain any glaring error(s), because it
is based only on a reading of PostScript documentation, and not on any
real implementation. I would, therefore, really appreciate any
correction(s) and/or clarification(s) to this posting.
Regards,
James Do +-----------------------------+-----------------------------+
| Mentor Graphics | eml: jDo@sjc.mentorg.com |
+-----------------------------+-----------------------------+