<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">%-*-tex-*-
\ifundefined{writestatus} \input status \relax \fi %
\chcode{glue}
\def\cqu{}

\chapterhead{glue}{GLUE -- REVISITED}
Glue is the binder that lets \tex\ do its job. This chapter discusses some
preset forms of glue and their uses. Along with glue parameters there are a
number of special commands for inserting glue. The most interesting have
different degrees of infinity, namely |\hfil|, |\hfill|, |\hfilneg|, |\hss|,
and their vertical counterparts. 

Because of the special spacing requirements of mathematics, \tex\ defines
skips and spacing that are valid in mathematics mode only. Examples are the
are the special preset |mu| glues of |\thickmuskip|,
|\medmuskip|, |\thinmuskip|.
The |\newskip| and |\newmuskip| commands allocate skip (or really glue)
or muskip registers respectively for special uses. For example the specific
glues surrounding section heads are held in glue registers. 

It should be noted that the various |\...muskip| do not cause horizontal
spacing in math mode by themselves. They are used with |\mskip| to actually
cause the insertion of the glue.


\shead{gluecomlist}{Command List}
\beginthreecolumn
\pla|\hfil \hfill|
\pla|\hfilneg|
\pla|\hss|
\pla|\medmuskip|
\pla|\newskip|
\pla|\newmuskip|
\pla|\thickmuskip|
\pla|\thinmuskip|
\pla|\vfil \vfill|
\pla|\vfilneg|
\pla|\vss|
\endthreecolumn


\shead{gluecomform}{Command Forms}
\beginblockmode
\pla\@|\hfil \hfill|
\nbr
\pla\@|\hfilneg|
\nbr
\pla\@|\hss|
\nbr
%\tracingall \tracingonline=0
These are all various forms of horizontal (or math) mode commands that insert
infinite quantities of glue. |\hfil|, |\hfill|, |\hfilneg|, and |\hss| insert
|plus 1fil|, |plus 1fill|, |minus 1fil|, and |plus 1fil minus 1fil|. 
The first two are {\it stretch} glues, the third is {\it shrink} glue and the
last is both. It
should be noted that when \tex\ tries to stretch or shrink glue values, they
vary according to their value. If there exists both |fil| and finite value
glue in a box or line, then all the stretch if it is |plus| glue 
or shrink if it is |minus| glue will be in
the section with the |fil| glue. If there is |fill| glue and either |fil| or
finite glue, then all the stretch or shrink will be in the |fill| sections.
Similarly with |filll| glue, which is not supplied in as readily usable form.
The difference in behaviour between |\hfil| and |\hss| is that |\hss| glue
will allow the contents of a box to spill outside without resulting in an
overfull box while |\hfil| will only fill or push contents to the edge of the
box. The major use for these glues are to center or to force stuff to either
edge of a box.  For instance this
\begintt
\line{\vrule \hfil one \hfil two \hfil three 
         \hfill four \hfil five \hfil six 
         \hfill seven \hfil eight \hfil nine\vrule}
\endtt
gives

\line{\vrule \hfil one \hfil two \hfil three 
         \hfill four \hfil five \hfil six 
         \hfill seven \hfil eight \hfil nine\vrule}



\mbr
\pla\@|\medmuskip|
\nbr
This is a preset |mu| glue. |\medmuskip = 4mu plus 2mu minus 4mu| for use
with |\mskip|. This is \hbox{\strut\vrule$\mskip\medmuskip$\vrule}.


\mbr
\pla\@|\newskip\&lt;skip name&gt;|
\nbr
This assigns a new skip or glue register to the name |\&lt;skip name&gt;|. Glue
values may be assigned to it by |\&lt;skip name&gt; [=] &lt;glue&gt;|.

\mbr
\pla\@|\newmuskip\&lt;muskip name&gt;|
\nbr
This assigns a new muskip or muglue register to the name |\&lt;muskip name&gt;|. Glue
values may be assigned to it by |\&lt;muskip name&gt; [=] &lt;muglue&gt;|.

\mbr
\pla\@|\thickmuskip|
\nbr
This is a preset |mu| glue. |\thickmuskip = 5mu plus 5mu| for use
with |\mskip|. This is \hbox{\strut\vrule$\mskip\thickmuskip$\vrule}.


\mbr
\pla\@|\thinmuskip|
\nbr
This is a preset |mu| glue. |\thinmuskip = 3mu| for use
with |\mskip|. This is \hbox{\strut\vrule$\mskip\thinmuskip$\vrule}


\mbr
\pla\@|\vfil \vfill|
\nbr
\pla\@|\vfilneg|
\nbr
\pla\@|\vss|
\nbr
These are the vertical analogues to the infinite horizontal glues and act in
much the same manner. See the section on |\hfil ...|.
\endblockmode
\ejectpage
\done</pre></body></html>