Generating fonts ↩
Supported output formats
RoboFont can generate fonts in the following binary formats:
- OpenType CFF
-
- PostScript-flavored OpenType fonts
.otf
file extension- cubic outlines
- OpenType TTF
-
- TrueType-flavored OpenType fonts
.ttf
file extension- quadratic outlines
- PostScript
-
.pfa
file extension- cubic outlines
- legacy format
Other font formats are supported using extensions or external libraries:
- Variable fonts + webfonts
- Variable fonts and all webfont formats (WOFF, WOFF2, EOT, SVG) 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
.vfb
format 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