F4.03.2short measure设计研究

行长过短导致频繁换行打断阅读

别名: 窄栏 · 行宽过短 · frequent wrapping

概念解释

栏太窄时,失败来自另一头:还没读完一个意群就要折行。西文会把 the、of、and 甩到行首,或把一个词从中间切开;中文会把四字结构、专名、数字和单位拆到两行。眼睛不得不频繁做折返,而每次折返都打断正在组装的短语。读者感到的是结巴,不是「栏很清爽」。

过短和过长是同一条尺的两端,机制却不对称。过长是一次折返瞄不准;过短是折返次数爆炸,语言单位被切碎。把宽屏正文无上限拉满,和把手机栏切成两列各七八个字,看起来一个奢侈一个节省,读起来都会停。

机制

阅读计划的不是单字,而是即将到来的几个词或几个字组成的块。行尾是一个强制边界。边界落在块中间时,工作记忆里刚拼上的结构要被拆开,下一行开头再拼一次。西文的 hyphenation 把这个伤口露在表面上;即便不开断词,短行也会把功能词和实词拆散,句法提示变得东一块西一块。中文没有空格,断行算法若只按字符宽度贪心,专名和「的 / 了 / 着」会大量出现在行首,节奏比西文更碎。

折返本身也有时间成本。行短则折返密,用于识别字的时间被来回调度吃掉。速度曲线因此不是「越短越精准」:短到一定程度以后,折返开销超过因行短而获得的瞄准优势,总效率下降。这和过长行「折返很难但次数少」是不同的账。

窄栏里两端对齐会把过短放大成灾难:每行只有几个词可调,引擎只能把词距拉成空洞,或把字母距拉变形。短行的 rag 本来已经参差刺眼,再两端对齐就是在没材料的情况下强行撑满。

怎么研究

行长实验必须把「过短」和「过长」分成两个区段来看,中间才是常被引用的舒适带。Dyson 的屏幕阅读工作里,偏好往往落在中等行长,而速度在更长的行上有时更高——过短这一侧,速度和偏好通常一起掉,因为打断是可被觉察的。因变量除速度外应包括:被行尾切开的短语数、回视次数、朗读是否出现不自然的停顿。

自变量:每行词数或中文字数、是否允许断词、栏数。中文还要标断行是否避开了标点与专名(避头尾是另一组问题,这里只把它当作过短时被触发得更频繁的约束)。

用按钮标签或标题来测行长没有意义,它们本来就短。材料必须是连续散文,并且长到足够积累多次折行。

边界

导航、标签云、手机上的次级栏、对照翻译的双栏,有时必须短。那些场景的阅读单位本来就不是整段,过短的代价从「打断段落」变成「每个标签仍要完整显示」。诗歌、歌词按音步断行,短是结构。代码有自己的行宽传统,短于散文不等于失败。真正危险的是把为侧栏调的窄宽度,复用到文章正文上。用户把手机竖持时,物理栏宽有下限,过短几乎不可避免——这时该减字号或接受更频繁的折行,并靠行高把轨道分开,而不是强行两端对齐来「整齐」。

怎么落地

  • 正文不要切成每行只能放下几个词的装饰栏。侧栏可以窄,正文栏要让一个典型短语在一行里活完。
  • 关闭窄栏上的两端对齐;短行没有足够的词距可调。
  • 中文检查行首是否堆着「的了着」和被切开的专名;若有,加宽比改断词词典更有效。
  • 验证:把一段话的每个行尾标出来,数有多少处切在短语或专名中间。这个比例高,栏就短过了语言单位。

延伸

  • 同组F4.03.1 行长过长导致换行时找不到下一行 · F4.03.3 行长应以字符数而非像素约束
  • 相邻F4.14 标点与避头尾 · F4.13 段落间距与分段
  • 站内检索short measure · line wrapping · phrase boundary · hyphenation

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/F4.03.2