OpenType 特性

OpenType 特性

最后更新 2026-11-02

  • OpenType
  • 特性
  • 小型大写
  • smcp
  • 旧式数字
  • 等宽数字
  • 连字
EN中文
本页目录

很多字体里不止一套字形:大写字母有一套缩小版(小型大写),数字有等高的也有一套高低错落的,fi 可以连成一个……这些可选的样子由 OpenType 特性控制,每个特性有一个四个字母的标签。

最常见的几种

效果 标签 默认 一眼认法
标准连字 liga 开 fi、fl 连成一体
可选连字 dlig 关 ct、st 那种花哨连接
小型大写 smcp 关 小号的大写字母,高度大约等于 x 高度
旧式数字 onum 关 数字有升有降(3、4、7、9 下探)
等高数字 lnum 开 数字都对齐大写高度
等宽数字 tnum 关 每个数字占一样宽,表格里能对齐
比例数字 pnum 开 按字形宽度分配,正文里更自然
分数 frac 关 1/2 变成真正的分数排法
上标 / 下标 sups / subs 关 脚注、化学式
样式替代 salt / ss01–ss20 关 同一个字母的另一种设计
本地化字形 locl 按语言 中日文同一码位不同写法

小型大写不是缩小的大写

真正的小型大写(small caps) 是单独设计的一套字形:笔画粗细与大写一致,高度大约等于 x 高度。

如果字体没有这套字形,软件可以把大写缩小来凑——那是合成的小型大写,笔画会变细、比例会歪。设计稿上写了小型大写,实现时先确认字体到底有没有 smcp。

数字的四种组合

数字有两个独立的维度,容易混:

维度 两种 用途
高度 等高(lining)/ 旧式(oldstyle) 等高大写高度,适合表格;旧式高低错落,适合正文
宽度 等宽(tabular)/ 比例(proportional) 等宽适合数字对齐;比例适合连续文本

所以表格里的数字通常是等高 + 等宽,而正文里的数字通常是旧式 + 比例。字体不一定四种都有。

设计稿上怎么标

写标签名最不含糊:

数字:tnum(表格)/ onum(正文)
标题:smcp

比写用小型大写更可靠,因为它能直接对应到 CSS 与字体里存在的特性。同时最好注明若无该特性则……——否则实现方可能悄悄用合成的样子交差。

哪些会自己出现

liga 与 clig 默认开,所以 fi 连字你通常不用管;dlig、smcp、onum、tnum 默认关,必须显式开启。

这也解释了一个常见疑问:“设计稿上 fi 是连着的,为什么我排出来没连?”——如果字体有 liga 而引擎没开,就不会连;反之如果字体没有,开也开不出来。

中文相关的几个

标签 作用
palt 标点的比例宽度(让全角标点占更少的位)
vert / vrt2 竖排时的替换字形
locl 地区字形差异(简中 / 繁中 / 日文)
hwid / twid / fwid 半角 / 三分 / 全角宽度形式

中文排版里 palt 很实用:默认的全角标点两侧留白很大,开启后更紧凑,但也会影响对齐。

在本站怎么试

排版预览暂时只提供字号、行高、字距、对齐这几项,OpenType 特性还没做——它留在排版测试那批待办里(见 docs/backlog.md)。

想确认某个字体有没有某个特性:在检查器里看它的 GSUB / GPOS 能力,或者直接在预览里试。

延伸阅读