
FontLab 2.5 for Windows is one of the most impressive and fun programs
I've worked with in quite some time. It is a scalable font editor which
lets you create, modify, and translate fonts between TrueType and Type
1 fonts.
Scalable fonts are very flexible; they can be displayed at any size and on just about any output device (screen or printer) while keeping character shapes consistent. This is achieved through two steps. First, the font must be created by its designer, who describes each character as a series of straight lines or curves to form closed shapes. For example, a period consists of one small circle in most fonts, while a colon consists of two small circles, one above the other.
In the second step, the font is readied for use at a certain size. This step is performed "behind the scenes" when you display some text using the font. It consists of looking at the character shapes and deciding which pixels to turn on and off to best approximate the shape at the given size. This step is hard to do well for small sizes or low-resolution devices (like screens or dot-matrix printers). To improve the results in these situations, the font designer can include "hints" in the font. For example, typical hints for the letter "m" might state that each of the three vertical strokes should be of equal width, that they should be equally spaced from one another, and that the two crests should be of equal height.
There are many competing scalable font technologies, but the two
most common ones are PostScript Type 1 (invented by Adobe) and TrueType
(invented by Apple). TrueType fonts are supported on the Macintosh and
on Windows. Type 1 fonts are supported on these platforms as well as on
OS/2 and Unix.
As a font translator, FontLab is adequate. There are two other
tools you might prefer for this job, however, both of which are much cheaper
than FontLab. FontMonger, from Ares Corp, costs about $90 and can handle
a much wider variety of scalable font formats than FontLab. Type Designer,
from ds design, costs about $75 and has a reputation for being able to
convert Type 1 fonts to TrueType without making any changes to the character
shapes (FontLab makes minor, but noticeable changes).
One common need is to move characters around in a font. For example, there are about a dozen Cyrillic character sets in common use (Cyrillic is used to write Russian and other Slavic languages). Suppose you have a Cyrillic font that is set up for the standard Windows Cyrillic character set, but you need to read a document written with the Cyrillic character set used on the Internet? With FontLab, you can easily import your Cyrillic font, then create a new version of it with certain characters moved to new locations. There are actually 3 ways to do this in FontLab, the easiest of which simply uses drag and drop.
Another common modification uses what FontLab calls stylizers. These let
you create different "styles" from a given font, and they are a lot of
fun to use. Suppose you have a nice font, but it didn't come with a bold
or outline version? No problem, just read it into FontLab, stylize it,
and save it. Figure 1 shows the results of some of FontLab's 24 stylizers.
FontLab has a rich set of facilities for automating the drawing process. For example, there is a shape palette that lets you quickly add an ellipse, polygon, rectangle, etc. to your character, and then size and position it as needed. You can also scale and rotate characters or portions of characters as needed.
One very impressive feature converts a bitmap to a character outline. This can be a real time saver when creating a scalable font that is based on a bitmap font, though the bitmaps need to be rather large for this feature to work well. Even then, the character outlines still need a bit of touching up.
Once you've created a character, a feature called FontAudit can check the character and give you tips on improving or optimizing it. Another feature called Autohint will add hints to your character for you; you can modify these hints or add others manually as needed.
Two of the more advanced features are subroutines and macros. With subroutines, you can define parts of a character once and then reuse them in many characters. For example, you might do this with the circle used in the period. It could then be reused in the colon, semi-colon, exclamation point, etc. This helps you ensure that such pieces are identical in all characters where they are used. It also helps reduce the size of the font file on disk.
Macros are small programs that can do almost anything to a character,
a range of characters, or a whole font. By writing a macro, you can automate
processes that would be very tedious to do by hand. The macro language
is a full-featured programming language. Although quite powerful, it is
stack-based and will remind you of working with a reverse polish notation
calculator. Experienced programmers shouldn't find it too difficult to
learn, but others will probably find it baffling, and the documentation
isn't geared toward non-programmers.
There is, however, quite a bit of room for improvement in the
documentation. It reads like a translation and was apparently written in
Russian at first. This didn't really impede my understanding, but it was
a bit distracting. Another problem is that the more advanced features of
the program, where I needed the most help, tended to be less completely
explained. Finally, I feel a program this large and complex could use both
a tutorial and reference guide. The manual tries to be both, but excels
at neither.
Desired Enhancements Apart from my comments on the documentation, there are a couple of features I'd like to see in a future version of FontLab.
I'd like to see FontLab create identical versions of a font when exported in TrueType and Type 1 formats. This is very important for people who create fonts that are distributed in both formats. While character spacing tends to be identical, line spacing is not, and neither are the character shapes.
I'd also like to have a shot at manually hinting TrueType fonts.
Manual hints are ignored when you export a font in TrueType format, and
automatic hints are generated instead (manual hints are only kept when
exporting as Type 1). To be fair, no other program in FontLab's price range
lets you manually hint TrueType fonts either.
Conclusions FontLab is a very impressive and feature-rich tool
for working with scalable fonts. It is powerful enough for professional
use, but its user interface makes this power easily accessible to the occasional
user. It also requires surprisingly little disk space (about 4 MB) and
is quite responsive, even on a 25 MHz 386. If you need to create or modify
TrueType or Type 1 fonts, FontLab is a great choice. If you have any questions
about FontLab or this review, please feel free to contact me at 210-659-2532
or ftsoft@connecti.com.