F4.06.2mixed-script baseline设计研究

中西文基线与字面高度不一致

别名: 中西基线 · 字面不对齐 · ideographic em-box

概念解释

同一行里写下「高度 12 mm」,汉字「高」的方块铺在字身中部,拉丁的 mm 却坐在基线上,肚皮贴着那条线,上头只冒出 x-height。两种文字的「视觉重心」不在同一条水平线上:汉字显得偏上、偏满,拉丁显得偏下、偏矮。这不是字号没设对,是两套垂直度量被塞进了同一行框。

间隙解决的是左右撞框;这里解决的是上下谁跟谁齐。混排行看起来「英文陷下去」或「汉字头重」,多半是这条,不是字重问题。

机制

拉丁度量以基线为原点,x-height、升部、降部都相对这条线来谈。汉字度量以 em square 为盒子,字面(ideographic em-box)在盒子里居中或略偏上,并没有一条和拉丁重合的「字脚线」。行框取二者的最大 ascent / descent 来装,于是拉丁的基线被钉在行框的某个位置,汉字字面按自己的盒去摆——默认情况下,x-height 带会落在汉字字面的下半截,看起来像英文沉底。

字体文件里的垂直度量还在各说各话。有的中文字把 winAscent 拉得很夸张,行框被撑高,拉丁在行里更显得矮。有的用 hheaOS/2 两套数,不同系统取不同套,混排的相对位置会在 macOS 和 Windows 上各变一次。真正为混排设计的字体家族会把拉丁的 x-height 抬到靠近汉字字面中部,或提供专门的基线调整;把一个西文字体和一个中文字体临时拼起来,几乎必然对不齐。

数字更刺眼。老式数字(oldstyle)有降部,和汉字并排时有的数字掉到字面以下;大写数字(lining)高一些,但仍以基线为准,和汉字的头顶对不齐。单位和数值是混排里最容易暴露基线冲突的地方。

怎么研究

量的是相对位置,不是好不好看。在同一行框里标出:拉丁基线、x-height 线、汉字字面的顶和底。自变量:中英字体配对、是否同一家族、渲染引擎。因变量:x-height 中线与汉字字面中线的像素差、主观「哪边沉」。

比较「拼两款字体」和「同一家族的中西文配比」,看差值是否缩小。不要只在设计稿的单行标题上看——正文里升部降部都会出现,冲突在含 g p y 和「国 量 高」的试样里才完整。

边界

纯中文或纯英文行没有两套度量可冲突。图标旁边的短拉丁标签若被当成图形垂直居中,用的是物件对齐,不是排版基线;一旦这标签进了句子,就要回到基线问题。竖排中文的「基线」变成另一套(纵中横、直立拉丁),横排上调好的配对不能直接拿到竖排用。超大展示字可以把中西文当作两个图形分别光学对齐,不必服从正文基线;字号回到阅读档,光学对齐会和段落行框打架,还是要靠字体度量。

怎么落地

  • 混排优先选把中拉丁作成一套垂直度量的家族,而不是各挑一款「单独都好看」的字体临时拼接。
  • 含数字和单位的行单独看:lining 数字通常比 oldstyle 更接近汉字字面;必要时把单位和数字的字号微调半档,但先试换配对。
  • 检查 macOS 与 Windows(或不同浏览器)上同一行的相对位置,垂直度量取舍不同会让「沉下去」只在一端出现。
  • 画两条线:拉丁 x-height 的中线,汉字字面的中线。两条线长期错开超过一个笔画宽度,这对字体就不是混排可用的配对。

延伸

  • 同组F4.06.1 中西文之间需要间隙 · F4.06.3 全角与半角标点的混用会破坏节奏
  • 相邻F4.07 字体选择 · F4.02 行高
  • 站内检索baseline · x-height · ideographic em-box · CJK metrics · mixed script

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/F4.06.2