寫程式時好用的字體字型比較與推薦

電腦中的字型有非常多種,
但除了少數專門處理編排輸出的工作者外,通常使用系統內建字型就足夠了。
我不是專門做輸出或者編輯的人員,而是專門在寫 code 刻程式的,
那麼作為程式寫手,在選擇字體字型時有什麼特別需求呢?

圖片來源:http://bobo.chinavisual.com/index.php/archives/284

在選擇字型前,首先要說明的是字型有兩種,
若有人有使用過華康之類的字型,
也許會發現同樣字型名稱後面有的會出現 P 的註記;
如果沒用過,不知道有沒有人曾經發現某些字型在英文顯示時不同字母會有不同大小呢?

圖片來源:http://cc.shu.edu.tw/~www/week_qa/qa/q_20060330_fonts_4_df_un.htm

P 的註記其實是「調和字」(Proportional Spacing) 的意思,
而相對於沒有 P 的,我們稱之為「定寬字」(MonoSpacing)。
有 P 無 P 在使用中文時並沒有差別,因為中文是歪國人眼中的方塊字,
也就是每個字都是等寬的,排列起來相當整齊不會亂七八糟。
但是有 P 無 P 在顯示英文、數字或是符號時就會出現不一樣的效果囉!

調和字 (P) 的每一個字母所佔的寬度都不一樣,
例如細長的 i 佔的寬度較窄,而 W 就佔去較寬的空間。
定寬字則是代表每一個字母所佔的空間都一樣,
表現出來和中文字一樣,排起來比較整齊。

下面的字是調和字型 (Arial) 的顯示較果,可以看得出來大寫字母明顯佔去較多寬度:
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ

而下面則是定寬字型 (Courier) 的顯示效果,和上面的差別是不是很大呢?
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ

如果想自行測試的話,
Windows 裡內建的新細明體就是調和字 (P),細明體則是定寬字,
大家可以將上面那段英文大小寫複製到 word 後更改字型試試喔!

說了那麼多,調和字 (P) 和定寬字到底適合用在哪裡呢?
有一說是調和字 (P) 在中英文同時顯示時能讓中英文與符號有更最好顯示效果,
所以在編排文件輸出時建議使用調和字型,可以讓文件看起更美觀。
而在寫程式的時候則著重於每個字母間必須粒粒分明可以清楚辨別,
且要大小一致整齊排列以方便尋找,所以最適合用定寬字。


說了那麼多一套好的「程式用定寬字(Monospace Font for Programmers)」要有哪些特色呢?
  1. 字體清晰 -> 完全無法想像拿什麼上面那些什麼魔風體、海報體、少女體來寫程式 orz
  2. 字集完整 -> 寫程式常用到 utf-8 編碼,所以最好能完整支援 unicode
  3. 適當間距 -> 即使已經定寬還是要有適當間距,不然擠在一起還是很難看
  4. 字型不混淆 -> 至少 l (小寫 L)、I (大寫 i ) 以及 1 (數字) , 0 (數字)、o 以及 O 要容易分辨
  5. 英文引號 ` 以及 ‘ 必須容易分辨,最好可以左右對稱
  6. 標點符號清楚,特別是 < > { } [ ] 這些程式常出現的符號
TOP 10 PROGRAMMING FONTS 列出了十大程式用定寬字,有興趣的可以進去挑選一下。
目前我正在使用的字型就是名列第二名的 Consolas 變種 Yahei Consolas Hybrid,
這其實是一種合成字體,是拿微軟雅黑的中文字體加上 Consolas 的英文字體合成的,
Consolas 是微軟專門為 programmer 開發的字型,但因為没有中文部份,
所以就有了 Yahei Consolas Hybrid,特別適合需要同時顯示中英文的程式開發。

 Yahei Consolas Hybrid 顯示效果:

想在網頁中嵌入程式碼嗎?全系列教學與顯示效果比較已完成,可參考:
在網頁中嵌入顯示程式碼:全系列效果比較及教學整理

關鍵字:程式, 開發, 寫程式, 專用, 適合, 字體, 字型, 推薦, 比較
參考資料:

這個網誌中的熱門文章

【銀行代碼查詢】3碼銀行代碼列表、7碼分行代碼查詢

【台北中壢】國道客運/公車路線(1818,2022,9001,9025)!

【博客來折價券】博客來免費序號e-coupon分享(持續更新)

【Hami Video】影劇/電視/運動館免費體驗/試用序號分享(隨時更新)!

【博客來折價券】25/50/100現領現折+天天簽到換200+OP兩倍換!