Having a decent editor is something we have discussed before. Last time, I was telling you about features that I wanted for programming, such enhanced scope visibility. But the font we use also play a major role in code legibility. This week, let me present you the few I really like.
- 6×10 X11 font. That’s the font I prefer when I am using a screen of around 100 DPI (such as my 24″ 1920×1200 screens). This font, despite being very old, has still, in my eyes, this perfect balance between legibility and compactness; something that even other fonts in that series (of X11 fonts) do not quite have. It’s installed by default on *nix boxes, but for Windows, you can get them here.
- Proggy Clean. That’s my second bestest font that I use on very tiny tiny screens around 100 DPI, but it does not always play well with Emacs (some weird DPI detection setting issue). The complete font set can be found at proggy_fonts.
- Terminus. That’s the one I use for my shells. A bit larger than 6×10, but still rather harmonious in its proportions. It is not installed by default on Linux, but it’s somewhere in the Debian or Ubuntu as packages console-terminus and xfonts-terminus*. For Windows user, it is available here.
- Envy R. This font is a vector font and scales well with different screen densities. It does not render optimally under 12pt size, but is a good, smooth, legible font for screens with a very high DPI (say, much above 120). I use it to write normal text (such as LaTeX in Emacs). It can be downloaded from here.
- Inconsolata is an open-source/free reimplementation of the non-free font Consolas that can be downloaded from here. I like this font when I’m really tired (or on very high DPI screens) as it renders well in large pt settings (12 and above) and is very legible.
There are of course LOTS of other possible console fonts (some very nice, some being incredibly sucky). A ton of other fonts can be found on the Monospace/Fixed Width Programmer’s Fonts page by Trevor Lowing.
And you, what are your favorite coding fonts and why?