中文项目该不该上宋体?思源宋体CN 7字重TTF实战手记
【免费下载链接】source-han-serif-ttfSource Han Serif TTF项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf
接手一个文化类电子杂志的改版时,我遇到了一个比配色更棘手的问题:正文用什么字体。中文界面天然偏向黑体,但长文阅读、文化内容、学术报告这类场景,宋体那种衬线带来的书写感和阅读舒适度是黑体替代不了的。市面上的商业宋体版权复杂,免费开源选项又少,最后我锁定了思源宋体CN(Source Han Serif CN),并在一个专门整理TTF格式的仓库里拿到了全部资源。这篇文章以这次选型与落地为线索,讲清楚文件从哪来、怎么装、网页里怎么配、商用边界在哪。
一、真实的痛点:为什么好用的免费宋体这么少
中文正文字体的选择一直有个尴尬:黑体(无衬线)一抓一大把,系统自带的微软雅黑、苹方都能用;但宋体(衬线)要么是付费版权字体,要么是老旧的点阵风格,真正适合现代屏幕阅读的免费宋体屈指可数。
思源宋体打破了这种局面。它由Adobe和Google联合开发,是继思源黑体之后又一套覆盖中日韩的泛CJK开源字体,字形由专业字体团队设计,针对屏幕渲染做过优化,并且采用SIL开源字体许可证,商业项目可以放心使用。
但官方发布有一个门槛:思源宋体默认提供的是OTF格式,内部使用CFF轮廓。对普通安装使用来说OTF没问题,可一旦涉及Web字体构建、部分老版本软件、或者某些只认TrueType轮廓的字体工具链,OTF就会制造额外麻烦。这也是本仓库存在的意义——它把思源宋体转换成了兼容面更广的TTF格式。
二、这个仓库到底做了什么:TTF转换加地区子集
先明确一个概念。TTF和OTF都是字体容器格式,区别主要在于内部轮廓描述方式:TTF通常基于TrueType轮廓,OTF常见两种,一是TrueType轮廓,二是CFF(PostScript)轮廓。思源宋体官方版属于后者。CFF轮廓在专业印刷领域有优势,但在Web字体工具链、部分嵌入式场景中,TrueType轮廓的兼容性更省心。仓库做的第一件事,就是把字体转换为TTF。
第二件事是地区子集。泛CJK字体包含中日韩三种字形,文件体积巨大,而简体中文项目只需要中国大陆的字形标准。仓库的SubsetTTF/CN/目录专门拆出了简体中文子集,每个文件都只包含简体中文所需字符,加载更快、体积更小。
打开这个目录,你会看到7个TTF文件,正好对应思源宋体的7种字重:
| 文件 | 字重 | 常见用途 |
|---|---|---|
| SourceHanSerifCN-ExtraLight.ttf | 超细 | 品牌海报、精致包装、大字号装饰 |
| SourceHanSerifCN-Light.ttf | 细 | 移动端辅助说明、界面次要文字 |
| SourceHanSerifCN-Regular.ttf | 常规 | 书籍正文、网页长文、文档默认 |
| SourceHanSerifCN-Medium.ttf | 中等 | 导航菜单、重点段落、图表标注 |
| SourceHanSerifCN-SemiBold.ttf | 半粗 | 副标题、分类标签、卡片标题 |
| SourceHanSerifCN-Bold.ttf | 粗 | 主标题、强调提示、按钮文字 |
| SourceHanSerifCN-Heavy.ttf | 特粗 | 海报主视觉、品牌Logo、封面大标题 |
需要说明的是,这套字重体系完整覆盖了从100到900的常用权重区间,这也是它比很多"只有两三个字重"的免费宋体更适合专业排版的原因。
三、拿到文件:克隆仓库并按系统安装
获取字体包的完整命令只有一行:
git clone https://gitcode.com/gh_mirrors/so/source-han-serif-ttf克隆完成后,字体文件都在SubsetTTF/CN/目录下。
Windows和macOS的安装很直观:Windows下全选.ttf文件右键选择"安装",macOS下双击字体文件后点击"安装字体",字体册会自动完成注册,设计软件与Office重启后即可看到。
Linux稍显繁琐,需要手动把字体复制到用户目录并刷新缓存:
mkdir -p ~/.local/share/fonts/ cp SubsetTTF/CN/*.ttf ~/.local/share/fonts/ fc-cache -fvfc-cache是必须的一步,它负责重建系统的字体索引,跳过它会导致部分应用无法识别新字体。
四、网页中的关键配置:@font-face与字重映射
如果只是系统安装,字体在Word、设计软件里都能用。但Web场景需要额外配置,这里有两个最容易出错的地方:字重映射和字体加载。
思源宋体CN的文件名带完整字重名,但CSS里的font-weight只认数字,必须手动建立对应关系:
@font-face { font-family: 'Source Han Serif CN'; src: url('fonts/SourceHanSerifCN-Regular.ttf') format('truetype'); font-weight: 400; font-style: normal; font-display: swap; } @font-face { font-family: 'Source Han Serif CN'; src: url('fonts/SourceHanSerifCN-Bold.ttf') format('truetype'); font-weight: 700; font-style: normal; font-display: swap; }7个字重的推荐映射关系是:ExtraLight→200,Light→300,Regular→400,Medium→500,SemiBold→600,Bold→700,Heavy→900。如果漏掉某个字重的映射,浏览器会用相邻字重合成模拟粗细,显示效果会打折扣。
正文的字体栈建议写成这样,为系统未安装字体的用户提供回退:
body { font-family: 'Source Han Serif CN', 'Noto Serif SC', serif; font-size: 16px; line-height: 1.7; color: #333; }标题层级可以按视觉重量递进:H1用Bold(24-32px)、H2用SemiBold(20-24px)、H3用Medium(18-20px)、正文用Regular(15-16px)。
性能方面有两个值得做的优化。一是按需加载,只引入实际用到的字重,7个.ttf全量引入对页面是沉重负担;二是子集化,把字体裁剪到页面真正用到的字符集。如果追求极致加载速度,可以后续用工具把TTF转成WOFF2并做子集化,替换掉上面的ttf路径,格式声明改为format('woff2')即可。
五、文档与设计软件中的实际使用
在Microsoft Office里,打开任意文档后在字体选择器中输入"Source Han Serif CN",就能看到全部7个字重。需要注意两点:一是中文字体名称在部分软件中显示为英文"Source Han Serif CN",搜索中文名可能找不到;二是Office对字重的应用方式比较特殊,粗体按钮会直接选用Bold字重,不需要在样式里额外指定。
导出PDF时,务必在导出设置中勾选"嵌入字体"。如果跳过嵌入,PDF在其他设备上打开时会回退到系统默认字体,版式可能出现细微错位。嵌入后文件体积会增大,但对交付质量来说是值得的。
六、排版细节:让宋体的质感真正出来
字体选对了只是第一步,同样的字体,参数调不调,观感差距很大。下面是我在这类项目中验证过的一组基线:
- 行高:正文建议1.6-1.8倍字号,宋体衬线在行距过小时会显得拥挤;标题可以收紧到1.2-1.4倍
- 字间距:正文保持normal即可,大号标题可以加到0.05-0.1em,让标题更透气
- 首行缩进:中文正文习惯缩进2字符,用
text-indent: 2em实现,比缩进固定像素更稳 - 中西文混排:中文用思源宋体CN,西文建议搭配Georgia、Palatino这类衬线字体,或者Times New Roman走学术风格,视觉上更协调
中文排版中还有一个容易被忽视的点:标点挤压。思源宋体CN的字形本身处理了标点占位,但Web端要注意font-feature-settings和标点悬挂的默认行为,不同浏览器表现有差异,交付前最好在目标浏览器里过一遍。
七、商业使用的边界:SIL OFL 1.1到底允许什么
这套字体采用SIL开源字体许可证1.1版本,它对商业使用是友好的,但有几个边界值得记清楚:
- 可以:免费商用、嵌入软件与文档、随产品捆绑分发、基于字体修改衍生
- 不可以:单独售卖字体文件本身、修改后以其他许可证发布衍生字体、在衍生作品中使用保留的字体名称(即不能改个名字说这是另一套字体)
- 建议:在项目包中附带许可证文件,并在关于页或文档中保留版权声明
一个合规的声明示例:
本产品使用思源宋体CN字体 版权所有 © Adobe Systems Incorporated 字体名称:Source Han Serif CN 许可证:SIL开源字体许可证 1.1八、复盘:宋体并不是所有场景的最优解
这次项目做完,我对"用不用宋体"有了更清晰的判断。适合用宋体的场景包括:长文正文、书籍/杂志排版、学术报告、文化艺术类品牌、需要稳重气质的政务和出版内容。不适合的场景同样明确:数据密集的仪表盘、强调现代感的科技产品界面、小字号密集的移动端列表——这些场景下宋体衬线反而会增加视觉噪音,黑体或思源黑体更合适。
另外要如实说明一点:这套TTF字体文件体积不小,如果做成Web字体全量加载,性能压力明显。解决方案就是前面提到的子集化和WOFF2转换,或者只加载正文和标题两个字重。权衡取舍时,别忘了字体是设计资产,文件体积换来的渲染质量通常值得。
下一步
如果你正在做中文内容项目,可以按这个顺序快速落地:克隆仓库拿到7个TTF文件→按系统安装→在网页里完成@font-face与字重映射→在长文页面用Regular正文加Bold标题跑一遍排版,把行高和字距调到位→确认项目中附带许可证文件。完成这四个动作,你的中文内容就能以免费、合规、专业的方式用上宋体了。
如果后续遇到字体不显示的问题,先按顺序排查:文件是否安装成功、软件是否重启、CSS路径是否正确、是否有回退字体兜底。多数"字体失效"的案例,最后都落在路径和缓存这两件事上。
【免费下载链接】source-han-serif-ttfSource Han Serif TTF项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考