mainUnifont - Summary

Membership Info
Project Admin:
1 active member

Group identification
Id: #11228
System Name: unifont
Name: Unifont
Group Type: Official GNU software

Search in this Group


This project is part of the GNU Project.

Unifont is a Unicode font with a glyph for every visible Unicode Basic Multilingual Plane code point and more, with supporting utilities to modify the font. The Unicode Basic Multilingual Plane covers the first 65,536 (or 2^16) Unicode code points.


Unifont is a creation of Roman Czyborra, who in 1998 lamented that seven years after Unicode's first release, there was still no single font that could display all Unicode characters. He suggested that if expectations of font quality were lowered to that of a bitmapped font, achieving coverage of Unicode would be easier.

Roman proposed a dual-width bitmapped font named Unifont with glyphs that were 16 pixels high and either 8 or 16 pixels wide. His glyphs were represented one per line as hexadecimal strings in the file "unifont.hex". He created a Perl script that would convert those hexadecimal strings to and from an intermediate plain-text grid representation for each glyph. The result could be edited with any text editor, then converted back into his hexadecimal string representation.

Roman also wrote a utility to convert his hexadecimal string representation into a BDF font.

Initially Unicode was a 16-bit encoding, allowing 2^16 = 65,536 code points. Today Unicode has grown beyond that early limitation. Its initial 16-bit range is now known as the Basic Multilingual Plane (BMP), or Plane 0. The BMP contains most of the world's scripts that are in current use. The Unicode encoding space now covers 17 such planes of 65,536 code points each.

Because of the limitations of TrueType, an individual font has a practical limitation of 65,536 code points. Supporting higher planes in Unifont requires the addition of new TrueType font files. This is planned for future releases.

Luis Alejandro González Miranda wrote FontForge scripts to convert Unifont into a TrueType font. Paul Hardy extended these scripts to support Unicode combining characters.

Paul Hardy also wrote utilities to convert Roman's "unifont.hex" format files to and from bitmapped graphics files for editing with a graphics editor. Andrew Miller wrote a number of Perl scripts for rendering glyphs, including his latest unifont-viewer program to directly view unifont.hex files graphically.

These and other utilities are part of the full source package.

Current State

Unifont now provides a glyph for every visible code point in the Unicode 9.0 Basic Multilingual Plane. Glyphs are also available to display four-digit hexadecimal numbers for unassigned code points, and code points in the Plane 0 Private Use Area (PUA). The source code contains instructions for adding these glyphs to the final font if desired.

The latest version of Unifont includes approximately 55,000 glyphs for all the visible Unicode BMP code points. Of this, almost 28,000 glyphs are Chinese-Japanese-Korean (CJK) ideographs from Qianqian Fang's Wen Quan Yi bitmap font, copied with Qianqian Fang's permission.

With fewer than 2,000 still unassigned code points remaining in the Unicode BMP and with Unicode's static preservation of visible code points, most of the work on Unifont's coverage of future Unicode BMP composition is done.

The latest versions now include glyphs beyond the Basic Multilingual Plane in a second font, as well as variants that include glyphs from Michael Everson's ConScript Unicode Registry.

Latest News

Unifont 9.0.06 Released

22 December 2016 Unifont 9.0.06 was released. This fixes two swapped Osage glyphs discovered after the 9.0.05 release, adds a missing dot to one mathematical glyph (U+22F5), and refines about 50 Pikto CSUR glyphs. At this point, the Pikto CSUR glyphs can be considered stable. Download this release at:

or if that fails,

Unifont 9.0.05 Released

11 December 2016 Unifont 9.0.05 was released. This includes several redrawn Cherokee glyphs to make them easier to read in running text. This also includes revised Pikto CSUR glyphs, after comparison of two copies of the Basic Pikto book. Download this release at:

or if that fails,

Following the release of Unifont 9.0.05, it was discovered that Osage glyphs U+0104D9 and U+0104DA were swapped. The current release is already uploaded into Debian's Unstable repository. After 10 days it should migrate to Debian's Testing repository. At that point (just before Grav-Mass), Unifont 9.0.06 will be released. Being so close to the Debian freeze date, the new version will wait for the 9.0.05 migration to Debian Testing. Recommendation: wait for the upcoming 9.0.06 release before updating your local copies.

Unifont 9.0.04 Released

29 October 2016 Unifont 9.0.04 was released. This corrects two mathematical glyphs that had been swapped, and adds a middle point to curly braces (there had been multiple requests for this change). This is a minor release; one more release is planned by the end of December that will touch up the Pikto CSUR glyphs. Download this release at:

Unifont 9.0.03 Released

21 October 2016 Unifont 9.0.03 was released. This adds the Pikto and Tonal CSUR scripts. Some existing glyphs were cleaned up, notably in Plane 0. Download this release at:

There is a page dedicated to the Pikto glyphs at:

Unifont 9.0.02 Released

27 August 2016 Unifont 9.0.02 was released. This release adds 3 CSUR scripts and modifies some glyphs. There is no longer a separate Unifont Upper CSUR font file; now there is one CSUR file and it only contains CSUR glyphs. This has reduced the size of the uncompressed package by about 14 Megabytes.

Unifont 9.0.01 Released

02 July 2016 Unifont 9.0.01 was released. This release reflects changes to Unicode introduced with Unicode 9.0.0 code charts, which were formally released on 21 June 2016. The Unicode Consortium made significant changes to several scripts in the Basic Multilingual Plane, which have been redrawn. Thanks especially to contributions from Johnnie Weaver, the Supplemental Multilingual Plane now includes all scripts that are easily drawn in a 16-by-16 pixel grid, including those newly introduced in Unicode 9.0.0.

Beyond the BMP

02 February 2014 The Unifont package now includes an additional font with glyphs beyond Unicode's Basic Multilingual Plane, referred to as "unifont_upper". In addition, the basic Unifont and the Upper-plane Unifont have variants that contain glyphs from Michael Everson's ConScript Unicode Registry (CSUR). Those variants have "_csur" in the font name.

This version also introduces a PSF version of a Unifont subset, for running GNU APL and other APL packages in console mode on GNU/Linux. The font is a monospaced, 512-glyph font named Unifont-APL8x16.psf.gz (with version number appearing before the ".psf.gz" in the repository).

Unifont in Fontforge

6 December 2013 Fontforge is the most popular free font design software and is available under a BSD license. It runs on all the common operating systems, not least of which is GNU/Linux. Fontforge uses Unifont as its font for sample glyphs if Unifont is installed on a system. The current version of Fontforge scales down Unifont's 16 pixel tall glyphs to about 14 pixels tall, causing blurring.

I (Paul Hardy) requested that the Fontforge community modify the appearance of these glyphs to be exactly 16 pixels tall. Dave Crossland, who currently leads Fontforge development, wants to make this happen and has entered my request into the Fontforge issue tracker at Github:

Once this change is made, Unifont glyphs rendered as samples will appear much sharper in Fontforge. Many people use Fontforge to design free fonts, so its clearer rendering of Unifont sample glyphs will have additional benefit to the free software community.

Notable Update to Chromium OpenType Sanitiser

31 January 2014 Mozilla has incorporated the OTS change that allows TrueType WOFF fonts that have larger POST tables, so the latest versions of Firefox and its derivatives should soon be supporting this.

20 November 2013 On 1 November 2013, I (Paul Hardy) learned that the Firefox web browser rejects Unifont as a downloadable web font because of its large TrueType POST table. The POST table was specified in the TrueType 2.0 spec in 2001 to only allow index entries 0 through 32,767. Index entry numbers 32,768 through 65,535 were reserved for future use.

Firefox uses the Google Chromium OpenType Sanitiser (OTS) to verify downloadable web fonts, as does Chrome. I mentioned this soft limit to someone at Google. He created revision r106 of the OTS to allow POST table entries up to the hard limit of 65,535. On 19 November 2013, this was pulled into the main code trunk for Chromium. See this Chromium code review.

Unifont was not the only casualty of this OTS rejection. The OTS also rejected the Wen Quan Yi font for the same reason. Wen Quan Yi is licensed under GPLv2 with a font embedding exception, and is the most comprehensive and popular free Chinese font available. So this update to the Chromium OTS will benefit users of Wen Quan Yi as well.

On 20 November 2013, I filed a bug report on Mozilla requesting that this new OTS revision be brought into Firefox. It should be a short time until this happens. When it does, Unifont should appear normally as a downloadable web font in Firefox.

Note that the Unifont utilities do not include a tool to generate a WOFF version of the TrueType font, so the Unifont package doesn't directly support this. However, it is something that could be added in the future (even faster if someone wants to donate a FontForge script to do this).

Another possibility for handling this limitation is for new versions of the Unifont TrueType font to use TrueType revision 3.0 formatting, which allows a POST table with no index entries. The caveat is that the behavior on PostScript printers is undefined.


To see a list of open bugs, go to the section below marked "Development Tools / Bug Tracker" and select "Browse Open Bugs". To submit a new bug, go to that same section below and select "Submit a New Item". Alternatively, you can email -unavailable- to submit a new bug.


The source code is licensed under GPLv2+. The font is licensed under GPLv2+ with GNU's font embedding exception. The Unifont Texinfo manual is licensed under GFDLv1.3+.

Additional Information

See Roman Czyborra's Unifont Page for historical background on Unifont's creation, and Paul Hardy's
Unifoundry website for more information on the latest release.

Registration Date: Sun Oct 27 01:38:47 2013
License: GNU General Public License v2 or later
Development Status: 5 - Production/Stable


Latest News rss feed
Unifont 9.0.06 Released
     posted by unifoundry, Fri Dec 23 16:31:59 2016 - 0 replies

22 December 2016
Unifont 9.0.06 has been released. This version is stable. The biggest change is a completed version of the Pikto ConScript Unicode Registry glyphs. Download this release at:


You can find more details about this release at

Unifont 9.0.04 Released
     posted by unifoundry, Sun Oct 30 00:56:29 2016 - 0 replies

29 October 2016
Unifont 9.0.04 was released. This corrects two mathematical glyphs that had been swapped, and adds a middle point to curly braces (there had been multiple requests for this change). This is a minor release; one more release is planned by the end of December that will touch up the Pikto CSUR glyphs. Download this release at:

Unifont 9.0.03 Released
     posted by unifoundry, Fri Oct 21 18:26:14 2016 - 0 replies

Unifont 9.0.03 is released. The main changes are the addition of the Pikto and Tonal ConScript Unicode Registry scripts. The package and related files can be downloaded at

Unifont 9.0.02 Released
     posted by unifoundry, Sat Aug 27 16:44:53 2016 - 0 replies

Unifont 9.0.02 is released. The package and related files can be downloaded at

[Submit News]
[7 news in archive]

Communication Tools
Mailing Lists Mailing Lists (1 public mailing-list)

Back to the top

Powered by Savane 3.1-cleanup1