Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!news.mathworks.com!zombie.ncsc.mil!newsgate.duke.edu!news-feed-1.peachnet.edu!paperboy.wellfleet.com!news3.near.net!amber.ora.com!not-for-mail
From: norm@ora.com (Norman Walsh)
Newsgroups: comp.fonts,comp.answers,news.answers
Subject: comp.fonts FAQ: X11 Info
Supersedes:
Followup-To: poster
Date: 14 Aug 1996 10:35:29 -0400
Organization: O'Reilly and Associates, Inc.
Lines: 227
Sender: norm@ruby.ora.com
Approved: news-answers-request@MIT.Edu
Distribution: world
Expires: 27 Sep 1996 14:34:08 GMT
Message-ID:
References:
Reply-To: norm@ora.com (Norman Walsh)
NNTP-Posting-Host: ruby.ora.com
Summary: This posting answers frequently asked questions about fonts.
It addresses both general font questions and questions that
are specific to a particular platform.
X-Web-Homepage: http://www.ora.com/homepages/comp.fonts/
Xref: senator-bedfellow.mit.edu comp.fonts:48312 comp.answers:20526 news.answers:79247
Archive-name: fonts-faq/part15
Version: 2.1.5
Subject: 10. X11 Information
This section needs a lot of work. At the time of this release, I'm not
in a position to write it so I'm leaving it basically blank. Even if
you don't have time to write it, if you know what should be in this
section, please forward it to norm.
Subject: 10.1. Getting X11
The standard location for X software is ftp.x.org.
Subject: 10.2. Historical Notes about X11
The X Window System has been in widespread use through releases 3, 4,
and now 5 of X Version 11.
Fonts weren't really treated by the X Consortium very well until X11
release 5 (X11R5). In X11R3 and X11R4, the default format used by the X
servers was called SNF (server normal format). Basically the font was
formatted on disk in such a way that the X server could quickly read and
use it (it was basically a memory-dump). The important element of the
SNF format is that it was not a portable format: it depended on the
architecture of the machine running the server (little endian vs. big
endian, for example) and as a consequence you needed different directory
structures for different systems on your network. On top of that,
several systems vendors implemented their own font format, making font
portability even more difficult.
With X11R5, two things changed: the font service protocol was defined as
a standard and interoperable way for an X server to obtain fonts
(independent of their format, origin, or current location on disk) and
the default format for storing fonts was changed from SNF to PCF
(Portable Compiled Font). PCF is a format originally developed by DEC.
Its primary advantage is that it is not architecture dependent. That
is, if you compile a font to PCF format on different systems, then you
may end up having two different PCF files, but each system will be able
to read the other's file correctly.
Subject: 10.3. X11 Font Formats
There are many different font formats that can play a role in an X11
system configuration. The following table summarizes some of the
common formats:
* BDF
The Bitmap Distribution Format (BDF) is the standard format for
distribution of fonts. It is an ASCII format so it can easily be
edited it with your favourite editor or E-mailed to other users.
As the name suggests, it stores bitmap fonts only.
Another virtue of the BDF format is that most font format
converters convert to or from this format. Means if you want to go
from format A to format B, neither of which is BDF, then you are
likely to convert A to BDF, then BDF to B.
The BDF format is defined by Adobe. A document describing the
format is available by ftp from Adobe's file server at
"ps-file-server@adobe.com". It is also available in the standard X
distribution. Look under ../X11R4(5)/mit/hardcopy/BDF. This
document is also reproduced in any text describing the X standard.
* SNF
The Server Normal Format (SNF) is an older format for bitmap
fonts. The format is X Server and host dependent. This means that
if you have two SNF files, their actual format may be different.
Also, if you have an "snftobdf" utility, it may not be able to
read font files from other systems. Convert to BDF format before
you move it off the host system.
Snftobdf is one utility that can generate a BDF file from a SNF
file. It was part of the X11R4 contrib release. To compile under
X11R5, you need some of the X11R4 snf include files.
* PCF
The Portable Compiled Font (PCF) format is a binary format for
bitmap fonts. The binary contains sufficient information to be
readable by other systems.
* PHIGS
These fonts are only applicable in PEX environments. PHIGS fonts
don't really have any relationship to the normal X font mechanism.
* DWF
The DECWindows Fonts (DWF) are bitmap fonts.
* Intellifont
These are HP scalable fonts.
* PFA/PFB
These are Adobe Type 1 PostScript fonts.
They can be used in X11R5 based X servers and font servers because
IBM has donated a renderer for this format to the X Consortium.
The renderer can be found on the X11R5 contrib, and on ftp.x.org.
* Speedo
This is a format from Bitstream, Inc. Bitstream has also donated a
font renderer to the X Consortium, and a couple of fonts.
I have been told that in order to use commercial fonts from
BitStream, you must patch the renderer somewhat to make it use the
right decryption code for the font.
* FB
These are Sun X11/NeWS format bitmap fonts used by the Sun
OpenWindows system.
You can use "convertfont" which comes with OpenWindows to convert
to/from BDF.
* F3/F3B
This is the scalable Sun Folio format, also used by OpenWindows.
You can use "convertfont" to convert to (not from) BDF.
Subject: 10.4. X11 Font Server
X11 Release 5
=============
With X11 Release 5, the X Consortium has created a network-based
standard font protocol. As a user of the X Window System, you have an X
server on your desktop, which does the interface between the hardware
(screen, mouse, keyboard), and the X network protocol. This X server
needs fonts. Before X11R5, the only way it could get to those fonts
was to make font directories readable for the X server on that host,
either by NFS-mounting or by copying.
With the X Font Service protocol, you just tell your X server that it
must use the services of a font server, which is a daemon process
sitting on a host on your network. The font server is a program which
talks a standardized protocol on the network, and which is capable of
reading several font formats.
The font server sources are modular, such that it is easy to add a
renderer for an additional font format to the existing code. This is
obviously also the intention: the X Consortium provides the core
technology, and supposes that all systems vendors will add font
renderers for their proprietary formats to the code, and then ship that
to their customers.
If you have a multi-vendor environment, then you are supposed to run a
font server on every host that carries the font files. Then all of the
X servers on your network can put all the fonts they need in their font
path. Automatically, IBM fonts will be requested from the font server
on an IBM host, DEC fonts from a DEC host, etc.
Other benefits of using font server technology include the ability of
the font server to implement caching, provide for fault-tolerant setup,
etc.
A final example of the good use of the font server is the combination
of a font server with a Type 1 font renderer. As mentioned above, IBM
donated a Type 1 font renderer which can easily be built into the X
font server. As the Type 1 font format, and the ATM format are the same,
it is perfectly possible to use commercial ATM fonts with the X Window
System. See also /contrib/fonts/lib/font/Type1/ in the X11
distribution.
X11 Release 6
=============
The X11R6 font server is very similar to the X11R5 server described
above. Under X11R6, the font server has been renamed to xfs and the
Type 1 rendering engine is now incorporated into the base
distribution--it is no longer a contributed package.
Subject: 10.5. Fonts and utilities for X11
Here's a quick list of possible steps to get from "what you got" to X:
* Mac format bitmaps:
No idea. If you know how to read a Mac format bitmap file on some
other platform, please tell norm.
* PC format bitmaps:
Conversion to BDF is possible from TeX PK format and LaserJet
softfont format. Other conversions are also within the realm of
possibility. Feel free to ask norm for more information if you
have a specific conversion in mind.
* TeX PK format bitmaps:
PKtoBDF gets us directly to BDF format from here.
* Mac format postscript:
Under MS-DOS, conversion to PC format postscript allows the font to
be accessed with PS2PK (under *nix or MS-DOS). See above for TeX
PK to X conversions.
* PC/Unix format PostScript
Conversion to TeX PK with PS2PK allows you to get to BDF
(indirectly).
* XtoBDF, getbdf, FStoBDF
XtoBDF and getbdf are two public-domain applications which are
capable of asking an X server to give them all it knows about a
given font. They then print the BDF representation of that font on
stdout.
You can use these if you have an X server that can read some font
file, but nothing else can.
FStoBDF is distributed with X11R5.
If you use one of these programs, you may actually be converting a
scalable font into a bitmap font, but converting a bitmap font to a
scalable one is not currently possible.