前言

昨天从益辉的回复中我了解到了开源字体:思源宋体。于是就尝试了一把。由于 adobe 需要注册才能使用 Typekit 加载网络字体,而我一向不喜欢这种需要注册才能用的服务,所以就尝试了直接把字体上传的服务器的方法。对于英文字体,为了提升加载速度,通常大家会用一些字体转换软件或在线服务把开源字体转换成 The Web Open Font Format (WOFF)。然而不知道啥原因,对于思源宋体,我试过的几个在线转换的服务都不成功。另一方面,虽然思源宋体是开源的 (SIL Open Font License 1.1),但是进行转换的时候,可能会改变原有的字体信息,从而需要进一步的处理 (参见OFL-FAQ Question 2.1-2.3)。 因此,我决定牺牲掉一些性能,直接使用 opentype 和 truetype 的字体。这些字体可以直接从网上现在。为了避免注册登录 adobe,我决定从 Google Fonts 下载等价的字体:Noto Serif SC 对应于思源宋体; Noto Sans SC 对应于思源黑体。对于无法访问 Google 的用户,也可以从第三方下载,例如 https://wordshub.github.io/free-font/

设置字体

如何下载并设置网络字体,网上有很多教程。关键点是加载和调用。这两项都可以通过 CSS 来设置。

假设相关字体已经被下载并解压了,且字体所在的文件夹的名字是 fonts

后记

补充(2020/12/21)

网上介绍的用于生成中文网络字体的工具大多基于百度的 fontmin。 经测试,这些字体对于抽取整个网站字体并制作字体子集并不容易。经过的搜索和测试,终于找到一款可以很容易将 ttf 转换成 woff 的工具:ttf2woff。通过 fontforge 对比信息,似乎 ttf2woff 仅仅是压缩了字体,所以应该可以放心使用。

补充(2021/1/8)

今天在 Host Google webfonts yourself 这篇博客中了解到了一款生成网页版 google 字体的在线工具 google-webfonts-helper A Hassle-Free Way to Self-Host Google Fonts。试用了一下,下载下来的字体比用 fontforge 转换得到的字体文件小。所以速度上还是优势的。特此推荐。