This document describes an example process of generating hinted fonts with PostScript or TrueType outlines using automatic and/or simple manual steps in FontLab Studio 5.
The production of hinted fonts can be primarily divided into three major parts:
- reading hinting from existing native fonts
- adding hinting to an existing .vfb document
- writing hinting into generated native fonts
For more detailed information about hinting in FontLab Studio, please refer to the User’s Manual. We also recommend reading the article Notes on Hinting with FontLab by J. Victor Gaultney.
There is a fundamental difference in how FontLab Studio (FLS) treats hinting information for PostScript–flavored glyphs and TrueType–flavored glyphs. PostScript-flavored glyphs are those used in OpenType PS (.otf), Type 1 and MultipleMaster fonts. TrueType-flavored glyphs are those used in OpenType TT (.ttf) and TrueType fonts. The native FontLab document format (.vfb) can store both kinds of glyphs.
Hinting in PostScript-flavored glyphs (PS hinting) exists on one level only, so no translation or conversion is necessary. FontLab Studio can losslessly read and write PS hinting, it can also losslessly modify PS hinting as well as generate it. More precisely: FLS supports Type 1 hints natively. When reading OpenType PS (.otf) fonts, FLS converts CFF hinting into Type 1 hinting.
Hinting in TrueType-flavored glyphs (TT hinting) exists on two levels:
- the low-level TT hinting (native) — assembly code in the TrueType instructions language, compiled into binary form, stored in OpenType TT (.ttf) and TrueType fonts, as well as optionally stored in the FontLab .vfb documents.
- the high-level TT hinting (visual) — visual instructions in FontLab’s own TTH language, stored in the FontLab .vfb documents.
FontLab Studio can read low-level TT hinting. FLS can also write the stored low-level TT hinting but only for glyphs that had not been modified. If you modify a glyph, the stored low-level TT hinting will be removed.
FontLab Studio can also convert PS hinting into high-level TT hinting, modify the high-level TT hinting, and convert (compile) the high-level TT hinting into the low-level TT hinting. Note that FLS cannot convert (decompile) the low-level TT hinting into the high-level TT hinting.