

On some common system and rendering configurations, it’s genuinely not far off illegible at common sizes. Computer Modern is awful its optical sizing is all wrong, far too thin and with too much stroke thickness variation. I've come across all of this and more for some widely used fonts. Or how about needing to tweak letter-spacing as characters overlap. Which messes with line heights and vertical centering. Oh, another fun one is the glyphs of fonts having internal padding or asymmetric padding. I hardcode a limited set of font sizes and only those proven to look good across systems. It's why I no longer believe in the supposed best practice of fluid font sizes. I've faced the issues above for multiple custom fonts. A simple way to put it is that Mac renders font thicker (more black). You might have this same issue with thin fonts (this wasn't a thin issue) looking good on Mac and unreadable on Windows. It seems their anti-aliasing algorithm intervenes more deeply, prioritizing a good and consistent result over theoretical integrity. Only at a few select font sizes and weights did it look OK, at every other setup it looked like somebody took random bites out of the glyphs, meaning the individual characters had inconsistent weights. We couldn't get it to look right on Windows.

Recently at work we were testing a new font for the brand, won't mention the name, it's unimportant.

Good paragraph breaking, widow orphan control, page breaking, computed header/footers that can change heights… are also complex issues that have to be dealt with.īack when I worked on this stuff we also had much slower computers that made things even more difficult so that you could type anywhere in the paragraph and still have responsive and correct output (you can’t delay formatting if the chargers change on context although some formatting can be delayed.) For example even implementing tabs can be complex (remember that you have different tab types and conflicting constraints like keeping something decimal or left aligned but now having enough space to do that with out overlapping characters.) In languages like German if you have a computed or soft, hyphens the spelling of a word can change.

What this article misses is a lot of the complex formatting issues also with text rendering. I’m retired now but I helped develop and implemented many of the algorithms for multilingual text and Unicode back in the 80s first at Xerox and later at Apple.
