Chapter 4
ltspace (Horizontal Spaces)

ltspace.dtx

<..latex ltspace..>
 \NewConfigure{hspace}{3}
 \Configure{hspace}{}{}{ }
 \def\:temp#1{\tmp:dim=#1\relax
    \a:hspace \hsp:c\hskip #1\relax\b:hspace}
 \HLet\@hspace=\:temp
 \def\:temp#1{\tmp:dim=#1\relax
    \a:hspace \hsp:c\vrule \@width\z@\nobreak
    \hskip #1\hskip \z@skip\b:hspace}
 \HLet\@hspacer=\:temp
 \def\hsp:c{\ifdim \tmp:dim<1em\else\c:hspace\fi
    \ifdim \tmp:dim<2em\else\c:hspace\fi
    \ifdim \tmp:dim<3em\else\c:hspace\fi
    \ifdim \tmp:dim<4em\else\c:hspace\fi
    \ifdim \tmp:dim<5em\else\c:hspace\fi}
 -_-_-

We need the assignment to \tmp:dim because of commands like \hspace{0.25em plus 0.125em minus 0.08em}.

<..latex ltspace..>+
 \let\:tempc\@vspace
 \append:defI\:tempc{\a:vspace{#1}}
 \HLet\@vspace\:tempc
 \let\:tempc\@vspacer
 \append:defI\:tempc{\a:vspace{#1}}
 \HLet\@vspacer\:tempc
 \NewConfigure{vspace}[1]{\def\a:vspace##1{#1}}
 \Configure{vspace}{}
 -_-_-