Subject: comp.fonts FAQ: X11 Info
From: [email-masked] (Norman Walsh)
Date: 14 Aug 1996 10:35:29 -0400
Newsgroups: comp.fonts,comp.answers,news.answers

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
       "[email-masked]".  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.