如何评价思源等宽(Source Han Mono,源ノ等幅)字族?

https://github.com/adobe-fonts/source-han-mono/
关注者
37
被浏览
43,691
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

思源等宽(简体中文名)版本 1.000 于 2019 年 5 月 26 日正式发布,不久用户便表示有问题,随即更新的 1.001 于 5 月 30 日发布(见底部更新),与思源黑体、思源宋体一样,通过 SIL OFL 授权协议发布。

发行的字体版本仅有一种——Super OTC

与思源黑体、思源宋体多种下载版本不同,小林剑博士表示官方发行的思源等宽将仅仅含有 Super OTC(OpenType Collection)一种,即将全部字重、全部支持的语言、正体、斜体(新!)共 70 个字体打包成一个文件。官方不会发布思源等宽的「地区子集(Region-specific Subset)版本」或是「语言特定(Language-specific)版本」。

这就意味着从官方下载到的字体文件,安装到旧一点的操作系统上是用不了的(例如 Windows 8)。不过,既然思源等宽是开源的,用户完全可以使用源代码自己生成所需的字体文件。

字形设计方面

思源等宽是从四年前的 Source Han Code JP(源ノ角ゴシック Code)发展而来的,西文部分从 Source Code Pro 修改而来,汉字、假名部分则直接从思源黑体拿过来(半角假名、谚文需要适当修改)。思源等宽 1.000 与思源黑体 2.001 在字重、支持语言方面一致,但出于「编程字体」的考虑,思源黑体中一些用不到编程里的字形就没有收录,这为西文斜体腾出了空间。

  • 七个字重(EL、L、N、R、M、B、H)
  • 五种语言(日、韩、简中、繁中台湾、繁中香港)
  • 西文部分有正体与斜体
图片来源:http://blogs.adobe.com/CCJKType/2019/05/source-han-mono-v1000.html

字形设计上的评价,无需在此重复。

用来显示代码,对得齐吗?

严格来说,思源等宽是对不齐的。思源等宽的西文部分的水平距离设定为 667(包括西文空格),而汉字部分的水平距离设定为 1000,也就是说,原设计者服部正貴的初衷是「两个汉字对齐三个字母」。稍微一算就知道 667×3 > 1000×2,因此严格来说是不可能对齐的。

从 @Belleve 与小林剑博士的对话中可以看出,思源等宽无意解决对不齐的问题

思源等宽无意解决对不齐的问题,算是一大遗憾。

个人使用体验

除了源代码抄录,我还会将代码片段插入到正文中去。因为应用的场合,我其实不太欣赏 Source Code Pro 的设计。身边的程序员朋友都评价 Source Code Pro 用起来不错,但我用在正文排版的时候,总感觉 Source Code Pro 非常肥硕。如果水平距离 600 的 Source Code Pro 看起来都臃肿了,那么可以感受一下思源等宽 667 的效果:

正文样张,汉字为思源宋体,西文衬线体为 TeX Gyre Pagella,代码为思源等宽

这一现象外国网友也曾经在 GitHub 上提过(Create a more condensed version of the font · Issue #12 · adobe-fonts/source-code-pro),根本原因是 Source Code Pro 本身的小写字高(x-height)比较小,导致字母比例看起来比较肥。用在长篇代码抄录或许很好,但是用在正文引用代码片段的效果就不佳。

网友 alex-ball 提供的对比图,第一行为 Source Sans Pro 搭配 Source Code Pro

目前看来,两个汉字配三个字母在实际效果上其实并不好(正文环境。另,官方的 ReadMe 文档看着心累……),更何况还没有完美对齐。相比之下,窄体系列(西文水平距离 500)的 M+(开源免费)、Iosevka(开源免费)、PragmataPro(商业字体)都是很好的替代,一个汉字配两个字母,绝对不会对不齐。

话说回来,如果可以接受两个汉字配三个字母,那么也应该可以接受三个汉字配五个字母吧。这样的话,大多数西文等宽字体都可以用了(水平距离一般都是 600),像 Inconsolata(开源免费)、Fira Code(开源免费)、Triplicate(商业字体)这些。

有什么值得学习的技术呢?

思源等宽的字符一共有三类水平距离:0、667 与 1000,要将半角假名(水平距离 500)与谚文音节(水平距离 920)纳入其中,就需要对它们进行变换,普通人的办法「把字形直接水平拉伸不就好了嘛」在字型设计师们看来堪比「犯罪」。所幸的是,专业造字软件有「水平拉伸字形但能保持竖划不变粗」的变换功能,这就为「拉伸半角假名到 667、拉伸谚文音节到 1000」提供了可能。小林剑博士称这种方法为「anisotropic techniques(各向异性技巧?)」。

在我看来,通过这种机械的方法将谚文伸展 108.7% 还可以接受,但是半角假名伸展 133.4% 之后就显得比例失调了。或许,这个技术最大的应用是创造数学字体:仔细观察 LaTeX 默认的文本斜体+数学斜体、或者是对比商业字体 Times New Roman(文本斜体)+ MathTime Pro 2(数学斜体),都可以发现数学斜体不是文本斜体的简单复制,而是比文本稍宽的字体,水平拉伸在 105% 左右。数学字体的开源项目可以利用这个技术绘制 Mathematical Alphanumeric Symbols 区块的字形(当然,数学字体的 side bearing 与 kerning 都是需要另外调整的)。

版本 1.001 有什么更新?

  • 由于 hinting 参数设置不当,导致圆的字形栅格化后看起来太高,这个问题在四天后的 1.001 中得到修复。
  • 西塚涼子亲自修复半角假名比例失调的问题。
版本 1.000 的 hinting 参数失调,大写字母 S、O 以及数字 9「看起来太高」
左图为 1.000 中被机械拉宽后,比例、字重失调的「半角假名」;右图为 1.001 中西塚涼子的作品