The current monospace/programming font on this blog iswas Adobe's Source Code Pro via Google Web Fonts and I am not entirely satisfied with it. It has different font size, so I can fit 80 characters in one-line within the post width. So, I want to find another monospace font from Google Web Fonts. Unfortunately, there is no easy way. No option for selecting monospace fonts and I can't find anyone who has kindly spent time to make a list of that.

Since I clone entire Google Web Fonts, therefore it could be easier to generate a list programmically instead of going through the fonts via Google Web Fonts' interface.

In pangocairo, pangocairo.cairo_font_map_get_default() returns a pango.FontMap which can be used to list all font families. With those, pango.FontFamily.is_monospace() gives me what I look for, whether a font is monospace.

The following simple Python script lists all monospaces along with font's faces:
Sample output:
 ~/p/single [git:master] $ ./list-monospace-fonts-pangocairo.py
AR PL KaitiM Big5       : Regular Italic Bold Bold Italic
AR PL KaitiM GB         : Regular Italic Bold Bold Italic
AR PL Mingti2L Big5     : Reguler Italic Bold Bold Italic
AR PL New Kai ExtB      : Regular Italic Bold Bold Italic
[...]
Source Code Pro         : Regular Black ExtraLight Light Bold Semibold Italic Bold Italic
Ubuntu Mono             : Regular Bold Italic Bold Italic
Ubuntu Monospaced       : Regular Bold Italic Bold Italic
VT323                   : Regular Italic Bold Bold Italic
Now it's time to make the list by generating two lists, one from script above, another from fc-list
./list-monospace-fonts-pangocairo.py | sed 's/ *:.*$//' > monospace.lst
fc-list : file family | grep googlefontdirectory | grep -v ' \\- subset of ' | cut -d ' ' -f 2- | sed 's/,/\n/g' | sort | uniq > gwf.lst
sort monospace.lst gwf.lst | uniq -c | grep ' 2 '
Only taking the font family part. The list of Google Web Fonts requires little processing, it makes sure the list only contains fonts from the clone directory.

The list:
      2 Anonymous Pro
      2 Courier
      2 Cousine
      2 Cutive Mono
      2 Droid Sans Mono
      2 Inconsolata
      2 Lekton
      2 NanumGothicCoding
      2 NovaMono
      2 Oxygen Mono
      2 PT Mono
      2 Press Start 2P
      2 Share Tech Mono
      2 Source Code Pro
      2 Ubuntu Mono
      2 Ubuntu Monospaced
      2 VT323
Only 1716 fonts are monospace from Google Web Fonts, as of 2012-12-16T10:35:54Z. Note that: the Courier is not a mis-match, there is a Thabit in Early Access, the courier matches font files under Thabit's directory, /ofl/thabit/src/cour/*. The fonts in Early Access are not shown in Google Web Fonts' main browser.

Updated @ 2012-12-16T14:41:05Z:
  1. I have changed programming font to Inconsolata, one I used to use on my computer. It's not the best option but it's one of final four I picked up: Inconsolata, NanumGothicCoding, Lekton, and Ubuntu. I want the font isn't big and easy to read and fits 80 chars in width of 640px, these four met my criteria. Envy Code R still is the best in my opinion.
  2. The amount of fonts should be reduced by 1, because I found Ubuntu Mono seems to be synonym to Ubuntu Monospaced. I didn't actually check if they are, but that makes sense.