<?xml version="1.0"?>
<article><artheader><title>Font HOWTO</title><author><firstname>Donovan </firstname><surname>Rebbechi, 	</surname><affiliation><address format="linespecific"><email>elflord@panix.com</email></address></affiliation></author><revhistory><revision><revnumber>v2.0</revnumber><date>2002-07-10</date><authorinitials>dr</authorinitials><revremark>         </revremark></revision></revhistory><abstract><para>      Provides a comprehensive source to act as a starting point 
      for any and all font questions about Linux.
      </para></abstract></artheader><sect1><title>Introduction</title><sect2><title>The Location of This Document</title><para>This document is located at 
<ulink url="http://pegasus.rutgers.edu/~elflord/font_howto">my webpage</ulink>
</para></sect2><sect2><title>Submitting corrections/errata</title><para>Please don't send me html ! I con't do anything with it. Instead, send a patch
based on the sgml source. To do this, edit Font-HOWTO.sgml, save the new file
to Font-HOWTO.sgml.new, and run the diff program:
<screen format="linespecific">diff -u Font-HOWTO.sgml Font-HOWTO.sgml.new</screen>
and send me the patch. If I like it, it's easy for me to add it immediately.
It's also easy for me to quickly inspect the changes and decide whether or
not I like them.</para></sect2><sect2><title>Last Updated</title><para>This version is last updated 
Wed Jul 10 20:05:15 EDT 2002. Go to the location of the
document for the latest version.</para></sect2><sect2><title>Copyright</title><para>Copyright (c) 2000-2002 by Donovan Rebbechi</para><para>
 Please freely copy and distribute (sell or give away) this document in any 
format. It's requested that corrections and/or comments be forwarded to the 
document maintainer, but you are not obliged to. You may create a derivative 
work and distribute it provided that you: 

<itemizedlist><listitem><para>Send your derivative work (in the most suitable format such as sgml) to the LDP (Linux Documentation Project) or the like for posting on the Internet. If not the LDP, then let the LDP know where it is available. </para></listitem><listitem><para>License the derivative work with the same license as this one or use GPL. 
Include a copyright notice and at least a pointer to the license used. </para></listitem><listitem><para>Give due credit to previous authors and major contributors. </para></listitem></itemizedlist>
					    If you're considering making a derived work other than a translation, it's requested that you discuss
						 your plans with the current maintainer. </para></sect2><sect2><title>Rationale</title><para>I'm going to make this brief (-; The purpose of this document is to address
what was a gaping hole in font documentation. While previously, there
were several documents about fonts for Linux, I felt that none of them
were comprehensive, all of them had a relatively narrow focus. Hence
the goal of this document is not to provide radical new insight into 
the issue of font handling ( though I have included material previously 
unavailable ), the main aim is to provide a comprehensive source to act 
as a starting point for any and all font questions about Linux.</para></sect2><sect2><title>Credits and Acknowledgements</title><para>Special thanks are due to Rod Smith, who made several helpful suggestions,
and fixed pfm2afm.
Also thanks to Doug Holland, whose Font Deuglification HOWTO proved
to be a good reference,	John McLaughlin, author of the document that
helped me come to grips with Star Office, 
and the Linux community for their suggestions
and constructive comments.</para></sect2></sect1><sect1><title>Fonts 101 -- A Quick Introduction to Fonts</title><sect2><title>Types of Fonts</title><sect3><title>Bitmap Fonts</title><para>A bitmap is a matrix of dots. Bitmap fonts are represented in precisely
this way -- as matrices of dots. Because of this, they are
<emphasis>device dependent</emphasis> -- they are only useful at a particular 
resolution. A 75 DPI screen bitmap font is still 75 DPI on your 1200 DPI 
printer.</para><para>There are two types of bitmap fonts -- bitmap printer fonts, such as
the <literal moreinfo="none" remap="tt">pk</literal> fonts generated by dvips, and bitmap screen fonts,
used by X and the console. The bitmap screen fonts typically have 
a <literal moreinfo="none" remap="tt">bdf</literal> or <literal moreinfo="none" remap="tt">pcf</literal> extension. Bitmap screen 
fonts are most useful
for terminal windows, consoles and text editors, where the lack of
scalability and the fact that they are unprintable is not an issue.</para></sect3><sect3><title>Type 1 Fonts</title><para>The Type 1 font standard was devised by Adobe, and Type 1 fonts are
supported by Adobe's PostScript standard. Because of this, they are
also well supported under linux. They are supported by X and 
ghostscript. Postscript fonts have traditionally been the choice 
of font for anything on UNIX that involves printing.</para><para>Typically, a UNIX Type 1 font is distributed as an <literal moreinfo="none" remap="tt">afm </literal>
( adobe font metric ) file, and an outline file, which 
is usually a <literal moreinfo="none" remap="tt">pfb</literal> ( printer font binary ) or 
<literal moreinfo="none" remap="tt">pfa</literal> ( printer font ascii ) 
file. The outline file
contains all the glyphs, while the metric file 
contains the metrics. </para><para>Type 1 fonts for other platforms may be distributed in different
formats. For example, PostScript fonts for windows often use a different
format ( <literal moreinfo="none" remap="tt">pfm</literal> ) for the metric file.</para></sect3><sect3><title>Type3 Fonts</title><para>These fonts are distributed in a similar manner to Type 1 files --
in groups of <literal moreinfo="none" remap="tt">afm</literal> font metrics, and <literal moreinfo="none" remap="tt">pfa</literal> files.
While they are supported by the PostScript standard, they are not 
supported by X, and hence have limited use.</para></sect3><sect3><title>TrueType Fonts</title><para>TrueType fonts were developed by Apple. They made the format available
to Microsoft, and succesfully challenged Adobe's grip on the font 
market. 
True type fonts store the metric and shape information in a single
file ( usually one with a <literal moreinfo="none" remap="tt">ttf</literal> extension ). Recently,
font servers have been developed that make TrueType available 
to X. And PostScript and ghostscript have supported TrueType fonts
for some time. Because of this, TrueType fonts are becoming more 
popular on linux.</para></sect3><sect3><title>Type 42 Fonts </title><para>Type42 fonts are actually just TrueType fonts with headers that enable
them to be rendered by a PostScript interpreter. Most applications,
such as ghostscript and SAMBA handle these fonts transparently. However,
if you have a PostScript printer, it may be necessary to explicitly 
create Type42 font files.</para></sect3><sect3><title>Type 1 vs TrueType -- a comparison</title><para>Despite the historical feuding between the proponents to Type 1 and TrueType
fonts, both have a lot in common. Both are scalable outline fonts.
Type 1 fonts use cubic as opposed to quadratic curves for the glyphs.
This is in theory at least a slight advantage since they include 
all the curves available to TrueType fonts. In practice, it makes 
very little difference. </para><para>TrueType fonts have the apparent advantage that their support for 
hinting is better ( Type 1 fonts do have hinting functionality, but it 
is not as extensive as that of TrueType fonts ). 
However, this is only an issue on low resolution
devices, such as screens ( the improved hinting makes no discernable
difference on a 600dpi printer, even at small point sizes. )
The other point that makes this apparent advantage somewhat 
questionable is the fact that well hinted TrueType fonts are rare. 
This is because software packages that support hinting functionality
are out of the budget of most small time designers.
Only a few major foundries, such as Monotype make well hinted 
fonts available.</para><para>In conclusion, the main differences between TrueType and Type 1 fonts 
are in availability and application support. The widespread availability
of TrueType fonts for Windows has resulted in webpages designed 
with the assumption that 
certain TrueType fonts are available. Also, many users have large 
numbers of TrueType fonts because they ship with the users Windows
applications. However, on Linux, most applications support Type 1 fonts
but do not have the same level of support for TrueType. Moreover, most
major font foundries still ship most of their fonts in Type 1 format.
For example, Adobe ships very few TrueType fonts.
My recommendation to users is to use whatever works for your 
application, and try to avoid converting from one format to another
where possible ( because the format conversion is not without loss ).</para></sect3><sect3><title>Metafont</title><para>Metafont was developed by Donald E. Knuth as part of the TeX typesetting
system. Metafont is a graphics programming language ( like PostScript )
that has applications wider than just fonts.
Metafonts exhibit some very desirable qualities. One of the important
features is that metafonts can scale very gracefully.  The metafont
Computer Modern has different shape at 20 point and 10 point. The 
shape changes with size, because it is desirable for a smaller font
to be proportionately wider than a larger font ( this makes the larger
fonts more elegant and the smaller fonts more readable ).</para><para>Metafonts typically have a <literal moreinfo="none" remap="tt">mf</literal> extension. They are rendered
to device dependent bitmap fonts. The rendering is slow, so they
are of excellent quality, but are not well suited to WYSIWYG 
publishing.</para></sect3></sect2><sect2><title>Families of Typefaces</title><para>Typically, typefaces come in groups of a few variants. For example,
most fonts come with a bold, italic, and bold-italic variant.
Some fonts may also have small caps, and demibold variants.
A group of fonts consisting of a font and its variants is 
called a <emphasis>family</emphasis> of typefaces.
For example, the Garamond family consists of Garamond,
Garamond-italic, Garamond-bold, Garamond bold-italic,
Garamond demi-bold, and Garamond demi-bold-italic. The Adobe 
expert Garamond font also makes available Garamond small caps,
and Garamond titling capitals.</para></sect2></sect1><sect1><title>Fonts 102 -- Typography</title><para>Here, we discuss some typography basics. While this information
is not essential, many font lovers will find it interesting.</para><sect2><title>Classifications of Typefaces</title><sect3><title>Fixed versus variable width</title><para>There are several classifications of typefaces. Firstly, there
are <literal moreinfo="none" remap="tt">fixed width</literal> fonts, and variable width fonts.
The fixed width fonts look like typewriter text, because 
each character is the same width. This quality is desirable for
something like a text editor or a computer console, but not
desirable for the body text of 
a long document. The other class is variable
width. Most of the fonts you will use are variable width, though
fixed width can be useful also ( for example, all the example 
shell commands in this document are illustrated with a 
fixed width font ). The most well known fixed width font
is Courier.</para></sect3><sect3><title>To serif or not to serif ?</title><para>Serifs are little hooks on the ends of characters. For example, the
letter i in a font such as Times Roman has serifs protruding from 
the base of the i and the head of the i.
Serif fonts are <emphasis>usually</emphasis> considered more readable than 
fonts without serifs. There are many different types of serif fonts.</para><para>Sans serif fonts do not have these little hooks, so they have
a starker appearance. One usually does not write a long book 
using a sans serif font for the body text. There are sans serif
fonts that are readable enough to be well suited to documents 
that are supposed to be browsed / skimmed ( web pages, catalogues,
marketing brochures ). Another application that sans serif fonts
have is as display fonts on computer screens, especially at 
small sizes. The lack of detail in the font can provide it with
more clarity. For example, Microsoft touts Verdana as being 
readable at very small sizes on screen.</para><para>Notable sans serif fonts include Lucida Sans, MS Comic Sans,
Verdana, Myriad, Avant Garde, Arial, Century Gothic and Helvetica.
By the way, Helvetica is considered harmful by typographers.
It is somewhat overused, and many books by typographers plead 
users to stay away from it.</para></sect3><sect3><title>The old and the new -- different types of Serif fonts</title><sect4><title>Old Style</title><para>Old style fonts are based on very traditional styles dating as 
far back as the late 15th century. Old style fonts tend 
to be conservative in design, and very readable. They are well 
suited to writing long documents. The name ``old style'' refers 
to the style of the font, as opposed to the date of its design.
There are classic old style fonts, such as Goudy Old Style,
which were designed in the 20th century.
The old style class of fonts has the following distinguishing features:

<itemizedlist><listitem><para>Well defined, shapely serifs.</para></listitem><listitem><para>Diagonal emphasis. Imagine drawing a font with a fountain pen, 
where lines 45 degrees anticlockwise from vertical are heavy
and lines 45 degrees clockwise from vertical are light. Old style
fonts often have this appearance.</para></listitem><listitem><para>Readability. Old style fonts are almost always very readable.</para></listitem><listitem><para>Subtlety and lack of contrast. The old style fonts have heavy 
lines  and light lines but the contrast in weight is subtle, 
not stark.</para></listitem></itemizedlist>

Notable Old Style fonts include Garamond, Goudy Old Style, Jenson,
and Caslon ( the latter is contentious -- some consider it transitional )</para></sect4><sect4><title>Moderns ( or didone )</title><para>The moderns are the opposite of old style fonts. These fonts 
typically have more character, and more attitude than their old style
counterparts, and can be used to add character to a document rather
than to typeset a long piece. However, nothing is black and white --
and there are some modern fonts such as computer modern and
Monotype modern, and New Century Schoolbook which are very readable
( the contrast between heavy and light is softened to 
add readability ).
They are based on the designs popular in the 19th century and 
later. Their distinguishing features include:

<itemizedlist><listitem><para>Lighter serifs, often just thin horizontal lines.</para></listitem><listitem><para>Vertical emphasis. Vertical lines are heavy, horizontal 
lines are light.</para></listitem><listitem><para>Many moderns have a stark contrast between light and heavy strokes.</para></listitem><listitem><para>Modern typefaces with high contrast between light and heavy 
strokes are not as readable as the old style fonts.</para></listitem></itemizedlist>

Bodoni is the most notable modern. Other moderns include computer 
modern, and Monotype modern ( on which computer modern is based ).</para></sect4><sect4><title>Transitional</title><para>Transitional fonts fit somewhere in between moderns and old style fonts.
Many of the transitionals have the same kind of readability as the old 
styles. However, they are based on slightly later design. While
a move in the direction of the moderns may be visible in these 
fonts, they are still much more subtle than the moderns. 
Examples of transitionals include Times Roman, Utopia, Bulmer,
and Baskerville. Of these, Times leans towards old style, while
Bulmer looks very modern.</para></sect4><sect4><title>Slab Serifs</title><para>The slab serif fonts are so named because they have thick, block 
like serifs, as opposed to the smooth hooks of the old styles
or the thin lines of some of the moderns.
Slab serif fonts tend to be sturdy looking and are generally quite
readable. Many of the slab serifs have Egyptian names -- such
as Nile, and Egyptienne ( though they are not really in any way Egyptian ).
These fonts are great for producing readable text that may suffer
some dilution in quality ( such as photocopied documents, and documents
printed on newspaper ). These fonts tend to look fairly sturdy.
The most notable slab serif fonts are Clarendon, Memphis and
Egyptienne, as well as several typewriter fonts.
Many of the slab serif fonts are fixed width. Conversely, most 
( almost all ) fixed width fonts are slab serif.</para></sect4></sect3><sect3><title>The Sans Serif Revolution</title><para>Surprisingly, the rise of sans serif fonts is a fairly recent
phenomenon. The first well known sans serif fonts were designed in the
19th early 20th century. The earlier designs include Futura, 
Grotesque and Gill Sans. These fonts represent respectively 
the ``geometric'', ``grotesque'' and ``humanist'' classes 
of sans serif fonts.</para><sect4><title>Grotesque</title><para>The grotesques where so named because the public were initially 
somewhat shocked by their relatively stark design. Groteques are 
very bare in appearance due to the absence of serifs, and the simpler,
cleaner designs. Because of their ``in your face'' appearance,
grotesques are good for headlines. The more readable variations also
work quite well for comic books, and marketing brochures,
where the body text comes in small doses. Grotesques don't look 
as artsy as their geometric counterparts. 
Compared to the geometrics, they have more variation in weight, more
strokes, they are squarer ( because they don't use such 
circular arcs ). They use a different upper case G and lower case 
a to the geometrics.
While they are minimalistic
but don't go to the same extreme as the brutally avant-garde 
geometrics.</para><para>Notable grotesques include the overused Helvetica,  Grotesque,
Arial, Franklin Gothic, and Univers.</para></sect4><sect4><title>Geometric</title><para>The Futura font came with the manifesto: <emphasis>form follows function</emphasis>.
The geometric class of fonts has a stark minimalistic appearance. 
Distinguishing features include a constant line thickness ( no weight ).
This is particularly conspicuous in the bold variants of a font. 
Bold groteques and humanist fonts often show some notable 
variation in weight while this rarely happens with the geometric
fonts. Also notable is the precise minimalism of these designs.
The characters almost always are made up from straight horizontal and
vertical lines, and arcs that are very circular ( to the point 
where they often look as though they were drawn with a compass ).
The characters have a minimal number
of strokes. This gives them a contemporary look in that they 
embrace the minimalistic philosophy that would later take the
world of modern art by storm.
A tell tale sign that a font is a geometric type is the upper case
``G'', which consists of a minimalistic combination of two
strokes -- a long circular arc and a horizontal line.
The other character that stands out is the lower case ``a'' --
which is again two simple strokes, a straight vertical line and
a circle ( the other ``a'' character is more complex which is why
it is not used ).
Notable geometrics include Avant Garde, Futura, and Century
Gothic.</para></sect4><sect4><title>Humanist</title><para>As the name might suggest, humanist fonts were designed with a goal 
of being less mechanical in appearance. In many ways, they are
more similar to the serif fonts than the geometrics and the 
grotesques. They are said to have a ``pen drawn'' look about them.
They tend to have subtle variation in weight, especially observable 
in bold variants. The curve shapes are considerably less rigid than
those of the geometrics. Many of them are distinguishable by the
``double story'' lower case g, which is the same shape as the g
used in the old style serif fonts.
The humanist typefaces are the easiest to use without producing an 
ugly document as they are relatively compatible with the old style 
fonts.</para></sect4></sect3><sect3><title>Compatible Typefaces</title><para>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.
<ulink url="http://www.monotype.com/newmedia/type101_ex.htm">Monotype's Typography 101 page</ulink>
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.</para><para>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.</para></sect3></sect2><sect2><title>Ligatures, Small caps fonts and expert fonts</title><sect3><title>Ligatures</title><para>Properly spacing fonts brings with it all sorts of issues.
For example, to properly typeset the letters ``fi'', the i should
be very close to the f. The problem is that this causes the dot 
on the i to collide with the f, and the serif on the head of the i
to collide with the horizontal stroke of the f.
To deal with this problem, font collections include ligatures. 
For example, the ``fi'' ligature character is a single character that 
one can substitute for the two character string ``fi''.
Most fonts contain fi and fl ligatures. Expert fonts discussed 
later often include extra ligatures, such as ffl, ffi, and a dotless
i character.</para></sect3><sect3><title>Small caps fonts</title><para>Small caps fonts are fonts that have reduced size upper case letters
in place of the lower case letters. These are useful for writing
headings that require emphasis ( and they are often used in LaTeX ).
Typically, when one writes a heading in small caps, they use a large
cap for the beginning of each word, and small capitals for the rest
of the word ( ``title case'' ). The advantage of this over using
all caps is that you get something that is much more readable
( using all caps is a big typographic sin ).</para></sect3><sect3><title>Expert fonts</title><para>Expert fonts consist of several extras designed to supplement a typeface.
These include things like ligatures, ornaments ( much like a 
mini-dingbats collection designed to go with the typeface ), 
small caps fonts, and swash capitals ( fancy, calligraphic letters ).</para></sect3></sect2><sect2><title>Font Metrics and Shapes</title><para>Font metrics define the spacing between variable width fonts.
The metrics include information about the size of the font,
and <emphasis>kerning</emphasis> information, which assigns kerning 
pairs -- pairs of characters that should be given different 
spacing. For example, the letters ``To'' would usually belong in 
a kerning pair, because correctly spaced ( or kerned ), the o 
should partly sit under the T. Typesetting programs such as LaTeX
need to know information about kerning so that they can make decisions
about where to break lines and pages. The same applies to WYSIWYG
publishing programs.</para><para>The other important component of a font is the outline, or shape.
The components of the fonts shape ( a stroke, an accent, etc )
are called ``glyphs''.</para></sect2></sect1><sect1 id="xfonts"><title>Making Fonts Available To X</title><para>There are a number of ways fonts can be added to X. Firstly, XFree86
has a <emphasis>font path</emphasis> which is just a list of several directories
or <emphasis>font servers</emphasis> where it searches for fonts. A font server
is just a background process that makes fonts available to XFree86. 
An advantage of font servers is that they can send fonts to remote displays.</para><para>Recently, <literal moreinfo="none" remap="tt">xfs</literal> ( the ``X font server'' ) has been patched 
to support TrueType fonts, and run as a stand-alone program.  
The patched version ships with RedHat and RedHat-based distributions,
and is included in XFree86 4.0 and newer.
<literal moreinfo="none" remap="tt">xfs</literal> is actually just the standard font server that comes
with XFree86. It's source code is part of the XFree86 source tree.
However, distributions have recently been shipping a version that runs
in stand-alone mode.
The stand-alone X font server, with the TrueType support 
patch ( the TrueType support takes place via a font server 
called <literal moreinfo="none" remap="tt">xfsft</literal> ) is probably the nicest font management 
solution currently available. Its advantages include:

<itemizedlist><listitem><para>Support for different types of fonts, including Type 1, TrueType
and bitmap.</para></listitem><listitem><para>Makes fonts available to remote displays.</para></listitem><listitem><para>Greatly simplifies editing the fontpath -- you can do it via
the command line utility <literal moreinfo="none" remap="tt">chkfontpath</literal>, as opposed to
having to edit configuration files. This not only makes life
easier for users, it makes packaging more safer and more scriptable 
for packagers.</para></listitem></itemizedlist>
</para><para>Because different distributions ship with different configurations,
it is not true that one size fits all. We can split users up into
three groups:

<itemizedlist><listitem><para>Your distribution ships with a stand-alone <literal moreinfo="none" remap="tt">xfs</literal>
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 <literal moreinfo="none" remap="tt">xfs</literal></para></listitem><listitem><para>Some distributions ship with a stand-alone <literal moreinfo="none" remap="tt">xfs</literal>
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 
<literal moreinfo="none" remap="tt">xfs</literal> to install Type 1 fonts, and install TrueType
fonts via <literal moreinfo="none" remap="tt">xfstt</literal>. Debian users can seek out 
the 
<ulink url="http://www.dimensional.com/~bgiles/debian-tt.html">TrueType Fonts in Debian mini-HOWTO</ulink>
for information about installing TrueType fonts in Debian.</para></listitem><listitem><para>If you don't have <literal moreinfo="none" remap="tt">xfs</literal> 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 <literal moreinfo="none" remap="tt">xfstt</literal>, while XFree86 4.x users can add them
to the X font path.

You should install TrueType fonts
via <literal moreinfo="none" remap="tt">xfstt</literal>.</para></listitem></itemizedlist>
</para><sect2 id="fontpath"><title>The font path </title><para>XFree86 finds your fonts by searching a <emphasis>font path</emphasis>,
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
<anchor id="xset"></anchor>
	xset fp+ directory
	
Once you have done this, you need to ask the X server to re-scan 
for available fonts with the command 
<screen format="linespecific">	xset fp rehash</screen>	
Since you will want these commands to run automatically, you should
put them in your <literal moreinfo="none" remap="tt">.xinitrc</literal> file ( or possibly your 
<literal moreinfo="none" remap="tt">.Xclients</literal> or <literal moreinfo="none" remap="tt">.xsession</literal> file -- this depends on 
how you start X. It's convenient to make two of these files symlinks
to the other to avoid confusion ).
Another way to have the commands  set automatically is edit XF86Config.
For example, to add <literal moreinfo="none" remap="tt">/usr/share/fonts/myfonts</literal> to the font path
when X is started, edit <literal moreinfo="none" remap="tt">XF86Config</literal> like this:
<screen format="linespecific">		...
		Section "Files"
		...
		
		FontPath /usr/share/fonts/myfonts
		...
		EndSection
		...</screen>
The advantage of editing XF86Config is that the resulting changes 
are system wide.</para></sect2><sect2><title>Installing Type 1 Fonts</title><sect3><title>Run Type1inst</title><para>The easiest way to make Type 1 fonts available to X is with the
help of the Type1inst utility. This is a perlscript that automatically
creates the fonts.dir and fonts.scale files that you need for X
to use the fonts. Simply CD to the directory, and run type1inst.
	cd directory
	type1inst
	</para></sect3><sect3><title>If You Have the <literal moreinfo="none" remap="tt">xfs</literal> Package</title><para>Now you need to add the fonts to your font path. If you already 
have the stand-alone <xref linkend="xfs"></xref> running, you do this 
by editing your <literal moreinfo="none" remap="tt">xfs</literal> configuration file.
<emphasis> 
RedHat users can just use chkfontpath<xref linkend="chkfontpath"></xref>.
the format is </emphasis>
<literal moreinfo="none" remap="tt">chkfontpath --add directory</literal></para><para>Your fonts will be available to X after you restart <literal moreinfo="none" remap="tt">xfs</literal>,
or tell it to reload by sending a SIGHUP. You may need to run
<literal moreinfo="none" remap="tt">xset fp rehash</literal> as well.</para><para>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.</para></sect3><sect3><title>If You Don't Have The <literal moreinfo="none" remap="tt">xfs</literal> Package</title><para>In this case, you need to add the directory containing 
your new fonts to the font path, as described previously.</para></sect3></sect2><sect2><title>True Type Fonts</title><para>Adding TrueType fonts is a little more difficult, because you need 
to have a font server that is capable of serving TrueType fonts.
Two font servers that do this are xfstt and xfs.</para><para><literal moreinfo="none" remap="tt">xfstt</literal> is a TrueType font server. While it's easy to configure,
and quite useful, it appear that <literal moreinfo="none" remap="tt">xfs</literal> is becoming more popular.
The main advantage of <literal moreinfo="none" remap="tt">xfs</literal> over <literal moreinfo="none" remap="tt">xfstt</literal> is that it supports
both Type 1 and TrueType fonts.</para><sect3><title>xfstt</title><para>To set up xfstt, just download it and install it. 
Once you install it, you need to do the following:

<orderedlist inheritnum="ignore" continuation="restarts"><listitem><para>	
install fonts into the appropriate
directory ( read the documentation that comes with the package ).</para></listitem><listitem><para>cd to that directory and run <literal moreinfo="none" remap="tt">xfstt --sync</literal>. This causes it
to look for the fonts and create the <literal moreinfo="none" remap="tt">fonts.dir</literal> file. </para></listitem><listitem><para>Now add <literal moreinfo="none" remap="tt">unix/:7100</literal> to your font path.</para></listitem></orderedlist>

Your TrueType fonts should now display and be available to applications
such as GIMP and Netscape.
You may want to configure it to start every time your system starts up.
Check to see if there's a startup file included ( if you are using 
RPM, you can use <literal moreinfo="none" remap="tt">rpm -ql xfstt entgrep init</literal> and look for the 
file with a name something like this: <literal moreinfo="none" remap="tt">/etc/rc.d/init.d/xfstt</literal>
) 
If you don't have an init script, just
put two  lines in <literal moreinfo="none" remap="tt">/etc/rc.local</literal> like this:
<screen format="linespecific">	/usr/X11R6/bin/xfstt --sync
	/usr/X11R6/bin/xfstt ent</screen>	</para></sect3></sect2><sect2 id="xfs"><title>xfs</title><para>Some of the newer Linux distributions ship with the X font server 
<literal moreinfo="none" remap="tt">xfs</literal> configured to run as a stand alone program. 
Notably, Redhat and all the redhat based distributions use this 
modularised <literal moreinfo="none" remap="tt">xfs</literal> with TrueType compiled in.
Debian also ship <literal moreinfo="none" remap="tt">xfs</literal>, but the version 
 they ship in stable ("potato") doesn't have built in true 
 type support, though the one in testing ("woody") does.

</para><para>Running <literal moreinfo="none" remap="tt">xfs</literal> 
as a stand alone server has several benefits, especially 
if it is compiled with TrueType support. The main advantage is that since
the font server is no longer attached to the X server, it is possible
to serve fonts to remote displays. Also, it makes it much easier
to modify the font path.</para><sect3><title>The <literal moreinfo="none" remap="tt">xfs</literal> Path</title><para>As a font server, <literal moreinfo="none" remap="tt">xfs</literal> has it's own font path. 
One might wonder where this fits into the picture. It
works like this: you can place the <literal moreinfo="none" remap="tt">xfs</literal> font server
in XFree86's font path, by adding <literal moreinfo="none" remap="tt">unix/:port</literal> to
the XFree86 font path.
Once you do this, any font in the <literal moreinfo="none" remap="tt">xfs</literal> font path
automatically becomes available to XFree86.</para><para>The <literal moreinfo="none" remap="tt">xfs</literal> font path 
is determined by the <literal moreinfo="none" remap="tt">xfs</literal> configuration file,
which is <literal moreinfo="none" remap="tt">/etc/X11/fs/config</literal> on Redhat, and 
<literal moreinfo="none" remap="tt">/etc/X11/xfs/config</literal> on Debian.
Redhat users do not need to explicitly edit this file, they 
can use the <literal moreinfo="none" remap="tt">chkfontpath</literal> utility.
The syntax is simple:
<anchor id="chkfontpath"></anchor> 
<screen format="linespecific">	chkfontpath --add directory</screen>	
Users of other distributions can edit the configuration file as 
follows:
<screen format="linespecific">	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
	...</screen>	
The above would add <literal moreinfo="none" remap="tt">/usr/share/fonts/myentnewentfonts/</literal> to the
<literal moreinfo="none" remap="tt">xfs</literal> font path. <emphasis>Note that the last line of the list of 
directories doesn't have a comma at the end.</emphasis>
For these modifications to the font path to become effective, <literal moreinfo="none" remap="tt">xfs</literal>
 	must be told to reload by running <literal moreinfo="none" remap="tt">/etc/init.d/xfs reload</literal> or
 	sending it a SIGHUP with "kill -HUP [pid]" or "killall -HUP xfs". Alternately
 	you can just re-start xfs, though if you do that it would be a good idea to re-start
 	your X session too.</para></sect3><sect3><title>Installing a Font Into <literal moreinfo="none" remap="tt">xfs</literal></title><para>To prepare a font for <literal moreinfo="none" remap="tt">xfs</literal>, you need to follow the following 
steps:

<itemizedlist><listitem><para>If you don't have xfs installed, you need to install it.</para></listitem><listitem><para>Put the new fonts in a directory.</para></listitem><listitem><para>If you are installing Type 1 fonts,
prepare the new directory for the server 
by running <literal moreinfo="none" remap="tt">type1inst</literal> in the directory.</para></listitem><listitem><para>If you are installing
TrueType fonts, ( <emphasis>remember, not all distributions can do TrueType via
xfs ! </emphasis> ), prepare the new directory for the server by running 
	ttmkfdir -o fonts.scale
	mkfontdir
	
in the directory containing your new fonts. If you created a new directory
for the fonts you may need to copy fonts.scale to fonts.dir or create a
symbolic link.
<literal moreinfo="none" remap="tt">ttmkfdir</literal> is part of the <emphasis>freetype</emphasis> package.</para></listitem><listitem><para>Now you can add the new directory to your <literal moreinfo="none" remap="tt">xfs</literal> search path. 
Users of Redhat-like distributions 
can do this with the <literal moreinfo="none" remap="tt">chkfontpath</literal> utility:
Other users can do this by editing their <literal moreinfo="none" remap="tt">xfs</literal> configuration
file.</para></listitem><listitem><para>if <literal moreinfo="none" remap="tt">xfs</literal> is already installed on your system,
you should see which port it is running on. You can do this
as follows:
<screen format="linespecific">	ps ax|grep xfs</screen>	</para></listitem><listitem><para>Then check your XFree86 font path. 
		xset -q
	</para></listitem><listitem><para>If your font path includes something like <literal moreinfo="none" remap="tt">unix:/portentnumber</literal>
were <emphasis>portentnumber</emphasis> is the port which the server is running on, then
you already have xfs set up properly. Otherwise, you should add it to
your XFree86 font path.
		xset fp+ unix/:port_number
		xset fp rehash
	
You can add it permanently by editing your <literal moreinfo="none" remap="tt">.xinitrc</literal> as explained 
previously.
To add it system wide, edit your XF86Config file ( probably either 
<literal moreinfo="none" remap="tt">/etc/X11/XF86Config</literal>, <literal moreinfo="none" remap="tt">/etc/XF86Config</literal> or
<literal moreinfo="none" remap="tt">/usr/X11R6/lib/X11/XF86Config</literal> ), by adding a 
line <literal moreinfo="none" remap="tt">FontPath "unix:/portentnumber"</literal> in the Files section.
Here's an example:
<screen format="linespecific">		...
		Section "Files"
		...
		
		FontPath "unix/:-1" 
		...
		EndSection
		...</screen>	</para></listitem><listitem><para>If <literal moreinfo="none" remap="tt">xfs</literal> is already properly installed, then you 
can tell it to reload, as described above, or restart 
it like this:
<screen format="linespecific">		/etc/rc.d/init.d/xfs restart</screen>	</para></listitem><listitem><para>After restarting <literal moreinfo="none" remap="tt">xfs</literal>, it's a good idea to restart your
X-session.</para></listitem></itemizedlist>
</para></sect3></sect2></sect1><sect1><title>Making Fonts Available To Ghostscript</title><para>To make fonts available to ghostscript, it suffices to tell ghostscript
where the files corresponding to a given font are located. The
file that needs to be edited is 
<literal moreinfo="none" remap="tt">/usr/share/ghostscript/version/Fontmap</literal>.
The format is very simple, almost immediately self evident on 
perusing it.</para><sect2 id="ghostscript"><title>Type 1

	</title><para>Adding Type 1 fonts is straightforward. Run <literal moreinfo="none" remap="tt">type1inst</literal> on the directory
containing the font. <literal moreinfo="none" remap="tt">type1inst</literal> will output a file called 
<literal moreinfo="none" remap="tt">Fontmap</literal>. Append this file to the ghostscript
<literal moreinfo="none" remap="tt">Fontmap</literal> file.</para></sect2><sect2><title>True Type
	</title><para>Adding truetype fonts is a little trickier, because we have to get the
name of the TrueType font. One way (brute force, alas) to do this is using 
the <literal moreinfo="none" remap="tt">ttf2pt1</literal> TrueType to Type 1 converter, and grabbing the font
name from the <literal moreinfo="none" remap="tt">afm</literal> ( there's got to be a more efficient way ! 
but this works, ugly as it is ). You do it like this:
<screen format="linespecific">		ttf2pt1 -A fontname - 2 ent /dev/null  |grep FontName</screen>	
Then you add an entry to the ghostscript <literal moreinfo="none" remap="tt">Fontmap</literal> file
in the correct format, eg
	some-font	(/usr/share/fonts/subdirectory/somefont.pbf);
	
Well, that works fine, but try doing it with 500 or so fonts.
This is the kind of thing that calls for a short perlscript:
<screen format="linespecific">#!/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 - 2ent/dev/null\" |" );
    while ( entRent )
    {
        if ( $_ =~ /^FontName/ )
        {
            s/^FontName\s*//;
            chomp;
            print "/" .  $_ . "    ($fontname);\n" ;
        }
    }
    close R;
}           </screen>	
<emphasis>You can 
<ulink url="http://pegasus.rutgers.edu/~elflord/font_howto/ttfontmap">download this script</ulink></emphasis>	</para><para>To set this script up, all you need to do is cut and paste it into
a file called <literal moreinfo="none" remap="tt">ttfontmap</literal>, and place the file somewhere
in your <literal moreinfo="none" remap="tt">PATH</literal> ( such as <literal moreinfo="none" remap="tt">/usr/bin</literal> ).
You run this script like this: 
<screen format="linespecific">	ttfontmap directory ent output_file</screen>	
where <literal moreinfo="none" remap="tt">directory</literal> is the directory containing the 
fonts. You are left with the file <literal moreinfo="none" remap="tt">outputentfile</literal> which you can append
to your ghostscript fontmap. Note: some will observe that you could 
just use 
	ttfontmap directory entent /usr/share/ghostscript/version/Fontmap
	
However, I advise against this ( what would happen if you typed ``ent'' instead of 
``entent''
? )</para></sect2><sect2><title>Using Ghostscript To Preview Fonts</title><para>Once you've made fonts available to ghostscript, you can preview them.
Do this by running the ghostscript interpreter on the file <literal moreinfo="none" remap="tt">prfont.ps</literal>
in your ghostscript installation, and after you start it, type:
	/Fontname DoFont
	
at the ghostscript font ( where <literal moreinfo="none" remap="tt">FontName</literal> is the ghostscript
name of the font you wish to preview ).
There are several other ways you can invoke <literal moreinfo="none" remap="tt">gs</literal>. For example,
if you want to create a PostScript file that you can look at in 
a nicer PostScript viewer such as <literal moreinfo="none" remap="tt">gv</literal>, you can use
	gs -sDEVICE=pswrite -sOutputFile=somefile.ps  prfont.ps
	
Having done this, you can also print your output file.</para></sect2></sect1><sect1><title>True Type to Type 1 Conversion</title><sect2><title>Why ?</title><para>or perhaps the right question to ask is ``why not ?'' The typical
Linux user has experienced a migration from Windows, and probably 
has an enormous collection of TrueType fonts. Many of these
fonts ( eg those that ship with MS Word and Corel's products ) 
are of fairly good quality. However, some Linux applications, such
as Star Office and LaTeX do not support TrueType fonts, but do support
Type 1 fonts.  <emphasis>update: it looks like Star Office can handle TrueType 
fonts, but I'm still trying to work out the details. At best, it involves
some fairly gruesome hacks.</emphasis>
This is a pity, because
with ghostscript support for TrueType, and TrueType font servers,
Linux has the infrastructure it needs to handle TrueType.</para></sect2><sect2><title>How ?</title><para>To convert your TrueType fonts into Type 1 fonts, go to
<ulink url="http://quadrant.netspace.net.au/ttf2pt1/">http://quadrant.netspace.net.au/ttf2pt1/</ulink> 
and get ttf2pt1. 
To convert a TrueType to a Type 1 font,
use the following syntax:
<screen format="linespecific">	ttf2pt1 -b file.ttf name</screen>	
Where <literal moreinfo="none" remap="tt">name</literal> is the name of the file corresponding to the new Type 1
font ( ie it's arbitrary. It's a good idea to make it the same as the ttf file. 
eg <literal moreinfo="none" remap="tt">ttf2pt1 -b foo.ttf foo</literal>.</para><para>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:
<screen format="linespecific">	for X in *.ttf; do ttf2pt1 -b $X ${X%%.ttf}; done</screen>
	
Alternatively, you can download the
<ulink url="http://pegasus.rutgers.edu/~elflord/font_howto/ttfutils-0.2.tar.gz">ttfutils</ulink>
package and use <literal moreinfo="none" remap="tt">ttf2type1</literal> for the conversions.
<screen format="linespecific">	ttf2type1 *.ttf</screen>	</para></sect2></sect1><sect1><title>WYSIWYG Publishing and Fonts</title><sect2><title>Introduction and Overview</title><para>Installing fonts for WYSIWYG publishing on Linux is a relatively
complex task. It typically involves three steps:

<itemizedlist><listitem><para>Make the font available to the X server</para></listitem><listitem><para>Make the font available to ghostscript</para></listitem><listitem><para>Make the font available to the application</para></listitem></itemizedlist>

The main reason for the complexity is that 
the <emphasis>font printing system</emphasis> ( ghostscript ) is unrelated 
to the <emphasis>screen font system</emphasis>. In a way, Linux's left hand
does not know what it's right hand is doing.
This problem is nontrivial to solve, because it is possible that 
printer fonts and display fonts reside on different machines, so there
is no guarantee that all fonts the XClient uses are printable.</para><para>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.</para></sect2><sect2><title>Applixware</title><para>There are two ways to install fonts into Applixware. One method 
involves using FontTastic, which is Applixware's ``private'' font
server. The other method involves editing Applixware's fontmap,
to use a font already installed on the system. Installing into the
font server is more convenient, but fonts installed in this manner may 
only be printed at 300 dpi.</para><sect3><title>FontTastic</title><para>Using FontTastic is the easy way to do it. To install new fonts
like this, simply do the following:

<orderedlist inheritnum="ignore" continuation="restarts"><listitem><para>Run Applixware as root</para></listitem><listitem><para>Click on the <emphasis>tools</emphasis> menu.</para></listitem><listitem><para>Choose ``Font Installer''</para></listitem><listitem><para>Check ``OK'' in the popup dialog</para></listitem><listitem><para>Click the ``Catalogs'' menu and choose ``create''</para></listitem><listitem><para>Fill in the <emphasis>catalog name</emphasis> box. It 
doesn't matter what you put there. For the rest of this example,
we'll assume it's called ``foobar''</para></listitem><listitem><para>Select your foobar catalog from the catalog manipulations 
list.</para></listitem><listitem><para>From the ``Services'' menu, select
``install fonts into -ent FontTastic font server''</para></listitem><listitem><para>Make sure catalog foobar is selected in the catalogs list,
then press the ``select files'' button.</para></listitem><listitem><para>Use the select files dialog to select the fonts you want to
install. Press ``OK'' when you've selected the files.
For example, if you want to select arial.ttf in 
the directory /usr/share/fonts/ttfonts/, you would type 
<emphasis>/usr/share/fonts/ttfonts</emphasis> in the ``Current Directory''
dialog, then select arial.ttf from the files dialog box, then click
``OK''. Note that you can select multiple files, but they all must
come from the same directory.</para></listitem><listitem><para>You can edit your list by checking on the different fonts in the
list box and possibly removing or renaming them.</para></listitem><listitem><para>When you're ready, click the ``install fonts'' button. Then click
``OK''.</para></listitem><listitem><para>Go to the ``services'' menu and choose ``update''. Check ``OK''
on the annoying modal dialog, then choose exit from the services menu.
Exit applix. </para></listitem><listitem><para>Congrats, you're done ! The new fonts will be available when you
restart Applix.</para></listitem></orderedlist>
</para></sect3><sect3><title>Using System Wide Fonts With Applixware</title><para>This method is more involved,  but produces better results. I recommend
that this method is used for fonts that are really important, and that 
you use a lot. There are a few steps to this:</para><sect4><title>Make the fonts available to X</title><para>This is explained <xref linkend="xfonts"></xref></para></sect4><sect4><title>Make the fonts available to ghostscript</title><para>This is explained in <xref linkend="ghostscript"></xref></para></sect4><sect4><title>Edit the fontmap.dir</title><para>This is the final step in making your fonts available to Applix, and 
also the most time consuming step. The file <emphasis>fontmap.dir</emphasis>
is in under the <emphasis>axdata/fontmetrics</emphasis> of your applix installation.
The purpose of this step is basically to tell applix which screen fonts
go with which outline fonts. This is in general a very nontrivial problem,
because the screen fonts are not always on the same computer that the 
application is installed.</para><para>We describe how to add  fonts to fontmap.dir. In this example, we
add the font Baskerville Italic.</para><para>
<orderedlist inheritnum="ignore" continuation="restarts"><listitem><para>First, we add a line that says 
FontRecord = Baskerville-Normal-Italic
In fact, the name we use in FontRecord is completely arbitrary.
However, the font record must be unique to the font. Because of
this, it's good practice to use the name that ghostscript
uses for the font. </para></listitem><listitem><para>Next, we a line that says
Family = Baskerville
The family name for a font is the name that appears 
in Applix's font selection menu. Typically, it is <emphasis>non-unique</emphasis>,
since bold, italic, roman and bold-italic variants of a font will
typically go under the same family.</para></listitem><listitem><para>If the font is either a bold, or italic variant, or both, we need to add the
following lines:
	Slant = 1 
	
if the font is italic, and
	Weight = 1 
	
if the font is bold.
If the font is bold <emphasis>and</emphasis> italic, we add both lines.
In this example, we need only add the line
	Slant = 1 
	</para></listitem><listitem><para>We add a line that looks like this:
	ScreenName = "-paradise-baskerville-medium-i-normal--0-0-0-0-p-0-iso8859-1"
	
The screen name is the name that the X-server uses for the font. 
We can list font names containing the string ``bask'' by typing
	xlsfonts|grep -i bask
	</para></listitem><listitem><para>Now we add a line that gives the name of the printer font:
PostScriptPrinterName = Baskerville-Normal-Italic</para></listitem><listitem><para>Next, we need to specify the location of the font metric file 
and the outline file
	MetricsFile = /usr/share/fonts/misc/baskvli.afm
	Type1FontFileName = /usr/share/fonts/misc/baskvli.pfb
	

If you are adding a TrueType file, you can use <literal moreinfo="none" remap="tt">ttf2pt1 </literal>
to generate an <literal moreinfo="none" remap="tt">afm</literal> file :
		ttf2pt1 -A foo.ttf - ent foo.afm
		
( or get the ttfutils package and use <literal moreinfo="none" remap="tt">ttf2afm</literal> )
Then you use something like this:
	MetricsFile = /usr/share/fonts/misc/foo.afm
	
Do <emphasis>not</emphasis> include a <literal moreinfo="none" remap="tt">Type1FontFileName</literal> directive --
let ghostscript take care of this.</para></listitem></orderedlist>
</para><para>That's it. Now after adding the whole family of fonts, you should 
have something like this:
<screen format="linespecific">	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     </screen></para><para>It is possible to do more with this configuration file. The file itself 
has a <emphasis>glossary</emphasis> which explains the format of the configuration
file.</para></sect4></sect3></sect2><sect2><title>Star Office</title><para>Here, we cover Star Office 5.0. The procedure with Star Office 5.1 
is similar,
but the utility is called <literal moreinfo="none" remap="tt">spadmin</literal>, not <literal moreinfo="none" remap="tt">psetup</literal>.
It's worth mentioning up front that 
<ulink url="http://www.mindspring.com/~john_mcl/adding_fonts.html">John McLaughlin's page</ulink>
is an excellent source on this issue, and it inspired most
of what follows.</para><para>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.</para><sect3><title>Backup Your Configuration Before you Start !</title><para>It's good to make a backup in case you inadvertantly hose your 
configuration. Modifying fonts will impact several files in the
<literal moreinfo="none" remap="tt">xp3</literal>.
You should definitely backup the file <literal moreinfo="none" remap="tt">xp3/psstd.fonts</literal>. 
I recommend going further and backing up the whole <literal moreinfo="none" remap="tt">xp3</literal>
directory. You can do this by cd-ing to your Star Office
directory, then using
<screen format="linespecific">	tar cvzf xp3.tgz xp3</screen>	
to create a backup. To restore a backup,
delete the <literal moreinfo="none" remap="tt">xp3</literal> directory and unpack the archive
<screen format="linespecific">	rm -rf xp3
	tar xvzf xp3.tgz</screen>
	</para></sect3><sect3><title>Adding Type 1 Fonts to Star Office</title><para>Adding Type 1 fonts to Star Office is relatively simple.
If you want to use your TrueType fonts with Star Office 5.0,
the best thing to do is convert them to Type 1 fonts, and then follow
the procedure outlined here. If you have Star Office 5.1, you 
might wish to use the proceedure for installing TrueType fonts
instead ( though it is somewhat more difficult ).
Firstly, do the usual thing -- make the font available to both X and 
ghostscript. Once this is done, the font can be installed into Star Office
using the <literal moreinfo="none" remap="tt">psetup</literal> tool. The procedure is as follows:

<orderedlist inheritnum="ignore" continuation="restarts"><listitem><para>As root, run psetup ( or spadmin if you have Star Office 5.1 )</para></listitem><listitem><para>Press the ``add fonts'' button. </para></listitem><listitem><para>The easiest thing to do after 
this is press the ``initialize font paths'' button. This puts a
list of all fonts in your X font path in the list box. </para></listitem><listitem><para>Choose 
the directory containing the font you wish to install ( it should
be in the box ), and then press ``OK''. </para></listitem><listitem><para>Click the ``convert all font metrics button''.</para></listitem></orderedlist>

That's it. You're done. You can exit ( or click ``OK'' until it exits ). 
When you restart Star Office, you will have the new fonts.</para></sect3><sect3><title>Adding TrueType Fonts to Star Office</title><para>Adding TrueType fonts to Star Office is 
nontrivial, but possible.
After some hard work, and long hours stareing at 
<ulink url="http://www.mindspring.com/~john_mcl/adding_fonts.html">John McLaughlin's page</ulink>
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:

<itemizedlist><listitem><para>Make the fonts available to X.</para></listitem><listitem><para>Make the fonts available to ghostscript.</para></listitem><listitem><para>You need to have <literal moreinfo="none" remap="tt">afm</literal> files for the fonts you wish to
add. Use 
<screen format="linespecific">	ttf2pt1 -A foo.ttf - ent foo.afm
	</screen>	
to create the <literal moreinfo="none" remap="tt">afm</literal> files.
Alternatively, you can get the </para></listitem><listitem><para><ulink url="http://pegasus.rutgers.edu/~elflord/font_howto/ttfutils-0.2.tar.gz">ttfutils</ulink>
package 
and use <literal moreinfo="none" remap="tt">ttf2afm</literal> The advantage of this 
is you can handle several at a time, eg 
<screen format="linespecific">	ttf2afm *.ttf</screen>	</para></listitem><listitem><para>Star Office needs <literal moreinfo="none" remap="tt">pfb</literal> files corresponding 
to each <literal moreinfo="none" remap="tt">ttf</literal> file. You can create them 
with the command
<screen format="linespecific">	touch foo.pfb</screen>	
Actually, Star Office only uses these files for printing purposes.
And by enterring the font in the PPD, thus duping Star Office into
thinking the fonts are inside your printer ( when they're actually
inside ghostscript's rendering system ), you get around needing to
use these files. Star Office just seems to require that the 
<literal moreinfo="none" remap="tt">pfb</literal> file exists to install the font.</para></listitem><listitem><para>	Now you can run <literal moreinfo="none" remap="tt">spadmin</literal> and install the font(s).</para></listitem><listitem><para>	
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, <emphasis>not</emphasis> the 
ghostscript font name. For example, if the font is 
<literal moreinfo="none" remap="tt">foobar.ttf</literal> and the corresponding <literal moreinfo="none" remap="tt">afm</literal> 
file is <literal moreinfo="none" remap="tt">foobar.afm</literal>, you use the name
``foobar'' for the font in the PPD file. The entry 
should look something like this:
<screen format="linespecific">*Font cloistrk: Standard "(001.002)" Standard ROM
	</screen>	</para></listitem></itemizedlist>
</para><para>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 <emphasis>not</emphasis> have the
fonts in the ROM, so while <literal moreinfo="none" remap="tt">gv</literal> 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:

<itemizedlist><listitem><para>Do not edit the PPD file.</para></listitem><listitem><para>Instead of using <literal moreinfo="none" remap="tt">touch foo.pfb</literal> to create empty <literal moreinfo="none" remap="tt">pfb</literal>
files, you need the <literal moreinfo="none" remap="tt">pfb</literal> 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 
<ulink url="ftp://ftp.dcs.ed.ac.uk/pub/jek/programs/ttfps.tar.gz">ttfps</ulink> to create the files. 
<screen format="linespecific">	ttfps foo.ttf foo.pfb
	</screen>		</para></listitem></itemizedlist>
</para><para>There are some gotchas. Sometimes, Star Office might not choose the
screen font you like. It is sometimes worth checking 
<literal moreinfo="none" remap="tt">xp3/psstd.fonts</literal> 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 <literal moreinfo="none" remap="tt">xp3</literal> directory.</para></sect3><sect3><title>Under the Hood</title><para>If you wish to install TrueType fonts in Star Office, you may need
to learn how Star Office handles things. When you run <literal moreinfo="none" remap="tt">spadmin</literal>
or <literal moreinfo="none" remap="tt">psetup</literal>, the following happens:

<itemizedlist><listitem><para>Star Office makes symbolic links to the <literal moreinfo="none" remap="tt">pfb</literal> outline 
files in your <literal moreinfo="none" remap="tt">xp3/pssoftfonts</literal> directory.</para></listitem><listitem><para>The <literal moreinfo="none" remap="tt">afm</literal> file is copied into the directory
<literal moreinfo="none" remap="tt">xp3/fontmetrics/afm/</literal></para></listitem><listitem><para>An entry is added to the <literal moreinfo="none" remap="tt">xp3/psstd.fonts</literal> file.
This file stores the names of all the screen fonts used by 
Star Office ( in particular, it maps the screen fonts to the outline
filenames ).</para></listitem></itemizedlist>
</para><para>This is why it's good to simply backup the whole <literal moreinfo="none" remap="tt">xp3</literal> directory --
it is the only convenient way to restore Star Office to a 
clean configuration.</para></sect3></sect2><sect2><title>Word Perfect</title><para>Nothing yet. 
<ulink url="http://www.rodsbooks.com/wpfonts/">Rod Smith's webpage</ulink>
is the definitive resource regarding installing fonts on Word Perfect.</para></sect2></sect1><sect1><title>Netscape</title><para>Perhaps the most notorious application as far as fonts are concerned is the
dreaded Netscape. However, there is a fairly simple procedure to attack 
Netscape font ugliness. The main problem is that Netscape wants to use  
75dpi fonts which is typically too small. You can fix this by specifying 
the appropriate X resources in your <literal moreinfo="none" remap="tt">.Xdefaults</literal> file:
<screen format="linespecific">	Netscape*documentFonts.sizeIncrement: 20
	Netscape*documentFonts.xResolution*iso-8859-1: 100
	Netscape*documentFonts.yResolution*iso-8859-1: 100</screen>
The number 100 can be chosen arbitrarily. For example, if you like your 
fonts really large, like I do, then you may want to use 150 instead.</para><para>The other essential tip with regard to addressing Netscape font ugliness is this --
get the Microsoft font pack. These fonts are widely used and it makes an enormous
difference if you have ( or don't have ) those fonts.</para></sect1><sect1><title>TeX / LaTeX</title><sect2><title>A Quick Primer on LaTeX/TeX fonts</title><para>Adding fonts to TeX and LaTeX is a somewhat complex procedure. However, like
a lot of things, it's easy if you know how to do it.
Some fonts are distributed in metafont format, and some in Type 1 format. 
Usually, the Type 1 formats are more easily available. However, metafont fonts have 
the distinct advantage that they can adjust their shape at different sizes,
while Type 1 and TrueType fonts at different point sizes are simply magnified
or reduced versions of precisely the same shape. The main reason why this feature
is desirable is that ideally, fonts should be ( relatively ) wider at smaller
sizes and narrower at larger sizes.</para><para>For this discussion, we focus on Type 1 fonts, since they are more widely
available, and more problematic to install.</para><para>Here's a quick primer on LaTeX fonts.	 LaTeX uses the following 
types of font files for handling Type 1 fonts:

<itemizedlist><listitem><para> <literal moreinfo="none" remap="tt">.pl</literal> -- property list. This is a human readable version of a 
tex font metric file.</para></listitem><listitem><para> <literal moreinfo="none" remap="tt">.vpl</literal> -- virtual property list. Human readable version of a 
virtual font file.</para></listitem><listitem><para> <literal moreinfo="none" remap="tt">.fd</literal> -- font definition. Used to define a <emphasis>family</emphasis> of
fonts.</para></listitem><listitem><para> <literal moreinfo="none" remap="tt">.tfm</literal>  -- tex font metric. This is a metric file, as explained
in the glossary. It is completely analogous to the <literal moreinfo="none" remap="tt">.afm</literal> files used
by Type 1 fonts. TeX needs the font metrics to properly layout the page.</para></listitem><listitem><para> <literal moreinfo="none" remap="tt">.vf</literal> -- virtual font. These files contain encoding details, and
act as interpreters. TeX treats them as fonts. For example, 
Imagine that there's some wacky font foobar-exp.pfb which consists 
of a few ( say 20 ) alternate characters, and there's a virtual font 
which uses a few of these alternate characters ( and it gets the
rest of the characters from font foobar.pfb ).
Dvips might say
``I want character 65 of virtual font foo.vf''. Dvips knows that 65 is always
an ``a'' in TeX's scheme. Then the virtual font maps TeX's request to 
a request for character 14 of the Type 1 font foobar.pfb ( which might 
be the alternate ``a'' in the Type 1 font foobar.pfb ). The virtual font 
mechanism is very flexible and allows fonts to be constructed from many 
different font files. This is useful when using fonts such as adobe's
``expert'' fonts.</para></listitem><listitem><para> <literal moreinfo="none" remap="tt">.pk</literal> -- a device dependent bitmap font. These are usually constructed
on an as-needed basis ( they are renderings of Type 1 and metafont fonts ). 
They are typically high resolution ( about 300-1200dpi ),
and are intended to be rendered on a printer. Because of their high resolution,
and the fact that each point size of each font requires a <literal moreinfo="none" remap="tt">.pk</literal> file,
they require a lot of disk space, so they are cached, but not stored.</para></listitem><listitem><para><literal moreinfo="none" remap="tt">.mf</literal> -- metafont files. Metafont is a graphics programming language
widely used for font design ( though it can also be used for graphics ). 
It has many advantages over TrueType and Type 1 schemes. However, it's main
weakness is that it is not as ubiquitous as TrueType or Type 1 ( and it is also
not terribly well suited to WYSIWYG publishing. Of course, this isn't a 
major disadvantage when TeX is your typesetting system. )
</para></listitem></itemizedlist>
</para><para>It's good to know your way around the TeX directory structure. Here are
the main directories you'll need to know about:

<itemizedlist><listitem><para> <literal moreinfo="none" remap="tt">$TEXMF/fonts</literal>	-- the main font directory</para></listitem><listitem><para> <literal moreinfo="none" remap="tt">$TEXMF/fonts/type1</literal> -- the type1 font directory</para></listitem><listitem><para> <literal moreinfo="none" remap="tt">$TEXMF/fonts/type1/foundry</literal> -- the directory for the shape files in a given foundry</para></listitem><listitem><para> <literal moreinfo="none" remap="tt">$TEXMF/fonts/type1/foundry/fontname</literal> -- contains the font called <emphasis>name</emphasis>. 
The <emphasis>name</emphasis> is usually plain English, and needn't follow TeX's cryptic
naming scheme for fonts.</para></listitem><listitem><para> <literal moreinfo="none" remap="tt">$TEXMF/fonts/afm/foundry/fontname</literal> -- the directory containing the <literal moreinfo="none" remap="tt">afm</literal>
files corresponding to the font <literal moreinfo="none" remap="tt">name</literal> belonging to foundry <literal moreinfo="none" remap="tt">foundry</literal>.</para></listitem><listitem><para>  <literal moreinfo="none" remap="tt">$TEXMF/fonts/tfm/foundry/fontname</literal> -- analogous to the <literal moreinfo="none" remap="tt">afm</literal> directory,
but contains <literal moreinfo="none" remap="tt">tfm</literal> files instead.</para></listitem><listitem><para><literal moreinfo="none" remap="tt">$TEXMF/fonts/vf/foundry/fontname</literal> -- similar to the above, but contains the virtual fonts.</para></listitem><listitem><para><literal moreinfo="none" remap="tt">$TEXMF/fonts/source/foundry/fontname</literal> -- similar to the above, but contains metafont files.</para></listitem><listitem><para><literal moreinfo="none" remap="tt">$TEXMF/dvips/config/psfonts.map</literal> -- fontmap file for dvips. This file is similar
in both function and format to ghostscript's Fontmap file.</para></listitem><listitem><para><literal moreinfo="none" remap="tt">$TEXMF/tex/latex/psnfss</literal> -- this is where all the font definition files go.</para></listitem></itemizedlist>
</para></sect2><sect2><title>Adding Type 1 fonts</title><sect3><title>Naming the fonts</title><para>First, you need to appropriately name your fonts.
See the fontinst documentation on your system for instructions 
on how to name fonts ( it should be fontinst subdirectory of the
directory containing your tetex documentation ).
To make a long story very short, the naming scheme is 
<literal moreinfo="none" remap="tt">FNWentVentEentnent</literal> where:

<itemizedlist><listitem><para>F is a one-letter abbreviation for the foundry ( m = monotype, p = adobe, 
b = bitstream, f = free )</para></listitem><listitem><para>N is a two letter abbreviation for the font name 
( for example, ag = ``avant garde'' )</para></listitem><listitem><para>W is the font weight ( r = regular, b = bold, l = light d = demibold )</para></listitem><listitem><para>V is an optional slope variant ( i = italic , o = oblique )</para></listitem><listitem><para>E is an abbreviation for the encoding ( almost always <literal moreinfo="none" remap="tt">8a</literal> which is 
adobe standard encoding ).</para></listitem><listitem><para>N is an optional width variant ( n = narrow )</para></listitem></itemizedlist>

For example, the font Adobe Garamond demibold is <literal moreinfo="none" remap="tt">pgad8a</literal>.</para></sect3><sect3><title>Creating the virtual fonts and tex font metrics</title><para>Now you can run <literal moreinfo="none" remap="tt">fontinst</literal> as follows:
	latex `kpsewhich fontinst.sty`
	
then you type at the prompt:
	\latinfamily{font_name}{}\bye
	
where <literal moreinfo="none" remap="tt">fontentname</literal> is the first three letters of your 
font file name ( for example, <literal moreinfo="none" remap="tt">pad</literal> for adobe garamond ).
Now <literal moreinfo="none" remap="tt">fontinst</literal> will generate a number of files -- 
font description files, property list files and virtual property
list files. It also generates a lot of <literal moreinfo="none" remap="tt">.mtx</literal> files. These
are created by <literal moreinfo="none" remap="tt">fontinst</literal>, but you don't need to use them.
You need to convert the property lists and virtual property lists
to metrics and virtual fonts. This is done using the utilities 
<literal moreinfo="none" remap="tt">vptovf</literal> and <literal moreinfo="none" remap="tt">pltotf</literal>.
	for X in *.pl; do pltotf $X; done
	for X in *.vpl; do vptovf $X; done
	
Then remove the old <literal moreinfo="none" remap="tt">vpl</literal>, <literal moreinfo="none" remap="tt">pl</literal> and <literal moreinfo="none" remap="tt">mtx</literal> files.</para></sect3><sect3><title>Configure dvips</title><para>You will need to edit your dvips config file, <literal moreinfo="none" remap="tt">psfonts.map</literal>.
The best way to explain the format of the file is to give an example.
<screen format="linespecific">	marr8r          ArialMT ent8r.enc entfarr8a.pfa
	marbi8r         Arial_BoldItalicMT ent8r.enc entfarbi8a.pfa
	marb8r          Arial_BoldMT ent8r.enc entfarb8a.pfa
	marri8r         Arial_ItalicMT ent8r.enc entfarri8a.pfa
	marr8rn         Arial_Narrow ent8r.enc entfarr8an.pfa</screen>	
The <literal moreinfo="none" remap="tt">8r.enc</literal> is simply there to inform dvips of the encoding scheme 
used ( in all our examples, it's 8r, because of the way <literal moreinfo="none" remap="tt">fontinst</literal> 
constructs the virtual fonts ). The leftmost column is the font name TeX
uses. The second column is the real name of the font, which is hardcoded
into the font file ( this name can be 
deduced by opening the <literal moreinfo="none" remap="tt">afm</literal> file in a text editor, and looking 
for the <literal moreinfo="none" remap="tt">FontName</literal> directive ). The last column is the filename 
of the shape file corresponding with the font. It is not necessary to
provide a directory path -- tex knows where to look.</para></sect3><sect3><title>Test the font</title><para>Try running latex on a document like this:
\documentclass{article}
\begin{document}
	\usefont{T1}{pga}{m}{n}\selectfont
	\huge
	Testing a new font \dots the quick red fox jumped over the lazy brown dogs
\end{document} 
	 
where you replace <literal moreinfo="none" remap="tt">pga</literal> with the outline of your font.
If this works, you are almost done. All you have to do now is put all the 
files in the right directories ( as explained in the primer ), then 
run 
	 texconfig rehash
	 
so that tex can update the directory lists.</para></sect3><sect3><title>Create a .sty file</title><para>You may want to create a .sty file so that you can more easily use 
fonts. Use the files in <literal moreinfo="none" remap="tt">$TEXMF/tex/latex/psnfss</literal> as a template.</para></sect3></sect2></sect1><sect1><title>Getting Fonts For Linux</title><sect2><title>True Type</title><sect3><title>Commercial Software
	</title><para>True type fonts are very
easy to come by, and large amounts of them are typically included
in packages like Microsoft Word and Word Perfect. Getting Word 
Perfect is an easy way to get an enormous amount of fonts ( and 
if you're really cheap, you could buy a legacy version of Word Perfect for 
windows. The fonts on the CD are readable. ) </para></sect3><sect3><title>Microsoft's Font Download
	</title><para>Microsoft have also made several TrueType fonts available. The
<literal moreinfo="none" remap="tt">.exe</literal> file is simply an archive, you can extract it 
using <literal moreinfo="none" remap="tt">unzip</literal>.
You can get them from
<ulink url="http://www.microsoft.com/truetype/fontpack/win.htm">the download site</ulink></para></sect3><sect3><title>Luc's Webpage
	</title><para><ulink url="http://cgm.cs.mcgill.ca/~luc/originalfonts.html">Luc Devroye's webpage</ulink>
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''.</para></sect3><sect3><title>Web sites with truetype fonts
	</title><para>There are several web sites offering freely available downloadable
fonts. For example, 
<ulink url="http://www.freewareconnection.com/fonts.html">the freeware connection</ulink> has links to a number of archives.</para></sect3><sect3><title>Foundries
	</title><para>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 
<ulink url="http://www.buyfonts.com">buyfonts</ulink>.
Please read the section on ethics before you buy cheap fonts.</para></sect3></sect2><sect2><title>Type 1 Fonts and Metafont</title><sect3><title>Dealing With Mac and Windows Formats</title><para>Many foundries ship fonts with Windows and Mac users in mind.
This can sometimes pose a problem. Typically, the ``Windows fonts''
are fairly easy to handle, because they are packed in a <literal moreinfo="none" remap="tt">zip</literal>
file. The only work to be done is converting the <literal moreinfo="none" remap="tt">pfm</literal> file
to and <literal moreinfo="none" remap="tt">afm</literal> file ( using <literal moreinfo="none" remap="tt">pfm2afm</literal> ).</para><para>Macintosh fonts are more problematic, because they are typically 
made available in <literal moreinfo="none" remap="tt">.sit.bin</literal> format -- stuffit archives. 
Unfortunately, there is no tool for Linux that can unpack stuffit archives
created with the newer version of stuffit.
The only way to do it is run Executor ( Mac emulator ), or try running 
stuffit in dosemu or Wine.
Once the <literal moreinfo="none" remap="tt">sit.bin</literal> file is unpacked, the Macintosh files can 
be converted using <literal moreinfo="none" remap="tt">t1unmac</literal> which comes with the 
<literal moreinfo="none" remap="tt">t1utils</literal> package.</para><para>Unfortunately, some vendors only ship Type 1 fonts in Macintosh format 
( stuffit archives ). However, according to font expert 
<ulink url="http://cgm.cs.mcgill.ca/~luc/">Luc Devroye</ulink>, all major 
foundries make Type 1 fonts available for Mac and Windows.</para></sect3><sect3><title>Free Stuff
	</title><para><ulink url="http://www.ctan.org">ctan</ulink>
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 <ulink url="http://www.bluesky.com">Bluesky</ulink>
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. )</para><para><ulink url="http://cgm.cs.mcgill.ca/~luc/originalfonts.html">Luc Devroye's webpage</ulink>
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''.</para><para>URW have released the standard PostScript fonts resident in most 
printers to the public domain. These fonts are quite good.</para><para>The 
<ulink url="ftp://ftp.cdrom.com/pub/os2/fonts/">Walnut Creek Archive</ulink>
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 
<ulink url="http://www.winsite.com/win3/fonts/atm/">Winsite</ulink>
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. )</para><para><ulink url="http://cgm.cs.mcgill.ca/~luc/">Luc Devroye's webpage</ulink>
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.</para></sect3><sect3><title>Commercial Fonts</title><sect4><title>Value vs Premium: Why Should I buy Premium Fonts ?</title><para>So you're wondering -- why do some fonts cost a lot and others 
are cheap ?
These fonts are the ``standard PostScript
fonts'' resident in most PostScript printers. Also the famous 
Why should I buy the more expensive ones ?
My take on it is that for a casual user, the value fonts 
( such as those on the Bitstream CD ) are just
fine. However, if you're using the fonts for ``real work'', or 
you're just a hard core font junkie, then the better quality 
fonts are a must-have -- and most of the quality fonts are either
free ( for example, Computer Modern ), or they are upmarket commercial
fonts.</para><para>The advantage of the cheaper fonts is self evident -- they are cheaper.
The quality fonts also have their advantages though.	

<itemizedlist><listitem><para><emphasis>Ethical issues:</emphasis> The cheaper fonts
are almost always ripoffs. Type design takes a long time and 
and experienced designer. Fonts that are sold for less than $1-
per font were almost certainly not designed by the vendor.
CDs with insane quantities of fonts on the are almost always 
ripoffs  ( the possible exceptions being collections from major
foundries that cost thousands of dollars ).
Usually, the ripoffs lack the quality of fonts from respectable
founries.</para></listitem><listitem><para><emphasis>Completeness:</emphasis> The higher quality fonts ( notably 
from Adobe ) come in several variants, with some nice supplements to
provide the user with a more complete font family. 
There are often bold, italic,
and demibold variants, swash capitals, small caps,
old style figures, and extra
ligatures to supplement the font. More recently, Adobe have a multiple
master technology which gives the user ( almost ) infinite variation 
within one font family.</para></listitem><listitem><para><emphasis>Quality:</emphasis> A lot of the freely available fonts or the cheap
ripoffs lack fairly essential features such as kerning pairs and
decent ligatures. They are basically cheap copies. In contrast,
reputable designers take a lot of trouble to study the original
design, and rework it to the best of their ability.</para></listitem><listitem><para><emphasis>Authenticity:</emphasis> The person who designed Adobe Garamond
( Robert Slimbach ) actually studied the original designs of
Claude Garamond. In fact reputable foundries always 
carefully research their designs, rather than just swiping something
off the net, and modifying it with Fontographer.</para></listitem></itemizedlist>
</para></sect4><sect4><title>Value</title><para>
<itemizedlist><listitem><para>An excellent place to go for a CD packed with several Type 1 
fonts of reasonable quality is <ulink url="http://www.bitstream.com">Bitstream</ulink>. 
Bitstreams more noted products include their 
<ulink url="http://www.bitstream.com/products/world/font_cd/bits_collection.html">250 font CD</ulink>
and their
<ulink url="http://www.bitstream.com/products/world/font_cd/500_cd.html">500 font CD</ulink>
( 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.</para></listitem><listitem><para>
<ulink url="http://www.matchfonts.com/">Matchfonts</ulink> 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.</para></listitem><listitem><para>	
<ulink url="http://www.buyfonts.com">EFF</ulink>
sell TrueType fonts for $2- per hit. 
They also have ``professional range'' PostScript and TrueType
fonts for $16- per typeface.</para></listitem></itemizedlist>
</para></sect4><sect4><title>Premium
	</title><para>
<itemizedlist><listitem><para>Adobe have several
high quality,  fonts available at 
<ulink url="http://www.adobe.com/type/">Adobe's type website</ulink>.
Some of these are expensive, but they have several
more affordable bundles -- see 
<ulink url="http://www.adobe.com/type/collections.html">Adobe Type Collections</ulink>.
Adobe have some of the most complete font families on the market,
for example, 
<ulink url="http://www.adobe.com/type/browser/P/P_912.html">Garamond</ulink>, 
<ulink url="http://www.adobe.com/type/browser/P/P_180.html">Caslon</ulink>, 
and their
<ulink url="http://www.adobe.com/type/browser/C/C_4e.htm">multiple masters</ulink>
( Myriad and Minion, used on their website are among the nicer 
of their multiple masters. )</para></listitem><listitem><para><ulink url="http://www.bertholdtypes.com">Berthold Types Limited</ulink>
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.</para></listitem><listitem><para>ITC develop several
quality fonts ( including some of the ones Corel ships with 
their products ) at
<ulink url="http://www.itcfonts.com">http://www.itcfonts.com</ulink>
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.</para></listitem><listitem><para><ulink url="http://www.linotypelibrary.com">Linotype</ulink>
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. )</para></listitem><listitem><para><ulink url="http://www.monotype.com">Monotype</ulink>
develop most of the fonts shipped with Microsoft
products. One of the older and well respected foundries.</para></listitem><listitem><para>	
<ulink url="http://www.portal.ca/~tiro/">Tiro Typeworks</ulink>
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..</para></listitem></itemizedlist>
</para></sect4><sect4><title>More Links
	</title><para>For links to a bunch of other foundries, 
see <ulink url="http://cgm.cs.mcgill.ca/~luc/">Luc Devroye's page</ulink></para></sect4></sect3></sect2></sect1><sect1><title>Useful Font Software for Linux</title><para>There are several font packages for Linux. Many of them are essential.

<itemizedlist><listitem><para>chkfontpath is a utility for manipulating the <literal moreinfo="none" remap="tt">xfs</literal> configuration
file.</para></listitem><listitem><para><ulink url="http://www.debian.org/~fog/dtm/">DTM -- the Definitive Type Manager</ulink>
is a global font management tool. This is a developer's release.</para></listitem><listitem><para><ulink url="http://www.tug.org/applications/fontinst/index.html">fontinst</ulink> is a LaTeX package designed to simplify the installation
of Type 1 fonts into LaTeX.
</para></listitem><listitem><para><ulink url="http://www.freetype.org">Freetype</ulink>
is a TrueType library that comes with most Linux distributions</para></listitem><listitem><para><ulink url="http://www.cs.wisc.edu/~ghost/">Ghostscript</ulink>
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 )</para></listitem><listitem><para><ulink url="http://pegasus.rutgers.edu/~elflord/font_howto/pfm2afm.tgz">pfm2afm</ulink>
is a utility for converting windows <literal moreinfo="none" remap="tt">pfm</literal> font 
metric files into <literal moreinfo="none" remap="tt">afm</literal> 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.</para></listitem><listitem><para><ulink url="http://www.lcdf.org/~eddietwo/type/">mminstance and t1utils</ulink> are two packages for handling Type 1 fonts.
mminstance is for handling Adobe's 
<ulink url="http://www.adobe.com/type/browser/C/C_4e.html">multiple master</ulink> Type 1 fonts.
t1utils is a suite of utilities for converting between the different 
Type 1 formats.
</para></listitem><listitem><para><ulink url="http://quadrant.netspace.net.au/ttf2pt1/">ttf2pt1</ulink>
is a TrueType to Type 1 font converter. It is useful if you 
have applications that require Type 1 fonts.</para></listitem><listitem><para><ulink url="ftp://ftp.dcs.ed.ac.uk/pub/jek/programs/ttfps.tar.gz">ttfps</ulink> converts <literal moreinfo="none" remap="tt">.ttf</literal> TrueType font files 
into Type42 files.
</para></listitem><listitem><para><ulink url="http://pegasus.rutgers.edu/~elflord/font_howto/ttfutils-0.2.tar.gz">ttfutils</ulink>
A package of utilities for handling TrueType fonts. This
package requires <literal moreinfo="none" remap="tt">ttf2pt1</literal>. Useful if not essential.
</para></listitem><listitem><para><ulink url="ftp://ftp.metalab.unc.edu/pub/Linux/X11/xutils/">type1inst</ulink>
is an essential package for installing Type 1 fonts. It greatly 
simplifies the installation.</para></listitem><listitem><para><ulink url="ftp://ftp.metalab.unc.edu/pub/Linux/X11/fonts/">xfstt</ulink>
is a TrueType font server for Linux. It's useful, but <literal moreinfo="none" remap="tt">xfs</literal>
is probably a better choice.</para></listitem><listitem><para><ulink url="http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/">xfsft</ulink> The xfsft font server. Note that this is included 
in <literal moreinfo="none" remap="tt">xfs</literal>.</para></listitem><listitem><para><ulink url="http://hawk.ise.chuo-u.ac.jp/student/person/tshiozak/x-tt/">x-tt</ulink> is a font server designed to handle Korean and Japanese
fonts.</para></listitem></itemizedlist>
</para></sect1><sect1><title>Ethics and Licensing Issues Related to Type</title><para>Font licensing is a very contentious issue. While it is true 
that there is a wealth of <emphasis>freely available</emphasis> fonts, the chances 
are that the fonts are ``ripoffs'' in some sense, unless they come 
with a license indicating otherwise. 
The issue is made more confusing by intellectual property laws regarding
typefaces. Basically, in the USA, font <emphasis>files </emphasis> are protected 
by copyright, but <emphasis>font renderings</emphasis> are not. In other words,
it's illegal to redistribute fonts, but it's perfectly legal to 
``reverse-engineer'' them by printing them out on graph paper and 
designing the curves to match the printout. Reverse engineered fonts
are typically cheap and freely available, but of poor quality.
These fonts, as well as pirated fonts are often distributed on 
very cheap CDs containing huge amounts of fonts.
So it's not always easy to tell if a font is reverse engineered, or 
simply pirated. This situation creates an enormous headache for 
anyone hoping to package free fonts for Linux.</para><para>Perhaps one of the most offensive things about the nature of 
font piracy is that it artificially debases the value of the
work that type designers do. Pirated fonts invariably are bundled
en masse onto these one zillion font CDs, with no due credit given
to the original designers. In contrast, what is commendable 
about several 
legitimate font foundries is that they credit their designers.</para><para>There are many differing opinions on this issue. See 
<ulink url="http://www.typeright.org">typeright</ulink> for 
an explanation of the case in favour of intellectual property rights.
Also, see <ulink url="http://www.ssifonts.com/">Southern Software, Inc</ulink>
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. </para><para><ulink url="http://www.faqs.org/faqs/fonts-faq/part2/">The comp.fonts FAQ</ulink>
also discusses the issues of fonts and intellectual property,
as does 
<ulink url="http://cgm.cs.mcgill.ca/~luc/">Luc Devroye's homepage</ulink>. These 
references are somewhat less extreme in their views.</para></sect1><sect1><title>References</title><sect2><title>Font Information</title><para>
<itemizedlist><listitem><para><ulink url="http://www.rodsbooks.com/">Rod Smith's homepage</ulink>
contains a wealth of information about using fonts and printers 
with Applixware and Word Perfect.</para></listitem><listitem><para><ulink url="http://www.mindspring.com/~john_mcl/adding_fonts.html">John McLaughlin's page</ulink>
discusses setting up fonts with Star Office</para></listitem><listitem><para><ulink url="http://www.geocities.com/SiliconValley/5682/postscript.html">Jim Land's homepage</ulink>
contains a lot of links to sites on PostScript and fonts.</para></listitem><listitem><para><ulink url="http://www.faqs.org/faqs/fonts-faq/">The comp.fonts FAQ</ulink>
is the definitive font FAQ.</para></listitem><listitem><para><ulink url="http://cgm.cs.mcgill.ca/~luc/">Luc Devroye's homepage</ulink>
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.</para></listitem><listitem><para><ulink url="http://www.linuxdoc.org/HOWTO/mini/FDU.html">The Font Deuglification HOWTO</ulink>
discusses TrueType fonts under Linux. This 
is the clear winner of the ``TrueType'' HOWTOs.
An excellent 
source of information.</para></listitem><listitem><para><ulink url="http://www.dimensional.com/~bgiles/debian-tt.html">TrueType Fonts in Debian mini-HOWTO</ulink>
discusses installing TrueType in Debian.
A must-read for Debian users.
Also worth reading if you have <emphasis>any</emphasis> distribution
that doesn't have the version of <literal moreinfo="none" remap="tt">xfs</literal> with TrueType
support.</para></listitem><listitem><para><ulink url="http://www.moisty.org/~brion/linux/TrueType-HOWTO.html">The (preliminary) True Type HOWTO</ulink>
-- an incomplete HOWTO dated June 1998. Included in this
list for completeness.</para></listitem><listitem><para><ulink url="http://www.sfu.ca/~yzhang/linux/truetype/">TrueType for XFree86 Mini-HOWTO</ulink>
-- a slightly dated HOWTO. Only applicable to Redhat 5.x</para></listitem></itemizedlist>
</para></sect2><sect2><title>Postscript and Printing Information</title><para>
<itemizedlist><listitem><para><ulink url="http://www.adobe.com/print/postscript/main.html">Adobe's Postscript page</ulink>
is the definitive site on the PostScript standard.</para></listitem><listitem><para><ulink url="http://www.cs.wisc.edu/~ghost/">Ghostscript's home page</ulink>
has a lot of information, and all the latest printer drivers.</para></listitem><listitem><para><ulink url="http://www.geocities.com/SiliconValley/5682/postscript.html">Jim Land's homepage</ulink>
contains a lot of links to sites on PostScript and fonts.</para></listitem><listitem><para><ulink url="http://www.hex.net/~cbbrowne/printing.html">Christopher Browne's Printing FAQ</ulink>
</para></listitem></itemizedlist>
	</para></sect2></sect1><sect1><title>Glossary</title><para>
<itemizedlist><listitem><para><emphasis remap="bf">afm</emphasis> 
Stands for <emphasis remap="bf">Adobe Font Metric</emphasis>. These files store information about
the width and spacing associated with the font, as opposed to information
about the font shape.
</para></listitem><listitem><para><emphasis remap="bf">anti-aliasing</emphasis>
also referred to as font smoothing is a technique
used to render fonts on low resolution devices ( such as a monitor ). 
The problem with rendering fonts is that the fonts consist of outlines,
but the device renders in dots. The obvious way to render a font is 
to color black any pixel inside the outline, and leave all other dots. 
The problem with this is that it doesn't adequately address the pixels that
are on the outline. A smarter algorithm would be to color the boundary pixels
gray. Anti-aliasing essentially involves doing this.
</para></listitem><listitem><para><emphasis remap="bf">bdf</emphasis> fonts are a variety of bit-mapped fonts that may be 
used with X.
</para></listitem><listitem><para><emphasis remap="bf">bitmap fonts</emphasis>
These fonts are simply a collection of dots. Each character of 
the font is stored as a dot matrix. Because of this, bitmap fonts 
are device dependent, so you can't use the same bitmap fonts on 
a screen and a printer. Examples of bitmap screen fonts include 
.pcf and .bdf fonts used by X. Examples of printer bitmap 
fonts include TeX's PK fonts.
</para></listitem><listitem><para><emphasis remap="bf">didone</emphasis> see modern.
</para></listitem><listitem><para><emphasis remap="bf">DPI</emphasis>
Dots Per Inch. Monitors typically display at 75-100 DPI, while 
modern printers vary from 300-1200 DPI
</para></listitem><listitem><para><emphasis remap="bf">expert fonts</emphasis> are collections of additional characters
that supplement a font. They include small caps fonts, ornaments,
extra ligatures, and variable width digits. Many of Adobe's fonts 
have expert fonts available.
</para></listitem><listitem><para><emphasis remap="bf">font server</emphasis>
a background program that makes fonts available to XFree86.
</para></listitem><listitem><para><emphasis remap="bf">glyph</emphasis> A glyph is a fancy word for a shape. It is a component
that makes up an outline font. For example, the dot on the letter
``i'' is a glyph, as is the vertical line, as are the serifs. Glyphs
determine the shape of the font.
</para></listitem><listitem><para><emphasis remap="bf">kerning</emphasis> In variable width fonts, different pairs of characters 
are spaced differently. The font metric files store information regarding 
spacing between pairs of characters, called <emphasis remap="bf">kerning pairs</emphasis>.
</para></listitem><listitem><para><emphasis remap="bf">ligature</emphasis> A ligature is a special character that is used
to represent a sequence of characters. This is best explained by example 
-- when the letter fi are rendered, the dot on the ``i'' collides
with the ``f'', and the serif on the top left of the i can also 
collide with the horizontal stroke of the f. The fi ligature is a 
single character that can be used in the place of a single f followed
by a single i. There are also ligatures for fl, ffi, and ffl. 
Most fonts only include the fi and fl ligatures. The other ligatures
may be made available in an <emphasis remap="bf">expert font</emphasis>.

</para></listitem><listitem><para><emphasis remap="bf">metafont</emphasis> 
A graphics language used for creating fonts. Metafont has a lot of nice
features, the main one being that fonts created with metafont need not
just scale linearly. That is, a 17 point computer modern font 
generated by metafont is not the same as a magnified 10 point 
computer modern font. Prior to Adobe's multiple master technology,
metafont was unique with respect to having this feature.
Metafonts main advantage is that it produces high quality fonts. 
The disadvantage is that generating bitmaps from the outline fonts 
is slow, so they aren't feasible 
for WYSIWYG publishing.
</para></listitem><listitem><para><emphasis remap="bf">metric</emphasis> this stores information about how much space a font 
takes up. A font metric is like a box that one can embed the font in. Font 
metrics are essential for the purpose of laying out fonts on a page, while the 
font shape itself is not. So typically, variable width fonts have metric 
information as well as shape information. The metric also includes kerning 
information.
</para></listitem><listitem><para><emphasis remap="bf">modern</emphasis> fonts are fonts based on designs developed in the
19th century or later. The moderns have a solid appearance due to 
their vertical stress. They tend to have more ``character'' or 
``attitude'' than the old styles and transitionals, but still carry
a certain amount of dignity and formality.
They are not suited for writing long passages, but they are useful
for adding character to a piece of writing.
Bodoni is a notable modern typeface.
</para></listitem><listitem><para><emphasis remap="bf">old style</emphasis> fonts are a traditional class of typeface. 
The old style fonts are based on designs from as far back as the late
15th century. Old style fonts are great for writing long documents
( such as books ). While the old style fonts are designed in the 
tradition of the earlier designers, some of them were designed 
quite recently. Notably, the face <emphasis remap="bf">Goudy Old Style</emphasis> was
designed by Goudy in the early 20th century. Notable old style
faces include Goudy Old Style, Garamond, and Caslon.
</para></listitem><listitem><para><emphasis remap="bf">pcf</emphasis> fonts are bit-mapped fonts used by X.
</para></listitem><listitem><para><emphasis remap="bf">PostScript</emphasis> is a programming language designed for page description.
Postscript was a trademark of it's inventor, adobe. However, it is also an 
ISO standard. Postscript needs an 
interpreter to render it. This can be done 
via a program on the computer, such as ghostscript, or it can be interpreted 
by some printers.
</para></listitem><listitem><para><emphasis remap="bf">serif</emphasis> fonts are fonts with 
little hooks ( called serifs ) on the ends of the font.
the serifs usually help make the font more readable. 
However, serifs are quite
difficult to render on low resolution devices, especially at small font 
sizes ( because they are a fine detail ), so it is often true 
that at small sizes on low resolution devices, sans serif fonts 
( such as Microsoft's Verdana ) prove more readable. Another issue
is that there are sans serif fonts ( like the moderns ) that are
not designed for writing long documents.
</para></listitem><listitem><para><emphasis remap="bf">sans serif</emphasis> fonts are fonts without serifs ( sans is French 
for ``without'' ). These fonts have a stark appearance, and are well
suited for writing headlines. While textbook typography mandates that 
serif fonts be used just for headlines, they can have other uses. 
There are sans serif fonts designed for readability as opposed to
impact.
Short punchy documents that are skimmed ( such as catalogues and 
marketting brochures ) may use them, and recently, Microsoft have made
available the Verdana font which is designed for readability at small
sizes on low resolution devices.
Well known sans serif fonts include Lucida Sans, MS Comic Sans,
Avant Garde, Arial, Verdana, Century Gothic.
</para></listitem><listitem><para><emphasis remap="bf">slab serif</emphasis> fonts are a certain class of font whose serifs
look like slabs ( eg flat lines or blocks ) and not hooks.
Slab serif fonts are <emphasis remap="bf">often</emphasis>, but not always very readable.
Because the serifs are simple and strong, they give one the feeling 
that they have been punched into the page. 
Well known examples of slab serifs are Clarendon, New 
Century Schoolbook, and Memphis.
</para></listitem><listitem><para><emphasis remap="bf">transitional</emphasis> fonts are fonts that are based on more 
recent designs than the old style fonts. many of the transitional 
fonts have good readability. Notable transitionals include Baskerville,
and Times Roman.
</para></listitem><listitem><para><emphasis remap="bf">Type 1</emphasis> is a type of font designed by Adobe. These fonts are
well supported by almost all linux applications, because they have been
supported by the X server architecture and the PostScript standard for
a long time. Postscript fonts are distributed in many different 
formats. Typically, a UNIX PostScript font is distributed as
an <literal moreinfo="none" remap="tt">afm</literal> ( adobe font metric ) file, and an outline file, which is 
usually a <literal moreinfo="none" remap="tt">.pfb</literal> ( printer font binary ) or 
<literal moreinfo="none" remap="tt">.pfa</literal> ( printer font ascii ) file. The outline file contains 
all the glyphs, while the metric file contains the metrics.
</para></listitem><listitem><para><emphasis remap="bf">type3</emphasis> fonts are similar to Type 1. The file extensions
are similar to Type 1 fonts ( they are distributed as <literal moreinfo="none" remap="tt">pfa</literal> and
<literal moreinfo="none" remap="tt">afm</literal> files ), but they are not supported by X, and because
of this, there are not very many linux applications which support them.
</para></listitem></itemizedlist>
</para></sect1></article>

