makeotf -h
MakeOTF OpenType/CFF compiler - User Guide | afdko
makeotf -h
makeotf v2.0.94 May 23 2016 -f <input font> Specify input font path. Default is 'font.pfa'. -o <output font> Specify output font path. Default is '<PostScript-Name>.otf'. -b Set style to Bold. Affects style-linking. Default is not bold -nb Turn off the -b option, if it has previously been turned on. -i Set style to Italic. Affects style-linking. Default is not Italic -ni Turn off the -i option, if it has previously been turned on.
-ff <feature file> Specify path to feature file. Default is 'features'. -fs If there are no glyph substitution rules in the features file, make a stub GSUB table. -mf <FontMenuNameDB> Specify path to FontMenuNameDB file. Default is 'FontMenuNameDB'. -gf <GOADB> Specify path to GlyphOrderAndAliasDB file. Default is 'GlyphOrderAndAliasDB'. If this is specified, and the -r or -ga options are NOT specified, the effect is to use the Unicode assignments from the third column of the GOADB file without renaming the glyphs.
-r Set release mode. This turns on subroutinization, applies the GlyphOrderAndAliasDB file, and removes the word "Development" from the name table Version (name.ID=5) string. -nr sets the option option -r off, if it has been previously set.
-S Turn on subroutinization, a form of compression of the CFF font data. -nS Turn off subroutinzation, if it has previously been turned on.
-maxs <number> Limits the number of subroutines generated by glyph subroutinization to the number. Used for testing with rasterizers that don't process subroutinziation correctly.
-ga Applies the GlyphOrderAndAliasDB file. -nga Turn off the -ga option, if it has previously been turned on.
-gs Omit from the font any glyphs not mentioned in the GlyphOrderAndAliasDB file. Only works if -ga or -r is set.
-rev [version] Without the optional version number, increments the version number by 5. With an integer argument, it increments the minor version by that number. With a fractional argument, it sets the version to the fractional argument; the number must then be decimal with three decinal places, e.g. '1.045', not '1.45'.
-oldNameID4 Set Windows name. ID=4 to the PS name, and Mac = name. ID=4 to Preferred Family + space + Preferred Style name, as in all releases of MakeOTF before Dec 2010. -newNameID4 Set Windows and Mac name. ID=4 to Preferred Family + space + Preferred Style name, as in the current OpenType spec. This is the default behavior, and is needed only to override a fontinfo or project file setting. -osbOn <number> Set a bit to 'on' in the OS/2 table fsSelection field at the specified bit index. -osbOff <number> Set a bit to 'off' in the OS/2 table fsSelection field at the specified bit index. Note: if any of the bits 7,8,9 are set on or off, they must all three be explicitly set. See "New OS/2 Bits" in the "MakeOTFUserGuide.pdf" file. -osv <number> Set the OS/2 table version to the specified value. Must be greater than 0. If no bits >6 are specified for the OS/2 table fsSelection field, then the default version number is 3; else the default is 4. -addn Replace the .notdef glyph in the source data (if any) with a standard notdef glyph, matching font weight and width. -naddn Turn off the -addn option, if it has previously been turned on. -adds If the font is missing any of the Apple Mac Symbol glyphs, create them, matching the font weight and width. Will be disabled for fonts without both a zero and a lowerase 'x'. -nadds Turn off the -adds option, if it has previously been turned on. -serif Specify that any added glyph use the serif built-in multiple master glyph data. -sans Specify that any added glyphs will use the sans-serif built-in multiple master glyph data. -cs Override the heuristics, and specify the ScriptID for the Macintosh 'cmap' subtable; CID-keyed fonts only. -cl Override the heuristics, and specify the LanguageID for the Macintosh 'cmap' subtable; CID-keyed fonts only. -cm <path> Path to the Macintosh CMap resource; CID-keyed fonts only. -ch <path> Path to the UTF-32 CMap resource for horizontal glyphs; CID-keyed fonts only. -ci <path> Path to the Unicode Variation Sequences specification file; if present, a 'cmap' subtable will be added with PlatformID = 0, ScriptID = 5, and Format = 14. See MakeOTF User's Guide. -dbl For a short list of glyphs, double map them to two Unicode values if there is no other glyph mapped from the same Unicode value. This used to be default behaviour for makeotf. The glyph list is as follows: Delta (U+2206, U+0394) Omega (U+2126, U+03A9) Scedilla (U+015E, U+F6C1) Tcommaaccent (U+0162, U+021A) fraction (U+2044, U+2215) hyphen (U+002D, U+00AD) macron (U+00AF, U+02C9) mu (U+00B5, U+03BC) periodcentered (U+00B7, U+2219) scedilla (U+015F, U+F6C2) space (U+0020, U+00A00) tcommaaccent (U+0163, U+021B) -dcs Set OS/2.DefaultChar to the Unicode value for 'space' rather than '.notdef'. The latter is correct by the OT spec, but QuarkXPress 6.5 requires the former in order to print OTF/CFF fonts. -fi [<path>] Path to the fontinfo file. If no path is given, the default is to look for first 'fontinfo', then 'cidfontinfo', in the current directory. Used to set some default values. This are overridden by any conflicting settings in the project file and then by command-line options. This option is processed before any others, so if the path is relative, it is relative to the current working directory. All other relative paths are relative so the source font's parent directory. -fp [<path>] Path to the project file. If no path is given, the default is 'current.fpr'; If used, it sets default options that can be overridden by command-line options. -sp [<path>] Save the current options to the project file named in the "-fp" option; not needed unless you specified a name other than 'current.fpr'. If you supply the optional path argument, then options are saved to that file. -cn As a post-processing step, convert the CFF table to a CID-keyed CFF that specifies the Adobe-Identity-0 ROS. The resulting font should be considered experimental, and may not work in some applicatins. -ncn Turn off converting the CFF table to a CID-keyed CFF that specifies the Adobe-Identity-0 ROS; otherwise has no effect. -shw/-nshw Do/Do Not suppress warnings about unhinted glyphs. This is useful when processing unhinted fonts. -swo/-nswo Suppress CFF width optimization (use of defaultWidthX and nominalWidthX). Useful when poking at charstrings with other tools. -stubCmap4 Build only a "stub" Format 4 'cmap' subtable, with only two segments. This is useful only for special- purpose fonts such as AdobeBlank, whose size is an issue. Windows requires a Format 4 'cmap' subtable to be present, but it is not used. -omitMacNames/useMacNames Write only Windows platform menu names in name table, apart from the names specified in the feature file. -useMacNames writes Mac as well as Windows names. -overrideMenuNames Allow feature file name table entries to override default values and the values from the font menu name DB for name IDs. Name ID's 2 and 6 cannot be overridden. Use this with caution, and make sure you have provided feature file name table entries for all platforms. -skco/nskco do/do not suppress kern class optimization by using left side class 0 for non-zero kern values. Optimizing saves a few hundred to thousand bytes, but confuses some programs. Optimizing is the default behavior, and previously was the only option. Note that options are applied in the order in which they are specified: "-r -nS" will not subroutinize a font, but "-nS -r" will subroutinize a font. See the document 'MakeOTFUserGuide.pdf' for the format and contents of the fontinfo and project files. MakeOTF parts. MakeOTF now comes in two parts. One is the C program 'makeotfexe', which requires that all input files be specified as command-line parameters. This is the program that reads in all the data, and build the final OpenType font. You can build OpenType fonts using only this program. The other part is the 'MakeOTF.py' Python script, which is invoked indirectly by the command-shell script 'makeotf'. The script is a wrapper for the 'makeotfexe', and does several useful things for you: - Uses the 'tx' tool to convert the input font into the Unix Type 1 format that is required by 'makeotfexe'. - Saves the parameters used for makeotfexe in a project file. This can later be referenced by the single option '-fp', which saves a lot of typing. It also allows saving standard settings for release end development builds. - verifies that the input files exist. This avoids crashes in makeotfexe. Project files. Every time you run makeotf, it saves the options used to build the font in a project file named "current.fpr". You can build the font again with exactly the same options by using the option -fp, or use most of the options by following '-fp' with additional options to set different parameters. Note that if you specify a project file other than "current.fpr", the final set of parameters used will not be saved to the project file unless you also specify the "-sp" option.