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 7.0 Basic Multilingual Plane (BMP). The BMP occupies the first 65,536 code points of the Unicode space, denoted as U+0000..U+FFFF. There is also growing coverage of the Supplemental Multilingual Plane (SMP), in the range U+010000..U+01FFFF, and of Michael Everson's ConScript Unicode Registry (CSUR).
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 — with and without Michael Everson's ConScript Unicode Registry (CSUR) Private Use Area (PUA) glyphs. Download in your favorite format:
- The Standard Unifont TTF Download: unifont-7.0.03.ttf (12 Mbytes)
- Glyphs above the Unicode Basic Multilingual Plane: unifont_upper-7.0.03.ttf (1 Mbyte)
- Unicode Basic Multilingual Plane with CSUR PUA Glyphs: unifont_csur-7.0.03.ttf (12 Mbytes)
- Glyphs above the Unicode Basic Multilingual Plane with CSUR PUA Glyphs: unifont_upper_csur-7.0.03.ttf (1 Mbyte)
- PCF: unifont-7.0.03.pcf.gz (1 Mbyte)
- BDF: unifont-7.0.03.bdf.gz (1 Mbyte)
Specialized versions — built by request:
- SBIT: Special version at the request of the FontForge community showing dashed combining circles (as in the Unicode code charts) and including four-digit hexadecimal glyphs for the PUA, as a reference for designing other fonts; this is an SBIT font, not an outline font: unifont_sample-7.0.03.ttf (1 Mbyte)
- PSF: A highly specialized console frame buffer font consisting of 512 glyphs for use with APL, A Programming Language, in console mode: Unifont-APL8x16-7.0.03.psf.gz (4 kbytes)
- HEX: All the Plane 0 glyphs in Roman's .hex format, for those who wish to experiment: unifont-7.0.03.hex.gz (1 Mbyte)
- HEX: The above .hex file with combining circles added: unifont_sample-7.0.03.hex.gz (1 Mbyte)
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.
This latest release is part of the GNU Project. You can view the GNU Project Unifont Page on Savannah.
01 July 2014 Release (Unifont 7.0.03):
- This release was made to add a missing man page for the unihexfill utility to the source files.
- Two glyphs were modified: "y" was reverted back to its original form, and the German double s was modified to have a larger curve at the top. Joshua Krämer drew the German double s final form.
- See the ChangeLog file in the source tarball for details.
29 June 2014 Release (Unifont 7.0.02):
- Modified a few glyphs in the Basic Multilingual Plane; see the ChangeLog file in the source tarball for full details.
- Nils Moskopp added many more glyphs in the Miscellaneous Symbols and Pictographs block.
- Umbreon126 contributed Pahawh Hmong, redrew Mahjong glyphs to fit better within the Mahjong tile space and look more like brush stroke ideographs, and improved several other existing glyphs.
- Paul Hardy added these scripts to the Supplemental Multilingual Plane,
mainly to complete scripts introduced in Unicode 5.2:
- Meroitic Hieroglyphs
- Meroitic Cursive
- Inscriptional Parthian
- Inscriptional Pahlavi
- Psalter Pahlavi
- Old Turkic
- Rumi Numeral Symbols
- Kana Supplement
- Shorthand Format Controls
- Alchemical Symbols
- There are still approximately 1000 glyphs missing from the SMP from before Unicode 7.0, and approximately 2000 glyphs missing from the SMP that were introduced in Unicode 7.0. If you would like to contribute, feel free to pick one of these missing scripts and draw it! Send a note first to make sure nobody else is working on the script. Note that Cuneiform, Cuneiform Numbers and Punctuation, Egyptian Hieroglyphs, and Bamum Supplement will not be drawn on a 16 by 16 pixel grid and so are not counted in those missing glyph figures. There are plans to draw those scripts on a 32 by 32 pixel grid in the future.
21 June 2014 Release (Unifont 7.0.01):
Complete coverage of the Unicode 7.0 Basic Multilingual Plane
- Paul Hardy drew the new Unicode 7.0 Plane 0 glyphs. He also redrew U+0D00, U+2702, and the Halfwidth Katakana variants block (U+FF65..U+FF9F), by request because the original Halfwidth Katakana glyphs were too tall. Thanks again to Yuko for checking this work. Incidentally, "yuko" means "freedom" in Japanese, which is very apropos for this work!
- Nils Moskopp contributed redrawn symbols for the "Aldus leaf" (U+2619), as well as U+2622 and U+26DF.
Growing coverage of the Unicode 7.0 Supplemental Multilingual Plane
- Andrew Miller drew the new glyphs for Playing Cards, Enclosed Alphanumeric Supplement, and Mathematical Alphanumeric Supplement.
- Nils Moskopp drew the glyphs added in Miscellaneous Symbols and Pictographs.
- Paul Hardy drew the glyphs for Phaistos Disc, Coptic Epact Numbers, Imperial Aramaic, Lydian, Old South Arabian, Old North Arabian, and Enclosed Ideographic Supplement (the last mostly modeled after Wen Quan Yi glyphs).
- Complete coverage of the Unicode 7.0 Basic Multilingual Plane
Click on each link in the table below to show each corresponding 256-code point range.
GNU Unifont Glyphs
Unicode Basic Multilingual Plane
|Private Use Area|
|Private Use Area||F9||FA||FB||FC||FD||FE||FF|
GNU Unifont Glyphs
Unicode Plane 14
GNU Unifont Glyphs
Private Use Area, Planes 0 and 15 — ConScript Unicode Registry
|F0||F1||F2||F3||F4||F5||F6||F7||F8||Unicode Assigned Code Points|
If you would like to contribute glyphs to the GNU Unifont effort, you can download the associated PNG file from the tables above (SMP and CSUR need additions). Then draw new glyphs in the 16-by-16 pixel area that is inside the inner box you see in the image on the left.
When done, erase the surrounding inner box and ruler lines around the inner box. You can then convert the .png file into a .hex file with the unipng2hex Perl script in the source tarball. Or you can just email the .png file to me as a contribution to this effort and I will do the conversion.
Q: Why is the outer grid so much larger than the 16-by-16 pixel inner box?
A: Because in a future version, unipng2hex, unihex2png, and other utilities should be able to handle larger glyphs.
I have dusted off the unipagecount program and modified it to look at any Unicode plane, from 0 to 16. I used it in 2008 only for Plane 0, before that plane was complete. The table below shows the current state of completion of the Supplemental Multilingual Plane (Plane 1). Any range in the table that doesn't have a green background has glyphs that need to be drawn. To see which scripts are in a particular range, consult the "Supplemental Multilingual Plane" list in the Current Coverage section below.
For example, the first non-green range is "0103". Clicking on that link shows that 43 glyphs need to be drawn, in the range U+010350..U+01037E. Examining the list for the Supplemental Multilingual Plane below shows that this range is the Old Permic script (just added in Unicode 7.0). The next non-green range is "0105". This is missing 93 glyphs, so it is more red than the "0103" range. That range is missing glyphs for Elbasan and Caucasian Albanian (also just added in Unicode 7.0). The next non-green range is "0106". This is completely red because it has no glyphs drawn. That range is missing glyphs for Linear A (also just added in Unicode 7.0). So the amount of red in the background gives a rough idea of how many glyphs still need to be drawn in a given range.
The list below shows the scripts that are in the Unicode Basic Multilingual Plane, with 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 Combining Diacritical Marks Extended 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 Myanmar Extended - B 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+AB6F Latin Extended - E 100.0% U+AB70..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
The list below shows the scripts that are in the Unicode Supplemental Multilingual Plane, with coverage in this release of Unifont. Scripts labeled "(Pending)" are being drawn currently.
Covered Range Script ------- ----- ------ 100.0% U+010000..U+01007F Linear B Syllabary 100.0% U+010080..U+0100FF Linear B Ideograms 100.0% U+010100..U+01013F Aegean Numbers 100.0% U+010140..U+01018F Ancient Greek Numbers 100.0% U+010190..U+0101CF Ancient Symbols 100.0% U+0101D0..U+0101FF Phaistos Disc 100.0% U+010280..U+01029F Lycian 100.0% U+0102A0..U+0102DF Carian 100.0% U+0102E0..U+0102FF Coptic Epact Numbers 100.0% U+010300..U+01032F Old Italic 100.0% U+010330..U+01034F Gothic 0.0% U+010350..U+01037F Old Permic (Pending) 100.0% U+010380..U+01039F Ugaritic 100.0% U+0103A0..U+0103DF Old Persian 100.0% U+010400..U+01044F Deseret 100.0% U+010450..U+01047F Shavian 100.0% U+010480..U+0104AF Osmanya 0.0% U+010500..U+01052F Elbasan (Pending) 0.0% U+010530..U+01056F Caucasian Albanian (Pending) 0.0% U+010600..U+01077F Linear A 100.0% U+010800..U+01083F Cypriot Syllabary 100.0% U+010840..U+01085F Imperial Aramaic 0.0% U+010860..U+01087F Palmyrene (Pending) 0.0% U+010880..U+0108AF Nabataean (Pending) 100.0% U+010900..U+01091F Phoenecian 100.0% U+010920..U+01093F Lydian 100.0% U+010980..U+01099F Meroitic Hieroglyphs 100.0% U+0109A0..U+0109FF Meroitic Cursive 100.0% U+010A00..U+010A5F Kharoshthi 100.0% U+010A60..U+010A7F Old South Arabian 100.0% U+010A80..U+010A9F Old North Arabian 0.0% U+010AC0..U+010AFF Manichaean 100.0% U+010B00..U+010B3F Avestan 100.0% U+010B40..U+010B5F Inscriptional Parthian 100.0% U+010B60..U+010B7F Inscriptional Pahlavi 100.0% U+010B80..U+010BAF Psalter Pahlavi 100.0% U+010C00..U+010C4F Old Turkic 100.0% U+010E60..U+010E7F Rumi Numeral Symbols 100.0% U+011000..U+01107F Brahmi 100.0% U+011080..U+0110CF Kaithi 0.0% U+0110D0..U+0110FF Sora Sompeng (Pending) 0.0% U+011100..U+01114F Chakma (Pending) 0.0% U+011150..U+01117F Mahajani 0.0% U+011180..U+0111DF Sharada (Pending) 0.0% U+0111E0..U+0111FF Sinhala Archaic Numbers 0.0% U+011200..U+01124F Khojki 0.0% U+0112B0..U+0112FF Khudawadi 0.0% U+011300..U+01137F Grantha 0.0% U+011480..U+0114DF Tirhuta 0.0% U+011580..U+0115FF Siddham (Pending) 0.0% U+011600..U+01165F Modi 0.0% U+011680..U+0116CF Takri (Pending) 0.0% U+0118A0..U+0118FF Warang Citi 0.0% U+011AC0..U+011AFF Pau Cin Hau 0.0% U+012000..U+0123FF Cuneiform* 0.0% U+012400..U+01247F Cuneiform Numbers and Punctuation* 0.0% U+013000..U+01342F Egyptian Hieroglyphs* 0.0% U+016800..U+0168BF Bamum Supplement* 0.0% U+016A40..U+016A6F Mro 0.0% U+016AD0..U+016AFF Bassa Vah 100.0% U+016B00..U+016B8F Pahawh Hmong 0.0% U+016F00..U+016F9F Miao (Pending) 100.0% U+01B000..U+01B0FF Kana Supplement 0.0% U+01BC00..U+01BC9F Duployan 100.0% U+01BCA0..U+01BCAF Shorthand Format Controls 100.0% U+01D000..U+01D0FF Byzantine Musical Symbols 100.0% U+01D100..U+01D1FF Musical Symbols 100.0% U+01D200..U+01D24F Ancient Greek Musical Notation 100.0% U+01D300..U+01D35F Tai Xuan Jing Symbols 100.0% U+01D360..U+01D37F Counting Rod Numerals 81.3% U+01D400..U+01D7FF Mathematical Alphanumeric Symbols (Pending) 0.0% U+01E800..U+01E8DF Mende Kikakui 0.0% U+01EE00..U+01EEFF Arabic Mathematical Alphabetic Symbols (Pending) 100.0% U+01F000..U+01F02F Mahjong Tiles 100.0% U+01F030..U+01F09F Domino Tiles 100.0% U+01F0A0..U+01F0FF Playing Cards 100.0% U+01F100..U+01F1FF Enclosed Alphanumeric Supplement 100.0% U+01F200..U+01F2FF Enclosed Ideographic Supplement 55.2% U+01F300..U+01F5FF Miscellaneous Symbols and Pictographs (Pending) 100.0% U+01F600..U+01F64F Emoticons 0.0% U+01F650..U+01F67F Ornamental Dingbats (Pending) 0.0% U+01F680..U+01F6FF Transport and Map Symbols (Pending) 100.0% U+01F700..U+01F77F Alchemical Symbols 0.0% U+01F780..U+01F7FF Geometric Shapes Extended (Pending) 0.0% U+01F800..U+01F8FF Supplemental Arrows - C (Pending)
*Note: Cuneiform, Cuneiform Numbers and Punctuation, Egyptian Hieroglyphs, and Bamum Supplement will not be drawn on a 16-by-16 pixel grid. There are plans to draw these scripts on a 32-by-32 pixel grid in the future.
Plane 14 has two scripts, both of which Unifont covers:
GNU Unifont Glyphs
|U+0E0100||U+0E01EF||Variations Selectors Supplement|
The list below shows the scripts that are in Michael Everson's ConScript Unicode Registry (CSUR) that have coverage in this release of Unifont:
GNU Unifont Glyphs
Private Use Area, Planes 0 and 15 — ConScript Unicode Registry
14 February 2014 Release:
- Added GNU Free Documentation License to COPYING file.
04 February 2014 Release:
- Added font properties back into TrueType fonts, but set foundry name to "Unifont" so the font would show properly in Libre Office.
- Added new fonts with support for Michael Everson's ConScript Unicode Registry (CSUR) and for glyphs above the Unicode Basic Multilingual Plane.
- Redrew various APL glyphs. This work is ongoing.
21 December 2013 Release:
- Temporarily withdrew font field properties from TrueType fonts because LibreOffice on GNU/Linux was using the foundry name as the entire font name.
- Redrew various APL glyphs. This work is ongoing.
17 December 2013 Release:
- Removed FontForge insertion of version information in the PCF font, because the resulting PCF font wasn't handled properly by all applications.
15 December 2013 Release:
- Added additional information to BDF fonts: X Logical Font Description (XLFD) fields added to the generated BDF files, to allow grub-mkfont to convert the BDF font into a PF2 font; BDF fonts now have different names for different fonts; BDF fonts now contain copyright information.
- TrueType fonts now perform greater simplification of vectors, resulting in smaller fonts and more efficient rendering.
- Redrew glyphs in the Armenian script, CJK Radical Supplement, and redrew the Capricorn symbol (U+2651).
10 October 2013 Release:
- Re-aligned most single-line arrows in the various arrow drawing blocks.
- Adjusted the hyphen to be 4 pixels wide, en dash to be 6 pixels wide, and em dash to be 8 pixels wide.
- Centered some C1 Control glyphs that weren't previously centered.
- Swapped 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.
30 September 2013: The original version of Unifont 6.3 was released,
the same day that The Unicode Consortium formally released Unicode Version 6.3.0.
This release provides a glyph for every printable character (code point) in the
Unicode Basic Multilingual Plane.
- Andrew Miller drew the glyphs added in Unicode 6.3.0.
- Errata for the Unicode 1.0 release, published only in printed form in The Unicode Standard version 1.1, has been checked. No new corrections to Unifont were necessary. The errata for Unicode 6.3.0, published by The Unicode Consortium on 30 September 2013, did not require any new changes to Unifont. Unifont now has been checked against all errata published by The Unicode Consortium from the very first errata published to the latest, with all corrections made as necessary.
- Because FontForge users found the combining circles useful as a reference, a new program was added to the sources to superimpose dashed combining circles on combining characters. The special BDF reference version of Unifont in the BDF font link above is the result.
- The Unifont 6.3 source release includes a program to generate a giant bitmapped graphics (.bmp) image of the entire font. You can see the image converted to a PNG file at the top of this page. This was something I had wanted to do for years but was using my free time for glyph drawing. What originally got me interested in this font was seeing this picture while searching for free Unicode fonts. I could not get permission to include the program that generated that picture into the Unifont source package, so finally for this release I wrote my own.
- While adding combining circles back into a unifont.hex file to create the image of the entire font, I noticed that some Syriac combining characters had been encoded as being single-width. Now all glyphs in the Syriac script are double-width.
- As I mentioned at the time of the Unifont 5.1 release, I've changed the Block Elements (U+2580..U+259F) widths. They are now all single-width. Unlike the Box Drawing glyphs (U+2500..U+257F), the Block Elements do not have a one-to-one correspondence with any DOS or Microsoft Windows code page. They are a superset of Microsoft's old block characters, and the full Unicode Block Element glyphs are very clearly shown as exact squares. This change will break rendering for anyone who has used those glyphs expecting, for example, the full block to be rendered as a perfect square as depicted in The Uniocde Standard. On the other hand, it will allow compatibility with the (now ancient) DOS character set. You can get the original set of double-width Block Elements here.
This was an interim release in preparation for the Unifont 6.3 release. Changes introduced included:
- Unifont 6.2 was released on 1 September 2013 and provided complete coverage of the Unicode 6.2 BMP. Because of problems with being able to release previous Hangul Syllables blocks with a GNU General Public License (which I was not aware of at the time of the Unifont 5.1 release), I created a new Hangul Syllables block — 11,172 glyphs in all — from scratch for this release. This took a lot of coaching over the past few years from Koreans who were from Korea, educating me on the finer points of drawing Hangul syllables. You can read the details in the pages on Hangul on this site. Anyone who has better mastery over Hangul than I do is welcome to improve upon the result. Thanks to Jeong-Mi (정미) for her help with this over the course of a couple of years. In June 2013, she was satisfied with the result. At that point I made those glyphs public. Then after drawing the remaining Unicode 6.2 glyphs that I hadn't yet drawn, the Unifont 6.2 release was made public. The completion of the Hangul Syllables block was the impetus behind the Unifont 6.2 release. For the first time, it became possible to release Unifont with one overall GNU license.
- As of the Unifont 6.2 release, there is just one final set of glyphs, not four. The one font file has no combining circle marks, and no longer uses the original CJK ideographs that Roman Czyborra had in the original Unifont. This simplification was done with Roman's approval. This one font variant is still available in TrueType, PCF, and BDF formats. This was part of a major restructuring I did of the sources over the past five years, though I waited for a new release until having the Hangul Syllables complete to avoid any further licensing issues.
As of the Unifont 6.2 source release, the blanks.hex file from the Unifont 5.1
release has been renamed to unassigned.hex, as part of the major restructuring
I had been doing with the source over the past five years.
As an alternative to Unicode's generic substitution character,
The Unicode Standard 5.0, p. 155 suggests rendering unassigned code points
either as a shaded box to convey that they are unassigned (hence the Unicode Code
Charts representing unassigned code points as shaded boxes, which is the convention
that I adopted earlier), or as a glyph containing the four-digit hexadecimal code
point for the Basic Multilingual Plane, or a six-digit hexadecimal code point for
higher planes. This recommendation has remained in Section 5.3 of
The Unicode Standard to this day. For example, see Section 5.3 in
The Unicode Standard Version 6.2 — Core Specification.
Here's a sample hex string of the previous gray box glyph, for historical purposes:
- When I first started filling in missing glyphs in Unifont in 2007, I realized that I needed a way to tell overall how many glyphs still remained to be drawn. There were about 8,500 missing glyphs scattered throughout the Basic Multilingual Plane plus about 10,000 glyphs missing in the Han Ideographic section. I couldn't quickly distinguish which areas had undrawn glyphs versus code points that were simply unassigned. I used the recommendation of The Unicode Standard to render unassigned glyphs as a gray box, contained in the blanks.hex file, now renamed to unassigned.hex. That let me easily track how many glyphs still needed to be drawn in each block of 256 code points. After that, I wrote a program (unihexgen) to generate four- or six-digit hexadecimal numbers in a single glyph. That program has created the new glyphs in unassigned.hex and pua.hex.
The Private Use Area glyph file, pua.hex, is no longer built into
the final font. That file only appears in the sources. Previously it
contained a pencil icon, suggested as a possible rendering in The Unicode
Standard 5.0, p. 155 as a refinement over the generic Unicode substitution
character. Now pua.hex contains four-digit hexadecimal code points
appearing as white digits on a black background (though by default these are
not built into the final font). This was also a suggestion
of a possible rendering in The Unicode Standard 5.0, p. 155 and is still
a recommendation in Section 5.3 of The Unicode Standard today. For example,
see Section 5.3 in
The Unicode Standard Version 6.2 — Core Specification.
Here's a sample hex string of the previous pencil glyph, for historical purposes:
- The default substitution code point is now Unicode's default Replacement Character, U+FFFD. This is rendered as a white question mark against a black background: �. All previous versions of Unifont followed the BDF font convention of using the space character as the substitution character. This was perfectly permissible under The Unicode Standard, because use of U+FFFD is optional. The Unicode Standard also allows a font to "simply display nothing" in such a case; see The Unicode Standard 5.0, p. 155.
- The font has incorporated all past errata listed by The Unicode Consortium on their website, with one exception. The exception is the Ogham space glyph is still rendered as a horizontal stroke to allow proper rendering within Unifont's bitmapped constraints. It would take a more complicated font than Unifont to allow alternate renderings. See the README file in the full distribution for details.
- Speaking of errata, Andrew Miller found that the glyph for U+2047 was not drawn correctly as a double question mark. That has been fixed.
- Some new utilities have been added to the source package. Check out the Unicode Utilities page for details.
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.
TrueType Font Generation
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.
Wen Quan Yi: Spring of Letters (文泉驛 / 文泉驿)
The original Unifont CJK glyphs were replaced by 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 glyphs 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 GNU Unifont.
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"). See his website for more details: http://wqy.sourceforge.net/cgi-bin/enindex.cgi.
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 GNU Unifont. Likewise, I've told him to incorporate any glyphs he wants from my contributions to GNU Unifont into his Unibit font.
Over 4000 glyphs remain to be drawn in the Supplemental Multilingual Plane. Of those, over 2000 were added in Unicode 7.0. A few of us are working at them. If you are interested in contributing glyphs to this effort, please contact me. All new contributions must be licensed under the same license as the rest of Unifont (in a nutshell, GPL 2+ with the GNU font embedding exception).
With the great work done by contributors in providing ConScript Unicode Registry (CSUR) glyphs, they are available in font files that have "_csur" in their name. Providing these fonts as alternates now requires creating four separate TrueType fonts. Given the resulting size of the current tarball, I have decided not to add a MUFI variant. Junicode works nicely for Medieval scholars, and is an outline font.