为什么\raggedright定义的末尾有\relax?

为什么\raggedright定义的末尾有\relax?

(摘自《The TeXbook》附录)

\def\raggedright{\rightskip=0pt plus2em \spaceskip=.3333em \xspaceskip=.5em\relax}

似乎许多其他普通的 TeX 宏都不以 结尾\relax。有什么\raggedright特别之处?

答案1

\xspaceskip是一个粘合参数,当它非零时进入场景,并且 TeX 决定使用额外的空间,因为当前空间因子为 2000 或更大。

这个想法是,在右边不规则的文本中,没有空间是灵活的。单词之间的空间(由字体信息或\spaceskip非零值决定)取决于个人喜好。

的原因\relax是阻止 TeX 寻找完整的粘合规范,因此搜索(扩展)plusminus

尝试,没有\relax

\raggedright Minuscule bugs can ruin our day.

由于关键字不区分大小写,因此Minus会触发维度搜索。

\setlength{\foo}{<glue>}出于同样的原因,LaTeX

\foo=<glue>\relax

相关内容