Fri, 26 Jun 2020 14:31:01 +0200

Why not just use bitmap fonts?

Disclaimer: In this text, as all of mine, I am writing from a perspective of a Linux user. Then my remarks won’t hold fully true for MacOS users or Windows users as their setups might be different.

I am angry. Angry about GNOME and the modern GUI design. After reading an article by tonsky, I realised how most of projects have forgotten about bitmap fonts. It is one of these weird occurences, as bitmap fonts are much simpler to program and use. I think that BDF fonts are the only font format that is human readable in the raw form.

Why Bitmap fonts?

In his blogpost tonsky argued that you should buy a 4K display as on lower PPI displays outline fonts look terrible. They do, and it is a fact for any person that cares about fonts. I hold that at >150 PPI outline fonts should be auxillary. They ought to be used in the necessary cases (for example: typesetting, official documents, etc.). In any other uses, they are unbearable to look at as they are not designed to work without antialiasing nor hinting.

On the other hand, bitmap fonts are designed against antialising and hinting. They are not meant to be resized so they stay at maximum in couple of sizes. That keeps them predictable and efficient. There are no issues related to bluriness, as pixels themselves are the determine their borders and they follow the limitations of displays. Their formats, such as ancient BDF are so simple that they are human readable. Thus it is much easier to customise, than the sanity questioning of outline fonts and the hellscape of fontforge(1).

Look at this code of a glyph (from Atarist font) in BDF format in 142 bytes.

STARTCHAR HEBREW LETTER HE
ENCODING 1492
SWIDTH 512 0
DWIDTH 8 0
BBX 8 16 0 -2
BITMAP
00
00
7E
7E
06
66
66
66
66
66
66
66
00
00
00
00
ENDCHAR

You are instantly aware of each element of the glyph and how it will behave within this format. Such is not as easy for outline fonts. I do not need to give screenshots to explain what is going on.

How to destroy simplicity

As bitmap fonts just became non-standard fonts they are treated worse than outline fonts. The change in Pango 1.44 to only use .otb fonts which are not something what industry was used to. Majority of software which uses Pango now struggles with .otb bitmap fonts and gives them wrong outlines, or just does not print them at all (i.e. zathura or dunst).

The description of the change in Pango 1.44 shows the lack of responsibiltiy of GNOME developers. They push the task of solving the issue they created towards ‘the internet community’. These fonts are supposed be easiest to handle and should not be treated like this.

Also, nobody offers any reliable solution for scaling bitmap fonts on high DPI displays. There, a simple proportional scaling would be fine for solving this problem.

I do not want to worry about fonts, I just want them to be readable and non-blurry on my display. Such is not achievable (on low PPI displays) with greatly promoted outline fonts. That’s that. When I want a high PPI display, then I can use my e-reader, or better yet - print it.

Enjoyed the article? Please consider donating. Thanks.

Back to the index