UnifontEX
A downloadable Font
An extended fork of GNU Unifont with a focus on high compatibility, made from the last TrueType version of GNU Unifont (15.0.06-JP, which is the most complete, plus the Unicode 15.1 Ideographic Description Characters in Unifont 15.1.01. They aren't in the HarfBuzz versions yet because THOSE take a while), merged with the last version of Upper that will successfully merge after removing the placeholders (11.0.01 Upper). I then did several compatibility steps to make it work under more environments, such as taking SEVERAL measures to make the font work in environments that only want monospace fonts (which Unifont is closer to than something like Times New Roman), as well as fixing the TeX table (among other structures, including stuff like the Panose and OS/2 stuff, among other things), activating Vertical Metrics to make Inkscape not reject it when dealing with Vertical CJKV text, and making the output TTF work best on ALL OS choices. I also used TTF2PNG by Data Beaver's Domain (plus GIMP to make it true 1bpp) to make an unabridged 1 megabyte PNG of the font, for use in situations where TrueType wouldn't make sense, as well as a BDF version also made by FontForge, as well as an iOS SVG webfont version plus an NP2 PC98 BMP version, as well as WOFF and WOFF2 versions, an EOT, as well as DFONT and OTB versions, plus a *whole* lot of other niche formats, like FontX2, Typeface.js, and LVGL (both types of each of the three. This was a challenging task.) Another is for developers to use in their CSS. I also made a PostScript Type42 version, plus LibreCAD LFF and Adafruit_GFX versions, plus an iOS Mobileconfig version. I've also bundled EVERYTHING into a single Zip, .B3K (BWTC32Key) tarball, or 7z. Extracted, the contents of either will almost fill a 99-minute CD. I mean, it has EVERYTHING in it.
Now, what DOES adding Upper into Unifont offer?
Firstly: You gain the fancy letters intended for math but used online to make social media posts have fancier fonts. This includes Fraktur, which has its own ANSI escape code that is defined but rarely used. Those characters, and their bold versions via the bold flag, now work.
Secondly: You gain emoji from 2018 and before (nothing newer due to being forced to stick to Unifont 11.0.01 Upper as the Upper version), as well as the rest of the characters in blocks that emoji only uses part of. So yes, you get the whole Playing Cards block, the whole Domino Tiles block, and the whole block allocated to Mahjong tiles. You also get all the symbol characters that didn't get emoji status. Stuff such as U+26FF, which is in the Miscellaneous Symbols block, and just so happens to be equivalent to the Rumpus Parable Agender Pride Flag from 2014. Yes, Unicode has THREE pride flags, not two. Samsung temporarily made the character an Emoji on some Android firmwares of theirs. You get the Alchemical Symbols block, including the Sublimate of Antimony symbol, which has been co-opted by nonbinary people as their gender symbol rather than the traditional male or female symbols (which DO have emoji status). So yes, this build of Unifont features the nonbinary symbol on top of the Plane 0 stuff like the transgender symbol, the symbols for various orientations, the Rumpus Parable flag, and etc. Oh, and unlike MANY Plane 0 fonts, Unifont DOES have U+2B89, something that accidentally resembles a gender symbol in the online LGBTQ+ furry community, one that is rarely used.
Third: You get many OS symbols not in Plane 0, as well as a full set of Wingdings, Wingdings 2, Wingdings 3, and Webdings, many of which ARE emoji, and many of which are NOT.
Fourth: You get more geometric symbols and historic scripts.
Fifth: You get both modern and ancient musical notation.
Sixth: You get "Transport and Map Symbols" as part of your emoji set.
Seventh: Having emoji makes you comply with the Shift_JIS extensions made by Japanese telephone carriers.
Eighth: You can handle more obscure dingbats, as well as the Japanese ARIB captioning character set standard.
Ninth: You have more characters to work with for the purposes of Unicode art, especially when doing animated Unicode art, especially when you are dealing with more than just BW. There's more characters to derive brightness values from.
Tenth: You can view even the most esoteric Kaomoji (Japanese emoticons that *aren't* emoji, such as the famous table flip one), including the ones that DO use emoji in them.
Eleventh: You gain more types of enclosed letters.
Twelfth: You can pass the current version of the BLNS test (a test file for string handling).
*And that's only the beginning.*
As part of the compatibility focus, the x in the filename "UnifontExMono" is lowercase just in case programs looking for "Mono" to determine monospaced status want a clear distinction. Also, I chose to use no symbols or spaces in the font name to make it work better on picky systems. If your system wants variable fonts, rename the font file to have "-VF" at the end before the extension, which can be .ttf or .otf (yes, TrueType fonts can be made to comply with OpenType too. In FontForge's TTF export, I turned on the "Apple", "OpenType", "Dummy 'DSIG'", "Windows-compatible 'kern'", "TeX Table", "FFTM Table" and ALL the PfaEdit Table checkboxes, so that the font would work on as many systems as possible.) Note that "-" on Linux is what is often used for command-line arguments, so that *could* confuse Linux machines. Also, I chose to make the name of this version of Unifont distinct from the official version, because this is a specialized fork that diverged from non-current versions of Unifont (though not horrifically so by any means). That being said, I `did` take quite a few measures to keep things faithful to the original. Compatibility is key. *That's* why I'm keeping the OS/2 table version identical, not touching the GASP table, and etc. The goal of this project is to build on Unifont to make it even greater than it already is, and to do it one better in many ways. That's why I'm so dedicated to it.
Oh, and by the way: This is a passion project that I have worked on for the last 10 years (I found an ancient 2014 prototype on my cloud storage and an ancient computer of mine), in part because I was waiting for new Unicode and Unifont versions to drop so I could see what was in them. It certainly was a long haul. I hope that my improvements help you in your endeavors.
In case you wonder why the Github repo was created a month early, that is so I could write the description to a heightened standard prior to release date, and decide on a name. Expect a Github Pages site for this (has *sort of been done, more as a quicker-to-read subpage you can get to well before reading the whole thing), among other things, such as a SourceForge website (I could just use THAT, the best part about it is that I can actually provide links to all the old versions there). I also made a 16x16 favicon as well as the logo. Fair warning: the PSDs were made in PhotoPea, so I don't know what official Photoshop would do. The DFONT version currently due to FontForge bugs more-or-less requires a version of Mac OS old enough to have limited font verification, but since THAT version is specifically intended for Mac OS versions old enough to need DFONT instead of TrueType, it's less of a problem. FontForge hasn't issued a fix yet, so I can't do anything about this yet. Oh and as for which format to choose, most end users will probably want the TrueType.
Oh I am legally obligated to say that GNU Unifont is under GPL2 with font embedding exception and OFLv1.1, and can be found [here](https://unifoundry.com/unifont/index.html) and is by Roman Czyborra and Paul Hardy, et. al.
Also, my real-life name is NOT something I give out online willy-nilly, just in case you find yourself needing to know it to follow the crediting part of GPL2, in which case you should credit me as "stgiga". Online, I basically only use aliases, because I'm VERY paranoid about online safety, especially given the fact that I quite literally am certified in cybersecurity. And yes, you would be right in assuming that I use this Unifont build in my IDEs and terminals. As well as my Ubuntu window titles. As well as other stuff.
With that out of the way, I hope you enjoy this project as much as I enjoyed making it! Have fun, and do honor the original devs of Unifont. They do great work. Enjoy!
Also, if you want more glyphs (such as emoji from 2019 and newer, including the ones related to assistive technology) than can fit in the 65535 glyph limit in a non-HarfBuzz TrueType/OpenType/WOFF/WOFF2, please tell the OS and browser vendors to bring back Apple's iOS Safari pure-SVG webfont format (which, unlike SVG-in-OpenType, supports unlimited glyphs, so you could fit in ALL variation sequences if you wanted, define arbitrary tables like porting Apple's Zapf table used by Zapfino, as well as porting the animation and color tables from SVG-in-OpenType, and also using even Microsoft's diverse family ZWJ sequences. Also, you can embed PNGs for bitmap glyphs to help with rendering if you want, and implement the contextual shaping in scripts like Arabic, without worrying about glyph counts, especially when working with ALL scripts that have variations. Oh, and while uncompressed SVG fonts would be large (most likely why they got eschewed), I *did* try a merger of GNU Unifont 15.0.0x with 15.0.0x Upper with 15.0.0x CSUR (something VERY impossible in non-HarfBuzz TTF/OTF), and then made it into an SVGZ (officially-standardized GZipped SVG, but has no MIME Type), and it gave a result that was the same size as a WOFF2 of my TrueType merger. So, have the OS vendors support SVGZ as part of the equation too. Also, please tell the W3C to give SVGZ its own MIME type so it can be better-supported by browsers again so that with the help of XHTML integration, we can have smaller webpages for people on slower connections, without having to fiddle around with Apache's httpd.conf or IIS's equivalent to it. Oh, and SVG(Z) webfonts would also allow the entire Unicode Code Charts font to be usable as a fallback font in OSes if needed, which could prevent missing character varieties of Mojibake entirely (assuming no Private Use Area characters are used.) It would be an even more successful fix than Noto or UnifontEX could ever be. All it takes is for the OS vendors, browser vendors, the W3C, and the Unicode Consortium to team up. But until that happens, we are stuck with what we currently have: 65535 glyphs maximum due to TrueType/OpenType/WOFF/WOFF2 limits, and httpd.conf editing to allow loading of any SVGZ content, to the point where you need to set up a server even if you are running it offline.
Also, regarding the above, I am NOT in favor of anyone engaging in harassment when asking. Harassment is one of the MANY bad things I *personally* have endured from a young age, so please don't engage in it. I figured I should say this to avoid any possible drama. I'm someone who absolutely hates drama of any kind. With that out of the way, I hope that there will be better support coming soon.
More facts, use cases, and information:
Oh fun fact: The 16px size of UnifontEX's emoji (namely the fullwidth ones) is actually slightly bigger than the 1999 DoCoMo emoji (which were 12x12), but the 1997 SkyWalker phone by SoftBank (which was the first *mobile* emoji set, because some earlier Sharp and Canon typewriters had what we would now call emoji on them *in 1991*, according to http://emoji.digital which has a whole section on them, and Emojipedia just found out that 16x16 emoji were used in a Sharp PDA from *1988* according to https://blog.emojipedia.org/new-earliest-emoji-sets-from-1988-and-1990-uncovered... which is absolutely amazing. Good to see 1980s-era emoji!) used 32x32 emoji in Emojipedia's examples of them, but looking at the image directly implies they were doubled from 16x16 by Emojipedia.
The fun thing about UnifontEX being 16px though is that 16px on Windows is actually 12-point. Now, the MLA style guide that educators often use does not force Times New Roman, only "a readable 12-point font" (some educators *will* force Times New Roman, and APA DOES force Times New Roman in some versions, so don't do your papers in UnifontEX unless you have permission AND are using MLA or another style guide that doesn't force Times New Roman), so, depending on the educator, you COULD write your papers in UnifontEX if you are using MLA. I mean, Unifont *is* `exactly` 12-point on Microsoft systems, it just has no subpixels *at all*. Also, I'm VERY sure that using emoji in your papers would be a `very` *bad* idea. Now, IF you work as, for example, a technical writer (which is the career path I am on), there is `no` better font than UnifontEX. It's 12-point, and it has MANY technical symbols and pictographs in it, even compared to stock Unifont. Oh, I should mention that large-print medicine bottles in the United States (or at least California) are printed at 12-point. So, 12-point is *not* considered an unreadable font size.
Now, I should also mention that ANOTHER thing that UnifontEX is useful for is stuff like creative writing, particularly if you are exporting to PDF. Quite a few sites with literature sections do stuff in PDF. I also use Firefox to force ALL page fonts on ALL websites to UnifontEX. Also, on Windows 11, any emoji involved that are newer than 2018 will be rendered by Segoe UI Emoji, so modern emoji DO show up.
Also, I feel like web literature would be something UnifontEX would be handy to use in, so writers could have access to technical symbols in something like sci-fi stories. I certainly know that anything I write WILL feature this font, because it has quite a few special symbols handy for some of the things I intend to write. Now, when I'm actually working as a technical writer, I will be using a UnifontEX build in which I turn on the "No Subsetting" box in FontForge, meaning that apps like Word will never subset the font. At that point, I could afford the storage overhead, and it would allow collaborators who do not have the font to work with the document. However, I DO know that quite a few existing sites DO cap PDF size, so to avoid possible bugs on your end, the UnifontEX released here does not have that box checked, so have no fear of oversized files.
Now, I'm stating the obvious here, but if you integrate this into whatever you do, avoid doing something with it that would truly enrage the FSF. When in doubt, ask.
Additionally: Another use I've found for this font is for boosting Unicode support on legacy systems. You even get emoji (up to 2018, but then you get Plane0 characters up to 2023 (and most of 2024 because of Unicode 16 being September 2024), so stuff such as the Reiwa Era symbol, the Symbol For Type A Electronics, and quite a few of the extensions of certain scripts that were slotted into Plane0 are all present.)
Throw this into ReactOS, and you have better Unicode support. Or you can give older-than-dirt machines better Unicode support, which can help if using InterWebPPC on a Tiger or better PowerPC Mac with a G3 or better (even a Power Mac 7500 can be coaxed into running a Mac OS X version that will work, but it will be slow), or Basilisk XPMod IA-32 (Firefox fork) on Windows XP with a Pentium 1-derived chip with CMOV, or Firefox 52 + KernelEx on Windows 98, and allow the modern web to be more browsable on older machines, especially if emoji is involved.
Also, now your terminal and IDE can support Unicode better, which can definitely help when localizing stuff.
TL;DR: UnifontEX's use cases could fill a book (literally), so I'm not going to start listing more. Go enjoy UnifontEX!
Also I should mention that I have official blessing, and that this is in no way meant to subsume or replace the official Unifont project. Go support them too. Fitting Unicode glyphs into 16px is not an easy task.
*In memory of Albrecht Biedl, the Berlin professor that the original creator of Unifont, Roman Cyzborra, according to his website, had as a thesis advisor, who passed away on December 16th, 2023. I'm glad he lived to see UnifontEX.*
Updated | 1 day ago |
Status | Released |
Category | Assets |
Release date | Sep 12, 2023 |
Rating | Rated 5.0 out of 5 stars (4 total ratings) |
Author | stgiga |
Made with | Adobe Illustrator, Sublime Text, GIMP, RPG Maker, Inkscape, Adobe Photoshop, Adobe After Effects, Lightweight Java Game Library |
Tags | 16x16, 8-Bit, Asset Pack, DRM Free, Fonts, Open Source, Pixel Art, PNG, Retro |
Code license | GNU General Public License v2.0 (GPL) |
Average session | A few seconds |
Inputs | Keyboard |
Accessibility | Color-blind friendly, High-contrast |
Links | Homepage, Source code, Source code, FontSpace Page, Upstream Unifont |
Download
Install instructions
For the TrueType build, you can double-click it and install it on the vast majority of OS choices, or you can drop it into the font directory of your game. As for the BDF, it's useful for ancient Linux distros, or for dot-matrix LCD use in some cases. The PNG is a straight-up font sheet, but is usable in that case, among others, far better, especially given it's a quarter of the size but unabridged. Also, game engines would be happier with it.
Development log
- Unicode 15.1 Support!1 day ago
- Fixed old LFF bug8 days ago
- Fixed CSS27 days ago
- Fixed corruption27 days ago
- Bundle size reduction28 days ago
- Bundle fixes28 days ago
- Hotfix parity achieved28 days ago
- SVG(Z) hotfix28 days ago
Comments
Log in with itch.io to leave a comment.
We used this awesome font in our game! https://theyippies.itch.io/gem-frenzy
I would have put this on release announcements, but the question is whether it would go there or the other because it’s a fork… I don’t want to risk anything. Plus I had released it elsewhere in prior days so…