Go to the previous, next chapter.

Making bitmap fonts for faster startup

Sun supports the F3 scalable outline format. These descriptions are stored in .f3b files. The makeafb program is used to create a bitmap font at a particular size which is stored in a .afb file, which is an Adobe ASCII format for font bitmaps. X11/NeWS really prefers a binary format though for speed and other reasons, so convertfont is used to "compile" the font into a font binary or .fb file.

Once this is done, X11/NeWS needs to understand the relationship between the .f3b file and all the bitmaps which are based on it. Thus, the bldfamily program makes these correlations and stores the data in the font family or .ff file.

bldfamily also builds a global list of all fonts stored in the working directory, writing the results out to the file Families.list. If one wishes to create font aliases, these can be added to the Synonyms.list file by hand and bldfamily will then add them to Families.list for you. X11/NeWS uses Families.list to construct the font list it advertises to applications.

To go from F3 to BDF, use makeafb to generate a bitmap font in .afb format. Then use one of convertfont's many options to change to this to .bdf format and from there it should be clear.

  $ mkdir $HOME/myfonts
  $ cd $HOME/myfonts
  $ makeafb -20 -M $OPENWINHOME/lib/fonts/Bembo.f3b
  Creating Bembo20.afb
  $ convertfont -b Bembo20.afb
  Chars parameter greater than number of characters supplied.
  $ ls
  Bembo20.afb   Bembo20.fb      Synonyms.list
  $ bldfamily
  * Bembo                      ./Bembo.ff (Encoding: latin)
  cat: ./Compat.list: No such file or directory
  $ xset +fp `pwd`
  $ xset fp rehash

If you want the server to see your new font directory every time, add this directory to your FONTPATH environment variable in one of your start-up files, e.g. .login or .profile.

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