# TrueType and OpenType tables supported by FontForge

Apple, MS and Adobe all have their descriptions of TrueType and OpenType. MS and Adobe’s versions are essentially the same, while Apple’s differ significantly from either.

name | long name | FontForge’s use | Apple docs | Adobe docs
--- | --- | --- | --- | ---

avar

axis variation

Used to specify piecewise linear sections of axes for distortable fonts

avar

BASE

baseline data

Provides information on baseline positioning and per-script line heights in OpenType.

BASE

bsln

baseline data

Provides information on baseline positioning for AAT.

bsln

BDF

X11 BDF header

This table is not part of the official TrueType or OpenType specs. It contains the header information from old bdf fonts. I describe its format here.

bdat

bitmap data

Provides the actual bitmap data for all bitmap glyphs in Apple fonts. ‘EBDT’ is used by MS/Adobe instead (and has the same format)

bdat

bhed

bitmap font header

Replaces the ‘head’ table in Apple’s bitmap only fonts. (similar to ‘head’)

bhed

bloc

bitmap location data

Provides pointers to the appropriate bitmap data for each bitmap glyph in Apple fonts. ‘EBLC’ is used by MS/Adobe instead (and has the same format)

bloc

CFF

Compact Font Format

Provides all the outline data (and sometimes glyph names as well) for the PostScript Type2 font that is the heart of an OpenType font. Vaguely equivalent to ‘glyf’ , ‘loca’ and ‘post’ combined.

CFF

cmap

character code mapping

Provides at least one encoding from a stream of bytes to glyphs in the font. FontForge provides at least three encodings in every font (one for Mac Roman, one for Mac Unicode, one for MS Unicode). For some fonts it will additionally provide a CJK encoding (Big5, SJIS, etc) or an extended unicode encoding which will cover code points outside of the BMP.

For fonts with special 1-byte encodings (such as symbol) it will provide a “symbol” encoding which maps a known page in the corporate use area to the glyphs.

cmap

cmap

cvar

variations on cvt table

Used to specify hinting differences in distortable fonts

cvar

cvt | control value table | FontForge uses this when it attempts to hint truetype fonts (FontForge will read it from a font and save it into another). | cvt | cvt

EBDT

embedded bitmap data

Provides the actual bitmap data for all bitmap glyphs in MS/Adobe fonts. ‘bdat’ is used by Apple instead (and has the same format)

EBDT

EBLC

embedded bitmap location

Provides pointers to the appropriate bitmap data for each bitmap glyph in MS/Adobe fonts. ‘bloc’ is used by Apple instead (and has the same format)

EBLC

EBSC | embedded bitmap scaling | Provides information on how to scale bitmaps (on those rare occasions where this is desirable). FontForge uses it when making bitmap only fonts for windows. | EBSC | EBSC

feat

layout feature table

Maps features specified in Apple’s ‘morx’ (or ‘mort’) tables into names provided in the ‘name’ table. FontForge generates this when it generates a ‘morx’ table.

feat

FFTM

FontForge timestamp

This table is unique to FontForge. It contains three timestamps: First FontForge’s version date, then when the font was generated, and when the font was created. I describe its format here.

fpgm | font program | FontForge never generates this, but it will preserve it and allows users to edit it. | fpgm | fpgm

fvar

font variations

Provides top level information about distortable fonts. Specifies the types of distortions possible.

fvar

gasp | grid-fitting and scan conversion | When FontForge does not attempt to hint a truetype font it will generate this table which tells the rasterizer not to to do grid-fitting (hinting) but to do anti-aliasing instead. | gasp | gasp

GDEF

glyph definition

Divides glyphs into various classes that make using the GPOS/GSUB tables easier. Also provides internal caret positions for ligatures. It is approximately equivalent to Apple’s ‘prop’ and ‘lcar’ tables combined.

GDEF

glyf | glyph outline | Provides outline information for truetype glyphs. Vaguely equivalent to ‘CFF ‘. | glyf | glyf

GPOS

glyph positioning

Provides kerning information, mark-to-base, etc. for opentype fonts. See the chapter on GPOS in FontForge for more information. Vaguely equivalent to ‘kern’ and ‘opbd’ tables.

GPOS

GSUB

glyph substitution

Provides ligature information, swash, etc. for opentype fonts. See the chapter on GSUB in FontForge for more information. Vaguely equivalent to ‘morx’.

GSUB

gvar

glyph variations

This table contains the meat of a distortable font. It specifies how each glyph can be distorted.

gvar

head | font header | Contains general font information, such as the size of the em-square, a time stamp, check sum information, etc. | head | head
hhea | horizontal header | This table contains font-wide horizontal metric information. | hhea | hhea
hmtx | horizontal metrics | This contains the per-glyph horizontal metrics. | hmtx | hmtx
kern | kerning | Provides kerning information for Apple’s truetype fonts (and for older MS truetype fonts). In OpenType fonts this information is contained in the GPOS table. | kern | kern

lcar

ligature caret

This table provides the location of carets within ligatures in an Apple font. This information is contained in the GDEF table in opentype fonts.

lcar

loca | glyph location | This provides a pointer into the ‘glyf’ table for each glyph in the font. It is required for truetype and meaningless for opentype (where vaguely equivalent information is provided in the CFF table). | loca | loca

MATH

mathematical typesetting

Provides general information needed for mathematical typesetting.

This is a new table (August 2007) and there is currently no publicly available documentation for it.

maxp | maximum profile | Provides general “maximum” information about the font. This contains: the maximum number of glyphs in a font, the maximum number of points in a glyph, the maximum number of references in a glyph, etc. | maxp | maxp

mort

metamorphosis

FontForge will read this table but not generate it. This table has been replaced by the ‘morx’ table which will be generated instead. It is vaguely equivalent to the GSUB table.

mort

morx

extended metamorphosis

Provides ligature information, swash, etc. for apple’s truetype fonts. FontForge can read and write this table. See the chapter on morx in FontForge for more information. Vaguely equivalent to ‘GSUB’.

morx

name | name | Provides certain standard strings relevant to the font (font name, family name, license, etc.) in various languages. In Apple fonts also provides the names of various features of the ‘morx’/’mort’ table. | name | name

opbd

optical bounds

This table provides optical bound information for each glyph in the table in an Apple font. This information may also be provided in the GPOS table of an opentype font.

opbd

PfEd

FontForge’s personal table

This table is unique to FontForge. It can contain things like FontForge’s comments, and colors.I describe its format here.

post | glyph name and postscript compatibility | This table provides some additional postscript information (italic angle), but mostly it provides names for all glyphs. | post | post
prep | cvt program | FontForge never generatest this table itself, but it will retain it when reading other fonts, and it allows users to edit it. | prep | prep

prop

glyph properties

Provides the unicode properties of each glyph for an Apple font. This table bears some similarities to the GDEF table.

prop

TeX

TeX information

This table is unique to FontForge and is for use by TeX. I describe its format here.

vhea | vertical header | FontForge generates this table for fonts with vertical metrics. This table contains font-wide vertical metric information. | vhea | vhea
vmtx | vertical metrics | FontForge generates this table for fonts with vertical metrics. This contains the per-glyph vertical metrics. | vmtx | vmtx

Advanced Typography tables in FontForge