OpenType fonts
OpenType data structure
Technically an OpenType font is a combination of outline data (in either PostScript or TrueType format, as noted above) and other data that are organised in a series of tables. These tables contain the following information:
- The header includes general information such as the file name, version, creation and modification date and data on the coordinate system.
- The character to glyph mapping table (cmap) documents the relation between characters and character shapes (glyphs). It supports:
- traditional ISO encodings
- encodings from Adobe and Apple
- Unicode encoding.
- The naming table defines the name of the font, the family it belongs to and the type of font.
- Another table contains the actual outline data (glyphs).
- When these are PostScript font data, they are included in a ‘cff’ table. In this case, type 2 data are used which is a more compact and faster evolution of the well known type 1font format.
- For character shapes that are defined using TrueType format, a ‘glyf’ table is used.
- Advanced Typographic Tables contain needed data to support the extra typographic features that OpenType offers.
- OpenType fonts can also contain bitmap fonts. These are sometimes used for very complex glyphs or for very small type sizes. Bitmap font data are contained in 3 ‘bitmap glyphs’ tables.
- A ‘digital signature table’ contains a digital signature from the original creator which can be used to check whether the font has been modified.
Not all of these tables have to be present in a font and that typographers can decide themselves how much work they put in the support for all the advanced features that OpenType offers. As such, the format itself is no guarantee that you get a complete Unicode-character set or a complete set of liguratures.