
FontForge
FontForge -- An
outline font editor that lets you create your own postscript,
truetype, opentype, cid-keyed, multi-master, cff, svg and
bitmap (bdf, FON, NFNT) fonts, or edit existing ones. Also lets
you convert one format to another. FontForge has support for
many macintosh font formats.
FontForge's user interface has been localized for:
(English), Russian, Japanese, French, Italian, Spanish,
Vietnamese, Greek, Simplified & Traditional Chinese,
German, Polish, Ukrainian and Catalan.
This website itself has been translated into Japanese
and the tutorial into traditional Chinese
and German
. Translations are often
out of date, I fear.
I have no one to do QA for me except users on the net, so
this is essentially (and eternally) beta software. Expect to
find bugs. Please let me know when you do
(this is a public mailing list).
License
Copyright ©
2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011
by George Williams
Redistribution and use in source and binary forms, with
or without modification, are permitted provided that the
following conditions are met:
Redistributions of source code must retain the above
copyright notice, this list of conditions and the following
disclaimer.
Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials
provided with the distribution.
The name of the author may not be used to endorse or
promote products derived from this software without
specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
This is essentially the "revised BSD
license".
There are currently three mailing lists established for
FontForge. You may subscribe to any of them on sourceforge:
http://sourceforge.net/mail/?group_id=103338.
You may not post to a list until you have subscribed (sorry
about that, but we were getting too much spam).
Caveat: Posting to these mailing
lists exposes your email address.
FontForge is by no means perfect. And probably has some
bugs. Be prepared to save frequently and consider working on a
copy of the original.
- No attempt has been made to be efficient.
- Many type 3 fonts will not be read in correctly
- Importing a type0 font loses the encoding. FontForge only
imports simple type0 fonts (such as those made by itself),
will get confused if there's more than one font with a chars
dictionary.
- FontForge's does not support contextual ligatures for
Apple Advanced Typography (AAT) fonts
- There are a number of opentype/AAT tables which FontForge
does NOT support.
O, don't the days seem lank and long
When all goes right and nothing goes wrong,
And isn't your life extremely flat
With nothing whatever to grumble at!
Princess Ida, Act III, W.S.
Gilbert (& Sullivan)
|
This list includes the gross bugs that I'm aware of but
don't know how to fix. Minor bugs get reported to me and are
generally fixed within a week and rarely appear on this
list.
- Some truetype fonts (kaiu and mingliu) do not store the
correct outline. Instead they rely on using the instructions
to move points around to generate the outline. The outline
does not appear to be grid-fit at all, just positioned.
FontForge does not apply the instructions when loading. In
most fonts this would be the wrong thing to do, and I don't
know how I could tell when it needs to be done...
- After adding the Johab encoding 23/Nov/01, any old fonts
(in sfd files) which had a unicode encoding will suddenly
claim to have a Johab encoding. I don't see a way around this
at the moment. Just reencode them as unicode and all should
be well.
- I'm told AutoKern doesn't work too well. (I may
have fixed this, but I'm not sure)
- FontForge is confused by small splines, on the order of
one em unit. If you need something that small, scale the font
up by a factor of 2 or more (including the ascent and
descent).
- There is a fundamental problem when importing a type3
font (or an eps file). In an most postscript programs each
contour is stroked or filled individually, but in a type1
character, all contours are filled together. This can lead to
unexpected side-effects if contours overlap. (configuring
fontforge for mutlilayered
editing can help with this)
- On linux boxes the dashed lines representing hints or the
outlines of references get screwed up. I think this is a bug
in the XServer on linux (it doesn't happen on other systems)
but I have not examined it closely.
- FontForge will not copy and paste large (>XServer
transfer (4Meg on my machine)) clipboards of text.
- Under gnome mnemonics in menus don't work. Personally I
consider this a bug in gnome.
- Under gnome, docked palettes don't work the first time.
Personally I consider this a bug in gnome.
- FontForge only produces an approximation to the OS/2
Codepages fields.
- Some commands don't
work well in extreme conditions.
- ???
Reporting bugs...
I'm sure you'll find some. If you can isolate it and come up
with a reproducible minimal case, that would be great. If your
executable has symbols in it, you could run it in gdb and get a
stack trace... Give me a test case if possible. Do what you
can.
- My writing leaves much to be desired. Anyone who
can make my documentation more readable is encouraged to do
so. (or who wishes to translate it into other languages, or
who wishes to put it into a more flexable format, KANOU has a
Japanese version)
- I also have a brief tutorial in pdf format and in html. This could also be
translated into other languages (and would be a simpler job
than trying to translate the entire website). The html has
been translated into German
and Chinese.
-
The UI can be translated into different languages.
FontForge now uses gnu gettext. See the section on translation notes for more
info.
- English I take care of
- (I've even got an en_GB file for those
differences I've noticed between British & US
spellings, but if anyone with a sharper eye finds
other differences, please let me know)
- Russian is provided by Alexandre Prokoudine,
originally by Valek Filippov.
Last Update Aug 2012
- Japanese is provided by KANOU Hiroki. (and has
translated the entire website) This
needs to be updated!
Last Update Jul 2006
- French is provided by Pierre Hanser and Yannis
Haralambous.
Last update Nov 2007
- Italian was provided by Claudio Beccari, but I can no
longer contact him. This needs to be
updated!
Last update Feb 2003
- Spanish is provided by Walter Echarri
This needs to be updated!
Last update Oct 2004
- Vietnamese is provided by Clytie
Siddall.
Last update Apr 2010
- Simplified Chinese is provided by Lee Chenhwa
Last update Jun 2012
- Traditional Chinese is provided by Wei-Lun Chao at
OSSII
Last update May 2012
- Wei-ju Wu has translated the tutorial into
German
- Philipp Poll is providing a German UI.
Last update Apr 2007
- Michal Nowakowski is constantly updating the Polish
translation.
Last update Jul 2012
- Apostolos
Syropoulos is working on a Greek translation
Last update Oct 2008
- Serhij Dubyk has provided a Ukrainian translation,
his last update was May-2009.
Then Yuri Chornoivan took it further.
Last update Jul 2012
- Rafael Ferran i Peralta provided a Catalan
translation.
Last update Jun 2011
- Any other language additions would be great (the
entire UI does not need to be translated, any subset is a
help), if you are interested see the translation notes
here.
- You can take over a chunk of the code:
- Michal Nowakowski and Alexej Kyukov have taken over
the auto instructor and auto hinter.
-
Different font formats
FontForge supports Type1, truetype, opentype, cff, type42,
cid-keyed and svg fonts, also bdf and NFNT for
bitmaps
FontForge will sort-of accept metafont files (essentially
it runs metafont and autotraces the result). It won't
produce .mf files
FontForge will read (but not produce) Ikarus files
FontForge will read acorn font files with a helper
app.
But there are other formats out there that I can't find
descriptions of or don't think are worth supporting
- Can you point me at documentation for other
standards
- Can you explain why that format is useful?
- There are certain
commands which don't work very well
and if someone else wanted to they might code them better
than I...
- Remove overlap (has problems with coincident
splines)
- Expand Stroke (has problems when there are sharp
bends near the end of a contour (or near a joint where
the slope is discontinuous) -- a sharp bend is one where
the radius of curvature is smaller than half the
stroke-width)
- Autokern (might be fixed now)
- Change Weight & Condense/Extend make assumptions
about glyphs that aren't always true.
-
References
- I'd like to provide a reasonable bibliography, please
suggest some good relevant books.
- Are there any other programs or websites that I
should be mentioning?
-
Tests
-
QA
- I don't.
I find QA boring, and since no one is paying me for this
I don't do very much (I generally run it past my
testsuite from time to time). This is obviously a
problem. If anyone (or several anyones) wants to
undertake to do QA for me
I'd be delighted (this is a public mailing list).
-
Printing tests
- I'm always on the look out for short copyright free
texts for printing. I'm looking for samples from
languages I don't have anything on, or in styles that I
don't have.
I'm also interested in phrases equivalent to "The quick
brown fox jumps over the lazy dog." (pangrams). These are
short sentences which use every letter in the
script.
-
Indic information
- Indic languages have a series of special ligature
features in opentype. I believe that FontForge could
probably generate some of these by default but I don't
know enough to say which. If you are familiar with Indic
scripts could you give me a list of conversions in a
format like
U+0066 + U+0069 => U+FB01 'liga'
-
Donate to FontForge
The sample text in File->Print comes from many sources.
The following people have helped debug fontforge. Many
thanks! (actually the list should be far longer than this, but
as time goes on there are just too many people to thank)
- Tom Harvey
- Ken Chilton
- Gerhard Killesreiter
- Alexander Kotelnikov
- University of California,
Santa Barbara
(which has several times let me use some of their machines to
do builds and find bugs if I didn't have the requisite system
at home).
- Uwe
Koloska
- Max Neunhoeffer
- Martin Giese
- E.J. Neafsey
- Norvell Spearman
- Stefan Fendt
- Harald
?Gleis?
- Valek Filippov
- Pasi Eronen
- Luc
Devroye
- Scott Pakin
- Robert Brady
- Dung Ta Quang
- Sivan Toledo
- Gerhard Schellhorn
- MinGyoon
- Olaf Rogalsky
- Baruch Even
- Volker Gering
- Torsten Bronger
- Jacob Jansen
- Ulrich Klauer
- Andrey V.
Panov
- Edward G.J. Lee
- Werner LEMBERG
- KANOU Hiroki
- Pierre Hanser
- Claudio Beccari
- Yannis Haralambous
- Walter Echarri
- Wei-ju Wu
- Huw Davies of CodeWarriors who showed me how to generate
a windows fon format.
- Wei-Lun Chao
- Sergey Malkin
- And many others!
Michal Nowakowski in Poland and Alexej Kryukov of Moscow
State University have taken over TrueType and PostScript
autohinting and are doing a far better job than I could
have.
Ben Weiner from
Reading provided the banner image of blocks of real type. The
type face is Imprint, created by Monotype (UK).

I owe David Turner (and everyone else) of FreeType a debt for providing an
API which allows me to debug truetype instructions. Also he
came up with the name "FontForge".
FontForge was inspired by AltSys's Fontographer
now rescued from MacroMedia by FontLab. Godfrey DiGiorgi
encouraged me to buy my first copy of Fontographer in the
mid-80s.
My father inspired a general interest in typography (though
he is interested in renaissance printing techniques rather than
computers).
And finally I owe thanks to Linda Dozier, David Cole and
everyone at NaviSoft which company has given me the free time
to write this program.
- BDF editors
- gbdfed --
bdf editor
Formerly called xmbdfed
- gfe -- GNU
font editor. Eventually supposed to support other
formats
- fstobdf -- Part of the X distribution, reads a font
from the server and generates a bdf file from it.
- PostScript/ttf font editors
- MetaFont -- Knuth's font generation which produces
bitmaps from a program based on splines (& other TeX
utilities)
- (available with the TeX
package)
- MetaPost,
Uses the metafont language to produce PostScript
pictures.
-
MetaType1, Which attempts to generate a type1 font
directly from the metafont splines (I think)
- MetaFog -- Part of TrueTeX (proprietary) another
mf->outline converter.
- TeXTrace,
generates pfb fonts from TeX fonts by rasterizing at high
res and then autotracing them
-
mftops, similar
- mftrace,
traces pk fonts (bitmap images) and creates pfb/pfa
files. (formerly called pktrace)
- PostScript utilities
- gfontview --
displays a postscript/ttf font
-
gglyph -- another font displayer
- t1utils --
Type 1 utility programs & multiple master
utilities
-
Type1inst -- helps to install type 1 fonts under X
and ghostscript
- ttf2pt1
-- Converts truetype to type1 postscript fonts and
generates hints
- ttftot42 --
Converts truetype to type42 postscript fonts.
- type1fix --
(part of the TeXtrace package). Used to make some Type1
fonts work with ATM.
-
my stuff -- Type 1 decoders and converters. True Type
& open type decoder.
- TrueType utilities
- Rogier C van Dalen has written a set of
utilities for viewing and hinting truetype fonts
- Peter Baker has a programming language called
xgridfit for
hinting truetype fonts. It is also available bundled
with his junicode
font.
Xgridfit aims to relieve some of the tedium of
instructing fonts by providing such amenities as
named points, control values, variables and
functions, high-level programming structure, and
automatic management of stack and reference points.
- TTX
provides a way of editing all the strange tables in an
opentype font (by converting them from/to XML)
- Microsoft provides a bunch of stuff (for Windows only
of course)
- And Adobe provides a Font
Developer Kit (mostly for setting opentype tables I
think)
-
And Apple does too (mac only)
- And some
OS/X tools (mac only)
- Other font creation tools
- Font manipulation libraries
- Rasterizers
- Other font tools of mine
- fondu -- Unwraps
fonts from mac resource files (this includes dfonts).
Produces ttf, pfb and bdf files for 'sfnt', 'POST' and
'NFNT' resources
- mensis -- Allows
the user much finer control over some truetype tables
than is provided by FontForge.
-
fonttools/showttf -- Dumps the contents of a
truetype/opentype font. Does some error checking
too.
-
fonttools/pcl2ttf -- Reads a pcl file (to go to an HP
printer) and extracts any truetype or bitmap fonts in it.
(the bitmap fonts become bdf files, the truetype fonts
become ttf files).
- font organizers
- Unicode Font
Guide for Free/Libre Open Source Operating Systems
- Other related links...
If you know of a tool you think should be on this list,
please let me know
(this is a public mailing list). I did my research a couple of
years ago and expect it is out of date.
- DejaVu -- extension
of bitstream Vera to cyrillic & greek and other
alphabets.
- Free UCS
Outline Fonts -- A set of free OpenType fonts covering
ISO 10646/Unicode character set..
- Computer
Modern Unicode -- Outline based version of Knuth's TeX
fonts, extended to unicode.
- JUnicode
-- A free (GPL) font especially for scholars working with
European medieval texts
- TypeForge -- a
site for collaborative font development.
- Linux
Libertine -- A replacement for the Times font family
- Open Font
Library -- Collecting libre/open fonts in one place for
easy use
