mirror of https://github.com/tLDP/LDP
1866 lines
50 KiB
Plaintext
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 © 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/<path_to_fonts>/*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 & # 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>
|
|
<basefont size=7>
|
|
</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>
|