# Why do the definitions of \quad, etc. have \relax in them?

Plain Tex defines \quad so:

\def\quad{\hskip1em\relax}

Why is the \relax there? It's usually used as a token that can't be expanded, serving as a "do nothing" operation after macro expansion is finished. But that use seems redundant, because it follows a command, namely \hskip.

The macro is defined alongside \enskip and \qquad in plain.tex, and in Latex in ltspace.dtx.

An idle question, but I guess the reason for it will be worth knowing.

-

## 1 Answer

So that \quad doesn't eat following text while assembling the argument of \hskip:

\documentclass{article}
\begin{document}

\def\quad{\hskip1em\relax}

\quad plus 1em text

\def\quad{\hskip1em}

\quad plus 1em text
\end{document}

-
This is a general feature of TeX skips: see also how LaTeX defines a number of wrappers so that 'escape' does not take place. –  Joseph Wright Sep 14 '10 at 13:10
Thank you. I guess this highlights the risks associated with designing robust macros. –  Charles Stewart Sep 14 '10 at 13:28
Welcome to my world :-) –  Joseph Wright Sep 14 '10 at 17:12
Very nice example. Thank you. –  Todd Lehman Dec 29 '11 at 15:00
Fischer's explanation above can also be seen on the dangerous bend in pg. 71 of Knuth's The TeXbook. –  Mafra Dec 2 '12 at 1:32