next up previous contents index
Next: Generation of AFM Information Up: Missing or Invalid AFM Previous: Missing or Invalid AFM   Contents   Index


Remarks on AFM Files

Information in AFM files is only relevant for placing character glyphs but not for rasterizing. The metric values are based on the same coordinate system as used in Type 1 font files, the so called charspace coordinate system. One unit is $1/1000 \mbox{bp}$ when a font is not scaled or scaled to 1 bp, respectively.

Information in AFM files can divided into several groups:

  1. Global Font Information: This information is generally not needed to place characters. Furthermore, most of this information is also contained in a Type 1 font file itself. This area is thus of marginal importance for t1lib.
  2. Character Width's and Bounding Boxes: These both are crucial for accurately placing the character glyphs. Fortunately, these are dimensions are exactly defined by the character outlines themselves. It is thus possible to compute them spending some computational effort.
  3. Ligature Information: For æsthetic reasons, certain character groups are often replaced by ligatures and a font file may define several ligatures. It is however not intuitively clear what character groups should be replaced by what ligatures.15 Fortunately, ligatures are not crucially needed for quality typesetting.
  4. Pair Kerning Information: This information is quite important for æsthetic reasons but it is entirely independent from the outline descriptions and can thus not be extracted from a font file.
  5. Track Kerning Information: This information gives hints of how to typeset text generally closer or wider at varying point sizes. t1lib does not use track kerning information and I personally do not consider using track kerning a good typographical style.
  6. Composite Character Data: This is needed to construct characters from two single characters. Typical examples are accented characters. t1lib currently does not deal with composite characters. Most of the composite characters needed are already existent internally.
To come to a conclusion, for our purposes it is sufficient to generate the characters' widths and their bounding boxes and we have all information we need to construct string glyphs.


next up previous contents index
Next: Generation of AFM Information Up: Missing or Invalid AFM Previous: Missing or Invalid AFM   Contents   Index
2004-10-04