LDP/LDP/howto/docbook/FDU.sgml

1866 lines
50 KiB
Plaintext

<!DOCTYPE Article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
<Article id="index">
<ArtHeader>
<Title>XFree86 Font Deuglification Mini HOWTO</Title>
<AuthorGroup>
<Author>
<Firstname>Doug</Firstname>
<Surname>Holland</Surname>
<Affiliation>
<Address>
<Email>meldroc@frii.com</Email>
</Address>
</Affiliation>
</Author>
<Author>
<!--
<AuthorBlurb>
<Para>
This is test
</Para>
</AuthorBlurb>
-->
<Firstname>Updated by: Hal</Firstname>
<Surname>Burgiss</Surname>
<Affiliation>
<Address>
<Email>hburgiss@bellsouth.net</Email>
</Address>
</Affiliation>
</Author>
</AuthorGroup>
<PubDate>v1.5, 25 July 2000</PubDate>
<!--
<RevHistory>
<Revision>
<RevNumber>v0.1</RevNumber>
<Date>21 February 1999</Date>
<Authorinitials>dh</Authorinitials>
<RevRemark>
First release.
</RevRemark>
</Revision>
<Revision>
<RevNumber>v0.11</RevNumber>
<Date>27 February 1999</Date>
<Authorinitials>dh</Authorinitials>
<RevRemark>
Added copyright info to protect my butt.
</RevRemark>
</Revision>
<Revision>
<RevNumber>v0.12</RevNumber>
<Date>10 June 1999</Date>
<Authorinitials>dh</Authorinitials>
<RevRemark>
Added A Plea for Help.
</RevRemark>
</Revision>
<Revision>
<RevNumber>v0.20</RevNumber>
<Date>14 September 1999</Date>
<Authorinitials>dh</Authorinitials>
<RevRemark>
Added section on xfs for Redhatters. Many
thanks to Hal Burgiss for his contribution.
</RevRemark>
</Revision>
<Revision>
<RevNumber>v1.0</RevNumber>
<Date>23 November 1999</Date>
<Authorinitials>dh</Authorinitials>
<RevRemark>
Converted document to SGML, for submission to the Linux Documentation
Project. Removed Plea for Help.
</RevRemark>
</Revision>
<Revision>
<RevNumber>v1.5</RevNumber>
<Date>25 July 2000</Date>
<Authorinitials>hb</Authorinitials>
<RevRemark>
New sections, and various additions and cleanups.
</RevRemark>
</Revision>
</RevHistory>
-->
<Abstract>
<Para>
How to improve ugly and unreadable X Window fonts.
</Para>
</Abstract>
</ArtHeader>
<!--
<BlockQuote>
<Para>
<Literal>
<LiteralLayout>
******************************************************************
This is a working draft and is close to final form as far as I am concerned.
Sun 07/23/00 01:41:11 PM EDT
I am interested in any comments, period. Beyond the usual "this isn't right"
stuff, I would be interested in amplifications, clarifications, enhancements,
suggestions, things that aren't worded clearly, etc.
For LDP:
I would love some pointers on the sgml as this is my experience. This was a
"seat of my pants" type effort, learning as I went. There has to be better
ways of doing some things. I would love some nit-picking from anyone who has
the time. Especially I struggled with multi line literals ala:
if $foo; then
$bar # This does it all .....
fi
Might be nice to have this in the big HOWTO template. ;) My solution seems
fairly convoluted, and generates seemingly harmless errors from jade.
Also, I am definitely looking for feedback for fleshing out the sections on
KDE, I've removed empty app specific sections on Wordperfect, etc. Gnome
probably deserves some mention too. Any others? I don't really use any of
these, so am _completely_ and hopelessly ignorant. Is the KDE stuff up to
date? Maybe some of this should be in the FONT HOWTO. I see some of it may be
already. If I can't fill some of this in, it is getting dropped.
Why does not my html have those cute little icons for 'next', etc. and look
like linuxdoc.org HTML?
This is generated with the suggested RH packages from the LAG. Supplemented with
ldp.dsl as:
jade -t sgml -i html -d /usr/lib/sgml/stylesheets/ldp.dsl\#html
This command seems to generate a fair amount of errors, but the finished HTML
looks OK. Is this normal?
jade:../FDU.sgml:1378:14:E: document type does not allow element
"LITERALLAYOUT" here; assuming missing "MSGTEXT" start-tag
jade:../FDU.sgml:1383:9:E: end tag for "MSGTEXT" omitted, but OMITTAG NO was
specified
jade:../FDU.sgml:1378:0: start tag was here
I suspect a lot of these are nesting errors, but it seems to 'work' despite
the errors. ???
Not sure how to handle the 'author' situation. Doug has not responded to
email. ????
Mon 07/24/00 12:12:40 AM EDT
Attempting a cleanup of some sgml, and whatever I am doing with RevHistory, it
is sucking wind ATM. So I am leaving both the former 'Changelog' and
RevHistory in for the time being.
*******************************************************************
<LiteralLayout>
</Literal>
</Para>
</BlockQuote>
-->
<!-- end Art. header -->
<!-- ~~~~~ New Section ~~~~~ -->
<Sect1 id="intro">
<Title>Introduction</Title>
<Para>
One of the most annoying sets of problems I have had to deal with is the
abysmal default fonts and font settings of X (I'm talking specifically about
<Ulink url="http://www.xfree.org">XFree86</Ulink>, other versions of X may be
better.) Many programs use fixed width default fonts when a variable width
font would be more appropriate. Other programs use fonts that are
ridiculously tiny and unreadable. The fonts that are bundled with XFree86 are
barely adequate for the job. It does come with a halfway decent courier font,
but its Times and Helvetica fonts are simple bitmap fonts that pixelize when
they are scaled. Yuck!
</Para>
<Para>
This HOWTO attempts to show how to adjust various font settings, install new
fonts, and do other things that will greatly improve the appearance and
readability of fonts on the X Window Desktop. This is done by adjusting the
<Literal>FontPath</Literal> in the <FileName>XF86Config</FileName> file, by
adding switches to X server command line in <Command>startx</Command> or
<Command>xdm</Command> (and variants), by adding new fonts, by installing a
TrueType font server and fonts, and by using a feature in the K Desktop
Environment 1.1 that automagically adjusts font settings in many
applications, including non-KDE apps to set their fonts and colors to match
KDE's style settings.
</Para>
<Para>
Comments, corrections, additions and critiques are always welcome. You can
reach the authors at <Ulink URL="mailto:meldroc@frii.com">meldroc@frii.com</ULink>,
or <ULink URL="mailto:hburgiss@bellsouth.net">hburgiss@bellsouth.net</ULink>
</Para>
<Sect2>
<Title>Conventions</Title>
<Para>
Where examples of commands are used, a <quote>#</quote> character is used to
denote where typically the command would be run as the root user. A
<quote>$</quote> is used where typically a non-root user would be executing
the command.
</Para>
<Para>
The examples use <FileName>/usr/local/share/fonts/ttfonts</FileName> as our
TrueType font directory. There is no magic to this location, and could
conceivably just as well be in any number of other locations.
</Para>
<Para>
References to "xfs" are to the xfs as packaged by Redhat for versions 6.x.
This differs significantly in some respects from the stock XFree86 xfs.
</Para>
<Para>
References to "Netscape" are to the entire suite of programs from Netscape:
Communicator, Navigator, Messenger, etc. For all intents and purposes, font
configuration in Mozilla is the same.
</Para>
</Sect2>
<Sect2>
<Title>Change Log</Title>
<Para>
<ItemizedList>
<ListItem>
<Para>
0.1: Feb. 21, 1999: First release.
</Para>
</ListItem>
<ListItem>
<Para>
0.11: Feb. 27, 1999: Added copyright info to protect my butt.
</Para>
</ListItem>
<ListItem>
<Para>
0.12: Jun. 10, 1999: Added A Plea for Help.
</Para>
</ListItem>
<ListItem>
<Para>
0.20: Sep. 14, 1999: Added section on xfs for Redhatters. Many
thanks to Hal Burgiss for his contribution.
</Para>
</ListItem>
<ListItem>
<Para>
1.0: Nov. 23, 1999: Converted document to SGML, for
submission to the Linux Documentation Project. Removed Plea for
Help.
</Para>
</ListItem>
<ListItem>
<Para>
1.5: July 25, 2000:
New sections added. Miscellaneous changes and additions.
</Para>
</ListItem>
</ItemizedList>
</Para>
</Sect2>
<Sect2>
<Title>New Versions</Title>
<Para>
This lastest version includes new sections on xfsft, fonts.alias and XFree86
4.x. Also, includes new Links and Notes sections, as well as a rewrite of the
xfs sections.
</Para>
<Para>
The latest version of this document can be found at
<Ulink URL="http://feenix.eyep.net/ldp/fdu/index.html">http://feenix.eyep.net/ldp/fdu/index.html</Ulink>.
</Para>
</Sect2>
<Sect2 id="legal">
<Title>Copyright</Title>
<Para>
Copyright &copy; 1999 by Doug Holland.
</Para>
<Para>
Unless otherwise stated, Linux HOWTO documents are copyrighted by their
respective authors. Linux HOWTO documents may be reproduced and distributed
in whole or in part, in any medium physical or electronic, as long as this
copyright notice is retained on all copies. Commercial redistribution is
allowed and encouraged; however, the author would like to be notified of any
such distributions.
</Para>
<Para>
All translations, derivative works, or aggregate works incorporating any
Linux HOWTO documents must be covered under this copyright notice. That is,
you may not produce a derivative work from a HOWTO and impose additional
restrictions on its distribution. Exceptions to these rules may be granted
under certain conditions; please contact the Linux HOWTO coordinator for more
information.
</Para>
<Para>
In short, we wish to promote dissemination of this information through as
many channels as possible. However, we do wish to retain copyright on the
HOWTO documents, and would very much like to be notified of any plans to
redistribute the HOWTOs, this one in particular! Web page authors are free
to link to this HOWTO without restriction, though the author would appreciate
an email informing him of this, just so he can boost his ego by knowing who
else reads and links to this document.
</Para>
<Para>
Many of the terms mentioned in this document are trade names. Unless
otherwise stated, all trademarks are property of their respective owners.
</Para>
</Sect2>
<Sect2 id="credits">
<Title>Credits</Title>
<Para>
<LiteralLayout>
Created by Doug Holland.
Email: <Ulink URL="mailto:meldroc@frii.com">meldroc@frii.com</ULink>
WWW: <Ulink URL="http://www.frii.com/~meldroc/">http://www.frii.com/~meldroc/</ULink>
</LiteralLayout>
</Para>
<Para>
<LiteralLayout>
Updated by Hal Burgiss.
Email: <ULink URL="mailto:hburgiss@bellsouth.net">hburgiss@bellsouth.net</ULink>
WWW: <Ulink URL="http://feenix.eyep.net/ldp/fdu">http://feenix.eyep.net/</ULink>
</LiteralLayout>
</Para>
<Para>
Special thanks go to:
<ItemizedList>
<ListItem>
<Para>
The developers of the <Ulink URL="http://www.xfree86.org">XFree86 Project</Ulink>,
for all the hard work and time they have given. Also, Juliusz Chroboczek for
his work with xfsft, and XFree86 4.x to help bring TrueType to the masses.
</Para>
</ListItem>
<ListItem>
<Para>
The folks at <Ulink URL="news:comp.os.linux.x">comp.os.linux.x</ULink> who
gave me a hand in figuring all of this out in the first place.
</Para>
</ListItem>
<ListItem>
<Para>
The Linux community in general who made all of this possible
in the first place.
</Para>
</ListItem>
<ListItem>
<Para>
Microsoft and Apple: for providing the fonts that adorn my
desktop.
</Para>
</ListItem>
</ItemizedList>
</Para>
</Sect2>
</Sect1>
<!-- ~~~~~ New Section ~~~~~ -->
<Sect1 id="x-config">
<Title>X Server Configuration</Title>
<Para>
There are a few easy steps that can be taken that will help X do its job
better.
</Para>
<Sect2>
<Title>Setting The FontPath</Title>
<Para>
The first place to look for curing font problems is the
<FileName>XF86Config</FileName> file.
(<FileName>/usr/X11/lib/X11/XF86Config</FileName> or
<FileName>/etc/X11/XF86Config</FileName> are the common locations.) If you
haven't guessed already, the most important part of this file relating to
fonts is the <Literal>FontPath.</Literal> Before we get into that, this would
be a good time to check the other parts of your X configuration. Bad monitor
settings can be even more of a headache than bad fonts, so make sure your
refresh rate is as high as your monitor can handle (85 Hz is great, 75 Hz is
OK, 60 Hz is painful.)
</Para>
<Para>
Use your favorite text editor and edit
<FileName>XF86Config</FileName>. Near the top of the file in the
"Files" section, you should see something like this:
</Para>
<BlockQuote>
<Para>
<Literal>
<LiteralLayout>
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
</LiteralLayout>
</Literal>
</Para>
</BlockQuote>
<Para>
This much should be the same, or at least similar, for both XFree86 3.x and
4.x. The <Literal>FontPath</Literal> tells X where to find the fonts it uses
to render text on your display. Order is important -- when an X application
asks X to render some text, the X server usually has some leeway to choose the
font that is used. The X server then goes through the
<Literal>FontPath</Literal> and grabs the first font it sees that matches the
X client's criteria, and then renders. Note that Redhat's xfs for versions 6.x
has a different way of setting the <Literal>FontPath</Literal>. See the
<xref LinkEnd="xfs"> below for more on xfs.
</Para>
<Para>
Default installations typically put 75dpi fonts before the 100dpi fonts. If
you have a high resolution display, this means very tiny fonts. If this is the
case, the first tweak you'll use is to switch the 75dpi and 100dpi FontPath
lines:
</Para>
<BlockQuote>
<Para>
<Literal>
<LiteralLayout>
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
</LiteralLayout>
</Literal>
</Para>
</BlockQuote>
<Para>
Next, specify that you prefer to use unscaled bitmap fonts. If you've ever
used Netscape or any other program that displays titles using big fonts,
you'll likely notice that those fonts are pixelized. This is ugly and needs
to be fixed. So add <Literal>:unscaled</Literal> to the ends of the misc,
100dpi and 75dpi fonts. You can even use both unscaled and scaled fonts if
you want, just put the unscaled <Literal>FontPath</Literal> lines first to
tell X you prefer unscaled fonts if possible:
</Para>
<BlockQuote>
<Para>
<Literal>
<LiteralLayout>
FontPath "/usr/X11R6/lib/X11/fonts/misc:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
</LiteralLayout>
</Literal>
</Para>
</BlockQuote>
<Para>
After making these changes, restart X. Doesn't the desktop look better
already?
</Para>
</Sect2>
<Sect2>
<Title>X Server Command Line Options</Title>
<Para>
The next thing you need to do is adjust the command line options for the X
server. You'll want to use the <Literal>-dpi</Literal> switch which specifies
the display resolution in dots per inch. As a lot of systems use high
resolution displays these days, chances are they'll be working at 100
dpi.
</Para>
<Para>
If you start X from the console command prompt, type:
</Para>
<Para>
<Literal>
$ startx -dpi 100.
</Literal>
</Para>
<Para>
If you use xdm (or friends) for graphical logins, you'll want to edit your
<FileName>/usr/X11/lib/X11/xdm/Xservers</FileName> file (or possibly
<FileName>/etc/X11/xdm/Xservers</FileName>) which will have the command line for
the Xserver in it. Mine has the line:
</Para>
<Para>
<Literal>
:0 local /usr/X11R6/bin/X -dpi 100 -gamma 1.6
</Literal>
</Para>
<Para>
More information is in the X and Xserver man pages.
</Para>
</Sect2>
</Sect1>
<!-- ~~~~~ New Section ~~~~~ -->
<Sect1 id="TrueType">
<Title >TrueType Fonts (One of the few things Windows is good for)
</Title>
<Para>
Because the boys at Redmond are very concerned with the appearance of their
software (as opposed to the internal workings ;) they built TrueType font
support into Windows. And of course, they got the idea from MacOS which is
where TrueType originated. Windows 9x and nearly every other flavor of
Windows comes with Arial, Times New Roman, and Courier New, which are roughly
equivalent to Helvetica, Times and Courier. TrueType fonts are scalable, so
they look good in large sizes, and they are well hinted, so they are readable
at small sizes. Many windows applications come with dozens more TrueType
fonts. Don't microwave your Windows CD yet, you'll want to get the fonts
first.
</Para>
<Para>
Unfortunately, XFree86 3.x does not come with built in TrueType support, so
you'll have to add it yourself. XFree86 4.x does have built in support
however (see <Xref LinkEnd="x-4x">). This will mean installing a font server
that does support TrueType and, of course, installing the fonts themselves.
You won't find decent TrueType fonts included with any distribution. The
likely reason is that there are not any quality TrueType fonts available
under a suitable license at this time.
</Para>
<Sect2>
<Title>Making TrueType Fonts Available</Title>
<Para>
Let's start with the fonts first. Any TrueType font included with the various
MS Windows incarnations should work. Don't forget word processors and other
apps that may include their own fonts too. MacOS fonts will not work. There
are also some 'free' TrueType fonts available for download if you have
already nuked that CD (see Links in <Xref LinkEnd="links">).
</Para>
<Para>
In order to use TrueType, the fonts will have to be always accessible to the
font server. This means they will have to be on a filesystem that is
<Emphasis>always</Emphasis> mounted. This can conceivably be a Windows
partition on a dual boot system. Alternately, the fonts can be copied to
Linux. First <Command>su</Command> to root:
</Para>
<Para>
<Literal>
<LiteralLayout>
# su -
# mkdir -p /usr/local/share/fonts/ttfonts
</LiteralLayout>
</Literal>
</Para>
<Para>
Now, change to the new font directory:
</Para>
<Para>
<Literal>
<LiteralLayout>
# cd /usr/local/share/fonts/ttfonts
</LiteralLayout>
</Literal>
</Para>
<Para>
Then, add the fonts to this directory, either by copying them from your
Windows system:
</Para>
<Para>
<Literal>
<LiteralLayout>
# cp /mnt/&lt;path_to_fonts&gt;/*ttf .
</LiteralLayout>
</Literal>
</Para>
<Para>
or by downloading those available directly from
<Ulink URL="http://www.microsoft.com/typography/fontpack/default.htm">Microsoft</Ulink>.
These fonts are in self-extracting zip archives. You will need to get the ones
labeled for use with 'Windows 3.1' if you need to extract them under Linux.
You can indeed unpack these in Linux with the Linux zip utility:
</Para>
<Para>
<Literal>
<LiteralLayout>
# ls *exe | xargs -n 1 unzip -L
</LiteralLayout>
</Literal>
</Para>
<Para>
The '-L' option will convert to lower case font names (this is necessary for
xfsft and Redhat's xfs). Note that the current Linux zip utility does not work
with the 32 bit Win9x font archives. (It also looks like Microsoft no longer
has the 16 bit Arial, Courier and Times-Roman on this site.) Or you can get an
RPM of WebFonts that contains some of the MS TrueTypes <Ulink
URL="http://rpmfind.net/linux/RPM/contrib/noarch/noarch/webfonts-1-3.noarch.html">here</Ulink>.
This has enough fonts to keep Netscape and other web browsers happy.
</Para>
<Para>
You will also have to include the new TrueType directory(s) in the X server's
fontpath. So with your text editor of choice add the line(s) as appropriate:
</Para>
<BlockQuote>
<Para>
<Literal>
<LiteralLayout>
FontPath "/usr/local/share/fonts/ttfonts
FontPath "/usr/X11R6/lib/X11/fonts/misc:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
</LiteralLayout>
</Literal>
</Para>
</BlockQuote>
</Sect2>
<Sect2>
<Title>Font Servers</Title>
<Para>
There are several font servers available that will do the job: xfstt, xfsft,
and Redhat's patched version of xfs based on xfsft. While these names are all
too similar, these are different packages. One, or more, of these should be
included with any recent Linux distribution, and you may have one installed
already.
</Para>
<Para>
Historically, font servers were used to serve fonts over a network. Font
resources could then reside on one host, and clients could access them as
needed. But, the developers have enhanced these to include features such as
the ability to render TrueType fonts. (XFree86 4.x has this ability included
already, and thus an additional font server is not needed just to have
TrueType support.)
</Para>
<Sect3>
<Title>xfstt</Title>
<Para>
One such font server is xfstt. xfstt was designed specifically with TrueType
fonts in mind.
</Para>
<Sect4>
<Title>Installation</Title>
<Para>
xfstt is <emphasis>very</emphasis> easy to install and configure. If it isn't
already installed, you'll want to download the tarball, or check your CD. The
most current version can be found at <Ulink
URL="http://metalab.unc.edu/pub/Linux/X11/fonts/">http://metalab.unc.edu/pub/Linux/X11/fonts/</ULink>
</Para>
<Para>
Once you have the tarball, unpack it:
</Para>
<Para>
<Literal>
<LiteralLayout>
$ tar -zxvf xfstt-*tgz
</LiteralLayout>
</Literal>
</Para>
<Para>
Then build and install it. Read the <FileName>INSTALL</FileName> file for
quick instructions, but it's a no brainer.
</Para>
<Para>
From the xfstt directory is all you have to do.
</Para>
<Para>
<Literal>
<LiteralLayout>
# make
# make install
</LiteralLayout>
</Literal>
</Para>
<Para>
Then start xfstt with:
</Para>
<Para>
<Literal>
<LiteralLayout>
# xfstt --sync # updates xfstt's font database
# xfstt &#38; # runs xfstt in the background.
</LiteralLayout>
</Literal>
</Para>
<Para>
xfstt should be started before the X server starts. Once you have this working
correctly, you can add the above lines to
<FileName>/etc/rc.d/rc.local</FileName>, or other suitable start up file. Then
type:
</Para>
<Para>
<Literal>
<LiteralLayout>
$ xset +fp unix/:7101 # tells X about xfstt, and where to look for fonts.
</LiteralLayout>
</Literal>
</Para>
<Para>
or add:
</Para>
<BlockQuote>
<Para>
<Literal>
FontPath "unix/:7101"
</Literal>
</Para>
</BlockQuote>
<Para>
to your <FileName>XF86Config</FileName> to tell X about the font
server. Rerun <Command>xfstt --sync</Command> any time the FontPath, or
contents, change.
</Para>
</Sect4>
<Sect4>
<Title>Adjusting the default font size</Title>
<Para>
If your TrueType fonts appear to be very tiny, the following commands
may help.
</Para>
<Para>
Add the <Literal>-dpi</Literal> switch to your X server command
line (see section 3 to do this.)
</Para>
<Para>
Use the <Literal>--res</Literal> switch to tell xfstt to increase
the default resolution. Use the following command line.
</Para>
<Para>
<Literal>
<LiteralLayout>
# xfstt --res 120
</LiteralLayout>
</Literal>
</Para>
</Sect4>
</Sect3>
<Sect3 id="xfs">
<Title>Redhat's xfs</Title>
<Para>
As of Redhat Linux 6.0, Redhat based distributions (Mandrake, etc) have
included a specially patched version of xfs, the XFree86 font server, and
patched X servers as well. Redhat's xfs includes the xfsft patch set which in
turn is built upon the FreeType Font library. Redhat's xfs provides similar
functionality to xfstt. xfs is able to serve both TrueType and Type 1 fonts,
as well as legacy X fonts.
</Para>
<Para>
If you are using a Redhat based distro, you should have xfs installed
already. If not, it is in the <FileName>XFree86-xfs*rpm</FileName>. To make
sure it runs as one of the default services, either use
<Command>ntsysv</Command> or:
</Para>
<Para>
<Literal>
# chkconfig --add xfs
</Literal>
</Para>
<Para>
Now xfs will start every time you boot.
</Para>
<Sect4>
<Title>Setting the xfs FontPath</Title>
<Para>
The default Redhat installation of xfs serves fonts via a Unix Domain Socket.
We'll need to tell the X server where to look for xfs, and thus fonts. The
FontPath in <FileName>/etc/X11/XF86Config</FileName> must include:
</Para>
<BlockQuote>
<Literal>
FontPath "unix/:-1"
</Literal>
</BlockQuote>
<Para>
At least for a default configuration. This is a reference to the socket where
xfs is listening. You may include additional FontPaths, but these will be
handled by the X server, and not xfs. A clean install of Redhat 6.x should
have this already set up, but if you are upgrading from an older version, you
will have to change this yourself!
</Para>
<Para>
xfs then has its own, separate FontPath stored in
<FileName>/etc/X11/fs/config</FileName>. This is where it will look to find
fonts. This is over and above the X server's FontPath in
<FileName>XF86Config</FileName>. You can either add the new path(s) with a text
editor, or use the <Command>chkfontpath</Command> command:
</Para>
<Para>
<Literal>
# chkfontpath --add /usr/local/share/fonts/ttfonts
</Literal>
</Para>
<Para>
The FontPath must exist before running <Command>chkfontpath</Command>. The
relevant section of <FileName>/etc/X11/fs/config</FileName> should now look
something like this:
</Para>
<BlockQuote>
<Para>
<Literal>
<LiteralLayout>
catalogue = /usr/X11R6/lib/X11/fonts/misc:unscaled,
/usr/X11R6/lib/X11/fonts/100dpi:unscaled,
/usr/X11R6/lib/X11/fonts/75dpi:unscaled,
/usr/X11R6/lib/X11/fonts/Type1,
/usr/X11R6/lib/X11/fonts/Speedo,
/usr/X11R6/lib/X11/fonts/misc,
/usr/X11R6/lib/X11/fonts/100dpi,
/usr/X11R6/lib/X11/fonts/75dpi,
/usr/local/share/fonts/ttfonts
</LiteralLayout>
</Literal>
</Para>
</BlockQuote>
</Sect4>
<Sect4>
<Title>Getting the Fonts Ready</Title>
<Para>
We still have a bit of work to do before we can actually use any TrueType
fonts. xfs requires a few things to be in order. First, all font files must
have lower case names. Secondly, they shouldn't have embedded spaces. And then,
we will need to create a couple of files to make things go.
</Para>
<Para>
Su to root, and change to the directory where the TrueType fonts are.
</Para>
<Para>
<Literal>
<LiteralLayout>
# su -
# cd /usr/local/share/fonts/ttfonts
</LiteralLayout>
</Literal>
</Para>
<Para>
If there are any upper case font names, you can use the following script to
convert all names to lower case:
</Para>
<Para>
<Literal>
<LiteralLayout>
#!/bin/sh
#
## -------- convert upper to lower case ---------
ls * | while read f
do
if [ -f $f ]; then
if [ "$f" != "`echo \"$f\" | tr A-Z a-z`" ]; then
#Note that 'This' will overwrite 'this'!
mv -iv "$f" "`echo \"$f\" | tr A-Z a-z`"
fi
fi
done
## eof
</LiteralLayout>
</Literal>
</Para>
<!--
<ProgramListing>
#!/bin/sh
#
## ~~~~~~~ convert upper to lower case ~~~~~~~~~
ls * | while read f
do
if [ -f $f ]; then
if [ "$f" != "`echo \"$f\" | tr A-Z a-z`" ]; then
#Note that 'This' will overwrite 'this'!
mv -iv "$f" "`echo \"$f\" | tr A-Z a-z`"
fi
fi
done
#- eof
</ProgramListing>
-->
<Para>
Note the punctuation -- the backquotes are important! Remove any spaces from
font names too. Once the TrueType fonts are properly installed, you must
create both <FileName>fonts.dir</FileName> and
<FileName>fonts.scale</FileName> files. The following commands do this:
</Para>
<Para>
<Literal>
<LiteralLayout>
# ttmkfdir -o fonts.scale
# mkfontdir
</LiteralLayout>
</Literal>
</Para>
<Para>
You should now have <FileName>fonts.dir</FileName> and
<FileName>fonts.scale</FileName> files in your TrueType font
directory. <Command>ttmkfdir</Command> is in the
<FileName>Freetype</FileName> RPM, and must be run
before <Command>mkfontdir</Command>. These commands don't seem to always
report errors, so verify that they were created and are not empty files:
</Para>
<Para>
<Literal>
<LiteralLayout>
$ ls -l fonts.*
-rw-r--r-- 1 root root 11657 Aug 17 10:31 fonts.dir
-rw-r--r-- 1 root root 11657 Aug 17 10:31 fonts.scale
</LiteralLayout>
</Literal>
</Para>
<Para>
If you encounter any problems, try <Command>ttmkfdir</Command> with the
<Command>- m</Command> switch. This will discard bad characters from the
font file. Specify a number such as 50 or l00
(<Command>ttmkfdir -m 50</Command>). The files themselves are text files.
Have a look:
</Para>
<Para>
<Literal>
<LiteralLayout>
$ less fonts.dir
114
webdings.ttf -microsoft-Webdings-medium-r-normal--0-0-0-0-p-0-microsoft-symbol
verdanaz.ttf -microsoft-Verdana-bold-i-normal--0-0-0-0-p-0-ascii-0
verdanaz.ttf -microsoft-Verdana-bold-i-normal--0-0-0-0-p-0-fcd8859-15
verdanaz.ttf -microsoft-Verdana-bold-i-normal--0-0-0-0-p-0-iso8859-15
verdanaz.ttf -microsoft-Verdana-bold-i-normal--0-0-0-0-p-0-iso8859-9
verdanaz.ttf -microsoft-Verdana-bold-i-normal--0-0-0-0-p-0-iso8859-1
[...]
</LiteralLayout>
</Literal>
</Para>
<Para>
Next, update xfs (may not be necessary for XFree86 4.x) and your X server's
FontPath:
</Para>
<Para>
<Literal>
<LiteralLayout>
# /etc/rc.d/init.d/xfs restart
$ xset +fp /usr/local/share/fonts/ttfonts
$ xset fp rehash
</LiteralLayout>
</Literal>
</Para>
<Para>
Rerun the first and last of these commands anytime your add or remove fonts.
<Command>xset +fp</Command> only needs to be run when adding a new font
directory to an existing Fontpath.
</Para>
<Para>
You should now be in business. You can check which fonts are available to X:
</Para>
<Para>
<Literal>
$ xlsfonts | less
</Literal>
</Para>
<Para>
or check them out further with <Command>xfontsel</Command>, or
<Command>gfontsel</Command>. If they are visible to
<Command>xlsfonts</Command>, then they are available to X and vice versa. If
they are not there, try restarting X with Ctrl-Alt-BS.
</Para>
</Sect4>
</Sect3>
</Sect2>
<Sect2>
<Title>xfsft</Title>
<Para>
<Ulink url="http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/">xfsft</Ulink>
is a TrueType solution from Juliusz Chroboczek. xfsft is based on the
FreeType font library as developed by Mark Leisher and others. It is
essentially is a patch for XFree86's xfs and related libraries -- xfs + ft.
Redhat's xfs is essentially xfsft with a few minor modifications. Also,
XFree86 4.x includes the <Literal>freetype</Literal> font module which is also
the result of Juliusz's work, and is one of the TrueType solutions available
for XFree86 4.x.
</Para>
<Para>
Building xfsft requires having at least some of the XFree86 source available,
in addition to xfsft itself, so this is not for the faint of heart.
Instructions for building and configuring xfsft are in the tarball, so I won't
go into details here. They are pretty straight forward. There are links to
binaries available at the xfsft home page (see above).
</Para>
<Para>
Note that you <emphasis>must</emphasis> also create
<FileName>fonts.scale</FileName> and <FileName>fonts.dir</FileName> files for
xfsft. <FileName>fonts.scale</FileName> can be created manually (ugh!), or with
the <Command>ttmkfdir</Command> utility. This is not included with xfsft but
you can grab it <ulink url="http://www.joerg-pommnitz.de/TrueType/ttmkfdir.tar.gz">here</ulink>, or
probably on many Linux archives sites too. Redhat has this as part of the
<FileName>Freetype</FileName> RPM.
</Para>
<Para>
You will also need a configuration file. Here is a sample:
</Para>
<BlockQuote>
<Para>
<Literal>
<LiteralLayout>
-----------------------------------------------------
clone-self = off
use-syslog = off
client-limit = 20
catalogue = /usr/local/share/font/ttfonts
error-file = /home/jec/fonts/xfs.errors
# in decipoints
default-point-size = 120
# x,y
default-resolutions = 100,100,75,75
-----------------------------------------------------
</LiteralLayout>
</Literal>
</Para>
</BlockQuote>
<Para>
You can then run start xfsft:
</Para>
<Para>
<Literal>
# xfs -port 7100 -config /path/to/your/config/file &
</Literal>
</Para>
<Para>
You can then add xfsft to the X server's <Literal>FontPath</Literal>:
</Para>
<Para>
<Literal>
$ xset +fp tcp/localhost:7100
</Literal>
</Para>
<Para>
If all goes well, you could then add this <Literal>FontPath</Literal> to
<FileName>XF86Config</FileName>.
</Para>
</Sect2>
<Sect2 id="falias">
<Title>The fonts.alias File</Title>
<Para>
<FileName>fonts.alias</FileName> is yet another font configuration file that
can be used to tweak how fonts are handled. Like <FileName>fonts.scale</FileName>
and <FileName>fonts.dir</FileName>, <FileName>fonts.alias</FileName> must be in
the same directory as the fonts you are aliasing. It is not mandatory however,
but does solve certain potential problems.Here is an example from the first
line of<FileName>/usr/X11R6/lib/X11/fonts/misc/fonts.alias</FileName> on
a Redhat system:
</Para>
<Para>
<Literal>
<LiteralLayout>
fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1
</LiteralLayout>
</Literal>
</Para>
<Para>
<Literal>fixed</Literal> is the 'alias' here. Any time this is requested, we
actually get the font definition from the second column. Font too small? Just
change the definition. (Warning: this is a critical file, at least on Redhat.)
The same principle applies to all fonts, including TrueType. In fact, if you
don't have TrueType, you could conceivably use this trick to have a
comparable Type 1, or other, font aliased as a TrueType.
</Para>
<Para>
<FileName>fonts.alias</FileName> is important for some applications that don't
handle the data provided by <FileName>fonts.scale</FileName> well. Most notably
here is Netscape. Without a <FileName>fonts.alias</FileName> you will find that
Netscape will only show point sizes of 0 and 12 available.
<FileName>fonts.alias</FileName> fixes this. You might also find that if you a
specify another size with the <Literal>scalable font</Literal> option under
<Literal>Preferences</Literal>, Netscape will not remember this setting.
Annoying! This is also fixed. So we really need this file. Sample excerpt from
a <FileName>fonts.scale</FileName>:
</Para>
<Para>
<Literal>
<LiteralLayout>
arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-ascii-0
arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-fcd8859-15
arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso8859-15
arial.ttf -monotype-Arial-medium-r-normal--0-0-0-0-p-0-iso8859-1
</LiteralLayout>
</Literal>
</Para>
<Para>
These are scalable so we don't get any predefined point sizes. We will need to
create our <FileName>fonts.alias</FileName> something like this excerpt for
Arial:
</Para>
<Para>
<Literal>
<LiteralLayout>
-monotype-Arial-medium-r-normal--6-60-0-0-p-0-iso8859-1 \
-monotype-Arial-medium-r-normal--9-90-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--7-70-0-0-p-0-iso8859-1 \
-monotype-Arial-medium-r-normal--9-90-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--8-80-0-0-p-0-iso8859-1 \
-monotype-Arial-medium-r-normal--10-100-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--9-90-0-0-p-0-iso8859-1 \
-monotype-Arial-medium-r-normal--11-110-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--10-100-0-0-p-0-iso8859-1 \
-monotype-Arial-medium-r-normal--12-120-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--11-110-0-0-p-0-iso8859-1 \
-monotype-Arial-medium-r-normal--12-120-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--12-120-0-0-p-0-iso8859-1 \
-monotype-Arial-medium-r-normal--12-120-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--13-130-0-0-p-0-iso8859-1 \
-monotype-Arial-medium-r-normal--13-130-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--14-140-0-0-p-0-iso8859-1 \
-monotype-Arial-medium-r-normal--14-140-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--15-150-0-0-p-0-iso8859-1 \
-monotype-Arial-medium-r-normal--15-150-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--18-180-0-0-p-0-iso8859-1 \
-monotype-Arial-medium-r-normal--18-180-75-75-p-0-iso8859-1
-monotype-Arial-medium-r-normal--24-240-0-0-p-0-iso8859-1 \
-monotype-Arial-medium-r-normal--24-240-75-75-p-0-iso8859-1
</LiteralLayout>
</Literal>
</Para>
<Para>
<emphasis>Please note that I have split each line for readability</emphasis>.
There should be two columns all on one line, without the <Quote>\</Quote>, and
separated by at least one space. This will keep Netscape happy. You might also
note the <Literal>pointsize</Literal> discrepancy between the first and second
columns of the first few rows. The first column of the first entry has a '6',
whereas this is aliased to a '9' in the second column, and thus '9' point.
This is by design and is an excellent way to overcome the Netscape 'damn tiny
fonts' syndrome. Adjust to suit your tastes, resolution, and eyesight.
</Para>
<Para>
This file can be created manually with a text editor, or conceivably with some
fancy sed or awk scripting. There is an excellent discussion of this file
<Ulink url="http://home.c2i.net/dark/linux.html#ttf">here</Ulink>. There is
also a link to a python script which can reportedly automatically generate
this file at this same site.
</Para>
</Sect2>
</Sect1>
<!-- ~~~~~ New Section ~~~~~ -->
<Sect1 id="x-4x">
<Title>XFree86 4.x</Title>
<Para>
<Ulink url="http://www.xfree86.org/4.0/">XFree86 4.0</Ulink>
introduced native support for TrueType fonts, along with other new
features. The enhanced font support is based on xfsft from Juliusz
Chroboczek, which in turn is based on the FreeType font library originally
from Mark Leisher, so the configuration is similar to xfsft and Redhat's
patched xfs.
</Para>
<Para>
The <Literal>FontPath</Literal> is still in <FileName>XF86Config</FileName>, as
always. For Redhat xfs users, this will mean moving the Redhat xfs
<Literal>FontPath</Literal> from <FileName>/etc/X11/fs/config</FileName> back to
<FileName>XF86Config</FileName>. Also, it should be noted that xfs is no longer
needed just for TrueType support. You may disable it, unless it is needed to
serve fonts to other clients in a network environment.
</Para>
<BlockQuote>
<Para>
<Literal>
<LiteralLayout>
Section "Files"
FontPath "/usr/X11R6/lib/X11/fonts/misc:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/misc"
FontPath "/usr/X11R6/lib/X11/fonts/Type1"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo"
FontPath "/usr/share/fonts/default/Type1"
FontPath "/usr/local/share/fonts/ttfonts"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi"
EndSection
</LiteralLayout>
</Literal>
</Para>
</BlockQuote>
<Para>
In order to use TrueType, you must also specify which <Literal>module</Literal>
the X server should be using in the "Module" section:
</Para>
<BlockQuote>
<Para>
<Literal>
<LiteralLayout>
Section "Module"
Load "freetype"
Load "speedo"
Load "type1"
EndSection
</LiteralLayout>
</Literal>
</Para>
</BlockQuote>
<Para>
You also must to create <FileName>fonts.scale</FileName> and
<FileName>fonts.dir</FileName> file ffor each TrueType font directory, just like
for xfsft and Redhat's xfs.
<ulink url="http://www.joerg-pommnitz.de/TrueType/ttmkfdir.tar.gz">ttmkfdir</ulink>
will come in handy for <FileName>fonts.scale</FileName>. See the xfs
<Xref LinkEnd="xfs"> above for more details and examples.
</Para>
<Para>
<Literal>xtt</Literal> is another available TrueType module that is best known
for supporting ideographic (Oriental) type fonts. You can use either, but only
one at a time.
</Para>
</Sect1>
<!-- ~~~~~ New Section ~~~~~ -->
<Sect1 id="apps">
<Title>Adjusting fonts in specific applications</Title>
<Sect2 id="kde">
<Title>KDE</Title>
<Para>
KDE is one of the best things that have happened to Linux and X in a
long time. It provides a consistent user interface that goes a long
way towards making Linux accessable to the average non-geek. More
information about KDE can be found at
<Ulink URL="http://www.kde.org/">http://www.kde.org/</ULink>. So why am
I singing it's praises here? This is because KDE 1.1 has a new feature
that will make the fonts and colors in your programs, including non-KDE
applications consistent with KDE's current style.
</Para>
<Sect3>
<Title>Applying KDE fonts and colors to non-KDE apps</Title>
<Para>
This is very easy. Simply start up the KDE Control Center, go to
Desktop, and go to Style inside Desktop. In there, there will be a
toggle switch labled "Apply fonts and colors to non-KDE apps". Turn it
on, click OK, and your done! The next time you start up many X
applications, they will use the same colors and fonts that your KDE
applications do. Some people may like this feature better than others,
but if you don't like it you can always turn it off.
</Para>
</Sect3>
</Sect2>
<Sect2>
<Title>Netscape</Title>
<Para>
Let's face it, Netscape is an important application in Linux. We all use it,
and we all need it, so let's look at it specifically for a minute. An out of
the box Netscape installation is prone to the font problems we've discussed --
large fonts that get pixelized, splotchy looking fonts, fonts so small they
are unreadable. In short, ugly. Maybe this is why you are here?
</Para>
<Para>
Hopefully, at this point you have followed the above suggestions. These steps
can help greatly. TrueType font availability is almost a necessity, and you
need a TrueType font server for this. Many web pages specify font families --
like Arial -- that are not typically available to Linux users. This is bad
design, but having some of the basic TrueType fonts available will help
greatly in overcoming the short-sightedness of some designers. Microsoft --
can't live with 'em, can't live without 'em.
</Para>
<Para>
Assuming you have TrueType working, from the Netscape menu select
<Literal>Edit -> Preferences -> Fonts</Literal>. Open the <Literal>Variable
Width Font</Literal> droplist on the right side of the window. Your TrueTypes
should be there along with other fonts. Choose which ever one suits your fancy
as the default. Check the <Literal>Allow Scaling</Literal> checkbox too. If
the available point sizes are 0 and 12, you can go down and, and enter your
desired point size in the box to the right and click on the
<Literal>OK</Literal> button. The downside to this is that Netscape will not
remember these settings, and you will have to do this each time you start
Netscape. <Emphasis>Unless</Emphasis> -- you have
<FileName>fonts.alias</FileName> set up already. Then this will solve these
problems. See <Xref LinkEnd="falias"> for more on <FileName>fonts.alias</FileName>.
</Para>
<Para>
You might consider experimenting with some <FileName>~/.Xdefaults</FileName> (or
perhaps it's<FileName>~/.Xresources</FileName> on your system) settings too:
</Para>
<BlockQuote>
<Para>
<Literal>
<LiteralLayout>
Netscape*DocumentFonts.sizeIncrement: 10
Netscape*documentFonts.xResolution*iso-8859-1: 120
Netscape*documentFonts.yResolution*iso-8859-1: 120
</LiteralLayout>
</Literal>
</Para>
</BlockQuote>
<Para>
The 'sizeIncrement' controls how much of a jump Netscape makes when different
'basefont' sizes are specified ala:
</Para>
<Para>
<Literal>
&lt;basefont size=7&gt;
</Literal>
</Para>
<Para>
for instance. The default is '20', which is a pretty good jump. Changing this
can help Netscape from scaling to too large and too small of a font. The x and
y resolutions are roughly equivalent to 'dpi' settings. Any random number
within reason can be used here. Experiment.
</Para>
<Para>
Then run:
</Para>
<Para>
<Literal>
$ xrdb -load ~/.Xdefaults
</Literal>
</Para>
<Para>
(or <FileName>.Xresources</FileName> as the case may be) and restart Netscape.
There are many settings that can be tweaked or altered this way. Look at the
<FileName>Netscape.ad</FileName> (app defaults) file that should be included
with Netscape packages.
</Para>
<Para>
If this approach does not get the job done as far as the 'tiny fonts'
problem in Netscape, then see the fonts.alias section above. You can really
fine tunes many things with this approach.
</Para>
<Para>
Mozilla configuration should be roughly the same.
</Para>
</Sect2>
</Sect1>
<!-- ~~~~~ New Section ~~~~~ -->
<Sect1 id="end">
<Title>Odds and Ends</Title>
<Sect2 id="notes">
<Title>Notes</Title>
<ItemizedList>
<ListItem>
<Para>
Unfortunately there is no unified font handling system for Linux. You will have
to configure each individual program so you can use TrueType, Type 1 or fonts
that pique your fancy. And each program may well have its own way of doing
this so you will have to RTFM.
</Para>
</ListItem>
<ListItem>
<Para>
Most GUI apps should be able to use TrueType, and Type 1 fonts too.
Wordperfect for Linux, however, cannot use TrueType. (See the
links section below for more on Wordperfect.) Text editors, terminal programs
and the like need fixed width fonts, and do not play well with TrueType or
other scalable fonts.
</Para>
</ListItem>
<ListItem>
<Para>
Though not discussed here, Type 1 fonts provide many of the same benefits
as TrueType. You likely have many of these installed already. Unfortunately
however, Type 1 are not a web standard like TrueType. But they are suitable
for many other purposes. They are where it's at for printing. See <Ulink
URL="http://www.ghostscript.com/">ghostscript</Ulink>for more on this.
</Para>
</ListItem>
<ListItem>
<Para>
Anti-aliasing is not supported by any version of XFree86.
</Para>
</ListItem>
<ListItem>
<Para>
While it is possible to specify a default point size for the xfs font
server, very few applications will actually use this value.
</Para>
</ListItem>
</ItemizedList>
</Sect2>
<Sect2 id="links">
<Title>Links</Title>
<ItemizedList>
<ListItem>
<Para>
The
<Ulink url="http://linuxdoc.org/HOWTO/XFree86-Video-Timings-HOWTO.html">Video
Timings HOWTO</Ulink>, the ins and outs of getting the most from your monitor.
</Para>
</ListItem>
<ListItem>
<Para>
<Ulink URL="http://www.linuxdoc.org/HOWTO/Font-HOWTO.html">Font HOWTO</Ulink>
Many good tips for installing fonts and for applications such as StarOffice,
Applixware, Wordperfect, Ghostscript, TeX/LaTeX.
</Para>
</ListItem>
<ListItem>
<Para>
A <Ulink URL="http://www.moisty.org/~brion/linux/TrueType-HOWTO.html">TrueType HOWTO</Ulink>, good tips for printing, and a few application specific tips.
</Para>
</ListItem>
<ListItem>
<Para>
<Ulink URL="http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/">xfsft Homepage</Ulink>,
TrueType font support for X. This is the origin of the "freetype" font module
for XFree86 4.x, and Redhat's xfs. Good site, and links to other information
related to fonts and TrueType.
</Para>
</ListItem>
<ListItem>
<Para>
<Ulink URL="http://X-TT.dsl.gr.jp/">X-TrueType Homepage</Ulink>, and yet
another TrueType Font server, especially good for Japanese, Chinese and Korean
character sets.
</Para>
</ListItem>
<ListItem>
<Para>
Tips on font size problems from
<Ulink URL="http://help.netscape.com/kb/consumer/19960513-54.html">Netscape</Ulink>.
</Para>
</ListItem>
<ListItem>
<Para>
<Ulink URL="http://www.rodsbooks.com/wpfonts/">Wordperfect for Linux -- Fonts
and Printers</Ulink> by Rod Smith, the author of
<CiteTitle>Using Corel Wordperfect 8 for Linux</CiteTitle>
from Que. Excellent information on Wordperfect and where TrueType fits in.
</Para>
</ListItem>
<ListItem>
<Para>
<Ulink URL="http://www.xfree86.org">XFree86 Project</Ulink>, the guys and gals
who do an incredible amount of work to give us a killer GUI environment. Some
info on fonts in
<Ulink url="http://www.xfree86.org/4.0/fonts.html">XFree86 4.x</Ulink>.
</Para>
</ListItem>
<ListItem>
<Para>
<Ulink URL="http://www.microsoft.com/typography/fontpack/default.htm">Microsoft
Web Fonts</Ulink> direct from the Lion's den -- and they are free! If you
don't have access to a win32 system to unpack these, then get the ones
labeled for Win3.1. These can be unpacked in Linux (see above).
</Para>
</ListItem>
<ListItem>
<Para>
<Ulink URL="http://rpmfind.net/linux/RPM/contrib/noarch/noarch/webfonts-1-3.noarch.html">Web Fonts RPM package</Ulink>,
contains a few of the MS web browser fonts.
</Para>
</ListItem>
<ListItem>
<Para>
<Ulink URL="http://www.fontsmart.com/fonts.htm">HP FontSmart TrueType
Fonts</Ulink>from Hewlett Packard -- Garamond, Bodoni, Dark Courier, Euro Sign
and Ozzie Black. Can be unzipped in Linux with the <Command>unzip</Command>
utility.
</Para>
</ListItem>
<ListItem>
<Para>
<Ulink URL="http://www.freewareconnection.com/fonts.html">Freeware Connection
-- Free Fonts Sites</Ulink> lots of links to lots of sites.
</Para>
</ListItem>
<ListItem>
<Para>
<Ulink URL="http://www.will-harris.com/fonts/freefonts.htm">Bitstream's
Geometric Slabserif</Ulink> TrueType Font.
</Para>
</ListItem>
</ItemizedList>
</Sect2>
</Sect1>
</Article>