「推出式」避头尾是大部分阅读软件的做法:以避头标点为例,若此标点被排到了行首,“推出式”的做法是从上一行拉一个字放在本行。
如下图所示:然而这么做的话,上一行的字间距被拉大,打断了阅读节奏(阅读节奏放慢)。我们发现专业的排版软件(Indesign)和出版社(广西师范大学理想国系列、人民文学出版社、译林出版社等知名出版社)的做法是「优先推入式避头尾」,这种方式可以很好地解决「仅推出式」造成的问题。如下图所示:
通过「优先推入式避头尾」,上图中标出的双引号的宽度被挤压了一半,如果它保留为「全宽」,就没办法排在这一行,这就是「优先推入式避头尾」的最终效果。
以避头尾标点为例,“优先推入式”避头尾在这种情况下会将本行内标点宽度挤压,为避头尾的标点腾出空间,如下图所示:
由上图可见:通过「优先推入式标点挤压」,第一行的字间距没有被拉大,保持了密排。
通过将本行内的标点宽度进行挤压后,腾出了空间给本来排不到的逗号,确保了字间距的恒定。然后只有在本行内标点无法压缩出足够空间时,才会选择「推出式」的处理方式。
因此这种处理方式叫做「优先推出式」标点避头尾。
(3)行内标点挤压
因为相邻标点挤压、行首段首挤压,会出现部分标点符号占据半宽的情况。这种时候,一行的末尾可能正好有汉字或标点轧在了边框上,如下图所示,为汉字轧在边框的情况:
遇到这种情况,通过挤压行内标点宽度,从而腾出空间给最后一个字。这种做法叫做「行内标点挤压」
(4)标点悬挂的逻辑和配套内容
有另外一种处理方式来避头,叫做「标点悬挂」,即将标点悬挂在文本框外。然而这种采用「标点悬挂」,需要配套做「行尾强制半宽」,如下图所示:
然而行尾强制半宽带来的问题是字间距被拉大,违反了原则一(尽量保证字间距恒定),对于宽度有限的手机屏幕,尽量不要改动。因此最终我们没有采用标点悬挂的处理方式。