Posted on 2009-11-25 12:01
Hero 閱讀(21402)
評論(6) 編輯 收藏 引用 所屬分類:
資料整理
字體不僅是設計師手中重要的武器,對我們開發人員來說,字體的選擇也有許多講究,一個好的、適合展示代碼的字體,應該具備以下要素:
- 等寬的字符
- 簡潔、清晰并且規范的字符形狀
- 支持ASCII碼為128以上的擴展字符集
- 與字符同等寬度的空格
- 易于分辨的小寫字母l、大寫字母I、數字1和符號|
- 易于分辨的大寫字母O和數字0
- 易于分辨的前引號和后引號,最好能夠前后對稱
- 易于分辨的其他標點符號,尤其是大括號、中括號、小括號和尖括號
- 良好的中文支持和顯示
下圖展示了一個極端的反例,雖然很有個性,但并不適合用來顯示代碼。它的大寫字母大的可怕,小寫字母卻小的可憐;字符不僅不清晰,而且不規范;小寫字母l、大寫字母I、數字1和符號| 難以分辨;大寫字母O和數字0難以分辨;標點符號還湊合,只是下劃線為什么是斷開的?
當然,這個反例的確有些夸張,但其上文所列舉的條件是比較苛刻的,我們在選擇字體時沒有必要非要完全滿足所有條件,事實上這種字體也是鳳毛麟角。下文所分享的一些字體也并沒有完全滿足所有條件,我們發現,只要滿足了其中一些關鍵條件,用來顯示代碼就已經很不錯了。
在Visual Studio中,更改編輯器的字體是件簡單的事情,選擇菜單【工具】【選項】,在彈出的“選項”對話框中依次選擇“環境”和“字體和顏色”,然后在“顯示其設置”中選擇“文本編輯器”,最后在“字體”中選擇字體就可以了,如下圖所示:

在上圖中,我們發現Visual Studio已經將等寬字體用粗體標識了出來,這樣做是為了讓我們更容易找到等寬的字體,并不表示等寬字體就一定適合顯示代碼,比如下圖所示的“新宋體”就是一個反例:
在新宋體中,數字0之比大寫字母O瘦那么一點點,小寫字母l和數字1也十分相像,幸虧配色方案能夠顏色將它們區別開來,否則實在難以分辨。這也從另一個角度說明了配色方案與字體是相輔相成的,搭配恰當時,會讓代碼更加清晰易辨。
下面就和大家分享一些在編程界聲名烜赫的字體,截圖所采用的配色方案為HumaneStudio,展示順序為字體首字母升序。這些字體可能乍一看都一樣,但仔細品味,還是能夠發現不同的味道,希望大家都能找到適合自己的字體。
Andale Mono,演示字號為14,猛擊這里下載:
Anonymous Pro,演示字號為14,猛擊這里下載:
Bitstream Vera Sans Mono,演示字號為14,猛擊這里下載:
Consolas,演示字號為14,Windows或Visual Studio已內置:
Courier New,演示字號為14,Windows已內置:
DejaVu Sans Mono,演示字號為14,猛擊這里下載:
Envy Code R,演示字號為16,猛擊這里下載:
Inconsolata,演示字號為16,猛擊這里下載:
Monaco,演示字號為12,猛擊這里下載:
Monofur,演示字號為16,猛擊這里下載:
Progmata,演示字號為14,猛擊這里下載:
Share TechMono,演示字號為16,猛擊這里下載:
注:此字體似乎會將連在一起的fl顯示為一個點,不建議使用,可惜可惜。
尾注:
- 本文所分享的字體均支持ClearType。
- 從評論來看,中文的顯示的確是一個影響美觀的重要因素,所以產生了許多微軟雅黑和一些優秀英文字體的混合版,但其實還有一種方法可以快速而簡單的實現用不同的字體顯示中英文(感謝提醒),方法如下:
- 用文本編輯器打開%AppData%\Microsoft\VisualStudio\9.0\VsFontLk.dat;
- 將0804一行修改為需要的中文字體,格式為“0804|中文字體名稱”,比如“0804|微軟雅黑”;