(摘自《The TeXbook》附录)
\def\raggedright{\rightskip=0pt plus2em \spaceskip=.3333em \xspaceskip=.5em\relax}
似乎许多其他普通的 TeX 宏都不以 结尾\relax
。有什么\raggedright
特别之处?
答案1
\xspaceskip
是一个粘合参数,当它非零时进入场景,并且 TeX 决定使用额外的空间,因为当前空间因子为 2000 或更大。
这个想法是,在右边不规则的文本中,没有空间是灵活的。单词之间的空间(由字体信息或\spaceskip
非零值决定)取决于个人喜好。
的原因\relax
是阻止 TeX 寻找完整的粘合规范,因此搜索(扩展)plus
或minus
。
尝试,没有\relax
,
\raggedright Minuscule bugs can ruin our day.
由于关键字不区分大小写,因此Minus
会触发维度搜索。
\setlength{\foo}{<glue>}
出于同样的原因,LaTeX
\foo=<glue>\relax