This is part of the old website. New website begins at

Are you a web developer? Help us migrate this page on Github

Generate Font Dialog

This generates font files, both outline and bitmap. You may choose not to generate either, you may generate an afm file or a pfm file, you may select the type of postscript output, you may select which pixelsizes of bitmap to generate.

The outline types are:

The bitmap types are:

The options dialog provides the following check boxes. Not all are enabled at all times.

TTF (and OpenType) fonts are usually generated in Unicode encoding, there will also be a tiny macintosh encoding of MacRoman (and a macintosh copy of the unicode encoding) -- the exceptions are: KSC5601 and Wansung fonts which will use Wansung, Johab fonts will use johab, JIS208 and SJIS fonts will use SJIS, Big5 will use big5 encoding. Fonts with a "Full Unicode" encoding will have both a 2 byte unicode encoding table and a 4 byte table. OpenType CID keyed fonts will be saved with Unicode encoding.

PostScript fonts are generated in whatever encoding the font is using (except if you take a two byte encoding and generate a Type1 font (rather than a Type0) then only the first few (256) glyphs will be encoded). Type0 does not support a full Unicode (4 byte) encoding.

PS CID (and OpenType CID in the CFF) are saved with no encoding. The encodings live in separate cmap files which are available from adobe (and perhaps other font vendors).

If you save a CID font with a format other than PS CID or OpenType CID, then only the currently displayed subfont will be saved, with the current meaningless glyph ordering (I suppose this is useful if you wish to extract a sub-font from a CID font).

SVG fonts don't really have the concept of an encoding other than Unicode.

TTF (and OpenType) fonts will produce vertical metrics tables if the font has vertical metrics enabled. PostScript type1 fonts will not produce Metrics2 dictionaries (If someone actually wants this let me know, it can be done, but I get the impression that nobody uses this any more).

On Mac OS/X, when generating a resource font containing a postscript font then the filename textfield will not be present (as the filename is determined by the fontname). You can still select a directory however.

The bitmap sizes must all be present in the font database. AntiAliased fonts can be indicated by following the pixelsize by "@<depth>" (ie. "@8").

If you are generating a bdf font then you will be prompted for a resolution later.

See the section on namelists for a discussion of the "Force glyph names to" field.

If you leave [] Validate Before Saving checked then FontForge will attempt to validate your font. If it passes then FontForge will save it without bothering you further, but if it fails FontForge will give you the option of reviewing errors and fixing them. It will pop up a validation window.

If you check [] Append a FONTLOG entry then a text area will open up in which you can create a new FONTLOG entry to be appended to the end of the FONTLOG. This will become part of the FONTLOG before it is saved (with [] Output Font Log in the [Options] dialog) BUT you must save the font if you wish to retain this entry in the sfd file itself.

If you generate a TrueType or OpenType font with the OpenType mode set (note: the term "OpenType" means two things, a truetype wrapper around a postscript font, or a set of tables containing typographic information -- here the OpenType mode refers to the typographic tables) then FontForge will generate GPOS, GSUB, and GDEF tables. These contain kerning, ligature information, arabic forms data, anchor points, etc.

Apple does not completely support these OpenType layout tables. If you set Apple mode 'kern', 'opbd', 'morx', 'feat', 'lcar' and 'prop' tables may be generated instead. (and a couple of other small differences will appear).

If you set both Apple and OpenType then both sets of tables will be generated. If you set neither, then only the 'kern' table will be generated, and it will only contain pair-wise kerning (no kerning classes, no kerning by state machine). This is the kind of kerning available in the original truetype spec (from which both Apple and OpenType have diverged, but which both still support).

Uploads to Open Font Library

It is possible to upload a font to the Open Font Library, please see that section for more information.

Generate Mac Family

This brings up a dialog very similar to the generate fonts dialog above, but with a few added fields. Because this dialog is for Mac families, only Mac formats are supported.

Right above the [Save] button is a list of all fonts that FontForge thinks should be included in this family, along with their bitmap info. If you don't want a font to be in the family simply uncheck its checkbox.

The font styles that are allowed in a family are limited by the capabilities of the mac 'FOND' resource which only allows one style of a given type and does not support the concepts of "Light", "Black" (if there is already a "Bold" style), "Oblique" (if there is already an "Italic" style), etc. Generally FontForge will be able to figure out a font's style from its fontname, but in some cases you may wish to override this by setting the mac style directly in fontinfo.

As of Mac OS/X 10.6 Apple appears to be deprecating this format and moving toward TTC files (see below).

For information on creating mac font families beyond the capabilities of this dialog look at the FAQ.

Generate TTC

A TrueType Collection file can contain many fonts. They need not be all in the same family (though, of course, they can be).

The dialog lists all open fonts, you may choose any of them to go into the ttc file. No especial magic is needed to bind fonts into one family (at least I hope not).

Traditionally ttc files have been used to contain variants of large CJK fonts (where most of the CJK glyphs remain the same across fonts with a few glyphs (often the latin letters) changing). The format allows glyphs to be shared across fonts, which can result in considerable space savings in some collections -- but this can also take time.

On the mac, however, ttc files are generally used to contain a font family where there is very little (often no) overlap of glyphs between fonts.

FontForge can produce two kinds of ttc files, the first ([*] Merge tables across fonts) will try to use a single merged 'glyf'/'hmtx'/'hhea'/'vmtx'/'vhea' tables for all fonts (and will try to share other tables if that is possible). The second, with merge tables turned off, will dump individual fonts into the collection with no attempt to optimize.

FontForge can also produce ttc files which use the CFF font format. The OpenType documentation claims this will not work, but it does seem to on both the Mac and unix/linux.

FontForge is not always able to produce merged tables ... this process will fail if:

SVG fonts

SVG (Scalable Vector Graphics) fonts, come in two forms, one corresponds roughly to a PostScript Type1 font, and one to a PostScript Type 3 font.

In the first format a set of contours is specified for each glyph. There is no indication given whether the font should be stroked or filled -- that informaton will have inherited from the graphical environment when the font is used on text.

In the second format each glyph may contain the stroke and fill commands needed to draw it.

FontForge usually generates the first format, but for multi layered or stroked fonts it will generate the second format.

-- Prev -- TOC -- Next --