2011/09/07

寫程式用的字型

2019.11.14更新:我在寫這篇文章時,並沒有考慮字型的授權問題,如商業使用是否要錢,可否在公司內使用。感謝熱心網友Karen Ferrer提供另一篇分享文70+ Best Free Fonts for Designers – Free for Commercial Use in 2019,可找到能用於商業的免費字型,等寬字型在第9節。


這裡列出一些等寬字型(fixed-width or monospaced fonts),主要用於撰寫程式時,以及終端機命令列模式下使用。喜歡與否,見仁見智,大家試試看,自己看的順眼最重要。

挑選時,有些注意事項:

  • 英文字母大寫O、小寫o、數字0,必須能夠清楚辨識。
  • 英文字母小寫l,大寫I、小寫i,數字1、符號|,必須能夠清楚辨識。 
  • 符號`與',必須能夠清楚辨識。
  • 字型的筆劃粗細適中。
  • 有些字型,設定在某種大小下時,非常漂亮,但可能在放大或縮小後,卻變差了。
現在作業系統各有其獨特的文字描繪技術,同一套字型在不同編輯器下看起來不盡相同,在我的環境下可能很棒,但在你那邊可能差強人意,更何況,每個人的感覺不同、偏好不同,所以請自己實際用用看,要注意各種相關參數的設定,譬如anti-aliasing、ClearType、等等。


Courier、Courier New
由IBM根據打字機的字型所設計的,因為沒有維護其專利,所以流傳廣泛。
我的感覺:Courier太難看。Courier New中規中矩,筆劃有點細。
下載:各系統上應該都有安裝此字型;Courier New可到這裡找找

Andale Mono 
很多系統預設安裝的字型。
我的感覺:比Courier New好,但有更棒的。
下載:請到這裡

Monaco、Menlo
Monaco是Apple的Mac作業系統內建的終端機預設字型,在Mac OS X 10.6被Menlo取代。Menlo是由Bitstream Vera Sans Mono改過來的。
我的感覺:不錯,在Mac上嫌麻煩的話就直接用這兩個字型吧。
下載:據我所知,只能在Mac OS上合法使用。

Source Code Pro
Adobe釋出的等寬字型,很不錯。
我的感覺:很不錯。
下載:請到這裡

ProFont
我的感覺:不錯,推薦。
下載:請到這裡

Bitstream Vera Sans Mono
我的感覺:整體看起來筆劃夠黑,我喜歡,但是符號*的位置偏上,我不喜歡。
下載:請到這裡

Deja Vu Sans Mono
由Bitstream Vera Sans Mono改過來的,免費。
我的感覺:很不錯,推薦。整體看起來筆劃夠黑,我喜歡,但是符號*的位置偏上,我不喜歡。
下載:請到這裡

Monofur
我的感覺:有點古老的味道。
下載:請到這裡

Inconsolata
我的感覺:很不錯,推薦。單引號與雙引號有點卷曲歪斜,有人不喜歡所以繼續修改,變成Inconsolata-g
下載:請到這裡

Anonymous Pro
Mark Simonson設計,免費。
我的感覺:很不錯,推薦。
下載:請到這裡


參考資料:
  1. Top 10 Programming Fonts
  2. Fixed-width fonts
  3. Monospace/Fixed Width Programmer's Fonts
  4. Font Survey: 42 of the Best Monospaced Programming Fonts
  5. 5 good programming fonts 

26 comments:

  1. 相關的文章,10款免費下載英文經典品牌字體www.bnext.com.tw/Article/view/cid/103/id/23983。

    ReplyDelete
  2. 由Adobe公司釋出的字型,Source Sans Pro與Source Code Pro,可到http://blogs.adobe.com/typblography/2012/08/source-sans-pro.html與blogs.adobe.com/typblography/2012/09/source-code-pro.html下載。

    ReplyDelete
  3. http://slant.co/topics/what-is-the-best-programming-font,票選最佳程式字型。

    ReplyDelete
  4. 《超圖解Arduino互動設計入門》的書本封面、插圖與程式字體之Hack
    http://swf.com.tw/?p=447
    ,作者解釋選擇字型的過程。

    ReplyDelete
  5. 有幸拜讀您的大作《Raspberry Pi從入門到應用》,在自習Python參考書中範例時,在"6.5串列"這一節測試發現下列情形:
    程式碼是照您書上範例一字不差打的,但執行結果(我指的是經過華氏轉攝氏換算後那一行的結果)跟您不同(我的執行結果未做概數取捨,列出來的是[0.0, 100.0, -12.222222222222221, 12.777777777777779, 25.555555555555557, 43.333333333333336, 81.11111111111111]),請問您的華氏轉攝氏計算結果有做概數取捨嗎(因為書上列的都是整數)?會這麼問是因為您的程式碼中並未有任何一段要求程式做概數取捨動作的CODE. PS:小弟的PYTHON是安裝3.3.1版本.

    ReplyDelete
    Replies
    1. 該章的Python程式碼,Python 2.x與3.x的直譯器皆可執行,不過因為2.x與3.x有差異,
      2.x的「/」會是整數除法,例如 5 / 2 會得到2,
      而3.x的「/」會是真除法,例如5 / 2 會得到2.5,
      所以得到的東西不一樣。

      所以2.x會輸出整數,3.x會輸出浮點數。

      抱歉造成困擾,這算是我的一處疏忽,沒說清楚。

      Delete
  6. Inconsolata-g以Inconsolata為基礎,修正字母l與數字1太過相似的問題。
    http://leonardo-m.livejournal.com/77079.html

    ReplyDelete
  7. Hack an Editor: Fonts for Programming
    https://hackaday.com/2015/09/02/hack-an-editor-fonts-for-programming/

    ReplyDelete
  8. Iosevka

    http://be5invis.github.io/Iosevka/?v1.0.0

    ReplyDelete
  9. https://github.com/tonsky/FiraCode
    會把多個字元組成一個,譬如!=變成≠,
    需編輯器的支援。

    ReplyDelete
  10. mononoki
    https://madmalik.github.io/mononoki/

    ReplyDelete
  11. http://input.fontbureau.com/

    ReplyDelete
  12. The package of IBM’s typeface, IBM Plex.
    https://github.com/IBM/plex

    ReplyDelete
  13. 11 Best Programming Fonts – ITNEXT
    https://itnext.io/11-best-programming-fonts-724283a9ed57

    ReplyDelete
  14. YouTuber 合法使用中文字型的管道有哪些?
    https://www.inside.com.tw/2018/08/28/youtuber-fonts

    ReplyDelete
  15. Best Unicode Fonts for Programer
    By Xah Lee. Date: 2010-04-10. Last updated: 2018-12-31.

    http://ergoemacs.org/emacs/emacs_unicode_fonts.html

    ReplyDelete
  16. The finest (and free) ligature code fonts
    https://www.andreasrein.net/posts/code-fonts/

    有連字的字型

    ReplyDelete
  17. Lotion
    a monospace typeface for programming
    https://font.nina.coffee

    ReplyDelete
  18. Cascadia Code from Microsoft
    https://devblogs.microsoft.com/commandline/cascadia-code/

    ReplyDelete
  19. Lesser Known Coding Fonts
    https://vfoley.xyz/lesser-known-coding-fonts/

    ReplyDelete
  20. DSE Typewriter Font
    https://webonastick.com/fonts/dse-typewriter/

    ReplyDelete
  21. 貓字型 https://msraynsford.blogspot.com/2020/09/cat-alphabet-and-svg-fonts.html

    ReplyDelete
  22. Iosevka 強調可與CJK相容
    https://en.wikipedia.org/wiki/Iosevka

    ReplyDelete
  23. 列出各種寫程式用的字型
    https://coding-fonts.css-tricks.com/

    ReplyDelete
  24. monospaced version of the Minecraft font for programmers
    https://github.com/IdreesInc/Monocraft

    ReplyDelete
  25. Anonymous14/8/23 13:57

    Fira Code: free monospaced font with programming ligatures
    https://github.com/tonsky/FiraCode

    ReplyDelete