4 ms·
> The most effective font is the one you don’t notice. No super high x-height, no geometric construction, no eye-catching design and no confusing ligatures. Des
by lifthrasiir 3y ago
> The most effective font is the one you don’t notice. No super high x-height, no geometric construction, no eye-catching design and no confusing ligatures. Designed to be neutral and anonymous, Commit Mono is quietly useful.
Thank you for this memorandum, and especially for "no confusing ligatures".
- pavlov 3y agoIt’s true, some monospace fonts have absurd ligatures enabled by default. The craziest thing I’ve seen was a single-width “fi” ligature. The only point of this ligature in proportional fonts is to prevent the dot on the ‘i’ from overlapping with the hook of the ‘f’, and that by definition can’t happen in monospace! But you madmen decided to create a single “fi” glyph, like it was a letter of its own. Imagine that on a typewriter.
- thristian 3y agoUnicode U+FB01 is the fi ligature as a single precombined codepoint. You're right - it doesn't make any sense to have a monospaced glyph for that ligature, or for fl or ffi or many other codepoints in the Alphabetic Presentation Forms block. But those codepoints exist, and somebody might print them to the terminal, and a terminal has to represent every non-CJK glyph as a single character cell...
- lifthrasiir 3y ago> a terminal has to represent every non-CJK glyph as a single character cell... Not necessarily. Unicode has a dedicated property called East Asian Width [1] which effectively affects the terminal rendering, and "Ambiguous" characters like arrows can be configured as full-width (because CJK users expect that). Even when the configuration itself doesn't exist, the font metric may be used to infer the glyph width in this case. [1] https://www.unicode.org/reports/tr11/ https://www.unicode.org/reports/tr11/
- OkayPhysicist 3y agoIMO, even as someone who really likes ligatures in general, in a monospace font the invariant of 1 character text - 1 character displayed - 1 character width must be upheld. I'm all for => getting turned into a 2 character wide arrow, or === and == getting little dots above them and whatever. But never, under any circumstances, should my font change character alignment. Personally I've been using a lot of Cascadia Code lately. Big fan.