5 款适合程序员的开源字体

编程字体有些在普通字体中没有的特点,这五种字体你可以看看。

-- Andrew Lekashman

什么是最好的编程字体呢?首先,你需要考虑到字体被设计出来的初衷可能并不相同。当选择一款用于休闲阅读的字体时,读者希望该字体的字母能够顺滑地衔接,提供一种轻松愉悦的体验。一款标准字体的每个字符,类似于拼图的一块,它需要被仔细的设计,从而与整个字体的其他部分融合在一起。

然而,在编写代码时,通常来说对字体的要求更具功能性。这也是为什么大多数程序员在选择时更偏爱使用固定宽度的等宽字体。选择一款带有容易分辨的数字和标点的字体在美学上令人愉悦;但它是否拥有满足你需求的版权许可也是非常重要的。

某些功能使得字体更适合编程。首先要清楚是什么使得等宽字体看上去井然有序。这里,让我们对比一下字母 w 和字母 i。当选择一款字体时,重要的是要考虑字母本身及周围的空白。在纸质的书籍和报纸中,有效地利用空间是极为重要的,为瘦小的 i 分配较小的空间,为宽大的字母 w 分配较大的空间是有意义的。

然而在终端中,你没有这些限制。每个字符享有相等的空间将非常有用。这么做的首要好处是你可以随意扫过一段代码来“估测”代码的长度。第二个好处是能够轻松地对齐字符和标点,高亮在视觉上更加明显。另外打印纸张上的等宽字体比均衡字体更加容易通过 OCR 识别。

在本篇文章中,我们将探索 5 款卓越的开源字体,使用它们来编程和写代码都非常理想。

1、Firacode:最佳整套编程字体

FiraCode, Andrew Lekashman

在我们列表上的首款字体是 FiraCode ,一款真正符合甚至超越了其职责的编程字体。FiraCode 是 Fira 的扩展,而后者是由 Mozilla 委托设计的开源字体族。使得 FiraCode 与众不同的原因是它修改了在代码中常使用的一些符号的组合或连字,使得它看上去更具可读性。这款字体有几种不同的风格,特别是还包含 Retina 选项。你可以在它的 GitHub 主页中找到它被使用到多种编程语言中的例子。

FiraCode 与 Fira Mono 的对比, Nikita Prokopov ,源自 Git

2、Inconsolata:优雅且由卓越设计者创造

Inconsolata, Andrew Lekashman

Inconsolata 是最为漂亮的等宽字体之一。从 2006 年开始它便一直是一款开源和可免费获取的字体。它的创造者 Raph Levien 在设计 Inconsolata 时秉承的一个基本原则是:等宽字体并不应该那么糟糕。使得 Inconsolata 如此优秀的两个原因是:对于 0 和 o 这两个字符它们有很大的不同,另外它还特别地设计了标点符号。

3、DejaVu Sans Mono:许多 Linux 发行版的标准配置,庞大的字形覆盖率

DejaVu Sans Mono, Andrew Lekashman

受在 GNOME 中使用的带有版权和闭源的 Vera 字体的启发, DejaVu Sans Mono 是一个非常受欢迎的编程字体,几乎在每个现代的 Linux 发行版中都带有它。在 Book Variant 风格下 DejaVu 拥有惊人的 3310 个字形,相比于一般的字体,它们含有 100 个左右的字形。在工作中你将不会出现缺少某些字符的情况,它覆盖了 Unicode 的绝大部分,并且一直在活跃地增长着。

4、Source Code Pro:优雅、可读性强,由 Adobe 中一个小巧但天才的团队打造

Source Code Pro, Andrew Lekashman

由 Paul Hunt 和 Teo Tuominen 设计, Source Code Pro 是 由 Adobe 创造的 ,成为了它的首款开源字体。Source Code Pro 值得注意的地方在于它极具可读性,且对于容易混淆的字符和标点,它有着非常好的区分度。Source Code Pro 也是一个字体族,有 7 中不同的风格:Extralight、Light、Regular、Medium、Semibold、Bold 和 Black,每种风格都还有斜体变体。

潜在易混淆的字符之间的区别, Paul D. Hunt 源自 Adobe Typekit 博客。

在计算机领域中有特别含义的特殊元字符, Paul D. Hunt 源自 Adobe Typekit

5、Noto Mono:巨量的语言覆盖率,由 Google 中的一个大团队打造

Noto Mono, Andrew Lekashman

在我们列表上的最后一款字体是 Noto Mono ,这是 Google 打造的庞大 Note 字体族中的等宽版本。尽管它并不是专为编程所设计,但它在 209 种语言(包括 emoji 颜文字!)中都可以使用,并且一直在维护和更新。该项目非常庞大,是 Google 宣称 “组织全世界信息” 的使命的延续。假如你想更多地了解它,可以查看这个绝妙的 关于这些字体的视频 。

选择合适的字体

无论你选择那个字体,你都有可能在每天中花费数小时面对它,所以请确保它在审美和哲学层面上与你产生共鸣。选择正确的开源字体是确保你拥有最佳生产环境的一个重要部分。这些字体都是很棒的选择,每个都具有让它脱颖而出的功能强大的特性。

via: https://opensource.com/article/17/11/how-select-open-source-programming-font

作者: Andrew Lekashman 译者: FSSlc 校对: wxy

本文由 LCTT 原创编译, Linux中国 荣誉推出

点击“了解更多”可访问文内链接

程序员都爱用这些字体写代码!

对于很多编程人员来说,有些字体写出来的代码,不仅看起来赏心悦目,而且写代码的时候非常方便。但是很多程序员都是使用编辑器所默认的字体,这样写出来的代码,不仅千篇一律,而且枯燥无味。下面我们就来看看,究竟哪些字体写出来的代码更美观,哪些字体更适合写代码!

1.字母的宽度一致

或称为等宽字体,由于代码文件是普通文本,不带样式的,所以宽度一致易于排列和对齐,能迅速找到位置,提高可读性。

印刷术中这种等宽字体称之为monospaced字体,他是字体中的一个大分类(family),如常见的Courier和Courier New。由于考虑到现在的多语言环境,在不同的系统中,要将这个字体在不同字符集下映射到不同的具体字体上去,比如,一般我们的系统都会把中文的映射到“宋体”上。

2.轮廓清晰规则

只有清晰和规则的外形才能迅速分辨不同的字符,并且在长时间的阅读下不容易感觉到疲劳

在这里要说的是,西方人和东方人在对字体大小上的不同,我认识一些老外,写程序的时候喜欢使用10px的字体来显示代码,而且使用的屏幕分辨率还很高,这是因为他们的文字是字母文字,每个字母的细节少,使用小字体可以在一个屏幕上显示更多内容。所以使用具有清晰和规则的字体,在字体较小的情况下,依然能在屏幕上快速分辨。

3.l,1,i易于分辨

0,o,O易于分辨

前三个是小写L,数字1和小写I, 后三个是数字0,小写o和大写O,这几个字母在代码中常容易混淆。

例如,C风格的代码中,长整型数字要在数字后加后缀L来表示,像“111111111111L”,一般我们推荐都是使用大写的“L”目的就是为了防止混淆,而如果字体中这3中字母可以很容易分辨,那么即使我们误打成了小写l,也不会混淆。

4.清晰易分辨的标点

标点在代码中也占了非常重要的部分,如果一个字体不能很好区分逗号“,”和句号“. ”,“:”和“;”,那么不能说是一个好字体,同样,“`”“’”也最好能是配对的形式,这在某些编程中常常用到。

5.选择哪种字体?

有了以上一些参考标准之后,我们来看一些常见的字体

6.宋体

所有的中文Windows系统都自带宋体,而且宋体同时又是一个中文字体,涵盖了几乎所有的字符,在某些特殊场合,需要同时出现中文和英文的代码时,会考虑直接使用宋体。宋体由于主要照顾中文字符,而中文字符是等宽的,所以在考虑英文字符的时候,也考虑为等宽的,宽度为中文字符的一半。但是宋体的点阵英文字体并不美观,由于有衬线,导致在屏幕上小字号时的可读性较低。“0”和“O”以及“l”和“1”的区分不是很完美。

7.Courier New

这个字体也是每个 Windows都会带的,字体很好看,除了o O 0的区别,也是很多人在编程中使用的。

8.Bitstream Vera Sans Mono

最后我要向大家推荐Bitstream Vera Sans Mono,以及他的衍生字体DejaVu Sans Mono——DejaVu扩展了一些Unicode中的字符。

这也是很多开发者推荐的字体,除了完全满足上面说的所有条件之外,又是TTF字体,基本字形是无衬线的,适合屏幕阅读,最重要的还是开源的字体!

9.Consolas

微软新开发的字体,Vista、Office2007、Visual Studio 2005中包含它。既然是MS出品,则肯定在ClearType下效果最佳。不过官方网站的安装包很累赘,还需要先安装.net framework 3.5。

10.MONACO

这款字体的功效,相信不要小编介绍,很多程序员都很爱用。

在某网站上,有人问过这样的问题:有哪些适合用于写代码的西文字体?下面是很多网友的回复:

1.网友A

易于分辨单词中的每个字母或数字,防止变量\函数名打错(如:“0”、“o”和“O”,“1”、“I”和"l"等)

数字部分等高(这个可以讨论)。

代码中大量出现的符号(如 # % $ * \)与字母混杂在一起不太丑。

引号易于辨识,两个单引号「''」和一个双引号「"」区别尽量明显。

有些环境中要求字体等宽,代码需要对齐。

支持中文显示,因为在matlab中搞不定。

2.网友B

Ctrl+F了一下,真的没有人用 InputMono 吗……

Input: Fonts for Code

3.网友C

我最喜欢的是 Adobe 发布开源字体 Source Code Pro.这个字体网上可以下载到,我最喜欢 bold 加粗版.现在windows 的IDE,都被我改成这个字体了.

搜索应该能找到,如果找不到,可以问我要哈.

最喜欢的地方是字体自带定制 line-height。

4.网友D

Rio 说的那几个除了 Consolas 好像 Windows 下都没有。

Mac OS X 和 Linux 我不熟悉,个人认为 Windows 下 Consolas 是最好的选择。支持 ClearType,比较好看,斜体尤其优雅;只是我觉得它的标点太一般了。

Courier new 挺经典的,非常漂亮,我很喜欢它的标点,尤其是分号的那个小圆点,非常性感;但是太细了,斜体不如 Consolas 的好看。

5.网友F

我喜欢把不同的环境配成不同的字体,这样一眼就能看出来是debugger,是readonly viewer,还是主力IDE。另外,我还有一个经验是,主力环境中写完代码以后,换个viewer和另一种字体来审阅代码,很容易发现问题

目前的我的主力编程环境用的是Droid Sans Mono,优点在于朴实但是又不过于朴实,不像Monaco、Consolas那样有跳动感,又比Menlo平淡一点点。

6.网友G

以前写js 用微软雅黑。。。。后来写coffee,不得已必须用等宽字体,换成inconsolata,话说我之前老是觉得等宽字体写出来的代码宽度太宽了,看着难受。现在有coffee这么简介的语言,总算看起来还算舒服。

7.网友H

consolas 基本所有机器上都有。

以前用过Courier New。

8.网友I

Fixedsys字体是挺特殊的一种字体,因为这款字体中每个字体的宽度都是固定的,字体感觉特别的坚固,即便是一个小小的点,显示的也很清晰,所以特别适合显示一些代码。

Fixedsys字体的大小不可更改,所以在网页中妄想使用CSS的font-size来改变Fixedsys字体的大小是不可能的,当然在一些图形软件里就另当别论了。

Fixedsys不是True Type字体,一些程序如VS2010文本编辑器不支持非True Type字体,于是有人制作了这款Truetype版的Fixedsys字体(Fixedsys Excelsior)可以用于所有程序显示。

Fixedsys字体大小在12时显示最佳效果。

从上面大家的回答来看,每个程序员的爱好和审美观不一样,喜欢的字体也不一样。所以说也不一定别人喜欢什么,自己也喜欢什么。不过如果你不喜欢编辑器默认的字体,还是可以换一下字体,也许会有不一样的发现也不一定!

文章来源:知乎

公众号:w3c技术教程

提供专业的web技术教程、手册、工具。

相关问答

10个效果最佳的编程字体-OSCHINA-中文开源技术交流社区

10个效果最佳的编程字体待审核编写程序时,对字体的选择虽然不是最重要的,但也是必不可少的。一个好的字体选择势必会让你事半功倍!10.CourierCouriernew是...

大家编程都用什么字体?-OSCHINA-中文开源技术交流社区

CourierNew控!+2^10+1024javer默认字体,改了感觉很奇怪,不习惯yaheimonohybirdnimbussans强烈推荐:Monaco,传说中最好的编程字体。回复@...

汉字可以用作编程代码吗?

当然可以,中文编程其实很早就出现了,易语言,相信大多数国人都听说过,纯粹基于中文进行编程,不过在使用范围来说,相比较Java、C++的主流语言,很少被企业采...易语...

CAD怎么编程多线字体?

鼠标左键双击字体,就可以了。鼠标左键双击字体,就可以了。

程序员编程看起来最舒服的字体(英文的和中文的)、字号、颜色和背景色是什么?

各人有各人的偏好吧。我比较喜欢Couriernew字体,12号字,颜色没什么特殊要求,只要关键字有高亮显示就可以各人有各人的偏好吧。我比较喜欢Couriernew字体,12...

雕刻机字体雕刻怎么编程?

雕刻机进行字体雕刻编程的一般步骤如下:1.设计阶段:•使用专业设计软件(如文泰、CorelDRAW、AutoCAD等)创建或导入所需的文本内容,选择或设计特定的字体...

plc怎么改字体?

plc字体调更改方法步骤如下:1.首先把GXWORKS3打开。2.然后点视图。3.点击颜色及字体。4.点击梯形图编辑器下面。5.再点击字体设置改为用户设置。6.你就...

c语言编程如何输出汉字?

在C语言中,无法直接输出汉字。但是,您可以使用其他编程语言(如C++或Python)来输出汉字。这些编程语言通常具有内置的汉字支持,您可以使用相应的函数或方...

哪种编程是中文的?-懂得

到目前为止,应该还没有出现用中文进行编程的中国文字的组成太频繁根本无法写程序。

C语言怎么输出汉字?

你好,C语言直接就能输出汉字,只要你的文件编码支持UTF-8或者其他中文编码的话。例如printf("你好"),就可以在DOS界面上出现这个两个中文,通常的带界面的编...