Skip to content
HN On Hacker News ↗

Unicode fonts and tools for X11

▲ 43 points 12 comments by kristianp 2w ago HN discussion ↗

Pangram verdict · v3.3

We believe that this document is fully human-written

1 %

AI likelihood · overall

Human
100% human-written 0% AI-generated
SEGMENTS · HUMAN 8 of 8
SEGMENTS · AI 0 of 8
WORD COUNT 1,451
PEAK AI % 7% · §2
Analyzed
Jun 6
backend: pangram/v3.3
Segments scanned
8 windows
avg 181 words each
Distribution
100 / 0%
human / AI fraction
Verdict
Human
Pangram v3.3

Article text · 1,451 words · 8 segments analyzed

Human AI-generated
§1 Human · 3%

The classic X Window System bitmap fonts are now available in an ISO 10646-1/Unicode extension.

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

§2 Human · 7%

-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 now contain 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, in addition, a much larger repertoire that includes the comprehensive CEN MES-3A European

§3 Human · 6%

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

§4 Human · 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 to 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 complete and currently implement 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.

§5 Human · 1%

The “-misc-fixed-*” font package: https://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts.tar.gz CJK ideographic wide character supplement (unpack into the same subdirectory as the above): https://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts-asian.tar.gz The Adobe and B&H font package: https://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 in 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).

Copyright

Who created the original -misc-fixed-* ASCII fonts or the later ISO 8859-1 extension is not documented. They most likely came from either MIT Project Athena or its industrial partner DEC in the 1980s. Most of these fonts contained the following property in the header of the BDF file: COPYRIGHT "Public domain font. Share and enjoy."

The contributors of the *-ISO10646-1 extensions agreed to keep it that way, i.e., we haven't changed any of these copyright strings.

§6 Human · 2%

It is very unlikely that such low-res pixel fonts could even be copyrighted, as they are clearly pictures and not computer programs, and as there are only a limited number of ways to draw such glyphs in a recognisable way. (Some countries explicitly do not offer any copyright protection for typefaces; see, e.g., 37 C.F.R. § 202.1(e) in the United States. In some others, any such protection would expire after 25 years or less.)

Related information and links

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 and extended using Mark Leisher’s xmbdfed font editor, which later evolved into the gbdfed font editor (using GTK+ instead of Motif). You can use the latter to view and modify these fonts.

Unicode X11 font names end with -ISO10646-1. This is the value in the official X registry (git) 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.

§7 Human · 0%

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 of such ADD_STYLE_NAME values are:

ADD_STYLE_NAMEIRG SourceCountriesStandards zhGChina, Hong Kong, SingaporeGB2312, GB12345, GB7589, GB7590, GB8565, GB16500 zh_TWTTaiwanCNS 11643 jaJJapanJIS X 0208, JIS X 0212 koKKoreaKS C 5601, KS C 5657, PKS C 5700 viVVietnamTCVN 5773, TCVN 6056

ISO 639 language and ISO 3166 country/region codes should be preferred in ADD_STYLE_NAME. This way, if an application knows a style preference from, for example, the RFC 1766 code “xx-yy” in a language tag, or from the locale name “xx_YY.ZZZ”, it can search for a suitable font by looking for ADD_STYLE_NAME values in the following order of preference: “xx_YY”, “xx”, “”, “*”.

The specification of the BDF X11 pixel font format is available as Technical Note 5005 from Adobe or in a simplified form as part of the X11 documentation.

The fonts use the Adobe standard glyph names for Unicode fonts.

There is also a note on why the apostrophe and grave accent look different in the new fonts.

A bug in old GTK+ libraries is triggered by the presence of ISO10646-1 Helvetica fonts.

Other information relevant to Unicode font projects

The FreeType Project has implemented an open source version of the Microsoft/Apple TrueType font rendering engine. OpenType is a merger of the TrueType and Type1 font formats, with extensions for better handling of all scripts supported by Unicode.

§8 Human · 0%

ttf2bdf and xmbdfed by Mark Leisher allow you to generate X11 BDF pixel fonts from TrueType fonts and edit them.

PfaEdit is a free Type1, TrueType, OpenType and BDF font editor by George Williams.

Two free PostScript Type1 font editors that are currently under development are Spif by Matty Farrow and gfonted by Raph Levien.

Commercial vector font editors: Macromedia Fontographer, FontLab.

Taco Hoekwater has created a Unicode math font that can be used with PostScript Times Roman.

xfsft: TrueType Font Support For X is a set of patches to make X11 support TrueType fonts by Juliusz Chroboczek (included with XFree86 4.0).

Fonts in the X Window System by Nelson Beebe is a useful quick introduction. The XFree86 Font Deuglification Mini HOW-TO by Doug Holland also contains numerous good tips for setting up fonts under Linux/X11.

Luc Devroye’s Font software page is a very comprehensive collection of pointers to further font resources.

Ulf Jordan’s Misc-Fixed ISO 10646-1 Outline Font Project is to develop Type1 versions of the BDF font family provided here.

Nick Reinking prepared TrueType versions of the Latin-1 subsets of 6x13 and 6x13B.

The Electronic Font Open Laboratory in Japan is also working on a family of Unicode bitmap fonts.

Why are there no Indic or Syriac glyphs in the ucs-fonts package?

In European and East Asian scripts, each Unicode character can be represented by a single graphical shape (“glyph”). The X11 font system is entirely built around the idea that there is a one-to-one relationship between characters and glyphs, which works fine for Latin, Greek, Cyrillic, Hebrew, Han, Hiragana, Katakana, Hangul, etc.