Ergebnis für URL: http://www.dcs.ed.ac.uk/home/jec/programs/xfsft/ xfsft: Truetype Font Support For X
This page presents a set of patches to make X11 support TrueType fonts. The
patches can be compiled into an X server, or used to build a standalone font
server which will provide TrueType support to any X11R5 or later X server.
Please note: This page is no longer being maintained. Xfsft has now been
integrated with the main branch of [1]XFree86 as the `freetype' module, and the
standalone version is no longer current. Current versions of XFree86 include all
the features of xfsft, and more. For more information, please consult the
[2]fonts.README document included with XFree86 4.0 and later.
As to my own web site, [3]it has moved.
Table of contents:
* [4]The FreeType library
* [5]The Xfsft patches
* [6]Screenshots
* [7]Status and features
* [8]What are the alternatives?
* [9]Related information and links
* [10]A note for users of the RedHat distribution of the GNU/Linux system
* [11]Downloading
The FreeType Library
The FreeType library is a free rasteriser for TrueType fonts. It should work on
any machine with an ANSI C compiler -- no window system or particular OS is
necessary. Bindings are provided for C and Pascal; as the library does not use
callbacks, linking it with other languages should be easy.
You are invited to visit [12]the FreeType project page.
The Xfsft patches
Some time ago, I took over from Mark Leisher the task of writing a set of patches
to libfont.a -- the font backend of X11 -- to use the FreeType library to handle
TrueType fonts. The patched libfont.a can be linked either with the X font server
(xfs) or the X server itself and transparently allows all X applications to use
TrueType fonts.
Screenshots
Here are some [13]screenshots of common X applications running with TrueType
fonts.
More screenshots are available from [14]Jörg Pomnitz' xfsft page.
Status and features
Current versions seem very stable and portable.
Features:
* No code of the original X11R6.3 font library has been removed. This means
that the modified font server can still serve bitmaps, Speedo and Type 1
fonts.
* All the X11R6 font information (character metrics, font metrics, font
properties and information for the X11R6 scalable font enhancements) is
properly passed to the X server and to the application. The metrics are
precise.
* Proper handling of different endianness of client and server. This means that
you can run the font server on an Intel machine and the X server on a Sparc,
or vice-versa.
* On-the-fly reencoding: the same font can be opened under different character
encodings (say, iso8859-1 and iso8859-2) and will be automatically reencoded.
This is supported by the TrueType, Type 1 and Speedo backends (new in 1.0.3).
* Runtime loading of encodings: you may define new encodings by simply defining
them in plain text files (new in 1.0.2).
* Lazy rasterisation: a glyph is only rasterised when first needed (new in the
1.1.* branch). This optimisation is most useful with charcell fonts.
* Sharing of glyph and face data between fonts (new in 1.1.1).
* Support for TrueType Collections (new in 1.1.4).
Xfsft is distributed under the [15]X11 license.
Does it do font smoothing?
This is a question that people keep asking me. The short answer is no.
Font smoothing, or anti-aliasing, is a technique used by some rasterisers to make
fonts look better by using grayscale. Opinions differ on whether it actually
makes fonts more legible, or more [16]blurry, but it allows for sub-pixel
positioning of glyphs, which can dramatically enhance the appearance of
fully-justified text (the only program I know that takes advantage of this is
Adobe Acrobat Reader, although Acorn RiscOS reportedly also does so).
Although FreeType does support font smoothing, the modified libfont.a does not.
Adding font smoothing to X would require a major change to the system: in X,
glyphs are (monochrome) bitmaps, and there is no support for using pixmaps as
glyphs. Changing this would require the design and implementation of an extension
to both the X protocol and the font server protocol, and changing applications to
use the extensions.
(Since this was written, just [17]such an extension has been designed and partly
implemented.)
What are the alternatives?
Other than xfsft, there are at least two Free and a number of commercial servers
handling TrueType fonts.
Xfstt can be found on TSFKA Sunsite in the directory [18]Linux/X11/fonts. This
was (as far as I know) the first Free TrueType rasteriser available, and is
distributed under the Gnu Public License. It is written in C++, and has been
entirely written by one person (Herbert Dürr): the TrueType rasteriser, the
transport layer, and the interface between the two. This is an amazing feat.
Xfstt is very easy to use. In particular, it takes care of generating font
directories (in its own format). It is also very easy to compile and install.
Unfortunately, xfstt is not quite compatible with other X font servers. In
particular, it does not generate font properties, and differs from X11R6 in its
interpretation of the attributes field of glyph metrics (attributes was undefined
in earlier releases of X11).
[19]X-TrueType has been designed with Japanese and other Ideographic scripts
(Chinese, Korean) in mind.
There are a number of commercial offerings that provide TrueType to X11 systems.
I have only tried one of these (don't ask, they don't pay me for advertising),
and as far as I can tell without access to the sources, it seems okay.
Related information and links
* [20]Xfsft and encodings. Please read this if you have any encoding-related
problems with xfsft, such as missing glyphs that you know are in the font, or
glyphs in incorrect places.
* Where do I find [21]decent fonts on the net?
* [22]Information on printing with TrueType fonts under Unix.
* [23]A comparison of a few font renderers available under X11.
The [24]comp.fonts FAQ is unfortunately no longer maintained, but it is still a
must read for anyone who wants to gain a basic understanding of fonts.
If you want to learn more about fonts under X11R6, you could read X Logical Font
Description Conventions and eventually the introduction to The X Font Service
Protocol which can both be found in the xc/doc subdirectory of the X11
distribution. You may also want to learn about the [25]New Font Technology in
X11R6, a paper by Nathan Meyers [26]also available from WineHQ (Link to a PDF
file.)
There is a [27]Linux TrueType HOWTO in the works, which is by no means
GNU/Linux-specific. Some information on [28]Adding fonts to StarOffice, and
[29]Adding Fonts to ApplixWare.
Some of the encoding systems used: [30]Unicode, codepoint-for-codepoint identical
with ISO 10646, (see also [31]Markus Kuhn's FAQ and [32]ISO 8859 Roman Czyborra's
Character Soup (also has information about the Koi encodings).
Strongly related to fonts, but still in alpha: [33]a DPS extension for XFree86.
Somewhat off topic, but interesting, [34]an interview with David Dawes, the
best-beloved prez of the XFree86 project.
A note for users of the RedHat distribution of the GNU/Linux system
This section only applies to users of the RedHat distribution of the GNU/Linux
system. Users of other systems or of other Linux-based distributions may want to
[35]skip to the next section.
In version 6.0, the RedHat distribution of the GNU/Linux system is shipped with a
local version of XFree86 that is patched with xfsft 1.0.3p1 (the code is included
both in the X server and the font server). Therefore, if you use this
distribution, you do not need to separately install xfsft, unless you need the
new features of the 1.1 branch. You may still want to download the source
distribution of xfsft-1.0.3 and install the extra encoding files.
Unfortunately, the RedHat 6.0 distribution comes with a number of other local
changes that make their version of XFree86 non-standard. In particular, in a
somewhat simplistic attempt to make the system more secure, the font server is
prevented from listening to TCP sockets (fonts can therefore only be served
locally). Furthermore, the font server automatically forks and detaches itself
from its controlling terminal, while the standard font server expects the
invoking shell to fork it off.
For these reasons, you may want to stick to a standard version of the font
server. If you do so, you will need to use a different version of the rc script
used for invoking xfs; such a version is available either in the contrib
directory of my FTP directory, or in the RPMs provided by Sarantos Kapidakis (see
below).
Finally, there appears to be a bug in RedHat 6.0 (actually, in their version of
the C library headers) that prevents XFree86 to be compiled for a 386 or 486
machine (compiling for 586 or later or for non-Intel systems should work fine). A
workaround is to remove the flag -pedantic from the file xc/cf/xfree86.cf.
Please do not ask me to help you with configuring your RedHat system. (Or any
other system, for that matter.)
Downloading
Please note: Do not write to ask me to configure your system for you. Unless
you're my boss, I won't answer.
Sources to the patches and font server binaries for Solaris 2/Sparc and
GNU/Linux/Intel (Libc 6, Libc 5 for older versions) are available from
* [36]my xfsft download area (this always holds the newest distributed version,
including the latest public beta, but the FTP server is slow);
* the site formerly known as Sunsite at UNC in the directory
[37]Linux/X11/fonts;
* the British mirror of Sunsite at UNC, [38]Sunsite at IC;
* [39]any other mirror of Sunsite at UNC.
Important note: Building and usage instructions are in the source tarball. Please
download the source tarball and read the usage instructions.
Note: You are strongly encouraged to use the ttmkfdir utility by Jörg Pomnitz
together with Xfsft. You may find it at the first link below.
The binaries are statically linked with the FreeType library, which means that
you will not need to compile your own version of the library.
The following binaries were not built by me, and I do not take any responsibility
for them:
* GNU/Linux/Intel (Libc 6), binaries of the font server and a full set of X
servers, by Jörg Pomnitz. Jörg also offers a ready to use set of patches for
XFree86 3.3.3.1. Follow this link to [40]Jörg Pomnitz' xfsft page. This page
also contains some screenshots, as well as the essential ttfmkdir utility for
automatically installing TrueType fonts.
* GNU/Linux/Intel (Libc 6), a full set of XFree86 3.3.3.1 Debian packages,
available from [41]Miroslaw `Jubal' Baran's page. Note that this page is in
Poland, and your connection speed may vary.
* FreeBSD 2.2.6/Intel and 3.0/Intel as well as GNU/Linux/Intel (Libc 6)
binaries are available from [42]Stephen Montgomery-Smith's software page.
This page contains binaries for the font server and a full set of X servers,
as well as some building and installation hints that you might find useful
even if you're not running a BSD variant;
* an RPM with a font server for GNU/Linux/Intel (Libc 6) and an rc.d script is
available from [43]Sarantos Kapidakis' page;
* BSD/OS 4.0 binaries for the font server are available from [44]Bert Driehuis'
page.
In order to build from sources, you will need the sources to libfont.a and xfs,
which are part of the X11R6 distribution (I work with X11R6.3 fix 2). If you
don't already have them, you can try your luck with [45]XFree86 (not only for
Intel systems) or [46]The Open Group.
____________________________________________________________________________
[47]Juliusz Chroboczek.
Copyright © 1998-1999 by Juliusz Chroboczek
Permission is hereby granted, free of charge, to any person obtaining a copy of
this material, to deal in it without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of this material, and to permit persons to whom this material is
furnished to do so, subject to the following conditions:
* The above copyright notice and this permission notice shall be included in
all copies or substantial portions of this material.
* THIS MATERIAL IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THIS MATERIAL OR THE USE OR OTHER DEALINGS IN
THIS MATERIAL.
References
1. http://www.xfree86.org/
2. http://www.xfree86.org/current/fonts.html
3. http://www.pps.jussieu.fr/~jch/
4. https://www.dcs.ed.ac.uk/home/jec/programs/xfsft/#FREETYPE
5. https://www.dcs.ed.ac.uk/home/jec/programs/xfsft/#XFSFT
6. https://www.dcs.ed.ac.uk/home/jec/programs/xfsft/#SCREENSHOTS
7. https://www.dcs.ed.ac.uk/home/jec/programs/xfsft/#STATUS
8. https://www.dcs.ed.ac.uk/home/jec/programs/xfsft/#ALTERNATIVES
9. https://www.dcs.ed.ac.uk/home/jec/programs/xfsft/#LINKS
10. https://www.dcs.ed.ac.uk/home/jec/programs/xfsft/#REDHAT
11. https://www.dcs.ed.ac.uk/home/jec/programs/xfsft/#DOWNLOADING
12. http://www.freetype.org/
13. https://www.dcs.ed.ac.uk/home/jec/programs/xfsft/screenshots.html
14. http://www.joerg-pommnitz.de/TrueType/xfsft.html
15. http://www.gnu.org/philosophy/x.html
16. https://www.dcs.ed.ac.uk/home/jec/programs/xfsft/images/xterm-blurred.gif
17. http://www.xfree86.org/~keithp/render/
18. ftp://ftp.metalab.unc.edu/pub/Linux/X11/fonts/
19. http://hawk.ise.chuo-u.ac.jp/student/person/tshiozak/x-tt/
20. https://www.dcs.ed.ac.uk/home/jec/programs/xfsft/encodings.html
21. https://www.dcs.ed.ac.uk/home/jec/programs/xfsft/fonts.html
22. https://www.dcs.ed.ac.uk/home/jec/programs/xfsft/printing.html
23. https://www.dcs.ed.ac.uk/home/jec/programs/xfsft/renderers.html
24. http://www.netmeg.net/faq/computers/fonts/
25. http://www.teleport.com/~nmeyers/x11r6_fonts/x11r6_fonts_94_paper.pdf
26. http://www.winehq.com/x11r6_fonts_94.pdf
27. http://pobox.com/~brion/linux/TrueType-HOWTO.html
28. http://www.mindspring.net/~john_mcl/adding_fonts.html
29. http://www.channel1.com/users/rodsmith/fonts.html
30. http://www.unicode.org/
31. http://www.cl.cam.ac.uk/~mgk25/unicode.html
32. http://czyborra.com/charsets/iso8859.html
33. http://dps.sourceforge.net/
34. http://www.physics.usyd.edu.au/~matthewa/catk/xfree-dawes.html
35. https://www.dcs.ed.ac.uk/home/jec/programs/xfsft/#DOWNLOADING
36. ftp://ftp.dcs.ed.ac.uk/pub/jec/programs/xfsft/
37. ftp://ftp.metalab.unc.edu/pub/Linux/X11/fonts/
38. ftp://sunsite.doc.ic.ac.uk/packages/Linux/sunsite.unc-mirror/X11/fonts/
39. ftp://ftp.metalab.unc.edu/pub/Linux/MIRRORS.html
40. http://www.joerg-pommnitz.de/TrueType/xfsft.html
41. http://abyss.lodz.pdi.net/~baran/tek/linux/xfree/
42. http://math.missouri.edu/~stephen/software/
43. http://web.mit.edu/sarantos/www/
44. http://utopia.knoware.nl/users/driehuis/
45. http://www.xfree86.org/
46. http://www.x.org/
47. http://www.pps.jussieu.fr/~jch/
Usage: http://www.kk-software.de/kklynxview/get/URL
e.g. http://www.kk-software.de/kklynxview/get/http://www.kk-software.de
Errormessages are in German, sorry ;-)