FONTFORGE(1)

๐Ÿ’… FONTFORGE โ€” like, the whole manual, bestie

okay so real talk: this is fontforge, from the General Commands Manual section (iykyk), and it literally creates, modifies, and views font files. that's the whole vibe. let's get into it โœจ


๐ŸŒธ NAME ๐ŸŒธ

fontforge โ€” create, modify, and view font files ๐ŸŽ€


โœจ SYNOPSIS โœจ

fontforge [-allglyphs] [-c string] [-cmap maptype] [-depth pixeld]
[-display str] [-lang=ff] [-lang=py] [-help] [-keyboard ktype] [-last]
[-new] [-nosplash] [-quiet] [-recover mode] [-script file] [-skippyfile]
[-skippyplug] [-sync] [-unique] [-usage] [-vc class] [-version]
[fontfile ...]

๐Ÿ’– DESCRIPTION ๐Ÿ’–

so FontForge will read all of these, no cap:

  • PostScript (pfa, pfb, ps, cid)
  • OpenType (otf)
  • TrueType (ttf, ttc)
  • Macintosh resource fonts (dfont, bin, hqx)
  • Scaled Vector Graphics (svg)
  • TeX bitmap (pk)
  • Glyph Bitmap Distribution Format (bdf)
  • X11 bitmap (pcf)

and bestie, font files can be compressed with gzip โ€” like, for example myfont.pcf.gz is totally valid. ๐Ÿ‘‘

FontForge also reads its own format: Spline Font Database (sfd) files. home turf fr fr.

If the argument list contains a font file name (or several of them, the more the merrier), fontforge opens a fontview window for each font, displaying the characters of that font. and if there are, like, no options or arguments at all? the program opens a file-picker window so you can browse your disk to find a font file, or create a new one. very main character energy tbh. ๐Ÿฆ‹

ngl this manual page is intended only as a rudimentary overview โ€” see the HTML Users Manual for the complete tea. โ˜•

If no fontfiles are specified, and neither is -new, and there is nothing to recover, then FontForge will produce an open font dialogue box. simple as.

If a scriptfile is specified, then FontForge will not open the X display, nor will it process any additional arguments. It will execute the scriptfile and give it any remaining arguments. ๐Ÿ’€ (yes, really โ€” it just hands them off.)

And if the first argument is an executable filename, and that file's first line contains fontforge, then it will be treated as a scriptfile. sneaky but iconic.


๐ŸŽ€ OPTIONS ๐ŸŽ€

  • -new โ€” Creates a new font. blank canvas era.
  • -last โ€” Loads the last sfd file closed. the "u up?" of file loading. ๐Ÿ™ˆ
  • -recover none|auto|inquire|clean โ€” Control error recovery. none suppresses crash revcovery. auto performs automatic recover if the program crashed before saving changes โ€” and this is the default. inquire asks what to do with auto-saved crash recovery files. clean deletes recovery information. choose ur fighter. ๐Ÿซถ
  • -allglyphs โ€” Load all glyphs in the glyf table. of a TrueType collection. all of them. every last one.
  • -nosplash โ€” Suppress display of the splash screen. no logo, straight to business.
  • -quiet โ€” Don't print non-essential information to stderr. shhh ๐Ÿคซ
  • -unique โ€” If a copy of fontforge is already running, open all arguments in it and have this process exit. sharing is caring.
  • -display display-name โ€” Employ the X display specified by the string display-name (for example: localhost:0).
  • -depth pixeld โ€” Attempt to employ a visual that matches the specified pixel depth, pixeld.
  • -vc val โ€” Sets the visual class if possible. "if possible" doing a lot of work there ๐Ÿ’…
  • -cmap current|copy|private โ€” Sets the type of color map. current attempts to allocate colors int he current (shared) color map โ€” and ngl, the program will likely not find everything it requires. copy allocates what can be allocated, then copies the current color map; it can thus make use of cells other programs are using. private creates a new color map and fills it with the required colors. โœจ
  • -dontopenxdevices โ€” In case that fails. (that's it. that's the whole description. love that for us.)
  • -sync โ€” Syncs the display, debugging. tech girlies know.
  • -keyboard ibm|mac|sun|ppc โ€” Generates appropriate hotkeys in menus. Use ibm on an IBM-compatible PC. Use mac on a Mac computer running Mac OS. Use sun on a Sun workstation. Use ppc on Power PC Mac running SUSE GNU/Linux. pick ur era.
  • -help โ€” Displays a help message and exits.
  • -docs โ€” Displays help file output and then invokes a browser using the BROWSER environment variable. ๐Ÿ–ฅ๏ธ
  • -version โ€” Prints the version of fontforge and exits.
  • -lang=py โ€” Use Python for scripts (may precede -script). python girlies rise ๐Ÿ
  • -lang=ff โ€” Use fontforge's legacy scripting language.
  • -script scriptfile โ€” Executes scriptfile. Must be the first option (or follow -lang). All other arguments are passed to scriptfile. Execute the script named file. Does not open the X display. This must be the first argument passed to FontForge. Any other arguments are handled by the script file itself. Any other command line arguments will be passed to the script. The program contains a command interpreter, which allows access to most but not all of its interactive features. If a script file is executable, and if its first line contains the string fontforge, then the argument -script may be omitted. This means that FontForge can be used as an interpreter. ๐Ÿคฏ
  • -dry scriptfile โ€” Syntax checks scriptfile (dry run). Must be the first option. All other arguments are passed to scriptfile. โš ๏ธ This option can only be used with fontforge's own scripting language, not with Python.
  • -c script-string โ€” Executes argument as scripting commands. Must be the first option. All other arguments are passed to the script.
  • -skippyfile โ€” Do not execute Python init scripts when initializing. skipping, not skimping.
  • -skippyplug โ€” Do not load (enabled) Python plugins when initializing. same energy, different plugins.

๐ŸŒˆ EXAMPLE ๐ŸŒˆ

Sample usage:

fontforge myfont.ttf &

(the & at the end is giving "I'll be here in the background, living my life" ๐Ÿซถ)


๐Ÿฆ‹ ENVIRONMENT ๐Ÿฆ‹

  • BROWSER โ€” Specifies the name of a browser program for examining online documentation.
  • AUTOTRACE โ€” Specifies the location of the autotrace program. Usually FontForge can figure this out without help, but not always. (relatable.)
  • MF โ€” Specifies the location of the metafont program.
  • FONTFORGE_VERBOSE โ€” Turns on verbose mode in scripting. Each statement is printed as it is executed. loud and proud ๐Ÿ“ข

๐Ÿ’œ FILES ๐Ÿ’œ

  • ~/.FontForge/autosave โ€” Crash recovery directory.
  • /usr/share/fontforge/*.ui โ€” Translations for user interfaces.
  • /usr/share/fontforge/doc/*.html โ€” Optional location for online documentation.
  • /usr/share/fontforge/*.cidmap โ€” "Encoding" files for Adobe's cid formats, from http://fontforge.sourceforge.net/cidmaps.tgz.

โญ SEE ALSO โญ

sfddiff(1)

The HTML version of the FontForge manual, available online at: http://fontforge.sourceforge.net/.


๐Ÿ‘‘ NOTE ๐Ÿ‘‘

FontForge used to be called PfaEdit. glow-up of the century, honestly. โœจ


๐Ÿ’– AUTHORS ๐Ÿ’–

FontForge is Copyright ยฉ 2000โ€“2014 by George Williams, and is currently maintained by the FontForge development team. See /usr/share/doc/fontforge/AUTHORS for a comprehensive list of contributors. absolute legends, all of them ๐Ÿซถ


๐ŸŒธ LICENSE ๐ŸŒธ

FontForge is licensed under GPLv3+: GNU GPL version 3 or later (http://gnu.org/licenses/gpl.html) with many parts covered by a BSD license (http://fontforge.org/license.html). Please read the LICENSE file included in the FontForge distribution for details, or see https://github.com/fontforge/fontforge/blob/master/LICENSE.

FontForge is available as a whole under the terms of the GNU GPL (http://www.gnu.org/copyleft/gpl.html), version 3 or any later version. However, almost all of its parts are available under the "revised BSD license" (http://www.law.yi.org/~sfllaw/talks/bsd.pdf) because FontForge was mostly written by George Williams, using that license.

The Revised BSD License is very permissive, and allows for code to be combined with other code under other licenses. ๐Ÿ’…

There are many useful libraries available under copyleft libre licenses, such as the LGPL and GPL, which FontForge started to use in 2012.

For example, Pango and Cairo are available under the LGPL.

Some features added since 2012 are licensed by their individual developers under the GPLv3.


๐Ÿ’€ BUGS ๐Ÿ’€

See the FontForge Github Issue Tracker, at https://github.com/fontforge/fontforge/issues/. (not me filing a bug at 2amโ€ฆ ๐Ÿ™ˆ)


aww okay that's the whole page bestie, you ate that fr fr. this was the General Commands Manual entry for fontforge, dated 2017 Jun 18 โ€” mwah, go make something iconic ๐Ÿ’…โœจ๐ŸŽ€