中文省略号到了行尾,应该怎样断行
中文省略号到了行尾,容易把两个不同层面的问题混在一起:一个是符号内部能否拆开,另一个是完整符号在行首行尾如何安排。W3C《中文排版需求》把省略号列入占两个汉字空间的标点,并要求把它视为一个整体。就单个中文省略号而言,这个整体不应从中间拆到两行。这里限定的是符号内部的分离问题,不能顺势推导出所有软件都采用完全相同的断点。
版面真正落在哪个位置换行,还要由上层排版软件选择。Unicode 换行算法提供的是一组可换行位置,并不负责从中确定最终断点;了解可用行宽和文字显示尺寸的软件才会完成这一步。因而,字符层面的默认规则可以说明哪些位置具备约束,却不足以预言某款软件在特定页面宽度、显示尺寸和版本中的最终画面。
《中文排版需求》把行首行尾禁则分成不同严格程度。在其严格处理级别中,省略号不应出现在行首;同一份文档也说明,这类禁则属于排版风格,用户代理可以按实际情况选择或自定义较宽松、较严格的处理。看到两款软件给出不同结果时,不能仅凭表面差异就认定其中一款必然错误,还应确认它们采用的是不是同一级别的行首禁则。
| 判断层面 | 可依据的处理 | 适用边界 |
|---|---|---|
| 单个中文省略号内部 | 按双字宽整体处理,不从中间拆行 | 只说明完整省略号内部的分离问题 |
| 严格行首禁则 | 省略号不出现在行首 | 属于严格处理级别,不是所有实现的唯一模式 |
| 多个双字宽标点连续出现 | 可作为例外分到两行 | 不能外推为单个省略号可以从内部拆开 |
| 软件选择实际断点 | 结合可用行宽和显示尺寸决定 | 不能只凭默认换行机会预测具体软件的显示结果 |
这种可配置性不能解释所有差异。行首是否接受完整省略号,和单个省略号内部能否被拆开,并不是同一条规则。较宽松的行首禁则不等于允许把一个中文省略号截成两半;前者涉及完整标点在行首的位置,后者涉及双字宽标点作为一个排版整体的分离限制。把两者合并成一句“软件可以自由断开”,会丢掉最关键的适用边界。
连续出现多个双字宽标点时还存在一项例外。《中文排版需求》允许把这些连续的完整单位分到两行,理由是强行留在同一行可能使前一行字距过大。这个例外处理的是多个完整单位之间的安排,不能反过来证明单个中文省略号可以从内部拆开。阅读软件说明或检查版样时,应先辨认画面中究竟是一个单位被截断,还是多个单位在边界处分开。
实际检查不宜只截取一张局部截图便下结论。至少要保留当时的可用行宽、显示尺寸、软件版本和禁则设置,再观察断点如何变化;这些条件会影响上层软件最终选择哪个可换行位置。无论结果怎样变化,判断时仍需分别记录单个省略号的整体性、严格级别下的行首限制,以及多个双字宽标点连续出现时的例外,不能用其中一项替代另外两项。