fontmake - compile fonts from UFO or Glyphs to OTF/TTF
usage: fontmake [-h] [--version] [-g GLYPHS | -u UFO [UFO
...] |
- -m DESIGNSPACE] [--glyph-data GLYPHDATA] [-o FORMAT [FORMAT ...]]
[--output-path OUTPUT_PATH | --output-dir OUTPUT_DIR] [-i
[INSTANCE_NAME]] [--variable-fonts [VARIABLE_FONT_FILENAME]] [-M]
[--family-name FAMILY_NAME] [--round-instances] [--designspace-path
DESIGNSPACE_PATH] [--master-dir MASTER_DIR] [--instance-dir INSTANCE_DIR]
[--no-write-skipexportglyphs] [--validate-ufo] [--check-compatibility |
--no-check-compatibility] [--expand-features-to-instances]
[--fea-include-dir FEA_INCLUDE_DIR] [--no-generate-GDEF]
[--save-ufo-as-zip | --ufo-structure {package,zip,json}]
[--indent-json] [--keep-overlaps] [--overlaps-backend BACKEND]
[--keep-direction] [--ttf-curves {cu2qu,mixed,keep-quad,keep-cubic}] [-e
ERROR] [-f] [-a [AUTOHINT]] [-A] [--cff-round-tolerance FLOAT]
[--optimize-cff OPTIMIZE_CFF] [--subroutinizer {compreffor,cffsubr}]
[--no-optimize-gvar] [--filter CLASS] [--no-auto-use-my-metrics]
[--drop-implied-oncurves] [--interpolate-binary-layout [MASTER_DIR]]
[--feature-writer CLASS] [--debug-feature-file FILE]
[--no-variable-features] [--mti-source MTI_SOURCE] [--production-names |
--no-production-names] [--subset | --no-subset] [-s |
-S] [--timing] [--verbose LEVEL] [INPUTS ...]
- -h, --help
- show this help message and exit
- --version
- show program's version number and exit
- --production-names
- Rename glyphs with production names if available otherwise use
uninames.
--no-production-names
- --subset
- Subset font using export flags set by glyphsLib
--no-subset
- -s,
--subroutinize
- Optimize CFF table using compreffor (default) [DEPRECATED: use
--optimize-cff option instead]
-S, --no-subroutinize
- Alternatively, guess source format from filename extension
- INPUTS
- Either one *.designspace or *.glyphs file, or one or more *.ufo
- --glyph-data
GLYPHDATA
- Custom GlyphData XML file with glyph info (production name, script,
category, subCategory, etc.). Can be used more than once (for Glyphs
sources only).
- -o, --output FORMAT
[FORMAT ...]
- Output font formats. Choose 1 or more from: ufo, otf, otf-cff2, ttf,
ttf-interpolatable, otf-interpolatable, variable, variable-cff2. Default:
otf, ttf. (No file paths).
- --output-path
OUTPUT_PATH
- Output font file path. Only valid when the output is a single file (e.g.
input is a single UFO or output is a single variable font)
- --output-dir
OUTPUT_DIR
- Output folder. By default, output folders are created in the current
working directory, grouping output fonts by format.
- -i, --interpolate
[INSTANCE_NAME]
- Interpolate masters and generate all the instances defined. To only
interpolate a specific instance (or instances) that match a given
"name" attribute, you can pass as argument the full instance
name or a regular expression. E.g.: -i "Noto Sans Bold";
or -i ".* UI Condensed". (for Glyphs or DesignSpace
sources only).
- --variable-fonts
[VARIABLE_FONT_FILENAME]
- Filter the list of variable fonts produced from the input Designspace
file. By default all listed variable fonts are generated. To generate a
specific variable font (or variable fonts) that match a given
"filename" attribute, you can pass as argument the full filename
or a regular expression. E.g.: --variable-fonts
"MyFontVF_WeightOnly.ttf"; or --variable-fonts
"MyFontVFItalic_.*.ttf".
- -M,
--masters-as-instances
- Output masters as instances
- --family-name
FAMILY_NAME
- Family name to use for masters, and to filter output instances
- --round-instances
- Apply integer rounding to all geometry when interpolating
- --designspace-path
DESIGNSPACE_PATH
- Path to output designspace file (for Glyphs sources only).
- --master-dir
MASTER_DIR
- Directory where to write master UFO. Default: "./master_ufo". If
value is "{tmp}", a temporary directory is created and removed
at the end (for Glyphs sources only).
- --instance-dir
INSTANCE_DIR
- Directory where to write instance UFOs. Default:
"./instance_ufo". If value is "{tmp}", a temporary
directory is created and removed at the end (for Glyphs sources
only).
- --no-write-skipexportglyphs
- Do not store the glyph export flags in the 'public.skipExportGlyphs' key
of designspace/UFO lib, but use the old private glyph lib key
'com.schriftgestaltung.Glyphs.Export' (for Glyphs sources only).
- --validate-ufo
- Enable ufoLib validation on reading/writing UFO files. It is disabled by
default
- --check-compatibility
- Check if the source files are interpolatable. It is disabled by default,
but enabled when building variable fonts or what the 'Enforce
Compatibility Check' custom parameter is set on a Glyphs file
- --no-check-compatibility
- Turns off the compatibility checker even when building variable fonts
- --expand-features-to-instances
- Resolves all include()s in the master feature file and writes the full
feature file to all instance UFOs. Only valid when interpolating. Use if
you share feature files of masters in external files, as instances can end
up elsewhere.
- --fea-include-dir
FEA_INCLUDE_DIR
- Overrides the default directory where to search for included feature files
with relative paths. This only works when the input is a Designspace or
UFOs, not from Glyphs at the moment.
- --no-generate-GDEF
- Do not auto-generate a GDEF table, but keep an existing one intact.
- --save-ufo-as-zip
- Deprecated. Use --ufo-structure=zip instead.
- --ufo-structure
{package,zip,json}
- Select UFO format structure. Choose between: package, zip, json (default:
package). NOTE: json export is unofficial/experimental.
- --indent-json
- Whether to format the JSON files created with
--ufostructure=json as multiple lines with 2-space
indentation. Default: single line, no indent.
- --keep-overlaps
- Do not remove any overlap.
- --overlaps-backend
BACKEND
- Select library to remove overlaps. Choose between: booleanOperations,
pathops (default: booleanOperations)
- --keep-direction
- Do not reverse contour direction when output is ttf or
ttf-interpolatable
- --ttf-curves
{cu2qu,mixed,keep-quad,keep-cubic}
- Controls conversion of cubic B??zier curves to TrueType quadratic splines.
By default ('cu2qu'), all cubics are converted to quadratic (glyf v0).
With 'mixed', cubics are converted to quadratic only when more economical.
If 'keep-quad' or 'keep-cubic', cu2qu is skipped altogether and curves are
compiled unchanged. NOTE: cubics in TTF use glyf v1 which is still
draft!
- -e, --conversion-error
ERROR
- Maximum approximation error for cubic to quadratic conversion measured in
EM
- -f,
--flatten-components
- Flatten nested components to single level.
- -a, --autohint
[AUTOHINT]
- Run ttfautohint. Can provide arguments, quoted. By default, ttfautohint is
run if the (.glyphs) source contains a 'TTFAutohint options' instance
custom parameter. This option overrides that. See --noautohint to
disable.
- -A,
--no-autohint
- Do not run ttfautohint, even if source contains a 'TTFAutohint options'
custom parameter
- --cff-round-tolerance
FLOAT
- Restrict rounding of point coordinates in CFF table to only those floats
whose absolute difference from their integral part is less than or equal
to the tolerance. By default, all floats are rounded to integer (tolerance
0.5); 0 disables rounding.
- --optimize-cff
OPTIMIZE_CFF
- 0 disables all optimizations; 1 specializes the CFF charstring operators;
2 (default) also enables subroutinization
- --subroutinizer
{compreffor,cffsubr}
- name of the library to use for compressing CFF charstrings. Choose
between: compreffor, cffsubr. By default compreffor is used for CFF 1, and
cffsubr for CFF2. NOTE: compreffor doesn't support CFF2.
- --no-optimize-gvar
- Do not perform IUP optimization on variable font's 'gvar' table. (only
works with 'variable' TrueTypeflavored output)
- --filter
CLASS
- string specifying a filter class to load, either built-in or from an
external module, optionally initialized with the given keyword arguments.
The class and module names are separated by '::'. The option can be
repeated multiple times for each filter class. The option overrides the
filters specified in the UFO lib. You can use an ellipsis
--filter='...' to keep the latter and insert additional
--filter(s), either before or after it.
- --no-auto-use-my-metrics
- Don't automatically set USE_MY_METRICS glyf component flags (0x0200).
- --drop-implied-oncurves
- drop on-curve points that can be implied when exactly in the middle of two
off-curve points (TrueType only; default: False).
- --interpolate-binary-layout
[MASTER_DIR]
- Interpolate layout tables from compiled master binaries. Requires Glyphs
or DesignSpace source.
- --feature-writer
CLASS
- string specifying a feature writer class to load, either built-in or from
an external module, optionally initialized with the given keyword
arguments. The class and module names are separated by '::'. The option
can be repeated multiple times for each writer class. A special value of
'None' will disable all automatic feature generation. The option overrides
both the default ufo2ft writers and those specified in the UFO lib. You
can use ellipsis --featurewriter='...' to keep the latter and
insert additional --feature-writer(s) either before or after
those.
- --debug-feature-file
FILE
- Path were to dump OpenType features text to debug auto-generated features
(kern, mark, mkmk, etc.).
- --no-variable-features
- Disable generation of variable FEA in ufo2ft when compiling VFs; instead
build separate OT layout tables for each master and merge them with
varLib.
- --mti-source
MTI_SOURCE
- mtiLib feature definition .plist file path (use instead of FEA)
- --timing
- Print the elapsed time for each steps
- --verbose
LEVEL
- Configure the logger verbosity level. Choose between: DEBUG, INFO,
WARNING, ERROR, CRITICAL. Default: INFO