How to Choose a Good Programming Font for EditPad and Other Text Editors

EditPad Can Use Any Font

The good news is that EditPad can use any font available on your computer. It doesn’t matter if the font is bitmapped or TrueType, monospaced or proportionally spaced. TrueType fonts like Verdana may look a bit better, but your favorite bitmap font like FixedSys will work just fine. Rectangular selections require a monospaced font such as Consolas, but Arial will work great for everything else.

To install a font you’ve downloaded, right-click the .ttf file in Windows Explorer and choose Install in the context menu. To quickly install multiple fonts, drag-and-drop them onto the C:\Windows\Fonts folder in Windows Explorer. If EditPad is running, shut it down with File|Exit. Next time you start it the new fonts will be available.

      
Only US$ 59.95
Windows XP, Vista, 7, 8, 8.1, 10, and 11
32-bit and 64-bit
100% satisfied or money back
free trial download

Benefits of Monospaced Fonts

Most software developers prefer to use a monospaced font. Courier New is a classic, simply because it ships with all versions of Windows since 1995. As every programmer knows, the benefit of a monospaced font is that you can use spaces to indent logical blocks in source code. As spaces and all characters have the same width, all your columns will line up nicely. If you use a proportionally spaced font, you can still use spaces at the start of each line for indentation. But after the first non-space on a line, columns won’t line up any more, because characters like “i” and “m” have rather different widths.

Requirements for Programming Fonts

There are countless proportionally spaced fonts available everywhere. These have a broad appeal because they look nice. Monospaced fonts put text in a fixed grid. Programmers love that, but most other people don’t. So monospaced fonts are in limited supply. Great monospaced fonts are even rarer.

The biggest problem is that many monospaced fonts are not monospaced when you mix the plain and bold variants. Lucida Console and Andale Mono, for example, use wider characters for their bold variants. All the fonts shown below have plain and bold characters of equal width.

Syntax highlighting text editors often use bold to highlight keywords. If the bold variant is wider, the text editor has three choices. It can display the font accurately, resulting in columns that don’t line up perfectly at the pixel level. It can force the font to be monospaced, usually causing the bold characters to be squished together. Alternatively, plain characters can be spaced more widely to match the bold characters. EditPad supports all 3 options. If you like to use italics to highlight comments, as EditPad does by default, then you also need to look at how the font’s italic variant. With many fonts, the italic variant merely slants the letters. But some fonts, like Consolas, make italic characters look more cursive. The letters “a” and “l”, for example, are clearly different in the upright and italic variants of Consolas.

Many freely available fonts are bitmap fonts. These fonts come in fixed sizes, like 10 and 12 point. Other sizes are not available. If the font provides the size you want, that’s great. But if it’s too small or too large, you’re out of luck. Bitmapped fonts don’t scale to screen resolution. A font designed for a 96 DPI or even an old 72 DPI screen will be impossibly tiny on a 4K monitor. The fonts recommended below are all TrueType and OpenType fonts that look good at any size on any screen.

Windows uses ClearType to smooth the edges of fonts to make them appear more nicely on LCD screens. On Windows 7 and later you can tune or even disable ClearType by clicking the Windows Start button, typing cttune, and pressing Enter. Most fonts look much better with ClearType, as they’re designed with ClearType in mind. That includes all the fonts recommended below. But older fonts that don’t provide the hinting that ClearType depends on may look worse with ClearType.

The ability to easily distinguish similar characters is important. In source code, a zero is not the same as an oh, and a one is not an ell. These characters are often very similar in fonts designed to produce appealing typography. They may even be identical in fonts simulating typewriters. The mechanical typewriter I inherited from my parents didn’t have separate keys for zero and one. Typing an upper case O and a lower case l was the only way.

The fonts recommended below all have a dot or slash inside the zero. The characters “1” and “l” are also easy to distinguish, at least within the same font.

The font needs a repertoire of characters suitable for your language. Not all monospaced fonts can display all the accented letters used in Eastern Europe, or the Greek and Cyrillic alphabets. Asian scripts are generally not supported, because most of them are hard to fit into a rectangular grid. If a font supports the IBM control characters then EditPad can use those to visualize ASCII control characters. If a font supports box drawing characters then EditPad can use those to correctly display source code of old DOS applications that use them to draw their user interface.

Font spacing and weight are largely a personal preference. But they can be very important in how comfortable you feel with a font. Wider spacing between lines and characters can make text easier to read. Tighter spacing allows more text to fit on the screen. EditPad’s text layout settings do give you some control over a font’s spacing. The weight of the font is the thickness of the lines and curves it uses to draw characters. A light font with thin lines can be very elegant. But it can also be hard to read in low contrast situations, such as when using a laptop outdoors. A heavy or bold font would then remain readable. But it can also overwhelm. If you prefer a heavy font you may also prefer a color palette with less contrast.

A new trend among programming fonts is to form ligatures between ASCII characters that are often combined into operators or other symbols in programming languages. EditPad 8 supports programming fonts that form ASCII ligatures when using the “monospaced left-to-right” text layout. These ligatures change the appearance of characters depending on the characters next to them. When two equals signs are followed by a greater-than sign the font could make the equals signs a bit wider so they connect and draw the greater-than sign as the head of an arrow to make those three characters look like one long arrow. They can also make certain meanings clearer. != means “not equal to” in many programming languages. A font could render the ! as the left half of the symbol and the = as the right half of the symbol so that together != are rendered as . The file still contains the original ASCII characters. You can still put the cursor between the two and edit them separately.

Consolas

Consolas is included with Windows Vista and later. It’s a great choice if you can’t download and install fonts on your (corporate) PC. It’s a great choice if you can pick any font you like too.

Consolas is a perfectly monospaced TrueType font, designed for ClearType, with clearly distinguishable characters. It has a full set of accented letters, supporting even Vietnamese. It supports the Cyrillic, Greek, and Armenian scripts. It even has IBM control characters and box drawing symbols and supports the international phonetic alphabet. Characters are widely spaced and are rather small relative to other fonts. You’ll probably want to select a slightly larger font size with Consolas than with other fonts.

The italic variant of Consolas draws the letters in a more cursive way. With most letters the difference is subtle. But the letters “a” and “l”, for example, are clearly different. The italic variant does not slant box drawing symbols.

Fira Code

Fira Code is probably the most well-known programming font supporting ASCII ligatures. It supports more ligatures than the other fonts on this page. It is a perfectly monospaced TrueType font, with clearly distinguishable characters. Its repertoire includes many accented letters for Eastern European languages, including Romanian. It does not have all the accents that Vietnamese needs. Fira Code also supports the Cyrillic and Greek scripts and box drawing symbols. It lacks most IBM control characters and does not support Armenian.

The font has large characters and is widely spaced. You may want to use a pixel or two of negative line spacing and maybe even one pixel of negative character spacing in EditPad’s text layout configuration to allow more text to fit on the screen.

Fira Code comes in 4 different weights. These are labeled, from lighter to heavier: Fira Code Light, Fira Code, Fira Code Retina, Fira Code Medium. The labels are appropriate. Fira Code Light is among the lightest of programming fonts. Fira Code Medium has a weight similar to fonts like Consolas. In EditPad you can select the weight you want via Options|Configure Text Layout. Selecting a weight via Options|Font is not reliable.

The italic variant slants all characters, including the box drawing symbols.

Cascadia Code and Cascadia Mono

Cascadia Code is an open source font designed by Microsoft for use with Windows Terminal. It also makes a great programming font. It comes in 4 variants. The two “Cascadia Code” variants support a wide range of ASCII ligatures. The “Cascadia Mono” variants are the exact same fonts without the ASCII ligatures. This means you can use Cascadia with the “monospaced left-to-right” and “complex script” text layouts in EditPad and choose whether you want ligatures or not by choosing between “Cascadia Code” or “Cascadia Mono”. The two “PL” variants are the same fonts with added “Powerline” symbols. These are special characters used by terminal applications that map to characters in Unicode’s Private Use Area. If you have a Unicode text file that contains these private use characters and that intends these private use characters to represent Powerline symbols then EditPad will render them correctly if you select “Cascadia Code PL” or “Cascadia Mono PL” as your font.

All variants have a full set of accented letters, supporting even Vietnamese. Cascadia supports the Cyrillic and Greek scripts. It has all the IBM control characters and box drawing symbols as you would expect from a font designed for terminal software.

The font is on the heavy side and is widely spaced. The wide spacing even creates gaps between the box-drawing symbols. You may want to use a pixel or two of negative line spacing in EditPad’s text layout configuration to remove that gap and to allow more text to fit on the screen. But this will make the text quite dense because the font is so heavy.

Fira Code comes in 4 different weights. These are labeled, from lighter to heavier: Fira Code Light, Fira Code, Fira Code Retina, Fira Code Medium. The labels are appropriate. Fira Code Light is among the lightest of programming fonts. Fira Code Medium has a weight similar to fonts like Consolas. In EditPad you can select the weight you want via Options|Configure Text Layout. Selecting a weight via Options|Font is not reliable.

The italic variants of Cascadia draw the letters in a very cursive way. The difference is obvious with most letters. The italic variant does not slant box drawing symbols.

JetBrains Mono

JetBrains Mono is an open source font for developers. It is designed by JetBrains for their development tools. But it works great in EditPad too. from Adobe. JetBrains tout that this font has very tall characters for a better reading experience. It is also widely spaced. Designed for coding, JetBrains Mono supports a wide range of ASCII ligatures. If you don’t want the ligatures, you can select “JetBrains Mono NL”. “NL” stands for “No Ligatures”.

JetBrains Mono has a full set of accented letters, supporting even Vietnamese. It also supports the Greek and Cyrillic scripts. JetBrains claim support for 147 natural languages. The font also supports box-drawing symbols. It lacks most IBM control characters but does support the Unicode control pictures. EditPad has an option in the text layout configuration to use the Unicode control pictures to visualize control characters.

JetBrains Mono comes in 7 different weights. These are labeled, from lighter to heavier: JetBrains Mono Thin, JetBrains Mono ExtraLight, JetBrains Mono Light, JetBrains Mono, JetBrains Mono Medium, JetBrains Mono SemiBold, and JetBrains Mono ExtraBold. The regular weight is indeed “JetBrains Mono” without a weight indicator in its name. This weight is similar to other programming fonts, but still a bit lighter than fonts like Consolas. In EditPad you can select the weight you want via Options|Configure Text Layout. Selecting a weight via Options|Font is not reliable.

The italic variant mostly slants the letters, but not box drawing symbols. A few letters like “a”, “f”, and “y” are different in the italic variant.

Hasklig

Hasklig was developed specifically for Haskell programmers. Haskell makes extensive use of complicated operators such as =>, -<, and >>=. Hasklig makes these easier to read by forming ligatures. Hasklig limits its ligatures to those useful in Haskell. /= is rendered as , for example, but != does not form a ligature. Fira Code supports all of Hasklig’s ligatures but Monoid does not.

Hasklig is a perfectly monospaced OpenType font. It has a full set of accented letters, supporting even Vietnamese. It supports the Cyrillic and Greek scripts and box drawing symbols. It is widely spaced with short and wide characters. This allows more lines to fit on the screen despite the wide spacing.

Hasklig comes in 6 different weights. These are labeled, from lighter to heavier: Hasklig ExtraLight, Hasklig Light, Hasklig, Hasklig Medium, Hasklig Semibold, Hasklig Black. The regular Hasklig has a similar weight to fonts like Consolas. Hasklig Semibold appears rather bold and Hasklig Black seems unusable at font sizes typically used for programming. In EditPad you can select the weight you want via Options|Configure Text Layout. Selecting a weight via Options|Font is not reliable.

The italic variant is slightly more cursive. The letter “a” is clearly different. It does not slant box drawing symbols.

Monoid

Monoid is an open source font developed by Andreas Larsen. It supports many ligatures. It is a perfectly monospaced TrueType font, with clearly distinguishable characters. Its repertoire includes many accented letters and the Cyrillic and Greek alphabets, but no supplemental Cyrillic or Greek characters.

The font is fairly light weight. Characters are tightly spaced. They are larger and particularly taller than with the other fonts on this page. This makes the font very easy to read. But fewer lines will fit the screen at a given font size.

Bitstream Vera Sans Mono and DejaVu Sans Mono

Other than being quite a mouthful, Bitstream Vera Sans Mono is one of the fonts in Bitstream’s open source Vera font collection. It was originally designed for the Gnome project. You can get the font right here.

Bitstream Vera Sans Mono is a perfectly monospaced TrueType font, designed for ClearType, with clearly distinguishable characters. Its repertoire is limited to the English alphabet with a basic set of accented letters. Characters are tightly spaced, resulting in larger characters for a given font size. Vera Sans Mono is heavier than the other fonts on this page.

This font may be freely copied in its unmodified form. If you modify it, you have to rename your version to something completely different. A wide number of derivatives are available. Most aim to expand the font’s repertoire to other alphabets. The DejaVu font family merges most of these. It adds a wide range of accented letters, the Greek, Cyrillic, and Armenian scripts, the international phonetic alphabet, mathematical symbols, IBM control characters, and box drawing symbols. The italic variant slants letters but not mathematical or box drawing symbols.

Note that the Vera font family includes more fonts than Vera Sans Mono. The Sans Mono font is the only monospaced one. Not all the additional scripts supported by the derived font families are in the Mono variant of the font.

Envy Code R

Envy Code R was created by Damian Guard, who makes it available as a free download on his blog. The download actually includes two sets of fonts, one of which is labeled “VS” for “Visual Studio”. The unlabeled variant works great with EditPad.

Envy Code R is a perfectly monospaced TrueType font, designed for ClearType. It supports many accented letters, including those for Eastern European languages such as Romanian. Other alphabets are not supported. It does support the most common box drawing symbols. Characters are widely spaced, resulting in smaller characters for a given font size. Envy Code R is lighter than the other fonts on this page.

The italic variant is slightly more cursive. The letter “a” is clearly different. It does not slant box drawing symbols.

Source Code Pro

Source Code Pro is an open source font from Adobe. It has a full set of accented letters, supporting even Vietnamese. It also supports the Greek and Cyrillic scripts, IBM control characters, and DOS box drawing symbols.

The font has wide characters and is widely spaced. You may want to use a pixel or two of negative line spacing and maybe even one pixel of negative character spacing in EditPad’s text layout configuration to allow more text to fit on the screen.

Source Code Pro comes in 6 different weights. These are labeled, from lighter to heavier: Source Code Pro ExtraLight, Source Code Pro Light, Source Code Pro, Source Code Pro Medium, Source Code Pro Semibold, and Source Code Pro Black. The regular weight is indeed “Source Code Pro” without a weight indicator in its name. This weight is lighter than the other fonts on this page. Source Code Pro Medium has a weight similar to other programming fonts, but still a bit lighter than fonts like Consolas. In EditPad you can select the weight you want via Options|Configure Text Layout. Selecting a weight via Options|Font is not reliable.

The italic variant is slightly more cursive. The letters “a” and “i” are clearly different. It does not slant box drawing symbols.

Hack

Hack is “a typeface designed for source code”. It is made freely available by Adobe.

Hack’s repertoire includes many accented letters for Eastern European languages, including Romanian. It does not have all the accents that Vietnamese needs. Hack also supports the Cyrillic, Greek, and Armenian scripts and box drawing symbols. It lacks many IBM control characters.

Hack has large characters with a fair amount of spacing, making it a very legible font. It does not support ASCII ligatures. The italic variant slants letters but not mathematical or box drawing symbols.

The Ultimate Oldschool PC Font Pack

The Ultimate Oldschool PC Font Pack is a large set of fonts that emulate the fonts used by character-based computers in the 1980s. These fonts are all monospaced because those character-based systems could only display text on a fixed character grid. These fonts are all heavy and some very heavy because they were designed for very low resolution screens. They are not monospaced when mixing plain and bold variants. The fonts don’t actually include bold variants. Windows simulates bold by making the characters wider. Since the fonts are heavy to begin with, it’s best to use these a palette that does not make any text bold.

The font pack provides the fonts in a large number of different formats. The “Bm” fonts are bitmapped fonts. They will appear so tiny in EditPad they’re not useful. The “Px” fonts are TrueType fonts. Those are usable because you can change the font size to match your screen. At larger sizes they will appear as blocky as they did on the original systems in the 1980s. At smaller sizes ClearType will smooth their edges. The "Ac" fonts work just as well as the "Px" fonts. Their characters are taller if they simulate a font from a computer system that had non-square pixels. The “Web” fonts cannot be used by EditPad. They repackage the “Px” fonts for web use.

The “437” fonts only support the characters in the DOS 437 code page. They only support ASCII characters, a limited set of accented letters for Western European languages, the IBM control characters, and the DOS box drawing symbols. The “Plus” fonts have a significantly expanded character repertoire to include smart quotes, many accented letters, and the Greek, Cyrillic, and Hebrew scripts. EditPad will correctly display DOS 437 text files with the “437” and “Plus” variants. But for other encodings the “437” fonts miss a lot of characters.

If you like the fat and pixelated appearance of the old style fonts, then the “PxPlus” and “AcPlus” fonts are perfectly usable in EditPad.

For Hebrew letters to appear in the correct order, you need to select the text layout that matches your file. If your files were created by modern Windows software then they likely store text in logical order. EditPad’s complex script text layout will correctly support that, including bidirectional editing. Your files may store text in visual order if they were created on an old DOS system that only works from left to right. EditPad’s “monospaced left-to-right only” text layout will then display your files like the old software did. Editing may be difficult as you’d have to type Hebrew backwards.

The italic variant is simulated by Windows. It slants all characters, including the box drawing symbols.

Text Layout in EditPad 7 and 8

EditPad 7 introduced a new “text layout” system for configuring how EditPad displays your text. With the right set of options, you can make your text look just the way you like it, even with an imperfect font.

In the Options|Text Layout submenu you’ll see 8 text layouts by default. The “left-to-right” layout does what EditPad 6 and earlier did. It displays text from left to right and follows the font’s spacing exactly as the font’s designer intended. If you have syntax coloring mix bold and plain variants of fonts like Andale Mono or Lucida Console that aren’t perfectly monospaced then columns may end up shifted by a few pixels here and there. The default font is Courier New or Consolas, depending on your version of Windows. The “proportionally spaced left-to-right” layout does the same as “left-to-right”, except that the default font is Tahoma or Segoe UI. These text layouts do not support ligatures. If you want to use a font like Fira Code without the ligatures then use that font with the “left-to-right” text layout.

The “monospaced left-to-right” layout forces text to be monospaced. The text will stay monospaced even if you use a proportionally spaced font. This text layout allows you to use fonts like Andale Mono or Lucida Console and have all columns line up perfectly. By default the bold characters will be squished together a little bit to fit within the grid of plain characters. This text layout also supports ASCII ligatures if the font uses one glyph per character when forming ligatures. All the fonts recommended on this page do. If you select one character in a ligature, the ligature is temporarily broken, revealing the actual ASCII characters.

The “monospaced ideographic width” layout is intended to be used when editing text in Chinese, Japanese, or Korean. It is the same as the “monospaced left-to-right” layout, but forces all ASCII characters to be the same width as ideographs. Unicode fonts have special “full-width” variants of the ASCII characters for this purpose. EditPad uses them when you select this text layout.

The other predefined text layouts are complex script layouts. These are primarily intended to support scripts that are not written strictly from left to right. You can use monospaced fonts with them. But the text is not forced to be monospaced and rectangular selections are not supported regardless of the font. ASCII ligatures are supported, even with fonts like DejaVu Sans Code that use a single glyph to render ligatures. If the font uses multiple glyphs to render a ligature, you can partially select a ligature and still see it as a ligature.

For full control, select Options|Text Layout|Configure Text Layout in the menu. The configuration screen shown to the right appears. The “text layout and direction” group has the options relevant to this discussion. The “left-to-right” layout uses the “left-to-right only” option. The two monospaced layouts use the “monospaced left-to-right only” option. When you choose this option, the “ASCII characters with full ideographic width” checkbox determines whether ASCII characters are displayed normally or whether they’re stretched to be as wide as ideographs.

The “line and character spacing” group has the options for fine-tuning the display. The default layouts have everything set to zero, making EditPad Pro use the font’s default spacing. To fit more lines on a page, set the “line height” option to a negative number of pixels. To put more space between lines, set either “line height” or “extra space between lines” to a positive number of pixels. The difference is that when you select a block of line, increasing the space between lines will leave a gap between selected lines, while increasing the line height does not.

When using the “monospaced left-to-right only” text layout and direction with a font that isn’t perfectly monospaced, you can increase or decrease the character width to get the look you want. By default EditPad uses the width of the plain characters, which may cause bold characters to appear squished. If you add a pixel (or two for big font sizes) of character width, bold characters will look better. If you’re forcing a proportionally spaced font to be monospaced, the default spacing may be too wide to your taste if some characters like “m” are significantly wider than others like “i”. Set the character width to a negative number of pixels to space the characters more closely.

The best part of the text layout configuration in EditPad is that you can choose a different text layout for each file type. So you can use a strictly monospaced layout for file types with data in columns, while using the font’s exact spacing for other file types. You can configure as many (or as few) text layouts as you like.