The classic X Window System bitmap fonts are now available in an ISO
10646-1/Unicode extension.
UTF-8 xterm screenshot using 6x13.bdf
We have extended all the "-misc-fixed-*" fonts:
5x7 -Misc-Fixed-Medium-R-Normal--7-70-75-75-C-50-ISO10646-1
5x8 -Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO10646-1
6x9 -Misc-Fixed-Medium-R-Normal--9-90-75-75-C-60-ISO10646-1
6x10 -Misc-Fixed-Medium-R-Normal--10-100-75-75-C-60-ISO10646-1
6x12 -Misc-Fixed-Medium-R-Semicondensed--12-110-75-75-C-60-ISO10646-1
6x13 -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1
6x13B -Misc-Fixed-Bold-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1
7x13 -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-70-ISO10646-1
7x13B -Misc-Fixed-Bold-R-Normal--13-120-75-75-C-70-ISO10646-1
7x14 -Misc-Fixed-Medium-R-Normal--14-130-75-75-C-70-ISO10646-1
7x14B -Misc-Fixed-Bold-R-Normal--14-130-75-75-C-70-ISO10646-1
8x13 -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-80-ISO10646-1
8x13B -Misc-Fixed-Bold-R-Normal--13-120-75-75-C-80-ISO10646-1
9x15 -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1
9x15B -Misc-Fixed-Bold-R-Normal--15-140-75-75-C-90-ISO10646-1
10x20 -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1
Coverage
These fonts contain now all characters found in the following character sets:
-
ISO 8859 parts 1-5, 7-10, 13-15 (i.e., all parts except Arabic and Thai)
-
ISO 6937 and the CEN MES-1 European Unicode Subset
-
IBM/Microsoft code pages CP 437, 850, 1251, 1252, and many others
-
Microsoft/Adobe Windows Glyph List 4 (WGL4)
-
KOI8-R
-
DEC VT100 graphics symbols
The 6x13, 8x13, 9x15, 9x18, and 10x20 fonts cover a much larger repertoire
in addition, that covers the comprehensive CEN MES-3A European Unicode 3.2
Subset, the International Phonetic Alphabet, Armenian, Georgian, Thai,
Yiddish, all Latin, Greek, and Cyrillic characters, all mathematical symbols
(including the entire TeX repertoire), APL, Braille, Runes, and much
more. 9x15 and 10x20 also cover Ethiopian.
Newly added fonts
The following new "-misc-fixed-*" fonts were added:
6x13O -Misc-Fixed-Medium-O-SemiCondensed--13-120-75-75-C-60-ISO10646-1
7x13O -Misc-Fixed-Medium-O-Normal--13-120-75-75-C-70-ISO10646-1
8x13O -Misc-Fixed-Medium-O-Normal--13-120-75-75-C-80-ISO10646-1
9x18 -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1
9x18B -Misc-Fixed-Bold-R-Normal--18-120-100-100-C-90-ISO10646-1
12x13ja -Misc-Fixed-Medium-R-Normal-ja-13-120-75-75-C-120-ISO10646-1
18x18ja -Misc-Fixed-Medium-R-Normal-ja-18-120-100-100-C-180-ISO10646-1
18x18ko -Misc-Fixed-Medium-R-Normal-ko-18-120-100-100-C-180-ISO10646-1
6x13O, 7x13O and 8x13O are oblique/italic versions of 6x13, 7x13 and
8x13. 9x18 is an improved version of 9x15 that has more space above and
below the base characters to increase readability and to allow overstriking
combining characters to work properly. 18x18ja and 18x18ko provide Japanese
and Korean doublewidth ideograms for 9x18. 12x13ja provides Japanese
doublewidth ideograms for 6x13.
Adobe BDF fonts
I have also created revised ISO10646-1 versions of all the Adobe and B&H
pixel fonts that come with X11R6.4. They contained about 30 additional
Postscript characters (roughly the CP1252 repertoire) that were present in
the old ISO8859-1 BDF files, but were not encoded and therefore not
accessible for X clients. The revised ISO10646-1 versions contain not only
these but also many more automatically generated accented Latin characters
(e.g., all characters from ISO 8859 parts 1-4, 9-10, 13-15), and they also
fix a few long-standing bugs with the old fonts (missing NBSP, exchanged
multiplication/division sign, etc.).
Status
The fonts are now completed and implement at present version 3.2 of the
Unicode standard (ISO 10646-1/Amd.1:2002). I will maintain them to fix bugs
and to satisfy any newly reported user requirements. Note that the new fonts
fix a problem with the Latin-1 quotation mark and accents.
Download
The fonts are freely available with installation instructions and example
UTF-8 text files.
The "-misc-fixed-*" font package:
http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts.tar.gz
CJK ideographic wide character supplement (unpack into the same subdirectory as the above):
http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts-asian.tar.gz
The Adobe and B&H font package:
http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts-75dpi100dpi.tar.gz
There is also a change log file for the "-misc-fixed-*" fonts.
Other character sets
The font packages include the ucs2any.pl Perl script, which converts ISO
10646-1 fonts into any other encoding for which there is a Unicode mapping
table available. This way, you can quickly generate ISO 8859-* versions from
the above fonts automatically, for the benefit of older software that cannot
yet handle ISO 10646-1 fonts directly.
Distribution
I periodically contribute a recent snapshot of all of the above fonts to
XFree86 and they have been shipping as part of the XFree86 releases since
XFree86 4.1. I have also made them available to X.Org for inclusion into one
of the next official X11 distributions as a replacement for the current ISO
8859-1 BDF fonts (hopefully they will be in X11R6.7). The copyright status
of these fonts remains the same as for the original fonts in the X11
distribution, therefore any X11 server vendors are welcome to include them
into their products without payment of royalties.
-
Read the UTF-8 and Unicode FAQ for Unix/Linux for detailed general
information on how to use Unicode and its ASCII-compatible UTF-8 encoding
under Unix, Linux, X11, etc.
-
To use these ISO10646-1 fonts, you will need applications that support
ISO10646-1 fonts (hardly any software released before ~2001 does). These
are not simply 8-bit replacement fonts but usually need to be used
together with UTF-8 support in an application. For instance, if you want
to use these fonts with xterm, you need to use an xterm version that can
handle ISO10646-1 fonts (e.g., the one in XFree86 4.x).
-
The "-misc-fixed-*" fonts were created using Mark Leisher's xmbdfed font
editor, which you can also use to view and modify these fonts.
-
Unicode X11 font names end with -ISO10646-1. This is now the officially
registered value for the X Logical Font Descriptor (XLFD) fields
CHARSET_REGISTRY and CHARSET_ENCODING for all Unicode and ISO 10646-1
16-bit fonts. There is no registered XLFD scheme yet for ISO 10646
characters outside the BMP, though some proposals have been discussed.
-
Unicode and ISO 10646 merged CJK ideograph repertoires from several
groups of national source standards. In order to indicate that an
ISO10646-1 font with ideographic characters was designed following the
glyph style from one particular group of national source standards, the
ADD_STYLE_NAME XLFD field can be used to indicate the corresponding
language or region. Examples for such ADD_STYLE_NAME values areā¦
Luc Devroye's Font software page is a very comprehensive collection of
pointers to further font resources.
The XLFD distinguishes three options for the SPACING field:
P Proportional no restrictions on the metric
M Monospaced the logical width of every character is equal, but
"ink" is allowed to go beyond the logical width
C CharCell all characters are contained in boxes of equal size
The -misc-fixed-* fonts are all of the CharCell category, while the
fixed-width fonts of Adobe and B&H fall into the Monospaced category,
probably, because the renderer didn't guarantee that there is no
out-of-box ink.
XLFD
The X Logical Font Descriptor (XLFD) is a text string made up of 13 parts
separated by a minus sign, i.e.:
-Misc-Fixed-Medium-R-Normal-13-120-75-75-C-70-ISO8859-1
-Adobe-Helvetica-Medium-R-Normal-12-120-75-75-P-67-ISO8859-1
-
text name of font creator FAMILY_NAME
-
name of the font. Related fonts generally have the same base names; i.e. helvetica, helvetica narrow , etc. WEIGHT_NAME
-
usually one of [Light|Medium|Demibold|Bold] but other types may exist SLANT
-
one of [R|I|O]. i and o are used similarly, AFAIK SETWIDTH_NAME
-
[Normal|Condensed|Narrow|Double Wide] ADD_STYLE_NAME
-
not a classification field, used only for additional differentiation PIXEL_SIZE
-
0 = scalable font; integer typicially height of bounding box POINT_SIZE
-
typically height of bounding box in tenths of pixels RESOLUTION_X
-
horizontal dots per inch RESOLUTION_Y
-
vertical dots per inch SPACING
-
[P|M|C] p = proportional, m = monospaced, c = charcell. Charcell is a special case of monospaced where no glyphs have pixels outside the character cell; i.e. there is no kerning (no negative metrics). AVERAGE_WIDTH
-
unweighted arithmetic mean of absolute value of width of each glyph in tenths of pixels CHARSET_REGISTRY and CHARSET_ENCODING
-
the chararterset used to encode the font; ISO8859-1 for Latin 1 fonts