
 FontForge
  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 the tutorial into traditional Chinese
   and German
 and German
   . Translations are often out of date, I fear.
. 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
  
  
  FontForge is free software, distributed under the
  GNU General Public License version 3,
  or, at your option, any later version.
  
  
  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 --
          gbdfed Bitmap Font 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
  
  