mirror of https://github.com/tLDP/LDP
2123 lines
86 KiB
Plaintext
2123 lines
86 KiB
Plaintext
<!doctype linuxdoc system>
|
|
<article>
|
|
<title>Font HOWTO</title>
|
|
<author>
|
|
Donovan Rebbechi,
|
|
<url name="elflord@panix.com"
|
|
url="mailto:elflord@panix.com">
|
|
</author>
|
|
<toc>
|
|
<sect>Introduction
|
|
<sect1>The Location of This Document
|
|
<p>
|
|
This document is located at
|
|
<url name="my webpage"
|
|
url="http://pegasus.rutgers.edu/~elflord/font_howto">
|
|
|
|
</p>
|
|
<sect1>Rationale
|
|
<p>
|
|
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.
|
|
</p>
|
|
<sect1>Credits and Acknowledgements
|
|
<p>
|
|
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 construtive comments.
|
|
</p>
|
|
|
|
<sect>Fonts 101 -- A Quick Introduction to Fonts
|
|
<sect1>Types of fonts
|
|
|
|
<sect2>Bitmap Fonts
|
|
<p>
|
|
A bitmap is a matrix of dots. Bitmap fonts are represented in precisely
|
|
this way -- as matrices of dots. Because of this, they are
|
|
<em>device dependent</em> -- they are only useful at a particular
|
|
resolution. A 75 DPI screen bitmap font is still 75 DPI on your 1200 DPI
|
|
printer.
|
|
</p>
|
|
<p>
|
|
There are two types of bitmap fonts -- bitmap printer fonts, such as
|
|
the <tt>pk</tt> fonts generated by dvips, and bitmap screen fonts,
|
|
used by X and the console. The bitmap screen fonts typically have
|
|
a <tt>bdf</tt> or <tt>pcf</tt> 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.
|
|
</p>
|
|
|
|
<sect2>Type1 Fonts
|
|
<p>
|
|
The Type1 font standard was devised by Adobe, and Type1 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.
|
|
</p>
|
|
<p>
|
|
Typically, a UNIX Type1 font is distributed as an <tt>afm </tt>
|
|
( adobe font metric ) file, and an outline file, which
|
|
is usually a <tt>pfb</tt> ( printer font binary ) or
|
|
<tt>pfa</tt> ( printer font ascii )
|
|
file. The outline file
|
|
contains all the glyphs, while the metric file
|
|
contains the metrics.
|
|
</p>
|
|
<p>
|
|
Type 1 fonts for other platforms may be distributed in different
|
|
formats. For example, postscript fonts for windows often use a different
|
|
format ( <tt>pfm</tt> ) for the metric file.
|
|
</p>
|
|
<sect2>Type3 fonts
|
|
<p>
|
|
These fonts are distributed in a similar manner to Type1 files --
|
|
in groups of <tt>afm</tt> font metrics, and <tt>pfa</tt> files.
|
|
While they are supported by the postscript standard, they are not
|
|
supported by X, and hence have limited use.
|
|
</p>
|
|
<sect2>TrueType fonts
|
|
<p>
|
|
True type 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 <tt>ttf</tt> 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.
|
|
</p>
|
|
<sect2>Type42 Fonts
|
|
<p>
|
|
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.
|
|
</p>
|
|
<sect2>Type1 vs TrueType -- a comparison
|
|
<p>
|
|
Despite the historical feuding between the proponents to Type1 and TrueType
|
|
fonts, both have a lot in common. Both are scalable outline fonts.
|
|
Type1 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.
|
|
</p>
|
|
<p>
|
|
TrueType fonts have the apparent advantage that their support for
|
|
hinting is better ( Type1 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.
|
|
</p>
|
|
<p>
|
|
In conclusion, the main differences between TrueType and Type1 fonts
|
|
are in availability and application support. The widespread availability
|
|
of TrueType fonts for Windows has resolted 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 Type1 fonts
|
|
but do not have the same level of support for TrueType. Moreover, most
|
|
major font foundries still ship most of their fonts in Type1 format.
|
|
For example, Adobe ship 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 ).
|
|
</p>
|
|
<sect2>Metafont
|
|
<p>
|
|
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 font more readable ).
|
|
</p>
|
|
<p>
|
|
Metafonts typically have a <tt>mf</tt> 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.
|
|
</p>
|
|
|
|
<sect1>Families of Typefaces
|
|
<p>
|
|
Typically typically 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 <em>family</em> 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.
|
|
</p>
|
|
|
|
|
|
<sect>Fonts 102 -- Typography
|
|
<p>
|
|
Here, we discuss some typography basics. While this information
|
|
is not essential, many font lovers will find it interesting.
|
|
</p>
|
|
<sect1>Classifications of Typefaces
|
|
|
|
<sect2>Fixed versus variable width
|
|
<p>
|
|
There are several classifications of typefaces. Firstly, there
|
|
are <tt>fixed width</tt> 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 with can be useful also ( for example, all the example
|
|
shell commands in this document are illustrated with a
|
|
fixed with font ). The most well known fixed width font
|
|
is courier.
|
|
</p>
|
|
<sect2>To serif or not to serif ?
|
|
<p>
|
|
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 <em>usually</em> considered more readable than
|
|
fonts without serifs. There are many different types of serif fonts.
|
|
</p>
|
|
<p>
|
|
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,
|
|
marketting 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.
|
|
</p><p>
|
|
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.
|
|
</p>
|
|
<sect2>The old and the new -- different types of Serif fonts
|
|
<sect3>Old Style
|
|
<p>
|
|
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 wre designed in the 20th century.
|
|
The old style class of fonts has the following distinguishing features:
|
|
<itemize>
|
|
<item>Well defined, shapely serifs.
|
|
<item>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 verticle are light. Old style
|
|
fonts often have this appearance.
|
|
<item>Readability. Old style fonts are almost always very readable.
|
|
<item>Subtlety and lack of contrast. The old style fonts have heavy
|
|
lines and light lines but the contrast in weight is subtle,
|
|
not stark.
|
|
</itemize>
|
|
Notable Old Style fonts include Garamond, Goudy Old Style, Jenson,
|
|
and Caslon ( the latter is contentious -- some consider it transitional )
|
|
</p>
|
|
<sect3>Moderns ( or didone )
|
|
<p>
|
|
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 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:
|
|
<itemize>
|
|
<item>Lighter serifs, often just thin horizontal lines.
|
|
<item>Vertical emphasis. Vertical lines are heavy, horizontal
|
|
lines are light.
|
|
<item>Many moderns have a stark contrast between light and heavy strokes.
|
|
<item>Modern typefaces with high contrast between light and heavy
|
|
strokes are not as readable as the old style fonts.
|
|
</itemize>
|
|
Bodoni is the most notable modern. Other moderns include computer
|
|
modern, and Monotype modern ( on which computer modern is based ).
|
|
</p>
|
|
<sect3>Transitional
|
|
<p>
|
|
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 the moderns.
|
|
Examples of transitionals include Times Roman, Utopia, Bulmer,
|
|
and Baskerville. Of these, Times leans towards old style, while
|
|
Bulmer looks very modern.
|
|
|
|
</p>
|
|
<sect3>Slab Serifs
|
|
<p>
|
|
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 photocpied 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.
|
|
</p>
|
|
<sect2>The Sans Serif Revolution
|
|
<p>
|
|
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.
|
|
</p>
|
|
<sect3>Grotesque
|
|
<p>
|
|
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 marketting 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.
|
|
</p>
|
|
<p>
|
|
Notable grotesques include the overused Helvetica, Grotesque,
|
|
Arial, Franklin Gothic, and Univers.
|
|
</p>
|
|
<sect3>Geometric
|
|
<p>
|
|
The Futura font came with the manifesto: <em>form follows function</em>.
|
|
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.
|
|
</p>
|
|
<sect3>Humanist
|
|
<p>
|
|
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.
|
|
</p>
|
|
<sect2>Compatible Typefaces
|
|
<p>
|
|
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.
|
|
<url name="Monotype's Typography 101 page"
|
|
url="http://www.monotype.com/newmedia/type101_ex.htm">
|
|
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.
|
|
</p><p>
|
|
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.
|
|
</p>
|
|
<sect1>Ligatures, Small caps fonts and expert fonts
|
|
<sect2>Ligatures
|
|
<p>
|
|
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 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.
|
|
</p>
|
|
<sect2>Small caps fonts
|
|
<p>
|
|
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 ).
|
|
</p>
|
|
<sect2>Expert fonts
|
|
<p>
|
|
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 ).
|
|
</p>
|
|
<sect1>Font Metrics and Shapes
|
|
<p>
|
|
Font metrics define the spacing between variable width fonts.
|
|
The metrics include information about the size of the font,
|
|
and <em>kerning</em> 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 WYWIWYG
|
|
publishing programs.
|
|
</p>
|
|
<p>
|
|
In addition to the metrics, is the font outline, or shape.
|
|
The components of the fonts shape ( a stroke, an accent, etc )
|
|
are called ``glyphs''.
|
|
</p>
|
|
|
|
<sect>Making Fonts Available To X<label id="xfonts">
|
|
<p>
|
|
There are a number of ways fonts can be added to X. Firstly, XFree86
|
|
has a <em>font path</em> which is just a list of several directories
|
|
or <em>font servers</em> 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.
|
|
</p>
|
|
<p>
|
|
Recently, <tt>xfs</tt> ( 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 3.9.17 ( the latest version at the time of
|
|
writing. It will also be a part of XFree86 4.0 )
|
|
<tt>xfs</tt> 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 standalone X font server, with the TrueType support
|
|
patch ( the TrueType support takes place via a font server
|
|
called <tt>xfsft</tt> ) is probably the nicest font management
|
|
solution currently available. Its advantages include:
|
|
<itemize>
|
|
<item>Support for different types of fonts, including Type1, TrueType
|
|
and bitmap.
|
|
<item>Makes fonts available to remote displays.
|
|
<item>Greatly simplifies editing the fontpath -- you can do it via
|
|
the command line utility <tt>chkfontpath</tt>, 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.
|
|
</itemize>
|
|
</p>
|
|
<p>
|
|
Because different distributions ship with different configurations,
|
|
it is not true that one size fits all. We can split users up into
|
|
three groups:
|
|
<itemize>
|
|
<item>Your distribution ships with a standalone <tt>xfs</tt>
|
|
and it has been patched to support TrueType. This group
|
|
includes Redhat users and users of derivatives of Redhat
|
|
such as Mandrake, TurboLinux, and Independence.
|
|
For this group, the wisest strategy is to install both TrueType
|
|
and Type1 fonts through <tt>xfs</tt>
|
|
<item>Some distributions ship with a stand alone <tt>xfs</tt>
|
|
package, but no TrueType support (at the time of writing.
|
|
Note that XFree86 supports TrueType as of version 3.9.17 ).
|
|
This includes Debian. For these users, the best thing to do is use
|
|
<tt>xfs</tt> to install Type1 fonts, and install TrueType
|
|
fonts via <tt>xfstt</tt>. Debian users can seek out
|
|
the
|
|
<url name="TrueType Fonts in Debian mini-HOWTO"
|
|
url="http://www.dimensional.com/~bgiles/debian-tt.html">
|
|
for information about installing TrueType fonts in Debian.
|
|
<item>If you don't have <tt>xfs</tt> then you will need to install
|
|
Type1 fonts by adding to their XFree86 font path and
|
|
using xset. You should install TrueType
|
|
via <tt>xfstt</tt>.
|
|
</itemize>
|
|
</p>
|
|
<sect1>The font path <label id="fontpath">
|
|
<p>
|
|
XFree86 finds your fonts by searching a <em>font path</em>,
|
|
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
|
|
<label id="xset">
|
|
<verb>
|
|
xset fp+ directory
|
|
</verb>
|
|
Once you have done this, you need to ask the X server to re-scan
|
|
for available fonts with the command
|
|
<verb>
|
|
xset fp rehash
|
|
</verb>
|
|
Since you will want these commands to run automatically, you should
|
|
put them in your <tt>.xinitrc</tt> file ( or possibly your
|
|
<tt>.Xclients</tt> or <tt>.xsession</tt> 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 <tt>/usr/share/fonts/myfonts</tt> to the fontpath
|
|
when X is started, edit <tt>XF86Config</tt> like this:
|
|
<verb>
|
|
...
|
|
Section "Files"
|
|
...
|
|
|
|
FontPath /usr/share/fonts/myfonts
|
|
...
|
|
EndSection
|
|
...
|
|
</verb>
|
|
The advantage of editing XF86Config is that the resulting changes
|
|
are system wide.
|
|
</p>
|
|
<sect1>Installing Type1 Fonts
|
|
<sect2>Run Type1inst
|
|
<p>
|
|
The easiest way to make Type1 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.
|
|
<verb>
|
|
cd directory
|
|
type1inst
|
|
</verb>
|
|
</p>
|
|
<sect2>If You Have the <tt>xfs</tt> Package
|
|
<p>
|
|
Now you need to add the fonts to your fontpath. If you already
|
|
have the standalone <ref name="xfs" id="xfs"> running, you do this
|
|
by editing your <tt>xfs</tt> configuration file.
|
|
<em>
|
|
Redhat users can just use <ref name="chkfontpath" id="chkfontpath">.
|
|
the format is
|
|
</em>
|
|
<tt>chkfontpath --add directory</tt>
|
|
</p><p>
|
|
Your fonts should now be available to X. Now you
|
|
just run
|
|
<verb>
|
|
xset fp rehash
|
|
</verb>
|
|
and X will be able to find the new fonts.
|
|
|
|
</p>
|
|
<sect2>If You Don't Have The <tt>xfs</tt> Package
|
|
<p>
|
|
In this case, you need to add the directory containing
|
|
your new fonts to the font path, as described previously.
|
|
</p>
|
|
<Sect1>True Type Fonts
|
|
<p>
|
|
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.
|
|
</p>
|
|
<p>
|
|
<tt>xfstt</tt> is a TrueType font server. While it's easy to configure,
|
|
and quite useful, it appear that <tt>xfs</tt> is becoming more popular.
|
|
The main advantage of <tt>xfs</tt> over <tt>xfstt</tt> is that it supports
|
|
both Type1 and TrueType fonts.
|
|
</p>
|
|
|
|
<sect2>xfstt
|
|
<p>
|
|
To set up xfstt, just download it and install it. If you have an rpm
|
|
based distribution, there is a well packaged version of xfstt at
|
|
http://independence.seul.org/.
|
|
Once you install it, you need to do the following:
|
|
<enum>
|
|
<item>
|
|
install fonts into the appropriate
|
|
directory ( read the documentation that comes with the package ).
|
|
<item>
|
|
cd to that directory and run <tt>xfstt --sync</tt>. This causes it
|
|
to look for the fonts and create the <tt>fonts.dir</tt> file.
|
|
<item>
|
|
Now add <tt>unix/:7100</tt> to your font path.
|
|
</enum>
|
|
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 <tt>rpm -ql xfstt |grep init</tt> and look for the
|
|
file with a name something like this: <tt>/etc/rc.d/init.d/xfstt</tt>
|
|
)
|
|
If you don't have an init script, just
|
|
put two lines in <tt>/etc/rc.local</tt> like this:
|
|
<verb>
|
|
/usr/X11R6/bin/xfstt --sync
|
|
/usr/X11R6/bin/xfstt &
|
|
</verb>
|
|
</p>
|
|
<sect1>xfs<label id="xfs">
|
|
<p>
|
|
Some of the newer Linux distributions ship with the X font server
|
|
<tt>xfs</tt> configured to run as a stand alone program.
|
|
Notably, Redhat and all the redhat based distributions use this
|
|
modularised <tt>xfs</tt> with TrueType compiled in.
|
|
Debian also ship <tt>xfs</tt>, but the version
|
|
they ship doesn't have built in true
|
|
type support.
|
|
</p><p>
|
|
Running <tt>xfs</tt>
|
|
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.
|
|
</p>
|
|
<sect2>The <tt>xfs</tt> Path
|
|
<p>
|
|
As a font server, <tt>xfs</tt> has it's own font path.
|
|
One might wonder where this fits into the picture. It
|
|
works like this: you can place the <tt>xfs</tt> font server
|
|
in XFree86's font path, by adding <tt>unix/:port</tt> to
|
|
the XFree86 font path.
|
|
Once you do this, any font in the <tt>xfs</tt> font path
|
|
automatically becomes available to XFree86.
|
|
</p>
|
|
<p>
|
|
The <tt>xfs</tt> font path
|
|
is determined by the <tt>xfs</tt> configuration file,
|
|
which is <tt>/etc/X11/fs/config</tt> on Redhat, and
|
|
<tt>/etc/X11/xfs/config</tt> on Debian.
|
|
Redhat users do not need to explicitly edit this file, they
|
|
can use the <tt>chkfontpath</tt> utility.
|
|
The syntax is simple:
|
|
<label id="chkfontpath">
|
|
<verb>
|
|
chkfontpath --add directory
|
|
</verb>
|
|
Users of other distributions can edit the configuration file as
|
|
follows:
|
|
<verb>
|
|
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
|
|
...
|
|
</verb>
|
|
The above would add <tt>/usr/share/fonts/my_new_fonts/</tt> to the
|
|
<tt>xfs</tt> font path. <em>Note that the last line of the list of
|
|
directories doesn't have a comma at the end.</em>
|
|
For these modifications to the font path to become effective, <tt>xfs</tt>
|
|
must be restarted. It's also a good idea to restart your
|
|
X session after restarting
|
|
<tt>xfs</tt>.
|
|
</p>
|
|
<sect2>Installing a Font Into <tt>xfs</tt>
|
|
<p>
|
|
To prepare a font for <tt>xfs</tt>, you need to follow the following
|
|
steps:
|
|
<itemize>
|
|
<item>If you don't have xfs installed, you need to install it.
|
|
<item>Put the new fonts in a directory.
|
|
<item>If you are installing Type1 fonts,
|
|
prepare the new directory for the server
|
|
by running <tt>type1inst</tt> in the directory.
|
|
<item>If you are installing
|
|
TrueType fonts, ( <em>remember, not all distributions can do TrueType via
|
|
xfs ! </em> ), prepare the new directory for the server by running
|
|
<verb>
|
|
ttmkfdir -o fonts.scale
|
|
mkfontdir
|
|
</verb>
|
|
in the directory containing your new fonts.
|
|
<tt>ttmkfdir</tt> is part of the <em>freetype</em> package.
|
|
<item>Now you can add the new directory to your <tt>xfs</tt> search path.
|
|
Users of Redhat-like distributions
|
|
can do this with the <tt>chkfontpath</tt> utility:
|
|
Other users can do this by editing their <tt>xfs</tt> configuration
|
|
file.
|
|
<item>if <tt>xfs</tt> is already installed on your system,
|
|
you should see which port it is running on. You can do this
|
|
as follows:
|
|
<verb>
|
|
ps ax|grep xfs
|
|
</verb>
|
|
<item>
|
|
Then check your XFree86 font path.
|
|
<verb>
|
|
xset -q
|
|
</verb>
|
|
<item>If your font path includes something like <tt>unix:/<em>port_number</em></tt>
|
|
were <em>port_number</em> 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.
|
|
<verb>
|
|
xset fp+ unix/:port_number
|
|
xset fp rehash
|
|
</verb>
|
|
You can add it permanently by editing your <tt>.xinitrc</tt> as explained
|
|
previously.
|
|
To add it system wide, edit your XF86Config file ( probably either
|
|
<tt>/etc/X11/XF86Config</tt>, <tt>/etc/XF86Config</tt> or
|
|
<tt>/usr/X11R6/lib/X11/XF86Config</tt> ), by adding a
|
|
line <tt>FontPath "unix:/port_number"</tt> in the Files section.
|
|
Here's an example:
|
|
<verb>
|
|
...
|
|
Section "Files"
|
|
...
|
|
|
|
FontPath "unix/:-1"
|
|
...
|
|
EndSection
|
|
...
|
|
</verb>
|
|
<item>If <tt>xfs</tt> is already properly installed, then you can restart
|
|
it like this:
|
|
<verb>
|
|
/etc/rc.d/init.d/xfs restart
|
|
</verb>
|
|
<item>After restarting <tt>xfs</tt>, it's a good idea to restart your
|
|
X-session.
|
|
</itemize>
|
|
</p>
|
|
|
|
<sect>Making Fonts Available To Ghostscript
|
|
<p>
|
|
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
|
|
<tt>/usr/share/ghostscript/version/Fontmap</tt>.
|
|
The format is very simple, almost immediately self evident on
|
|
perusing it.
|
|
</p>
|
|
|
|
<sect1>Type1
|
|
<label id="ghostscript">
|
|
<p>
|
|
Adding Type1 fonts is straightforward. Run <tt>type1inst</tt> on the directory
|
|
containing the font. <tt>type1inst</tt> will output a file called
|
|
<tt>Fontmap</tt>. Append this file to the ghostscript
|
|
<tt>Fontmap</tt> file.
|
|
</p>
|
|
<sect1>True Type
|
|
<p>
|
|
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 <tt>ttf2pt1</tt> TrueType to Type1 converter, and grabbing the font
|
|
name from the <tt>afm</tt> ( there's got to be a more efficient way !
|
|
but this works, ugly as it is ). You do it like this:
|
|
<verb>
|
|
ttf2pt1 -A fontname - 2 > /dev/null |grep FontName
|
|
</verb>
|
|
Then you add an entry to the ghostscript <tt>Fontmap</tt> file
|
|
in the correct format, eg
|
|
<verb>
|
|
some-font (/usr/share/fonts/subdirectory/somefont.pbf);
|
|
</verb>
|
|
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:
|
|
<verb>
|
|
#!/usr/bin/perl
|
|
# ttfontmap -- generate fontmap file for TrueType fonts
|
|
my $directory=shift || print STDERR "Usage: ttfontmap {directory}\n";
|
|
|
|
$directory=~s/\/$//;
|
|
|
|
for my $fontname ( glob ( "$directory/*.ttf" ) )
|
|
{
|
|
open ( R, "sh -c \"ttf2pt1 -A $fontname - 2>/dev/null\" |" );
|
|
while ( <R> )
|
|
{
|
|
if ( $_ =~ /^FontName/ )
|
|
{
|
|
s/^FontName\s*//;
|
|
chomp;
|
|
print "/" . $_ . " ($fontname);\n" ;
|
|
}
|
|
}
|
|
close R;
|
|
}
|
|
</verb>
|
|
<em>You can
|
|
<url name="download this script"
|
|
url="http://pegasus.rutgers.edu/~elflord/font_howto/ttfontmap">
|
|
</em>
|
|
</p><p>
|
|
To set this script up, all you need to do is cut and paste it into
|
|
a file called <tt>ttfontmap</tt>, and place the file somewhere
|
|
in your <tt>PATH</tt> ( such as <tt>/usr/bin</tt> ).
|
|
You run this script like this:
|
|
<verb>
|
|
ttfontmap directory > output_file
|
|
</verb>
|
|
where <tt>directory</tt> is the directory containing the
|
|
fonts. You are left with the file <tt>output_file</tt> which you can append
|
|
to your ghostscript fontmap. Note: some will observe that you could
|
|
just use
|
|
<verb>
|
|
ttfontmap directory >> /usr/share/ghostscript/version/Fontmap
|
|
</verb>
|
|
However, I advise against this ( what would happen if you typed ``>'' instead of
|
|
``>>''
|
|
? )
|
|
</p>
|
|
<sect1>Using Ghostscript To Preview Fonts
|
|
<p>
|
|
Once you've made fonts available to ghostscript, you can preview them.
|
|
Do this by running the ghostscript interpreter on the file <tt>prfont.ps</tt>
|
|
in your ghostscript installation, and after you start it, type:
|
|
<verb>
|
|
/Fontname DoFont
|
|
</verb>
|
|
at the ghostscript font ( where <tt>FontName</tt> is the ghostscript
|
|
name of the font you wish to preview ).
|
|
There are several other ways you can invoke <tt>gs</tt>. For example,
|
|
if you want to create a postscript file that you can look at in
|
|
a nicer postscript viewer such as <tt>gv</tt>, you can use
|
|
<verb>
|
|
gs -sDEVICE=pswrite -sOutputFile=somefile.ps prfont.ps
|
|
</verb>
|
|
Having done this, you can also print your output file.
|
|
|
|
</p>
|
|
<sect>True Type to Type1 Conversion
|
|
<sect1>Why ?
|
|
<p>
|
|
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
|
|
Type1 fonts. <em>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.</em>
|
|
This is a pity, because
|
|
with ghostscript support for TrueType, and TrueType font servers,
|
|
Linux has the infrastructure it needs to handle TrueType.
|
|
</p>
|
|
<sect1>How ?
|
|
<p>
|
|
To convert your TrueType fonts into Type1 fonts, go to
|
|
<url url="http://quadrant.netspace.net.au/ttf2pt1/"
|
|
name="http://quadrant.netspace.net.au/ttf2pt1/">
|
|
and get ttf2pt1.
|
|
To convert a TrueType to a Type1 font,
|
|
use the following syntax:
|
|
<verb>
|
|
ttf2pt1 -b file.ttf name
|
|
</verb>
|
|
Where <tt>name</tt> is the name of the file corresponding to the new Type1
|
|
font ( ie it's arbitrary. It's a good idea to make it the same as the ttf file.
|
|
eg <tt>ttf2pt1 -b foo.ttf foo</tt>.
|
|
</p>
|
|
<p>
|
|
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:
|
|
<verb>
|
|
for X in *.ttf; do ttf2pt1 -b $X ${X%%.ttf}; done
|
|
</verb>
|
|
Alternatively, you can download the
|
|
<url url="http://pegasus.rutgers.edu/~elflord/font_howto/ttfutils-0.2.tar.gz"
|
|
name="ttfutils">
|
|
package and use <tt>ttf2type1</tt> for the conversions.
|
|
<verb>
|
|
ttf2type1 *.ttf
|
|
</verb>
|
|
</p>
|
|
|
|
<sect>WYSIWYG Publishing and Fonts
|
|
<sect1>Introduction and Overview
|
|
<p>
|
|
Installing fonts for WYSIWYG publishing on Linux is a relatively
|
|
complex task. It typically involves three steps:
|
|
<itemize>
|
|
<item>Make the font available to the X server
|
|
<item>Make the font available to ghostscript
|
|
<item>Make the font available to the application
|
|
</itemize>
|
|
The main reason for the complexity is that
|
|
the <em>font printing system</em> ( ghostscript ) is unrelated
|
|
to the <em>screen font system</em>. 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.
|
|
</p>
|
|
<p>
|
|
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.
|
|
</p>
|
|
<sect1>Applixware
|
|
<p>
|
|
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.
|
|
</p>
|
|
<sect2>FontTastic
|
|
<p>
|
|
Using FontTastic is the easy way to do it. To install new fonts
|
|
like this, simply do the following:
|
|
<enum>
|
|
<item>Run Applixware as root
|
|
<item>Click on the <em>tools</em> menu.
|
|
<item>Choose ``Font Installer''
|
|
<item>Check ``OK'' in the popup dialog
|
|
<item>Click the ``Catalogs'' menu and choose ``create''
|
|
<item>Fill in the <em>catalog name</em> box. It
|
|
doesn't matter what you put there. For the rest of this example,
|
|
we'll assume it's called ``foobar''
|
|
<item>Select your foobar catalog from the catalog manipulations
|
|
list.
|
|
<item>From the ``Services'' menu, select
|
|
``install fonts into -> FontTastic font server''
|
|
<item>Make sure catalog foobar is selected in the catalogs list,
|
|
then press the ``select files'' button.
|
|
<item>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
|
|
<em>/usr/share/fonts/ttfonts</em> 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.
|
|
<item>You can edit your list by checking on the different fonts in the
|
|
list box and possibly removing or renaming them.
|
|
<item>When you're ready, click the ``install fonts'' button. Then click
|
|
``OK''.
|
|
<item>Go to the ``services'' menu and choose ``update''. Check ``OK''
|
|
on the annoying modal dialog, then choose exit from the services menu.
|
|
Exit applix.
|
|
<item>Congrats, you're done ! The new fonts will be available when you
|
|
restart Applix.
|
|
</enum>
|
|
</p>
|
|
|
|
<sect2>Using System Wide Fonts With Applixware
|
|
<p>
|
|
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:
|
|
</p>
|
|
<sect3>Make the fonts available to X
|
|
<p>
|
|
This is explained <ref id="xfonts" name="in the previous section">
|
|
</p>
|
|
<sect3>Make the fonts available to ghostscript
|
|
<p>
|
|
This is explained in <ref id="ghostscript" name="in the previous section">
|
|
</p>
|
|
<sect3>Edit the fontmap.dir
|
|
<p>
|
|
This is the final step in making your fonts available to Applix, and
|
|
also the most time consuming step. The file <em>fontmap.dir</em>
|
|
is in under the <em>axdata/fontmetrics</em> 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.
|
|
</p>
|
|
<p>
|
|
We describe how to add fonts to fontmap.dir. In this example, we
|
|
add the font Baskerville Italic.
|
|
|
|
<enum>
|
|
<item>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.
|
|
<item>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 <em>non-unique</em>,
|
|
since bold, italic, roman and bold-italic variants of a font will
|
|
typically go under the same family.
|
|
<item>
|
|
If the font is either a bold, or italic variant, or both, we need to add the
|
|
following lines:
|
|
<verb>
|
|
Slant = 1
|
|
</verb>
|
|
if the font is italic, and
|
|
<verb>
|
|
Weight = 1
|
|
</verb>
|
|
if the font is bold.
|
|
If the font is bold <em>and</em> italic, we add both lines.
|
|
In this example, we need only add the line
|
|
<verb>
|
|
Slant = 1
|
|
</verb>
|
|
<item>We add a line that looks like this:
|
|
<verb>
|
|
ScreenName = "-paradise-baskerville-medium-i-normal--0-0-0-0-p-0-iso8859-1"
|
|
</verb>
|
|
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
|
|
<verb>
|
|
xlsfonts|grep -i bask
|
|
</verb>
|
|
<item>Now we add a line that gives the name of the printer font:
|
|
PostScriptPrinterName = Baskerville-Normal-Italic
|
|
<item>Next, we need to specify the location of the font metric file
|
|
and the outline file
|
|
<verb>
|
|
MetricsFile = /usr/share/fonts/misc/baskvli.afm
|
|
Type1FontFileName = /usr/share/fonts/misc/baskvli.pfb
|
|
</verb>
|
|
|
|
If you are adding a TrueType file, you can use <tt>ttf2pt1 </tt>
|
|
to generate an <tt>afm</tt> file :
|
|
<verb>
|
|
ttf2pt1 -A foo.ttf - > foo.afm
|
|
</verb>
|
|
( or get the ttfutils package and use <tt>ttf2afm</tt> )
|
|
Then you use something like this:
|
|
<verb>
|
|
MetricsFile = /usr/share/fonts/misc/foo.afm
|
|
</verb>
|
|
Do <em>not</em> include a <tt>Type1FontFileName</tt> directive --
|
|
let ghostscript take care of this.
|
|
</enum>
|
|
|
|
That's it. Now after adding the whole family of fonts, you should
|
|
have something like this:
|
|
<verb>
|
|
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
|
|
</verb>
|
|
|
|
</p>
|
|
<p>
|
|
It is possible to do more with this configuration file. The file itself
|
|
has a <em>glossary</em> which explains the format of the configuration
|
|
file.
|
|
</p>
|
|
|
|
<sect1>Star Office
|
|
<p>
|
|
Here, we cover Star Office 5.0. The procedure with Star Office 5.1
|
|
is similar,
|
|
but the utility is called <tt>spadmin</tt>, not <tt>psetup</tt>.
|
|
It's worth mentioning up front that
|
|
<url name="John McLaughlin's page"
|
|
url="http://www.mindspring.com/~john_mcl/adding_fonts.html">
|
|
is an excellent source on this issue, and it inspired most
|
|
of what follows.
|
|
</p>
|
|
<p>
|
|
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.
|
|
</p>
|
|
<sect2>Backup Your Configuration Before you Start !
|
|
<p>
|
|
It's good to make a backup in case you inadvertantly hose your
|
|
configuration. Modifying fonts will impact several files in the
|
|
<tt>xp3</tt>.
|
|
You should definitely backup the file <tt>xp3/psstd.fonts</tt>.
|
|
I recommend going further and backing up the whole <tt>xp3</tt>
|
|
directory. You can do this by cd-ing to your Star Office
|
|
directory, then using
|
|
<verb>
|
|
tar cvzf xp3.tgz xp3
|
|
</verb>
|
|
to create a backup. To restore a backup,
|
|
delete the <tt>xp3</tt> directory and unpack the archive
|
|
<verb>
|
|
rm -rf xp3
|
|
tar xvzf xp3.tgz
|
|
</verb>
|
|
</p>
|
|
<sect2>Adding Type1 Fonts to Star Office
|
|
<p>
|
|
Adding Type1 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 Type1 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 <tt>psetup</tt> tool. The procedure is as follows:
|
|
<enum>
|
|
<item>As root, run psetup ( or spadmin if you have Star Office 5.1 )
|
|
<item>Press the ``add fonts'' button.
|
|
<item>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.
|
|
<item>Choose
|
|
the directory containing the font you wish to install ( it should
|
|
be in the box ), and then press ``OK''.
|
|
<item>Click the ``convert all font metrics button''.
|
|
</enum>
|
|
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.
|
|
</p>
|
|
<sect2>Adding TrueType Fonts to Star Office
|
|
<p>
|
|
Adding TrueType fonts to Star Office is
|
|
nontrivial, but possible.
|
|
After some hard work, and long hours stareing at
|
|
<url name="John McLaughlin's page"
|
|
url="http://www.mindspring.com/~john_mcl/adding_fonts.html">
|
|
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:
|
|
<itemize>
|
|
<item>Make the fonts available to X.
|
|
<item>Make the fonts available to ghostscript.
|
|
<item>
|
|
You need to have <tt>afm</tt> files for the fonts you wish to
|
|
add. Use
|
|
<verb>
|
|
ttf2pt1 -A foo.ttf - > foo.afm
|
|
</verb>
|
|
to create the <tt>afm</tt> files.
|
|
Alternatively, you can get the
|
|
<item><url url="http://pegasus.rutgers.edu/~elflord/font_howto/ttfutils-0.2.tar.gz"
|
|
name="ttfutils">
|
|
package
|
|
and use <tt>ttf2afm</tt> The advantage of this
|
|
is you can handle several at a time, eg
|
|
<verb>
|
|
ttf2afm *.ttf
|
|
</verb>
|
|
<item>
|
|
Star Office needs <tt>pfb</tt> files corresponding
|
|
to each <tt>ttf</tt> file. You can create them
|
|
with the command
|
|
<verb>
|
|
touch foo.pfb
|
|
</verb>
|
|
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
|
|
<tt>pfb</tt> file exists to install the font.
|
|
|
|
<item> Now you can run <tt>spadmin</tt> and install the font(s).
|
|
<item>
|
|
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, <em>not</em> the
|
|
ghostscript font name. For example, if the font is
|
|
<tt>foobar.ttf</tt> and the corresponding <tt>afm</tt>
|
|
file is <tt>foobar.afm</tt>, you use the name
|
|
``foobar'' for the font in the PPD file. The entry
|
|
should look something like this:
|
|
<verb>
|
|
*Font cloistrk: Standard "(001.002)" Standard ROM
|
|
</verb>
|
|
|
|
</itemize>
|
|
</p>
|
|
<p>
|
|
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 <em>not</em> have the
|
|
fonts in the ROM, so while <tt>gv</tt> 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:
|
|
<itemize>
|
|
<item>Do not edit the PPD file.
|
|
<item>Instead of using <tt>touch foo.pfb</tt> to create empty <tt>pfb</tt>
|
|
files, you need the <tt>pfb</tt> 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
|
|
<url url="ftp://ftp.dcs.ed.ac.uk/pub/jek/programs/ttfps.tar.gz"
|
|
name="ttfps"> to create the files.
|
|
<verb>
|
|
ttfps foo.ttf foo.pfb
|
|
</verb>
|
|
</itemize>
|
|
|
|
</p>
|
|
<p>
|
|
There are some gotchas. Sometimes, Star Office might not choose the
|
|
screen font you like. It is sometimes worth checking
|
|
<tt>xp3/psstd.fonts</tt> 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 <tt>xp3</tt> directory.
|
|
</p>
|
|
<sect2>Under the Hood
|
|
<p>
|
|
If you wish to install TrueType fonts in Star Office, you may need
|
|
to learn how Star Office handles things. When you run <tt>spadmin</tt>
|
|
or <tt>psetup</tt>, the following happens:
|
|
<itemize>
|
|
<item>Star Office makes symbolic links to the <tt>pfb</tt> outline
|
|
files in your <tt>xp3/pssoftfonts</tt> directory.
|
|
<item>The <tt>afm</tt> file is copied into the directory
|
|
<tt>xp3/fontmetrics/afm/</tt>
|
|
<item>An entry is added to the <tt>xp3/psstd.fonts</tt> 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 ).
|
|
</itemize>
|
|
</p><p>
|
|
This is why it's good to simply backup the whole <tt>xp3</tt> directory --
|
|
it is the only convenient way to restore Star Office to a
|
|
clean configuration.
|
|
</p>
|
|
|
|
<sect1>Word Perfect
|
|
<p>
|
|
Nothing yet.
|
|
<url name="Rod Smith's webpage"
|
|
url="http://www.rodsbooks.com/wpfonts/">
|
|
is the definitive resource regarding installing fonts on Word Perfect.
|
|
</p>
|
|
|
|
<sect>Netscape
|
|
<p>
|
|
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 <tt>.Xdefaults</tt> file:
|
|
<verb>
|
|
Netscape*documentFonts.sizeIncrement: 20
|
|
Netscape*documentFonts.xResolution*iso-8859-1: 100
|
|
Netscape*documentFonts.yResolution*iso-8859-1: 100
|
|
</verb>
|
|
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.
|
|
</p>
|
|
<p>
|
|
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.
|
|
</p>
|
|
|
|
<sect>TeX / LaTeX
|
|
<sect1>A Quick Primer on LaTeX/TeX fonts
|
|
<p>
|
|
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 Type1 format.
|
|
Usually, the Type1 formats are more easily available. However, metafont fonts have
|
|
the distinct advantage that they can adjust their shape at different sizes,
|
|
while Type1 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.
|
|
</p><p>
|
|
For this discussion, we focus on Type1 fonts, since they are more widely
|
|
available, and more problematic to install.
|
|
</p>
|
|
<p>
|
|
Here's a quick primer on LaTeX fonts. LaTeX uses the following
|
|
types of font files for handling Type1 fonts:
|
|
<itemize>
|
|
<item> <tt>.pl</tt> -- property list. This is a human readable version of a
|
|
tex font metric file.
|
|
<item> <tt>.vpl</tt> -- virtual property list. Human readable version of a
|
|
virtual font file.
|
|
<item> <tt>.fd</tt> -- font definition. Used to define a <em>family</em> of
|
|
fonts.
|
|
<item> <tt>.tfm</tt> -- tex font metric. This is a metric file, as explained
|
|
in the glossary. It is completely analogous to the <tt>.afm</tt> files used
|
|
by Type1 fonts. TeX needs the font metrics to properly layout the page.
|
|
<item> <tt>.vf</tt> -- 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 Type1 font foobar.pfb ( which might
|
|
be the alternate ``a'' in the Type1 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.
|
|
<item> <tt>.pk</tt> -- a device dependent bitmap font. These are usually constructed
|
|
on an as-needed basis ( they are renderings of Type1 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 <tt>.pk</tt> file,
|
|
they require a lot of disk space, so they are cached, but not stored.
|
|
<item><tt>.mf</tt> -- 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 Type1 schemes. However, it's main
|
|
weakness is that it is not as ubiquitous as TrueType or Type1 ( 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. )
|
|
|
|
</itemize>
|
|
|
|
</p>
|
|
<p>
|
|
It's good to know your way around the TeX directory structure. Here are
|
|
the main directories you'll need to know about:
|
|
<itemize>
|
|
<item> <tt>$TEXMF/fonts</tt> -- the main font directory
|
|
<item> <tt>$TEXMF/fonts/type1</tt> -- the type1 font directory
|
|
<item> <tt>$TEXMF/fonts/type1/foundry</tt> -- the directory for the shape files in a given foundry
|
|
<item> <tt>$TEXMF/fonts/type1/foundry/fontname</tt> -- contains the font called <em>name</em>.
|
|
The <em>name</em> is usually plain English, and needn't follow TeX's cryptic
|
|
naming scheme for fonts.
|
|
<item> <tt>$TEXMF/fonts/afm/foundry/fontname</tt> -- the directory containing the <tt>afm</tt>
|
|
files corresponding to the font <tt>name</tt> belonging to foundry <tt>foundry</tt>.
|
|
<item> <tt>$TEXMF/fonts/tfm/foundry/fontname</tt> -- analogous to the <tt>afm</tt> directory,
|
|
but contains <tt>tfm</tt> files instead.
|
|
<item><tt>$TEXMF/fonts/vf/foundry/fontname</tt> -- similar to the above, but contains the virtual fonts.
|
|
<item><tt>$TEXMF/fonts/source/foundry/fontname</tt> -- similar to the above, but contains metafont files.
|
|
<item><tt>$TEXMF/dvips/config/psfonts.map</tt> -- fontmap file for dvips. This file is similar
|
|
in both function and format to ghostscript's Fontmap file.
|
|
<item><tt>$TEXMF/tex/latex/psnfss</tt> -- this is where all the font definition files go.
|
|
</itemize>
|
|
|
|
</p>
|
|
|
|
<sect1>Adding Type1 fonts
|
|
<sect2>Naming the fonts
|
|
<p>
|
|
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
|
|
<tt>FNW{V}E{n}</tt> where:
|
|
<itemize>
|
|
<item>F is a one-letter abbreviation for the foundry ( m = monotype, p = adobe,
|
|
b = bitstream, f = free )
|
|
<item>N is a two letter abbreviation for the font name
|
|
( for example, ag = ``avant garde'' )
|
|
<item>W is the font weight ( r = regular, b = bold, l = light d = demibold )
|
|
<item>V is an optional slope variant ( i = italic , o = oblique )
|
|
<item>E is an abbreviation for the encoding ( almost always <tt>8a</tt> which is
|
|
adobe standard encoding ).
|
|
<item>N is an optional width variant ( n = narrow )
|
|
</itemize>
|
|
For example, the font Adobe Garamond demibold is <tt>pgad8a</tt>.
|
|
</p>
|
|
<sect2>Creating the virtual fonts and tex font metrics
|
|
<p>
|
|
Now you can run <tt>fontinst</tt> as follows:
|
|
<verb>
|
|
latex `kpsewhich fontinst.sty`
|
|
</verb>
|
|
then you type at the prompt:
|
|
<verb>
|
|
\latinfamily{font_name}{}\bye
|
|
</verb>
|
|
where <tt>font_name</tt> is the first three letters of your
|
|
font file name ( for example, <tt>pad</tt> for adobe garamond ).
|
|
Now <tt>fontinst</tt> will generate a number of files --
|
|
font description files, property list files and virtual property
|
|
list files. It also generates a lot of <tt>.mtx</tt> files. These
|
|
are created by <tt>fontinst</tt>, 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
|
|
<tt>vptovf</tt> and <tt>pltotf</tt>.
|
|
<verb>
|
|
for X in *.pl; do pltotf $X; done
|
|
for X in *.vpl; do vptovf $X; done
|
|
</verb>
|
|
Then remove the old <tt>vpl</tt>, <tt>pl</tt> and <tt>mtx</tt> files.
|
|
</p>
|
|
<sect2>Configure dvips
|
|
<p>
|
|
You will need to edit your dvips config file, <tt>psfonts.map</tt>.
|
|
The best way to explain the format of the file is to give an example.
|
|
<verb>
|
|
|
|
marr8r ArialMT <8r.enc <farr8a.pfa
|
|
marbi8r Arial_BoldItalicMT <8r.enc <farbi8a.pfa
|
|
marb8r Arial_BoldMT <8r.enc <farb8a.pfa
|
|
marri8r Arial_ItalicMT <8r.enc <farri8a.pfa
|
|
marr8rn Arial_Narrow <8r.enc <farr8an.pfa
|
|
</verb>
|
|
The <tt>8r.enc</tt> is simply there to inform dvips of the encoding scheme
|
|
used ( in all our examples, it's 8r, because of the way <tt>fontinst</tt>
|
|
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 <tt>afm</tt> file in a text editor, and looking
|
|
for the <tt>FontName</tt> 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.
|
|
</p>
|
|
<sect2>Test the font
|
|
<p>
|
|
Try running latex on a document like this:
|
|
<verb>
|
|
\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}
|
|
</verb>
|
|
where you replace <tt>pga</tt> 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
|
|
<verb>
|
|
texconfig rehash
|
|
</verb>
|
|
so that tex can update the directory lists.
|
|
</p>
|
|
<sect2>Create a .sty file
|
|
<p>
|
|
You may want to create a .sty file so that you can more easily use
|
|
fonts. Use the files in <tt>$TEXMF/tex/latex/psnfss</tt> as a template.
|
|
</p>
|
|
<sect>Getting Fonts For Linux
|
|
<sect1>True Type
|
|
<sect2>Commercial Software
|
|
<p>
|
|
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. )
|
|
</p>
|
|
<sect2>Microsoft's Font Download
|
|
<p>
|
|
Microsoft have also made several TrueType fonts available. The
|
|
<tt>.exe</tt> file is simply an archive, you can extract it
|
|
using <tt>unzip</tt>.
|
|
You can get them from
|
|
<url url="http://www.microsoft.com/truetype/fontpack/win.htm"
|
|
name="the download site">
|
|
</p>
|
|
<sect2>Luc's Webpage
|
|
<p>
|
|
<url name="Luc Devroye's webpage" url="http://cgm.cs.mcgill.ca/~luc/originalfonts.html">
|
|
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''.
|
|
</p>
|
|
<sect2>Web sites with truetype fonts
|
|
<p>
|
|
There are several web sites offering freely available downloadable
|
|
fonts. For example,
|
|
<url url="http://www.freewareconnection.com/fonts.html"
|
|
name="the freeware connection"> has links to a number of archives.
|
|
</p>
|
|
<sect2>Foundries
|
|
<p>
|
|
Several foundries sell TrueType fonts. However, most of them
|
|
are quite expensive, and for the same money, you'd be better
|
|
of with Type1 fonts. I'll discuss these more in the Type1 fonts
|
|
section. The one place that does do sell true type fonts
|
|
at low prices is
|
|
<url url="http://www.buyfonts.com" name="buyfonts">.
|
|
Please read the section on ethics before you buy cheap fonts.
|
|
</p>
|
|
|
|
<sect1>Type 1 Fonts and Metafont
|
|
<sect2>Dealing With Mac and Windows Formats
|
|
<p>
|
|
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 <tt>zip</tt>
|
|
file. The only work to be done is converting the <tt>pfm</tt> file
|
|
to and <tt>afm</tt> file ( using <tt>pfm2afm</tt> ).
|
|
</p>
|
|
<p>
|
|
Macintosh fonts are more problematic, because they are typically
|
|
made available in <tt>.sit.bin</tt> 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 <tt>sit.bin</tt> file is unpacked, the Macintosh files can
|
|
be converted using <tt>t1unmac</tt> which comes with the
|
|
<tt>t1utils</tt> package.
|
|
</p>
|
|
<p>
|
|
Unfortunately, some vendors only ship Type1 fonts in Macintosh format
|
|
( stuffit archives ). However, according to font expert
|
|
<url name="Luc Devroye" url="http://cgm.cs.mcgill.ca/~luc/">, all major
|
|
foundries make Type1 fonts available for Mac and Windows.
|
|
</p>
|
|
<sect2>Free Stuff
|
|
<p>
|
|
<url name="ctan" url="http://www.ctan.org">
|
|
have a number of good fonts, many of which are free.
|
|
Most of these are in Metafont format, though some are also
|
|
Type1 fonts.
|
|
Also, see <url name="Bluesky" url="http://www.bluesky.com">
|
|
who have made available Type1 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. )
|
|
</p>
|
|
|
|
<p>
|
|
<url name="Luc Devroye's webpage" url="http://cgm.cs.mcgill.ca/~luc/originalfonts.html">
|
|
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''.
|
|
</p>
|
|
|
|
<p>
|
|
URW have released the standard postscript fonts resident in most
|
|
printers to the public domain. These fonts are quite good.
|
|
</p>
|
|
<p>
|
|
The
|
|
<url url="ftp://ftp.cdrom.com/pub/os2/fonts/"
|
|
name="Walnut Creek Archive">
|
|
has several freely available fonts, and shareware fonts.
|
|
Some of these are obvious ripoffs ( and not very good ones ).
|
|
If a font doesn't come with some kind of license, chances are
|
|
it's a ripoff.
|
|
Also
|
|
<url url="http://www.winsite.com/win3/fonts/atm/" name="Winsite">
|
|
have several Type1 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. )
|
|
</p>
|
|
<p>
|
|
<url name="Luc Devroye's webpage"
|
|
url="http://cgm.cs.mcgill.ca/~luc/">
|
|
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.
|
|
</p>
|
|
<sect2>Commercial Fonts
|
|
<sect3>Value vs Premium: Why Should I buy Premium Fonts ?
|
|
<p>
|
|
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.
|
|
</p><p>
|
|
The advantage of the cheaper fonts is self evident -- they are cheaper.
|
|
The quality fonts also have their advantages though.
|
|
<itemize>
|
|
<item><em>Ethical issues:</em> 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.
|
|
<item><em>Completeness:</em> 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.
|
|
<item><em>Quality:</em> 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.
|
|
<item><em>Authenticity:</em> 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.
|
|
</itemize>
|
|
</p>
|
|
<sect3>Value
|
|
<p>
|
|
<itemize>
|
|
<item>
|
|
An excellent place to go for a CD packed with several Type1
|
|
fonts of reasonable quality is <url url="http://www.bitstream.com"
|
|
name="Bitstream">.
|
|
Bitstreams more noted products include their
|
|
<url name="250 font CD"
|
|
url="http://www.bitstream.com/products/world/font_cd/bits_collection.html">
|
|
and their
|
|
<url name="500 font CD"
|
|
url="http://www.bitstream.com/products/world/font_cd/500_cd.html">
|
|
( 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.
|
|
<item>
|
|
|
|
<url url="http://www.matchfonts.com/"
|
|
name="Matchfonts"> offer more modestly priced fonts --
|
|
they are distributed in ``packs'' of about 8 fonts
|
|
for $30. This includes some nice calligraphic fonts.
|
|
All fonts seem to be offered in a usable format
|
|
( the windows ATM fonts come in a .exe file.
|
|
Don't let the extension fool you -- it's just a zip archive ).
|
|
These are not ripoffs as far as I can tell.
|
|
<item>
|
|
<url name="EFF" url="http://www.buyfonts.com">
|
|
sell TrueType fonts for $2- per hit.
|
|
They also have ``professional range'' postscript and TrueType
|
|
fonts for $16- per typeface.
|
|
</itemize>
|
|
</p>
|
|
|
|
<sect3>Premium
|
|
<p>
|
|
<itemize>
|
|
<item>
|
|
Adobe have several
|
|
high quality, fonts available at
|
|
<url url="http://www.adobe.com/type/"
|
|
name="Adobe's type website">.
|
|
Some of these are expensive, but they have several
|
|
more affordable bundles -- see
|
|
<url name="Adobe Type Collections"
|
|
url="http://www.adobe.com/type/collections.html">.
|
|
Adobe have some of the most complete font families on the market,
|
|
for example,
|
|
<url name="Garamond"
|
|
url="http://www.adobe.com/type/browser/P/P_912.html">,
|
|
<url name="Caslon"
|
|
url="http://www.adobe.com/type/browser/P/P_180.html">,
|
|
and their
|
|
<url name="multiple masters"
|
|
url="http://www.adobe.com/type/browser/C/C_4e.htm">
|
|
( Myriad and Minion, used on their website are among the nicer
|
|
of their multiple masters. )
|
|
<item>
|
|
<url name="Berthold Types Limited" url="http://www.bertholdtypes.com">
|
|
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.
|
|
<item>
|
|
ITC develop several
|
|
quality fonts ( including some of the ones Corel ships with
|
|
their products ) at
|
|
<url url="http://www.itcfonts.com"
|
|
name="http://www.itcfonts.com">
|
|
They offer family packages for about $100-180 US.
|
|
Their fonts, come in both Type1
|
|
and TrueType format. It's better to choose the
|
|
``Windows'' package, because Mac formats are difficult
|
|
to handle on Linux.
|
|
<item>
|
|
<url name="Linotype" url="http://www.linotypelibrary.com">
|
|
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. )
|
|
<item>
|
|
<url url="http://www.monotype.com"
|
|
name="Monotype">
|
|
develop most of the fonts shipped with Microsoft
|
|
products. One of the older and well respected foundries.
|
|
<item>
|
|
<url url="http://www.portal.ca/~tiro/"
|
|
name="Tiro Typeworks">
|
|
sell good quality, if somewhat expensive typefaces.
|
|
Their typefaces are very complete, for example, they
|
|
include complete sets of ligatures, and smallcaps, titling
|
|
fonts, etc.
|
|
UNIX is listed as one of the OS options -- which is a welcome
|
|
surprise after seeing the words ``Windows or Mac'' too many times..
|
|
</itemize>
|
|
</p>
|
|
<sect3>More Links
|
|
<p>
|
|
For links to a bunch of other foundries,
|
|
see <url name="Luc Devroye's page"
|
|
url="http://cgm.cs.mcgill.ca/~luc/">
|
|
|
|
</p>
|
|
|
|
|
|
<sect>Useful Font Software for Linux
|
|
<p>
|
|
There are several font packages for Linux. Many of them are essential.
|
|
<itemize>
|
|
<item>chkfontpath is a utility for manipulating the <tt>xfs</tt> configuration
|
|
file.
|
|
<item><url name="DTM -- the Definitive Type Manager"
|
|
url="http://www.debian.org/~fog/dtm/">
|
|
is a global font management tool. This is a developer's release.
|
|
<item><url url="http://www.tug.org/applications/fontinst/index.html"
|
|
name="fontinst"> is a LaTeX package designed to simplify the installation
|
|
of Type1 fonts into LaTeX.
|
|
|
|
<item><url name="Freetype"
|
|
url="http://www.freetype.org">
|
|
is a TrueType library that comes with most Linux distributions
|
|
<item><url name="Ghostscript"
|
|
url="http://www.cs.wisc.edu/~ghost/">
|
|
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 )
|
|
<item><url name="pfm2afm"
|
|
url="http://pegasus.rutgers.edu/~elflord/font_howto/pfm2afm.tgz">
|
|
is a utility for converting windows <tt>pfm</tt> font
|
|
metric files into <tt>afm</tt> 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.
|
|
<item><url url="http://www.lcdf.org/~eddietwo/type/"
|
|
name="mminstance and t1utils"> are two packages for handling Type1 fonts.
|
|
mminstance is for handling Adobe's
|
|
<url url="http://www.adobe.com/type/browser/C/C_4e.html"
|
|
name="multiple master"> Type1 fonts.
|
|
t1utils is a suite of utilities for converting between the different
|
|
Type1 formats.
|
|
|
|
<item><url url="http://quadrant.netspace.net.au/ttf2pt1/" name="ttf2pt1">
|
|
is a TrueType to Type1 font converter. It is useful if you
|
|
have applications that require Type1 fonts.
|
|
<item>
|
|
<url url="ftp://ftp.dcs.ed.ac.uk/pub/jek/programs/ttfps.tar.gz"
|
|
name="ttfps"> converts <tt>.ttf</tt> TrueType font files
|
|
into Type42 files.
|
|
|
|
<item><url url="http://pegasus.rutgers.edu/~elflord/font_howto/ttfutils-0.2.tar.gz"
|
|
name="ttfutils">
|
|
A package of utilities for handling TrueType fonts. This
|
|
package requires <tt>ttf2pt1</tt>. Useful if not essential.
|
|
|
|
<item><url name="type1inst"
|
|
url="ftp://ftp.metalab.unc.edu/pub/Linux/X11/xutils/">
|
|
is an essential package for installing Type1 fonts. It greatly
|
|
simplifies the installation.
|
|
<item><url name="xfstt"
|
|
url="ftp://ftp.metalab.unc.edu/pub/Linux/X11/fonts/">
|
|
is a TrueType font server for Linux. It's useful, but <tt>xfs</tt>
|
|
is probably a better choice.
|
|
<item><url url="http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/"
|
|
name="xfsft"> The xfsft font server. Note that this is included
|
|
in <tt>xfs</tt>.
|
|
<item><url url="http://hawk.ise.chuo-u.ac.jp/student/person/tshiozak/x-tt/"
|
|
name="x-tt"> is a font server designed to handle Korean and Japanese
|
|
fonts.
|
|
</itemize>
|
|
|
|
<sect>Ethics and Licensing Issues Related to Type
|
|
<p>
|
|
Font licensing is a very contentious issue. While it is true
|
|
that there is a wealth of <em>freely available</em> 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 <em>files </em> are protected
|
|
by copyright, but <em>font renderings</em> 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.
|
|
</p><p>
|
|
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.
|
|
</p>
|
|
<p>
|
|
There are many differing opinions on this issue. See
|
|
<url url="http://www.typeright.org" name="typeright"> for
|
|
an explanation of the case in favour of intellectual property rights.
|
|
Also, see <url url="http://www.ssifonts.com/" name="Southern Software, Inc">
|
|
for another opinion -- but don't buy any of their fonts! Their Type1 fonts
|
|
( poorly reverse-engineered Adobe fonts )
|
|
do not have AFMs, and are thus unusable.
|
|
|
|
</p><p>
|
|
<url name="The comp.fonts FAQ"
|
|
url="http://www.faqs.org/faqs/fonts-faq/part2/">
|
|
also discusses the issues of fonts and intellectual property,
|
|
as does
|
|
<url name="Luc Devroye's homepage"
|
|
url="http://cgm.cs.mcgill.ca/~luc/">. These
|
|
references are somewhat less extreme in their views.
|
|
|
|
|
|
</p>
|
|
|
|
<sect>References
|
|
<sect1>Font Information
|
|
<p>
|
|
<itemize>
|
|
<item>
|
|
<url name="Rod Smith's homepage"
|
|
url="http://www.rodsbooks.com/">
|
|
contains a wealth of information about using fonts and printers
|
|
with Applixware and Word Perfect.
|
|
<item>
|
|
<url name="John McLaughlin's page"
|
|
url="http://www.mindspring.com/~john_mcl/adding_fonts.html">
|
|
discusses setting up fonts with Star Office
|
|
<item>
|
|
<url name="Jim Land's homepage"
|
|
url="http://www.geocities.com/SiliconValley/5682/postscript.html">
|
|
contains a lot of links to sites on postscript and fonts.
|
|
<item>
|
|
<url name="The comp.fonts FAQ"
|
|
url="http://www.faqs.org/faqs/fonts-faq/">
|
|
is the definitive font FAQ.
|
|
<item>
|
|
<url name="Luc Devroye's homepage"
|
|
url="http://cgm.cs.mcgill.ca/~luc/">
|
|
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.
|
|
<item>
|
|
<url name="The Font Deuglification HOWTO"
|
|
url="http://www.linuxdoc.org/HOWTO/mini/FDU.html">
|
|
discusses TrueType fonts under Linux. This
|
|
is the clear winner of the ``TrueType'' HOWTOs.
|
|
An excellent
|
|
source of information.
|
|
<item>
|
|
<url name="TrueType Fonts in Debian mini-HOWTO"
|
|
url="http://www.dimensional.com/~bgiles/debian-tt.html">
|
|
discusses installing TrueType in Debian.
|
|
A must-read for Debian users.
|
|
Also worth reading if you have <em>any</em> distribution
|
|
that doesn't have the version of <tt>xfs</tt> with TrueType
|
|
support.
|
|
<item><url name="The (preliminary) True Type HOWTO"
|
|
url="http://www.moisty.org/~brion/linux/TrueType-HOWTO.html">
|
|
-- an incomplete HOWTO dated June 1998. Included in this
|
|
list for completeness.
|
|
<item><url name="TrueType for XFree86 Mini-HOWTO"
|
|
url="http://www.sfu.ca/~yzhang/linux/truetype/">
|
|
-- a slightly dated HOWTO. Only applicable to Redhat 5.x
|
|
</itemize>
|
|
</p>
|
|
<sect1>Postscript and Printing Information
|
|
<p>
|
|
<itemize>
|
|
<item><url name="Adobe's Postscript page"
|
|
url="http://www.adobe.com/print/postscript/main.html">
|
|
is the definitive site on the postscript standard.
|
|
<item><url name="Ghostscript's home page"
|
|
url="http://www.cs.wisc.edu/~ghost/">
|
|
has a lot of information, and all the latest printer drivers.
|
|
<item><url name="Jim Land's homepage"
|
|
url="http://www.geocities.com/SiliconValley/5682/postscript.html">
|
|
contains a lot of links to sites on postscript and fonts.
|
|
<item><url name="Christopher Browne's Printing FAQ"
|
|
url="http://www.hex.net/~cbbrowne/printing.html">
|
|
|
|
</itemize>
|
|
</p>
|
|
|
|
<sect>Glossary
|
|
<p>
|
|
<itemize>
|
|
|
|
<item><bf>afm</bf>
|
|
Stands for <bf>Adobe Font Metric</bf>. These files store information about
|
|
the width and spacing associated with the font, as opposed to information
|
|
about the font shape.
|
|
|
|
<item><bf>anti-aliasing</bf>
|
|
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.
|
|
|
|
<item><bf>bdf</bf> fonts are a variety of bit-mapped fonts that may be
|
|
used with X.
|
|
|
|
<item><bf>bitmap fonts</bf>
|
|
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.
|
|
|
|
<item><bf>didone</bf> see modern.
|
|
|
|
<item><bf>DPI</bf>
|
|
Dots Per Inch. Monitors typically display at 75-100 DPI, while
|
|
modern printers vary from 300-1200 DPI
|
|
|
|
<item><bf>expert fonts</bf> 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.
|
|
|
|
<item><bf>font server</bf>
|
|
a background program that makes fonts available to XFree86.
|
|
|
|
<item><bf>glyph</bf> 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.
|
|
|
|
<item><bf>kerning</bf> In variable width fonts, different pairs of characters
|
|
are spaced differently. The font metric files store information regarding
|
|
spacing between pairs of characters, called <bf>kerning pairs</bf>.
|
|
|
|
<item><bf>ligature</bf> 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 <bf>expert font</bf>.
|
|
|
|
|
|
<item><bf>metafont</bf>
|
|
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.
|
|
|
|
<item><bf>metric</bf> 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.
|
|
|
|
<item><bf>modern</bf> 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.
|
|
|
|
<item><bf>old style</bf> 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 <bf>Goudy Old Style</bf> was
|
|
designed by Goudy in the early 20th century. Notable old style
|
|
faces include Goudy Old Style, Garamond, and Caslon.
|
|
|
|
<item><bf>pcf</bf> fonts are bit-mapped fonts used by X.
|
|
|
|
<item><bf>postscript</bf> 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.
|
|
|
|
<item><bf>serif</bf> 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.
|
|
|
|
<item><bf>sans serif</bf> 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.
|
|
|
|
<item><bf>slab serif</bf> fonts are a certain class of font whose serifs
|
|
look like slabs ( eg flat lines or blocks ) and not hooks.
|
|
Slab serif fonts are <bf>often</bf>, 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.
|
|
|
|
<item><bf>transitional</bf> 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.
|
|
|
|
<item><bf>Type1</bf> 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 <tt>afm</tt> ( adobe font metric ) file, and an outline file, which is
|
|
usually a <tt>.pfb</tt> ( printer font binary ) or
|
|
<tt>.pfa</tt> ( printer font ascii ) file. The outline file contains
|
|
all the glyphs, while the metric file contains the metrics.
|
|
|
|
<item><bf>type3</bf> fonts are similar to Type1. The file extensions
|
|
are similar to Type1 fonts ( they are distributed as <tt>pfa</tt> and
|
|
<tt>afm</tt> files ), but they are not supported by X, and because
|
|
of this, there are not very many linux applications which support them.
|
|
|
|
</itemize>
|
|
</p>
|
|
|
|
|
|
</article>
|
|
|