FontForge

Last updated
FontForge
Original author(s) George Williams
Developer(s) Frank Trampe, Ben Martin, Adrien Tétar, Khaled Hosny, Jeremy Tan
Initial releaseApril 1, 2004;20 years ago (2004-04-01)
Stable release
20230101 [1] / January 1, 2023;18 months ago (2023-01-01)
Repository
Written in C
Type Font editor
License Mix of GNU General Public License v3 and BSD license
Website fontforge.org

FontForge is a FOSS font editor which supports many common font formats. Developed primarily by George Williams until 2012, FontForge is free software and is distributed under a mix of the GNU General Public License Version 3 and the 3-clause BSD license. [2] It is available for operating systems including Linux, Windows, [3] and macOS, [4] and is localized into 12 languages.[ which? ][ citation needed ]

Contents

To facilitate automated format conversion and other repetitive tasks, FontForge implements two scripting languages: its own language and Python. [5] FontForge can run scripts from its GUI, from the command line, and also offers its features as a Python module, so it can be integrated into any Python program. [6]

FontForge supports Adobe's OpenType feature file specification (with its own extensions to the syntax). [7] It also supports the unofficial Microsoft mathematical typesetting extensions (MATH table) [8] introduced for Cambria Math and supported by Office 2007, XeTeX and LuaTeX. At least one free OpenType mathematical font has been developed in FontForge.

FontForge uses FreeType for rendering fonts on screen. [9] Since the November 15, 2008 release, FontForge uses libcairo and libpango software libraries for graphics and text rendering, [10] providing anti-aliased graphics and complex text layout support.

FontForge can use Potrace or AutoTrace to auto trace bitmap images and import them into a font.

Parts of FontForge's code are used by the LuaTeX typesetting engine for reading and parsing OpenType fonts. [11]

The FontForge source code includes a number of utility programs, including 'showttf', which shows the contents of binary font files, and a WOFF converter and deconverter.

Supported formats

FontForge supports a wide variety of font formats. [12] Its native Spline Font Database format (.sfd file name extension) is text-based [13] and facilitates collaboration between designers, as difference files can be easily created. FontForge also supports the interoperable UFO source format, which is based on XML.

The software supports many other font formats and converts fonts from one format to another. Supported font formats include: TrueType (TTF), TrueType Collection (TTC), OpenType (OTF), PostScript Type 1, TeX Bitmap Fonts, X11 OTB bitmap (only sfnt), Glyph Bitmap Distribution Format (BDF), FON (Windows), FNT (Windows), and Web Open Font Format (WOFF). FontForge also imports and exports fonts to and from the Scalable Vector Graphics (SVG) format and the Unified Font Object (UFO) format.

Development history

The FontForge project was founded by George Williams as a retirement project, and initially published from 2001 to March 2004 as PfaEdit. [14] [15]

Williams actively developed, maintained and supported the program and related utilities for around 12 years. In mid-2011, Dave Crossland began contributing to the project and the project moved from SourceForge to GitHub. Crossland began offering introductory type design workshops through the TeX Users Group (TUG) to raise funds to hire contract developers to maintain and develop the program. FontForge's development became more active, and Khaled Hosny and Barry Schwartz were notable contributors, but in late 2012 they and Crossland disagreed about the direction of the project so they forked FontForge as SortsMill Tools. [16]

In 2011, FontForge was packaged for easier installation on Mac OS X by Dr. Ben Martin with support from TUG. Meanwhile, Matthew Petroff published his Windows Build System and unofficial Windows builds. In 2013, the FontForgeBuilds project was started on SourceForge to extend this; it was subsequently entirely rewritten, and is today maintained by Jeremy Tan as a Windows application.

In 2012, Crossland organized a new project website to be hosted on GitHub Pages, fontforge.github.io , and used funds raised from teaching FontForge to beginners to hire a contract web designer. With his support Martin added a real time collaboration feature that was presented by them both as a keynote at the Libre Graphics Meeting 2013 in Madrid.

In 2014, with financial support from Google, Frank Trampe added full support for the UFO font source format.

Fonts developed with FontForge

Sample of the Sans Guilt font, a reinterpretation of the Gill Sans by OSP, a Belgian design collective in collaboration with students from the Royal College of Art, available under OFL. Sans Guilt LB sample.png
Sample of the Sans Guilt font, a reinterpretation of the Gill Sans by OSP, a Belgian design collective in collaboration with students from the Royal College of Art, available under OFL.

See also

Related Research Articles

<span class="mw-page-title-main">BitchX</span> Free IRC client

BitchX is a free IRC client that has been regarded as the most popular ircII-based IRC client. The initial implementation, written by "Trench" and "HappyCrappy", was a script for the IrcII chat client. It was converted to a program in its own right by panasync. BitchX 1.1 final was released in 2004. It is written in C and is a TUI application utilizing ncurses. GTK+ toolkit support has been dropped. It works on all Unix-like operating systems, and is distributed under a BSD license. It was originally based on ircII-EPIC, and eventually it was merged into the EPIC IRC client. It supports IPv6, multiple servers and SSL, and a subset of UTF-8 with an unofficial patch.

gnuplot Command-line and GUI plotting program

gnuplot is a command-line and GUI program that can generate two- and three-dimensional plots of functions, data, and data fits. The program runs on all major computers and operating systems . Originally released in 1986, its listed authors are Thomas Williams, Colin Kelley, Russell Lang, Dave Kotz, John Campbell, Gershon Elber, Alexander Woo "and many others." Despite its name, this software is not part of the GNU Project.

Metafont is a description language used to define raster fonts. It is also the name of the interpreter that executes Metafont code, generating the bitmap fonts that can be embedded into e.g. PostScript. Metafont was devised by Donald Knuth as a companion to his TeX typesetting system.

<span class="mw-page-title-main">Typesetting</span> Composition of text by means of arranging physical types or digital equivalents

Typesetting is the composition of text for publication, display, or distribution by means of arranging physical type in mechanical systems or glyphs in digital systems representing characters. Stored types are retrieved and ordered according to a language's orthography for visual display. Typesetting requires one or more fonts. One significant effect of typesetting was that authorship of works could be spotted more easily, making it difficult for copiers who have not gained permission.

OpenType is a format for scalable computer fonts. Derived from TrueType, it retains TrueType's basic structure but adds many intricate data structures for describing typographic behavior. OpenType is a registered trademark of Microsoft Corporation.

<span class="mw-page-title-main">Scribus</span> Desktop publishing application

Scribus is free and open-source desktop publishing (DTP) software available for most desktop operating systems. It is designed for layout, typesetting, and preparation of files for professional-quality image-setting equipment. Scribus can also create animated and interactive PDF presentations and forms. Example uses include writing newspapers, brochures, newsletters, posters, and books.

Irrlicht is an open-source game engine written in C++. It is cross-platform, officially running on Windows, macOS, Linux and Windows CE and due to its open nature ports to other systems are available, including FreeBSD, Xbox, PlayStation Portable, Symbian, iPhone, AmigaOS 4, Sailfish OS via a Qt/QML wrapper, and Google Native Client.

<span class="mw-page-title-main">Xfig</span> Vector graphics editor for UNIX-like systems

Xfig is a free and open-source vector graphics editor which runs under the X Window System on most UNIX-compatible platforms.

<span class="mw-page-title-main">Computer Modern</span> Family of typefaces

Computer Modern is the original family of typefaces used by the typesetting program TeX. It was created by Donald Knuth with his Metafont program, and was most recently updated in 1992. Computer Modern, or variants of it, remains very widely used in scientific publishing, especially in disciplines that make frequent use of mathematical notation.

<span class="mw-page-title-main">ConTeXt</span> General-purpose document processor, derived from TeX

ConTeXt is a general-purpose document processor. Like LaTeX, it is derived from TeX. It is especially suited for structured documents, automated document production, very fine typography, and multilingual typesetting. It is based in part on the TeX typesetting system, and uses a document markup language for manuscript preparation. The typographical and automated capabilities of ConTeXt are extensive, including interfaces for handling microtypography, multiple footnotes and footnote classes, and manipulating OpenType fonts and features. Moreover, it offers extensive support for colors, backgrounds, hyperlinks, presentations, figure-text integration, and conditional compilation. It gives the user extensive control over formatting while making it easy to create new layouts and styles without learning the low-level TeX macro language.

Cairo (graphics) Vector graphics-based software library

Cairo is an open-source graphics library that provides a vector graphics-based, device-independent API for software developers. It provides primitives for two-dimensional drawing across a number of different backends. Cairo uses hardware acceleration when available.

A computer font is implemented as a digital data file containing a set of graphically related glyphs. A computer font is designed and created using a font editor. A computer font specifically designed for the computer screen, and not for printing, is a screen font.

IronPython is an implementation of the Python programming language targeting the .NET and Mono frameworks. The project is currently maintained by a group of volunteers at GitHub. It is free and open-source software, and can be implemented with Python Tools for Visual Studio, which is a free and open-source extension for Microsoft's Visual Studio IDE.

<span class="mw-page-title-main">Notepad++</span> Text editor and source code editor for Windows

Notepad++ is a free and open-source text and source code editor for use with Microsoft Windows. It supports tabbed editing, which allows working with multiple open files in a single window. The product's name comes from the C postfix increment operator; it is sometimes referred to as npp or NPP.

<span class="mw-page-title-main">Open-source Unicode typefaces</span>

There are Unicode typefaces which are open-source and designed to contain glyphs of all Unicode characters, or at least a broad selection of Unicode scripts. There are also numerous projects aimed at providing only a certain script, such as the Arabeyes Arabic font. The advantage of targeting only some scripts with a font was that certain Unicode characters should be rendered differently depending on which language they are used in, and that a font that only includes the characters a certain user needs will be much smaller in file size compared to one with many glyphs. Unicode fonts in modern formats such as OpenType can in theory cover multiple languages by including multiple glyphs per character, though very few actually cover more than one language's forms of the unified Han characters.

This article provides basic comparisons for notable text editors. More feature details for text editors are available from the Category of text editor features and from the individual products' articles. This article may not be up-to-date or necessarily all-inclusive.

LuaTeX is a TeX-based computer typesetting system which started as a version of pdfTeX with a Lua scripting engine embedded. After some experiments it was adopted by the TeX Live distribution as a successor to pdfTeX. Later in the project some functionality of Aleph was included. The project was originally sponsored by the Oriental TeX project, founded by Idris Samawi Hamid, Hans Hagen, and Taco Hoekwater.

<span class="mw-page-title-main">MathJax</span> Cross-browser JavaScript library that displays mathematical equations in web browsers

MathJax is a cross-browser JavaScript library that displays mathematical notation in web browsers, using MathML, LaTeX and ASCIIMathML markup. MathJax is released as open-source software under the Apache License.

The Unified Font Object (UFO) is an XML-based source file format for digital fonts. It was created by Tal Leming, Just van Rossum and Erik van Blokland. Contributors to the format also include Ben Kiel and Frederik Berlaen. According to its creators, the UFO is a "future proof" open format that is designed to be "application independent", "human readable and human editable".

References

  1. "Releases · fontforge/fontforge · GitHub". GitHub . frank-trampe. Archived from the original on 2023-06-30. Retrieved 2023-08-06.
  2. fontforge (8 October 2021). "fontforge/LICENSE at master · fontforge/fontforge · GitHub". GitHub. Archived from the original on 16 February 2019. Retrieved 27 February 2015.
  3. Gurdy Leete; Mary Leete (12 June 2007). Microsoft Expression Blend Bible. John Wiley & Sons. p. 295. ISBN   978-0-470-05503-8. Archived from the original on 28 February 2023. Retrieved 6 August 2012.
  4. James, Daniel (2009-12-04). Crafting Digital Media: Audacity, Blender, Drupal, GIMP, Scribus, and other Open Source Tools (1 ed.). Berkeley, CA: Apress. p.  114. ISBN   978-1430218876.
  5. "Writing scripts to change fonts in FontForge". Fontforge.sourceforge.net. Archived from the original on 2004-07-21. Retrieved 2009-11-09.
  6. "Writing python scripts to change fonts in FontForge". Fontforge.sourceforge.net. Archived from the original on 2009-12-02. Retrieved 2009-11-09.
  7. "FontForge's implementation of Adobe's Feature File syntax". Fontforge.sourceforge.net. Archived from the original on 2009-04-16. Retrieved 2009-11-09.
  8. "MATH typesetting information". Fontforge.sourceforge.net. 2007-08-04. Archived from the original on 2007-08-28. Retrieved 2009-11-09.
  9. "Building FontForge from source". Fontforge.sourceforge.net. Archived from the original on 2009-12-07. Retrieved 2009-11-09.
  10. "Change log for FontForge". Fontforge.sourceforge.net. Archived from the original on 2009-07-23. Retrieved 2009-11-09.
  11. "LuaTeX — Taco Hoekwater, July 24, TUG 2008" (PDF). Archived (PDF) from the original on 2010-07-17. Retrieved 2009-11-09.
  12. Lunde, Ken (2009-01-13). CJKV Information Processing. Sebastopol, CA: O'Reilly. p. 447. ISBN   9780596514471.
  13. "Spline Font Database File Format". Fontforge.sourceforge.net. Archived from the original on 2010-01-24. Retrieved 2009-11-09.
  14. Yannis Haralambous (3 October 2007). Fonts & Encodings (1 ed.). O'Reilly Media, Inc. pp. 444, 988. ISBN   978-0-596-10242-5. Archived from the original on 27 February 2023. Retrieved 6 August 2012.
  15. "The history of the development of FontForge". Fontforge.sourceforge.net. Archived from the original on 2009-04-23. Retrieved 2009-11-09.
  16. "SortMill Tools". Barry Schwartz. Archived from the original on 2015-02-27. Retrieved 2015-02-27.
  17. "OSP-foundry» Blog Archive » Sans Guilt". Archived from the original on 2016-02-22. Retrieved 2016-02-15.
  18. "OSP (Open Source Publishing) →". osp.kitchen. Archived from the original on 2019-08-06. Retrieved 2019-08-10.
  19. "Project page on SourceForge.net". Archived from the original on 2022-11-28. Retrieved 2023-01-28.

Commons-logo.svg Media related to Fontforge at Wikimedia Commons