OpenType 字形特性指南
软件里的「标准连字」「等宽数字」「风格替换集」,背后通常就是 OpenType 特性,由字体提供、软件调用,用来替换字形或调整位置与间距
liga、tnum、ss01 是字体内部的四字符标签。Figma 等软件通常显示更易懂的名称,不必先记标签;你会在字体说明、网页 CSS,以及 Anyway.Fonts 的「字形特性」面板里看到它们
标签约定用途,具体设计由字体决定:tnum 都是让数字等宽,但数字的画法不同;ss01 是第一组风格替换,在一款字体里可能换掉 a,在另一款里可能换掉 g。是否支持、影响哪些字符,也要看当前字体与样式
使用细节与常见问题
在软件里怎么找? Figma 的 Type settings → Details 提供当前字体的 OpenType 选项,其他软件的名称和入口可能不同。菜单没有展示某项,并不等于字体没有收录,软件支持范围也会影响可用选项,详见 Figma 的使用说明
开启后为什么没变化? 特性可能只影响部分字符,需要特定语言、方向或前后文字;有些默认开启,有些由排版引擎自动处理。变动的是显示和排版,输入的字符通常不变,可变字体还可能受轴的位置影响
右侧样张怎么看? 前后都来自标注的同一款字体,使用同一段文字与同一字号。样张保留字体的实际字形和排版间距,数字样式会与对应的另一种样式比较;复杂文字中默认启用的特性,单独关闭只是为了看清它的作用,不建议照着关闭
名字相似的特性有什么区别? 比如 hwid 替换为半宽字形,halt 则调整原字形的占位;这分别涉及字形替换(GSUB)与定位(GPOS)。ss01 等编号也没有跨字体统一的画法,有时软件会显示字体作者提供的名称
怎么确认这款字体实际做了什么? 在 Anyway.Fonts 选中字体,打开右侧底部的「字形特性」,切换样式并展开查看。工具主要展示直接的字形替换,上下文规则、定位调整、没有 Unicode 编码的字形与可变条件可能无法完整呈现;没有示例不代表没有特性,最终效果要结合字体说明与软件中的试字判断
网页里怎么启用? 常见用途优先使用 font-variant-* 与 font-kerning,按标签控制可用 font-feature-settings,例如 font-feature-settings: "ss01" 1。语言和竖排还需设置 lang 与 writing-mode,详见 CSS Fonts 文档
没找到对应特性,换个标签或关键词试试
数字高度齐整,适合大写文字与醒目的数字标题
规范 ↗
EB Garamond·输入 2026 012345
数字有高低变化,部分笔画伸到基线下方,适合混排正文
规范 ↗
EB Garamond·输入 2026 012345
EB Garamond·输入 111 / 888(分行排列)
每个数字占位相同,便于金额和时间上下对齐
规范 ↗
EB Garamond·输入 111 / 888(分行排列)
用字体设计的斜线零,区分数字 0 与字母 O
规范 ↗
Junicode·输入 0O 1000
EB Garamond·输入 1/2 3/4
Onest·输入 1/2
EB Garamond·输入 12345
EB Garamond·输入 12345
EB Garamond·输入 1st 2nd
EB Garamond·输入 x2 + y3
EB Garamond·输入 H2O CO2
EB Garamond·输入 H2O CO2
连字与上下文
相邻字符可能合起来,也可能因前后文字而换个样子
用一个字形处理常见字符组合,改善笔画相接
规范 ↗
EB Garamond·输入 fi fl ffi
字体提供的额外连字,常用于装饰与个性表达
规范 ↗
EB Garamond·输入 st ct
某些文字正确书写所需的连字,由排版系统处理
规范 ↗
Noto Sans Arabic·输入 سلام
EB Garamond·输入 ſt
Junicode·输入 fí fê
EB Garamond·输入 OpenType
EB Garamond·输入 OPENTYPE
使用高度更低的 petite capitals
规范 ↗
EB Garamond·输入 OpenType
把大写换成 petite capitals
规范 ↗
EB Garamond·输入 OPENTYPE
Onest·输入 -> <--
Libertinus Serif·输入 OPENTYPE
Onest·输入 ag
EB Garamond·输入 ABC abc
Junicode·输入 A
EB Garamond·输入 office
EB Garamond·输入 Q
EB Garamond·输入 past stories
Junicode·输入 123
Junicode·输入 •
BIZ UDPMincho·输入 辻逢葛鯖樽
把字体支持的字符换成简体形式,编码保持不变
规范 ↗
WD-XL 滑油字 TC·输入 國體學
把字体支持的字符换成繁体形式,编码保持不变
规范 ↗
WD-XL 滑油字 TC·输入 国体学
Noto Sans CJK JP·输入 骨直令
同一字体,右侧配合简体中文语言设置启用 locl
Noto Sans CJK JP·输入 麹鴎噛剥頬
Noto Sans CJK JP·输入 辻逢葛鯖樽
Noto Sans CJK JP·输入 辻逢葛鯖樽
WD-XL 滑油字 TC·输入 辻逢葛鯖樽
对应 JIS X 0212 的补助汉字形式
规范 ↗
BIZ UDPMincho·输入 瑢
Noto Sans CJK JP·输入 麹鴎噛剥頬
BIZ UDPMincho·输入 「かな。」
EB Garamond·输入 AVATAR To
Noto Sans CJK JP·输入 「かな。」
Noto Sans CJK JP·输入 「かな。」
Noto Sans CJK JP·输入 ABC123
Noto Sans CJK JP·输入 ABC 123
Noto Sans CJK JP·输入 ABC123
竖排
标点、方向、假名和上下占位,都可能需要专门处理
Noto Sans CJK JP·输入 ぁゃっ
这里比较小假名的竖排位置,标点方向还会由排版引擎自动处理
Noto Sans CJK JP·输入 ぁゃっ
这里比较小假名的竖排位置,标点方向还会由排版引擎自动处理
Noto Serif CJK JP·输入 「かな。」
Noto Sans CJK JP·输入 「かな。」
Noto Sans CJK JP·输入 「かな。」
让字形在全高字框里视觉居中,不改变竖向占位高度
规范 ↗
Shippori Mincho·输入 ァィゥェォ
文字塑形与附标定位
多数由排版引擎自动处理,是正确显示文字的一部分
Junicode·输入 b̴b̴
Junicode·输入 x́
Noto Sans Arabic·输入 بُّ
Noto Nastaliq Urdu·输入 بسم
Noto Sans Devanagari·输入 क्य
Noto Sans Arabic·输入 بسم
Noto Sans Arabic·输入 بسم
Noto Sans Syriac·输入 ܐܠܗܐ
Noto Sans Arabic·输入 بسم
Noto Sans Syriac·输入 ܒܐܒ
Noto Sans Syriac·输入 ܒܐܒ
Noto Nastaliq Urdu·输入 بسم
Junicode·输入 ᚠ
从右向左排列,单独比较 rtlm 的字形替换
Noto Sans Khmer·输入 កើ
Noto Sans Devanagari·输入 र्क
Noto Sans Devanagari·输入 किं
Noto Sans Devanagari·输入 राष्ट्र
Noto Sans Devanagari·输入 कु
Noto Sans Devanagari·输入 दु
Noto Sans Devanagari·输入 क्ष
Noto Sans Devanagari·输入 ट्यि
Noto Sans Devanagari·输入 क्य
使用词尾等位置需要的 halant 形式
规范 ↗
Noto Sans Tamil·输入 தமிழ்
Noto Sans Devanagari·输入 क़
Noto Sans Khmer·输入 ក្រ
Noto Sans Devanagari·输入 क्ति
Noto Sans Khmer·输入 ្ឃ
Noto Sans Devanagari·输入 ः᳢
Noto Sans Devanagari·输入 द्र
Noto Sans Devanagari·输入 र्क
Noto Sans CJK JP·输入 ꥠᅡᆨ
Noto Sans CJK JP·输入 ꥠᅡᆨ
Noto Sans CJK JP·输入 ꥠᅡᆨ
Noto Sans Syriac·输入 U+070F 叙利亚文缩写标记 + ܒܒܒܒ
去掉 i、j 等字形上的点,留出附标空间
规范 ↗
STIX Two Math·输入 ij
STIX Two Math·输入 ̂̃
单独展示重音轮廓,公式中由排版引擎放到附标位置
STIX Two Math·输入 xy ij