,逗号还在行首?【图纸中的文字排印之标点悬挂】

由于建筑学和规划的教学共性呢,(几乎)所有同学的图纸排版和设计都是自学的。这带来了一个很大的问题,那就是大家对平面设计的基础知识了解太少,做出来的图纸要么很丑陋,要么尽力做好看和花哨了,但许多细节有大问题。怎么说平面设计也是设计,虽然优秀与否见仁见智,但有没有错误是客观的,就好比控规图居住用地不能用红色填充一样,一个基础错误往往会导致整张图纸惨不忍睹。

至少是我自己看不下去。我每次找图纸看,看到排版问题,我内心对这张图的评价就会直接拉低(「这图凭什么拿一等奖!垃圾🤮」),所以,为了避免我吐tong槽ma你的图纸,请学一些基础的排版知识吧!

我不敢说自己图纸排版做的多好看,但文字排印(typography)应该是没有硬伤的。这个专栏里,Keldos 打算针对建筑学和城乡规划(风景园林呢?景观的同学早点转行吧谢谢)的图纸科普一些文字排印的细节。让我们慢慢来。这是该系列的第一篇,让我来讲讲「标点悬挂」。

在行首的标点

这个学期在做 WUPENICITY 的城市设计竞赛,一直在翻前两年的获奖图纸。说实话,如果认真看,(无论是好看的提名作品还是难看的一等奖作品)几乎没有一张图能做到没有问题。真烂啊,要我肯定不给一等奖。我随手就截了几张图,大家能发现这几张优秀图纸里的文字有什么问题没有?

错图1 错图2 错图3

上完小学二年级的你已经发现了——

第一张图的顿号「、」和分号「;」,第二张图的后引号「”」和第三张图的顿号「、」出现在了行首!

「小学老师就告诉我,这些标点不能放在一行的开头。」你委屈地说,「要是我在稿纸上写我肯定不会犯这些错误。」

是啊,都2024年了,计算机为什么还不帮我把这些标点挪到行尾呢?明明 Word 这种垃圾软件都不会出这些问题呀!

气疯设计师

你是不是在用 Adobe Photoshop 或者 Adobe Illustrator 画图??

——!!!你怎么知道的!!垃圾 Adobe!我已经一个一个词删过去调整了额,这里剩下几个忘记了。

😐

好吧,下面让我们重新从中文标点讲起……

标点避头尾

小学二年级老师就教过我们,有一些标点符号不能出现在行头(而另外一些不能出现在行尾),因此在排版时要分别让它们避开行头、行尾的位置,简称「避头尾」。

实际上,针对各种标点,各种编辑风格其实不尽统一——但如果你高考前语文成绩不错,你可能知道要来找国标的推荐性规范,避免高考前几个病句选择题选不出来,因此你找到了国标 GB/T 15834-2011《标点符号用法》,这正是我国教育部接受的指定用法,里面「5. 标点符号的位置和书写形式」中,正写明了:

  • 着重号、专名号不在「行内」而在「行间」,不属于避头尾处理范围。
  • 点号,包括句号、问号、叹号、逗号、顿号、分号、冒号,都要避头。
  • 标号中的引号、括号、书名号:前一半避尾,后一半避头。
  • 标号中的连接号(–)、间隔号(·)都不能出现在行头。
  • 标号中的分隔号(/)不能出现在行头也不出现在行尾。
国标对标点位置要求

这里还是得提一句,这份国标只是一份推荐性标准,其他排版或出版的行业性规范中,对分隔号与连接号、间隔号的避头尾规则可能有其他的要求……尤其是省略号与破折号的避头尾规则,有不同的风格选择。这又涉及到了间距调整的知识……让我们下一篇再讲吧。

聪明的你可能还会提醒我,除了标点,还有各种符号,尤其是与数字相关的符号在文章中也需要避头尾,比如百分号 %、千分号 ‰ 需要避头,前置货币符号如¥$需要避尾。这会是一个如何断行的问题……嗯,又是另一篇文章了。

好了,现在你已经复习了标点的避头尾要求,你开始疑惑了:「我知道,你给我400字的稿纸我绝对不会搞错的,我还知道要把冒号和前引号放在同一个格子里(标点挤压,之后再讲吧),可是为什么我画图的时候就不对了呢?」

下面,让我们进入计算机中的文字排印的原理吧!(bushi)

避头尾是怎么实现的?

在纸质书写的时候,我们可以手动控制标点的位置。在铅字排版的时候,我们可以手动调整标点铅块的位置。显然那,电脑排版的时候,我们也可以手动换行,避免标点出现在第一个字(bushi)。

开个玩笑,我们并不想手动换行或者删字(虽然确实很多人会这么做)。我们希望计算机能够智能地预判标点是否可能会出现在行首(或者行尾),并以此智能地动态调整。

不同的软件实现避头尾有不同的内部算法和不同的风格选择,尤其是涉及到标点挤压或标点悬挂之后。让我借用 Eric 文章中的图来解释决策算法:

如下图,最后一个字是「客」,然后是句号。如果不做任何处理,句号将会出现在下一行的开头。

例句

如果你对排版规则了解更多,你可能会知道这行字在各排版软件中更容易执行标点挤压,也就是把最后一个字挤进这一行,如 InDesign:

InDesign中的默认处理

标点挤压也有很多策略,比如你会发现 InDesign 挤压了几个点号的宽度而没动文字。这里先不展开。

但如果是网页排版等策略,或无法挤进,或风格选择,决定把「客。」字段整段推出到下一行,而上一行空出了一个字宽的空间。根据不同方针,在撑开调整时,也会有不同的策略选择:

不同的推出效果

「甲」的效果,是包括国产字处理软件 WPS 以及很多网页排版唯一能实现的效果,即推出字段之后,上一行所有字符根据「两端对齐」算法指令强行拉开,把一个字宽均摊到二十处字间距里。这个方法虽然把每处的调整空隙降到最低(1/20 字宽),但其打破了字距的密排原则,实际的字距会与其他行不同。 ……

(其他效果是不同的风格选择或策略造成的,这里不展开了。)

大家不用知道更细的算法原理了,下面让我来看怎么画图吧!

画图时的设置

先等等,我们从文本和汇报开始!什么你是建筑学的不用做文本?😢

Microsoft Word

Word 默认是开启避头尾的,所以你可能很满意自己的排版。如果你想要进行更具体的调整,可以在「段落→中文版式→选项」里的「首尾字符」选项中进行设置。

Word设置避头尾

另外,Word 在默认情况下开启了「压缩标点符号」,因此从实际效果来说,Word 在避头尾时是执行「先挤进」原则:当行尾不足以放一个标点或者遇到避头点时,Word 会先尝试对行内标点宽度进行挤压,腾出空间把标点放到行尾上。

Microsoft PowerPoint

我知道,现在你全在用 PPT 做汇报文本,根本不用 Word。放心,学会了这个技能,设计院也不会给你我多发工资的!

PowerPoint 的避头尾设置则在「段落→换行符和对齐方式」中换行符的选项菜单中。(聪明的你甚至发现了PPT是没有标点挤压的,真难过呀。)

PowerPoint 设置避头尾

Adobe Photoshop 和 Adobe Illustrator

为什么我一眼就可以瞄出你的图纸是用 PS 或者 Ai 做的呢?诶,因为它们默认都没有帮你启用避头尾规则!显然,用 PS 的都是专业的平面设计师,做规划的小萌新画图为什么不直接用 PPT 画呢?

左侧是默认的效果,右侧是调整后的效果

其实很简单,在 PS 中,你只需要在「段落」面板中将避头尾设置为 「JIS 宽松」,将「标点挤压」设置为「间距组合1」;

在 Ai 中,则是「段落」面板中将「避头尾集」设置为「宽松」,「标点挤压集」设置为「行尾挤压全角」。

PS与Ai中 设置避头尾

你可能发现了,为啥好像不管是 Word 还是这里避头尾都有个「宽松」还是「严格」的预设集合可以选择。这又是什么意思?这两个设置有什么区别?

答案是,如果你是中文用户,也不用它们写日文,那么就是……没有什么太大区别。目前各家软件「严格」「宽松」的设置基本都是针对日文排版需求的设置,二者最大的区别是针对日文「拗促音」的小写假名以及片假名长音等符号的不同处理方式,与中文排版无关。所以我推荐大家选择「宽松」就好。

至于下面的标点挤压集应该选什么,倒开始偏向风格选择了。我个人会习惯按照「行尾挤压全角」类似的设置来,这样标点会宽一些,两端对齐需要添加的多余空白不会太影响到文字间距。

标点挤压风格对比

当然了,这是风格选择喜好。只要不出现逗号出现在行首这种错误,我一般是不会骂别人开启两端对齐之后字间距太大这种问题的。

Adobe InDesign

InDesign 作为专业的排版软件,对避头尾也有非常强大和全面的调整和算法。一般来说,如果你下载使用中文版的 InDesign,保持默认的效果即可。如果想要有更好的效果,也可以在「段落」面板中将「避头尾间断类型」选择「确定调整量优先级」。

InDesign设置避头尾

所以,如果我没有指责你的图纸错误百出,你应该感谢你使用的是 InDesign。

用网页排版……

我知道有人在用 Figma 之类的基于网页技术的软件做排版,或者就是在排一个网页。网页的标点避头尾和挤压规则可以参考 W3C 《中文排版需求》的「3.1.4 行首行尾禁则」等节和 Unicode 标准附件第十四号《Unicode 断行算法》(UAX14) 以及 《CSS 文本模块》第五章「断行与词界」。值得注意的是,由于现代中文蝌蚪引号与西文共享一个码位,也会产生不少问题。但这里也不展开了哦。

恭喜!现在,你已经学会做出一个基本正确的文本框了,下面,试一试排一本30万字的书吧!(bushi)

参考资料


附1 我对标点的看法

我其实是个不太纠结别人用不用标点或者有没有滥用标点的人,你要是用句号代替省略号。。。或者用,,,来体现你的纠结语气,甚至一整段话完全不打标点 只用空格 来代替一句话的停顿甚至完全不打标点或空格就像古文一样我都非常可以接受。

川虎之前给我看他对现代网民乱用标点的看法,觉得用标点体现对对方尊重,我是不太认同的。

毕竟,标点本身就是一个新东西,你感兴趣甚至可以看 《请颁行新式标点符号议案(修正案)》,这是马裕藻、周作人、朱希祖、刘复、钱玄同、胡适于 1919 年编撰的,可是中文标点的雏形啊。虽然我们现在基本约定俗成了各种标点的规范用法,但它们仍然只是刚形成100年左右的新东西。某种程度上讲,标点符号使用还在不断演变和优化过程中。

所以你要是发明什么,。?。的用法,然后通篇这么用,我可不介意。只要你这个使用方式是表达了你的什么混沌的意识或者阴暗爬行的精神状态之类,就没关系。

但是,如果你正在试着在以某种正确的方式使用标点,比如,你正在写你的设计说明,你一句话停顿用逗号,一句话结束用句号,这些都很符合一般的规则。这时候你突然说我要用「。。。」来代替省略号啦,我要把逗号放在一行开头啦,我则会觉得莫名其妙。

反正就是,你要是好好用了,你就通篇好好用,不要混一两个错误进来觉得无所谓。

说是网络时代大家都乱用标点也好,或者是现代网页排版技术不支持太多标点规则也好,你可能对这些不太感冒,「我就这么用了,没关系吧」「只是推荐性标准罢了,又不是强制性,凭什么说我错?」

Eric 写得很好:

在中华人民共和国新闻出版总署发布的《图书质量管理规定》里所附「图书编校质量差错率计算方法」明确指出「标点符号误在行首、行末的,每处计 0.1 个差错。」不避头尾,在正规出版社的出版物里是应该杜绝的纠错现象,为什么到了现代的软件里却可以熟视无睹?

总之,要乱用就乱用,要好好用就好好用,不要一边好好用一边乱用。

附2 标点和字体的关系

看一个例子。

2017 年 8 月,微软公司在「Window 10 秋季创意者」版本里对「微软雅黑」进行了更新,第一点就提到了「标点符号位置改进」。

微软更新微软雅黑

正如版本更新的说明所述,微软雅黑这次修改的原因是要「严格遵照标准」。反过来也就是说,自 2007 年诞生直到 2017 年新版发布,十年以来这款字体的标点位置一直都不符合国家标准……

也就是说,标点用的对不对,和字体可能也是有关系的。除了这些基础的标点,还容易体现在字体上的是破折号「——」,破折号的中间能不能连上?嗯,这又涉及到了 OpenType 字体的 ccmp 特性,下次再讲吧。

补充一句,微软雅黑真的是一款很差劲的字体。我不知道为什么大家这么喜欢在 PPT 和汇报文本里面用它,它现在甚至不是默认的中文字体了。是因为眼瞎觉得微软雅黑很好看吗?

说到字体,我这几天试着制作了一款像素风格的西文可变字体(暂时只支持英文使用的部分拉丁化字母),如果有人有兴趣可以看看:Slantel Dos Pixel

样张1 样张2 样张3 样张4

求鼓励求支持QAQ
Keldos 支付宝

支付宝