Unifoundry.com

GNU Unifont Glyphs


Home
GNU Unifont
Unicode Utilities
Unicode Tutorial
Hangul Fonts
Downloads
GNU Unifont 6.3 Unicode Chart
Unifont 6.3 Chart

GNU Unifont is part of the GNU Project. This page contains the latest release of GNU Unifont, with glyphs for every printable code point in the Unicode 6.3 Basic Multilingual Plane (BMP). The BMP occupies the first 65,536 code points of the Unicode space, denoted as U+0000..U+FFFF.

These font files are licensed under the GNU General Public License, either Version 2 or (at your option) a later version, with the exception that embedding the font in a document does not in itself constitute a violation of the GNU GPL. The full terms of the license are in LICENSE.txt.

The standard font build — this has glyphs for all printable characters in the Unicode 6.3 Basic Multilingual Plane, plus four-digit hexadecimal glyphs for unassigned code points. It does not contain glyphs for the Private Use Area (PUA). This gives the best appearance on the largest number of operating systems. Download the font in your favorite format:

Specialized versions — built by request:

On Windows or Mac OS X, unzip the .ttf.zip file or download the uncompressed .ttf file and copy the font to your Fonts folder. On Microsoft Windows, this folder is located under the Windows folder on your main disk. On a Mac, this is located under the Library folder on your main disk.

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.

All unifont.hex sources are in the full Unicode Utilities download.

Release Notes (20 October 2013)

This latest release is part of the GNU Project. You can view the GNU Project Unifont Page on Savannah.

This release re-aligns most single-line arrows in the various arrow drawing blocks; adjusts the hyphen to be 4 pixels wide, en dash to be 6 pixels wide, and em dash to be 8 pixels wide; centers some C1 Control glyphs that weren't previously centered; and swaps the glyphs for U+FE17 and U+FE18 from the original Unifont 6.3 release. There are some other less notable changes. See the README file in the source distribution for a detailed description of the glyph changes.

Unifont 6.3

Unifont 6.2

This was an interim release in preparation for the Unifont 6.3 release. Changes introduced included:

Initially I just posted my additions to Roman Czyborra's original unifont.hex file. Then in mid-January 2008, his website went down. So I started posting font updates here. Roman 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 Alejandro González Miranda wrote a cool combination of scripts to convert 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. I've modified his original scripts to handle Unicode combining characters.

Unifont 6.3 Glyphs

Click on each link in the table below to show each corresponding 256-code point range in the Unicode 6.3 Basic Multilingual Plane.

GNU Unifont Glyphs
Unicode Basic Multilingual Plane
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
D0 D1 D2 D3 D4 D5 D6 D7 Surrogate Pairs
Private Use Area
Private Use Area F9 FA FB FC FD FE FF

Current Coverage

The list below shows the scripts that are in the Unicode 6.3 BMP, with 100% coverage in this release of Unifont.

      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+083F  Samaritan
       100.0%  U+0840..U+085F  Mandaic
       100.0%  U+0860..U+089F  Unassigned
       100.0%  U+08A0..U+08FF  Arabic Extended - A
       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  Unified Canadian Aboriginal Syllabics Extended
       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+1AAF  Tai Tham
       100.0%  U+1AB0..U+1AFF  Unassigned
       100.0%  U+1B00..U+1B7F  Balinese
       100.0%  U+1B80..U+1BBF  Sundanese
       100.0%  U+1BC0..U+1BFF  Batak
       100.0%  U+1C00..U+1C4F  Lepcha
       100.0%  U+1C50..U+1C7F  Ol Chiki
       100.0%  U+1C80..U+1CBF  Unassigned
       100.0%  U+1CC0..U+1CCF  Sundanese Supplement
       100.0%  U+1CD0..U+1CFF  Vedic Extensions
       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  Glagolithic
       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  Unassigned
       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  Lisu
       100.0%  U+A500..U+A63F  Vai
       100.0%  U+A640..U+A69F  Unassigned
       100.0%  U+A6A0..U+A6FF  Bamum
       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  Common Indic Number Forms
       100.0%  U+A840..U+A87F  Phags-pa
       100.0%  U+A880..U+A8DF  Saurashtra
       100.0%  U+A8E0..U+A8FF  Devanagari Extended
       100.0%  U+A900..U+A92F  Kayah Li
       100.0%  U+A930..U+A95F  Rejang
       100.0%  U+A960..U+A97F  Hangul Jamo Extended - A
       100.0%  U+A980..U+A9DF  Javanese
       100.0%  U+A9E0..U+A9FF  Unassigned
       100.0%  U+AA00..U+AA5F  Cham
       100.0%  U+AA60..U+AA7F  Myanmar Extended - A
       100.0%  U+AA80..U+AADF  Tai Viet
       100.0%  U+AAE0..U+AAFF  Meetei Mayek Extensions
       100.0%  U+AB00..U+AB2F  Ethiopic Extended - A
       100.0%  U+AB30..U+ABBF  Unassigned
       100.0%  U+ABC0..U+ABFF  Meetei Mayek
       100.0%  U+AC00..U+D7AF  Hangul Syllables
       100.0%  U+D7B0..U+D7FF  Hangul Jamo Extended - B
         0.0%  U+D800..U+DFFF  Surrogate Pairs - Not Used
         0.0%  U+E000..U+F8FF  Private Use Area - drawn but not included
       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
    

What's Next?

Unicode 7.0 is expected some time in 2014. Unifont will incorporate any new Unicode 7.0 glyphs once the standard is formally released.

Some contributors have drawn glyphs in Unifont's hex format outside the BMP, notably Andrew Miller. Stay tuned for these additions.

There are a couple of other things I'd like to do:

Unifont 5.1 Release

This section is preserved for now for historical reasons. It might be removed in a future update. The current Unifont release includes changes that were made over a period of several years from the 5.1 release. During that time, I made significant changes to the utilities package that accompanies this font, and no longer build a version with combining circles by default. Thus everything released after the 5.1 release is organizationally different.

Here are the font files from the previous Unifont version 5.1 release.

http://unifoundry.com/unifont-5.1.20080907.ttf.gz (3 Mbytes)

Here's a Winzip archive for Mac and Windows (unzip the file and copy to your Fonts folder):

http://unifoundry.com/unifont-5.1.20080907.zip (3 Mbytes)

Here is a PCF version of the font for Unices:

http://unifoundry.com/unifont-5.1.20080820.pcf.gz (1 Mbyte)

Finally, here is a BDF version of the font for Unices:

http://unifoundry.com/unifont-5.1.20080820.bdf.gz (1 Mbyte)

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.

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 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 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):

Qianqian has given his okay to add these CJK glyphs into GNU Unifont. Likewise, I've told him to incorporate any glyphs he wants from my contributions to 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 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 (with earlier work dating to 1994). David Starner was propagating Roman's Perl scripts and adding users' glyph contributions 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 GNU Unifont now has complete coverage of the Unicode 5.1 Basic Multilingual Plane.

GNU Unifont (Reference Font Version)
Unicode 5.1 Basic Multilingual Plane Coverage
(Green=100%, Red=0%)
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
D0 D1 D2 D3 D4 D5 D6 D7 Surrogate Pairs
Private Use
Private Use F9 FA FB FC FD FE FF
 
GNU Unifont (Final Font Version)
Unicode 5.1 Basic Multilingual Plane Coverage
(Green=100%, Red=0%)
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
D0 D1 D2 D3 D4 D5 D6 D7 Surrogate Pairs
Private Use
Private Use F9 FA FB FC FD FE FF

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 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 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:

blank filler glyph

The Winzip version of this file is blanks-5.1.zip. The gzipped Unix/Linux version of this file is blanks-5.1.hex.gz.

Additional Glyphs — 31 December 2007

I've added over 100 glyphs that can be incorporated into 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.

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 GNU Unifont, so for now I'm making updates available as entire font files.

Valid HTML 4.01 Transitional Valid CSS! Best Viewed with Any Browser