与中文对齐的英文等宽字体
原始文档:https://www.yuque.com/lart/blog/wbhfef
前言
等宽字体是编程中常会用到的一些字体, 基本的形式就是所有符号的宽度都是一样的.
但由于大多数等宽字体设计时并未考虑对中文字符的兼容, 所以我们在使用时会面对这样一个问题, 就是中文和英文字体对不齐.
下面展示了我在网站https://www.programmingfonts.org/中寻找合适的字体时的一个例子(这里选择的英文字体是非常常见的一个等宽字体 [Source Code Pro](https://www.programmingfonts.org/#source-code-pro)
):
可以看到, 上面的竖线是对不齐的.
而我们的目的是想找一款字体, 在保证字符 o0O8iIlLg9q
这些明显可区分外, 还可以保证两个英文字符的宽度等于一个中文字符的宽度.
当然, 对于本文而言, 更重要的是后者, 所以我在https://www.programmingfonts.org/测试了其提供的各款字体, 最终找到了如下几款至少可以保证对齐的字体.
对应链接中的左栏提供了字体下载的链接.
写完这篇文章后忽然发现, 对于 z2
之间的对比缺少了大写字母 Z
. 但是后面的截图太麻烦了, 大家感兴趣的可以拿稍微调整后的这两段话来自行测试:
啊|啊|啊啊啊|啊|啊|啊啊啊|啊|啊|啊啊啊|啊|啊|啊啊啊|啊|啊|啊啊啊|啊||||
(q9gp?){GCu}<iIL1tT7>ck'b6'r[o0O]`nh`"uvw"|s5e|zZ2|8B3|,./|=;:|*|~-_+|
字体展示
https://www.programmingfonts.org/#agave
https://www.programmingfonts.org/#binchotan-sharp
https://www.programmingfonts.org/#bront-ubuntu
https://www.programmingfonts.org/#cozette
https://www.programmingfonts.org/#d2coding
https://www.programmingfonts.org/#fairfax
https://www.programmingfonts.org/#fairfax-hd
https://www.programmingfonts.org/#fairfax-serif
https://www.programmingfonts.org/#fixedsys-ligatures
https://www.programmingfonts.org/#unifont
https://www.programmingfonts.org/#inconsolata
https://www.programmingfonts.org/#iosevka
这个字体的作者有一款专门添加了对中文支持的字体, 即更纱黑体, 喜欢的可以试试.
https://www.programmingfonts.org/#mplus
https://www.programmingfonts.org/#monofur
https://www.programmingfonts.org/#nanum-gothic-coding
https://www.programmingfonts.org/#terminus
https://www.programmingfonts.org/#ubuntu
Ubuntu 上最常见的 Ubuntu Mono 也是很不错的.