This page contains the latest release of the GNU Unifont, with glyphs for every printable code point in the Unicode 5.1 Basic Multilingual Plane (BMP). The BMP occupies the first 65,536 code points of the Unicode space, denoted as U+0000..U+FFFF.
This update (7 September 2008) only changes the positioning of Unicode combining diacritical marks in the TrueType version to better conform to the standard. All glyph shapes otherwise are unchanged from the 20 August 2008 version.
Note: After a long break from Unifont, I am now (December 2011) working on new glyphs added since the release of the complete Unicode 5.1 BMP. Stay tuned!
Initially I just posted my additions to Roman Czyborra's original unifont.hex file. Then in mid-January 2008, his website went down. So here's the whole font. Roman Czyborra has encouraged me to continue with my additions.
Roman's website is now back online, and you can read his Unifont description and motivation for its creation on his website, along with his archive of Unifont's changes: http://czyborra.com/unifont.
Luis González Miranda wrote a cool combination of scripts to convert the GNU Unifont from .hex format into FontForge .sfd format, then to have FontForge convert this to a TrueType outline font (see the Unicode Utilities web page on this site for more information). Pixels are drawn as outlined squares, so they scale to all point sizes. This works well with GNOME; I haven't tried it with any other Unix windowing environment. I've removed the OpenType SBIT font link from this page because the outline font is much more flexible.
Luis has given me permission to modify his scripts to convert the latest GNU Unifont versions to TrueType. Therefore without further ado, here's a gzipped tarball for Unix/Linux/*nix:
Here's a Winzip archive for Mac and Windows (unzip the file and copy to your Fonts folder):
For best appearance on a Mac in a Terminal window, select Terminal from the menu, then Preferences. A Settings window will appear. Make sure that you're on the Text tab in that window. Then make sure that the "Antialias text" box is checked. The TrueType version of the font should then look fine at point sizes of 12pt and larger. The font won't look very legible in a Mac Terminal window unless you select this antialias option.
Here is a PCF version of the font for Unices:
Finally, here is a BDF version of the font for Unices:
There are four versions of the font. The first is the one you'll most likely want for a bitmap display as it has combining circle marks removed. The TrueType and BDF font files were created from this first version. The versions with "full" in the name contain combining circle marks, pictures for noncharacters, etc. The versions with "-jp" in the name preserve Roman Czyborra's original CJK glyphs, which he obtained from a public domain Japanese font. The .hex files are about 3 Mbytes each.
Roman released his font and software as freeware: "All of my works you find here are freeware. You may freely copy, use, quote, modify or redistribute them as long as you properly attribute my contribution and have given a quick thought about whether Roman might perhaps be interested to read what you did with his stuff. Horizontal rules don't apply."
If you'd like to contribute any glyphs, please send them to unifoundry at this domain name (not spelled out because of spammers). You can download bitmaps for the ranges you'd like to edit (see the hyperlinks in the HTML table below). Then send me your modified .bmp file, or convert the .bmp file to a .hex file with my unibmp2hex conversion utility.
To see how a glyph should appear, consult the Unicode code pages at http://www.unicode.org/charts/.
Wen Quan Yi: Spring of Letters (文泉驛 / 文泉驿)
The biggest improvement to the GNU Unifont was the addition of over 20,000 new CJK glyphs from version 1.1 of Qianqian Fang's Unibit font. The Unibit font began as a combination of the original GNU Unifont and a basic CJK bitmap font placed in the public domain by the People's Republic of China. It adopted the GNU Unifont's scheme of 8x16 and 16x16 glyphs. Qianqian Fang and many others then added about 10,000 more glyphs.
Qianqian states in the Unibit distribution: "The entire CJK Unified Ideographics (U4E00-U9FA5) and CJK Unified Ideographics Extension A(U3400-U4DB5) blocks were replaced by high-quality glyphs from China National Standard GB19966-2005 (public domain)." Qianqian also drew the new 22 CJK ideographs in the range U+9FA6..U+9FBB that appear in this version of the Unifont.
The Wen Quan Yi Unibit font is released under version 2.0 of the GNU General Public license, with the exception that embedding the Unibit font in a document does not in itself bind the document to the conditions of the GNU GPL. See his website for more details: http://wqy.sourceforge.net/cgi-bin/enindex.cgi.
Wen Quan Yi (WQY) means "spring of letters," as in a spring of water. This is an interesting choice of words, as the British spelling of "font" is "fount" (but still pronounced "font").
The following code points in the latest unifont.hex file are taken from the WQY Unibit font (with my additions to complete the U+3000..U+33FF range, particularly the missing Hiragana, Katakana, and Kanji):
- U+2E80..U+2EFF: CJK Radicals Supplement
- U+2F00..U+2FDF: Kangxi Radicals
- U+2FF0..U+2FFF: Ideographic Description Characters
- U+3000..U+303F: CJK Symbols and Punctuation
- U+31C0..U+31EF: CJK Strokes
- U+3200..U+32FF: Enclosed CJK Letters and Months
- U+3300..U+33FF: CJK Compatibility
- U+3400..U+4DBF: CJK Unified Ideographs Extension A
- U+4E00..U+9FBF: CJK Unified Ideographs
- U+F900..U+FAFF: CJK Compatibility Ideographs
- U+FF00..U+FF60: Fullwidth Forms of Roman Letters
Qianqian has given his okay to add these CJK glyphs into the GNU Unifont. Likewise, I've told him to incorporate any glyphs he wants from my contributions to the GNU Unifont into his Unibit font.
Additions for 2008-09-07: TrueType Combining Diacritical Marks
The .hex, .bdf, and .pcf files are unchanged from the 2008-08-20 version. The .ttf (TrueType) font was modified to superimpose Unicode combining diacritical marks on the glyph that they follow, with no advance in cursor position.
Additions for 2008-08-20: Hangul Syllables
This release replaces the Hangul Syllables block with a light-stroke set of Hangul glyphs created by Changwoo Ryu from the free Baekmuk fonts.
Additions for 2008-08-08: CJK Imrpovements
This release improves the vertical positioning of Unified Han ideographs, and includes an overhaul of the Halfwidth and Fullwidth Forms for CJK use.
Additions for 2008-07-06: Braille Block Corrected
In 1998, Roman Czyborra wrote a Perl script to generate the Braille glyphs. He used it to create the U+2800..U+28FF range of the GNU Unifont. This script did not enumerate the Braille dot sequences correctly. He posted a corrected version of the script on his website in 2003, but the original unifont.hex file kept the incorrect Braille glyphs. I just learned of this while going through all of his Perl scripts. This latest version corrects that error.
Additions for 2008-06-20: Unicode 5.1 Complete BMP
A journey of a thousand glyphs begins with the first pixel, to paraphrase Lao Tzu. In this case, the journey began with some missing Latin glyphs and in the end added approximately 18,500 glyphs to the existing GNU Unifont for complete coverage of the Unicode 5.1 Basic Multilingual Plane.
This is the culmination of a 10 year effort, originally begun by Roman Czyborra in 1998. Since then, the GNU Unifont has been added to most free Unix systems (especially Linux distributions). David Starner was maintaining GNU Unifont software on Debian GNU/Linus for a while, but left the effort several years ago. Rich Felker created a new set of Tibetan glyphs during a point when GNU Unifont was not being maintained by anyone; I've now incorporated his improvements. Qianqian Fang began his Wen Quan Yi effort in 2004 with a focus on providing top-notch CJK ideographs in both bitmap and vector forms.
I am currently maintaining this font, and am glad to add any improvements that anyone wants to send (within as well as beyond the Basic Multilingual Plane). I'm going to experiment with breaking the 16-bit barrier in the future. Before doing that, I'd like to experiment more to see how some software (such as TeX) deals with more than 65,536 code points in a font.
Complex scripts (such as Arabic and the Brahmi-derived Indic scripts) exceed the limitations of the BDF font format. Yet Roman's philosophy was that it would be better to show something versus a dreaded empty box on the screen for any character in Unicode's Basic Multilingual Plane. Pursuing that philosophy, I've drawn over 8,000 glyphs even for complex scripts so every printable glyph would have some rendering.
Qianqian Fang and his Wen Quan Yi volunteers added the Unicode 5.1 Bopomofo (U+3100..U+312F), CJK Strokes (U+31C0..U+31EF), and CJK ideographs (U+9FBC..U+9FC3) for complete Unicode 5.1 coverage. Qianqian also drew examples of the clock and moon ideographs as a model for me to complete the U+3200..U+33FF range. I added the missing Hiragana, Katakana, Kanji, and Hangul. I also improved some existing Hiragana and Katakana in that range with expert oversight — thanks Yuko!
I changed the entire Hangul Syllables block of 11,172 glyphs (U+AC00..U+D7A3) to thin stroke glyphs. Roman had mentioned on his website wanting to do this someday. Jungshik Shin had written a Perl script in 1998 to convert a Hanterm font to the Unicode Hangul Syllables in .hex format. I made a couple of bug fixes to this script and used it to create BDF files covering the Hangul Syllables range for all four Hanterm Hangul fonts. See http://unifoundry.com/hangul/index.html for more details.
I adjusted the horizontal centering of all Yi Syllables and Yi Radicals. The Yi glyphs were for the most part moved left by one pixel so that they center on the eighth pixel across rather than the ninth pixel across.
Yi was traditionally written vertically from top to bottom or horizontally from right to left, according to the Unicode 5.0 Standard, p. 440. Therefore I made the center line of the glyphs the ninth pixel column, counting from the left rather than the eighth pixel. Today Yi is also written horizontally from left to right.
I attempted to create a set of Yi glyphs that would look good if written either horizontally (in either direction) or vertically. Some horizontal strokes are a little exaggerated as a result, to avoid excessive white space to the left and right of a glyph with horizontal writing. Some circles are also flattened a little for the same reason.
All Yi glyphs are 16 pixels wide. Most Yi glyphs are two pixels above the baseline. Some reach below this as a matter of necessity, to have the entire glyph fit within a 16x16 grid.
If a Yi font were only to be written horizontally, a combination of 12 and 16 pixels wide would probably allow ideal rendering of Yi. Currently the Unifont only supports 8 and 16 pixel glyph widths.
Additions for 2008-03-09
U+1100..U+11FF (Hangul Jamo): I replaced all existing glyphs in this range (there were just a fraction of the total needed) with thin stroke glyphs. Roman had expressed a desire to do this someday on his website. A 16x16 grid wasn't quite enough to draw one set of glyphs that could combine initial consonant + vowel + final consonant for all combinations. A cell height of 24 pixels would probably be okay.
GNU Unifont Unicode 5.1 Basic Multilingual Plane Coverage
Here's a summary of the percent completion of each range in the Basic Multilingual Plane:
Covered Range Script ------- ----- ------ 100.0% U+0000..U+007F C0 Controls and Basic Latin 100.0% U+0080..U+00FF C1 Controls and Latin-1 Supplement 100.0% U+0100..U+017F Latin Extended-A 100.0% U+0180..U+024F Latin Extended-B 100.0% U+0250..U+02AF IPA Extensions 100.0% U+02B0..U+02FF Spacing Modifier Letters 100.0% U+0300..U+036F Combining Diacritical Marks 100.0% U+0370..U+03FF Greek and Coptic 100.0% U+0400..U+04FF Cyrillic 100.0% U+0500..U+052F Cyrillic Supplement 100.0% U+0530..U+058F Armenian 100.0% U+0590..U+05FF Hebrew 100.0% U+0600..U+06FF Arabic 100.0% U+0700..U+074F Syriac 100.0% U+0750..U+077F Arabic Supplement 100.0% U+0780..U+07BF Thaana 100.0% U+07C0..U+07FF N'Ko 100.0% U+0800..U+08FF Unassigned 100.0% U+0900..U+097F Devanagari 100.0% U+0980..U+09FF Bengali 100.0% U+0A00..U+0A7F Gurmukhi 100.0% U+0A80..U+0AFF Gujarati 100.0% U+0B00..U+0B7F Oriya 100.0% U+0B80..U+0BFF Tamil 100.0% U+0C00..U+0C7F Telugu 100.0% U+0C80..U+0CFF Kannada 100.0% U+0D00..U+0D7F Malayalam 100.0% U+0D80..U+0DFF Sinhala 100.0% U+0E00..U+0E7F Thai 100.0% U+0E80..U+0EFF Lao 100.0% U+0F00..U+0FFF Tibetan 100.0% U+1000..U+109F Myanmar 100.0% U+10A0..U+10FF Georgian 100.0% U+1100..U+11FF Hangul Jamo 100.0% U+1200..U+137F Ethiopic 100.0% U+1380..U+139F Ethiopic Supplement 100.0% U+13A0..U+13FF Cherokee 100.0% U+1400..U+167F Unified Canadian Aboriginal Syllabics 100.0% U+1680..U+169F Ogham 100.0% U+16A0..U+16FF Runic 100.0% U+1700..U+171F Tagalog 100.0% U+1720..U+173F Hanunoo 100.0% U+1740..U+175F Buhid 100.0% U+1760..U+177F Tagbanwa 100.0% U+1780..U+17FF Khmer 100.0% U+1800..U+18AF Mongolian 100.0% U+18B0..U+18FF Unassigned 100.0% U+1900..U+194F Limbu 100.0% U+1950..U+197F Tai Le 100.0% U+1980..U+19DF New Tai Lue 100.0% U+19E0..U+19FF Khmer Symbols 100.0% U+1A00..U+1A1F Buginese 100.0% U+1A20..U+1AFF Unassigned 100.0% U+1B00..U+1B7F Balinese 100.0% U+1B80..U+1BBF Sundanese 100.0% U+1BC0..U+1BFF Unassigned 100.0% U+1C00..U+1C4F Lepcha 100.0% U+1C50..U+1C7F Ol Chiki 100.0% U+1C80..U+1CFF Unassigned 100.0% U+1D00..U+1D7F Phonetic Extensions 100.0% U+1D80..U+1DBF Phonetic Extensions Supplement 100.0% U+1DC0..U+1DFF Combining Diacritical Marks Supplement 100.0% U+1E00..U+1EFF Latin Extended Additional 100.0% U+1F00..U+1FFF Greek Extended 100.0% U+2000..U+206F General Punctuation 100.0% U+2070..U+209F Superscripts and Subscripts 100.0% U+20A0..U+20CF Currency Symbols 100.0% U+20D0..U+20FF Combining Diacritical Marks for Symbols 100.0% U+2100..U+214F Letterlike Symbols 100.0% U+2150..U+218F Number Forms 100.0% U+2190..U+21FF Arrows 100.0% U+2200..U+22FF Mathematical Operators 100.0% U+2300..U+23FF Miscellaneous Technical 100.0% U+2400..U+243F Control Pictures 100.0% U+2440..U+245F Optical Character Recognition 100.0% U+2460..U+24FF Enclosed Alphanumerics 100.0% U+2500..U+257F Box Drawing 100.0% U+2580..U+259F Block Elements 100.0% U+25A0..U+25FF Geometric Shapes 100.0% U+2600..U+26FF Miscellaneous Symbols 100.0% U+2700..U+27BF Dingbats 100.0% U+27C0..U+27EF Miscellaneous Mathematical Symbols - A 100.0% U+27F0..U+27FF Supplemental Arrows - A 100.0% U+2800..U+28FF Braille Patterns 100.0% U+2900..U+297F Supplemental Arrows - B 100.0% U+2980..U+29FF Miscellaneous Mathematical Symbols - B 100.0% U+2A00..U+2AFF Supplemental Mathematical Operators 100.0% U+2B00..U+2BFF Miscellaneous Symbols and Arrows 100.0% U+2C00..U+2C5F Glagolitic 100.0% U+2C60..U+2C7F Latin Extended - C 100.0% U+2C80..U+2CFF Coptic 100.0% U+2D00..U+2D2F Georgian Supplement 100.0% U+2D30..U+2D7F Tifinagh 100.0% U+2D80..U+2DDF Ethiopic Extended 100.0% U+2DE0..U+2DFF Cyrillic Extended - A 100.0% U+2E00..U+2E7F Supplemental Punctuation 100.0% U+2E80..U+2EFF CJK Radicals Supplement 100.0% U+2F00..U+2FDF Kangxi Radicals 100.0% U+2FE0..U+2FEF Unassigned 100.0% U+2FF0..U+2FFF Ideographic Description Characters 100.0% U+3000..U+303F CJK Symbols and Punctuation 100.0% U+3040..U+309F Hiragana 100.0% U+30A0..U+30FF Katakana 100.0% U+3100..U+312F Bopomofo 100.0% U+3130..U+318F Hangul Compatibility Jamo 100.0% U+3190..U+319F Kanbun 100.0% U+31A0..U+31BF Bopomofo Extended 100.0% U+31C0..U+31EF CJK Strokes 100.0% U+31F0..U+31FF Katakana Phonetic Extensions 100.0% U+3200..U+32FF Enclosed CJK Letters and Months 100.0% U+3300..U+33FF CJK Compatibility 100.0% U+3400..U+4DBF CJK Unified Ideographs Extension A 100.0% U+4DC0..U+4DFF Yijing Hexagram Symbols 100.0% U+4E00..U+9FCF CJK Unified Ideographs 100.0% U+9FD0..U+9FFF Unassigned 100.0% U+A000..U+A48F Yi Syllables 100.0% U+A490..U+A4CF Yi Radicals 100.0% U+A4D0..U+A4FF Unassigned 100.0% U+A500..U+A63F Vai 100.0% U+A640..U+A69F Cyrillic Extended - B 100.0% U+A6A0..U+A6FF Unassigned 100.0% U+A700..U+A71F Modifier Tone Letters 100.0% U+A720..U+A7FF Latin Extended - D 100.0% U+A800..U+A82F Syloti Nagri 100.0% U+A830..U+A83F Unassigned 100.0% U+A840..U+A87F Phags-pa 100.0% U+A880..U+A8DF Saurashtra 100.0% U+A8E0..U+A8FF Unassigned 100.0% U+A900..U+A92F Kayah Li 100.0% U+A930..U+A95F Rajang 100.0% U+A960..U+A9FF Unassigned 100.0% U+AA00..U+AA5F Cham 100.0% U+AA60..U+ABFF Unassigned 100.0% U+AC00..U+D7AF Hangul Syllables 100.0% U+D7B0..U+D7FF Unassigned 0.0% U+D800..U+DFFF Surrogate Pairs - Not Used 100.0% U+E000..U+F8FF Private Use Area 100.0% U+F900..U+FAFF CJK Compatibility Ideographs 100.0% U+FB00..U+FB4F Alphabetic Presentation Forms 100.0% U+FB50..U+FDFF Arabic Presentation Forms - A 100.0% U+FE00..U+FE0F Variation Selectors 100.0% U+FE10..U+FE1F Vertical Forms 100.0% U+FE20..U+FE2F Combining Half Marks 100.0% U+FE30..U+FE4F CJK Compatibility Forms 100.0% U+FE50..U+FE6F Small Form Variants 100.0% U+FE70..U+FEFF Arabic Presentation Forms - B 100.0% U+FF00..U+FFEF Halfwidth and Fullwidth Forms 100.0% U+FFF0..U+FFFF Specials
Here's a color-coded table of the entire GNU Unifont coverage. The "Reference" version contains the original .hex bitmaps, and includes noncharacters, combining circles, and other renderings removed from the final version. The "Final" version contains glyphs as they would appear in an ordinary font; these are the source of the .bdf and .ttf files.
All usable code point "pages" of 256 code points are green because the GNU Unifont now has complete coverage of the Unicode 5.1 Basic Multilingual Plane.
With the October 2009 release of Unicode 5.2, I'm working on adding the newly assigned code points in the Basic Multilingual Plane. Unicode 5.2 adds almost 1000 new assignments in the BMP. The next release will include these changes:
- Full coverage of the Unicode 5.2 Basic Multilingual Plane (the first 65,536 code points).
- Further additions for Unicode 6.0.
- Make some changes for errors and usage preferences requested since the Unicode 5.1 release. Notably the line drawing set will be half-width instead of full-width (I'll make the current full-width set available as a separate file in case anyone wants it for CJK).
- The Private Use Area will have each code point appear as a four-digit hexadecimal number, white on a black background.
- The Default Character will change from space (U+0020) to the Unicode Replacement Character (U+FFFD).
There are a few other things I'd like to do. In roughly the order I'd like to handle them, they are:
Add support for the Medieval Unicode Font Initiative (MUFI) in the
Private Use Area. Many glyphs proposed by the MUFI were adopted
in Unicode 5.1 in the "Latin Extended - D" range. Many others
still remain only in the Private Use Area. I've personally
lamented the absence of many medieval shorthand marks, ligatures,
etc. in the Unicode Standard. The "ct" ligature is one
very well-known example; it dates back at least to the Carolingian
script (which was known for only having a small number of ligatures
and for being highly legible). This ligature is still used today
for artistic effect. There are also thousands of medieval
The Unicode Consortium currently doesn't plan to assign new code points to more ligatures. This presents an unfortunate situation for medieval scholars wishing to exchange electronic information on ancient manuscripts. Some of that work involves discussing glosses laden with abbreviations common at the time. A shorthand abbreviation could have more than one interpretation (for example, an ending dash could signify "-um" or "-un", determined from the context). Thus it is not always a simple matter of transcribing the shorthand into Roman letters.
Adding support for these unassigned medieval glyphs is also a way of thanking in part those scholars who were Latin professors of mine from grade school to graduate school.
The MUFI has an open standard and encourages medieval scholars and font designers to participate. See http://www.mufi.info/ for more information. I wasn't sure that this font was the proper medium for such support, but I can't think of any way to better utilize the Private Use Area. Latin is not a complex script, so it lends itself well to this font.
- Possibly fine-tune Box Drawing glyphs so they align perfectly. I don't know all possible combinations in which they can be combined, so this would entail a complete review of all those glyphs.
- Extend the font beyond the Basic Multinlingual Plane. This is certain to break something on some system somewhere. I'll maintain parallel versions of the font when the range is extended.
- Possibly (if there is a use for it) support combining diacritical mark placement in the BDF and PCF versions of the font. With the TrueType version being far more flexible, I'm not sure that adding combining mark handling to the BDF and PCF versions are necessary (i.e., I'm not sure that the BDF and PCF versions will remain necessary).
Brahmi-derived (Indic) Scripts
Available Unicode glyph assignments do not suffice for proper rendering of these syllabic scripts in a BDF font. Nevertheless I've added these under the premise that a rendering of something is better than nothing. They might be of use as a starting point for someone who wants to experiment with Microsoft's Volt, or with the SIL's Graphite, or something new.
A big challenge with Indic scripts is that they are abugidas, where a consonant sign is pronounced with an inherent following vowel (usually short "a"). When two consonants are joined, sometimes the first consonant is written in a half-form to denote that the inherent vowel is dropped. Many consonant conjunctions have unique glyphs, yet they do not have unique code points in Unicode. The most common example in modern Hindi is "k" + "ssa." The way this conjunction is written as a single glyph bears little resemblance to the original letters, yet Unicode has no code points for such combinations.
Fonts for these scripts have resorted to placing such essential glyphs in a Private Use Area. In fact, the Unicode 5.1 Standard even proposes that a font store Tamil syllables in a Private Use area. That defeats the whole purpose of Unicode as a standard encoding of the world's scripts, but is necessary for rendering under Unicode's current limitations. It is an artifact of the Unicode consortium adopting the Indian Government's ISCII-1988 standard. In the 1980s, the Indian government was concerned with simple sorting algorithms that did not require much memory.
Unicode 5.0, like ISCII-1988, only contains two of the many accent marks used for reciting of the Sanskrit Vedas. There is a movement to add such accents to the Unicode standard. A good summary of proposed additions to Unicode (with example glyphs for missing accents in the Devanagari script) appears at http://www.omkarananda-ashram.org/Sanskrit/vedicaccents.htm. They are seeking others to review their list of glyphs, and to notify them of equivalent glyphs in scripts besides Devanagari.
Another effort to add Vedic marks to the Unicode Standard is being coordinated by the Sanskrit Library (http://sanskritlibrary.org/) and hosted by Brown University. See http://www.language.brown.edu/Sanskrit/VedicUnicode/ for the latest status. Thanks to Jaldhar Vyas for this update.
Arabic and Other Semitic Scripts
Arabic letters have up to four different shapes each that are a natural development of its cursive written form: one when a letter appears isolated from other letters; one when a letter appears at the beginning of a word; one with a letter appears in the middle of a word; and one when a letter appears at the end of a word.
Unicode only provides one code point for each letter. The font technology must therefore know how to draw each Arabic letter through extensive ligature tables. This is beyond the capability of an ordinary BDF font file, so the GNU Unifont does not provide full support for Arabic or other Semitic scripts. The Unifont glyphs show Arabic letters in their isolated forms so that at least something will be rendered.
Now You See It...
Initially, I wanted to find out what glyphs remained to be drawn
to complete the GNU Unifont. One problem was that the
unifont.hex file did not include filler glyphs
for the unassigned code points and noncharacters.
So I created the following file, which mimics the striped lines from the Unicode code blocks for all fillers. Note that new releases of Unicode will assign glyphs to some of these previously unassigned code points. At that time, the corresponding blank entries in this file should be removed.
I am placing these filler glyphs in the public domain. Do what thou wilt.
This file contains filler glyphs for all Unicode BMP code points that do not have assigned glyph representations in the published Unicode 5.1 standard, not counting the surrogate code points (U+D800 through U+DFFF) or the BMP Private Use code points (U+E000 through U+F8FF). My reference was the CD-ROM included in the back of the Unicode 5.0 Standard book, plus updates for Unicode 5.1 from the unicode.org website.
This Unicode 5.1 version has 3658 filler glyphs for the Basic Mulitlingual Plane. The Unicode 5.0 version had 4667 filler glyphs. Unicode 5.1 added over 1000 glyphs to the Basic Multilingual Plane. Each filler glyph looks like this:
Additional Glyphs — 31 December 2007
I've added over 100 glyphs that can be incorporated into the GNU Unifont to complete the range U+0000 through U+05FF. Code points U+0360, U+0361, and U+0362 had a spurious pixel set in the original file; I made new glyphs with that pixel erased.
These glyphs are available under the GNU General Public License. Many of them were derived by copying and pasting a cell (generated by unihex2bmp) in a graphics editor.
A patch file that contains the additions that Roman posted on his website, plus
Debian additions through version 1.04, plus the above-mentioned blanks,
plus the 100+ additional glyphs that I created is at
This can be applied to Roman Czyborra's original
Historical Note: This patch file applied to the original unifont.hex file was available for a brief period on Roman Czyborra's website before it went down. He asked me to continue my additions to the GNU Unifont, so for now I'm making updates available as entire font files.