• 字体
  • 字体家族
  • 字体公司
  • 字体设计师
  • 字体样张
  • 资讯
  • 帮助
字客网>资讯>详情

排版中的字体行间距问题

时间:2006-04-30 10:01:54| 字体排印|浏览:1536|来源:http://blog.bs2.to/EdwardLee|作者:EdwardLee
导语在一般的文书排版软件上,所谓的行距,通常指的是上一行的字的 baseline 至下一行的字的 baseline 的距离。而这种定义下的行距,也通常是由办公排版系统本身自行在控制、调整的。但是在 TrueType 字体规格中亦有所谓的 linegap 的信息,有些应用软件会使用他来当做是

在一般的文书排版软件上,所谓的行距,通常指的是上一行的字的 baseline 至下一行的字的 baseline 的距离。而这种定义下的行距,也通常是由办公排版系统本身自行在控制、调整的。

但是在 TrueType 字体规格中亦有所谓的 linegap 的信息,有些应用软件会使用他来当做是正常显示时的行距,这个行距指的就不是上面所说的两 baseline 的距离了,而是两行字间的间距。

问题就是出在 TTF 字体中有这些信息的地方不只一个,而各 TTF 的各 table 中的这些信息也不一定统一,再者各应用软件取用这些信息时,由哪一个 table 来取出也不统一,以致造成同样的字体,在不同的平台或应用软件下使用的时候,显示出来的 linegap 并不一样。如下图所示:

 

另外一个问题是,每个平台、每个应用软件是取用 TTF 不同 table 中的 linegap 值。


TTF-table 子项目 适用平台

hhea linegap Apple/Mac, OO.o
OS/2 Win Ascent/Win Descent MS Windows
OS/2 Typo linegap 通常会被忽略,但有些软件会使用

那么,如果发生这种情况的时候,怎么办呢?例如,在 OO.o 下编辑一份档案,但却同时要在其它的平台的同一个 team 的人共同编辑这份档案,这时就会发生排版跑掉了的情形。这时,除了双方安装同一套的中英文字体外,另外可以使用 mensis 来调整字体的 linegap 值,如下图所示:

 

 

 

一般我们可以设为 0,让应用软件全权控制行距的问题。但正常的 linegap 的计算方法是:

假设:

EM size = 1000
TA(Typo Ascender) = 800
TD(Typo Descender) = 200
TL(Typo linegap) 未知
行距 = TA - TD + TL
一般行距是 EM size x 120% = 1200,所以:
800 - (-200) + TL = 1200
TL = 200

这是 TTF/OTF 的字体才会有这种信息,像 PostScript 字体(Type 1 等)就没有这样的信息,完全是由应用软件去抓 font bounding box 来决定行距的(一般也是字体 EM size 的 120%)。

字体中是不是应该有像 linegap 的信息,恐怕还是有讨论的余地,但最重要的是大家要依标准、规范来实作应用软件,否则就会像目前 linegap 的情形一样,造成不同平台、不同应用软件不一致的情况。

0
  • 关注字客网公众号领取Z码
  • 关注字体先森公众号抽取SVIP
相关字体公司
排版中的字体行间距问题 网友点评
游客:文明上网,理性发言。 看不清?换一张
排版中的字体行间距问题 最新评论
暂无相关评论