X-Based TrueType Font Installation

If you have a collection of TrueType fonts you'd like to install in Applix, you have basically three options for how to proceed:

  1. Install them using Applix's FontTastic server. This is the easiest way to do it, but it produces only 300 dpi output even on printers capable of much higher resolutions. This method is detailed in the section on FontTastic installs.
  2. Convert the fonts to Type 1 format using a commercial font editor or a freeware TrueType to Type 1 conversion utility. This freeware utility requires that you run the ttf2pfa program, then the ttf2pt1 program, then use t1asm from the t1utils package with the "-b" option to create a .pfb file. I wrote a simple shell script that automates this process; simply launch it with the name of the original TrueType font and it will create the .pfb and .afm files, assuming that ttf2pfa, ttf2pt1, and t1asm are available. The resulting font will probably not look as good on screen as the original TrueType font, but it will probably print acceptably. You could then install the fonts using the PostScript install method.
  3. Use a TrueType font server, such as xfsft or xfstt, to serve TrueType fonts to the application, and set up the fonts using the PostScript install method.

This section is mostly about the last option.

X TrueType Font Installation

As of version 3.3.2, there is no support for TrueType fonts built into XFree86. I've successfully used xfsft, a TrueType font server that uses the FreeType library. I actually used the glibc binary with FreeType statically linked from Jörg Pomnitz' xfsft page. According to the documentation, there are plans/hopes to integrate xfsft's TrueType capabilities into XFree86, so with any luck the need for a separate server will eventually evaporate.

The xfstt server also handles TrueType fonts, and in principle should work as well as xfsft to serve TrueType fonts to Applix. I've not tested it, however, and some of the details of font server configuration will differ from what I describe below.

Installing xfsft needn't be difficult, but the instructions on testing it produce nothing but crashes with some (now older) versions of the binary. Even these older binaries work fine in operation, however. Here's how I did it:

  1. Compile (if necessary) and install xfsft. With a pre-compiled binary, this could be just copying it to an appropriate place on your path.
  2. Create a configuration file for xfsft. Mine is available as a sample. Put it someplace convenient (I used /usr/local/etc).
  3. Add the path "tcp/localhost:7100" to the FontPath statement list in your /etc/X11/XF86Config file (or do the equivalent if you're using Metro-X or Accelerated-X, but I've not tested with these). You can use a different port number if you like; 7100 is simply conventional.
  4. Set up a fonts.dir file for the TrueType fonts specified in the xfsft config file. This file has the same format as a fonts.dir file for Type 1 fonts, described in the PostScript install section, but of course TrueType fonts are listed rather than Type 1 fonts. (See the section on "redundant fonts," below, for a tip if you must create a fonts.dir file for a large number of TrueType fonts.)
  5. Start xfsft, pointing it to the config file, as in "xfsft -port 7100 -config /usr/local/etc/tt.conf"
  6. If you're in X, quit from it.
  7. Start X. You should now have access to the TrueType fonts you specified. Use xfontsel or tkfont to look for them.

I recommend doing the testing from a text mode startup of X, not an XDM login. The reason is that if there's a problem, XDM won't be able to start up, and you'll be locked out of your computer unless you have network login capabilities. If you start X manually from text mode, it'll just crash back to text mode if there's a problem, and you can work to correct the problem from there.

Once the TrueType server is up and running, you can modify the Applix fontmap.dir file, as in the PostScript install section, to tell Applix to use the TrueType fonts for display purposes. Note that you'll still need a Type 1-format .afm file to give Applix the font metrics. This can be generated using the ttf2pfa utility from the freeware TrueType to Type 1 conversion utility. If your font is from a collection with both TrueType and Type 1 fonts, it may have an appropriate .afm file. There may be some other way to generate this file, too.

To make the TrueType fonts automatically available whenever you start X, you'll need to auto-start xfsft. This can be done by adding it to your /etc/rc.d/rc.local file, as in the following entry:

/usr/local/bin/xfsft -port 7100 -config /usr/local/etc/tt.conf &

Note that if you've added the server to your X FontPath, as described above (and as is necessary for this to do any good for Applix), it is important that xfsft be started before you start X, or X will crash. This is of particular importance if you use XDM to start X. If you log on in text mode and use startx to start X, you could create a modified script that launches xfsft prior to running startx, and then kills xfsft after X exits; this would save a small amount of resources when you're not running X.

Printer Considerations

In order to print, you must make a font available somehow to your printer. For non-PostScript printers, this means making it available to Ghostscript (since adding fonts to the fontmap.dir file does no good if you want to use Applix's PCL drivers). As discussed in the PostScript fonts section, fonts can either be embedded in the PostScript file to be printed by using a Type1FontFileName entry to the font's entry in fontmap.dir; or the font can be permanently installed in a PostScript printer or added to Ghostscript's Fontmap file, as appropriate. Unfortunately, Applix doesn't support downloading TrueType fonts to PostScript printers, even in Type 42 garb (Type 42 is a TrueType font embedded in a PostScript "wrapper," and allows many Level 2 PostScript printers to use TrueType fonts). I don't know much about permanently installing fonts in PostScript printers, but doing this with TrueType fonts might be possible with Level 3 printers, or with Level 2 printers if you first convert the font to Type 42 format.

Ghostscript can be configured to use TrueType fonts, however, so it is possible to use TrueType fonts exclusively and still get over-300-dpi output quality. The Ghostscript binary at http://www.users.dircon.co.uk/~typhoon/ has TrueType support compiled in, or you can recompile the binaries yourself. Once you have a working TrueType-enabled Ghostscript binary, you can configure it to use TrueType fonts. You can even change its default fonts (Times, Courier, etc.) to TrueType versions, if you like, though there's not a lot of point to doing this.

If you're using a true PostScript printer and can't permanently install TrueType fonts, you can still use TrueType fonts for display on the screen, and specify Type 1 fonts in the Type1FontFileName entry to the Applix fontmap.dir file. You could either use a Type 1 equivalent to the TrueType display font from a font CD, or use the TrueType to Type 1 utility to create a Type 1 file from the original TrueType file. Because converting from TrueType to Type 1 loses hinting information, and because X's Type 1 handling isn't the best, using TrueType fonts for display often results in better displayed font quality than using Type 1 fonts. At the higher resolutions available on printers, though, the lack of hinting in converted fonts is less apparent. These generalizations don't apply to all fonts, however; you may want to try displaying and (if possible) printing using both Type 1 and TrueType versions of your favorite fonts, to see what works best for you. Using xv to grab a screen shot of Applix displaying some TrueType fonts, then reconfiguring and doing the same with Type 1 fonts will allow you to do a side-by-side comparison.

TrueType and "Smart Quotes"

If you're using the "smart quotes" feature of Applix, you may have a cosmetic problem with TrueType fonts, because the opening and closing quotes may look quite different. This is because of differences in the way TrueType and X create and use these characters. I don't know of any way to fix this problem. If you're just using xfsft to display TrueType fonts on screen and are using Type 1 variants for printing, this shouldn't be a big deal. For printing with TrueType fonts, though, you may want to disable "smart quotes" or avoid using quotation marks. Note that this problem occurs whether you're using xfsft or FontTastic to display the fonts, and whether you're using Ghostscript or FontTastic to print them.

Redundant Fonts

Font names are set by the font foundries which design the font, and two foundries can design virtually identical fonts with different names. These names, incidentally, have no relation to the format the font is in per se, though any given font might be available only in TrueType or only in Type 1 format. There's no such thing as "the PostScript name for the TrueType font Foo;" either Foo is available in Type 1 format or it's not. There may be a very similar font, Bar, available in TrueType and/or Type 1 format, but in this case Bar almost certainly differs from Foo in some (possibly quite subtle) details.

Applix seems to ship with a number of "redundant" fonts installed via FontTastic. These are fonts which may not have the same name as a font that's standard in PostScript printers, but which looks very similar. Specifically, Courier Swa is redundant with Courier, Symbol Swa is redundant with Symbol, Swiss and Swiss Narrow are redundant with Helvetica and Helvetica Narrow, and Dutch is redundant with Times. It's possible to de-activate these fonts from the FontTastic utility, to no ill effect that I've detected, at least when printing via PostScript. You might get better results printing via PCL using the TrueType fonts, simply because font metrics may match better. If you print via Ghostscript or on a PostScript printer, de-activating these redundant fonts will help to unclutter your font menu.

These "redundant" fonts are stored in the applix/axdata/fontmetrics/gallium/fs/ directory, which also has a fonts.dir file describing them. If you add this directory to your xfsft config file's font path line, you make these fonts available to other X applications. In fact, installing fonts using FontTastic, copying the appropriate fonts.dir entries to another directory's fonts.dir file, and then un-installing the fonts via FontTastic is a relatively easy way to create the fonts.dir entries necessary for TrueType fonts.

Another note, this one aimed primarily at those familiar with Windows: Certain common Windows TrueType fonts are very similar to standard fonts in PostScript printers. Specifically, Windows' Courier New is equivalent to Courier, Arial is a close copy of Helvetica, Times New Roman is equivalent to Times, and Antiqua is quite similar to Palatino. There are certainly other similar fonts, but I don't have an exhaustive list. If you simply want to match the look of a document you created in Windows using, say, Arial, you can select the equivalent font Helvetica in Applix, without trying to install Arial directly in Applix.

Go on to the display fonts instructions.
Go back to the Applix fonts main page.

Copyright © 1997, 1998 Rod Smith, rodsmith@rodsbooks.com