The default fonts that ship with X11 are less than ideal
for typical desktop publishing applications. Large
presentation fonts show up jagged and unprofessional looking,
and small fonts are
almost completely unintelligible. However, there are several
free, high quality Type1 (PostScript®) fonts available which
can be readily used with X11. For instance, the URW font
collection (x11-fonts/urwfonts
) includes high
quality versions of standard type1 fonts (Times Roman®,
Helvetica®, Palatino® and others). The
Freefonts collection (x11-fonts/freefonts
) includes
many more fonts, but most of them are intended for use in
graphics software such as the Gimp,
and are not complete enough to serve as screen fonts. In
addition, X11 can be configured to use TrueType® fonts with
a minimum of effort. For more details on this, see the
X(7) manual page or the section
on TrueType® fonts.
To install the above Type1 font collections from the Ports Collection, run the following commands:
#
cd /usr/ports/x11-fonts/urwfonts
#
make install clean
And likewise with the freefont or other collections. To
have the X server detect these fonts, add an appropriate line
to the X server configuration file
(/etc/X11/xorg.conf
), which reads:
Alternatively, at the command line in the X session run:
%
xset fp+ /usr/local/lib/X11/fonts/URW
%
xset fp rehash
This will work but will be lost when the X session is
closed, unless it is added to the startup file
(~/.xinitrc
for a normal
startx
session, or
~/.xsession
when logging in through a
graphical login manager like XDM).
A third way is to use the new
/usr/local/etc/fonts/local.conf
file: see
the section on anti-aliasing.
Xorg has built in support
for rendering TrueType® fonts. There are two different
modules that can enable this functionality. The freetype
module is used in this example because it is more consistent
with the other font rendering back-ends. To enable the
freetype module just add the following line to the
"Module"
section of the
/etc/X11/xorg.conf
file.
Now make a directory for the TrueType® fonts (for
example,
/usr/local/lib/X11/fonts/TrueType
)
and copy all of the TrueType® fonts into this directory.
Keep in mind that TrueType® fonts cannot be directly taken
from a Macintosh®; they must be in UNIX®/MS-DOS®/Windows®
format for use by X11. Once the files have been copied into
this directory, use ttmkfdir to
create a fonts.dir
file, so that the X
font renderer knows that these new files have been installed.
ttmkfdir
is available from the FreeBSD
Ports Collection as
x11-fonts/ttmkfdir
.
#
cd /usr/local/lib/X11/fonts/TrueType
#
ttmkfdir -o fonts.dir
Now add the TrueType® directory to the font path. This is just the same as described above for Type1 fonts, that is, use
%
xset fp+ /usr/local/lib/X11/fonts/TrueType
%
xset fp rehash
or add a FontPath
line to the
xorg.conf
file.
That's it. Now Gimp, Apache OpenOffice, and all of the other X applications should now recognize the installed TrueType® fonts. Extremely small fonts (as with text in a high resolution display on a web page) and extremely large fonts (within StarOffice™) will look much better now.
All fonts in X11 that are found
in /usr/local/lib/X11/fonts/
and
~/.fonts/
are automatically
made available for anti-aliasing to Xft-aware applications.
Most recent applications are Xft-aware, including
KDE,
GNOME, and
Firefox.
In order to control which fonts are anti-aliased, or to
configure anti-aliasing properties, create (or edit, if it
already exists) the file
/usr/local/etc/fonts/local.conf
. Several
advanced features of the Xft font system can be tuned using
this file; this section describes only some simple
possibilities. For more details, please see
fonts-conf(5).
This file must be in XML format. Pay careful attention
to case, and make sure all tags are properly closed. The
file begins with the usual XML header followed by a DOCTYPE
definition, and then the <fontconfig>
tag:
As previously stated, all fonts in
/usr/local/lib/X11/fonts/
as well as
~/.fonts/
are already made available to
Xft-aware applications. If you wish to add another directory
outside of these two directory trees, add a line similar to the
following to
/usr/local/etc/fonts/local.conf
:
After adding new fonts, and especially new font directories, you should run the following command to rebuild the font caches:
#
fc-cache -f
Anti-aliasing makes borders slightly fuzzy, which makes very small text more readable and removes “staircases” from large text, but can cause eyestrain if applied to normal text. To exclude font sizes smaller than 14 point from anti-aliasing, include these lines:
Spacing for some monospaced fonts may also be inappropriate with anti-aliasing. This seems to be an issue with KDE, in particular. One possible fix for this is to force the spacing for such fonts to be 100. Add the following lines:
(this aliases the other common names for fixed fonts as
"mono"
), and then add:
Certain fonts, such as Helvetica, may have a problem when
anti-aliased. Usually this manifests itself as a font that
seems cut in half vertically. At worst, it may cause
applications to
crash. To avoid this, consider adding the following to
local.conf
:
Once you have finished editing
local.conf
make sure you end the file
with the </fontconfig>
tag. Not
doing this will cause your changes to be ignored.
Finally, users can add their own settings via their
personal .fonts.conf
files. To do
this, each user should simply create a
~/.fonts.conf
. This file must also be
in XML format.
One last point: with an LCD screen, sub-pixel sampling
may be desired. This basically treats the (horizontally
separated) red, green and blue components separately to
improve the horizontal resolution; the results can be
dramatic. To enable this, add the line somewhere in the
local.conf
file:
Depending on the sort of display,
rgb
may need to be changed to
bgr
, vrgb
or
vbgr
: experiment and see which works
best.
This, and other documents, can be downloaded from http://ftp.FreeBSD.org/pub/FreeBSD/doc/
For questions about FreeBSD, read the
documentation before
contacting <questions@FreeBSD.org>.
For questions about this documentation, e-mail <doc@FreeBSD.org>.