<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">% -*- coding: utf-8 -*-
% This is part of the book TeX for the Impatient.
% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
% See file fdl.tex for copying conditions.

\input macros
%\chapter {Commands for \linebreak horizontal and \linebreak vertical modes}
\chapter {ć°´ĺšłĺçŤç´ć¨Ąĺźĺ˝äť¤}

\chapterdef{hvmodes}

%This section covers commands that have corresponding or identical
%forms for both horizontal and vertical modes.
%These commands provide boxes, spaces, rules, leaders,
%and alignments.
%For an explanation of the conventions used in this section,
%see \headcit{Descriptions of the commands}{cmddesc}.
čżä¸çŤ&nbsp;äťçťć°´ĺšłĺçŤç´ć¨Ąĺźä¸ĺˇćĺŻšĺşćä¸č´ĺ˝˘ĺźçĺ˝äť¤ăčżäşĺ˝äť¤ćäžçĺ­ăé´éăć&nbsp;çşżăćĺźçşżäťĽĺéľĺăćĺłćŹçŤ&nbsp;ä¸­ä˝żç¨çćŻäžçčŻ´ćďźĺč§\headcit{ĺ˝äť¤çćčż°}{cmddesc}ă

\begindescriptions

%==========================================================================
%\section {Producing space}
\section {äş§çé´é}

%==========================================================================

%\subsection {Fixed-width horizontal space}
\subsection {ĺşĺŽĺŽ˝ĺşŚć°´ĺšłé´é}

%\begindesc
%\bix^^{space//producing}
%\bix^^{horizontal space}
%\cts thinspace {}
%\explain
%This command produces a positive \minref{kern}
%whose width is one-sixth of an em
%(\xref{dimdefs})
%i.e., it causes \TeX\ to move its position right by that amount.
%It is useful
%when you have a nested quotation, for example,
%and you want to separate the levels of quotes.
%\TeX\ won't break a line at
%a |\thinspace|.\minrefs{line break}
\begindesc
\bix^^{é´é//äş§çé´é}
\bix^^{ć°´ĺšłé´é}
\cts thinspace {}
\explain
čŻĽĺ˝äť¤äş§çä¸ä¸Şć­Łç\minref{ç´§ć}ďźĺŽçĺŽ˝ĺşŚćŻ 1/6 emďź\xref{dimdefs}ďźďźäšĺ°ąćŻčŻ´ďźĺŽä˝żĺž \TeX\ ĺĺłç§ťĺ¨ä¸ä¸Şç¸ĺşçčˇçŚťăäžĺŚďźĺ˝ä˝&nbsp;éčŚĺľĺĽĺźç¨ďźĺšśĺ¸ćĺ°ä¸ĺĺąćŹĄçĺźĺˇĺĺźćśďźĺŽäžżéĺ¸¸ćç¨ă\TeX\ ä¸äźĺ¨ |\thinspace| ĺ¤ć­čĄă\minrefs{line break}

\example
``\thinspace`ä¸ä¸Şĺźç¨ă'\thinspace''\par
24,\thinspace 29--31,\thinspace 45,\thinspace 102
|
\produces
%``\thinspace`A quote.'\thinspace''\par
``\thinspace`ä¸ä¸Şĺźç¨ă'\thinspace''\par
24,\thinspace 29--31,\thinspace 45,\thinspace 102
\endexample
\enddesc

\begindesc
\cts negthinspace {}
\explain
%This command
%produces a negative kern whose width is one-sixth of an em
%(\xref{dimdefs}),
%i.e., it causes \TeX\ to move its position left by that amount.
%It is useful for bringing together characters that are a little too
%far apart.
%\TeX\ won't break a line at a |\negthinspace|.\minrefs{line break}
čŻĽĺ˝äť¤äş§çä¸ä¸Şč´ç\minref{ç´§ć}ďźĺŽçĺŽ˝ĺşŚćŻ 1/6 emďź\xref{dimdefs}ďźďźäšĺ°ąćŻčŻ´ďźĺŽä˝żĺž \TeX\ ĺĺˇŚç§ťĺ¨ä¸ä¸Şç¸ĺşçčˇçŚťăĺ˝éčŚĺ°ä¸¤ä¸Şé´éç¨čżçĺ­çŹŚé&nbsp;čżä¸äşćśäžżéĺ¸¸ćç¨ă\TeX\ ä¸äźĺ¨ |\negthinspace| ĺ¤ć­čĄă\minrefs{line break}

\example
The horror, the horror\negthinspace, the horror of it all!!
|
\produces
The horror, the horror\negthinspace, the horror of it all!
\endexample
\enddesc

\begindesc
\cts enspace {}
\explain
%This command produces a \minref{kern} whose width is one ^{en}
%(half of an em, see \xrefpg{dimdefs}).
%\TeX\ won't break a line
%at an |\enspace| unless it's followed by glue.
%In a bulleted list, the bullets are usually separated from the following
%text by an |\enspace|.
čŻĽĺ˝äť¤äş§çä¸ä¸ŞĺŽ˝ĺşŚä¸ş 1 ^{en} ç\minref{ç´§ć}ďź1 em çä¸ĺďźĺč§ \xrefpg{dimdefs}ďźă\TeX\ ä¸äźĺ¨ |\enspace| ĺ¤ć­čĄďźé¤éç´§ćĽĺśĺçćŻç˛čżăĺ¨çŹŚĺˇĺčĄ¨ä¸­ďźçŹŚĺˇä¸ĺśĺçćĺ­éĺ¸¸çą |\enspace| ćĽĺéă

\example
ĺźç 1.\enspace čżéćä¸ĺŞç˝ĺă
|
\produces
%Lemma 1.\enspace There exists a white rabbit.
ĺźç 1.\enspace čżéćä¸ĺŞç˝ĺă
\endexample
% the enspace here follows the \proclaim convention (Knuth p. 355).
\enddesc

\begindesc
\easy\cts enskip {}
\cts quad {}
\cts qquad {}
\explain
^^{en}
%Each of these commands
%produces a glob of horizontal \minref{glue}
%that can neither stretch nor shrink.
%\TeX\ can break a line \minrefs{line break} at such glue.
%The width of these glues (which are relative to the current font)
%are as follows for |cmr10|, the default \plainTeX\ font:
čżéçćŻä¸Şĺ˝äť¤é˝äş§çä¸ä¸Şć˘ä¸č˝äź¸ĺąäšä¸č˝ćśçźŠçć°´ĺšł\minref{ç˛čż}ă\TeX\ ä¸č˝ĺ¨čżäşç˛čżĺ¤ć­čĄăĺŻšäş \plainTeX\ çéťčŽ¤ĺ­ä˝ |cmr10| ćĽčŻ´ďźčżäşç˛čżçĺŽ˝ĺşŚďźä¸ĺ˝ĺĺ­ä˝ćĺłďźĺŚä¸ďź
\medskip

\def\distance#1{\hbox{\strut $\rightarrow$\vrule\hskip #1\vrule$\leftarrow$}}

%{\def\l#1{\hfil$#1$\thinspace em}
%\tabskip 3pc \halign{#&amp;#&amp;\hfil#\hfil\cr
%{\it Command}&amp;{\it Space}&amp;{\it Illustration}\cr
%\noalign{\vskip 4pt}
%|\enskip|&amp;\l{\frac 1/2}&amp;\distance{.5em}\cr
%|\quad|&amp;\l1&amp;\distance{1em}\cr
%|\qquad|&amp;\l2&amp;\distance{2em}\cr
%}}
%\example
%en\enskip skip; quad\quad skip; qquad\qquad skip
%|
%\produces
%en\enskip skip; quad\quad skip; qquad\qquad skip
%\endexample
%\eix^^{horizontal space}
%\enddesc
{\def\l#1{\hfil$#1$\thinspace em}
\tabskip 3pc \halign{#&amp;#&amp;\hfil#\hfil\cr
{\it ĺ˝äť¤}&amp;{\it é´čˇ}&amp;{\it ĺžç¤ş}\cr
\noalign{\vskip 4pt}
|\enskip|&amp;\l{\frac 1/2}&amp;\distance{.5em}\cr
|\quad|&amp;\l1&amp;\distance{1em}\cr
|\qquad|&amp;\l2&amp;\distance{2em}\cr
}}
\example
en\enskip skip; quad\quad skip; qquad\qquad skip
|
\produces
en\enskip skip; quad\quad skip; qquad\qquad skip
\endexample
\eix^^{ć°´ĺšłé´é}
\enddesc

%==========================================================================
%\subsection {Fixed-length vertical space}
\subsection {ĺşĺŽéżĺşŚçŤç´é´é}

%\begindesc
%\bix^^{vertical space}
%\easy\cts smallskip {}
%\cts medskip {}
%\cts bigskip {}
%\explain
%These commands produce successively larger
%amounts of vertical space:
\begindesc
\bix^^{çŤç´é´é}
\easy\cts smallskip {}
\cts medskip {}
\cts bigskip {}
\explain
čżäşĺ˝äť¤ĺŻäťĽäş§çčżçť­čžĺ¤§ççŤç´é´éďź
\display{{\def\bar{\kern 2pt\hrule width 5pc}
\def\lbl#1{\hbox to 5pc{\hfil #1skip\hfil}}
\leavevmode
\vtop{\lbl{small}\bar\smallskip\bar}\quad
\vtop{\lbl{med}\bar\medskip\bar}\quad\vtop{\lbl{big}\bar\bigskip\bar}}}
\noindent
%|\smallskip| skips by $3$ points and can stretch or
%shrink by $1$ point.  |\med!-skip| is equivalent to two |\smallskip|s
%and |\bigskip| is equivalent to two |\medskip|s.
|\smallskip| äş§ç $3$ çšççŤç´é´éďźĺšśĺŻäťĽäź¸ĺąććśçźŠ 1 çšă
|\med!-skip| ç¸ĺ˝äşä¸¤ä¸Ş |\smallskip|ďźč |\bigskip| ç¸ĺ˝äşä¸¤ä¸Ş |\medskip|ă

%These commands end a paragraph since they are inherently vertical.
%The skips that they produce
%are in addition to the normal interparagraph skip.
çąäşčżäşĺ˝äť¤ĺˇćĺşćççŤç´çšć§ďźĺ&nbsp;ć­¤ĺŽäťŹçĺşç°ĺŽŁĺä¸ä¸ŞćŽľč˝ççťćăçąć­¤äş§ççé´čˇéčŚĺĺ&nbsp;ä¸ć­Łĺ¸¸çćŽľč˝é´čˇă
\example
Hop \smallskip skip \medskip and \bigskip jump.
|
\produces
Hop \smallskip skip \medskip and \bigskip jump.
\endexample
\enddesc

\begindesc
\cts smallskipamount {\param{glue}}
\cts medskipamount {\param{glue}}
\cts bigskipamount {\param{glue}}
\explain
%These parameters specify the amounts of glue produced by
%the |\small!-skip|, |\med!-skip|, and |\big!-skip| commands.
%By changing these parameters you change the effect of the commands.
%The default values (for \plainTeX)
%correspond to a quarter of a linespace, half a linespace,
%and a full linespace.
%We recommend that you maintain this ratio by changing
%these values whenever
%you change |\baselineskip| (\xref\baselineskip).
%^^|\baselineskip//and {\tt\\smallskipamount}, etc.|
%\eix^^{vertical space}
čżäşĺć°ç¨äşçĄŽĺŽçą |\small!-skip|ă|\med!-skip| ĺ |\big!-skip| ĺ˝äť¤äş§ççç˛čżçéă
éčżć´ćščżäşĺć°ďźä˝&nbsp;ĺŻäťĽćšĺĺ˝äť¤çććăďźĺŻšäş \plainTeX ďźĺŽäťŹç¸ĺşçéťčŽ¤ĺźćŻ 1/4 ă1/2 äťĽĺ 1 čĄčˇă
ćäťŹĺťşčŽŽä˝&nbsp;äżćčżä¸ŞćŻäžďźć&nbsp;čŽşä˝ćśďźä˝&nbsp;ĺŻäťĽéčżäżŽćš |\baselineskip|ďź\xref\baselineskip ďźćĽäżŽćšĺć°ĺźă
^^|\baselineskip//ĺ {\tt\\smallskipamount} ç­|
\eix^^{çŤç´é´é}

\enddesc

%==========================================================================
%\subsection {Variable-size space}
\subsection {ĺŻĺĺ°şĺŻ¸é´é}

%\begindesc
%\easy\cts hskip {\&lt;dimen$_1$&gt; {\bt plus} \&lt;dimen$_2$&gt; {\bt minus} \&lt;dimen$_3$&gt;}
%\cts vskip {\&lt;dimen$_1$&gt; {\bt plus} \&lt;dimen$_2$&gt; {\bt minus} \&lt;dimen$_3$&gt;}
%^^{vertical skip}^^{vertical glue}
%^^{horizontal skip}^^{horizontal glue}
%\bix^^{horizontal space}
%\bix^^{vertical space}
%\explain
%These commands produce horizontal and vertical glue respectively.
%In the simplest and most common case when only \&lt;dimen$_1$&gt; is present,
%|\hskip| skips to the right by \&lt;dimen$_1$&gt;
%and |\vskip| skips down the page by \&lt;dimen$_1$&gt;.
%More generally, these commands
%produce \minref{glue} whose natural size is
%\&lt;dimen$_1$&gt;, whose stretch is \&lt;dimen$_2$&gt;, and whose shrink is \&lt;dimen$_3$&gt;.
%Either the |plus| \&lt;dimen$_2$&gt;, the |minus |\&lt;dimen$_3$&gt;,
%or both can be omitted.
%If both are present, the |plus| must come before the |minus|.
%An omitted value
%is taken to be zero. Any of the \&lt;dimen&gt;s can be negative.
\begindesc
\easy\cts hskip {\&lt;dimen$_1$&gt; {\bt plus} \&lt;dimen$_2$&gt; {\bt minus} \&lt;dimen$_3$&gt;}
\cts vskip {\&lt;dimen$_1$&gt; {\bt plus} \&lt;dimen$_2$&gt; {\bt minus} \&lt;dimen$_3$&gt;}
^^{çŤç´é´čˇ}^^{çŤç´ç˛čż}
^^{ć°´ĺšłé´čˇ}^^{ć°´ĺšłç˛čż}
\bix^^{ć°´ĺšłé´é}
\bix^^{çŤç´é´é}
\explain
čżäşĺ˝äť¤ĺŻäťĽĺĺŤäş§çć°´ĺšłçĺçŤç´çç˛čżă
ĺ¨ćçŽĺäťĽĺćĺ¸¸č§çćĺľä¸ďźĺłĺ˝ĺŞć \&lt;dimen$_1$&gt; ĺ­ĺ¨ćśďź
|\hskip| ĺĺłç§ťĺ¨ \&lt;dimen$_1$&gt;ďźč |\vskip| ĺéĄľé˘ä¸ćšç§ťĺ¨ \&lt;dimen$_1$&gt;ă
ĺ¨ä¸čŹćĺľä¸ďźčżäşĺ˝äť¤äş§çä¸ä¸Ş\minref{ç˛čż}ďźĺśčŞçśĺ°şĺŻ¸ä¸ş \&lt;dimen$_1$&gt;ďź
ĺŻäź¸éżéä¸ş \&lt;dimen$_2$&gt;ďźĺŻćśçźŠéä¸ş \&lt;dimen$_3$&gt;ă
ĺ˝äť¤ä¸­ç |plus| \&lt;dimen$_2$&gt; ć |minus |\&lt;dimen$_3$&gt;ďźćä¸¤čé˝ĺŻäťĽççĽă
ĺŚćä¸¤čé˝éčŚďźĺ |plus| ĺżéĄťĺşç°ĺ¨ |minus| äšĺă
č˘ŤççĽçĺéĺĺźä¸şéśăäťťä˝ \&lt;dimen&gt; é˝ĺŻäťĽĺč´ĺźă

%You can use |\hskip| in math mode, but you can't use |mu| units
%\seeconcept{mathematical unit}
%for any of the dimensions.  If you want |mu| units, use |\mskip|
%(\xref\mskip) instead.
ĺ¨ć°ĺ­Ść¨Ąĺźä¸ďźä˝&nbsp;ĺŻäťĽä˝żç¨ |\hskip|ďź
ä˝ä¸č˝ä˝żç¨ |mu|\seeconcept{ć°ĺ­Śĺä˝}ä˝ä¸şäťťä˝ĺ°şĺŻ¸çĺä˝ă
ĺŚćä˝&nbsp;ĺ¸ćä˝żç¨ |mu| ä˝ä¸şĺä˝ďźĺŻäťĽä˝żç¨ |\mskip|ďź\xref\mskip ďźäťŁćżäšă

\example
\hbox to 2in{one\hskip 0pt plus .5in two}
|
\produces
\hbox to 2in{one\hskip 0pt plus 2in two}

\doruler{\8\8}2{in}
\nextexample
\hbox to 2in{Help me!! I can't fit
{\hskip 0pt minus 2in} inside this box!!}
|
\produces
\hbox to 2in{Help me! I can't fit
{\hskip 0pt minus 2in} inside this box!}

\doruler{\8\8}2{in}
\nextexample
\vbox to 4pc{\offinterlineskip% äťä¸şćžç¤ş \vskip çććă
   \hbox{ä¸}\vskip 0pc plus 1pc \hbox{äş}
      \vskip .5pc \hbox{ä¸}}
|
\produces
\smallskip
\vbox to 4pc{\offinterlineskip% Just show effects of \vskip.
%  \hbox{one}\vskip 0pc plus 1pc \hbox{two}
%     \vskip .5pc \hbox{three}}
   \hbox{ä¸}\vskip 0pc plus 1pc \hbox{äş}
      \vskip .5pc \hbox{ä¸}}
\endexample
\enddesc

\begindesc
\cts hglue {\&lt;glue&gt;}
\cts vglue {\&lt;glue&gt;}
^^{çŤç´ç˛čż}
^^{ć°´ĺšłç˛čż}
\explain
%The |\hglue| command produces horizontal \minref{glue} that won't disappear at
%a line break; the |\vglue| command
%produces vertical \minref{glue} that won't disappear at a page break.
%In other respects these commands are just like |\hskip| and |\vskip|.
%You can use |\vglue| to produce blank space at the top of a page,
%e.g., above a title on the first page of a document, but
%^|\topglue| (next) is usually better for this purpose.
|\hglue| ĺ˝äť¤çćć°´ĺšłç\minref{ç˛čż}ďźĺŽä¸äźĺ¨ć­čĄĺ¤ćśĺ¤ąďź|\vglue| ĺ˝äť¤çćçŤç´ç\minref{ç˛čż}ďźĺŽä¸äźĺ¨ĺéĄľĺ¤ćśĺ¤ąăé¤ć­¤äťĽĺ¤ďźčżäşĺ˝äť¤ä¸ |\hskip| ĺ |\vskip| ç¸äźźăä˝&nbsp;ĺŻäťĽä˝żç¨ |\vglue| ĺ¨ććĄŁçŹŹä¸éĄľçć&nbsp;é˘ä¸é¨ç­éĄľé˘éĄśé¨äş§ççŠşç˝é´éďźä˝ĺ°ąć­¤çŽçčč¨ďźéĺç ^|\topglue| éĺ¸¸ćŻć´ĺĽ˝çéćŠă
\enddesc

\begindesc
\cts topglue {\&lt;glue&gt;}
\explain
\margin{Command added; recent addition to \TeX}
%This command\footnote{|\topglue| was added to \TeX\ in version 3.0,
%later than the other enhancements introduced by ^{\newTeX}
%(\xref{newtex}).  It is first described in the \emph{eighteenth\/}
%edition of \texbook.} causes the space from the top of the page to the
%top of the first box on the page to be \&lt;glue&gt; precisely.
%The top of the page is considered to be at the baseline of an
%imaginary line of text just above the top line of the page.
%More precisely, it's a distance |\topskip| above the origin as given by
%|\hoffset| and |\voffset|.
\margin{ĺ&nbsp;ĺĽçĺ˝äť¤ďźć°čżĺ&nbsp;ĺĽĺ° \TeX}
čŻĽĺ˝äť¤
\footnote{|\topglue| ćŻĺ¨ \TeX\ 3.0 ä¸­ĺźĺĽçďź
ćŻĺśĺŽçą^{\newTeX}ďź\xref{newtex}ďźĺźĺĽçĺ˘ĺźşçšć§ç¨ćă
ĺ¨ \texbook ç \emph{18th\/} çä¸­çŹŹä¸ćŹĄĺžĺ°ćčż°ă}
ĺŻäťĽç˛žçĄŽĺ°äş§çäťéĄľé˘éĄśé¨čłčŻĽéĄľä¸çŹŹä¸ä¸Şçĺ­éĄśé¨çé´éă
ĺŻäťĽčŽ¤ä¸şéĄľé˘éĄśé¨ä˝äşéĄľé˘çŹŹä¸čĄäšä¸çä¸čĄć&nbsp;ĺ˝˘ćĺ­çĺşçşżĺ¤ă
ć´ĺ&nbsp;ĺçĄŽĺ°ďźĺŽĺ¨ |\hoffset| ĺ |\voffset| çĄŽĺŽçĺçšäšä¸ďźä¸é´čˇç­äş |\topskip|ă

%This command is useful because \TeX\ ordinarily adjusts the glue
%produced by |\topskip| in a complex way.  By using |\topglue| you can
%control the position of the first box on the page without worrying about
%those adjustments.
çąäş \TeX\ éĺ¸¸äťĽéĺ¸¸ĺ¤ćçćšĺźč°ć´çą |\topskip| äş§ççç˛čżďźćäťĽčżä¸Şĺ˝äť¤ćŻéĺ¸¸ćç¨çă
éčżä˝żç¨ |\topglue|ďźä˝&nbsp;č˝ĺ¤ć§ĺśéĄľé˘ä¸çŹŹä¸ä¸Şçĺ­çä˝ç˝Žďźčä¸ĺżćĺżéŁäşĺ¤ćçč°ć´ă

\enddesc

\begindesc
\cts kern {\&lt;dimen&gt;}
\explain
%The effect of this command depends on the mode that \TeX\ is in when
%it encounters it:
čŻĽĺ˝äť¤äş§ççććĺĺłäş \TeX\ éĺ°ĺŽćśćĺ¤çć¨Ąĺźďź
\ulist

%\li In a horizontal mode, \TeX\ moves its position to the right (for a positive
%kern) or to the left (for a negative kern).
\li ĺ¨ć°´ĺšłć¨Ąĺźä¸ďź\TeX\ ĺĺłďźć­Łçç´§ćďźćĺĺˇŚďźč´çç´§ćďźç§ťĺ¨ă

%\li In a vertical mode, \TeX\ moves its position down the page (for a positive
%kern) or up the page (for a negative kern).
\li ĺ¨çŤç´ć¨Ąĺźä¸ďź\TeX\ ĺéĄľé˘ä¸ćšďźć­Łçç´§ćďźćéĄľé˘ä¸ćšďźč´çç´§ćďźç§ťĺ¨ă

\endulist
\noindent
%Thus a positive kern produces empty space while a negative kern
%causes \TeX\ to back up over something that it's already produced.
%This notion of a kern ^^{kerns}
%is different from the notion of a kern in some computerized
%typesetting systems---in \TeX, positive kerns push two letters \emph{apart}
%instead of bringing them closer together.
ĺ&nbsp;ć­¤ďźć­Łçç´§ćäş§ççŠşç˝çé´éďźčč´çç´§ćä˝żĺž \TeX\ ĺéĺ°ĺˇ˛çťĺ­ĺ¨çä¸čĽżä¸ă
ĺ¨ \TeX ä¸­ďźć­Łçç´§ćĺ°ä¸¤ä¸Şĺ­ćŻ\emph{ĺĺź}ďźčä¸ćŻä˝żĺŽäťŹć´čżä¸äşă
^{ç´§ć}çčżä¸čŽžčŽĄä¸ä¸äşčŽĄçŽĺćççłťçťćŻä¸ĺçă

%A kern is similar to
%\minref{glue}, except that (a)~a kern can neither stretch nor shrink,
%and (b)~\TeX\ will only break a line or a page at a kern if the kern
%is followed by glue and is not part of a math formula.
%If \TeX\ finds a kern at the
%end of a line or a page, it discards the kern.
%If you want to get the effect of a kern that never disappears,
%use ^|\hglue| or ^|\vglue|.
ç´§ćä¸\minref{ç˛čż}ç¸äźźďźä¸ĺçćŻ (a)~ç´§ćä¸č˝č˘Ťäź¸ĺąććśçźŠďź
(b)~ĺŚćç´§ćĺç´§ćĽç˛čżďźĺšśä¸ä¸ćŻć°ĺ­ŚĺŹĺźçä¸é¨ĺćśďź\TeX\ ä¸č˝ĺ¨ç´§ćĺ¤ć­čĄćĺéĄľă
ĺŚć \TeX\ ĺç°ç´§ćä˝äşä¸čĄćä¸éĄľççťĺ°žďźčŻĽç´§ćĺ°äźč˘Ťĺż˝çĽă
ĺŚćä˝&nbsp;ĺ¸ćĺžĺ°ä¸äźćśĺ¤ąçç´§ćçććďźä˝żç¨ ^|\hglue| ć ^|\vglue|ă

%You can use |\kern| in math mode, but you can't use |mu| units
%\seeconcept{mathematical unit}
%for \&lt;dimen&gt;.  If you want |mu| units, use |\mkern|
%(\xref\mkern) instead.
%^^{line breaks//kerns at}
%^^{page breaks//kerns at}
ä˝&nbsp;ĺŻäťĽĺ¨ć°ĺ­Ść¨Ąĺźä¸­ä˝żç¨ |\kern|ďźä˝ä˝&nbsp;ä¸č˝ä˝żç¨ |mu| ä˝ä¸ş \&lt;dimen&gt; çĺä˝\seeconcept{ć°ĺ­Śĺä˝}ă
ĺŚćä˝&nbsp;ĺ¸ćä˝żç¨ |mu| ä˝ä¸şĺä˝ďźĺŻäťĽä˝żç¨ |\mkern| ďź\xref\mkern ďźäťŁćżäšă
^^{ć­čĄ//ć­čĄĺ¤çç´§ć}
^^{ĺéĄľ//ĺéĄľĺ¤çç´§ć}

\example
\centerline{$\Downarrow$}\kern 3pt % çŤç´çç´§ć
\centerline{$\Longrightarrow$\kern 6pt % ć°´ĺšłçç´§ć
   {\bf çććçč­Śç¤şďźďź}\kern 6pt % ĺŚä¸ć°´ĺšłçç´§ć
   $\Longleftarrow$}
\kern 3pt % ĺŚä¸çŤç´çç´§ć
\centerline{$\Uparrow$}
|
\produces
\centerline{$\Downarrow$}\kern 3pt % a vertical kern
\centerline{$\Longrightarrow$\kern 6pt % a horizontal kern
%  {\bf Heed my warning!}\kern 6pt % another horizontal kern
   {\bf çććçč­Śç¤şďź}\kern 6pt % another horizontal kern
   $\Longleftarrow$}
\kern 3pt % another vertical kern
\centerline{$\Uparrow$}
\endexample
\enddesc

%\begindesc
%\makecolumns 4/2:
%\cts hfil {}
%\cts hfill {}
%\cts vfil {}
%\cts vfill {}
%\explain
%\bix^^{glue//infinitely stretchable}
%These commands produce infinitely stretchable horizontal
%and vertical glue that
%overwhelms any finite stretch that may be present.
%|\hfil| and |\hfill| produce horizontal glue, while
%|\vfil| and |\vfill| produce vertical glue.
\begindesc
\makecolumns 4/2:
\cts hfil {}
\cts hfill {}
\cts vfil {}
\cts vfill {}
\explain
\bix^^{ç˛čż//ĺŻć&nbsp;éäź¸ĺąçç˛čż}
čżäşĺ˝äť¤äş§çĺŻć&nbsp;éäź¸ĺąçć°´ĺšłćçŤç´çç˛čżďźĺŽäťŹĺ°ĺäťŁäťťä˝ĺ­ĺ¨çćéäź¸ĺąă|\hfil| ĺ |\hfill| äş§çć°´ĺšłçç˛čżďźč |\vfil| ĺ |\vfill| äş§ççŤç´çç˛čżă

%|\hfill| is infinitely larger than |\hfil|.
%If both |\hfill| and |\hfil| appear in the same \minref{box},
%the |\hfill| will consume all the available extra space
%and the |\hfil| will be effectively ignored.
%|\hfill| can in turn be overwhelmed by |\hskip 0pt plus 1filll|.
%The glue produced by
%|\hfil| and |\hfill| never shrinks.
%|\hfill| ć&nbsp;éĺ°ĺ¤§äş |\hfil|ăĺŚć |\hfill| ĺ |\hfil|  ĺşç°ĺ¨ä¸ĺä¸ä¸Ş\minref{çĺ­}éďź|\hfill| ĺ°ĺ&nbsp;ćŽććĺŻäťĽčˇĺžçé˘ĺ¤é´éďźč |\hfil| çćĺşĺ°č˘Ťĺż˝çĽăč |\hfill| ĺŻäťĽč˘Ť |\hskip 0pt plus 1filll| ĺäťŁăçą |\hfil| ĺ |\hfill| äş§ççç˛čżä¸č˝č˘ŤĺçźŠă

%The behavior of |\vfil| and |\vfill| is analogous.
|\vfil| ĺ |\vfill| ćççąťäźźçčĄä¸şă

\example
\hbox to 2in{ĺˇŚ\hfil ä¸­ \hfil ĺł}
|
\produces
%\hbox to 2in{Left\hfil Middle \hfil Right}
\hbox to 2in{ĺˇŚ\hfil ä¸­ \hfil ĺł}

\doruler{\8\8}2{in}
\nextexample
\hbox to 2in{ĺˇŚ\hfil ä¸­ \hfill ĺł}
|
\produces
%\hbox to 2in{Left\hfil Middle \hfill Right}
\hbox to 2in{ĺˇŚ\hfil ä¸­ \hfill ĺł}

\doruler{\8\8}2{in}
\nextexample
\leftline{%
\vbox to 4pc{%
   \hbox{ä¸}\vfil\hbox{ä¸­}\vfil \hbox{ä¸}}\quad
\vbox to 4pc{%
   \hbox{ä¸}\vfil\hbox{ä¸­}\vfill\hbox{ä¸}}}
|
\produces
\smallskip
\leftline{%
\vbox to 4pc{%
   %\hbox{Top}\vfil\hbox{Middle}\vfil \hbox{Bottom}}\quad
   \hbox{ä¸}\vfil\hbox{ä¸­}\vfil \hbox{ä¸}}\quad
\vbox to 4pc{%
   %\hbox{Top}\vfil\hbox{Middle}\vfill\hbox{Bottom}}}
   \hbox{ä¸}\vfil\hbox{ä¸­}\vfill\hbox{ä¸}}}
\endexample

%\eix^^{glue//infinitely stretchable}
%\enddesc
\eix^^{ç˛čż//ĺŻć&nbsp;éäź¸ĺąçç˛čż}
\enddesc

\begindesc
\cts hss {}
\cts vss {}
\explain
%These commands produce horizontal and vertical glue
%that is both infinitely stretchable and
%infinitely shrinkable. The glue can shrink
%to a negative distance, producing the effect of backspacing along a line
%(for |\hss|) or moving back up a page (for |\vss|).
čżäşĺ˝äť¤äş§çć°´ĺšłĺçŤç´çĺŻć&nbsp;éäź¸ĺąĺćśçźŠçç˛čżă
ç˛čżĺŻäťĽćśçźŠčłč´çčˇçŚťďźäş§ççćććŻ%
ďźĺŻšäş |\hss| čč¨ďźć˛żä¸čĄĺĺˇŚç§ťĺ¨ćďźĺŻšäş |\vss| čč¨ďźĺéĄľé˘éĄśé¨ç§ťĺ¨ă

\example
\line{ć­ŁćććŹ\hfil\hbox to 0pt{éĄľčžšçŠşç˝\hss}}
% `éĄľčžšçŠşç˝\hss' ćśçźŠĺ°ĺŽ˝ĺşŚä¸şéśçć°´ĺšłçĺ­ä¸­ă
|
\produces
%\line{text\hfil\hbox to 0pt{margin\hss}}
\line{ć­ŁćććŹ\hfil\hbox to 0pt{éĄľčžšçŠşç˝\hss}}
\nextexample
\vbox to 1pc{\hrule width 6pc % Top of box.
   \hbox{1} \vskip 1pc\hbox to 2pc{\hfil 2}
   % \vss ćśé¤äşçą \vskip äş§ççé˘ĺ¤é´čˇă
   \vss \hbox to 3pc{\hfil 3}
   \hrule width 6pc}% çĺ­çĺşé¨
|
\produces
\medskip
\vbox to 1pc{\hrule width 6pc % top of box
   \hbox{1} \vskip 1pc\hbox to 2pc{\hfil 2}
   \vss \hbox to 3pc{\hfil 3}
   \hrule width 6pc}% bottom of box
\vskip 2.5pc
\endexample
\enddesc

%\begindesc
%\cts hfilneg {}
%\cts vfilneg {}
%\explain
%^^{glue//negative}
%These commands cancel the effect of a preceding |\hfil|
%or |\vfil|. While |\hfil| and |\vfil|
%produce infinitely stretchable positive \minref{glue}, |\hfilneg|
%and |\vfilneg| produce infinitely stretchable negative glue.
%(Thus, $n$ |\hfilneg|s cancel $n$ ^|\hfil|s, and similarly for
%|\vfilneg|.)
%The main use of |\hfilneg| and |\vfilneg|
%is to counteract the effect of an |\hfil| or |\vfil|
%inserted by a \minref{macro}.
\begindesc
\cts hfilneg {}
\cts vfilneg {}
\explain
^^{ç˛čż//č´ç˛čż}
čżäşĺ˝äť¤ĺŻäťĽćśé¤ĺśĺćĽç |\hfil| ć |\vfil| äş§ççććăĺ˝ |\hfil| ĺ |\vfil| äş§çć­Łçć&nbsp;éĺŻäź¸ĺąçç˛čżćśďź|\hfilneg| ĺ |\vfilneg| äş§çč´çć&nbsp;éĺŻäź¸ĺąç˛čżăďźĺ&nbsp;ć­¤ďź$n$ |\hfilneg| ćśé¤ $n$ ^|\hfil| äş§ççććďźĺŻšäş |\vfilneg| äšćŻç¸äźźçăďź|\hfilneg| ĺ |\vfilneg| ä¸ťčŚçç¨éćŻćľćśçą\minref{ĺŽ} ĺźĺĽç |\hfil| ć |\vfil| äş§ççććă

%|\hfilneg| and |\vfilneg| have
%the curious property that if they are the only infinitely stretchable
%glue in a box, they produce exactly the same effect as |\hfil|
%and |\vfil|.
ĺŚćĺŽäťŹćŻä¸ä¸Şçĺ­ä¸­äťćçĺŻć&nbsp;éäź¸ĺąçç˛čżďź|\hfilneg| ĺ |\vfilneg| ĺĺˇćĺĽĺźççšć§ďźĺłĺŽäťŹäş§çä¸ |\hfil| ĺ |\vfil| ĺŽĺ¨ä¸č´çććă

\example
\leftline{\hfil ä˝äşĺłçŤŻ\hfilneg}
% ćśé¤äş \leftline ĺ¨ĺśĺć°ĺłäž§äş§çç \hfilă
|
\produces
%\leftline{\hfil on the right \hfilneg}
\leftline{\hfil ä˝äşĺłçŤŻ \hfilneg}
% Cancel the \hfil that \leftline produces to the right
% of its argument.
%
\nextexample
\def\a{\hbox to 1pc{\hfil 2}\vfil}
\vbox to 4pc{\hbox{1} \vfil \a
   \vfilneg \hbox to 2pc{\hfil 3}}
|
\produces
\smallskip
\def\a{\hbox to 1pc{\hfil 2}\vfil}
\vbox to 4pc{\hbox{1} \vfil \a
   \vfilneg \hbox to 2pc{\hfil 3}}
\endexample\enddesc

%{\emergencystretch=2em
%\see |\hbadness| and |\vbadness| (\xref \vbadness),
%|\hfuzz| and |\vfuzz| (\xref \vfuzz),
%\conceptcit{leaders}.\par}
%\eix^^{space//producing}
%\eix^^{horizontal space}
%\eix^^{vertical space}
\see |\hbadness| ĺ |\vbadness|ďź\xref \vbadness ďźďź
|\hfuzz| ĺ |\vfuzz|ďź\xref \vfuzz ďźďźĺ\conceptcit{ćĺźçşż}ă
\eix^^{é´é//äş§çé´é}
\eix^^{ć°´ĺšłé´é}
\eix^^{çŤç´é´é}

%==========================================================================
%\section {Manipulating boxes}
\section {ćä˝çĺ­}

%==========================================================================
%\subsection {Constructing hboxes and vboxes}
\subsection {ćé&nbsp; hbox ĺ vbox}

%\begindesc
%\bix^^{box commands}
%^^{hboxes//constructing with \b\tt\\hbox\e}
\begindesc
\bix^^{çĺ­ĺ˝äť¤}
^^{ć°´ĺšłçĺ­//ç¨ \b\tt\\hbox\e ćé&nbsp;}
%
\cts hbox {\rqbraces{\&lt;horizontal mode material&gt;}}
\aux\cts hbox {{\bt to} \&lt;dimen&gt; \rqbraces{\&lt;horizontal mode material&gt;}}
\aux\cts hbox {{\bt spread} \&lt;dimen&gt; \rqbraces{\&lt;horizontal mode material&gt;}}
\explain
%This command produces an hbox
%(horizontal \minref{box}) containing \&lt;horizontal mode material&gt;.
%The braces around \&lt;horizontal mode material&gt; define a group.
%\TeX\ doesn't break the \&lt;horizontal mode material&gt; into lines,
%since it's in restricted horizontal mode when it's assembling the box.
%\TeX\ won't change the size of the box once it's been produced.
čŻĽĺ˝äť¤äş§çä¸ä¸Ş hboxďźć°´ĺšł\minref{çĺ­}ďźäťĽĺŽšçşł \&lt;horizontal mode material&gt;ă
\&lt;horizontal mode material&gt; ä¸¤äž§çĺ¤§ćŹĺˇĺŽäšä¸ä¸Şçźçťă
\TeX\ ä¸äźĺŻš \&lt;horizontal mode material&gt; ć­čĄďź
ĺ&nbsp;ä¸şĺ˝ĺśçťčŁçĺ­ćśĺŽĺ¤äşĺéć°´ĺšłć¨Ąĺźä¸ăä¸ćŚçĺ­çćĺďź\TeX\ ä¸äźćšĺĺśĺ¤§ĺ°ă

%|\hbox| is often useful when you want to keep some text all on one line.
%If your use of |\hbox| prevents \TeX\ from breaking lines in an acceptable
%way, \TeX\ will complain about an overfull hbox.
ĺ˝ä˝&nbsp;ĺ¸ćĺ°ä¸äşćĺ­ĺ¨é¨ćžĺ¨ä¸čĄä¸ćśďź|\hbox| ćŻćç¨çă
ĺŚćä˝&nbsp;ćç¨ç |\hbox| ä˝żĺž \TeX\ ä¸č˝äťĽä¸ç§ĺŻäťĽćĽĺçćšĺźć­čĄćśďź
\TeX\ äźçťĺş hbox čżćťĄçč­Śĺă

%The width of the hbox depends on the arguments to |\hbox|:
%\ulist\compact
%\li If you specify only \&lt;horizontal mode material&gt;,
%the hbox will have its natural \minref{width}.
%\li If you specify |to| \&lt;dimen&gt;, the width of the hbox will be \&lt;dimen&gt;.
%\li If you specify |spread| \&lt;dimen&gt;, the width of the hbox will be
%its natural width plus \&lt;dimen&gt;, i.e., the hbox will be spread out by
%\&lt;dimen&gt;.
%\endulist
hbox çĺŽ˝ĺşŚĺĺłäş |\hbox| çĺć°ďź
\ulist\compact
\li ĺŚćä˝&nbsp;ĺŞčŽžĺŽäş \&lt;horizontal mode material&gt;ďźhbox ĺ°ĺˇćĺć°ćŹčşŤç\minref{ĺŽ˝ĺşŚ}ă
\li ĺŚćä˝&nbsp;čŽžĺŽäş |to| \&lt;dimen&gt;ďźĺ hbox çĺŽ˝ĺşŚĺ°ćŻ \&lt;dimen&gt;ă
\li ĺŚćä˝&nbsp;čŽžĺŽäş |spread| \&lt;dimen&gt;ďźĺ hbox çĺŽ˝ĺşŚĺ°ćŻĺć°ćŹčşŤçĺŽ˝ĺşŚĺĺ&nbsp;ä¸ \&lt;dimen&gt;ďźäšĺ°ąćŻčŻ´ďźhbox ĺ°äź¸ĺą \&lt;dimen&gt;ă
\endulist

%The ^|\hfil| command (\xref\hfil) is useful for filling out an
%hbox with empty space when the material in the box isn't as wide as
%the width of the box.
ĺ˝çĺ­ä¸­ĺĺŽšçĺŽ˝ĺşŚć˛Ąćçĺ­ĺŽ˝ďźéčŚä˝żç¨çŠşç˝é´éćĽĺĄŤĺ hbox ćśďź^|\hfil| ĺ˝äť¤ďź\xref\hfil ďźćŻéĺ¸¸ćç¨çă
\example
\hbox{ugly suburban sprawl}
\hbox to 2in{ugly \hfil suburban \hfil sprawl}
\hbox spread 1in {ugly \hfil suburban \hfil sprawl}
% ĺ¨ä¸é˘ä¸¤čĄä¸­ďźĺŚćĺťć \hfilďźĺ°äźĺžĺ° `underfull hbox' č­Śĺă
|
\produces
\hbox{ugly suburban sprawl}
\hbox to 2in{ugly \hfil suburban \hfil sprawl}
\hbox spread 1in {ugly \hfil suburban \hfil sprawl}
% Without \hfil in the two preceding lines,
% you'd get `underfull hbox'es.

\doruler{\8\8\8}3{in}
\endexample
\enddesc

%\begindesc
%\cts vtop {\&lt;vertical mode material&gt;}
%\aux\cts vtop {{\bt to} \&lt;dimen&gt; \rqbraces{\&lt;vertical mode material&gt;}}
%\aux\cts vtop {{\bt spread} \&lt;dimen&gt; \rqbraces{\&lt;vertical mode material&gt;}}
%\cts vbox {\rqbraces{\&lt;vertical mode material&gt;}}
%\aux\cts vbox {{\bt to} \&lt;dimen&gt; \rqbraces{\&lt;vertical mode material&gt;}}
%\aux\cts vbox {{\bt spread} \&lt;dimen&gt; \rqbraces{\&lt;vertical mode material&gt;}}
%\explain
%^^{hbox//constructing with \b\tt\\hbox\e}
%These commands
%produce a \minref{vbox} (vertical \minref{box})
%containing \&lt;vertical mode material&gt;.
%The braces around \&lt;vertical mode material&gt; define a group.
%\TeX\ is in internal vertical mode when it's assembling the box.
%\TeX\ won't change the size of the box once it's been produced.
\begindesc
\cts vtop {\&lt;vertical mode material&gt;}
\aux\cts vtop {{\bt to} \&lt;dimen&gt; \rqbraces{\&lt;vertical mode material&gt;}}
\aux\cts vtop {{\bt spread} \&lt;dimen&gt; \rqbraces{\&lt;vertical mode material&gt;}}
\cts vbox {\rqbraces{\&lt;vertical mode material&gt;}}
\aux\cts vbox {{\bt to} \&lt;dimen&gt; \rqbraces{\&lt;vertical mode material&gt;}}
\aux\cts vbox {{\bt spread} \&lt;dimen&gt; \rqbraces{\&lt;vertical mode material&gt;}}
\explain
^^{ć°´ĺšłçĺ­//ç¨ \b\tt\\hbox\e ćé&nbsp;}
čżäşĺ˝äť¤äş§çä¸ä¸Ş \minref{vbox}ďźçŤç´\minref{çĺ­}ďźäťĽĺŽšçşł \&lt;vertical mode material&gt;ă
\&lt;vertical mode material&gt; ä¸¤äž§çĺ¤§ćŹĺˇĺŽäšä¸ä¸Şçźçťă
ĺ˝ \TeX\ çťčŁçĺ­ćśĺŽĺ¤äşĺé¨çŤç´ć¨Ąĺźä¸ăä¸ćŚçĺ­çćĺďź\TeX\ ä¸äźćšĺĺśĺ¤§ĺ°ă

%The difference between |\vtop| and |\vbox| lies in where \TeX\ puts
%the reference point of the constructed vbox.
%Ordinarily, the reference point gotten from |\vtop| tends to be at or near
%the top of the constructed vbox,
%while
%the reference point gotten from |\vbox| tends to be at or near
%the bottom of the constructed vbox.
%Thus a row of vboxes all constructed with |\vtop|
%will tend to have their tops nearly in a line,
%while a row of vboxes all constructed with |\vbox|
%will tend to have their bottoms nearly in a line.
|\vtop| ĺ |\vbox| äšé´çä¸ĺçšĺ¨äş \TeX\ ćžç˝Žĺˇ˛ććç vbox çĺşĺçšçä˝ç˝Žă
éĺ¸¸ćĺľä¸ďźçą |\vtop| čˇĺžçĺşĺçšä˝äşććĽčżäşĺˇ˛ććç vbox çéĄśé¨ďź
č |\vbox| čˇĺžçĺşĺçšä˝äşććĽčżäşĺˇ˛ććç vbox çĺşé¨ă
ĺ&nbsp;ć­¤ďźä¸čĄĺ¨é¨çą |\vtop| ććç vboxďźĺśéĄśé¨ĺ°äźčżäźźĺ¨ä¸ćĄçşżä¸ďź
ç¸ĺşĺ°ďźä¸čĄĺ¨é¨çą |\vbox| ććç vboxďźĺśĺşé¨ĺ°äźčżäźźĺ¨ä¸ćĄçşżä¸ă

%|\vtop| and |\vbox| are often useful
%when you want to keep some text together on a single page.
%(For this purpose, it usually doesn't matter which command you use.)
%If your use of these commands
%prevents \TeX\ from breaking pages in an acceptable
%way, \TeX\ will complain that it's found an overfull or underfull vbox while
%|\output| is active.
ĺ˝ä˝&nbsp;ĺ¸ćĺ°ä¸äşćĺ­ćžĺ¨ĺçŹçä¸éĄľä¸ćśďź|\vtop| ĺ |\vbox| ćŻćç¨çă%
ďźä¸şäşčżä¸ŞçŽçďźĺŽéĺ¸¸ä¸ĺ¨äšä˝&nbsp;ä˝żç¨çĺ˝äť¤ăďź%
ĺŚćä˝&nbsp;ä˝żç¨čżäşĺ˝äť¤ä˝żĺž \TeX\ ä¸č˝äťĽä¸ç§ĺŻäťĽćĽĺçćšĺźĺéĄľćśďź
\TeX\ äźĺ¨ |\output| ĺ¤äşć´ťĺ¨çćĺľä¸ďźçťĺş vbox čżćťĄćä¸čśłçč­Śĺă

%The height of a vbox depends on
%the arguments to |\vtop| or |\vbox|.
%For |\vbox|, \TeX\ determines the height as follows:
%\ulist\compact
%\li If you specify only \&lt;vertical mode material&gt;,
%the vbox will have its natural height.
%\li If you specify |to| \&lt;dimen&gt;,
%the height of the vbox will be \&lt;dimen&gt;.
%\li If you specify |spread| \&lt;dimen&gt;, the height of the vbox will be
%its natural height plus \&lt;dimen&gt;, i.e.,
%the height of the vbox will be stretched vertically by \&lt;dimen&gt;.
%\endulist
%\noindent
%For |\vtop|,
%\TeX\ constructs the box using its rules for |\vbox| and then
%apportions the vertical extent between the height and the depth as
%described below.
vbox çéŤĺşŚĺĺłäş |\vtop| ć |\vbox| çĺć°ăĺŻšäş |\vbox|ďź\TeX\ éç¨ĺŚä¸ćšćłçĄŽĺŽĺśéŤĺşŚďź
\ulist\compact
\li ĺŚćä˝&nbsp;ĺŞčŽžĺŽ \&lt;vertical mode material&gt;ďźvbox ĺ°ĺˇćĺć°ćŹčşŤçéŤĺşŚă
\li ĺŚćä˝&nbsp;čŽžĺŽ |to| \&lt;dimen&gt;ďźvbox çéŤĺşŚĺ°ćŻ \&lt;dimen&gt;ă
\li ĺŚćä˝&nbsp;čŽžĺŽäş |spread| \&lt;dimen&gt;ďźĺ vbox çéŤĺşŚĺ°ćŻĺć°ćŹčşŤçéŤĺşŚĺĺ&nbsp;ä¸ \&lt;dimen&gt;ďź
äšĺ°ąćŻčŻ´ďźvbox ĺ°ĺ¨çŤç´ćšĺä¸äź¸ĺą \&lt;dimen&gt;ă
\endulist
\noindent
ĺŻšäş |\vtop|ďź\TeX\ éç¨ |\vbox| ä¸ć&nbsp;ˇçč§ĺćĽćé&nbsp;çĺ­ďź
çśĺäťĽä¸é˘ćčż°çćšćłĺ¨éŤĺşŚĺćˇąĺşŚäšé´ĺéçŤç´ćšĺä¸çćŠĺąă

%Ordinarily, the width of a constructed vbox is the width of the widest
%item inside it.\footnote
%{More precisely, it's the distance from the reference point to the rightmost
%edge of the constructed vbox.  Therefore,
%if you move any of the items right using ^|\moveright| or
%^|\moveleft| (with a negative distance),
%the constructed vbox might be wider.}
%The rules for apportioning the vertical extent between the
%height and the depth are more complicated:
%\ulist
%\li For |\vtop|,
%the height is the height of its first item, if that item is a box or rule.
%Otherwise the height is zero. The depth is whatever vertical
%extent remains after the height is subtracted.
%\li For |\vbox|,
%the depth is the depth of its last item, if that item is a box or rule.
%Otherwise the depth is zero. The height is whatever vertical
%extent remains after the depth is subtracted.%
%\footnote{In fact, there's a further complication.
%Suppose that after the depth has been determined
%using the two rules just given, the depth turns out to be greater than
%^|\boxmaxdepth|.
%Then the depth is reduced to |\boxmaxdepth| and the height is adjusted
%accordingly.}
%\endulist
éĺ¸¸ďźćé&nbsp;ç vbox çĺŽ˝ĺşŚćŻĺśĺé¨ćĺŽ˝éĄšçŽçĺŽ˝ĺşŚă
\footnote{ć´ĺçĄŽĺ°čŻ´ďźćŻäťĺşĺçščłćé&nbsp;ç vbox ćĺłäž§äšé´çčˇçŚťă
ĺ&nbsp;ć­¤ďźĺŚćä˝&nbsp;ä˝żç¨ ^|\moveright| ćďźč´ć°čˇçŚťçďź^|\moveleft| ĺĺłç§ťĺ¨äťťä˝éĄšçŽďź
éŁäšćé&nbsp;ç vbox ĺĺŻč˝ć´ĺŽ˝ă}
ĺ¨éŤĺşŚä¸ćˇąĺşŚé´ĺéçŤç´ćŠĺąçč§ĺć´ĺ&nbsp;ĺ¤ćďź
\ulist
\li ĺŻšäş |\vtop|ďźĺŚćçŹŹä¸ä¸ŞéĄšçŽćŻä¸ä¸Şçĺ­ćć&nbsp;çşżďźĺĺśéŤĺşŚćŻĺśçŹŹä¸ä¸ŞéĄšçŽçéŤĺşŚă
ĺŚĺďźĺśéŤĺşŚćŻéśăćˇąĺşŚćŻĺĺťéŤĺşŚĺççŤç´ćŠĺąă
\li ĺŻšäş |\vbox|ďźĺŚććĺä¸ä¸ŞéĄšçŽćŻä¸ä¸Şçĺ­ćć&nbsp;çşżďźĺĺśćˇąĺşŚćŻĺśćĺä¸ä¸ŞéĄšçŽçćˇąĺşŚă
ĺŚĺćľĺşŚćŻéśăéŤĺşŚćŻĺĺťćˇąĺşŚĺççŤç´ćŠĺąă
\footnote{ĺŽéä¸ďźč§ĺĺŻäťĽć´ĺ&nbsp;ĺ¤ćăĺĺŽĺ¨ćˇąĺşŚçĄŽĺŽĺďźä˝żç¨çťĺşçä¸¤ćĄč§ĺďź
ĺćˇąĺşŚĺ°äźĺ¤§äş ^|\boxmaxdepth|ă éĺďźćˇąĺşŚĺ°č˘ŤçźŠĺ°čł |\boxmaxdepth|ďźéŤĺşŚäšç¸ĺşĺ°č˘Ťč°ć´ă}
\endulist

%The |\vfil| command (\xref\vfil) is useful for filling out a vbox
%^^|\vfil//filling a vbox|
%with empty space when the material in the box isn't as tall as
%the vertical extent of the box.
ĺ˝çĺ­ä¸­ĺĺŽšçéŤĺşŚć˛Ąćçĺ­çŤç´äź¸ĺąéŤďź
éčŚä˝żç¨çŠşç˝é´éćĽĺĄŤĺ vbox ^^|\vfil//ĺĄŤĺçŤç´çĺ­|ćśďź
^|\vfil| ĺ˝äť¤ďź\xref\vfil ďźćŻéĺ¸¸ćç¨çă
\example
\hbox{\hsize = 10pc \raggedright\parindent = 1em
\vtop{ĺ¨čżä¸Şäžĺ­ä¸­ďźćäťŹĺ°çĺ°ĺŚä˝ä˝żç¨ vbox äş§çĺć&nbsp;çććă
ćŻä¸Ş vbox é˝ĺĺŤä¸¤ä¸ŞćŽľč˝ďźé¤äşčŽžç˝Žä¸şĺˇŚĺŻšé˝äťĽĺ¤ĺäžç§ \TeX
éĺ¸¸çč§ĺčżčĄćçă\par
čżĺŽéä¸ĺšśä¸ćŻčˇĺžçć­Łĺć&nbsp;çćĺĽ˝çćšćłďźĺ&nbsp;ä¸şä¸¤ć&nbsp;}
\hskip 2pc
\vtop{\noindent
ĺšśä¸ĺŻšç§°ďźčä¸ćäťŹć&nbsp;ćłčŞĺ¨éćŠçŹŹä¸ć&nbsp;ĺ¨ä˝ĺ¤ć­ĺźďź
çčłä¸č˝çĄŽĺŽçŹŹä¸ć&nbsp;çćĺä¸čĄă\par
çśčďźĺ°čĄććžĺ¨ vbox ä¸­ćŻä¸ä¸Şĺ°ććŹćžĺ¨éĄľé˘ä¸
ä˝&nbsp;ĺ¸ćçä˝ç˝Žä¸çćç¨çćĺˇ§ă
}}
|
\produces
\hbox{\hsize = 10pc \raggedright\parindent = 1em
%\vtop{In this example, we see how to use vboxes to
%produce the effect of double columns.  Each vbox
%contains two paragraphs, typeset according to \TeX's
%usual rules except that it's ragged right.\par
%This isn't really the best way to get true double
%columns because the columns}
%\hskip 2pc
%\vtop{\noindent
%aren't balanced and we haven't done anything to choose
%the column break automatically or even to fix up the
%last line of the first column.\par
%However, the technique of putting running text into a
%vbox is very useful for placing that text where you
%want it on the page.}}
\vtop{ĺ¨čżä¸Şäžĺ­ä¸­ďźćäťŹĺ°çĺ°ĺŚä˝ä˝żç¨ vbox äş§çĺć&nbsp;çććă
ćŻä¸Ş vbox é˝ĺĺŤä¸¤ä¸ŞćŽľč˝ďźé¤äşčŽžç˝Žä¸şĺˇŚĺŻšé˝äťĽĺ¤ĺäžç§ \TeX
éĺ¸¸çč§ĺčżčĄćçă\par
čżĺŽéä¸ĺšśä¸ćŻčˇĺžçć­Łĺć&nbsp;çćĺĽ˝çćšćłďźĺ&nbsp;ä¸şä¸¤ć&nbsp;}
\hskip 2pc
\vtop{\noindent
ĺšśä¸ĺŻšç§°ďźčä¸ćäťŹć&nbsp;ćłčŞĺ¨éćŠçŹŹä¸ć&nbsp;ĺ¨ä˝ĺ¤ć­ĺźďź
çčłä¸č˝çĄŽĺŽçŹŹä¸ć&nbsp;çćĺä¸čĄă\par
çśčďźĺ°čĄććžĺ¨ vbox ä¸­ćŻä¸ä¸Şĺ°ććŹćžĺ¨éĄľé˘ä¸
ä˝&nbsp;ĺ¸ćçä˝ç˝Žä¸çćç¨çćĺˇ§ă
}}
\nextexample
\hbox{\hsize = 1in \raggedright\parindent = 0pt
\vtop to .75in{\hrule čżä¸Şçĺ­çćˇąĺşŚćŻ .75ină \vfil\hrule}
\qquad
\vtop{\hrule čżä¸Şçĺ­ĺˇä˝ĺśćŹčşŤçćˇąĺşŚă \vfil\hrule}
\qquad
\vtop spread .2in{\hrule čżä¸Şçĺ­çćˇąĺşŚćŻĺśčŞčşŤçćˇąĺşŚĺ¤ .2ină\vfil\hrule}}
|
\produces
\hbox{\hsize = 1in \raggedright\parindent=0pt
%\vtop to .75in{\hrule This box is .75in deep. \vfil\hrule}
\vtop to .75in{\hrule čżä¸Şçĺ­çćˇąĺşŚćŻ .75ină \vfil\hrule}
\qquad
%\vtop{\hrule This box is at its natural depth. \vfil\hrule}
\vtop{\hrule čżä¸Şçĺ­ĺˇä˝ĺśćŹčşŤçćˇąĺşŚă \vfil\hrule}
\qquad
%\vtop spread .2in{\hrule This box is .2in deeper than
%                  its natural depth.\vfil\hrule}}
\vtop spread .2in{\hrule čżä¸Şçĺ­çćˇąĺşŚćŻĺśčŞčşŤçćˇąĺşŚĺ¤ .2ină\vfil\hrule}}
\nextexample
% ćžç¤ş \vbox ćŻĺŚä˝ĺşé¨ĺŻšé˝ďźčééĄśé¨ĺŻšé˝çă
\hbox{\hsize = 1in \raggedright
\vbox to .5in{\hrule čżä¸Şçĺ­çćˇąĺşŚćŻ .5ină\vfil\hrule}
\qquad
\vbox to .75in{\hrule čżä¸Şçĺ­çćˇąĺşŚćŻ .75ină\vfil\hrule}}
|
\produces
\hbox{\hsize = 1in \raggedright
%\vbox to .5in{\hrule This box is .5in deep.\vfil\hrule}
\vbox to .5in{\hrule čżä¸Şçĺ­çćˇąĺşŚćŻ .5ină\vfil\hrule}
\qquad
%\vbox to .75in{\hrule This box is .75in deep.\vfil\hrule}}
\vbox to .75in{\hrule čżä¸Şçĺ­çćˇąĺşŚćŻ .75ină\vfil\hrule}}
\vskip 16pt % to avoid running into the next command description
\endexample
\enddesc

\begindesc
%\margin{Two commands interchanged here.}
\margin{ĺŻäş¤ć˘çä¸¤ä¸Şĺ˝äť¤}
\cts boxmaxdepth {\param{dimen}}
\explain
%This parameter contains a dimension $D$.
%\TeX\ will not construct a box whose depth exceeds $D$.
%If you produce a box whose depth $d$ would exceed $D$,
%\TeX\ will transfer the
%excess depth to the height of the box, effectively moving the
%\minref{reference point} of the box down by $d-D$.
%If you set |\boxmaxdepth| to zero, \TeX\ will line up a row of vboxes
%so that their bottom boundaries all lie on the same horizontal line.
%\PlainTeX\ sets |\boxmaxdepth| to |\maxdimen| \ctsref{\maxdimen},
%so |\boxmaxdepth| won't affect your boxes unless you change it.
čżä¸Şĺć°ĺĺŤçćŻä¸ä¸Şĺ°şĺŻ¸ $D$ăĺŚćçĺ­çćˇąĺşŚčśčż $D$ďź\TeX\ ĺ°ä¸äźćé&nbsp;čżä¸Şçĺ­ă
ĺŚćä˝&nbsp;çćä¸ä¸Şçĺ­ďźĺśćˇąĺşŚ $d$ ĺ¤§äş $D$ďź\TeX\ ĺ°čśĺşçćˇąĺşŚäź&nbsp;éçťçĺ­çéŤĺşŚďź
ĺłéŤćĺ°ĺ°çĺ­ç\minref{ĺşĺçš}ĺä¸ç§ťĺ¨ $d-D$ăĺŚćä˝&nbsp;ĺ° |\boxmaxdepth| čŽžä¸şéśďź
\TeX\ äźĺ°çĺ­ĺä¸ćä¸ĺďźäťĽäžżĺŽäťŹçĺşçşżé˝ä˝äşĺä¸ä¸Şć°´ĺšłçşżä¸ă
\PlainTeX\ ĺ° |\boxmaxdepth| čŽžä¸ş |\maxdimen|\ctsref{\maxdimen}ďź
ĺ&nbsp;ć­¤ďź|\boxmaxdepth| ä¸äźĺ˝ąĺä˝&nbsp;ççĺ­ďźé¤éä˝&nbsp;ćććšĺ¨ĺŽă
\enddesc

\begindesc
\cts underbar {\&lt;argument&gt;}
\explain
%This command puts \&lt;argument&gt; into an \minref{hbox}
%and underlines it without regard to anything that protrudes below the
%\minref{baseline} of the box.
čżä¸Şĺ˝äť¤ĺ° \&lt;argument&gt; ćžĺĽĺ°ä¸ä¸Ş \minref{hbox}ďźĺšśĺ¨ĺśä¸ĺçşżďźčä¸ččäťťä˝çŞĺşĺ°çĺ­ç\minref{ĺşçşż}äťĽä¸çä¸čĽżă
\example
\underbar{ä¸şäťäšä¸ĺ­Śäš&nbsp; \TeX?}
|
\produces
%\underbar{ä¸şäťäšä¸ĺ­Śäš&nbsp; \TeX?}
\underbar{Why not learn \TeX?}
\endexample
\enddesc

\begindesc
\cts everyhbox {\param{token list}}
\cts everyvbox {\param{token list}}
\explain
%These parameters contain token lists that \TeX\ expands at the start of
%every \minref{hbox} or \minref{vbox} that it constructs.
%Any items resulting from the expansion then become
%the beginning of the list of items for the box.
%By default these token lists are empty.
čżäşĺć°ĺĺŤçćŻčŽ°ĺˇĺčĄ¨ă\TeX\ äźĺ¨ĺźĺ§ćé&nbsp;ćŻä¸Ş \minref{hbox} ć \minref{vbox} ćśĺŻšĺśčżčĄćŠĺąăćĽčŞäşćŠĺąçäťťä˝éĄšçŽéĺćä¸şçĺ­çéĄšçŽĺčĄ¨çĺźĺ§ăčżäşčŽ°ĺˇĺčĄ¨éťčŽ¤ćŻçŠşçă
\enddesc

%==========================================================================
%\subsection {Setting and retrieving the contents of boxes}
\subsection {čŽžç˝Žĺčˇĺçĺ­çĺĺŽš}

%\begindesc
%\bix^^{box registers}
%%
%\cts setbox {\&lt;register&gt;\thinspace{\bt =}\thinspace\&lt;box&gt;}
%\cts box {\&lt;register&gt;}
%\explain
%^^{assignments//of boxes}
%These commands respectively set and retrieve the contents
%of the box register
%whose number is \&lt;register&gt;.
%Note that you set a box register a little differently than
%you set the other kinds of registers: you use
%|\setbox|$\,n$~|=| rather than |\box|$\,n$~|=|.
\begindesc
\bix^^{çĺ­ĺŻĺ­ĺ¨}
%
\cts setbox {\&lt;register&gt;\thinspace{\bt =}\thinspace\&lt;box&gt;}
\cts box {\&lt;register&gt;}
\explain
^^{čľĺź//çťçĺ­čľĺź}
čżäşĺ˝äť¤ĺĺŤčŽžç˝Žĺčˇĺçźĺˇä¸ş \&lt;register&gt; ççĺ­ĺŻĺ­ĺ¨çĺĺŽšă
éčŚćł¨ćďźčŽžç˝Žçĺ­ĺŻĺ­ĺ¨ä¸čŽžç˝ŽĺśĺŽĺŻĺ­ĺ¨ćçťĺžŽçĺˇŽĺŤďź
ä˝&nbsp;ĺşčŻĽä˝żç¨ |\setbox|$\,n$~|=|ďźčä¸ćŻ |\box|$\,n$~|=|ă

%\emph{Retrieving the contents of a box register
%with these commands has the side effect of emptying it,
%so that the box register become void.}  If you don't want that to happen,
%you can use |\copy| (see below) to retrieve the contents.
%You should use |\box| in preference to |\copy|
%when you don't care about what's in a box register after you've used it,
%so as not to exhaust \TeX's memory by filling it with obsolete boxes.
\emph{ä˝żç¨čżäşĺ˝äť¤čˇĺçĺ­ĺŻĺ­ĺ¨ä¸­çĺĺŽšćśďźćć¸çŠşĺśĺĺŽšçĺŻä˝ç¨ďźćäťĽçĺ­ĺŻĺ­ĺ¨ĺ°ĺ¤ąćă}ĺŚćä˝&nbsp;ä¸ĺ¸ćčżäşĺçďźä˝&nbsp;ĺŻäťĽä˝żç¨ |\copy|ďźĺč§ĺé˘çĺĺŽšďźćĽčˇĺĺĺŽšăĺŚćä˝&nbsp;ä¸ĺ¨äšä˝&nbsp;ä˝żç¨äšĺççĺ­ĺŻĺ­ĺ¨ä¸­çĺĺŽšďźä˝&nbsp;ĺşčŻĽäźĺä˝żç¨ |\box| čä¸ćŻ |\copy|ďźčżć&nbsp;ˇĺŻäťĽä¸č´äşç¨ĺşĺźççĺ­ćĽćśč \TeX\ çĺĺ­ă

\example
\setbox0 = \hbox{čč}
\setbox1 = \vbox{\copy0\box0\box0}
\box1
|
\produces
%\setbox0 = \hbox{mushroom}
\setbox0 = \hbox{čč}
\setbox1 = \vbox{\copy0\box0\box0}
\box1
\endexample
\enddesc

%\begindesc
%\cts copy {\&lt;register&gt;}
%\explain
%^^{boxes//copying}%\minrefs{box}
%\minrefs{çĺ­}
%This command
%produces a copy of box register \&lt;register&gt;.
%This command is useful when you want to retrieve the contents of a box
%register but don't want to destroy the contents.
%(Retrieving the register contents with ^|\box| makes the register void.)
\begindesc
\cts copy {\&lt;register&gt;}
\explain
^^{çĺ­//ĺ¤ĺśçĺ­}%\minrefs{box}
\minrefs{çĺ­}
čżä¸Şĺ˝äť¤ĺŻäťĽäş§ççĺ­ĺŻĺ­ĺ¨ \&lt;register&gt; çä¸ä¸Şćˇč´ăĺ˝ä˝&nbsp;ĺ¸ćčˇĺä¸ä¸Şçĺ­çĺĺŽšďź
ä˝ĺä¸ĺ¸ćç&nbsp;´ĺĺśä¸­çĺĺŽšćśćŻćç¨çăďźä˝żç¨ ^|\box| čˇĺĺŻĺĺ¨ĺĺŽšäźä˝żĺŻĺ­ĺ¨ĺ¤ąćăďź
\example
\setbox0 = \hbox{çžĺĽ˝}
çĽä˝&nbsp;ćĽć \copy0 \box0 \box0 çä¸ĺ¤Šďź
|
\produces
%\setbox0 = \hbox{good }
%Have a \copy0 \box0 \box0 day!
\setbox0 = \hbox{çžĺĽ˝}
çĽä˝&nbsp;ćĽć \copy0 \box0 \box0 çä¸ĺ¤Šďź
\endexample
\enddesc

%\begindesc
%\cts unhbox {\&lt;register&gt;}
%\cts unvbox {\&lt;register&gt;}
%^^{boxes//extracting contents of}
%\explain
%These commands produce the list contained in box register \&lt;register&gt; and make
%that box register void.
%|\unhbox| applies to box registers containing
%hboxes and |\unvbox| applies to box registers containing vboxes.
%You should use these commands in preference to |\unhcopy| and |\unvcopy|
%(see below)
%when you don't care about what's in the box register after you've used it,
%so as not to exhaust \TeX's memory by filling it with obsolete boxes.
\begindesc
\cts unhbox {\&lt;register&gt;}
\cts unvbox {\&lt;register&gt;}
^^{çĺ­//ćĺçĺ­çĺĺŽš}
\explain
čżäşĺ˝äť¤ĺŻäťĽçťĺşçĺ­ĺŻĺ­ĺ¨ \&lt;register&gt; ĺŽšçşłçĺčĄ¨ďźĺšśä¸ä˝żçĺ­ĺŻĺ­ĺ¨ĺ¤ąćă
|\unhbox| éç¨äşĺĺŤ hbox ççĺ­ĺŻĺ­ĺ¨ďźč |\unvbox| éç¨äşĺĺŤ vbox ççĺ­ĺŻĺ­ĺ¨ă
ĺ˝ä˝&nbsp;ä¸ĺ¨äšä˝&nbsp;ä˝żç¨äšĺççĺ­ĺŻĺ­ĺ¨ä¸­çĺĺŽšďźä˝&nbsp;ĺşčŻĽäźĺä˝żç¨čżäşĺ˝äť¤čä¸ćŻ |\unhcopy| ĺ |\unvcopy|ďź
čżć&nbsp;ˇĺŻäťĽä¸č´äşç¨ĺşĺźççĺ­ćĽćśč \TeX\ çĺĺ­ă
\example
\setbox0=\hbox{ç´&nbsp;ç˛éąźćˇąćˇąĺ°ĺšćŻçďźç¨ä¸ĺŞćčćšççźćłŞă}
\setbox1=\hbox{äťćłčŻ´čŻďźĺŻćŻćĺĽ˝ä¸éľĺ­ćłŁä¸ćĺŁ°ă}
\unhbox0 \unhbox1
% \box0 \box1 ĺ°ĺšśćčŽžç˝Žä¸¤ä¸Ş hbox
% ďźĺšśä¸čžĺşéžççčżćťĄčĄďźă
\box1 % äťäšäšä¸čžĺşă
|
\produces
%\setbox0=\hbox{The Mock Turtle sighed deeply, and
%drew the back of one flapper across his eyes. }
%\setbox1=\hbox{He tried to speak, but sobs choked
%               his voice. }
\setbox0=\hbox{ç´&nbsp;ç˛éąźćˇąćˇąĺ°ĺšćŻçďźç¨ä¸ĺŞćčćšççźćłŞă}
\setbox1=\hbox{äťćłčŻ´čŻďźĺŻćŻćĺĽ˝ä¸éľĺ­ćłŁä¸ćĺŁ°ă}
\unhbox0 \unhbox1
% \hbox0 \hbox1 would set two hboxes side by side
% (and produce a badly overfull line).
\box1 % Produces nothing.
\endexample
\enddesc

%\begindesc
%\cts unhcopy {\&lt;register&gt;}
%\cts unvcopy {\&lt;register&gt;}
%^^{boxes//extracting contents of}
%^^{boxes//copying }%\minrefs{box}
%\minrefs{çĺ­}
%\explain
\begindesc
\cts unhcopy {\&lt;register&gt;}
\cts unvcopy {\&lt;register&gt;}
^^{çĺ­//ćĺçĺ­çĺĺŽš}
^^{çĺ­//ĺ¤ĺśçĺ­}%\minrefs{box}
\minrefs{çĺ­}
\explain
%These commands produce the list contained in box register \&lt;register&gt; and
%leave the contents of the register undisturbed.
%|\unhcopy| applies to box registers containing hboxes
%and |\unvcopy| applies to box registers containing vboxes.
čżäşĺ˝äť¤ĺŻäťĽçťĺşçĺ­ĺŻĺ­ĺ¨ \&lt;register&gt; ĺŽšçşłçĺčĄ¨ďźĺšśä¸äżćĺŻĺ­ĺ¨çĺĺŽšä¸č˘Ťćšĺă
|\unhcopy| éç¨äşĺĺŤ hbox ççĺ­ĺŻĺ­ĺ¨ďźč |\unvcopy| éç¨äşĺĺŤ vbox ççĺ­ĺŻĺ­ĺ¨ă
\example
\setbox0=\hbox{ç´&nbsp;ç˛éąźćˇąćˇąĺ°ĺšćŻçďźç¨ä¸ĺŞćčćšççźćłŞă}
\setbox1=\hbox{äťćłčŻ´čŻďźĺŻćŻćĺĽ˝ä¸éľĺ­ćłŁä¸ćĺŁ°ă}
\unhcopy0 \unhcopy1\par\noindent
% \box0 \box1 ĺ°ĺšśćčŽžç˝Žä¸¤ä¸Ş hbox
% ďźĺšśä¸čžĺşéžççčżćťĄčĄďźă
\box1 % čžĺşä¸ä¸Şďźä¸č˝č˘Ťć­čĄďźhboxă
|
\produces
%\setbox0=\hbox{The Mock Turtle sighed deeply, and
%drew the back of one flapper across his eyes. }
%\setbox1=\hbox{He tried to speak, but sobs choked his
%          voice. }
\setbox0=\hbox{ç´&nbsp;ç˛éąźćˇąćˇąĺ°ĺšćŻçďźç¨ä¸ĺŞćčćšççźćłŞă}
\setbox1=\hbox{äťćłčŻ´čŻďźĺŻćŻćĺĽ˝ä¸éľĺ­ćłŁä¸ćĺŁ°ă}
\unhcopy0 \unhcopy1\par\noindent
% \hbox0 \hbox1 would set two hboxes side by side
% (and produce a badly overfull line).
\box1 % produces an hbox (which can't be broken)
\endexample
\enddesc

%\see |\wd|, |\dp|, |\ht| (\xref\ht).
%\eix^^{box registers}
\see |\wd|, |\dp|, |\ht|ďź\xref\ht ďźă
\eix^^{çĺ­ĺŻĺ­ĺ¨}

%==========================================================================
%\subsection {Shifting boxes}
\subsection {ç§ťĺ¨çĺ­}

%\begindesc
%\cts moveleft {\&lt;dimen&gt; \&lt;box&gt;}
%\cts moveright {\&lt;dimen&gt; \&lt;box&gt;}
%\bix^^{boxes//shifting}
%%\minrefs{box}
%\minrefs{çĺ­}
%\explain
%These commands move \&lt;box&gt; left or right by \&lt;dimen&gt; (which can be
%negative). You can only apply |\moveleft| and |\moveright| to a box
%that's in a \minref{vertical list}.
\begindesc
\cts moveleft {\&lt;dimen&gt; \&lt;box&gt;}
\cts moveright {\&lt;dimen&gt; \&lt;box&gt;}
\bix^^{çĺ­//ç§ťĺ¨çĺ­}
%\minrefs{box}
\minrefs{çĺ­}
\explain
čżäşĺ˝äť¤ĺ° \&lt;box&gt; ĺĺˇŚćĺłç§ťĺ¨ \&lt;dimen&gt;ďźčżä¸Şć°ĺźĺŻäťĽćŻč´çďźă
ä˝&nbsp;ĺŞč˝ĺŻšĺ­ĺ¨äş\minref{çŤç´ĺčĄ¨} ä¸­ççĺ­ä˝żç¨ |\moveleft| ĺ |\moveright|ă
\example
\vbox{\vbox{Phoebe}\vbox{walked}%
\moveleft 20pt\vbox{a}\moveright 20pt\vbox{crooked}%
\vbox{mile.}}
|
\produces
\hfuzz = \maxdimen
\vbox{\vbox{Phoebe}\vbox{walked}%
\moveleft 20pt\vbox{a}\moveright 20pt\vbox{crooked}%
\vbox{mile.}}
\endexample
\enddesc

\begindesc
\cts lower {\&lt;dimen&gt; \&lt;box&gt;}
\cts raise {\&lt;dimen&gt; \&lt;box&gt;}
\explain
%These commands move \&lt;box&gt; up or down by \&lt;dimen&gt;
%(which can be negative).
%You can only apply |\raise| and |\lower| to a box
%that's in a \minref{horizontal list}.
čżäşĺ˝äť¤ĺ° \&lt;box&gt; ĺä¸ćä¸ç§ťĺ¨ \&lt;dimen&gt;ďźčżä¸Şć°ĺźĺŻäťĽćŻč´çďźăä˝&nbsp;ĺŞč˝ĺŻšĺ­ĺ¨äş\minref{ć°´ĺšłĺčĄ¨} ä¸­ççĺ­ä˝żç¨ |\raise| ĺ |\lower|ă
\example
ĺłäşä˝&nbsp;éźťĺ­ä¸ç \lower 6pt \hbox{čżĺ}ďźä˝&nbsp;č§ĺž
                \raise 6pt \hbox{ć˛Žä¸§}ĺďź
|
\produces
%Are you feeling \lower 6pt \hbox{depressed} about the
%                \raise 6pt \hbox{bump} on your nose?
ĺłäşä˝&nbsp;éźťĺ­ä¸ç \lower 6pt \hbox{čżĺ}ďźä˝&nbsp;č§ĺž
                \raise 6pt \hbox{ć˛Žä¸§}ĺďź
\endexample

\eix^^{çĺ­//ç§ťĺ¨çĺ­}
\enddesc

%==========================================================================
%\subsection {Dimensions of box registers}
\subsection {çĺ­ĺŻĺ­ĺ¨çĺ°şĺŻ¸}

%\begindesc
%\bix^^{box registers}
%\bix^^{dimensions//of box registers}
%\cts ht {\&lt;register&gt;\param{dimen}}
%\cts dp {\&lt;register&gt;\param{dimen}}
%\cts wd {\&lt;register&gt;\param{dimen}}
%\explain
%These parameters refer to the ^{height}, ^{depth}, and ^{width}
%respectively of \minref{box} \minref{register} \&lt;register&gt;.
%You can use them to find out the dimensions of a box.
%You can also change the dimensions of a box, but it's a tricky business;
%if you want to be adventurous you can
%learn all about it from \knuth{pages~388--389}.
\begindesc
\bix^^{çĺ­ĺŻĺ­ĺ¨}
\bix^^{ĺ°şĺŻ¸//çĺ­ĺŻĺ­ĺ¨çĺ°şĺŻ¸}
\cts ht {\&lt;register&gt;\param{dimen}}
\cts dp {\&lt;register&gt;\param{dimen}}
\cts wd {\&lt;register&gt;\param{dimen}}
\explain
čżäşĺć°ĺĺŤčĄ¨ç¤ş\minref{çĺ­}\minref{ĺŻĺ­ĺ¨} \&lt;register&gt; ç^{éŤĺşŚ}ă^{ćˇąĺşŚ}ĺ^{ĺŽ˝ĺşŚ}ă
ä˝&nbsp;ĺŻäťĽä˝żç¨čżäşĺ˝äť¤čˇĺžä¸ä¸Şçĺ­çĺ°şĺŻ¸ăä˝&nbsp;äšĺŻäťĽćšĺä¸ä¸Şçĺ­çĺ°şĺŻ¸ďźä˝čżćŻä¸ä¸ŞéčŚćĺˇ§çäşćďź
ĺŚćä˝&nbsp;ĺ¸ććä¸şĺéŠčďźä˝&nbsp;ĺŻäťĽäť \knuth{pages~388--389} ä¸­čˇĺžĺ¨é¨çćĺˇ§ă
\example
\setbox0 = \vtop{\hbox{ä¸ä¸Ş}\hbox{çąłéťč˛ç}\hbox{ĺĺ­}}%
éŁä¸Şçĺ­çĺŽ˝ĺşŚćŻ \the\wd0ďźéŤĺşŚćŻ \the\ht0ďź
ćˇąĺşŚćŻ \the\dp0ă
|
\produces
%\setbox0 = \vtop{\hbox{a}\hbox{beige}\hbox{bunny}}%
%The box has width \the\wd0, height \the\ht0,
%and depth \the\dp0.
\setbox0 = \vtop{\hbox{ä¸ä¸Ş}\hbox{çąłéťč˛ç}\hbox{ĺĺ­}}%
éŁä¸Şçĺ­çĺŽ˝ĺşŚćŻ \the\wd0ďźéŤĺşŚćŻ \the\ht0ďź
ćˇąĺşŚćŻ \the\dp0ă
%\endexample
%\eix^^{box registers}
%\eix^^{dimensions//of box registers}
%\enddesc
\endexample
\eix^^{çĺ­}
\eix^^{ĺ°şĺŻ¸//çĺ­ĺŻĺ­ĺ¨çĺ°şĺŻ¸}
\enddesc

%==========================================================================
%\subsection {Struts, phantoms, and empty boxes}
\subsection {ćŻćśăĺšťĺ˝ąĺçŠşçĺ­}

\begindesc
%\margin{This subsection is a merger of two previous subsections.
%The commands have also been reordered.}
\margin{čżä¸ĺ°čćŻĺä¸¤ä¸Şĺ°čçčĺä˝ăç¸ĺşçĺ˝äť¤äšč˘Ťéć°ćĺşă}
%\bix^^{struts}
%\cts strut {}
%\explain
%This command produces a box whose width is zero
%and whose height (|8.5pt|) and depth (|3.5pt|)
%are those of a more or less typical line of type in |cmr10|,
%the default \plainTeX\ font.
%Its main use is in forcing lines to have the same height
%when you've disabled \TeX's interline glue with
%|\offinter!-lineskip| ^^|\offinterlineskip| or a similar command,
%e.g., when you're constructing an alignment.
%If the natural height of a line is
%too short, you can bring it up to standard by including a |\strut|
%in the line.  The strut will force the height and depth of the line
%to be larger, but it won't print anything or consume any horizontal
%space.
\bix^^{ćŻćś}
\cts strut {}
\explain
čżä¸Şĺ˝äť¤äş§çä¸ä¸ŞĺŽ˝ĺşŚä¸şéśççĺ­ďź
çĺ­çéŤĺşŚ (|8.5pt|) ĺćˇąĺşŚ (|3.5pt|) ä¸ç¨ \plainTeX\ çéťčŽ¤ĺ­ä˝ |cmr10| ćĺşçĺ¸ĺçä¸čĄćĺ­ćŻä¸č´çă
ĺ˝ä˝&nbsp;ä˝żç¨ |\offinter!-lineskip| ^^|\offinterlineskip| ćçąťäźźçĺ˝äť¤ĺłé­ \TeX\ çčĄé´ç˛čżďź
ĺŚä˝&nbsp;ć­Łĺ¨ćĺťşä¸ä¸ŞéľĺćśďźčŻĽĺ˝äť¤ä¸ťčŚç¨äşĺźşčżŤä¸čĄĺˇćç¸ĺçéŤĺşŚă
ĺŚćä¸čĄçčŞçśéŤĺşŚčżçŽďźä˝&nbsp;ĺŻäťĽĺ¨čĄä¸­ćĺĽä¸ä¸Ş |\strut| ä˝żĺŽĺĺ°ć&nbsp;ĺçéŤĺşŚă
ćŻćśĺ°ä˝żĺžä¸čĄçéŤĺşŚĺćˇąĺşŚć´ĺ¤§ä¸äşďźä˝ĺŽä¸äźćĺ°ĺşäťťä˝ä¸čĽżďźćčćśčäťťä˝ć°´ĺšłé´éă

%If you're setting type in a font that's bigger or smaller than |cmr10|,
%you should redefine |\strut| for that context.
ĺŚćä˝&nbsp;ć­Łĺ¨ä˝żç¨ä¸ä¸Şĺ¤§äşćĺ°äş |cmr10| çĺ­ä˝ćçďźä˝&nbsp;ĺşčŻĽć&nbsp;šćŽćĺ¤çŻĺ˘éć°ĺŽäš |\strut|ă
\example
\noindent % ä˝żćäťŹĺ¤äşć°´ĺšłć¨Ąĺźä¸ă
\offinterlineskip % ćäťŹĺžĺ°ĺşćçé´éă
% ä¸é˘čżäş vbox ä¸­çĺĽĺˇĺ¨çŤç´ćšĺä¸ćŻç­é´čˇçă
\vtop{\hbox{.}\hbox{.(}\hbox{.x}
   \hbox{.\vrule height 4pt depth 0pt}}\qquad
% ĺ&nbsp;ä¸şćŻćśççźćďź
%ä¸é˘čżäş vbox ä¸­çĺĽĺˇĺ¨çŤç´ćšĺä¸ĺćŻç­é´čˇçă
\vtop{\hbox{.\strut}\hbox{.(\strut}\hbox{.x\strut}
   \hbox{.\vrule height 4pt depth 0pt\strut}}
|

\produces
\noindent % So we're in horizontal mode.
\offinterlineskip % So we get the inherent spacing.
% The periods in this vbox are not vertically equidistant.
\vtop{\hbox{.}\hbox{.(}\hbox{.x}
   \hbox{.\vrule height 4pt depth 0pt}}\qquad
% The periods in this vbox are vertically equidistant
% because of the struts.
\vtop{\hbox{.\strut}\hbox{.(\strut}\hbox{.x\strut}
   \hbox{.\vrule height 4pt depth 0pt\strut}}
\endexample
\enddesc

\begindesc
\cts mathstrut {}
\explain
%This command produces a phantom formula whose width is zero
%and whose height and depth are the same as those of a left parenthesis.
%|\mathstrut| is in fact defined as `|\vphantom(|'.
%Its main use is for getting radicals, underbars, and overbars to line
%up with other radicals, underbars, and overbars in a formula.
%It is much like ^|\strut| (\xref \strut),
%except that it adjusts itself to the different \minref{style}s
%that can occur in math formulas.
čżä¸Şĺ˝äť¤äş§çä¸ä¸ŞĺŽ˝ĺşŚä¸şéśçĺšťĺ˝ąĺŹĺźďźĺŽçéŤĺşŚä¸ćˇąĺşŚä¸ĺˇŚĺćŹĺˇćŻä¸č´çă
|\mathstrut| ĺŽéä¸çĺŽäšćŻ `|\vphantom(|'ă
ĺŽä¸ťčŚç¨äşä˝żĺžć&nbsp;šĺˇăä¸ć¨Şçşżĺä¸ć¨Şçşżč˝ä¸ĺŹĺźä¸­ĺśĺŽçć&nbsp;šĺˇăä¸ć¨Şçşżĺä¸ć¨ŞçşżćčĄćĺă
é¤č˝ć&nbsp;šćŽĺşç°ĺ¨ć°ĺ­ŚĺŹĺźä¸­çä¸ĺ\minref{ć&nbsp;ˇĺź}čŞĺ¨č°čäťĽĺ¤ďźĺŽä¸ ^|\strut| ďź\xref \strutďźéĺ¸¸ç¸äźźă
\example
$$\displaylines{
\overline{a_1a_2} \land \overline{b_1b_2}
\quad{\rm versus}\quad \overline{a_1a_2\mathstrut}
  \land \overline{b_1b_2\mathstrut}\cr
\sqrt{\epsilon} + \sqrt{\xi} \quad{\rm versus}\quad
\sqrt{\epsilon\mathstrut} + \sqrt{\xi\mathstrut}\cr}$$
|
\dproduces
\kern 4pt
$$\displaylines{
\overline{a_1a_2} \land \overline{b_1b_2}
\quad{\rm versus}\quad \overline{a_1a_2\mathstrut}
  \land \overline{b_1b_2\mathstrut}\cr
\sqrt{\epsilon} + \sqrt{\xi} \quad{\rm versus}\quad
\sqrt{\epsilon\mathstrut} + \sqrt{\xi\mathstrut}\cr}$$
\endexample
\eix^^{ćŻćś}
\enddesc

%\begindesc
%\cts phantom {\&lt;argument&gt;}
%\explain
%\bix^^{boxes//phantom}
%\bix^^{phantoms}
%This command produces an empty \minref{box}
%having the same size and placement
%that \&lt;argument&gt; would have were it typeset.
%One use of |\phantom| is for reserving space for a symbol that for some
%reason needs to be drawn in by hand.
\begindesc
\cts phantom {\&lt;argument&gt;}
\explain
\bix^^{çĺ­//ĺšťĺ˝ąçĺ­}
\bix^^{ĺšťĺ˝ą}
ć­¤ĺ˝äť¤äş§çä¸ä¸ŞçŠş\minref{çĺ­}ďźĺŽçĺ¤§ĺ°ĺä˝ç˝Žä¸ĺĺŽ \&lt;argument&gt; č˘ŤćçĺşćĽćśçç¸ĺă
ĺ&nbsp;ćç§ĺĺ&nbsp;éčŚćĺˇĽçťä¸ä¸ŞçŹŚĺˇçĺşçŠşé´ćśďź|\phantom| ĺ°ąĺŻć´žä¸ç¨ĺşă
\example
$1\phantom{9}2$
|
\produces
$1\phantom{9}2$
\endexample
\enddesc

\begindesc
\cts hphantom {\&lt;argument&gt;}
\cts vphantom {\&lt;argument&gt;}
\explain
%These commands produce phantom boxes\minrefs{box}\ that
%don't print anything:
%\ulist\compact
%\li |\hphantom| produces a box with the same width as \&lt;argument&gt;
%but zero height and depth.
%\li |\vphantom| produces a box with the same height and depth as \&lt;argu\-ment&gt;
%but zero width.
%\endulist
%\noindent
%Their main purpose is to force a subformula to have a certain minimum
%horizontal or vertical dimension.
čżäşĺ˝äť¤äş§çĺšťĺ˝ąçĺ­\minrefs{box}ďźĺšśä¸ćĺ°äťťä˝ä¸čĽżďź
\ulist\compact
\li |\hphantom| äş§çä¸ä¸ŞĺŽ˝ĺşŚä¸ \&lt;argument&gt; ä¸č´ççĺ­ďźä˝éŤĺşŚä¸ćˇąĺşŚĺä¸şéśă
\li |\vphantom| äş§çä¸ä¸ŞéŤĺşŚä¸ćˇąĺşŚä¸ \&lt;argu\-ment&gt; ä¸č´ççĺ­ďźä˝ĺŽ˝ĺşŚä¸şéśă
\endulist
\noindent
ĺŽäťŹçä¸ťčŚçŽçćŻčżŤä˝żä¸ä¸Şĺ­ĺŹĺźĺˇćçšĺŽçćĺ°ć°´ĺšłćçŤç´ĺ°şĺŻ¸ă
\example
$$\left[\vphantom{u\over v}t\right] \star
      \left[{u\over v}\right]\quad
   \{\hphantom{xx}\}$$
|
\dproduces
\kern 4pt
$$\left[\vphantom{u\over v}t\right] \star
      \left[{u\over v}\right]\quad
   \{\hphantom{xx}\}$$
\endexample
\enddesc

\begindesc
\cts smash {\&lt;argument&gt;}
\explain
%This command typesets \&lt;argument&gt;,
%but forces the height and depth of its containing \minref{box} to be zero.
%You can use |\smash| and |\vphantom| in combination to give a subformula
%any height and depth that you wish.
čŻĽĺ˝äť¤ćĺş \&lt;argument&gt;ďźä˝čżŤä˝żĺśĺĺŤç\minref{çĺ­}çéŤĺşŚĺćˇąĺşŚčŽžä¸şéśăä˝&nbsp;ĺŻäťĽčĺä˝żç¨ |\smash| ĺ |\vphantom| ćĽčˇĺžäťťä˝ä˝&nbsp;ććéŤĺşŚä¸ćˇąĺşŚçĺ­ĺŹĺźă
\example
$${\smash{r_m \brace r_n}\vphantom{r}} \Longrightarrow r$$
|
\dproduces
\kern 4pt
$${\smash{r_m \brace r_n}\vphantom{r}} \Longrightarrow r$$
\endexample
%\eix^^{boxes//phantom}
%\eix^^{phantoms}
%\enddesc
\eix^^{çĺ­//ĺšťĺ˝ąçĺ­}
\eix^^{ĺšťĺ˝ą}
\enddesc

%\begindesc
%^^{boxes//empty}
%\cts null {}
%\explain
%This command produces an empty \minref{hbox}.
\begindesc
^^{çĺ­//çŠşçĺ­}
\cts null {}
\explain
čżä¸Şĺ˝äť¤äş§çä¸ä¸ŞçŠşç \minref{hbox}ă
\example
\setbox0 = \null
çŠşçĺ­ \null çĺŽ˝ĺşŚćŻ \the\wd0ďźéŤĺşŚćŻ \the\ht0ďź
ćˇąĺşŚćŻ \the\dp0ă
|
\produces
\setbox0 = \null
%The null box \null has width \the\wd0, height \the\ht0,
%and depth \the\dp0.
çŠşçĺ­ \null çĺŽ˝ĺşŚćŻ \the\wd0ďźéŤĺşŚćŻ \the\ht0ďź
ćˇąĺşŚćŻ \the\dp0ă
\endexample
\enddesc


%==========================================================================
%\subsection {Parameters pertaining to malformed boxes}
\subsection {ćĺłç¸ĺ˝˘çĺ­çĺć°}

%\begindesc
%\bix^^{boxes//overfull}
%\bix^^{boxes//underfull}
%\cts overfullrule {\param{dimen}}
%\explain
%This parameter specifies the width of the rule
%that \TeX\ appends to an overfull \minref{hbox}.
%\PlainTeX\ sets it to |5pt|.
\begindesc
\bix^^{çĺ­//čżćťĄçĺ­}
\bix^^{çĺ­//ćŞćťĄçĺ­}
\cts overfullrule {\param{dimen}}
\explain
čżä¸Şĺć°čŽžĺŽ \TeX\ éĺ&nbsp;ĺ¨čżćťĄ\minref{ć°´ĺšłçĺ­}ĺçć&nbsp;çşżçĺŽ˝ĺşŚă\PlainTeX\ ĺ°ĺśčŽžä¸ş |5pt|ă
\enddesc

\begindesc
\cts hbadness {\param{number}}
\cts vbadness {\param{number}}
\explain
%These parameters specify the thresholds of horizontal and vertical
%\minref{badness} for reporting underfull or overfull boxes.
%|\hbadness| applies to hboxes and |\vbadness| applies to vboxes.
%If the badness of a constructed box exceeds the threshold,
%\TeX\ will report an error.  If you raise the thresholds
%(the \plainTeX\ defaults are both $1000$),
%\TeX\ will be less likely to complain.
%Note that the settings of |\hbadness| and |\vbadness| have no effect on
%the appearance of your typeset document; they only affect the error
%messages that you get.
%See \knuth{page~302} for a precise description
%of how \TeX\ decides when to complain about an overfull or underfull
%box.
čżäşĺć°čŽžĺŽäşćĽĺçĺ­ćŞćťĄćčżćťĄč­Śĺćśçć°´ĺšłĺçŤç´ç\minref{ćśĺŁçść}çéĺźă|\hbadness| éç¨äş hboxďźč |\vbadness| éç¨äş vboxăĺŚćä¸ä¸Şçĺ­çćśĺŁçśćčśčżäşéĺźďź\TeX\ ĺ°ćĽĺä¸ä¸ŞéčŻŻăĺŚćä˝&nbsp;ćéŤéĺźďź\plainTeX çéťčŽ¤ĺźćŻ $1000$ďźďź\TeX\ ĺ°ä¸ĺçťĺ¸¸çťĺşč­ŚĺăéčŚćł¨ćçćŻďźčŽžĺŽ |\hbadness| ĺ |\vbadness| ĺŻšä˝&nbsp;çććĄŁćççťćć˛Ąćĺ˝ąĺďźĺŽäťŹĺŞĺ˝ąĺä˝&nbsp;čˇĺžçéčŻŻäżĄćŻăĺč§ \knuth{page~302}ďźäťĽčˇĺž \TeX\ ĺŚä˝çĄŽĺŽĺ¨äťäšćśĺĺŻščżćťĄććŞćťĄçĺ­čżčĄč­ŚĺçĺçĄŽćčż°ă

%\margin{The material on tolerance was inappropriate here and has been
%removed.  A new example replaces it.}
\margin{ĺ¨čżéčŽ¨čŽşĺŽščŽ¸éçĺĺŽšćŻä¸ĺéçďźč˘Ťĺťćäşăĺ&nbsp;ć­¤ďźéç¨ä¸ä¸Şć°çäžĺ­ĺäťŁäşĺŽă}
\example
\hbadness = 10000 % ĺćśäťťä˝ĺłäş hbadness çč­Śĺă
\hbox to 2in{a b}\par
\hbadness = 500 % ĺ˝ hbadness čśčż 500 ĺ°ąçťĺşč­Śĺă
\hbox to 2in{a\hskip 0pt plus .5in b}
|
\logproduces
Underfull \hbox (badness 5091) detected at line 4
\tenrm a b

\hbox(6.94444+0.0)x144.54, glue set 3.70787
.\tenrm a
.\glue 0.0 plus 36.135
.\tenrm b
|
\endexample
\enddesc

\begindesc
\cts badness {}
\explain
%This command yields the numerical value of the badness of the \minref{box}
%(either horizontal or vertical) that \TeX\ has most recently produced.
%If the box was overfull, |\badness| will be $1000000$; in all other cases
%it will be between $0$ and $10000$.
čŻĽĺ˝äť¤çťĺş \TeX\ ĺĺäş§ççďźć°´ĺšłçćçŤç´çďź\minref{çĺ­}çćśĺŁçśćçć°ĺźă
ĺŚćçĺ­ćŻčżćťĄçďź|\badness| ĺ°ćŻ $1000000$ďźĺ¨ććĺśĺŽćĺľä¸ďźĺŽĺ°ĺ¨ $0$ čł $10000$ äšé´ă
\enddesc

\begindesc
\cts hfuzz {\param{dimen}}
\cts vfuzz {\param{dimen}}
\explain
%These parameters specify the amount that
%a \minref{box} can exceed its natural size before \TeX\ considers it to be
%overfull. ^^{boxes//overfull}
%|\hfuzz| applies to hboxes and |\vfuzz| applies to vboxes.
%\PlainTeX\ sets both parameters to |0.1pt|.
čżäşĺć°čŽžç˝Žĺ¨ \TeX\ čŽ¤ä¸şä¸ä¸Şçĺ­čżćťĄäšĺďźä¸ä¸Ş\minref{çĺ­} č˝ĺ¤čśĺşĺśćŹčşŤĺ¤§ĺ°çéă
^^{çĺ­//čżćťĄçĺ­}|\hfuzz| éç¨äşć°´ĺšłçĺ­ďźč |\vfuzz| éç¨äşçŤç´çĺ­ă\PlainTeX\ ĺ°ä¸¤ä¸Şĺć°ĺčŽžä¸ş |0.1pt|ă
\example
\hfuzz = .5in
\hbox to 2in{This box is longer than two inches.}
% ć˛ĄćéčŻŻççťćă
|
\produces
\hfuzz = .5in
\hbox to 2in{This box is longer than two inches.}
% No error results
\doruler{\8\8\8}3{in}
\endexample

%\eix^^{boxes//overfull}
%\eix^^{boxes//underfull}
%\eix^^{box commands}
%\enddesc
\eix^^{çĺ­//čżćťĄçĺ­}
\eix^^{çĺ­//ćŞćťĄçĺ­}
\eix^^{çĺ­ĺ˝äť¤}
\enddesc

%\see |\tolerance| \ctsref{\tolerance}.
\see |\tolerance| \ctsref{\tolerance}ă

%==========================================================================
%\section {Retrieving the last item from a list}
\section {äťĺčĄ¨ä¸­čˇĺćĺçéĄšçŽ}

%\begindesc
%^^{boxes//last box in a list}
%^^{kerns//last kern in a list}
%^^{penalties//last penalty in a list}
%^^{glue//last glue item in a list}
%\margin{This section has been moved in its entirety from the chapter
%(`Commands for general operations')}
\begindesc
^^{çĺ­//ĺčĄ¨ä¸­ćĺä¸ä¸Şçĺ­}
^^{ç´§ć//ĺčĄ¨ä¸­ćĺä¸ä¸Şç´§ć}
^^{ćŠç˝//ĺčĄ¨ä¸­ćĺä¸ä¸ŞćŠç˝éĄš}
^^{ç˛čż//ĺčĄ¨ä¸­ćĺä¸ä¸Şç˛čż}
\margin{čżä¸čć´ä¸Şĺżĺ°äťďźâĺ¸¸č§ćä˝ĺ˝äť¤âďźä¸çŤ&nbsp;ä¸­ç§ťčżćĽçă}
\cts lastkern {}
\cts lastskip {}
\cts lastpenalty {}
\cts lastbox {}
\explain
%These control sequences yield the value of the last item on the current
%list.  They aren't true commands because they can only appear as
%part of an argument.
%If the last item on the list isn't of the indicated type,
%they yield a zero value (or an empty box, in the case of |\lastbox|).
%For example,
%if the last item on the current list is a \minref{kern},
%|\lastkern| yields the dimension of that kern; if it
%isn't a kern, it yields a dimension of $0$.
čżäşć§ĺśĺşĺäş§çä˝äşĺ˝ĺĺčĄ¨ćĺçéĄšçŽĺźăĺŽäťŹä¸ćŻçć­Łçĺ˝äť¤ďźĺ&nbsp;ä¸şĺŽäťŹĺŞč˝äťĽĺć°çä¸é¨ĺĺşç°ăĺŚćĺčĄ¨ä¸­çćĺçéĄšçŽä¸ćŻćç¤şçąťĺďźĺŽäťŹĺ°çťĺşéśĺźďźćčçŠşçĺ­ďźĺ¨ |\lastbox| çćĺľä¸ďźăäžĺŚďźĺŚćĺ¨ĺ˝ĺĺčĄ¨ä¸­ćĺä¸éĄšćŻä¸ä¸Ş\minref{ç´§ć}ďź|\lastkern| çťĺşéŁä¸Şç´§ćçĺ°şĺŻ¸ďźĺŚćĺŽä¸ćŻç´§ćďźĺŽçťĺşä¸ä¸Şĺ°şĺŻ¸ $0$ă

%Using |\lastbox| has the additional effect of removing the last box from
%the list.
%If you want the original |\last!-box| to remain on the list, you
%have to add a copy of it to the list.
%|\last!-box| is not permitted in a math list or in the main
%vertical~list.
ä˝żç¨ |\lastbox| ĺˇćäťĺčĄ¨ä¸­ç§ťé¤ćĺä¸ä¸Şçĺ­çéĺ&nbsp;ćĺşăĺŚćä˝&nbsp;ĺ¸ćĺćĽç |\last!-box| äťäżçĺ¨ĺčĄ¨ä¸­ďźä˝&nbsp;ä¸ĺžä¸ĺĺčĄ¨ä¸­ĺ˘ĺ&nbsp;ĺŽçä¸ä¸Şćˇč´ă|\last!-box| ä¸ĺčŽ¸ç¨äşć°ĺ­ŚĺčĄ¨ćä¸ťçŤç´ĺčĄ¨ă

%These control sequences are
%most useful after macro calls that might have inserted entities of
%the indicated kinds.
čżäşć§ĺśĺşĺĺ¨ĺŻč˝ćĺĽćć&nbsp;çąťĺçĺŽč°ç¨ĺćŻéĺ¸¸ćç¨çă

\example
\def\a{two\kern 15pt}
one \a\a\hskip 2\lastkern three\par
% ĺ¨`ä¸'äšĺäş§çä¸ĺçç´§ćă
\def\a{\hbox{äş}}
ä¸ \a
\setbox0 = \lastbox % ĺ°`äş'ĺťćă
ä¸ \box0.
|
\produces
\def\a{äş\kern 15pt}
ä¸ \a\a\hskip 2\lastkern ä¸\par
% get three times as much space before `three'
\def\a{\hbox{äş}}
ä¸ \a
\setbox0 = \lastbox % removes `two'
ä¸ \box0.
\endexample
\enddesc

\begindesc
\cts unkern {}
\cts unskip {}
\cts unpenalty {}
\explain
%If the last item on the current list is of type \minref{kern},
%\minref{glue}, or \minref{penalty} respectively, these commands remove it
%from that list.  If the item isn't of the right type, these commands have
%no effect.  Like ^|\lastbox|, you can't apply them to lists in math mode or to
%the main vertical list.
%These commands
%are most useful after a macro call that is known to have inserted
%a specific item that you don't want there.
%\TeX\ doesn't provide an ^|\unbox| command because |\lastbox| produces
%nearly the same effect.
ĺŚćĺ˝ĺĺčĄ¨çćĺä¸éĄšĺĺŤćŻ\minref{ç´§ć}ă\minref{ç˛čż}ć\minref{ćŠç˝}ççąťĺďźčżäşĺ˝äť¤ĺŻäťĽĺ°ĺŽäťŹäťĺčĄ¨ä¸­ĺťé¤ăĺŚćéĄšçŽä¸ćŻć­ŁçĄŽççąťĺďźčżäşĺ˝äť¤ĺ°ä¸čľˇä˝ç¨ăä¸ ^|\lastbox| çąťäźźďźä˝&nbsp;ä¸č˝ĺ°ĺŽäťŹĺşç¨äşĺ¤äşć°ĺ­Ść¨Ąĺźćä¸ťçŤç´ĺčĄ¨ä¸­ăĺ¨ĺˇ˛çĽéäźćĺĽä˝&nbsp;ä¸ĺ¸ćĺ­ĺ¨ççšĺŽéĄšçŽçĺŽč°ç¨ĺďźčżäşĺ˝äť¤ćŻéĺ¸¸ćç¨çă\TeX\ ä¸ćäž ^|\unbox| ĺ˝äť¤ďźĺ&nbsp;ä¸ş |\lastbox| äş§çäşčżäšä¸č´çććă
\enddesc


%==========================================================================
%\section {Rules and leaders}
\section {ć&nbsp;çşżä¸ćĺźçşż}

%\begindesc
%\bix^^{rules}
%\bix^^{horizontal rules}
%\bix^^{vertical rules}
\begindesc
\bix^^{ć&nbsp;çşż}
\bix^^{ć°´ĺšłć&nbsp;çşż}
\bix^^{çŤç´ć&nbsp;çşż}
%
\cts hrule {}
\aux\cts hrule {\bt height \&lt;dimen&gt; width \&lt;dimen&gt; depth \&lt;dimen&gt;}
\cts vrule {}
\aux\cts vrule {{\bt width \&lt;dimen&gt; height \&lt;dimen&gt; depth \&lt;dimen&gt;}}
\explain
%The |\hrule| command produces a horizontal rule; the |\vrule| command
%produces a vertical rule.  You can specify any or all of the width,
%height, and depth of the rule---\TeX\ supplies default values for those
%that you omit.  You can give the dimensions of the rule in any order;
%the forms listed above show just two of the possible combinations.  You
%can even give a dimension of a given kind more than once---if you do,
%the last one is the one that counts.
|\hrule| ĺ˝äť¤ç¨äşäş§çć°´ĺšłçć&nbsp;çşżďźç¸ĺşç |\vrule| ĺ˝äť¤ç¨äşäş§ççŤç´çć&nbsp;çşżă
ä˝&nbsp;ĺŻäťĽćĺŽć&nbsp;çşżçĺŽ˝ĺşŚăéŤĺşŚććˇąĺşŚçäťťććĺ¨é¨ă
\TeX\ äźä¸şä˝&nbsp;ççĽçéŁäşćäžéťčŽ¤ĺźăä˝&nbsp;ĺŻäťĽäťĽäťťä˝éĄşĺşçťĺŽć&nbsp;çşżçĺ°şĺŻ¸ďź
ä¸é˘çťĺşçĺ˝˘ĺźĺŞćŻĺŻč˝ççťĺä¸­çä¸¤ä¸Şă
ä˝&nbsp;çčłĺŻäťĽä¸şä¸ä¸ŞçťĺŽçąťĺçĺ°şĺŻ¸çťĺşĺ¤ä¸Şĺź---ĺŚćä˝&nbsp;čżäšĺďźčľˇä˝ç¨çćŻćĺä¸ä¸Şĺźă

%If you don't specify the width of a horizontal rule, the rule is
%extended horizontally to the boundaries of the innermost \minref{box} or
%\minref{alignment} that contains the rule.  If you don't specify the
%height of a horizontal rule, it defaults to |0.4pt|; if you don't
%specify the depth of a horizontal rule, it defaults to |0pt|.
ĺŚćä˝&nbsp;ć˛ĄćčŽžĺŽć°´ĺšłć&nbsp;çşżçĺŽ˝ĺşŚďź
ĺć&nbsp;çşżĺ°ć°´ĺšłĺ°ćŠĺąĺ°ĺĺŤć&nbsp;çşżç\minref{çĺ­}ć\minref{éľĺ}çćĺäž§çčžšçă
ĺŚćä˝&nbsp;ć˛ĄćčŽžĺŽć°´ĺšłć&nbsp;çşżçéŤĺşŚďźĺśéťčŽ¤ĺźćŻ |0.4pt|ďź
ĺŚćä˝&nbsp;ć˛ĄćčŽžĺŽć°´ĺšłć&nbsp;çşżçćˇąĺşŚďźĺśéťčŽ¤ĺźćŻ |0pt|ă

%If you don't specify the width of a vertical rule, it defaults to
%|0.4pt|.  If you don't specify the height or the depth of a vertical
%rule, the rule is extended to the boundary of the innermost \minref{box}
%or \minref{alignment} that contains the rule.
ĺŚćä˝&nbsp;ć˛ĄćčŽžĺŽçŤç´ć&nbsp;çşżçĺŽ˝ĺşŚďźĺśéťčŽ¤ĺźćŻ |0.4pt|ďź
ĺŚćä˝&nbsp;ć˛ĄćčŽžĺŽçŤç´ć&nbsp;çşżçéŤĺşŚććˇąĺşŚďź
ĺć&nbsp;çşżĺ°ĺ°ćŠĺąĺ°ĺĺŤć&nbsp;çşżç\minref{çĺ­}ć\minref{éľĺ}çćĺäž§çčžšçă

%\TeX\ treats a horizontal rule as an inherently vertical item
%and a vertical rule as an inherently horizontal item.
%Thus a horizontal rule is legal only in a \minref{vertical mode},
%while a vertical rule is legal only in a \minref{horizontal mode}.
%^^{horizontal mode//rules in}
%^^{vertical mode//rules in}
%If this seems surprising, visualize it---a horizontal rule runs
%from left to right and separates vertical items in a sequence, while
%a vertical rule runs up and down and
%separates horizontal items in a sequence.
\TeX\ äťĽĺĺ¨ççŤç´éĄšçŽĺ¤çć°´ĺšłć&nbsp;çşżďźčäťĽĺĺ¨çć°´ĺšłéĄšçŽĺ¤ççŤç´ć&nbsp;çşżă
ĺ&nbsp;ć­¤ďźć°´ĺšłć&nbsp;çşżĺŞć\minref{çŤç´ć¨Ąĺź}ä¸ćŻććçďźčçŤç´ć&nbsp;çşżĺŞĺ¨\minref{ć°´ĺšłć¨Ąĺź}ä¸ćŻććçă
^^{ć°´ĺšłć¨Ąĺź//ć°´ĺšłć¨Ąĺźä¸­çć&nbsp;çşż}
^^{çŤç´ć¨Ąĺź//çŤç´ć¨Ąĺźä¸­çć&nbsp;çşż}
ĺŚćč§ĺžćĺ¤ďźĺŻäťĽç´č§ĺĺ°č§ćľăć°´ĺšłć&nbsp;çşżäťĺˇŚĺĺłç§ťĺ¨ďźĺšśä¸ĺ°çŤç´çéĄšçŽćĺşĺ°ĺĺźďź
čçŤç´ć&nbsp;çşżäťä¸ĺ°ä¸ďźĺ°ć°´ĺšłéĄšçŽćĺşĺ°ĺĺźă

\example
\hrule\smallskip
\hrule width 2in \smallskip
\hrule width 3in height 2pt \smallskip
\hrule width 3in depth 2pt
|
\produces
\medskip
\hrule\smallskip
\hrule width 2in \smallskip
\hrule width 3in height 2pt \smallskip
\hrule width 3in depth 2pt
\nextexample
% ĺ¨čżéďźä˝&nbsp;č˝çĺ°ĺşçşżä¸ \hrule çéŤĺşŚä¸ćˇąĺşŚäšé´ćçĺłçłťă
\leftline{
   \vbox{\hrule width .6in height 5pt depth 0pt}
   \vbox{\hrule width .6in height 0pt depth 8pt}
   \vbox{\hrule width .6in height 5pt depth 8pt}
   \vbox{\hbox{ĺşçşż}\kern 3pt \hrule width .6in}
}
|
\produces
\medskip
\leftline{
   \vbox{\hrule width .6in height 5pt depth 0pt}
   \vbox{\hrule width .6in height 0pt depth 8pt}
   \vbox{\hrule width .6in height 5pt depth 8pt}
   \vbox{\hbox{ĺşçşż}\kern 3pt \hrule width .6in}
}
\nextexample
\hbox{( {\vrule} {\vrule width 8pt} )}
\hbox {( {\vrule height 13pt depth 0pt}
   {\vrule height 13pt depth 7pt} x)}
% ĺćŹĺˇĺŽäšäşä¸¤ä¸Şčżçť­ççĺ­çéŤĺşŚä¸ćˇąĺşŚďź
% č `x' ä˝äşĺşçşżäšä¸ă
|
\produces
\medskip
\hbox{( {\vrule} {\vrule width 8pt} )}
\hbox {( {\vrule height 13pt depth 0pt}
   {\vrule height 13pt depth 7pt} x)}
\endexample

%\eix^^{rules}
%\eix^^{horizontal rules}
%\eix^^{vertical rules}
%\enddesc
\eix^^{ć&nbsp;çşż}
\eix^^{ć°´ĺšłć&nbsp;çşż}
\eix^^{çŤç´ć&nbsp;çşż}
\enddesc

%\begindesc
%\bix^^{leaders}
%\easy\cts leaders {\&lt;box or rule&gt; \&lt;skip command&gt;}
%\cts cleaders {\&lt;box or rule&gt; \&lt;skip command&gt;}
%\cts xleaders {\&lt;box or rule&gt; \&lt;skip command&gt;}
%\explain
%These commands produce \minref{leaders}, i.e., they fill a
%horizontal or vertical space with
%copies of a pattern \seeconcept{leaders}.
%The \&lt;box&gt; or \&lt;rule&gt; specifies a leader,
%i.e., a single copy of the pattern,
%while the \&lt;skip command&gt; specifies a
%window to be filled with a
%row or a column of the leaders.
%The pattern is repeated as many times as will fit into the window.
%If \&lt;skip command&gt; is a horizontal skip, the window
%contains a row of leaders and \TeX\ must be in a horizontal mode;
%if \&lt;skip command&gt; is a vertical skip, the window
%contains a column of leaders and \TeX\ must be in a vertical mode.
\begindesc
\bix^^{ćĺźçşż}
\easy\cts leaders {\&lt;box or rule&gt; \&lt;skip command&gt;}
\cts cleaders {\&lt;box or rule&gt; \&lt;skip command&gt;}
\cts xleaders {\&lt;box or rule&gt; \&lt;skip command&gt;}
\explain
čżäşĺ˝äť¤ç¨äşäş§ç\minref{ćĺźçşż}ďź
äšĺ°ąćŻç¨ćä¸ä¸Şć¨Ąĺź\seeconcept{ćĺźçşż}çĺ¤ćŹĺĄŤĺć°´ĺšłćçŤç´çé´éă
\&lt;box&gt; ć \&lt;rule&gt; çĄŽĺŽä¸ä¸Şćĺźä˝ďźĺłć¨Ąĺźçĺä¸Şĺ¤ćŹďź
č \&lt;skip command&gt; çĄŽĺŽäşç¨ä¸čĄćä¸ĺçćĺźä˝ĺĄŤĺççŞä˝ă
ć¨Ąĺźĺ°éĺ¤ĺ¤ćŹĄďźç´ĺ°ĺĄŤĺäşć´ä¸ŞçŞä˝ăĺŚć \&lt;skip command&gt; ćŻä¸ä¸Şć°´ĺšłçé´čˇďź
çŞä˝ä¸­ĺćŹçćŻčĄĺçćĺźçşżďź\TeX\ ĺżéĄťĺ¤äşć°´ĺšłć¨Ąĺźä¸ďź
ĺŚć \&lt;skip command&gt; ćŻä¸ä¸ŞçŤç´çé´čˇďź
çŞä˝ä¸­ĺćŹçćŻĺĺçćĺźçşżďź\TeX\ ĺżéĄťĺ¤äşçŤç´ć¨Ąĺźä¸ă

%The commands differ in how they arrange the repeated pattern in the space
%and where they put any leftover space:
čżäşĺ˝äť¤çĺˇŽĺźćŻĺŽäťŹĺ¨çŠşé´ĺĺŚä˝çťçťéĺ¤çć¨ĄĺźäťĽĺĺ¨äťäšĺ°ćšćžç˝ŽĺŠä˝çé´čˇďź

%\ulist\compact
%\li For |\leaders|, \TeX\ aligns a row of leaders with the left end of
%the innermost \minref{box} $B$ that is to contain the result of the
%|\leaders| command.
%It aligns a column of leaders with the top of $B$.
%Those leaders that fall entirely within the window are retained.
%Any leftover space at the top and bottom of the window is left empty.
%\li For |\cleaders|, the leaders are centered within the window.
%\li For |\xleaders| the pattern is uniformly distributed throughout the window.
%If the leftover space is $l$ and the leader is repeated  $n$ times,
%\TeX\ puts space of width or height $l/(n+1)$ between adjacent leaders and
%at the two ends (left and right or top and bottom) of the leaders.
%\endulist
\ulist\compact
\li ĺŻšäş |\leaders|ďź\TeX\ ĺ°ä¸čĄćĺźçşżä¸ĺĺŤ |\leaders| čżä¸ĺ˝äť¤çťćçćĺäž§ç\minref{çĺ­} $B$ çĺˇŚäž§ĺŻšé˝ăĺŽĺ°ä¸ĺćĺźçşżä¸ $B$ çéĄśçŤŻĺŻšé˝ăć´ä¸Şč˝ĺ¨çŞä˝ä¸­çćĺźçşżĺ°č˘Ťäżçăäťťä˝ĺ¨çŞä˝éĄśé¨ćĺşé¨ĺŠä˝çé´éĺ°çŠşçă
\li ĺŻšäş |\cleaders|ďźćĺźçşżĺ¨çŞä˝ĺćŻĺąä¸­çă
\li ĺŻšäş |\xleaders|ďźć¨ĄĺźćŻĺĺĺĺ¸ĺ¨çŞä˝ä¸­çăĺŚćĺŠä˝çŠşé´ćŻ $l$ďźćĺźä˝č˘Ťéĺ¤ $n$ ćŹĄďź\TeX\ ĺ°ĺ¨ç¸éťçćĺźçşżäťĽĺćĺźçşżçä¸¤ä¸ŞçŤŻçšďźĺˇŚĺĺłćčä¸ĺä¸ďźäšé´ĺĄŤĺĺŽ˝ĺşŚćéŤĺşŚä¸ş $l/(n+1)$ çé´éă
\endulist

\example
\def\pattern{\hbox to 15pt{\hfil.\hfil}}
\line{Down the Rabbit-Hole {\leaders\pattern\hfil} 1}
\line{The Pool of Tears {\leaders\pattern\hfil} 9}
\line{A Caucus-Race and a Long Tale {\cleaders\pattern
      \hfil} 19}
\line{Pig and Pepper {\xleaders\pattern\hfil} 27}
|
\produces
\def\pattern{\hbox to 15pt{\hfil.\hfil}}\par
\line{Down the Rabbit-Hole {\leaders\pattern\hfil} 1}
\line{The Pool of Tears {\leaders\pattern\hfil} 9}
\line{A Caucus-Race and a Long Tale {\cleaders\pattern
      \hfil} 19}
\line{Pig and Pepper {\xleaders\pattern\hfil} 27}
\nextexample
\def\bulletfill{\vbox to 3ex{\vfil\hbox{$\bullet$}\vfil}}%
\def\mybox{\vbox to 1in}
\def\myrule{\hrule width 4pt}\hsize=2in
\hrule \line{%
   \mybox{\myrule depth 8pt \leaders\bulletfill\vfill}
   \hfil
   \mybox{\myrule depth 15pt \leaders\bulletfill\vfill}
   \hfil
   \mybox{\myrule depth 18pt \cleaders\bulletfill\vfill}
   \hfil
   \mybox{\myrule depth 12pt \xleaders\bulletfill\vfill}%
}\hrule
|
\produces
\medskip
\def\bulletfill{\vbox to 3ex{\vfil\hbox{$\bullet$}\vfil}}%
\def\mybox{\vbox to 1in}\def\myrule{\hrule width 4pt}\hsize=2in
\hrule \line{%
   \mybox{\myrule depth 8pt \leaders\bulletfill\vfill}
   \hfil
   \mybox{\myrule depth 15pt \leaders\bulletfill\vfill}
   \hfil
   \mybox{\myrule depth 18pt \cleaders\bulletfill\vfill}
   \hfil
   \mybox{\myrule depth 12pt \xleaders\bulletfill\vfill}%
}\hrule
\endexample\enddesc

%\begindesc
%\cts dotfill {}
%\cts hrulefill {}
%\explain
%^^{fill}
%These commands respectively fill the enclosing horizontal space with
%a row of dots on the baseline and with
%a horizontal line on the baseline.
%It's usually a good idea to leave a space between
%|\dotfill| or |\hrulefill|
%and any text that precedes or follows it (see the example below).
\begindesc
\cts dotfill {}
\cts hrulefill {}
\explain
^^{ĺĄŤĺ}
čżäşĺ˝äť¤ĺĺŤéç¨ä¸čĄä˝äşĺşçşżä¸ççšĺć°´ĺšłçşżĺĄŤĺĺ°é­çć°´ĺšłçŠşé´ă
éĺ¸¸ďźĺ¨ |\dotfill| ć |\hrulefill| ä¸äťťä˝ĺśäšĺćäšĺçćĺ­äšé´çä¸ä¸ŞçŠşć&nbsp;źćŻä¸ä¸ŞĺĽ˝çä¸ťćďźĺč§ä¸é˘çäžĺ­ďźă
\example
\hbox to 3in{ĺźĺ§ {\dotfill} çťć}
\hbox to 3in{çĺ¸čŻ­ {\hrulefill} čŹĺ°čŻ­}
|
\produces
\par\hbox to 3in{ĺźĺ§ {\dotfill} çťć}
\hbox to 3in{çĺ¸čŻ­ {\hrulefill} čŹĺ°čŻ­}
\endexample\enddesc

%\begindesc
%\cts leftarrowfill {}
%\cts rightarrowfill {}
%\explain
%^^{fill}
%These commands fill the enclosing horizontal space with
%left-pointing or right-pointing ^{arrows}.
\begindesc
\cts leftarrowfill {}
\cts rightarrowfill {}
\explain
^^{ĺĄŤĺ}
čżäşĺ˝äť¤ç¨ĺĺˇŚćĺĺłç^{çŽ­ĺ¤´}ćĽĺĄŤĺĺ°é­çć°´ĺšłçŠşé´ă
\example
\hbox to 3in{\vrule \rightarrowfill \ 3 in
             \leftarrowfill\vrule}
|
\produces
\medskip
\hbox to 3in{\vrule \rightarrowfill \ 3 in
        \leftarrowfill\vrule}
\endexample

%\eix^^{leaders}
%\enddesc
\eix^^{ćĺźçşż}
\enddesc

%==========================================================================
%\section {Alignments}
\section {éľĺ}

%==========================================================================
%\subsection {Tabbing alignments}
\subsection {ĺśčĄ¨éľĺ}

%\begindesc
%\bix^^{tabbing alignments}
%\bix^^{alignments//commands for}
%%
%\ctspecial + {{\bt \&lt;text&gt;\thinspace\&amp;\thinspace\&lt;text&gt;%
%   \thinspace\&amp; $\cdots$ \\cr}}
%\ctsxrdef{@plus}
%\cts tabalign {}
%\explain
\begindesc
\bix^^{ĺśčĄ¨éľĺ}
\bix^^{éľĺ//ç¨äşéľĺçĺ˝äť¤}
%
\ctspecial + {{\bt \&lt;text&gt;\thinspace\&amp;\thinspace\&lt;text&gt;%
   \thinspace\&amp; $\cdots$ \\cr}}
\ctsxrdef{@plus}
\cts tabalign {}
\explain
%These commands begin a single line in a  tabbed \minref{alignment}.
%The only difference between |\+| and |\tabalign| is that
%|\+| is an outer macro---you can't use it when \TeX\ is reading tokens at
%high speed \seeconcept{outer}.
ĺ¨ĺśčĄ¨\minref{éľĺ}ä¸­ďźčżäşĺ˝äť¤ĺźĺ§ĺçŹçä¸čĄă
|\+| ä¸ |\tabalign| äšé´ĺŻä¸çä¸ĺĺ¨äş |\+| ćŻä¸ä¸Şĺ¤é¨ĺŽďź
ĺ˝ \TeX\ éŤéčŻťĺčŽ°ĺˇćśďźä˝&nbsp;ä¸č˝ä˝żç¨ĺŽ\seeconcept{ĺ¤é¨ç}ă

%If you place an `|&amp;|' at a position
%to the right of all existing tabs in a tabbing alignment,
%the `|&amp;|' establishes a new tab at that position.
ĺ¨ĺśčĄ¨éľĺä¸­ďźĺŚä˝&nbsp;ĺ° `|&amp;|' ćžĺ¨ććĺˇ˛çťĺ­ĺ¨çĺśčĄ¨çŹŚçĺłäž§ďźéŁäš `|&amp;|' ĺ°ĺ¨éŁä¸Şä˝ç˝Žä¸ĺťşçŤä¸ä¸Şć°çĺśčĄ¨çŹŚă
\example
\cleartabs % Nullify any previous \settabs.
\+ {\bf if }$a[i] &lt; a[i+1]$ &amp;{\bf then}&amp;\cr
\+&amp;&amp;$a[i] := a[i+1]$;\cr
\+&amp;&amp;{\it found }$:=$ {\bf true};\cr
\+&amp;{\bf else}\cr
\+&amp;&amp;{\it found }$:=$ {\bf false};\cr
\+&amp;{\bf end if};\cr
|
\produces
\cleartabs % Nullify any previous \settabs.
\+ {\bf if }$a[i] &lt; a[i+1]$ &amp;{\bf then}&amp;\cr
\+&amp;&amp;$a[i] := a[i+1]$;\cr
\+&amp;&amp;{\it found }$:=$ {\bf true};\cr
\+&amp;{\bf else}\cr
\+&amp;&amp;{\it found }$:=$ {\bf false};\cr
\+&amp;{\bf end if};\cr
\endexample
\enddesc

\begindesc
\cts settabs {\&lt;number&gt; {\bt \\columns}}
\aux\cts settabs {{\bt \\+} \&lt;sample line&gt; {\bt \\cr}}
\explain
%The first form of
%this command defines a set of tab stops ^^{tabs}
%for a tabbing \minref{alignment}.
%It tells \TeX\ to set the tab stops so as to divide each line into
%\&lt;number&gt; equal parts.  \TeX\ takes the length of a line to be
%|\hsize|, as usual.  You can make the alignment narrower by decreasing
%|\hsize|.
čżä¸Şĺ˝äť¤ççŹŹä¸ç§ĺ˝˘ĺźä¸şĺśčĄ¨\minref{éľĺ}ĺŽäšä¸çłťĺĺśčĄ¨çŹŚ^^{ĺśčĄ¨çŹŚ}çĺć­˘ä˝ç˝Žă
ĺŽĺčŻ \TeX\ čŽžç˝ŽĺśčĄ¨çŹŚĺć­˘ä˝ç˝ŽäťĽäžżĺ°ćŻä¸čĄĺć \&lt;number&gt; ç­äť˝ă
\TeX\ äťĺ°čĄçéżĺşŚčŽžä¸ş |\hsize|ăä˝&nbsp;ĺŻäťĽéčżĺĺ° |\hsize| ćĽä˝żĺžéľĺć´ĺ&nbsp;ç´§ĺŻă
%\margin{paragraph ``The tab settings $\ldots$'' moved to below.}
\margin{``ĺśčĄ¨çŹŚčŽžĺŽ $\ldots$''ä¸ćŽľč˘Ťç§ťĺ°ä¸é˘äşă}
\example
{\hsize = 3in \settabs 3 \columns
\+$1$&amp;ä¸&amp;çŹŹä¸\cr
\+$2$&amp;äş&amp;çŹŹäş\cr
\+$3$&amp;ä¸&amp;çŹŹä¸\cr}
|
\produces
{\hsize = 3in \settabs 3 \columns
\+$1$&amp;ä¸&amp;çŹŹä¸\cr
\+$2$&amp;äş&amp;çŹŹäş\cr
\+$3$&amp;ä¸&amp;çŹŹä¸\cr}

\noindent\doruler{\8\8\8}3{in}
\smallskip
\endexample

%The second form of this command defines tab stops by setting the tab stops
%at the positions indicated by the `|&amp;|'s in the sample line.
%The sample line itself does not appear in the output.  When you
%use this form you'll usually want to put material into the sample line that is
%somewhat wider than the widest corresponding material in the alignment,
%in order to produce space between the columns.
%That's what we've done in the
%example below.  The material following the last tab
%stop is irrelevant, since \TeX\ does not need to position
%anything at the place where the |\cr|~appears.
čżä¸Şĺ˝äť¤ççŹŹäşĺŠĺ˝˘ĺźćŻĺŠç¨ć&nbsp;ˇäžčĄä¸­ç `|&amp;|' ćç¤şçä˝ç˝ŽćĽĺŽäšĺśčĄ¨çŹŚĺć­˘ä˝ç˝Žăć&nbsp;ˇäžčĄćŹčşŤä¸äźĺşç°ĺ¨ćçťčžĺşä¸­ăĺ˝ä˝&nbsp;ä˝żç¨čżç§ĺ˝˘ĺźďźä˝&nbsp;éĺ¸¸ĺ¸ćĺ°ä¸äşĺŽ˝ĺşŚĺ¤§äşéčŚćĺçćĺŽ˝çĺĺŽšćžĺ¨ć&nbsp;ˇäžčĄä¸­ďźäťĽäžżĺ¨ĺäšé´äş§çé´éăć­ŁčąĄćäťŹĺ¨ä¸é˘çäžĺ­ä¸­ćĺçéŁć&nbsp;ˇăćĺä¸ä¸ŞĺśčĄ¨çŹŚĺçĺĺŽšćŻć&nbsp;ĺłç´§čŚçďźĺ&nbsp;ä¸ş \TeX\ ĺ¨ |\cr| ĺşç°çĺ°ćšä¸éčŚäťťä˝ä˝ç˝Žćç¤şă

%The tab settings established by |\settabs| remain in effect until
%you issue a new |\settabs| command or end a group containing
%the |\settabs| command.
%This is true for both forms of the command.
çą |\settabs| ĺťşçŤčľˇćĽçĺśčĄ¨çŹŚčŽžç˝Žä¸ç´ććďźç´ĺ°ä˝&nbsp;ä˝żç¨ä¸ä¸Şć°ç |\settabs| ĺ˝äť¤ćçťćĺĺŤ |\settabs| ĺ˝äť¤ççźçťăčŻĽĺ˝äť¤çä¸¤ç§ĺ˝˘ĺźé˝ćŻčżć&nbsp;ˇçă

\example
% The first line establishes the template.
\settabs \+$1$\qquad &amp; three\quad &amp; seventh\cr
\+$1$&amp;ä¸&amp;çŹŹä¸\cr
\+$2$&amp;äş&amp;çŹŹäş\cr
\+$3$&amp;ä¸&amp;çŹŹä¸\cr
|
\produces
\settabs \+$1$\qquad &amp; three\quad &amp; seventh\cr % the sample line
\+$1$&amp;ä¸&amp;çŹŹä¸\cr
\+$2$&amp;äş&amp;çŹŹäş\cr
\+$3$&amp;ä¸&amp;çŹŹä¸\cr
\smallskip
\endexample
\enddesc

\begindesc

\cts cleartabs {}
\explain
%This command clears all the tabs to the right of the current column.
%Its main use is in applications such as typesetting computer programs
%in which the tab positions change from line to line.
čżä¸Şĺ˝äť¤ćśé¤ä˝äşĺ˝ĺĺĺłäž§çććĺśčĄ¨çŹŚăĺŽä¸ťčŚç¨äşćçčŽĄçŽćşç¨ĺşç­ä¸äşĺşç¨ďźĺ¨čżçąťĺşç¨ä¸­ďźäťä¸čĄčłĺŚä¸čĄďźĺśčĄ¨çŹŚçä˝ç˝ŽćŻĺĺçă
\enddesc

%\see |\cr|, |\endline|, |\crcr| (\xref \endline).
%\eix^^{tabbing alignments}
\see |\cr|ă|\endline|ă|\crcr|ďź\xref \endline ďźă
\eix^^{ĺśčĄ¨éľĺ}

%==========================================================================
%\subsection {General alignments}
\subsection {ĺ¸¸č§éľĺ}

\begindesc
\cts halign {{\bt \rqbraces{\&lt;preamble&gt; \\cr \&lt;row&gt; \\cr $\ldots$ \&lt;row&gt; \\cr}}}
   \xrdef{@and}\xrdef{@pound}
\aux\cts halign {{\bt to \&lt;dimen&gt;%
   \rqbraces{\&lt;preamble&gt; \\cr \&lt;row&gt; \\cr $\ldots$ \&lt;row&gt; \\cr}}}
\aux\cts halign {{\bt spread \&lt;dimen&gt;%
   \rqbraces{\&lt;preamble&gt; \\cr \&lt;row&gt; \\cr $\ldots$ \&lt;row&gt; \\cr}}}
\explain
%This command produces a horizontal \minref{alignment} consisting of a
%sequence of rows, where each row in turn contains a sequence of column
%entries.  \TeX\ adjusts the widths of the column entries to accommodate
%the widest one in each column.
čżä¸ĺ˝äť¤äş§ççąä¸çłťĺčĄçťćçć°´ĺšłç\minref{éľĺ}ďźćŻä¸čĄĺĺćŹäşä¸çłťĺçĺă\TeX\ č°čĺçĺŽ˝ĺşŚäťĽĺŽšçşłćŻä¸ĺä¸­ćĺŽ˝çéŁä¸ä¸ŞćĄçŽă

%A horizontal alignment can only appear when \TeX\ is in a vertical
%\minref{mode}.  We recommend that you first study alignments in general
%(\xref{alignment}) before you attempt to use this command.
ĺŞćĺ˝ \TeX\ ä˝äşçŤç´\minref{ć¨Ąĺź}ä¸ć°´ĺšłéľĺćč˝ĺşç°ă
ćäťŹĺťşčŽŽä˝&nbsp;ĺ¨ä˝żç¨čŻĽĺ˝äť¤äšĺéŚĺĺ­Śäš&nbsp;ä¸ä¸ĺ¸¸č§çéľĺďź\xref{éľĺ}ďźă

%An alignment consists of a ^{preamble}
%followed by the text to be aligned. The preamble,
%which describes the layout of the rows that follow, consists of a
%sequence of column templates, separated by `|&amp;|' and ended
%by |\cr|.
éľĺçą^{ĺŻźč¨}ĺéĺçéčŚćĺçćĺ­ććăĺŻźč¨ćčż°éĺčĄççĺźďź
çąä¸çłťĺĺçć¨Ąćżććďźĺäšé´çą `|&amp;|' ĺéďźç¨ |\cr| ä˝ä¸şçťćć&nbsp;ĺżă
%\bix^^{template}
%\bix^^{entry (column or row)}
%Each row consists of a sequence of column
%entries, also separated by `|&amp;|' and ended by |\cr|. Within
%a template, `|#|' indicates where \TeX\ should insert the
%corresponding text of a column entry.
%In contrast, |\settabs| uses a fixed implicit template of `|#|',
%i.e., it just inserts the text as is.
\bix^^{ć¨Ąćż}
\bix^^{ćĄçŽďźĺ¨čĄćĺä¸­ďź}
ćŻä¸čĄçąä¸çłťĺĺçćĄçŽććďźäšçą `|&amp;|' ĺéďźç¨ |\cr| ä˝ä¸şçťćć&nbsp;ĺżă
ĺ¨ć¨Ąćżä¸­ďź`|#|' čĄ¨ç¤ş \TeX\ ĺşčŻĽĺ¨ä¸ä¸ŞĺćĄçŽä¸­ćĺĽç¸ĺşćĺ­çä˝ç˝Žă
ä¸äšç¸ĺďź|\settabs| ä˝żç¨ `|#|' çĺşĺŽéĺźć¨ĄćżďźĺłĺŽĺŞćĺĽćĺ­ćŹčşŤă

%\TeX\ typesets each column entry in restricted horizontal mode,
%i.e., as the contents of an \minref{hbox},
%and implicitly encloses it in a group.
\TeX\ ĺ¨ĺéć°´ĺšłć¨Ąĺźä¸­ĺŻšćŻä¸ĺćĄçŽčżčĄćçďźĺłĺ \minref{hbox} çĺĺŽšä¸ć&nbsp;ˇďźĺšśä¸éĺźĺ°ĺ°ĺŽĺ°é­ĺ¨ä¸ä¸Şçźçťä¸­ă

%The |to| form of this command instructs \TeX\
%to make the width of the alignment be \&lt;dimen&gt;,
%adjusting the space between columns as necessary.
%The |spread| form of this command instructs \TeX\
%to make the alignment wider by \&lt;dimen&gt; than its natural width.
%These forms are like the corresponding forms of |\hbox| \ctsref\hbox.
čżä¸Şĺ˝äť¤ç |to| ĺ˝˘ĺźćĺŻź \TeX\ ćé&nbsp;ä¸ä¸ŞĺŽ˝ĺşŚä¸ş \&lt;dimen&gt; çéľĺďźĺ¨éčŚçćśĺč°čĺçé´čˇă
čżä¸Şĺ˝äť¤ç |spread| ĺ˝˘ĺźćĺŻź \TeX\ ćé&nbsp;ä¸ä¸ŞćŻĺśćŹčşŤĺŽ˝ĺşŚĺĺŽ˝ \&lt;dimen&gt; çéľĺă
čżäşĺ˝˘ĺźä¸ |\hbox|\ctsref\hbox ç¸ĺşçĺ˝˘ĺźćŻçąťäźźçă

%See |\tabskip| \ctsref\tabskip{} for an example using the
%|to| form.
ĺč§ |\tabskip| \ctsref\tabskip{}ä¸­ä˝żç¨ |to| ĺ˝˘ĺźçäžĺ­ă

\example
\tabskip = 1em \halign{%
   \hfil\it#\hfil&amp;\hfil#\hfil&amp;#&amp;\hfil\$#\cr
      çžĺ˝&amp;ĺçéĄż&amp;çžĺ&amp;1.00\cr
      ćłĺ˝&amp;ĺˇ´éť&amp;ćłć&amp;0.174\cr
      äťĽč˛ĺ&amp;čśčˇŻćĺˇ&amp;ć°č°˘ĺĺ°&amp;0.507\cr
      ćĽćŹ&amp;ä¸äşŹ&amp;ćĽĺ&amp;0.0829\cr}
|
\produces
\tabskip = 1em \halign{%
   \hfil\it#\hfil&amp;\hfil#\hfil&amp;#&amp;\hfil\$#\cr
      çžĺ˝&amp;ĺçéĄż&amp;çžĺ&amp;1.00\cr
      ćłĺ˝&amp;ĺˇ´éť&amp;ćłć&amp;0.174\cr
      äťĽč˛ĺ&amp;čśčˇŻćĺˇ&amp;ć°č°˘ĺĺ°&amp;0.507\cr
      ćĽćŹ&amp;ä¸äşŹ&amp;ćĽĺ&amp;0.0829\cr}
\endexample
\enddesc

\begindesc
{\tighten
\cts valign {{\bt \rqbraces{\&lt;preamble&gt;\\cr \&lt;column&gt;\\cr $\ldots$
   \&lt;column&gt;\\cr}}}
\aux\cts valign {{\bt to \&lt;dimen&gt;%
   \rqbraces{\&lt;preamble&gt;\\cr \&lt;column&gt;\\cr $\ldots$ \&lt;column&gt;\\cr}}}
\aux\cts valign {{\bt spread \&lt;dimen&gt;%
   \rqbraces{\&lt;preamble&gt;\\cr \&lt;column&gt;\\cr $\ldots$ \&lt;column&gt;\\cr}}}
\par}
\explain
%This command produces a vertical \minref{alignment}
%consisting of
%a sequence of columns, where each column in turn contains a sequence
%of row entries.
%\TeX\ adjusts the heights of the row entries to accommodate the tallest one
%in each row.
čżä¸ĺ˝äť¤äş§ççąä¸çłťĺĺçťćççŤç´ç\minref{éľĺ}ďźćŻä¸ĺĺĺćŹäşä¸çłťĺçčĄă
\TeX\ č°ččĄçéŤĺşŚäťĽĺŽšçşłćŻä¸ĺä¸­ćéŤçéŁä¸ä¸ŞćĄçŽă

%A vertical alignment
%can only appear when \TeX\ is in a horizontal \minref{mode}.
%Because vertical alignments are (a)~conceptually somewhat difficult and
%(b)~not often used, we recommend that you learn about
%alignments in general
%(\xref{alignment}) and the |\halign| command (see above) before
%you attempt to use the |\valign| command.
ĺŞćĺ˝ \TeX\ ä˝äşć°´ĺšł\minref{ć¨Ąĺź}ä¸çŤç´éľĺćč˝ĺşç°ă
ĺ&nbsp;ä¸şçŤç´éľĺďźaďźĺ¨ćŚĺżľä¸ćä¸äşĺ°éžďźĺšśä¸ďźbďźä¸çťĺ¸¸ä˝żďź
ĺ&nbsp;ć­¤ďźćäťŹĺťşčŽŽĺ¨ä˝&nbsp;čŻĺžä˝żç¨ |\valign| ĺ˝äť¤äšĺéŚĺĺ­Śäš&nbsp;ä¸ä¸ĺ¸¸č§çéľĺďź\xref{éľĺ}ďź%
äťĽĺ |\halign| ĺ˝äť¤ďźĺč§ä¸é˘çćčż°ďźă

%An alignment consists of a ^{preamble}
%followed by the text to be aligned. The preamble,
%which describes the layout of the columns that follow,
%consists of a
%sequence of row templates, separated by `|&amp;|' and ended
%by |\cr|.
éľĺçą^{ĺŻźč¨}ĺéĺçéčŚćĺçćĺ­ććăĺŻźč¨ćčż°éĺĺççĺźďź
çąä¸çłťĺčĄçć¨Ąćżććďźĺäšé´çą `|&amp;|' ĺéďźç¨ |\cr| ä˝ä¸şçťćć&nbsp;ĺżă
%\bix^^{template}
%Each column consists of a sequence of ^{row}
%entries, also separated by `|&amp;|' and ended by |\cr|. Within
%a template, `|#|' indicates where \TeX\ should insert the
%corresponding text of a row entry.
\bix^^{ć¨Ąćż}
ćŻä¸ĺçąä¸çłťĺčĄçćĄçŽććďźäšçą `|&amp;|' ĺéďźç¨ |\cr| ä˝ä¸şçťćć&nbsp;ĺżă
ĺ¨ć¨Ąćżä¸­ďź`|#|' čĄ¨ç¤ş \TeX\ ĺşčŻĽĺ¨ä¸ä¸ŞčĄćĄçŽä¸­ćĺĽç¸ĺşćĺ­çä˝ç˝Žă

%\TeX\ typesets each row entry in internal vertical
%mode, i.e., as the contents of a \minref{vbox},
%and implicitly encloses the entry in a group.
%It always gives the vbox zero depth.
%Any text or other horizontal mode material in a row entry then puts \TeX\
%into ordinary horizontal mode.
%(This is just an application of the general rules for \TeX's behavior
%in internal vertical mode.)
%The usual paragraphing parameters apply in this case:
%the row entry has an initial
%indentation of |\parindent| (\xref\parindent) and
%its lines have the
%|\leftskip| and |\rightskip| (\xref\leftskip) \minref{glue}
%appended to~them.
\TeX\ ĺ¨ĺé¨çŤç´ć¨Ąĺźä¸­ĺŻšćŻä¸čĄćĄçŽčżčĄćçďźĺłĺ\minref{çŤç´çĺ­}çĺĺŽšä¸ć&nbsp;ˇďź
ĺšśä¸éĺźĺ°ĺ°ĺŽĺ°é­ĺ¨ä¸ä¸Şçźçťä¸­ăĺŽćťćŻĺ° vbox çćˇąĺşŚčŽžä¸şéśă
éĺďźĺä¸­çäťťä˝ćĺ­ćĺśĺŽć°´ĺšłć¨ĄĺźĺĺŽšĺ° \TeX\ ĺ¸Śĺéĺ¸¸çć°´ĺšłć¨Ąĺźă%
ďźčżĺŞćŻĺ¨ĺé¨çŤç´ć¨Ąĺźä¸ \TeX čĄä¸şĺ¸¸č§ĺĺçä¸ä¸Şĺşç¨ăďźĺ¸¸č§çćŽľč˝ĺć°éç¨äşčżç§ćĺ˝˘ďź
čĄćĄçŽĺˇć |\parindent|ďź\xref\parindent ďźçčľˇĺ§çźŠčżďź
čä¸ĺŽçćŻä¸čĄé˝éĺ&nbsp;äş |\leftskip| ĺ |\rightskip|ďź\xref\leftskip ďź\minref{ç˛čż}ă

%Note in particular that a row entry containing text has
%a width of |\hsize| (\xref\hsize).  Unless you reset
%|\hsize| to the row width that you want, you're likely to
%encounter overfull \minref{hbox}es, or find that
%the first column takes up the width of the entire page, or both.
ĺ°¤ĺśéčŚćł¨ćçćŻďźĺćĄçŽĺĺŤçćĺ­ĺˇć |\hsize|ďź\xref\hsize ďźçĺŽ˝ĺşŚă
é¤éä˝&nbsp;éć°čŽžç˝Ž |\hsize| ĺ°ä˝&nbsp;ĺ¸ćĺžĺ°çčĄĺŽ˝ďźĺŚĺä˝&nbsp;ćťč˝éĺ°čżćťĄ\minref{ć°´ĺšłçĺ­}çćĺľďź
ćčĺç°çŹŹä¸ĺĺ&nbsp;ćŽäşć´éĄľçĺŽ˝ĺşŚďźćčä¸¤ç§ćĺľé˝äźĺşç°ă
\eix^^{ćĄçŽďźĺ¨čĄćĺä¸­ďź}

%Normally, you need to include a \minref{strut}
%^^{struts//in vertical alignments}
%in each
%template so that the rows don't come out crooked as a result
%of the varying heights of the entries in the alignment.  You
%can produce a strut with the |\strut| command.
ć­Łĺ¸¸ćĺľä¸ďźä˝&nbsp;éčŚĺ¨ćŻä¸Şć¨Ąćżä¸­ĺćŹ\minref{ćŻćś}^^{ćŻćś//ĺ¨çŤç´éľĺä¸­}ďź
äťĽäžżčĄä¸äźçąäşéľĺä¸­ćĄçŽéŤĺşŚçĺĺčĺĺžĺźŻć˛ăä˝&nbsp;ĺŻäťĽä˝żç¨ |\strut| čˇĺžćŻćśă

%The |to| form of this command instructs \TeX\
%to make the vertical extent of the alignment be \&lt;dimen&gt;,
%adjusting the space between rows as necessary.
%The |spread| form of this command instructs \TeX\
%to make the alignment taller by \&lt;dimen&gt; than its natural height.
%These forms are like the corresponding forms of |\vbox| \ctsref\vbox.
čżä¸Şĺ˝äť¤ç |to| ĺ˝˘ĺźćĺŻź \TeX\ ćé&nbsp;ä¸ä¸ŞçŤç´äź¸ĺąä¸ş \&lt;dimen&gt; çéľĺďźĺ¨éčŚçćśĺč°ččĄçé´čˇă
čżä¸Şĺ˝äť¤ç |spread| ĺ˝˘ĺźćĺŻź \TeX\ ćé&nbsp;ä¸ä¸ŞćŻĺśćŹčşŤéŤĺşŚĺéŤ \&lt;dimen&gt; çéľĺă
čżäşĺ˝˘ĺźä¸ |\vbox| \ctsref\vbox ç¸ĺşçĺ˝˘ĺźćŻçąťäźźçă

\example
{\hsize=1in \parindent=0pt
\valign{#\strut&amp;#\strut&amp;#\strut&amp;#\strut\cr
   bernaise&amp;curry&amp;hoisin&amp;hollandaise\cr
   ketchup&amp;marinara&amp;mayonnaise&amp;mustard\cr
   rarebit&amp;tartar\cr}}
|
\produces
{\hsize=1in \parindent=0pt \leftskip=0pt
\valign{#\strut&amp;#\strut&amp;#\strut&amp;#\strut\cr
   bernaise&amp;curry&amp;hoisin&amp;hollandaise\cr
   ketchup&amp;marinara&amp;mayonnaise&amp;mustard\cr
   rarebit&amp;tartar\cr}}
\nextexample
% ä¸ä¸äžç¸ĺçĺĺŽšďźä˝ć˛ĄććŻćś
%ďźčżä¸Şäžĺ­ćžç¤şäşćŻćśĺ­ĺ¨çĺżčŚć§ďźă
{\hsize=1in \parindent=0pt
\valign{#&amp;#&amp;#&amp;#\cr
   bernaise&amp;curry&amp;hoisin&amp;hollandaise\cr
   ketchup&amp;marinara&amp;mayonnaise&amp;mustard\cr
   rarebit&amp;tartar\cr}}
|
\produces
{\hsize=1in \parindent=0pt \leftskip=0pt
\valign{#&amp;#&amp;#&amp;#\cr
   bernaise&amp;curry&amp;hoisin&amp;hollandaise\cr
   ketchup&amp;marinara&amp;mayonnaise&amp;mustard\cr
   rarebit&amp;tartar\cr}}
\endexample
\enddesc

\begindesc
\cts ialign {}
\explain
%This command behaves just like ^|\halign|,
%except that it first sets the |\tabskip| glue to zero and
%sets |\everycr| empty.
é¤äşéŚĺĺ° |\tabskip| ç˛čżčŽžä¸şéśďźĺšśĺ° |\everycr| ć¸çŠşäťĽĺ¤ďźčżä¸Şĺ˝äť¤çčĄä¸şä¸ ^|\halign| ç¸äźźă
\enddesc

\begindesc
\cts cr {}
\explain
%This command ends the preamble of a horizontal or vertical
%alignment, a row of a horizontal or tabbing alignment,
%or a column of a vertical alignment.
%You can cause \TeX\ to take certain actions whenever it sees a |\cr|
%by setting the value of the ^|\everycr| parameter \ctsref\everycr.
čżä¸Şĺ˝äť¤ç¨äşçťćć°´ĺšłćçŤç´éľĺçĺŻźč¨ăć°´ĺšłçćĺśčĄ¨éľĺçčĄďźćçŤç´éľĺçĺăä˝&nbsp;ĺŻäťĽéčżčŽžç˝Ž ^|\everycr|\ctsref\everycr ĺć°çĺźďźĺźĺŻź \TeX\ éĺçšĺŽçčĄĺ¨ďźć&nbsp;čŽşäťäšćśĺĺŽéĺ° |\cr|ă
\enddesc

\begindesc
\cts endline {}
\explain
%This command is a synonym for the ^|\cr| command.  It is useful when
%you've redefined |\cr| but still need access to the original definition.
čżä¸Şĺ˝äť¤ćŻ ^|\cr| çĺŚä¸ç§ĺ˝˘ĺźăĺ¨ä˝&nbsp;éć°ĺŽäšäş |\cr|ďźä˝čżéčŚĺŠç¨ĺśĺĺ§çĺŽäšćŻďźčżä¸Şĺ˝äť¤ćŻćç¨çă
\enddesc

\begindesc
\cts crcr {}
\explain
%This command behaves just like ^|\cr|, except that \TeX\ ignores it if
%it comes immediately after a |\cr| or a ^|\noalign|.
%Its main application is as a safety measure to avoid a misleading error
%message caused by a \minref{macro} that expects an argument ending in |\cr|.
%If you put |\crcr| after the `|#|$n$' that denotes such an argument
%in the macro's definition, the
%macro will work properly whether or not the argument ends with |\cr|.
ĺŚćčŻĽĺ˝äť¤ç´§é |\cr| ć ^|\noalign| äšĺĺşç°ďź\TeX\ äźĺż˝çĽĺŽăé¤ć­¤äšĺ¤ďźĺŽçčĄä¸şä¸ ^|\cr| çąťäźźăĺŽä¸ťčŚçĺşç¨ćŻä˝ä¸şä¸ç§ĺŽĺ¨ćŞć˝äťĽéżĺçąććäťĽ |\cr| ä˝ä¸şçťćçŹŚç\minref{ĺŽĺ}čĺźčľˇçéčŻŻäżĄćŻăĺŚćä˝&nbsp;ĺ° |\crcr| ćžĺ¨ç¨äťĽčĄ¨ç¤şĺŽĺŽäšä¸­ć­¤çąťĺć°çĺé˘ďźĺŽĺ°ć­Łĺ¸¸ĺˇĽä˝ďźć&nbsp;čŽşĺśĺć°ćŻĺŚäťĽ |\cr| ä˝ä¸şçťćć&nbsp;čŽ°ă
\enddesc

\begindesc
\cts omit {}
\explain
%This command tells \TeX\ to ignore a template in a horizontal or vertical
%\minref{alignment} while processing a particular column or row entry
%respectively.
%|\omit| must appear as the first item in a column or row entry; in effect,
%it overrides the template from the preamble with the simple
%template `|#|'.
čżä¸Şĺ˝äť¤ĺčŻ \TeX\ ĺ¨ĺ¤ççšĺŽçĺćčĄćĄçŽćśďźĺż˝çĽć°´ĺšłçćçŤç´ç\minref{éľĺ} ä¸­çä¸ä¸Şć¨Ąćżă|\omit| ĺżéĄťäťĽçŹŹä¸ä¸ŞéĄšçŽĺşç°ĺ¨ĺćčĄćĄçŽä¸­ďźĺŽććĺ°ä˝żç¨çŽĺçć¨Ąćż `|#|' čŚçćĽčŞĺŻźč¨ä¸­çć¨Ąćżă

\example
\tabskip = 2em\halign{%
   \hfil\it#\hfil&amp;\hfil#\hfil&amp;#&amp;\hfil\$#\cr
   çžĺ˝&amp;ĺçéĄż&amp;çžĺ&amp;1.00\cr
   \omit \dotfill ćłĺ˝\dotfill&amp;ĺˇ´éť&amp;ćłć&amp;0.174\cr
   äťĽč˛ĺ&amp;čśčˇŻćĺˇ&amp;ć°č°˘ĺĺ°&amp;0.507\cr
   ćĽćŹ&amp;ä¸äşŹ&amp;ćĽĺ&amp;0.0829\cr}

|
\produces
\tabskip = 2em\halign{%
   \hfil\it#\hfil&amp;\hfil#\hfil&amp;#&amp;\hfil\$#\cr
   çžĺ˝&amp;ĺçéĄż&amp;çžĺ&amp;1.00\cr
   \omit \dotfill ćłĺ˝\dotfill&amp;ĺˇ´éť&amp;ćłć&amp;0.174\cr
   äťĽč˛ĺ&amp;čśčˇŻćĺˇ&amp;ć°č°˘ĺĺ°&amp;0.507\cr
   ćĽćŹ&amp;ä¸äşŹ&amp;ćĽĺ&amp;0.0829\cr}
\nextexample
{\hsize=1.2in \parindent=0pt
\valign{(#)\strut&amp;(#)\strut&amp;(#)\strut&amp;(#)\strut\cr
   bernaise&amp;curry&amp;hoisin&amp;hollandaise\cr
   ketchup&amp;\omit\strut{\bf MARINARA!!}&amp;mayonnaise&amp;mustard\cr
   rarebit&amp;tartar\cr}}
|
\produces
{\hsize=1.2in \parindent=0pt \leftskip=0pt
\valign{(#)\strut&amp;(#)\strut&amp;(#)\strut&amp;(#)\strut\cr
   bernaise&amp;curry&amp;hoisin&amp;hollandaise\cr
   ketchup&amp;\omit\strut{\bf MARINARA!}&amp;mayonnaise&amp;mustard\cr
   rarebit&amp;tartar\cr}}
\endexample
\enddesc

\begindesc
\cts span {}
\explain
%The meaning of this command depends on whether it appears in a preamble
%or in an alignment entry.
%\ulist
%\li Normally, \TeX\ does not expand tokens in the preamble
%when it reads them.
%Putting |\span| in front of a token in the preamble causes
%that token to be expanded immediately according to \TeX's usual rules
%of \minref{macro} expansion.
%\li Putting |\span| instead of `|&amp;|' between two column or row entries
%causes those columns or rows to be combined.
%For a horizontal alignment,
%the width of the combined column is the sum of the
%widths of the component columns.
%For a vertical alignment,
%the height of the combined row is the sum of the
%heights of the component rows.
%The template of the combined column or combined row forms a single group,
%so font-setting commands preceding a |\span| affect everything up to
%the next `|&amp;|'.
%\endulist
%\noindent
%|\span| is rarely useful by itself outside of a template,
%but it provides the basic mechanism
%for defining ^|\multispan|.
čżä¸Şĺ˝äť¤çćäšĺĺłäşĺŽĺşç°ĺ¨ĺŻźč¨ä¸­ďźčżćŻĺ¨éľĺćĄçŽä¸­ă
\ulist
\li éĺ¸¸ďź\TeX\ ĺšśä¸ćŠĺąĺŽčŻťĺĽçĺŻźč¨ä¸­çčŽ°ĺˇăĺ° |\span| ćžĺ¨ĺŻźč¨ä¸­čŽ°ĺˇçĺé˘ďźć&nbsp;šćŽ\minref{ĺŽ}ćŠĺąç \TeX ĺ¸¸ç¨č§ĺďźäźĺŻźč´čżäşčŽ°ĺˇçŤĺłĺžĺ°ćŠĺąă
\li ç¨ |\span| ĺäťŁ `|&amp;|'ďźćžĺ¨ä¸¤ĺćä¸¤čĄćĄçŽäšĺďźäźĺŻźč´čżäşĺćčĄĺĺšśĺ°ä¸čľˇăĺŻšäşć°´ĺšłéľĺďźĺĺšśçĺçĺŽ˝ĺşŚćŻĺćĺĺŽ˝ĺşŚäšĺăĺŻšäşçŤç´éľĺďźĺĺšśçčĄçéŤĺşŚćŻčĄćĺéŤĺşŚäšĺăĺĺšśçčĄćĺĺšśçĺçć¨Ąćżĺ˝˘ćä¸ä¸Şçźçťďźĺ&nbsp;ć­¤ďźĺ¨ |\span| ĺçĺ­ä˝čŽžç˝Žĺ˝äť¤ĺ˝ąĺä¸ä¸ä¸Ş `|&amp;|' ĺçä¸ĺă
\endulist
\noindent
|\span| ĺžĺ°ĺçŹç¨ĺ¨ć¨Ąćżäšĺ¤ďźä˝ĺŽä¸şĺŽäš ^|\multispan| ćäžäşĺşćŹçćşĺśă
\enddesc

\begindesc
\cts multispan {\&lt;number&gt;}
\explain
%This command tells \TeX\ that the following
%\&lt;number&gt; columns in a row of a horizontal alignment,
%or
%\&lt;number&gt; rows in a column of a vertical alignment,
%should be combined into a single column or row (as with
%|\span|) and that their templates should be omitted (as with |\omit|).
čŻĽĺ˝äť¤ĺčŻ \TeX ďźéĺć°´ĺšłéľĺçčĄä¸­ç \&lt;number&gt; ĺćçŤç´éľĺçĺä¸­ç \&lt;number&gt; čĄĺşčŻĽĺĺšśćä¸ä¸ŞĺçŹçĺćčĄďźĺ°ąĺ |\span| éŁć&nbsp;ˇďźďźĺšśä¸ĺŽäťŹçć¨ĄćżĺşčŻĽč˘Ťĺż˝çĽďźĺ°ąĺ |\omit| éŁć&nbsp;ˇďźă

\example
\tabskip = 13pt\halign{%
   \hfil\it#\hfil&amp;\hfil#\hfil&amp;#&amp;\hfil\$#\cr
   çžĺ˝&amp;ĺçéĄż&amp;çžĺ&amp;1.00\cr
   ćłĺ˝&amp;ĺˇ´éť&amp;ćłć&amp;0.174\cr
   äťĽč˛ĺ&amp;čśčˇŻćĺˇ&amp;
   \multispan 2 \hfil\it(ć&nbsp;äżĄćŻ)\hfil \cr
   ćĽćŹ&amp;ä¸äşŹ&amp;ćĽĺ&amp;0.0829\cr}
|
\produces
\tabskip = 13pt\halign{%
   \hfil\it#\hfil&amp;\hfil#\hfil&amp;#&amp;\hfil\$#\cr
   çžĺ˝&amp;ĺçéĄż&amp;çžĺ&amp;1.00\cr
   ćłĺ˝&amp;ĺˇ´éť&amp;ćłć&amp;0.174\cr
   äťĽč˛ĺ&amp;čśčˇŻćĺˇ&amp;
   \multispan 2 \hfil\it(ć&nbsp;äżĄćŻ)\hfil \cr
   ćĽćŹ&amp;ä¸äşŹ&amp;ćĽĺ&amp;0.0829\cr}
\nextexample
{\hsize=1.2in \parindent=0pt
\valign{(#)\strut&amp;(#)\strut&amp;(#)\strut&amp;(#)\strut\cr
   bernaise&amp;curry&amp;hoisin&amp;hollandaise\cr
   \multispan 3$$\left\{{{\rm ketchup}\atop{\rm marinara}}
      \right\}$$&amp;mustard\cr
   rarebit&amp;tartar\cr}}
|
\produces
{\hsize=1.2in \parindent=0pt \leftskip=0pt
\valign{(#)\strut&amp;(#)\strut&amp;(#)\strut&amp;(#)\strut\cr
   bernaise&amp;curry&amp;hoisin&amp;hollandaise\cr
   \multispan 3$$\left\{{{\rm ketchup}\atop{\rm marinara}}
      \right\}$$&amp;mustard\cr
   rarebit&amp;tartar\cr}}
\endexample

%\eix^^{template}
%\enddesc
\eix^^{ć¨Ąćż}
\enddesc

\begindesc
\cts noalign {\rqbraces{\&lt;vertical mode material&gt;}}
\aux\cts noalign {\rqbraces{\&lt;horizontal mode material&gt;}}
\explain
%This command inserts
%\&lt;vertical mode material&gt;
%after the current row of a horizontal \minref{alignment} or
%\&lt;horizontal mode material&gt; after the current column of a vertical
%\minref{alignment}.
%The material can be text, glue, a rule, or anything else.
čŻĽĺ˝äť¤ĺ¨ć°´ĺšł\minref{éľĺ}çĺ˝ĺčĄäšĺćĺĽ \&lt;vertical mode material&gt;ďźćčĺ¨çŤç´\minref{éľĺ}çĺ˝ĺĺäšĺćĺĽ \&lt;horizontal mode material&gt;ăćĺĽçĺĺŽšĺŻäťĽćŻććŹăç˛čżăć&nbsp;çşżďźćčĺśĺŽäťťä˝ä¸čĽżă

%The most common use of |\noalign|
%is to put extra space after a row or column.
%If you want to put extra space after \emph{every\/} row of a horizontal
%alignment, use ^|\openup| (\xref\openup).
|\noalign| ćĺ¸¸č§çç¨éćŻĺ¨ä¸čĄćĺĺćĺĽé˘ĺ¤çé´éăĺŚćä˝&nbsp;ĺ¸ćĺ¨ć°´ĺšłéľĺç\emph{ćŻ}čĄĺé˝ćĺĽé˘ĺ¤çé´éďźĺŻäťĽä˝żç¨ ^|\openup|ďź\xref\openupďźă

\example
\halign{%
   \hfil\it#\hfil\tabskip=2em&amp;\hfil#\hfil&amp;#&amp;
      \hfil\$#\tabskip=0em\cr
   % ćšĺ \tabskip ĺ°éťć­˘ä¸é˘çć&nbsp;çşżçŞĺşćĽă
   çžĺ˝&amp;ĺçéĄż&amp;çžĺ&amp;1.00\cr
   ćłĺ˝&amp;ĺˇ´éť&amp;ćłć&amp;0.174\cr
   \noalign{\smallskip\hrule\smallskip}
   äťĽč˛ĺ&amp;čśčˇŻćĺˇ&amp;ć°č°˘ĺĺ°&amp;0.507\cr
   ćĽćŹ&amp;ä¸äşŹ&amp;ćĽĺ&amp;0.0829\cr}
|
\produces
\halign{%
   \hfil\it#\hfil\tabskip=2em&amp;\hfil#\hfil&amp;#&amp;
      \hfil\$#\tabskip=0em\cr
   % The \tabskip changes prevent the rule below
   % from sticking out.
   çžĺ˝&amp;ĺçéĄż&amp;çžĺ&amp;1.00\cr
   ćłĺ˝&amp;ĺˇ´éť&amp;ćłć&amp;0.174\cr
   \noalign{\smallskip\hrule\smallskip}
   äťĽč˛ĺ&amp;čśčˇŻćĺˇ&amp;ć°č°˘ĺĺ°&amp;0.507\cr
   ćĽćŹ&amp;ä¸äşŹ&amp;ćĽĺ&amp;0.0829\cr}
\nextexample
{\hsize=1in \parindent=0pt
\valign{#\strut&amp;#\strut&amp;#\strut&amp;#\strut\cr
   \noalign{\vrule width 2pt\quad}
   bernaise&amp;curry&amp;hoisin&amp;hollandaise\cr
   \noalign{\vrule width 2pt\quad}
   ketchup&amp;marinara&amp;mayonnaise&amp;mustard\cr
   \noalign{\vrule width 2pt\quad}
   rarebit&amp;tartar\cr
   \noalign{\vrule width 2pt\quad}}}
|
\produces
\medskip
{\hsize=1in \parindent=0pt
\valign{#\strut&amp;#\strut&amp;#\strut&amp;#\strut\cr
   \noalign{\vrule width 2pt\quad}
   bernaise&amp;curry&amp;hoisin&amp;hollandaise\cr
   \noalign{\vrule width 2pt\quad}
   ketchup&amp;marinara&amp;mayonnaise&amp;mustard\cr
   \noalign{\vrule width 2pt\quad}
   rarebit&amp;tartar\cr
   \noalign{\vrule width 2pt\quad}}}
\endexample
\enddesc

\begindesc
\cts tabskip {\param{glue}}
\explain
%This parameter specifies the amount of horizontal or vertical glue
%that \TeX\ puts between the
%columns of a horizontal alignment or between the
%rows of a vertical alignment.
%\TeX\ also puts the |\tabskip| glue
%to the left of the first column and to the right of the last column
%of a horizontal alignment, and
%above the first row
%and below the last row of a vertical alignment.
%You can change |\tabskip| within a template---%
%the change will affect the glue associated with all the following
%|&amp;|'s as well as the glue after the last row or column.
čŻĽĺć°ćĺŽ \TeX ĺ¨ć°´ĺšłéľĺçĺäšé´ćçŤç´éľĺçčĄäšé´ćžç˝Žć°´ĺšłćçŤç´ç˛čżçéă\TeX\ äšĺ¨ć°´ĺšłéľĺççŹŹä¸ĺçĺˇŚäž§ĺćĺä¸čĄçĺłäž§ďźäťĽĺçŤç´éľĺççŹŹä¸čĄçä¸çŤŻĺćĺä¸čĄçä¸çŤŻćžç˝Ž |\tabskip| ç˛čżăä˝&nbsp;ĺŻäťĽĺ¨ć¨Ąćżä¸­ćšĺ |\tabskip|---čżä¸ćšĺĺ°ĺ˝ąĺććç´§ćĽĺśĺç |&amp;| çç˛čżäťĽĺćĺä¸čĄćĺäšĺçç˛čżă
\example
\halign to 3.5in{%
   \hfil\it#\tabskip = 2em plus 8pt
      \hfil&amp;\hfil#\hfil&amp;#\tabskip = 1em
      &amp;\hfil\$#\tabskip = 0em\cr
      çžĺ˝&amp;ĺçéĄż&amp;çžĺ&amp;1.00\cr
      ćłĺ˝&amp;ĺˇ´éť&amp;ćłć&amp;0.174\cr
      äťĽč˛ĺ&amp;čśčˇŻćĺˇ&amp;ć°č°˘ĺĺ°&amp;0.507\cr
      ćĽćŹ&amp;ä¸äşŹ&amp;ćĽĺ&amp;0.0829\cr}
|
\produces
\halign to 3.5in{%
   \hfil\it#\tabskip = 2em plus 8pt
      \hfil&amp;\hfil#\hfil&amp;#\tabskip = 1em
      &amp;\hfil\$#\tabskip = 0em\cr
      çžĺ˝&amp;ĺçéĄż&amp;çžĺ&amp;1.00\cr
      ćłĺ˝&amp;ĺˇ´éť&amp;ćłć&amp;0.174\cr
      äťĽč˛ĺ&amp;čśčˇŻćĺˇ&amp;ć°č°˘ĺĺ°&amp;0.507\cr
      ćĽćŹ&amp;ä¸äşŹ&amp;ćĽĺ&amp;0.0829\cr}
\nextexample
{\hsize = 1in \parindent=0pt \tabskip=5pt
\valign{#\strut&amp;#\strut\tabskip = 3pt
   &amp;#\strut&amp;#\strut\cr
   bernaise&amp;curry&amp;hoisin&amp;hollandaise\cr
   ketchup&amp;marinara&amp;mayonnaise&amp;mustard\cr
   rarebit&amp;tartar\cr}}
|
\produces
{\hsize = 1in \parindent=0pt \tabskip=5pt
\valign{#\strut&amp;#\strut\tabskip = 3pt
   &amp;#\strut&amp;#\strut\cr
   bernaise&amp;curry&amp;hoisin&amp;hollandaise\cr
   ketchup&amp;marinara&amp;mayonnaise&amp;mustard\cr
   rarebit&amp;tartar\cr}}
\endexample
\enddesc

\begindesc
\cts hidewidth {}
\explain
%This command tells \TeX\ to ignore the width of the next column entry in a
%horizontal alignment.  It's useful when you have an entry that is longer
%than most of the others in the same column,
%and you'd rather have that entry stick out of the column than
%make all the entries
%in the column wider.  If the |\hidewidth| is at the left of the
%entry, the entry sticks out to the left; if the |\hidewidth| is at the
%right of the entry, the entry sticks out to the~right.
čŻĽĺ˝äť¤ĺčŻ \TeX\ ĺż˝çĽć°´ĺšłéľĺä¸­ä¸ä¸ä¸ŞĺćĄçŽçĺŽ˝ĺşŚăĺŚćä˝&nbsp;ćä¸ä¸ŞćĄçŽéżäşĺä¸ĺä¸­ĺśĺŽĺ¤§ĺ¤ć°ďźĺšśä¸ ďźä˝&nbsp;ĺ¸ććĄçŽäź¸ĺ°ĺĺ¤ďźčä¸ćŻä˝żĺžčŻĽćĄçŽćĺ¨ĺĺĺžć´ĺŽ˝ćśďźčŻĽĺ˝äť¤ćŻćç¨çăĺŚć |\hidewidth| ĺ¨ćĄçŽçĺˇŚäž§ďźĺćĄçŽĺĺˇŚäź¸ĺąďźĺŚć |\hidewidth| ĺ¨ćĄçŽçĺłäž§ďźĺćĄçŽĺĺłäź¸ĺąă
\example
\tabskip = 25pt\halign{%
   \hfil\it#\hfil&amp;\hfil#\hfil&amp;#&amp;\hfil\$#\cr
   çžĺ˝&amp;\hidewidth ĺçéĄż&amp;çžĺ&amp;1.00\cr
   ćłĺ˝&amp;ĺˇ´éť&amp;ćłć&amp;0.174\cr
   äťĽč˛ĺ&amp;čśčˇŻćĺˇ&amp;ć°č°˘ĺĺ°&amp;0.507\cr
   ćĽćŹ&amp;ä¸äşŹ&amp;ćĽĺ&amp;0.0829\cr}
|
\produces
\tabskip = 25pt\halign{%
   \hfil\it#\hfil&amp;\hfil#\hfil&amp;#&amp;\hfil\$#\cr
   çžĺ˝&amp;\hidewidth ĺçéĄż&amp;çžĺ&amp;1.00\cr
   ćłĺ˝&amp;ĺˇ´éť&amp;ćłć&amp;0.174\cr
   äťĽč˛ĺ&amp;čśčˇŻćĺˇ&amp;ć°č°˘ĺĺ°&amp;0.507\cr
   ćĽćŹ&amp;ä¸äşŹ&amp;ćĽĺ&amp;0.0829\cr}
\endexample
\enddesc

\begindesc
\cts everycr {\param{token list}}
\explain
%\TeX\ expands \&lt;token list&gt; whenever it executes
%a |\cr|---at the end of every preamble,
%at the end of every row of a horizontal alignment,
%and at the end of every column of a vertical alignment.
%The |\everycr| commands are expanded just after the |\cr|.
%Thus you can cause \TeX\ to
%execute certain commands at the end of a preamble, row, or column by
%assigning a list of those commands to |\everycr|.
ć&nbsp;čŽşäťäšćśĺďźĺ˝ \TeX\ éĺ°ĺ¤äşćŻä¸ŞĺŻźč¨çťĺ°žĺ¤ăć°´ĺšłéľĺçćŻčĄçťĺ°žĺ¤äťĽĺçŤç´éľĺçćŻĺçťĺ°žĺ¤ç|\cr| ćśďźĺŽćŠĺą \&lt;token list&gt;ă|\everycr| ĺŞĺ¨ |\cr| ĺćŠĺąăĺ&nbsp;ć­¤ďźä˝&nbsp;ĺŻäťĽéčżĺ |\everycr| čľä¸ĺŻźč¨ăčĄăĺç¸ĺłĺčĄ¨ďźĺźĺŻź \TeX\ ĺ¨ĺŻźč¨ăčĄćĺççťĺ°žĺ¤ć§čĄçšĺŽçĺ˝äť¤ă

%The |\everycr| tokens shouldn't include any commands other than |\no!-align|.
%That's because
%the |\everycr| tokens will reappear after the last
%|\cr| of the alignment. A command other than
%|\noalign| will then make \TeX\ think that it's starting a new
%row or column.
%\TeX\ will complain about a missing |\cr|, insert
%a |\cr|, insert the |\everycr| tokens again, and repeat these actions
%indefinitely.
|\everycr| çčŽ°ĺˇä¸ĺşčŻĽĺćŹ |\no!-align| äťĽĺ¤çäťťä˝ĺ˝äť¤ăčżćŻĺ&nbsp;ä¸şďź|\everycr| čŽ°ĺˇäźĺşç°ĺ¨éľĺçćĺä¸ä¸Ş |\cr|ăäťťä˝ä¸ä¸Şé |\no!-align| ĺ˝äť¤äźĺŻźč´ \TeX\ čŽ¤ä¸şĺŽć°ĺźäşä¸čĄćä¸ĺďźĺ&nbsp;ć­¤ďź\TeX\ äźćĽć¨ä¸˘ĺ¤ąäş |\cr|ďźćĺĽ |\cr|ďźĺćŹĄćĺĽ |\everycr| čŽ°ĺˇďźĺšśä¸ć&nbsp;éĺ°éĺ¤čżäşĺ¨ä˝ă

\example
\everycr={\noalign{\smallskip\hrule\smallskip}}
\halign{#\tabskip = 11pt&amp;\hfil#\hfil&amp;\hfil#\hfil
      \tabskip = 0pt\cr
   $1$&amp;ä¸&amp;çŹŹä¸\cr
   $2$&amp;äş&amp;çŹŹäş\cr
   $3$&amp;ä¸&amp;çŹŹä¸\cr}
|
\produces
\medskip
\everycr={\noalign{\smallskip\hrule\smallskip}}
\halign{#\tabskip = 11pt&amp;\hfil#\hfil&amp;\hfil#\hfil
      \tabskip = 0pt\cr
   $1$&amp;ä¸&amp;çŹŹä¸\cr
   $2$&amp;äş&amp;çŹŹäş\cr
   $3$&amp;ä¸&amp;çŹŹä¸\cr}
\endexample

%\eix^^{alignments//commands for}
%\enddesc
\eix^^{éľĺ//ç¨äşéľĺçĺ˝äť¤}
\enddesc

\enddescriptions

\ifoldeplain\else\ifcompletebook\else
\vskip4em{\sectionfonts\leftline{ćŹçŤ&nbsp;ç´˘ĺź}}
\readindexfile{i}
\fi\fi

\endchapter
\byebye
</pre></body></html>