W3C

Web 中文兴趣组会议

2022年9月6日

题目:《中文排版需求》的进展

讲者:钱争予(The Type 编辑,《字谈字畅》主播)[演示文稿]

现场纪要

钱争予:

[Page 1] 大家好,今天我分享的主题是:《中文排版需求》的进展。我是钱争予,W3C 中文排版工作组的成员,目前也是《中文排版需求》的编辑之一。

[Page 2]《中文排版需求》关注的是什么呢?所谓「中文」,实际上指的是以汉字为核心的书写系统;而所谓「排版需求」,其实是泛指各种字体排印的需求。

[Page 3]「字体排印」这个词,是 typography 这个英语术语的一种翻译方式。它本身是一个生造词,是由「字·体·排·印」四个独立的词,复合构成的。这种翻译方式的最大特点,就是用比较直白的方式,很全面地覆盖了 typography 这个术语的方方面面。今天的分享,我会尝试从「字·体·排·印」这四个方面来归类和整理具体的内容,跟大家分享过去大概两年时间内,《中文排版需求》这份文档的进展情况,以及我们编辑组的一些工作方式和关注的重点。

[Page 4] 其实,我今天的分享还有一个副标题,叫做「中文字体排印需求的现状」。因为我相信,通过整理和回顾编辑组的工作,我们可以非常直观地感受到当下 web 中文字体排印需求的真实现状。目前,编辑组很多工作,都会围绕 GitHub 的 issue 和 pull request 来展开。所以,在分享的过程中,我也会把相关的 issue 或者 PR 的编号写在幻灯片的左下方,方便感兴趣的朋友去检索。好,下面我们就进入正题——

[Page 5] 首先就是「字」。字,指的就是文字,从活字印刷到当下的计算机排版,文字始终都是字体排印的基础。

[Page 6] 在 web 的语境中,或者更一般化地来说,在信息可交换的背景下,我们无法回避的一个基本问题就是:一个具体的字形,它所对应的抽象字符究竟是什么——这个抽象字符,在 Unicode 的语境下,其实就是码位。我们都知道,中文用户分布的地区很广,包括中国大陆、港、澳、台、新加坡,那么如果我们再去看看「汉字」的使用范围,就就要扩展到日本、韩国、越南等更大的区域。不同地区就会有不同的行业传统、字体排印术语、本地化的编码字符集标准——即使都放到 Unicode 的语境下,不同地区对同一字符所选择的 Unicode 码位也有可能不一致;如果把字体设计的差异也考虑进来,情况会更复杂一些。——这其中,有一类问题,我相信大家都遇到过,那就是标点符号。

[Page 7]《中文排版需求》在修订的过程中,也注意到了一些标点符号在字符选择上存在分歧。比如,省略号、浪纹线、间隔号,这些符号实际上有多种字符可供选择。无论是字典也好,还是我们的国家标准 GB/T 15834《标点符号用法》,这些权威文献都没有明确规定某个符号应该选用哪个计算机字符。因此,在多个备选项之间,是没有标准答案的。《中文排版需求》要做的,就是承认这个现状,并且陈述这种现实状况的复杂性。我们的修订过程,也就是去收集、并且去推敲每一个备选字符的合理性,最终将合适的备选项,尽可能全面地收录到文档里面。

[Page 8] 接下来是第二个方面,「体」,也就是字体。《中文排版需求》侧重关注的是正文字体。因为相比于美术字,正文字体在内容呈现和信息传达中具有更基础的地位,同时,正文字体在设计和工程两方面的实践中,也都表现出更强的规范性和更稳定的分类体系。

[Page 9] 目前市面上的中文字体产品可以说是五花八门,覆盖了非常多的应用需求。其中,很值得我们关注的是「思源」这个开源字体项目。这个项目教科书式地向我们展示了 CJK 字体在字体工程方面的技术空间——包括:

但是在这些基础之上,中文正文字体的需求,在 web 上还是没有被完全满足——这也是《中文排版需求》持续关注的点。

[Page 12] 我们要知道,中文的正文字体,有四大类最基本的风格,也就是:宋、黑、仿、楷。宋体和黑体,长期以来都被对应到西文的 serif、sans serif 分类上,已经成为事实标准。仿宋 fangsong 也已经被写入到 CSS Fonts Module Level 4,成为了一个新的、独立的 generic family。但是楷体的情况呢?楷体,作为正文字体的一个大类,实际上它的重要性不亚于其他三类——一个最简单的例子就是,我们初等、中等教育所使用的语文教科书,其中最基本的正文字体就是楷体。楷体是否能被简单地对应到 CSS 的 cursive 分类,这里其实是要打一个问号的。因为,作为正文字体的「楷体」实际上是一种「正体字」,而西文的 cursive 常常被类比成汉字的「行书」或「草书」。因此,这里实际上涉及到文字学,以及书法和字体设计相关的争议,还需要进一步的讨论。

[Page 13] 回到《中文排版需求》的文档本身,我们进一步修订了四大类正文字体的介绍和用途,并且更新了字体样张。新版样张遵循这样的原则:

[Page 15] 再接下来是「排」,排版——这方面可以说是《中文排版需求》篇幅最多的内容,也是最核心的东西。排版的细枝末节非常多,大到页面构成、网格布局,小到两个具体的字符之间的相对位置应该怎样安排——都是排版的问题。因为时间有限,今天在这里就只举几个代表性例子——这些也是我们在修订过程中,所遇到的比较重要的细节:

[Page 16] 第一个是排版方向问题。这个问题在西文排版中实际相对简单。但是中文排版存在着两种同等重要的书写方向,也就是所谓的「横排」和「竖排」——横排中文,行内字符是从左到右递进,段落是从上到下递进,书籍的页面是右起左翻(右半边是起始页,向左侧翻页);竖排中文,行内是从上到下,段落是从右到左,书页则是左起右翻。

[Page 17] 第二个是中文排版的网格问题,网格系统本质上是一套模数化的布局系统。我们以横排为例:

[Page 18] 第三个就是很多排版技术专家、字体排印爱好者都非常关注的 micro-typography 需求——所谓的「微观字体排印」。比如标点挤压、标点悬挂、空格占字这些细节规则。在这方面,《中文排版需求》也在陆续的补充和细化,整体的原则是:首先从原理出发,提供排版方法的模型或构造思路,避免直接抛出一些数值;同时给出一些实际的应用案例,供开发者们参考。

[Page 19] 第四个是「行间」以及「字间」排版,一种相对特殊的排版需求。

[Page 21] 最后来讲「印」。「印」顾名思义是「印刷」的意思。放到 web 排版的语境中,或者更广泛的数码媒介上,「印」指的就是内容的最终呈现——技术上有时也会把它叫做「渲染」。其实相对来说,《中文排版需求》不太直接去关注「印」这方面,因为内容的渲染和呈现,跟终端媒介技术有很强的关联。而我们这份需求文档的主旨,是阐述通用的中文字体排印需求,不会刻意跟某一类终端媒介高度耦合。

[Page 22] 不过还是有一些问题,会老生常谈。比如 Unicode 字符集的一个历史遗留问题:部分中文标点和西文标点共用码位,像破折号、省略号、引号这些,相信大家日常也很容易注意到。另外还有一些是比较容易被忽视的,比如连接号(包括短横线、一字线),以及间隔号等等——这些符号也是中西文共用码位。这种在编码字符集层面码位共用的设计方案,会间接导致这些中文标点符号的字形渲染结果可能不符合预期,甚至有的时候会出错(比如一条完整的破折号会断成两截)。这个问题,在多文种混排的场景下尤其明显。而在 web 上,多文种混排实际上是一个「默认环境」,我们不可能也不应该限制用户在页面上使用的语言或者是文字。针对这些问题,我们会通过差距分析文档进行整理,并持续跟踪。

[Page 23] 另外,如果我们把无障碍也考虑进来,实际上「印」是可以超出「视觉」这个范畴的。大家应该还记得,在「排版」那部分的最后,我们提到了 ruby 相关的问题。就在八月份的《中文排版需求》编辑例会上,我们的编辑之一 Bobby(董福兴),还特别提醒我,希望可以借今天的场合提一下 ruby 跟无障碍技术的相关性。目前,日文排版工作组就正在推进一份草案,叫做《包含 ruby 的电子文档的文字转语音需求》(Text to Speech of Electronic Documents Containing Ruby: User Requirements)。由于日文排版和中文排版内在的关联性,这份文档其实也天然地也覆盖了中文方面的一些需求。在座的如果有兴趣,也欢迎多多关注。

[Page 24] 最后的最后,one more thing,我想再提一下术语和翻译。《中文排版需求》在过去的一年多时间里,也在术语的整理和规范性方面花了不少精力。就像前面提到的,中文覆盖的地区很广,各地术语体系事实上是存在着各种差异的;甚至就是一些日常行文的措辞和表达方式,也不完全统一。

[Page 25] 如果大家仔细去阅读,会发现《中文排版需求》目前的文本,实际上就存在这样的问题,比如一些文案,繁体和简体的表述不一致。另外,还有英语翻译的问题。我们的文档,起草用的原始语言是中文,但英语版本是它最终在整个公共领域中具有核心参考地位的版本。所以翻译问题,关系到对文档内容的最终理解和解读。——那么,怎么改进这些问题呢?除了日常的校对和修订之外,编辑组也开始尝试从内部的编辑体例着手,一步步将术语和翻译问题进行规范:

在英语翻译方面,我们还会结合 W3C 的技术文档以及 Unicode 的术语体系来处理。比如不久之前:

通过这些工作,我们希望《中文排版需求》可以让不同母语、不同书写系统下的设计师和开发者都能更好地理解中文字体排印的术语和相关的排版原理,以便更准确地去实现中文字体排印的需求。

[Page 26] 今天的分享就到这里结束,谢谢大家。照例广告一下,《中文排版需求》的文档大家可以随时访问和查阅:

最后也再次感谢 W3C 北航团队和富侨的邀请,谢谢大家。


返回[会议总结页面]获取其他话题的会议纪要。

若您对上述内容有任何疑问或需进一步协助,请联系:讲者钱争予 <q@laerhsif.com> 或会议主办方 W3C 北航总部 <team-beihang-events@w3.org>。