为什么 \quad 等的定义中包含 \relax?

为什么 \quad 等的定义中包含 \relax?

Plain Tex 定义\quad如下:

\def\quad{\hskip1em\relax}

为什么会有\relax? 它通常用作无法扩展的标记,在宏扩展完成后充当“不执行任何操作”的操作。 但这种用法似乎是多余的,因为它遵循命令,即\hskip

宏定义\enskip\qquad纯文本,以及在 Latex 中ltspace.dtx

这个问题毫无意义,但我想其原因还是值得了解的。

答案1

因此 \quad 在组合 \hskip 的参数时不会吃掉以下文本:

\documentclass{article}
\begin{document}

\def\quad{\hskip1em\relax}

\quad plus 1em text

\def\quad{\hskip1em}

\quad plus 1em text
\end{document}

相关内容