Go to the previous, next chapter.

What's the difference between all these font formats?

This question is not trivial to answer. It's analogous to asking what the difference is between various graphics image file formats. The short, somewhat pragmatic answer, is simply that they are different ways of representing the same ``information'' and some of them will work with your software/printer and others won't.

At one level, there are two major sorts of fonts: bitmapped and outline (scalable). Bitmapped fonts are falling out of fashion as various outline technologies grow in popularity and support.

Bitmapped fonts represent each character as a rectangular grid of pixels. The bitmap for each character indicates precisely what pixels should be on and off. Printing a bitmapped character is simply a matter of blasting the right bits out to the printer. There are a number of disadvantages to this approach. The bitmap represents a particular instance of the character at a particular size and resolution. It is very difficult to change the size, shape, or resolution of a bitmapped character without significant loss of quality in the image. On the other hand, it's easy to do things like shading and filling with bitmapped characters.

Outline fonts represent each character mathematically as a series of lines, curves, and 'hints'. When a character from an outline font is to be printed, it must be 'rasterized' into a bitmap ``on the fly''. PostScript printers, for example, do this in the print engine. If the ``engine'' in the output device cannot do the rasterizing, some front end has to do it first. Many of the disadvantages that are inherent in the bitmapped format are not present in outline fonts at all. Because an outline font is represented mathematically, it can be drawn at any reasonable size. At small sizes, the font renderer is guided by the 'hints' in the font; at very small sizes, particularly on low-resolution output devices such as screens, automatically scaled fonts become unreadable, and hand-tuned bitmaps are a better choice (if they are available). Additionally, because it is rasterized ``on demand,'' the font can be adjusted for different resolutions and 'aspect ratios'.

Werenfried Spit adds the following remark:

Well designed fonts are not scalable. I.e. a well designed 5pt font is not simply its 10pt counterpart 50% scaled down. (One can verify this by blowing up some small print in a copier and compare it with large print; or see the example for computer modern in D.E. Knuth's TeXbook.) Although this fact has no direct implications for any of the two methods of font representation it has an indirect one: users and word processor designers tend to blow up their 10pt fonts to 20pt or scale them down to 5pt given this possibility. Subtle details, but well...

LaserJet .SFP and .SFL files, TeX PK, PXL, and GF files, Macintosh Screen Fonts, and GEM .GFX files are all examples of bitmapped font formats.

PostScript Type 1, Type 3, and Type 5 fonts, Nimbus Q fonts, TrueType fonts, Sun F3, MetaFont .mf files, and LaserJet .SFS files are all examples of outline font formats.

Neither of these lists is even close to being exhaustive.

To complicate the issue further, identical formats on different platforms are not necessarily the same. For example Type 1 fonts on the Macintosh are not directly usable under MS-DOS or Unix, and vice-versa.

It has been pointed out that the following description shows signs of its age (for example, the eexec encryption has been thoroughly hacked). I don't dispute the observation and I encourage anyone with the knowledge and time to submit a more up to date description.

It has further been suggested that this commentary is biased toward Kingsley/ATF. The omission of details about Bitstream (and possibly Bauer) may be considered serious since their software lies inside many 3rd-party PostScript interpreters.

The moderators of this FAQ would gladly accept other descriptions/ explanations/viewpoints on the issues discussed in this (and every other) section.

[Ed Note: Liam R. E. Quin supplied many changes to the following section in an attempt to bring it up to date. Hopefully it is a better reflection of the state of the world today (12/07/92) than it was in earlier FAQs]

Henry Schneiker wrote the following description of the differences between several scalable font technologies:

((( semi-quote )))

There has been a lot of confusion about font technologies in recent times, especially when it comes to Type 1 versus Type 3 fonts, ``hints,'' PostScript compatibility, encryption, character regularizing, kerning, and the like.

((( unquote )))

Excerpted from The comp.fonts FAQ, Copyright © 1992-96 by Norman Walsh