汉字.jpg

最近几年,在数字世界和 web 环境里中西文混排时使用空格来间隔的人越来越多了,但这仅仅是存在于部分用户的使用习惯而不是一个被行业规范化的标准。因为至今中国语言改革委员会(或类似机构)那群占着茅坑不拉屎的专家们折腾快二十年了,都没能出台一个国家标准性质的中英混合书写规范。

中西文混排时中文与西文之间是否要有空格

在西文的字体排印中早已形成了成熟的字距调整的规范,而由于中文和西文的分词方式的不同也导致了中文在这方面的种种欠缺。因为中文书写体系的特点,汉字靠标点符号的控制节奏,按字分写,不按词分写。而西文按分词写,所以单词间的空白就是必须。不过韩文却是一个非主流的存在,是有分词空格的,在语法上有要求。

其实在印刷排版行业中一直有着在中西文字体之间添加空白的习惯,以此来使得印刷物更具有可读性以及视觉上的美感。但在数字世界中,也仅有小部分人有着这样的习惯。

除了 Adobe 家部分软件以及 Microsoft Word 在中西文混排时对汉字和西文之间的间距会有优化之外,大多数的软件或服务并没有提供这样的支持,我们只能通过手动添加空格的方式来达成手动控制。

我在中西文之间加入空格是当年在 V2EX 受到站长 Livid 的影响,他曾经在博客写过一篇文章叫做《中文 Web 阅读体验》,其中强调了基本的中英文空格的使用规则:

中文正文及标题中出现的英文及数字应该使用半角方式输入,并且在左右各留一个半角空格。如果这些这些半角英文及数字的左边或者右边紧接着任何的中文全角括号或者其他标点符号的话,则不需要加入半角空格。

同时,在 W3C 于 2015 年出炉的《中文排版需求》也规范了中西文排版中加入空格的标准:

横排时,西文使用比例字体;阿拉伯数字则常用比例字体或等宽字体。原则上,汉字与西文字母、数字间使用四分之一个汉字宽的字距或空白。但西文出现在行首或行尾时,则无须加入空白。

在中西文混排时加入空格,更大的作用是「视觉美化」,在易读性也大大加强,两种文字的交界处平滑的过渡,满足双方文字的需求,可以让文本的节奏尽量平稳。

加空格

所以像大部分在中西文之间加空格的「手动空格党」早已形成了手动加空格的习惯,而对于那些并没有形成这种习惯却由希望在中西文之间加空格的人来说,借助工具来完成这种工作是再好不过的事情。

在一些输入法中已经提供了在中英文之间自动加空格的功能,你不必在切换输入语言之后手动添加空格,这一切都由输入法自动识别,然后自动为你添加空格。不过这种加空格的方式并不完美,当你有一些特殊需求或者删除之前输入内容再次输入的时候,输入法加空格的功能就不灵了。

Screenshot 2016-03-31 10.23.58.png因此,我还是建议早日养成一个手动加空格的习惯,毕竟手动空格大法好。

盘古之白

也就是所谓的「为什么你们就是不能加个空格呢?」项目。如果你跟我一样,每次看到网页上的中文字和英文、数字、符号挤在一块,就会坐立难安,忍不住想在它们之间加个空格。这个 Google Chrome / Mozilla Firefox / Safari 的拓展插件正是你在网路世界所需要的东西,它会自动替你在网页中所有的中文字和半形的英文、数字、符号之间插入空格。

Screenshot 2016-03-31 10.40.11.png

同样的,盘古项目除了在普通用户日常浏览网页时发挥作用,而开发者在 IDE / 编辑器下得到了支持。到目前为止,已经可以支持 Go、Java、Objective-C、JavaScript、PHP、Python 等语言。

汉字标准格式

如果你是一个 Web 开发者执念于为用户提供一个优秀的体验且是一个坚定不移的中西文空格档, 那么「汉字标准格式」框架会让你在开发过程中省掉不少力气。

Screenshot 2016-03-31 10.57.44.png

「汉字标准格式」是一套支援各种印刷效果的 Sass + JavaScript 排版框架,包含相邻文字装饰线跳脱、汉字标音、着重号、标点符号修正、中文四大印刷体、汉字-西文 mixed 间隙、「标点『挤压』与『悬挂』」、章节边界调整等功能。

共勉

有研究显示,打字的时候不喜欢在中文和英文之间加空格的人,感情路都走得很辛苦,有七成的比例会在 34 岁的时候跟自己不爱的人结婚,而其余三成的人最后只能把遗产留给自己的猫。毕竟爱情跟书写都需要适时地留白。

与大家共勉之。


参考资料: