We use GNU Unifont in Solvespace for the text window/property browser. It's built right into the executable. This turned out to be amazingly useful. Some people have CJK stuff in their designs and it "just works" on all platforms. I was also looking into hole annotations in CAD and was pleased to see the symbols for counter-bore and counter-sink are both already there in unifont.
Wow, the web version is neat in its simplicity! Thank you for the work on Solvespace. It's far and away my favorite MCAD program and always my first go-to when I need to crank out a quick fixture to test PCBs. It's really so pleasant and easy to work with as long as my geometry is relatively basic (which it almost always is given my limited scope of work with mechanical design). I'm sorry I don't have any comments on the relevant topic of the fonts, just was excited to see Solvespace mentioned.
+1; thanks from another satisfied user. I have an annual SOLIDWORKS plan, but SolveSpace is my go-to for quick stuff. It makes CAD fun. There is a clarity of design behind the software that gives it a zen-like feel.
That web version is very neat. Solvespace is by far my favorite cad, it ls hard to explain exactly why because it really is quite limited compared to other cad packages, but I think it is mainly because of the fluidity and shear joy of operation while expressing constraints.
One of these days I need to dive into the code and figure out a replacement for the modal "can not create constraint" dialogs as those are the worst part of the whole experience.
Shouldn't the first sentence on that website describe what GNU Unifont actually is? I guess it's a single copyleft font designed to have coverage of all (or nearly all?) unicode code points?
Well, the second and the third sentence describe very precisely what Unifont is:
"This page contains the latest release of GNU Unifont, with glyphs for every printable code point in the Unicode Basic Multilingual Plane (BMP). The BMP occupies the first 65,536 code points of the Unicode space, denoted as U+0000..U+FFFF."
This is suitable as a last resort font, which should display any character for which no match was found in the other available fonts.
This is normally preferable to a last resort font that just displays the number of a character not available in your preferred fonts.
> Designed for GUI interfaces, terminals, or print?
Given it’s a last resort font, I think it doesn’t make too much sense for print (unless you’re printing something that could be in any possible language).
Yeah I thought maybe the "uni" in "unifont" meant it was a single font that would morph between serif and sans somehow. I guess it stands for "unicode", from an era when Unicode support was not table stakes.
Note that "nearly all" isn't "all". I have some side project that require rendering of very uncommon CJK characters, and Unifont does not display them as expected. (For that project, I used https://kamichikoichi.github.io/jigmo/ which was the font that was most complete in terms of CJK glyphs )
Unifont seems to have about the same glyph coverage as my system default CJK font (unfortunately I don't know what it is).
Do you know if those characters are in supplemental planes? The BMP would only be glyphs from U+0000 through U+FFFF (though the first 32 and last two aren't printable, and wouldn't be included in this font).
Another example would be emoji, which would probably now be considered "basic" by most people but have always been in a supplemental plane.
> 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 Basic Multilingual Plane (BMP)
Still doesn't exactly say what it is? I get that it's glyphs for printable characters, but honestly it could be a PDF, video, collection of PNGs or SVG files, an Adobe Illustrator file, a linux distribution, a web browser, or pretty much any other piece of software or data format. I presume it's a TTF or OTF font file?
GNU Unifont is a bitmap font. It provides a fixed glyph for every code point in the BMP. It also covers additional code points in other planes.
I am guessing this is useful for writing editors that can edit Unicode text without knowing anything about various languages and their conventions. Authors who try to use this font to compose documents in (say) devanagari will have to learn the Unicode characters "in the raw", because I don't see a shaper for devanagari, so they won't get feedback that looks like real text.
Are the random sparse Chinese characters floating around the main spiral a natural part of Unicode, or did you put them there for effect? I like how the whole thing looks like a galaxy and those characters like background space debris.
I also like how emoji fall neatly around the outer rim. I had fun finding the Earth emoji.
You know, when I see GNU, I don't necessarily think it's the best software in all dimensions, but it's almost the best in terms of respecting its users.
i use this font system wide, forced as the only font in firefox, with web or downloadable fonts disabled. i also have my some of my own characters in csur, the conscript unicode registry, that is mapped to u+e000 thru u+f8ff so the unicode codepoints used by random webpages for various glyphs show up as my own. qt is a pain to use sometimes with unifont only but iirc QT_FONT_DPI=128 environment variable fixes that. i just wish i could get unifont only to work in games like rimworld.
I had to uninstall unifont to get nice looking CJK fonts in Firefox; somehow the font-fallback for my font was picking unifont over all of the other fonts installed...
The right way to solve your problem is to go to Firefox Settings/Language and Apperance/Fonts, then click on "Advanced".
There you can set what fonts should be used by Firefox to display each script/language, including Chinese, Japanese and other CJK variants.
If you do not configure this, then it is indeed unpredictable which fonts will be used by Firefox to render the Web pages, unless it can match exactly a font requested by the page.
I've reproduced issues with Unifont's glyphs being invisible in firefox and chrome (at different times, on what seems like certain versions), with much confusion. There are a few issues on the nixpkgs issue tracker about this, including one about Noto Color Emoji doing the same thing.
Why does every GNU web page look like 1996? This actually matters. Even stripping the page down and removing any styling would make it look more trustworthy less like an abandoned project.
Perhaps a GNU style could be something we could help fund?
Really like the idea of a font with extremely broad glyph support, sadly it looks really blurry on any custom size, like if I'd try to use this font in my IDE but would want to make it smaller so I can fit more text on the screen.
For that particular use case (tbh mostly aesthetics than glyph support), I also found the TTF version of Terminus to be pleasant: https://files.ax86.net/terminus-ttf/ though JetBrains Mono is good enough for me to not venture far away from defaults, albeit maybe Liberation Mono / Cousine was the peak of readability at somewhat small sizes out of any font out there for me.
Wonder if the Potrace approach of Terminus TTF version would work for Unifont. I imagine that Unifont is a pretty good default when doing shipping labels and for such utilitarian use cases.
The problem with Unifont is that is was never designed to actually support real text, it just has glyph support. So if you need "it can do every language I might want, while looking pretty good" you're far better off with the (much newer) family of NoTo fonts, which aren't just free to use, but explicitly use the modern SIL Open Font License.
Noto is also a scalable font with multiple weights and styles (e.g. bold, italic, etc). Unifont is a 16-pixel bitmap with no styles, so it's only really usable at one size (or maybe two if you want 32px text).
Please don’t use this unless the purpose is specifically to have a retro effect where you eschew modern fonts for aesthetic purposes. Because for any other purpose this just looks terrible, even for English text. Scripts requiring special shaping won’t be supported well. I don’t think it even supports different shapes for the same CJK character according to the language.
it is so nice of them to explain the fact using the GNU Unifont in commercial non-free softwares clarifying when it is required to be published to public domain.
> A user has asked if GNU Unifont can be used with commercial (non-free) software.
One can be forgiven for thinking the author means to imply that all commercial software is non-free. It is a further disappointment that anyone has to ask.
Open source was right to get rid of the intentional and unintentionally anti-commercial motifs that only got in the way of paid open source development.
Obviosuly discourages because they're not equivalent and creates confusion. Stallman himself was selling copies of Emacs while releasing it under a Free license.
Some may be confused into thinking this reply is a correction. I don't mean to appear to rebut.
We know that the FSF is aware of the problem. The trouble can only be if we expect more success from repeating the same tactics for the next forty years. I would blame no one for expecting the FSF to stay the course and to achieve similar effects. I would also not blame them for choosing a different path for themselves and recommending so to others.
> One can be forgiven for thinking the author means to imply that all commercial software is non-free.
Do they mean to imply this? It can also be read as a clarification about the mentioned software, not all commercial software in general. Could just be poor wording.
> Open source was right to get rid of the intentional and unintentionally anti-commercial motifs that only got in the way of paid open source development.
Open source did succeed in avoiding the problem present in English language, but in doing so, shifted focus away from freedom and onto different confusing motifs. A rare word like 'libre' arguably does an even better job while staying true to the original ideas behind the term 'free'.
I don't feel strong disagreement with the four freedoms, but the biggest reason I've gone fully _OSS and intentionally avoid "free/libre" is because I don't want to endorse the FSF tactics and because I want to encourage others to demand more radical innovations instead of forty more years of the same.
What I find most disappointing when I talk to the FSF is that if I bring up social finance and technically enabled social decisions that can make social finance a lot more effective, it is rather as if I have spoken some alien language. I believe the non-programmer needs a lever to choose the development model used by programs they rely on. To the FSF insiders, such thinking is so orthogonal as to generate no reaction. If I say "a billion users are important," they refute the necessity. They are content to be monastic, conveniently propped up by donations for saying nice things. I find such abandonment inexcusable, and I get fired up talking about it.
You can see unifont in the experimental web version here: https://cad.apps.dgramop.xyz/
One of these days I need to dive into the code and figure out a replacement for the modal "can not create constraint" dialogs as those are the worst part of the whole experience.
But I love the idea that even if your bronze age CAD guy wrote all the solid names in Linear A, no problem!
"This page contains the latest release of GNU Unifont, with glyphs for every printable code point in the Unicode Basic Multilingual Plane (BMP). The BMP occupies the first 65,536 code points of the Unicode space, denoted as U+0000..U+FFFF."
This is suitable as a last resort font, which should display any character for which no match was found in the other available fonts.
This is normally preferable to a last resort font that just displays the number of a character not available in your preferred fonts.
Just showing a single screenshot of it in its intended use would go a long way.
I clicked on one of the charts and had no idea if the font itself was bitmap, or if it had just been rendered at a tiny size without antialiasing.
Given it’s a last resort font, I think it doesn’t make too much sense for print (unless you’re printing something that could be in any possible language).
Unifont seems to have about the same glyph coverage as my system default CJK font (unfortunately I don't know what it is).
Another example would be emoji, which would probably now be considered "basic" by most people but have always been in a supplemental plane.
https://github.com/runarberg/shodoku/issues/1
A classic utf-16 bug, where I failed to grab the two remaining bytes of these ideographs.
Tons of these open source projects have the same issue.
I mean that's pretty close no?
GNU Unifont is a bitmap font. It provides a fixed glyph for every code point in the BMP. It also covers additional code points in other planes.
I am guessing this is useful for writing editors that can edit Unicode text without knowing anything about various languages and their conventions. Authors who try to use this font to compose documents in (say) devanagari will have to learn the Unicode characters "in the raw", because I don't see a shaper for devanagari, so they won't get feedback that looks like real text.
If anyone can explain this better, please do!
I'm realising I know very little about fonts.
https://shkspr.mobi/blog/2022/07/the-mostly-complete-unicode...
Are the random sparse Chinese characters floating around the main spiral a natural part of Unicode, or did you put them there for effect? I like how the whole thing looks like a galaxy and those characters like background space debris.
I also like how emoji fall neatly around the outer rim. I had fun finding the Earth emoji.
There you can set what fonts should be used by Firefox to display each script/language, including Chinese, Japanese and other CJK variants.
If you do not configure this, then it is indeed unpredictable which fonts will be used by Firefox to render the Web pages, unless it can match exactly a font requested by the page.
I love fonts...
Perhaps a GNU style could be something we could help fund?
For that particular use case (tbh mostly aesthetics than glyph support), I also found the TTF version of Terminus to be pleasant: https://files.ax86.net/terminus-ttf/ though JetBrains Mono is good enough for me to not venture far away from defaults, albeit maybe Liberation Mono / Cousine was the peak of readability at somewhat small sizes out of any font out there for me.
Wonder if the Potrace approach of Terminus TTF version would work for Unifont. I imagine that Unifont is a pretty good default when doing shipping labels and for such utilitarian use cases.
One can be forgiven for thinking the author means to imply that all commercial software is non-free. It is a further disappointment that anyone has to ask.
Open source was right to get rid of the intentional and unintentionally anti-commercial motifs that only got in the way of paid open source development.
https://www.gnu.org/philosophy/words-to-avoid.en.html#Commer...
We know that the FSF is aware of the problem. The trouble can only be if we expect more success from repeating the same tactics for the next forty years. I would blame no one for expecting the FSF to stay the course and to achieve similar effects. I would also not blame them for choosing a different path for themselves and recommending so to others.
Do they mean to imply this? It can also be read as a clarification about the mentioned software, not all commercial software in general. Could just be poor wording.
> Open source was right to get rid of the intentional and unintentionally anti-commercial motifs that only got in the way of paid open source development.
Open source did succeed in avoiding the problem present in English language, but in doing so, shifted focus away from freedom and onto different confusing motifs. A rare word like 'libre' arguably does an even better job while staying true to the original ideas behind the term 'free'.
I don't feel strong disagreement with the four freedoms, but the biggest reason I've gone fully _OSS and intentionally avoid "free/libre" is because I don't want to endorse the FSF tactics and because I want to encourage others to demand more radical innovations instead of forty more years of the same.
What I find most disappointing when I talk to the FSF is that if I bring up social finance and technically enabled social decisions that can make social finance a lot more effective, it is rather as if I have spoken some alien language. I believe the non-programmer needs a lever to choose the development model used by programs they rely on. To the FSF insiders, such thinking is so orthogonal as to generate no reaction. If I say "a billion users are important," they refute the necessity. They are content to be monastic, conveniently propped up by donations for saying nice things. I find such abandonment inexcusable, and I get fired up talking about it.