Using Microsoft Fonts with Netscape and RedHat Linux

Jon Warbrick
University Computing Service
Update: Much of this paper is no longer useful since Microsoft decided to stop providing free access to their TrueType Web fonts in August 2002. However it appears that the fonts may have originally been distributed with an 'End User License Agreement' that permitted redistribution. The project at http://corefonts.sourceforge.net/ takes advantage of this and provides and RPM installer. You may find this an ethically acceptable way to install these fonts in Linux. Your call.

Web browsing from Netscape under Linux can be greatly improved by installing Microsoft's 'Web Core Fonts', since many mis-guided web designers either believe that these are available in all browsers, or end up using them without realizing it by following the defaults in design packages.

Microsoft (at least at present) make these fonts available in TrueType format. Outline instructions for installing them, on 'standard' RedHat Linux systems from 6.0 onward, follow. This procedure may work for other RedHat derived distributions, but depends on RedHat's modified xfs font server. A similar approach will probably work in non RedHat derived distributions - see the references below for further advice.

This procedure has been tested on RedHat 6.2 and 7.0. It looks as though it should work on 7.1. However there can be no guaranties. Even though the instructions below don't always say so, you are strongly advised to make backup copies of all configuration files before you alter them, and to be sure that you know how put the originals back in case of problems, and how to do this even if your X windows server will not itself start. If

  1. Obtain the fonts. There are (July 2001) available from http://www.microsoft.com/typography/fontpack/default.htm. Download the 'Windows 9x, NT and Windows 2000' versions where available. Be sure to check the 'End User License Agreement' to ensure that you proposed use is legal.
  2. Unpack the fonts. The '.exe' files are 32-bit CAB archives. These can be unarchived under Linux with cabextract, which can be found at http://www.kyz.uklinux.net/cabextract.php3.
  3. Copy the .ttf files. Copy the .ttf font files to a central location. I used /usr/local/share/fonts/ttfonts/. The other extracted files can be deleted.
  4. Lowercase all filenames. The font server requires all font file names to be in lowercase. The following script (from the Font De-uglification HOWTO, see below) will have the desired effect:
     #!/bin/sh
     ls * | while read f
      do
        if [ -f $f ]; then
          if [ "$f" != "`echo \"$f\" | tr A-Z a-z`" ]; then
           #Note that 'This' will overwrite 'this'!
           mv -iv "$f" "`echo \"$f\" | tr A-Z a-z`"
          fi
        fi
      done
    
  5. Create font.scale and font.dir index files by running
    ttmkfdir -o fonts.scale
    mkfontdir
    
  6. Create fonts.alias [Optional, but useful]. Netscape seems to get confused by scalable fonts and only offers 0 and 12 point sizes in Edit -> Preferences.. -> Appearance -> Fonts. You can get round this using alias fonts. Details and a Python script to do the work are available at http://home.c2i.net/dark/linux.html#fuzzy, or you can just use a pre-built alias file. Put this in the same place as the fonts.
  7. Update your font server's font path by issuing the command
    chkfontpath --add /usr/local/share/fonts/ttfonts
    
    which will also prompt the font server to re-read it's configuration.
  8. Tests. Something like
    xlsfonts | grep microsoft
    
    should show that the new fonts are now available. Netscape should pick them up when it is next re-launched, and the test page at http://www-uxsup.csx.cam.ac.uk/~jw35/beyond/fonts.html should demonstrate this.

If, after doing all this, your new fonts still don't appear in xlsfonts output, then double-check how you copy of XFree86 is obtaining its fonts. Look in /etc/X11/XF86Config for entries labeled 'FontPath'. There should be an entry that reads 'unix/:-1' (RedHat 6.x) or 'unix/:7100' (Redhat 7.x). If not you are not using the font server. You might be able to fix the problem by adding an appropriate entry and restarting your X server.

References

Most of the above is just a re-hash of information from a number of other documents, any or all of which may be useful if the instructions above don't work or if you want to apply them to non-RedHat systems. These are:


Jon Warbrick
Last modified: Mon Jul 16 12:48:24 BST 2001