diff -u Font-HOWTO.sgml Font-HOWTO.sgml.new |
Copyright (c) 2000-2002 by Donovan Rebbechi
Vertical emphasis. Vertical lines are heavy, horizontal lines are light.
Many moderns have a stark contrast between light and heavy strokes.
Notable grotesques include the overused Helvetica, Grotesque, Arial, Franklin Gothic, and Univers.
Grouping typefaces is not easy, so it pays to avoid using too many on the one page. A logical choice of two typefaces consists of a serif and a sans serif. Monotype's Typography 101 page provides a category-matchup. They conclude that the moderns and geometrics form good pairs, while the old styles and humanists also go together well. The transitionals are also paired with the humanists. The slab serifs are paired with the grotesques, and some variants of the slab serifs are also said to match the geometrics or humanists.
From reading this, one gets the impression that their philosophy is essentially to match the more conservative serifs with the more moderate sans serifs, and pair the wilder modern serifs with the avant garde looking ( pun unavoidable ) geometrics.
Because different distributions ship with different configurations, it is not true that one size fits all. We can split users up into three groups:
Your distribution ships with a stand-alone xfs and it has been patched to support TrueType. This group includes Redhat users and users of derivatives of Redhat such as Mandrake, and TurboLinux. Debian 3.0 will also include the patched xfs, currently in testing. For this group, the wisest strategy is to install both TrueType and Type 1 fonts through xfs
Some distributions ship with a stand-alone xfs package, but no TrueType support. Note that XFree86 supports TrueType as of version 4.0. This includes Debian stable ("potato"). For these users, the best thing to do is use xfs to install Type 1 fonts, and install TrueType fonts via xfstt. Debian users can seek out the TrueType Fonts in Debian mini-HOWTO for information about installing TrueType fonts in Debian.
If you don't have xfs then you will need to install Type 1 fonts by adding to their XFree86 font path and using xset. using xset. XFree86 3.x users should install TrueType fonts via xfstt, while XFree86 4.x users can add them to the X font path. You should install TrueType fonts via xfstt.
XFree86 finds your fonts by searching a font path, a list of directories ( or servers -- we'll explain this further later. ) containing fonts. When an application requests a font, it searches through the directories in your font path one at a time until the font is found. To make fonts available requires you to set your font path. You can add a directory to your font path with the command xset fp+ directory Once you have done this, you need to ask the X server to re-scan for available fonts with the command
xset fp rehash |
... Section "Files" ... FontPath /usr/share/fonts/myfonts ... EndSection ... |
Now you need to add the fonts to your font path. If you already have the stand-alone Section 4.4 running, you do this by editing your xfs configuration file. RedHat users can just use chkfontpath. the format is chkfontpath --add directory
Your fonts will be available to X after you restart xfs, or tell it to reload by sending a SIGHUP. You may need to run xset fp rehash as well.
Your fonts should now be available to X. Now you just run xset fp rehash and X will be able to find the new fonts.
To set up xfstt, just download it and install it. Once you install it, you need to do the following:
install fonts into the appropriate directory ( read the documentation that comes with the package ).
/usr/X11R6/bin/xfstt --sync /usr/X11R6/bin/xfstt & |
The xfs font path is determined by the xfs configuration file, which is /etc/X11/fs/config on Redhat, and /etc/X11/xfs/config on Debian. Redhat users do not need to explicitly edit this file, they can use the chkfontpath utility. The syntax is simple:
chkfontpath --add directory |
catalogue = /usr/X11R6/lib/X11/fonts/misc:unscaled, ... /usr/share/fonts/my_new_fonts/, ... /usr/share/fonts/some_other_directory # in 12 points, decipoints default-point-size = 120 ... |
To prepare a font for xfs, you need to follow the following steps:
ps ax|grep xfs |
... Section "Files" ... FontPath "unix/:-1" ... EndSection ... |
/etc/rc.d/init.d/xfs restart |
After restarting xfs, it's a good idea to restart your X-session.
ttf2pt1 -A fontname - 2 > /dev/null |grep FontName |
#!/usr/bin/perl # ttfontmap -- generate fontmap file for TrueType fonts my $directory=shift || print STDERR "Usage: ttfontmap {directory}\n"; $directory=~s/\/$//; for my $fontname ( glob ( "$directory/*.ttf" ) ) { open ( R, "sh -c \"ttf2pt1 -A $fontname - 2>/dev/null\" |" ); while ( <R> ) { if ( $_ =~ /^FontName/ ) { s/^FontName\s*//; chomp; print "/" . $_ . " ($fontname);\n" ; } } close R; } |
To set this script up, all you need to do is cut and paste it into a file called ttfontmap, and place the file somewhere in your PATH ( such as /usr/bin ). You run this script like this:
ttfontmap directory > output_file |
To convert your TrueType fonts into Type 1 fonts, go to http://quadrant.netspace.net.au/ttf2pt1/ and get ttf2pt1. To convert a TrueType to a Type 1 font, use the following syntax:
ttf2pt1 -b file.ttf name |
Well, that worked fine for one font. If we have a lot, we need a smarter way to do it. One can just just use a loop:
for X in *.ttf; do ttf2pt1 -b $X ${X%%.ttf}; done |
ttf2type1 *.ttf |
The good news is that most WYSIWYG applications use what is a reasonable solution to this problem. The solution involves constructing some kind of mechanism that maps screen fonts to printer fonts ( this is the main issue. There are also other issues, such as grouping bold, italic and roman variants into ``families'' of fonts ). Unfortunately, there is no standard way to do this. It seems that font management standards which address this issue would greatly simplify the installation of fonts into WYSIWYG publishing systems, because all applications could use a system-wide ( as opposed to application-specific ) configuration.
Using FontTastic is the easy way to do it. To install new fonts like this, simply do the following:
Select your foobar catalog from the catalog manipulations list.
From the ``Services'' menu, select ``install fonts into -> FontTastic font server''
Make sure catalog foobar is selected in the catalogs list, then press the ``select files'' button.
When you're ready, click the ``install fonts'' button. Then click ``OK''.
Congrats, you're done ! The new fonts will be available when you restart Applix.
We describe how to add fonts to fontmap.dir. In this example, we add the font Baskerville Italic.
That's it. Now after adding the whole family of fonts, you should have something like this:
FontRecord = Baskerville-Normal Family = Baskerville ScreenName = "-paradise-baskerville-medium-r-normal--0-0-0-0-p-0-iso8859-1" PostScriptPrintName = Baskerville-Normal MetricsFile = /usr/share/fonts/misc/baskvl.afm Type1FontFileName = /usr/share/fonts/misc/baskvl.pfb FontRecord = Baskerville-Normal-Italic Family = Baskerville Slant = 1 ScreenName = "-paradise-baskerville-medium-i-normal--0-0-0-0-p-0-iso8859-1" PostScriptPrintName = Baskerville-Normal-Italic MetricsFile = /usr/share/fonts/misc/baskvli.afm Type1FontFileName = /usr/share/fonts/misc/baskvli.pfb FontRecord = Baskerville-Bold Family = Baskerville Weight = 1 ScreenName = "-paradise-baskerville-bold-r-normal--0-0-0-0-p-0-iso8859-1" PostScriptPrintName = Baskerville-Bold MetricsFile = /usr/share/fonts/misc/baskvlb.afm Type1FontFileName = /usr/share/fonts/misc/baskvlb.pfb FontRecord = Baskerville-Bold-Italic Family = Baskerville Weight = 1 Slant = 1 ScreenName = "-paradise-baskerville-bold-i-normal--0-0-0-0-p-0-iso8859-1" PostScriptPrintName = Baskerville-Bold-Italic MetricsFile = /usr/share/fonts/misc/baskvlbi.afm Type1FontFileName = /usr/share/fonts/misc/baskvlbi.pfb |
It is possible to do more with this configuration file. The file itself has a glossary which explains the format of the configuration file.
Here, we cover Star Office 5.0. The procedure with Star Office 5.1 is similar, but the utility is called spadmin, not psetup. It's worth mentioning up front that John McLaughlin's page is an excellent source on this issue, and it inspired most of what follows.
Having tried both Star Office 5.0, and 5.1, I have found that Star Office 5.1 seems to give me less grief when adding new fonts. I was not succesful adding true type fonts to Star Office 5.0, but it proved somewhat easier with Star Office 5.1.
tar cvzf xp3.tgz xp3 |
rm -rf xp3 tar xvzf xp3.tgz |
Adding TrueType fonts to Star Office is nontrivial, but possible. After some hard work, and long hours stareing at John McLaughlin's page page, I finally got them working in Star Office 5.1. Note that this does not work with version 5.0. The following steps are appropriate it you are printing through ghostscript:
Make the fonts available to X.
Make the fonts available to ghostscript.
You need to have afm files for the fonts you wish to add. Use
ttf2pt1 -A foo.ttf - > foo.afm |
ttfutils package and use ttf2afm The advantage of this is you can handle several at a time, eg
ttf2afm *.ttf |
Star Office needs pfb files corresponding to each ttf file. You can create them with the command
touch foo.pfb |
Now you can run spadmin and install the font(s).
Now add the fonts to the PPD file corresponding to your printer configuration. The name you use for the font should be the same name Star Office uses for it, not the ghostscript font name. For example, if the font is foobar.ttf and the corresponding afm file is foobar.afm, you use the name ``foobar'' for the font in the PPD file. The entry should look something like this:
*Font cloistrk: Standard "(001.002)" Standard ROM |
On the other hand, if you are not printing from ghostscript, you have different issues to deal with. In this case, tricking Star Office into thinking that your printer has the fonts is a bad idea, because your printer does not have the fonts in the ROM, so while gv will display the PostScript files nicely, your printer will not be able to print them. If you have a PostScript printer, the main differences are as follows:
Do not edit the PPD file.
Instead of using touch foo.pfb to create empty pfb files, you need the pfb files to be Type42 PostScript fonts. A Type42 font is really a ``printer TrueType font''. You don't really notice Type42 fonts even when you use them, because most applications handle them transparently. To create Type42 fonts, you use ttfps to create the files.
ttfps foo.ttf foo.pfb |
There are some gotchas. Sometimes, Star Office might not choose the screen font you like. It is sometimes worth checking xp3/psstd.fonts and possibly editing it to make sure that Star Office is really using the font you had in mind for screen display. Also, Star Office doesn't handle configuration problems gracefully. If there's something wrong with your configuration, it's possible that the word processor will not even start. This is why you should back up your xp3 directory.
Star Office makes symbolic links to the pfb outline files in your xp3/pssoftfonts directory.
The afm file is copied into the directory xp3/fontmetrics/afm/
This is why it's good to simply backup the whole xp3 directory -- it is the only convenient way to restore Star Office to a clean configuration.
Nothing yet. Rod Smith's webpage is the definitive resource regarding installing fonts on Word Perfect.
Netscape*documentFonts.sizeIncrement: 20 Netscape*documentFonts.xResolution*iso-8859-1: 100 Netscape*documentFonts.yResolution*iso-8859-1: 100 |
.pl -- property list. This is a human readable version of a tex font metric file.
.vpl -- virtual property list. Human readable version of a virtual font file.
It's good to know your way around the TeX directory structure. Here are the main directories you'll need to know about:
$TEXMF/fonts -- the main font directory
$TEXMF/fonts/type1 -- the type1 font directory
$TEXMF/fonts/type1/foundry -- the directory for the shape files in a given foundry
$TEXMF/fonts/type1/foundry/fontname -- contains the font called name. The name is usually plain English, and needn't follow TeX's cryptic naming scheme for fonts.
$TEXMF/fonts/afm/foundry/fontname -- the directory containing the afm files corresponding to the font name belonging to foundry foundry.
$TEXMF/fonts/tfm/foundry/fontname -- analogous to the afm directory, but contains tfm files instead.
$TEXMF/fonts/vf/foundry/fontname -- similar to the above, but contains the virtual fonts.
$TEXMF/fonts/source/foundry/fontname -- similar to the above, but contains metafont files.
$TEXMF/dvips/config/psfonts.map -- fontmap file for dvips. This file is similar in both function and format to ghostscript's Fontmap file.
$TEXMF/tex/latex/psnfss -- this is where all the font definition files go.
F is a one-letter abbreviation for the foundry ( m = monotype, p = adobe, b = bitstream, f = free )
N is a two letter abbreviation for the font name ( for example, ag = ``avant garde'' )
W is the font weight ( r = regular, b = bold, l = light d = demibold )
E is an abbreviation for the encoding ( almost always 8a which is adobe standard encoding ).
marr8r ArialMT <8r.enc <farr8a.pfa marbi8r Arial_BoldItalicMT <8r.enc <farbi8a.pfa marb8r Arial_BoldMT <8r.enc <farb8a.pfa marri8r Arial_ItalicMT <8r.enc <farri8a.pfa marr8rn Arial_Narrow <8r.enc <farr8an.pfa |
Microsoft have also made several TrueType fonts available. The .exe file is simply an archive, you can extract it using unzip. You can get them from the download site
Luc Devroye's webpage has links to several sites with free fonts available. What's unique about these fonts is that a lot of them are really free, they are not ``warez fonts''.
There are several web sites offering freely available downloadable fonts. For example, the freeware connection has links to a number of archives.
Several foundries sell TrueType fonts. However, most of them are quite expensive, and for the same money, you'd be better of with Type 1 fonts. I'll discuss these more in the Type 1 fonts section. The one place that does do sell true type fonts at low prices is buyfonts. Please read the section on ethics before you buy cheap fonts.
Unfortunately, some vendors only ship Type 1 fonts in Macintosh format ( stuffit archives ). However, according to font expert Luc Devroye, all major foundries make Type 1 fonts available for Mac and Windows.
ctan have a number of good fonts, many of which are free. Most of these are in Metafont format, though some are also Type 1 fonts. Also, see Bluesky who have made available Type 1 versions of the computer modern fonts. ( The computer modern fonts are of excellent quality -- to purchase anything of comparable quality and completeness will cost you around $500-. They are comparable to the premium fonts. )
Luc Devroye's webpage has links to several sites with free fonts available. What's unique about these fonts is that a lot of them are really free, they are not ``warez fonts''.
URW have released the standard PostScript fonts resident in most printers to the public domain. These fonts are quite good.
The Walnut Creek Archive has several freely available fonts, and shareware fonts. Some of these are obvious ripoffs ( and not very good ones ). If a font doesn't come with some kind of license, chances are it's a ripoff. Also Winsite have several Type 1 fonts ( in the fonts/atm subsection of their windows 3.x software ). Unfortunately, several of these have afm files which have mistakes and are missing all kerning pairs ( you can fix the afms by editing the "FontName" section of the afm files. It should match the fontname given in the font shape file. Of course, adding kerning pairs is a topic beyond the scope of this document. )
Luc Devroye's webpage includes several free fonts he designed, as well as a lot of links, and fascinating discussion on the topic of typography. This site is a ``must-visit''. There are also several links to many foundries.
An excellent place to go for a CD packed with several Type 1 fonts of reasonable quality is Bitstream. Bitstreams more noted products include their 250 font CD and their 500 font CD ( the latter goes for $50- at the time of writing ). These are fairly good quality fonts, and are a fairly good starting point for the casual user. The fonts used in Corel's products are (mostly) licensed from bitstream.
Matchfonts offer more modestly priced fonts -- they are distributed in ``packs'' of about 8 fonts for $30. This includes some nice calligraphic fonts. All fonts seem to be offered in a usable format ( the windows ATM fonts come in a .exe file. Don't let the extension fool you -- it's just a zip archive ). These are not ripoffs as far as I can tell.
EFF sell TrueType fonts for $2- per hit. They also have ``professional range'' PostScript and TrueType fonts for $16- per typeface.
Adobe have several high quality, fonts available at Adobe's type website. Some of these are expensive, but they have several more affordable bundles -- see Adobe Type Collections. Adobe have some of the most complete font families on the market, for example, Garamond, Caslon, and their multiple masters ( Myriad and Minion, used on their website are among the nicer of their multiple masters. )
Berthold Types Limited is a major foundry, who offer several quality fonts. Some of them are resold through Adobe, all are directly available from Berthold. Same price ballpark as Adobe.
ITC develop several quality fonts ( including some of the ones Corel ships with their products ) at http://www.itcfonts.com They offer family packages for about $100-180 US. Their fonts, come in both Type 1 and TrueType format. It's better to choose the ``Windows'' package, because Mac formats are difficult to handle on Linux.
Linotype are a well known foundry who offer fonts by legendary designers including Herman Zapf. ( yep, the guy ``Zapf Chancery'' is named after. He also designed Palatino. )
Monotype develop most of the fonts shipped with Microsoft products. One of the older and well respected foundries.
Tiro Typeworks sell good quality, if somewhat expensive typefaces. Their typefaces are very complete, for example, they include complete sets of ligatures, and smallcaps, titling fonts, etc. UNIX is listed as one of the OS options -- which is a welcome surprise after seeing the words ``Windows or Mac'' too many times..
There are several font packages for Linux. Many of them are essential.
chkfontpath is a utility for manipulating the xfs configuration file.
DTM -- the Definitive Type Manager is a global font management tool. This is a developer's release.
fontinst is a LaTeX package designed to simplify the installation of Type 1 fonts into LaTeX.
Freetype is a TrueType library that comes with most Linux distributions
Ghostscript is the software that is used for printing on Linux. The version of ghostscript that ships with Linux is GNU ghostscript. This is one version behind the latest release of Aladdin ghostscript ( who release their old versions under the GPL )
pfm2afm is a utility for converting windows pfm font metric files into afm metrics that can be used for Linux. This is based on the original version available at CTAN, and includes modifications from Rod Smith to make it compile under Linux.
mminstance and t1utils are two packages for handling Type 1 fonts. mminstance is for handling Adobe's multiple master Type 1 fonts. t1utils is a suite of utilities for converting between the different Type 1 formats.
ttf2pt1 is a TrueType to Type 1 font converter. It is useful if you have applications that require Type 1 fonts.
ttfps converts .ttf TrueType font files into Type42 files.
ttfutils A package of utilities for handling TrueType fonts. This package requires ttf2pt1. Useful if not essential.
type1inst is an essential package for installing Type 1 fonts. It greatly simplifies the installation.
xfstt is a TrueType font server for Linux. It's useful, but xfs is probably a better choice.
xfsft The xfsft font server. Note that this is included in xfs.
x-tt is a font server designed to handle Korean and Japanese fonts.
There are many differing opinions on this issue. See typeright for an explanation of the case in favour of intellectual property rights. Also, see Southern Software, Inc for another opinion -- but don't buy any of their fonts! Their Type 1 fonts ( poorly reverse-engineered Adobe fonts ) do not have AFMs, and are thus unusable.
The comp.fonts FAQ also discusses the issues of fonts and intellectual property, as does Luc Devroye's homepage. These references are somewhat less extreme in their views.
Rod Smith's homepage contains a wealth of information about using fonts and printers with Applixware and Word Perfect.
John McLaughlin's page discusses setting up fonts with Star Office
Jim Land's homepage contains a lot of links to sites on PostScript and fonts.
The comp.fonts FAQ is the definitive font FAQ.
Luc Devroye's homepage Contains enough information about fonts and other things to sink a ship. This guy designed a bunch of free fonts, and his homepage has a lot of interesting links, information and commentary.
The Font Deuglification HOWTO discusses TrueType fonts under Linux. This is the clear winner of the ``TrueType'' HOWTOs. An excellent source of information.
TrueType Fonts in Debian mini-HOWTO discusses installing TrueType in Debian. A must-read for Debian users. Also worth reading if you have any distribution that doesn't have the version of xfs with TrueType support.
The (preliminary) True Type HOWTO -- an incomplete HOWTO dated June 1998. Included in this list for completeness.
TrueType for XFree86 Mini-HOWTO -- a slightly dated HOWTO. Only applicable to Redhat 5.x
Adobe's Postscript page is the definitive site on the PostScript standard.
Ghostscript's home page has a lot of information, and all the latest printer drivers.
Jim Land's homepage contains a lot of links to sites on PostScript and fonts.