Generating fonts ↩
Different methods for exporting fonts from RoboFont
Supported output formats
RoboFont can generate fonts in the following binary formats:
- OpenType CFF
-
- PostScript-flavored OpenType fonts
.otffile extension- cubic outlines
- OpenType TTF
-
- TrueType-flavored OpenType fonts
.ttffile extension- quadratic outlines
- PostScript
-
.pfafile extension- cubic outlines
- legacy format
Other font formats are supported using extensions or external libraries:
- Variable fonts + webfonts
- Variable fonts and webfonts (WOFF2) can be generated using the Batch extension.
- Color fonts
- OpenType color fonts (SVG, COLR/CPAL and sbix formats) can be generated using the RoboChrome extension.
- VFB fonts
- Source fonts in FontLab’s
.vfbformat can be generated directly from the Generate Fonts sheet if vfb2ufo is installed.
Generating fonts from the menu
To generate the current font, choose File > Generate Font from the Application Menu (or use the shortcut keys ⌥ ⌘ G) to open the Generate Font sheet:

Options
| option | description |
|---|---|
| Save As | The name of the output font file. |
| Tags | Tags to be assigned to the generated file. (optional) |
| Where | Folder where the file should be generated. |
| layer | Choose a UFO layer as the source for the generated font. |
| decompose | Convert all components into contours. |
| remove overlap | Remove overlaps in the outlines of all glyphs. |
| autohint | Apply the AFDKO’s autohint program to the font. |
| release mode | Set release mode ON. This turns on subroutinization, applies the GlyphOrderAndAliasDB file, and removes “Development” from the version string.
|
| format | Choose a format for the generated font. |
| use MacRoman as start of the glyph order | Use the MacRoman character set as the first glyphs in the font. |
Generating fonts with a script
Use the font.generate method to generate fonts with code:
f = CurrentFont()
formats = {
'OpenType-CFF (otf)': 'otfcff',
'OpenType-TTF (ttf)': 'otfttf',
'PostScript (pfa)' : 'pctype1ascii',
}
for fontFormat in formats.keys():
print(f'generating {fontFormat} font...')
errors = f.generate(formats[fontFormat])
# print(errors)
If you need floating point coordinates in your otf, remember to set the round tolerance of your font to 0
f = CurrentFont()
f.lib["com.typemytype.robofont.roundTolerance"] = 0
You can find a complete list of the custom lib keys supported by RoboFont at Custom lib keys