git.lucas.co / font-new-heterodox-mono
git clone https://git.lucas.co/font-new-heterodox-mono.git

README.md (7.9K)

  1 # New Heterodox Mono
  2 
  3 A Didone-esque Monospaced Typeface based on Alexey Kryukov's Old Standard TT.
  4 
  5 Some years ago I made an adaption of the beautiful open-source font _Old Standard TT_ into a monospaced font
  6 for my own use. I have been using this a lot as my programming font but I had never made it public.
  7 Despite the typeface still has some room for improvement, I decided perhaps I should upload it in case someone
  8 finds this useful or wants to help developing it, as there are almost no free alternatives of this kind of
  9 monospace fonts out there. In 2021 summer, I channelled some of my COVID-19 boredom into creating a new weight.
 10 
 11 I felt that it is very much non-"standard" in the computer science/programming community
 12 to use this kind of typeface in programming, so I named it "New Heterodox" as opposed to
 13 "Old Standard". (Occasionally you may see Century School Book Mono in textbooks but it is definitely not
 14 popular) Ironically, "Old Standard" was named as opposed to "Obyknovennaya Novaya" ("New Standard"), and now in
 15 the age of computers, the old-time new standard has become a new heterodoxy, as in many other things in
 16 design.
 17 
 18 # Linux and Microsoft Version
 19 
 20 Windows users should use "New Heterodox Mono A", the TTF version, and Linux users may prefer "New Heterodox Mono",
 21 the OTF version. Unfortunately "New Heterodox Mono A" does not have a bold weight yet. If you use Linux you can
 22 use either version.
 23 
 24 This is because the original version of "New Heterodox Mono" is a cubic spline OTF font, while "New Heterodox Mono A"
 25 is a quadratic spline font which contains some Truetype bytecode tweaks among other adjustments. Linux is generally fine
 26 with both types of fonts, but Windows' rasterizers are still very broken when it comes to cubic spline in 2021. On Windows,
 27 VSCode, MS Edge, and most PDF readers seem to use a more reasonable rasterizer for the cubic, but the rasterizer widely
 28 used by other native apps such as Notepad, Notepad++ and emacs is completely dysfunctional on cubic splines, due to their
 29 insistence on aggressive grid-fitting even on those OTF Postscript fonts which cannot have Truetype bytecode.
 30 
 31 # Screenshots
 32 
 33 ![Screenshot 1](https://github.com/hckiang/font-new-heterodox-mono/blob/assets/screenshot01.png?raw=true)
 34 ![Screenshot 2](https://github.com/hckiang/font-new-heterodox-mono/blob/assets/screenshot05.png?raw=true)
 35 ![Screenshot 3](https://github.com/hckiang/font-new-heterodox-mono/blob/assets/screenshot04.png?raw=true)
 36 ![Screenshot 4](https://github.com/hckiang/font-new-heterodox-mono/blob/assets/screenshot02.png?raw=true)
 37 
 38 # Design Notes
 39 
 40 Over the years I have grown increasingly tired of looking at the mainstream sans-serif "programming fonts" all days.
 41 Underlying many of them seems to be a shared vision that only "readability", or in other words, utility, matters;
 42 while aesthetics, elegance and feeling are somewhat a by-product, some sort of an opinion that needs to be justified
 43 _through_ some "objective" reasoning around readability, in which history and tradition have no roles to play. But this
 44 vision is rather awkward in itself: if we go back a hundred years and ask a French whether they find Didot difficult
 45 to read, they may tell you that it is totally readable, as historically it was not uncommon to set newspapers in high-contrast
 46 typefaces like the Didot, while nowadays most people would probably say that Dejavu Mono is more readable for coding. Once
 47 we expand our time horizon a little, it is immediately obvious that much, but of course, not all, reasonings around
 48 readability nowadays are, rather than some objectively derived right-thing-to-be, nothing more than traditions and customs:
 49 one which has been passed down from the days when the resolution of computer screens was too low to accurately display the
 50 serifs.
 51 
 52 As a result of this vision, most popular sans-serif programming fonts look minimalistic, or dull, depending on how you
 53 look at it. Serifs are not mission-critical, let's remove them. Creativity and irregularity is discouraged by
 54 default unless there are some arguments for its utility.
 55 
 56 But if utility were the only thing that matters, why don't we write programs in a monospaced version of Comic Sans? A
 57 quick Google will show you that Comic Sans is very legible at small size. It feels wrong, of course, because the _feeling_ of a
 58 piece of art work matters. Serifed types are attractive for programming because they evoke a feeling of thoughtfulness.
 59 
 60 But how readable is this font? I am comfortable programming with it everyday but perhaps the right person to answer this
 61 question is you, rather than me.
 62 
 63 
 64 # Some details
 65 
 66 The design of the letterforms has been modified from Old Standard to adapt to monospace -- especially,
 67 the proportion of the letters, in this typeface, significantly deviates from Old Standard to adapt to
 68 the monospaced typesetting environment. This, of course, changes the texture and rhythm of the entire
 69 typeface, but my goal is, instead, to find a new proportion that works for monospace rather than to
 70 keep the slim-looking modern serif tradition; as it is pretty much impossible to maintain the same rhythm
 71 in a monospaced type as in a proportional type.
 72 
 73 For the letterform, some glyphs such as 'f', 'r', 'j' etc. look quite unorthodoxical with respect to the historical
 74 norm. This is perhaps not driven by necessity, but, rather, by taste. I don't like Century Schoolbook Mono's
 75 approach, which prioritises keeping more 'agreeable' letterforms over making the amount of whitespace between
 76 letters more uniform. So for some glyphs I have got a little creative, liberally deviating from the tradition while
 77 still taken care to retain the metalish feeling. Also the contrast has been slightly adjusted compared to Old
 78 Standard in order to improve readability in small size.
 79 
 80 In 2021, I added a "Bold" weight, although most professional type designers would perhaps rather call it "Medium" or
 81 "Semi-bold". I named it "Bold" anyway because some editors may not be smart enough to automatically pick up the
 82 name "Medium". In traditional non-coding typography, the medium weight is usually not strong enough to make a piece
 83 of text visually stand out from the long body text, but coding is a bit different, as nowadays most people use syntax
 84 highlighting or at least some sort of colour coding in their programming editors. In such an environment, the
 85 visual contrast is achieved primarily via colours but not font weights, where the latter only serves to add typographic
 86 variation and increase the contrast created by the colours. Therefore I decided to make a lighter bold weight,
 87 which is usually more comfortable to read in a smaller size but still can add some weight to the already colour-coded text.
 88 
 89 Further improvement may be to add more glyphs/language support. Greeks would be my priority if I had time because
 90 science is what I use this typeface for. Of course, any contribution is welcome.
 91 
 92 
 93 # Designer-circle Urban Myths
 94 
 95 * _There is a "dazzle" effect in modern types_: this seems to have arisen after 2000. Wikipedia cites the earliest mention
 96   of this is in Cees W. De Jong et al. 2005; I don't know if they are responsible for this or not. Modern types
 97   have survived several generations of people, two world wars, facilitated mass literacy, been used from books to train timetables. It
 98   certainly does not dazzle anybody before the internet was invented, nor me.
 99 * _Didone types are not suitable to body text because of high contrast, so body size fonts need to be made sort of non-Didone,
100   non-modern to be readable_: I read this on Wikipedia and from several bloggers, but, to be fair to Firmin Didot, Giambattista Bodoni and
101   many others who are dead and hence unable to make a comment on the internet, the sentence should be rephrased as "many people in the 21st
102   century dislike high contrast fonts in body text."  Not even the rephrased sentence is very generalisable, though, as the entire mathematics community
103   has decided to use, as their default, Computer Modern, whose 10pt and 12pt still have quite extreme a contrast.
104