Xref: utzoo comp.fonts:2703 comp.lang.postscript:9155 Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!emperor!jDo From: jDo@emperor.scs.com (James Do) Newsgroups: comp.fonts,comp.lang.postscript Subject: Re: Diacritics, orthography, type design, font format Message-ID: <1991Jun27.225739.23116@emperor.scs.com> Date: 27 Jun 91 22:57:39 GMT Organization: Mentor Graphics IC Group, San Jose, CA Lines: 56 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 | +-----------------------------+-----------------------------+