4 ms·
Why do you dislike ligatures in your coding font? Just curious.
by IgorPartola 10y ago
Why do you dislike ligatures in your coding font? Just curious.
- function_seven 10y agoNot the parent, but I’ve had an issue where the fi ligature occupies just one character width, which looks very wrong with an otherwise monospace font. If the ligature is done right (resulting glyph is double-width), then I would probably like it.
- be5invis 10y agoIosevka does not have `fi` ligature. The "Term" variant is used for some restricted environments, like some Linux would think that Iosevka is not monospace due to it has glyphs wider than one space.
- function_seven 10y agoGood design choice. To be clear, my issue was with another font, not yours.
- indemnity 10y agoProbably old fashioned, but when I type '->', or '==', for example, I want it two be the two characters, and not become something else visually. Maybe I should give it a try again though!
- gkya 10y agoNot the commenter you're asking to, but ligatures, to me, are a print thing. They are not nice on the computer screen. I'm kind-of fine with fi and ffi with variable-width fonts, but the rest is geekery (which is fine in itself, but not practical). With print, you have to think about kerning and the flow of the ink, and the DPI of the printer, and many other variables, and some ligatures help with that (fi). Then there are some letter strings that appear consequently very often (e.g. st), in which case if you're cutting your fonts out of metal cubes, it's practical to have a single character for those strings. They are not, basically, of help to the reader, but instead to the typesetter / the machine. But you don't spend ink or metal on a computer screen, so the ligatures are just there for the sake of it. With monospace fonts, well, because there's no kerning (each character takes up equal space), there's no way that normally any bits of the letters could coincide, so all the ligatures are forced and artificial there.
- Noseshine 10y agoCoding font ligatures mostly are meant for symbols though. Examples (linked for the example images there): - The submitted font - scroll down to "Ligation sets" https://be5invis.github.io/Iosevka/ https://be5invis.github.io/Iosevka/ (note that they only show symbols) - https://github.com/tonsky/FiraCode https://github.com/tonsky/FiraCode - https://github.com/i-tu/Hasklig https://github.com/i-tu/Hasklig I think people using a programming language with a more math-like notation probably benefit much more than those using "normal" languages.
- speleo_engr 10y agoMonospaced fonts simply mean that the horizontal width is constant. While this also means there aren't any kerning pairs, it is a different concept. Simply disabling kerning does not mean a font is monospaced. Kerning is a table of pairs that allows them to have more aggressive advance values. For example, with a sequential 'V' and 'A', the 'A' could be moved closer to the 'V'. But kerning doesn't have anything to do with the fact that in a variable width font that 'I' is narrower than 'X'.
- gkya 10y agoAnd did I say otherwise?
- planteen 10y agoI guess I took your statement, "because there's no kerning (each character takes up equal space)" to mean "no kerning means each character takes up equal space". Maybe that's not what you meant with those parenthesis.
- gkya 10y agoOh, I meant each character's taking up equal space did not allow for kerning. I see that I've not phrased that well, sorry.