2011/06/01

谈谈编程字体

之前在hacker news上看到了这么一篇文章:《十大编程字体》Top 10 Programming Fonts,作者总结了他认为的适合编程的十大字体。排名依次是:
10. Courier
9. Andale Mono
8. Monaco
4. Droid Sans Mono
3. Deja Vu Sans Mono
所有这些字体在原帖中都有示例截图。

虽然我们每天都跟各种字体打交道,但对字体中的各种学问知之甚少,上面的几个字体一般人都看不出什么差别。那么究竟什么才算是适合编程的字体呢。在Inconsolata字体的介绍中,作者给出了一个连接:http://www.lowing.org/fonts/ 里面有详细的评判标准和各种字体的样例截图。

优秀的编程字体标准:
1.       清澈的字符
2.       扩展的字符集(大概指ä这样的符号)
3.       容易区分1,I,l 
4.       容易区分0,o,O
5.       容易区分前引号和后引号,最好是镜像对称的
6.       清楚的标点符号,特别是花括号,圆括号和方括号

ABCDEFGHIJKLMNOPQRSTUVWXYZ
Abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
il1 o0O `’”[]{}<>,./\

ABCDEFGHIJKLMNOPQRSTUVWXYZ
Abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
il1 o0O `’”[]{}<>,./\

上面是windows中自带的字体Courier NewConsolas的比较。
可以看出排名第2Consolas比起排名第10Courier有以下改进:
1.  字体更粗,笔画更简单
2.  重新绘制的斜体字符,仔细看小写的af等字母
3.  采用了加竖线的0,更容易区分这些字符
遗憾的是,consolas的版权是微软所有,如果你使用mac或者linux,就不能使用这个字体了,这也就是它排名第二的原因之一。排名第一的Inconsolata是一个free的字体,你可以在任何地方使用它。

总的来说字体的表现和字体的设计,系统对字体的渲染和显示器的关系比较大。个人认为在windows下,液晶显示器上,Consolas的显示效果最好。
如果你没有试过这些字体,赶快尝试一下吧,这里附上eclipse里设置字体的方法:
点击windows->preferences
打开General->Appearance->Colors and Fonts
点击Text Font, Edit就可以选择系统中已经安装的字体了。