summaryrefslogtreecommitdiff
path: root/info/impatient/fr/fmodes.tex
diff options
context:
space:
mode:
Diffstat (limited to 'info/impatient/fr/fmodes.tex')
-rw-r--r--info/impatient/fr/fmodes.tex4159
1 files changed, 2082 insertions, 2077 deletions
diff --git a/info/impatient/fr/fmodes.tex b/info/impatient/fr/fmodes.tex
index e380efc993..2dec7cdb3d 100644
--- a/info/impatient/fr/fmodes.tex
+++ b/info/impatient/fr/fmodes.tex
@@ -1,2077 +1,2082 @@
-% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
-% Copyright (C) 2004 Marc Chaudemanche pour la traduction française.
-% See file fdl.tex for copying conditions.
-
-\input fmacros
-\chapter {Commandes pour \linebreak les modes horizontaux \linebreak et verticaux}
-
-\chapterdef{hvmodes}
-
-Cette section couvre les commandes qui ont des formes correspondantes ou
-identiques dans les modes horizontaux et verticaux.
-Ces commandes fournissent des bo\^\i tes, des espaces, des filets, des r\'eglures
-et des alignements.
-Pour une explication des conventions utilis\'ees dans cette section,
-voir \headcit{Descriptions des commandes}{cmddesc}.
-
-\begindescriptions
-
-%==========================================================================
-\section {Produire des espaces}
-
-%==========================================================================
-
-\subsection {Espaces horizontaux de largeur fixe}
-
-\begindesc
-\bix^^{espace//production d'}
-\bix^^{espace horizontal}
-\cts thinspace {}
-\explain
-Cette commande produit un \minref{cr\'enage} positif
-dont la largeur \'equivaut \`a un sixi\`eme d'em
-(\xref{dimdefs})
-c'est-\`a-dire qu'il demande \`a \TeX\ de d\'eplacer sa position \`a droite de ce montant.
-C'est pratique
-quand vous avez par exemple des quotes imbriqu\'ees
-et que vous voulez les s\'eparer.
-\TeX\ ne coupe pas de ligne sur un
-|\thinspace|.\minrefs{line break}
-
-\example
-``\thinspace`A quote.'\thinspace''\par
-24,\thinspace 29--31,\thinspace 45,\thinspace 102
-|
-\produces
-``\thinspace`A quote.'\thinspace''\par
-24,\thinspace 29--31,\thinspace 45,\thinspace 102
-\endexample
-\enddesc
-
-\begindesc
-\cts negthinspace {}
-\explain
-Cette commande produit un \minref{cr\'enage} n\'egatif
-dont la largeur \'equivaut \`a un sixi\`eme d'em
-(\xref{dimdefs})
-c'est-\`a-dire qu'il demande \`a \TeX\ de d\'eplacer sa position \`a gauche de ce montant.
-C'est pratique pour rapprocher deux caract\`eres qui sont un peu trop
-\'eloign\'es l'un de l'autre.
-\TeX\ ne coupe pas de ligne sur un |\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
-Cette commande produit un \minref{cr\'enage} dont la largeur \'equivaut \`a un ^{en}
-(la moiti\'e d'un em, voir \xrefpg{dimdefs}).
-\TeX\ ne coupe pas de ligne sur un |\enspace| \`a moins qu'il soit suivi d'un ressort.
-Dans une liste \`a puce, les puces sont g\'en\'eralement s\'epar\'ees du texte qui les suit
-par un |\enspace|.
-\example
-Lemma 1.\enspace There exists a white rabbit.
-|
-\produces
-Lemma 1.\enspace There exists a white rabbit.
-\endexample
-% the enspace here follows the \proclaim convention (Knuth p. 355).
-\enddesc
-
-\begindesc
-\easy\cts enskip {}
-\cts quad {}
-\cts qquad {}
-\explain
-^^{en}
-Chacune de ces commandes
-produit un bout de \minref{ressort} horizontal
-qui ne peut ni s'\'etirer ni se r\'etr\'ecir.
-\TeX\ peut couper une ligne \minrefs{line break} sur un tel ressort.
-Les largeurs de ces ressort/dimension
-(qui sont relatifs \`a la police courante)
-sont les suivantes pour |cmr10|, la police par d\'efaut de \plainTeX~:
-\medskip
-\def\distance#1{\hbox{\strut $\rightarrow$\vrule\hskip #1\vrule$\leftarrow$}}
-{\def\l#1{\hfil$#1$\thinspace em}
-\tabskip 3pc \halign{#&#&\hfil#\hfil\cr
-{\it Commande}&{\it Espace}&{\it Illustration}\cr
-\noalign{\vskip 4pt}
-|\enskip|&\l{\frac 1/2}&\distance{.5em}\cr
-|\quad|&\l1&\distance{1em}\cr
-|\qquad|&\l2&\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^^{espace horizontal}
-\enddesc
-
-%==========================================================================
-\subsection {Espaces verticaux de largeur fixe}
-
-\begindesc
-\bix^^{espace vertical}
-\easy\cts smallskip {}
-\cts medskip {}
-\cts bigskip {}
-\explain
-Ces commandes produisent des montants d'espacement vertical
-successivement plus larges~:
-\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| saute de $3$ points et peut s'\'etirer ou
-s'\'elargir de $1$ point. |\med!-skip| est \'equivalent \`a deux |\smallskip|s
-et |\bigskip| est \'equivalent \`a deux |\medskip|s.
-
-Ces commandes terminent un paragraphe car elles sont fondamentalement verticales.
-Les sauts qu'elles produisent
-sont ajout\'es au saut inter-para\-graphe normal.
-\example
-Hop \smallskip skip \medskip and \bigskip jump.
-|
-\produces
-Hop \smallskip skip \medskip and \bigskip jump.
-\endexample
-\enddesc
-
-\begindesc
-\cts smallskipamount {\param{ressort}}
-\cts medskipamount {\param{ressort}}
-\cts bigskipamount {\param{ressort}}
-\explain
-Ces param\`etres sp\'ecifient les montants de ressort produit par
-les commandes |\small!-skip|, |\med!-skip| et |\big!-skip|.
-En changeant ces param\`e\-tres vous changez l'effet des commandes.
-Les valeurs par d\'efaut (pour \plainTeX)
-correspondent \`a un quart d'une ligne d'espace, \`a la moiti\'e d'une ligne d'espace,
-et \`a une ligne d'espace enti\`ere.
-Nous vous recommandons de maintenir ce ratio en changeant
-ces valeurs \`a chaque fois que
-vous changez |\baselineskip| (\xref\baselineskip).
-^^|\baselineskip//et {\tt\\smallskipamount}, etc.|
-\eix^^{espace vertical}
-
-\enddesc
-
-%==========================================================================
-\subsection {Espace de taille variable}
-
-\begindesc
-\easy\cts hskip {\<dimension$_1$> {\bt plus} \<dimension$_2$> {\bt minus} \<dimension$_3$>}
-\cts vskip {\<dimension$_1$> {\bt plus} \<dimension$_2$> {\bt minus} \<dimension$_3$>}
-^^{saut vertical}^^{ressort vertical}
-^^{saut horizontal}^^{ressort horizontal}
-\bix^^{espace horizontal}
-\bix^^{espace vertical}
-\explain
-Ces commandes produisent des ressorts respectivement horizontaux et verticaux.
-Dans le cas le plus simple et le plus courant, quand il n'y a seulement que \<dimension$_1$>,
-|\hskip| saute vers la droite de \<dimension$_1$>
-et |\vskip| saute vers le bas de la page de \<dimension$_1$>.
-Plus g\'en\'erale\-ment, ces commandes
-produisent des \minref{ressort}s dont la taille naturelle est
-\<dimension$_1$>, l'\'etirement \<dimension$_2$> et le r\'etr\'ecissement \<dimension$_3$>.
-Le |plus| \<dimension$_2$>, le |minus |\<dimension$_3$>,
-ou les deux peuvent \^etre omis.
-Si les deux sont pr\'esent, le |plus| doit \^etre avant le |minus|.
-Une valeur omise
-est consid\'er\'ee \`a z\'ero. Toutes les \<dimension>s peuvent \^etre n\'egatives.
-
-Vous pouvez utiliser |\hskip| en mode math\'ematique, mais vous ne pouvez utiliser d'unit\'es |mu|
-\seeconcept{unit\'e math\'ematique}
-pour aucune des dimensions. Si vous voulez des unit\'es |mu|, utilisez |\mskip|
-(\xref\mskip) \`a la place.
-
-\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% Just show effects of \vskip.
- \hbox{one}\vskip 0pc plus 1pc \hbox{two}
- \vskip .5pc \hbox{three}}
-|
-\produces
-\smallskip
-\vbox to 4pc{\offinterlineskip% Just show effects of \vskip.
- \hbox{one}\vskip 0pc plus 1pc \hbox{two}
- \vskip .5pc \hbox{three}}
-\endexample
-\enddesc
-
-\begindesc
-\cts hglue {\<ressort>}
-\cts vglue {\<ressort>}
-^^{ressort vertical}
-^^{ressort horizontal}
-\explain
-La commande |\hglue| produit un \minref{ressort} horizontal qui ne dispara\^\i t pas sur
-une coupure de ligne. La commande |\vglue|
-produit un \minref{ressort} vertical qui ne dispara\^\i t pas sur une coupure de page.
-Pour le reste ces commandes sont comme |\hskip| et |\vskip|.
-Vous pouvez utiliser |\vglue| pour produire de l'espace blanc en haut d'une page,
-par exemple, au dessus d'un titre sur la premi\`ere page d'un document, mais
-^|\topglue| (suivant) est normalement plus appropri\'e pour cet usage.
-\enddesc
-
-\begindesc
-\cts topglue {\<ressort>}
-\explain
-\margin{Command added; recent addition to \TeX}
-Cette commande\footnote{|\topglue| a \'et\'e ajout\'e \`a \TeX\ dans la version 3.0,
-apr\`es les autres am\'enagements introduitis par le ^{\newTeX}
-(\xref{newtex}). C'est la premi\`ere d\'ecrite dans la \emph{dix-huiti\`eme\/}
-\'edition de \texbook.} fait que l'espace entre le haut de la page et le
-haut de la premi\`ere bo\^\i te de la page soit pr\'ecis\'ement \'egal \`a \<glue>.
-Le haut de la page est consid\'er\'e \^etre sur la ligne de base d'une
-ligne imaginaire de texte juste au-dessus de la ligne du haut de la page.
-Plus pr\'ecis\'ement, c'est une distance |\topskip| au dessus de l'origine donn\'ee par
-|\hoffset| et |\voffset|.
-
-Cette commande est pratique parce que \TeX\ ajuste le ressort normalement
-produit par |\topskip| d'une mani\`ere complexe. En utilisant |\top!-glue| vous pouvez
-contr\^oler la position de la premi\`ere bo\^\i te de la page sans vous inqui\'eter de
-ces ajustements.
-
-\enddesc
-
-\begindesc
-\cts kern {\<dimension>}
-\explain
-L'effet de cette commande d\'epend du mode dans lequel est \TeX\ quand
-il la rencontre~:
-\ulist
-
-\li En mode horizontal, \TeX\ d\'eplace sa position vers la droite (pour un cr\'enage positif)
-ou vers la gauche (pour un cr\'enage n\'egatif).
-
-\li En mode vertical, \TeX\ d\'eplace sa position vers le bas de la page (pour un cr\'enage positif)
-ou vers le haut de la page (pour un cr\'enage n\'egatif).
-
-\endulist
-\noindent
-Ainsi un cr\'enage positif produit un espace vide tandis qu'un cr\'enage n\'egatif
-fait que \TeX\ recule sur quelque chose qu'il a d\'ej\`a produit.
-Cette notion de cr\'enage ^^{cr\'enages}
-est diff\'erente de la notion de cr\'enage dans certains syst\`emes de composition
-typographique informatis\'es---dans \TeX, des cr\'e\-nages positifs \emph{\'ecartent}
-deux lettres au lieu de les rapprocher.
-
-Un cr\'enage est similaire \`a un
-\minref{ressort}, sauf que (a)~un cr\'enage ne peut ni s'\'etirer ni se r\'etr\'ecir,
-et (b)~\TeX\ ne coupera une ligne ou une page sur un cr\'enage que si le cr\'enage
-est suivi par un ressort et ne fait pas partie d'une formule math\'ematique.
-Si \TeX\ trouve un cr\'enage \`a la fin
-d'une ligne ou d'une page, il \'elimine le cr\'enage.
-Si vous voulez obtenir l'effet d'un cr\'enage qui ne dispara\^\i t jamais,
-utilisez ^|\hglue| ou ^|\vglue|.
-
-Vous pouvez utiliser |\kern| en mode math\'ematique, mais vous ne pouvez pas utiliser d'unit\'es |mu|
-\seeconcept{unit\'e math\'ematique}
-pour \<dimension>. Si vous voulez des unit\'es |mu|, utilisez |\mkern|
-(\xref\mkern) \`a la place.
-^^{coupures de ligne//cr\'enages sur des}
-^^{coupures de page//cr\'enages sur des}
-
-\example
-\centerline{$\Downarrow$}\kern 3pt % a vertical kern
-\centerline{$\Longrightarrow$\kern 6pt % a horizontal kern
- {\bf Heed my warning!!}\kern 6pt % another horizontal kern
- $\Longleftarrow$}
-\kern 3pt % another vertical kern
-\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
- $\Longleftarrow$}
-\kern 3pt % another vertical kern
-\centerline{$\Uparrow$}
-\endexample
-\enddesc
-
-\begindesc
-\makecolumns 4/2:
-\cts hfil {}
-\cts hfill {}
-\cts vfil {}
-\cts vfill {}
-\explain
-\bix^^{ressort//\'etirable infiniment}
-Ces commandes produisent des ressorts horizontaux et verticaux \'etirables
-infiniment qui
-\'ecrasent tout \'etirement fini qui peut \^etre pr\'esent.
-|\hfil| et |\hfill| produisent des ressorts horizontaux, tandis que
-|\vfil| et |\vfill| produisent des ressorts verticaux.
-
-|\hfill| est infiniment plus grand que |\hfil|.
-Si |\hfill| et |\hfil| apparaissent dans la m\^eme \minref{bo\^\i te},
-le |\hfill| consumera toute la place suppl\'ementaire possible
-et le |\hfil| sera effectivement ignor\'e.
-|\hfill| peut \`a son tour est \'ecras\'e par |\hskip 0pt plus 1filll|.
-Les ressorts produits par
-|\hfil| et |\hfill| ne r\'etr\'ecissent jamais.
-
-Le comportement de |\vfil| et |\vfill| est analogue.
-
-\example
-\hbox to 2in{Left\hfil Middle \hfil Right}
-|
-\produces
-\hbox to 2in{Left\hfil Middle \hfil Right}
-
-\doruler{\8\8}2{in}
-\nextexample
-\hbox to 2in{Left\hfil Middle \hfill Right}
-|
-\produces
-\hbox to 2in{Left\hfil Middle \hfill Right}
-
-\doruler{\8\8}2{in}
-\nextexample
-\leftline{%
-\vbox to 4pc{%
- \hbox{Top}\vfil\hbox{Middle}\vfil \hbox{Bottom}}\quad
-\vbox to 4pc{%
- \hbox{Top}\vfil\hbox{Middle}\vfill\hbox{Bottom}}}
-|
-\produces
-\smallskip
-\leftline{%
-\vbox to 4pc{%
- \hbox{Top}\vfil\hbox{Middle}\vfil \hbox{Bottom}}\quad
-\vbox to 4pc{%
- \hbox{Top}\vfil\hbox{Middle}\vfill\hbox{Bottom}}}
-\endexample
-
-\eix^^{ressort//\'etirable infiniment}
-\enddesc
-
-\begindesc
-\cts hss {}
-\cts vss {}
-\explain
-Ces commandes produisent des ressorts horizontaux et
-verticaux qui sont infiniment \'etirables et
-r\'etr\'ecissables. Le ressort peut se r\'etr\'ecir
-sur une distance n\'egative, produisant l'effet de reculer sur une ligne
-(pour |\hss|) ou remonter sur une page (pour |\vss|).
-
-\example
-\line{text\hfil\hbox to 0pt{margin\hss}}
-% `margin\hss' shrinks to the zero width of the hbox.
-|
-\produces
-\line{text\hfil\hbox to 0pt{margin\hss}}
-\nextexample
-\vbox to 1pc{\hrule width 6pc % Top of box.
- \hbox{1} \vskip 1pc\hbox to 2pc{\hfil 2}
- % The \vss absorbs the extra distance produced by \vskip.
- \vss \hbox to 3pc{\hfil 3}
- \hrule width 6pc}% Bottom of box.
-|
-\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
-^^{ressort//n\'egatif}
-Ces commandes effacent l'effet d'un |\hfil| ou d'un |\vfil|
-pr\'ec\'edent. Tandis que |\hfil| et |\vfil| produisent un
-\minref{ressort} positif infiniment \'etirable, |\hfilneg| et |\vfilneg|
-produisent un ressort n\'egatif infiniment \'etirable.
-(ainsi, $n$ |\hfilneg| effacent $n$ ^|\hfil| et pareillement
-pour le |\vfilneg|.)
-L'utilisation principale de |\hfilneg| et de |\vfilneg| est de contrecarrer
-l'effet d'un |\hfil| ou d'un |\vfil| ins\'er\'e par une \minref{macro}.
-
-|\hfilneg| et |\vfilneg| ont
-la propri\'et\'e curieuse, s'ils sont les seuls ressorts infiniment \'etirables
-d'une bo\^\i te, de produire exactement le m\^eme effet que |\hfil|
-et |\vfil|.
-
-\example
-\leftline{\hfil on the right\hfilneg}
-% Cancel the \hfil that \leftline produces to the right
-% of its argument.
-|
-\produces
-\leftline{\hfil on the right \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| et |\vbadness| (\xref \vbadness),
-|\hfuzz| et |\vfuzz| (\xref \vfuzz),
-\conceptcit{filets}.\par}
-\eix^^{espace//production d'}
-\eix^^{espace horizontal}
-\eix^^{espace vertical}
-
-%==========================================================================
-\section {Manipuler des bo\^\i tes}
-
-%==========================================================================
-\subsection {Construire des hbox et des vbox}
-
-\begindesc
-\bix^^{commandes de \boites}
-^^{hbox//construction avec \b\tt\\hbox\e}
-%
-\cts hbox {\rqbraces{\<mat\'eriel en mode horizontal>}}
-\aux\cts hbox {{\bt to} \<dimension> \rqbraces{\<mat\'eriel en mode horizontal>}}
-\aux\cts hbox {{\bt spread} \<dimension> \rqbraces{\<mat\'eriel en mode horizontal>}}
-\explain
-Ces commandes produisent une hbox
-(\minref{bo\^\i te} horizontale) contenant du \<mat\'eriel en mode horizontal>.
-Les accolades autour du \<mat\'eriel en mode horizontal> d\'efinissent un groupe.
-\TeX\ ne coupe pas le \<mat\'eriel en mode horizontal> en plusieurs lignes,
-puisqu'il est en mode horizontal restreint quand il assemble la bo\^\i te.
-\TeX\ ne change pas la taille de la bo\^\i te une fois qu'elle est produite.
-
-|\hbox| est souvent utile quand vous voulez conserver du texte sur une seule ligne.
-Si votre utilisation de |\hbox| emp\^eche \TeX\ de couper des lignes de mani\`ere acceptable,
-\TeX\ se plaindra d'un ``overfull hbox''.
-
-La largeur du hbox d\'epend des arguments de |\hbox|~:
-\ulist\compact
-\li Si vous ne sp\'ecifiez que du \<mat\'eriel en mode horizontal>,
-le hbox aura sa \minref{largeur} naturelle.
-\li Si vous sp\'ecifiez |to| \<dimension>, la largeur du hbox sera \<dimension>.
-\li Si vous sp\'ecifiez |spread| \<dimension>, la largeur du hbox sera
-sa largeur naturelle plus \<dimension>, c'est-\`a-dire, le hbox s'allongera de
-\<dimension>.
-\endulist
-
-La commande ^|\hfil| (\xref\hfil) est utile pour remplir un
-hbox d'espace vide quand le mat\'eriel dans la bo\^\i te n'est pas aussi large que la
-largeur de la bo\^\i te.
-\example
-\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.
-|
-\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 {\<mat\'eriel en mode vertical>}
-\aux\cts vtop {{\bt to} \<dimension> \rqbraces{\<mat\'eriel en mode vertical>}}
-\aux\cts vtop {{\bt spread} \<dimension> \rqbraces{\<mat\'eriel en mode vertical>}}
-\cts vbox {\rqbraces{\<mat\'eriel en mode vertical>}}
-\aux\cts vbox {{\bt to} \<dimension> \rqbraces{\<mat\'eriel en mode vertical>}}
-\aux\cts vbox {{\bt spread} \<dimension> \rqbraces{\<mat\'eriel en mode vertical>}}
-\explain
-^^{hbox//construction avec \b\tt\\hbox\e}
-Ces commandes
-produisent une \minref{vbox} (\minref{bo\^\i te} verticale)
-contenant du \<ma\-t\'eriel en mode vertical>.
-Les accolades autour du \<mat\'eriel en mode vertical> d\'efinissent un groupe.
-\TeX\ est en mode vertical interne quand il assemble la bo\^\i te.
-\TeX\ ne change pas la taille de la bo\^\i te une fois qu'elle est produite.
-
-La diff\'erence entre |\vtop| et |\vbox| est o\`u \TeX\ met
-le point de r\'ef\'erence de la vbox construite.
-Normalement, le point de r\'ef\'erence obtenu de |\vtop| tend \`a \^etre sur ou pr\`es
-du haut de la vbox construite,
-tandis que
-le point de r\'ef\'erence obtenu de |\vbox| tend \`a \^etre sur ou pr\`es
-du bas de la vbox construite.
-Ainsi une rang\'ee de vbox toutes construites avec |\vtop|
-tendra \`a avoir leurs hauts \`a peu pr\`es align\'es,
-tandis qu'une rang\'e de vbox toutes construites avec |\vbox|
-tendra \`a avoir leurs bas \`a peu pr\`es align\'es.
-
-|\vtop| et |\vbox| sont souvent pratiques
-quand vous voulez garder du texte ensemble sur une seule page.
-(Pour cela, peu importe normalement quelle commande vous utilisez.)
-Si votre usage de ces commandes
-emp\^eche \TeX\ de couper des pages d'une mani\`ere acceptable,
-\TeX\ se plaindra qu'il a trouv\'e un ``overfull'' ou un ``underfull vbox while
-|\output| is active''.
-
-La hauteur d'une vbox d\'epend des
-arguments de |\vtop| ou |\vbox|.
-Pour |\vbox|, \TeX\ d\'etermine la hauteur de la mani\`ere suivante~:
-\ulist\compact
-\li Si vous ne sp\'ecifiez que du \<mat\'eriel en mode vertical>,
-la vbox aura sa hauteur naturelle.
-\li Si vous sp\'ecifiez |to| \<dimension>,
-la hauteur de la vbox sera fix\'ee \`a \<dimension>.
-\li Si vous sp\'ecifiez |spread| \<dimension>, la hauteur de la vbox sera
-sa hauteur naturelle plus \<dimension>, c'est-\`a-dire,
-que la hauteur de la vbox sera \'etir\'ee verticalement de \<dimension>.
-\endulist
-\noindent
-Pour |\vtop|,
-\TeX\ construit la bo\^\i te en utilisant ses r\`egles pour |\vbox| et ensuite
-r\'epartit l'extension verticale entre la hauteur et la profondeur comme
-d\'ecrit ci-dessous.
-
-Normalement, la largeur d'une vbox construite est la largeur de l'\'el\'e\-ment le plus
-large contenu\footnote
-{Plus pr\'ecis\'ement, c'est la distance du point de r\'ef\'erence au cot\'e le plus \`a
-droite de la vbox construite. Par cons\'equent,
-si vous d\'eplacez un des \'el\'ements vers la droite en utilisant ^|\moveright| ou
-^|\moveleft| (avec une distance n\'egative),
-la vbox construite pourra \^etre plus large.}.
-Les r\`egles de r\'epartitions de l'extension verticale entre la
-hauteur et la profondeur sont plus compliqu\'ees~:
-\ulist
-\li Pour |\vtop|,
-la hauteur est la hauteur de son premier \'el\'ement, si cet \'el\'ement est une bo\^\i te ou un filet.
-Autrement la hauteur est \`a z\'ero. La profondeur est toute extension verticale
-restante quand la hauteur a \'et\'e enlev\'ee.
-\li Pour |\vbox|,
-la profondeur est la profondeur de son dernier \'el\'ement, si cet \'el\'ement est une bo\^\i te ou un filet.
-Autrement la profondeur est \`a z\'ero. La hauteur est toute extension verticale
-restante quand la profondeur a \'et\'e enlev\'ee%
-\footnote{En fait, il y a une complication suppl\'ementaire.
-Supposez qu'apr\`es que la profondeur ait \'et\'e d\'etermin\'ee
-en utilisant les deux r\`egles pr\'ec\'edentes, la profondeur devienne plus grande que
-^|\boxmaxdepth|.
-Alors la profondeur est r\'eduite \`a |\boxmaxdepth| et la hauteur est ajust\'ee
-en cons\'equence.}.
-\endulist
-
-La commande |\vfil| (\xref\vfil) est pratique pour remplir une vbox
-^^|\vfil//remplir une vbox|
-avec de l'espace vide quand le mat\'eriel dans la bo\^\i te n'est pas aussi grand que
-l'extention verticale de la bo\^\i te.
-\example
-\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.}}
-|
-\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.}}
-\nextexample
-\hbox{\hsize = 1in \raggedright\parindent = 0pt
-\vtop to .75in{\hrule This box is .75in deep. \vfil\hrule}
-\qquad
-\vtop{\hrule This box is at its natural depth. \vfil\hrule}
-\qquad
-\vtop spread .2in{\hrule This box is .2in deeper than
- its natural depth.\vfil\hrule}}
-|
-\produces
-\hbox{\hsize = 1in \raggedright\parindent=0pt
-\vtop to .75in{\hrule This box is .75in deep. \vfil\hrule}
-\qquad
-\vtop{\hrule This box is at its natural depth. \vfil\hrule}
-\qquad
-\vtop spread .2in{\hrule This box is .2in deeper than
- its natural depth.\vfil\hrule}}
-\nextexample
-% See how \vbox lines up boxes at their bottoms
-% instead of at their tops.
-\hbox{\hsize = 1in \raggedright
-\vbox to .5in{\hrule This box is .5in deep.\vfil\hrule}
-\qquad
-\vbox to .75in{\hrule This box is .75in deep.\vfil\hrule}}
-|
-\produces
-\hbox{\hsize = 1in \raggedright
-\vbox to .5in{\hrule This box is .5in deep.\vfil\hrule}
-\qquad
-\vbox to .75in{\hrule This box is .75in deep.\vfil\hrule}}
-\vskip 16pt % to avoid running into the next command description
-\endexample
-\enddesc
-
-\begindesc
-\margin{Two commands interchanged here.}
-\cts boxmaxdepth {\param{dimension}}
-\explain
-Ce param\`etre contient une dimension $D$.
-\TeX\ ne construira pas une bo\^\i te dont la profondeur d\'epassera $D$.
-Si vous produisez une bo\^\i te dont la profondeur $d$ doit d\'epasser $D$,
-\TeX\ transf\`erera la
-profondeur exc\'edentaire dans la hauteur de la bo\^\i te, en abaissant en r\'ealit\'e le
-\minref{point de r\'ef\'erence} de la bo\^\i te de $d-D$.
-Si vous mettez |\boxmaxdepth| \`a z\'ero, \TeX\ alignera une rang\'ee de vbox
-de telle mani\`ere que leurs fronti\`eres du bas seront toutes sur la m\^eme ligne horizontale.
-\PlainTeX\ met |\boxmaxdepth| \`a |\maxdimen| \ctsref{\maxdimen},
-donc |\boxmaxdepth| n'affectera pas vos bo\^\i tes \`a moins que vous le changiez.
-\enddesc
-
-\begindesc
-\cts underbar {\<argument>}
-\explain
-Cette commande met \<argument> dans une \minref{hbox}
-et la souligne sans faire attention \`a tout ce que d\'epasse sous la
-\minref{ligne de base} de la bo\^\i te.
-\example
-\underbar{Why not learn \TeX?}
-|
-\produces
-\underbar{Why not learn \TeX?}
-\endexample
-\enddesc
-
-\begindesc
-\cts everyhbox {\param{liste de token}}
-\cts everyvbox {\param{liste de token}}
-\explain
-Ces param\`etres contiennent des liste de token que \TeX\ d\'eveloppe au d\'ebut de
-toutes \minref{hbox} ou \minref{vbox} qu'il construit.
-Tout \'el\'ement r\'esultant de l'expansion devient alors
-le d\'ebut de la liste d'\'el\'ements pour la bo\^\i te.
-Par d\'efaut, ces listes de token sont vides.
-\enddesc
-
-%==========================================================================
-\subsection {Remplir et r\'ecuperer le contenu de bo\^\i tes}
-
-\begindesc
-\bix^^{registres de \boite}
-%
-\cts setbox {\<registre>\thinspace{\bt =}\thinspace\<bo\^\i te>}
-\cts box {\<registre>}
-\explain
-^^{assignements//de \boites}
-Ces commandes remplissent et r\'ecup\`erent respectivement le contenu
-du registre de bo\^\i te
-dont le num\'ero est \<registre>.
-Notez que vous remplissez un registre de bo\^\i te d'une mani\`ere un peu diff\'erente de celle
-utilis\'ee pour les autres types de registres~: vous utilisez
-|\setbox|$\,n$~|=| plut\^ot que |\box|$\,n$~|=|.
-
-\emph{R\'ecup\'erer le contenu d'un registre de bo\^\i te
-avec ces commandes a l'effet secondaire d'enlever ce qu'il contient,
-donc le registre de bo\^\i te devient vide.} Si vous ne voulez pas que cela arrive,
-vous pouvez utiliser |\copy| (voir ci-dessous) pour r\'ecup\'erer le contenu.
-Vous devez utiliser |\box| de pr\'ef\'erence \`a |\copy|
-quand vous n'avez plus besoin du contenu d'un registre de bo\^\i te apr\`es l'avoir utilis\'e,
-de mani\`ere \`a ne pas augmenter la m\'emoire de \TeX\ en la remplissant avec des bo\^\i tes obsol\`etes.
-\example
-\setbox0 = \hbox{mushroom}
-\setbox1 = \vbox{\copy0\box0\box0}
-\box1
-|
-\produces
-\setbox0 = \hbox{mushroom}
-\setbox1 = \vbox{\copy0\box0\box0}
-\box1
-\endexample
-\enddesc
-
-\begindesc
-\cts copy {\<registre>}
-\explain
-^^{\boites//copie}\minrefs{box}
-Cette commande
-produit une copie d'un registre de bo\^\i te \<registre>.
-Cette commande est utile quand vous voulez r\'ecup\'erer le contenu d'un registre
-de bo\^\i te mais ne voulez pas en d\'etruire le contenu.
-(R\'ecup\'erer le contenu d'un registre avec ^|\box| rend le registre vide.)
-\example
-\setbox0 = \hbox{good }
-Have a \copy0 \box0 \box0 day!!
-|
-\produces
-\setbox0 = \hbox{good }
-Have a \copy0 \box0 \box0 day!
-\endexample
-\enddesc
-
-\begindesc
-\cts unhbox {\<registre>}
-\cts unvbox {\<registre>}
-^^{\boites//extraction de contenu de}
-\explain
-Ces commandes produisent la liste contenue dans un registre de bo\^\i te \<registre> et rend
-ce registre de bo\^\i te vide.
-|\unhbox| s'applique aux registres de bo\^\i te contenant
-des hbox et |\unvbox| s'applique aux registres de bo\^\i te contenant des vbox.
-Vous devez utiliser ces commandes en pr\'ef\'erence \`a |\unhcopy| et |\unvcopy|
-(voir ci-dessous)
-quand vous n'avez pas besoin de ce qu'il y a dans le registre de bo\^\i te apr\`es l'avoir utilis\'e,
-de mani\`ere \`a ne pas augmenter la m\'emoire de \TeX\ en la remplissant avec des bo\^\i tes obsol\`etes.
-\example
-\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. }
-\unhbox0 \unhbox1
-% \box0 \box1 would set two hboxes side by side
-% (and produce a badly overfull line).
-\box1 % produces nothing
-|
-\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. }
-\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 {\<registre>}
-\cts unvcopy {\<registre>}
-^^{\boites//extraction du contenu de}
-^^{\boites//copie}\minrefs{box}
-\explain
-Ces commandes produisent la liste contenue dans un registre de bo\^\i te \<registre> et
-sans d\'eranger le contenu des registres.
-|\unhbox| s'applique aux registres de bo\^\i te contenant
-des hbox et |\unvbox| s'applique aux registres de bo\^\i te contenant des vbox.
-\example
-\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. }
-\unhcopy0 \unhcopy1\par\noindent
-% \box0 \box1 would set two hboxes side by side
-% (and produce a badly overfull line).
-\box1 % Produces an hbox (which can't be broken).
-|
-\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. }
-\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^^{registres de \boite}
-
-%==========================================================================
-\subsection {D\'eplacer des bo\^\i tes}
-
-\begindesc
-\cts moveleft {\<dimension> \<bo\^\i te>}
-\cts moveright {\<dimension> \<bo\^\i te>}
-\bix^^{\boites//d\'eplacement}
-\minrefs{box}
-\explain
-Ces commandes d\'eplacent \<bo\^\i te> \`a gauche ou \`a droite de \<dimension> (qui peut \^etre
-n\'egatif). Vous ne pouvez appliquer |\moveleft| et |\moveright| qu'\`a des bo\^\i tes
-qui sont dans une \minref{liste verticale}.
-\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 {\<dimension> \<bo\^\i te>}
-\cts raise {\<dimension> \<bo\^\i te>}
-\explain
-Ces commandes d\'eplacent \<bo\^\i te> en haut ou en bas de \<dimension>
-(qui peut \^etre n\'egatif).
-Vous ne pouvez appliquer |\moveleft| et |\moveright| qu'\`a des bo\^\i tes
-qui sont dans une \minref{liste horizontale}.
-\example
-Are you feeling \lower 6pt \hbox{depressed} about the
- \raise 6pt \hbox{bump} on your nose?
-|
-\produces
-Are you feeling \lower 6pt \hbox{depressed} about the
- \raise 6pt \hbox{bump} on your nose?
-\endexample
-
-\eix^^{\boites//d\'eplacement}
-\enddesc
-
-%==========================================================================
-\subsection {Dimensions des registres de bo\^\i tes}
-
-\begindesc
-\bix^^{registres de \boite}
-\bix^^{dimensions//de registres de \boite}
-\cts ht {\<registre>\param{dimension}}
-\cts dp {\<registre>\param{dimension}}
-\cts wd {\<registre>\param{dimension}}
-\explain
-Ces param\`etres font r\'ef\'erence \`a la ^{hauteur}, la ^{profondeur} et la ^{largeur}
-respectivement du \minref{registre} de \minref{bo\^\i te} \<registre>.
-Vous pouvez les utiliser pour conna\^\i tre les dimensions d'une bo\^\i te.
-Vous pouvez aussi changer les dimensions d'une bo\^\i te, mais ce n'est pas une mince affaire~;
-si vous voulez \^etre aventureux vous pouvez
-apprendre tout sur cela dans les \
-{pages~388--389}{448--449}.
-\example
-\setbox0 = \vtop{\hbox{a}\hbox{beige}\hbox{bunny}}%
-The box has width \the\wd0, height \the\ht0,
-and depth \the\dp0.
-|
-\produces
-\setbox0 = \vtop{\hbox{a}\hbox{beige}\hbox{bunny}}%
-The box has width \the\wd0, height \the\ht0,
-and depth \the\dp0.
-\endexample
-\eix^^{registres de \boite}
-\eix^^{dimensions//de registres de \boite}
-\enddesc
-
-%==========================================================================
-\subsection {Struts, fantomes et bo\^\i tes vides}
-
-\begindesc
-\margin{This subsection is a merger of two previous subsections.
-The commands have also been reordered.}
-\bix^^{struts}
-\cts strut {}
-\explain
-Cette commande produit une bo\^\i te dont la largeur est \`a z\'ero
-et dont la hauteur (|8.5pt|) et la profondeur (|3.5pt|)
-sont celles d'une ligne de caract\`ere plus ou moins en |cmr10|,
-la police par d\'efaut de \plainTeX.
-Son utilisation principale est de forcer des lignes \`a avoir la m\^eme hauteur
-quand vous avez d\'ebranch\'e le ressort inter-ligne de \TeX\ avec
-|\offinter!-lineskip| ^^|\offinterlineskip| ou une commande similaire,
-par exemple, quand vous construisez un alignement.
-Si la hauteur naturelle d'une ligne est
-trop petite, vous pouvez la ramener au standard en incluant un |\strut|
-dans la ligne. Le strut forcera la hauteur et la profondeur de la ligne
-\`a \^etre plus grande, mais il n'imprime rien ni ne consomme aucun espace
-horizontal.
-
-Si vous mettez des caract\`eres d'une police qui est plus grande ou plus petite que |cmr10|,
-vous devez red\'efinir |\strut| pour ce contexte.
-\example
-\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}}
-|
-\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
-Cette commande produit une formule fant\^ome dont la largeur est \`a z\'ero
-et dont la largeur et la hauteur sont les m\^emes que celle d'une parenth\`ese gauche.
-|\mathstrut| est en fait d\'efini comme `|\vphantom(|'.
-Son utilisation principale est d'obtenir des radicaux, soulign\'es et surlign\'es align\'es
-avec d'autres radicaux, soulign\'es et surlign\'es d'une formule.
-C'est un peu comme ^|\strut| (\xref \strut),
-sauf qu'il s'ajuste lui-m\^eme aux diff\'erents \minref{style}s
-qui peuvent appara\^\i tre dans une formule math\'ematique.
-\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^^{struts}
-\enddesc
-
-\begindesc
-\cts phantom {\<argument>}
-\explain
-\bix^^{\boites//fant\^ome}
-\bix^^{fant\^omes}
-Cette commande produit une \minref{bo\^\i te} vide
-ayant la m\^eme taille et placement
-que \<argument> aurait s'il \'etait compos\'e.
-Une utilisation de |\phantom| est de r\'eserver de l'espace pour un symbole qui pour certaines
-raisons demande \`a \^etre dessin\'e \`a la main.
-\example
-$1\phantom{9}2$
-|
-\produces
-$1\phantom{9}2$
-\endexample
-\enddesc
-
-\begindesc
-\cts hphantom {\<argument>}
-\cts vphantom {\<argument>}
-\explain
-Ces commandes produisent des bo\^\i tes\minrefs{bo\^\i te}\ fant\^ome qui
-n'impriment rien~:
-\ulist\compact
-\li |\hphantom| produit une bo\^\i te avec la m\^eme largeur que \<argument>
-mais de hauteur et profondeur z\'ero.
-\li |\vphantom| produit une bo\^\i te avec les m\^emes hauteur et profondeur que \<argu\-ment>
-mais de largeur z\'ero.
-\endulist
-\noindent
-Leur usage principal est de forcer une sous-formule \`a avoir un dimension
-horizontale ou verticale minimum.
-\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 {\<argument>}
-\explain
-Cette commande compose \<argument>,
-mais force la hauteur et la profondeur de sa \minref{bo\^\i te} contenante \`a z\'ero.
-Vous pouvez utiliser |\smash| et |\vphantom| en combinaison pour donner \`a une sous-formule
-toutes hauteurs et profondeurs que vous d\'esirez.
-\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^^{\boites//fant\^ome}
-\eix^^{fant\^omes}
-\enddesc
-
-\begindesc
-^^{\boites//vides}
-\cts null {}
-\explain
-Cette commande produit une \minref{hbox} vide.
-\example
-\setbox0 = \null
-The null box \null has width \the\wd0, height \the\ht0,
-and depth \the\dp0.
-|
-\produces
-\setbox0 = \null
-The null box \null has width \the\wd0, height \the\ht0,
-and depth \the\dp0.
-\endexample
-\enddesc
-
-
-%==========================================================================
-\subsection {Param\`etres faisant partie des bo\^\i tes mal form\'ees}
-
-\begindesc
-\bix^^{\boites//overfull}
-\bix^^{\boites//underfull}
-\cts overfullrule {\param{dimension}}
-\explain
-Ce param\`etre sp\'ecifie la largeur du filet
-que \TeX\ positionne pour un ``overfull \minref{hbox}''.
-\PlainTeX\ le met \`a |5pt|.
-\enddesc
-
-\begindesc
-\cts hbadness {\param{nombre}}
-\cts vbadness {\param{nombre}}
-\explain
-Ces param\`etres sp\'ecifient les seuils de \minref{badness} horizontal
-et vertical pour rapporter des ``underfull'' ou ``overfull boxes''
-|\hbadness| s'applique aux hbox et |\vbadness| s'applique aux vbox.
-Si la m\'ediocrit\'e d'une bo\^\i te construite d\'epasse le seuil,
-\TeX\ reportera une erreur. Si vous augmentez les seuils
-(les valeurs par d\'efaut de \plainTeX\ sont de $1000$),
-\TeX\ sera moins amen\'e \`a se plaindre.
-Notez que les valeurs de |\hbadness| et |\vbadness| n'ont pas d'effet sur
-l'apparence de votre document compos\'e~; ils n'affectent que le message d'erreur
-que vous obtenez.
-Voir la \knuth{page~302}{353} pour une description pr\'ecise
-sur comment \TeX\ d\'ecide quand se plaindre d'``overfull'' ou d'``underfull
-box''.
-
-\margin{The material on tolerance was inappropriate here and has been
-removed. A new example replaces it.}
-\example
-\hbadness = 10000 % Suppress any hbadness complaints.
-\hbox to 2in{a b}\par
-\hbadness = 500 % Report hbadness exceeding 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
-Cette commande donne la valeur num\'erique de la m\'ediocrit\'e de la \minref{bo\^\i te}
-(aussi bien horizontale que verticale) que \TeX\ a le plus r\'ecemment produit.
-Si la bo\^\i te \'etait ``overfull'', |\badness| sera de $1000000$~; dans tous les autres cas
-il sera entre $0$ et $10000$.
-\enddesc
-
-\begindesc
-\cts hfuzz {\param{dimension}}
-\cts vfuzz {\param{dimension}}
-\explain
-Ces param\`etres sp\'ecifient les valeurs dont une
-\minref{bo\^\i te} peut d\'epasser sa taille naturelle avant que \TeX\ la consid\`ere comme
-\'etant overfull. ^^{\boites//overfull}
-|\hfuzz| s'applique aux hbox et |\vfuzz| s'applique aux vbox.
-\PlainTeX\ met ces deux param\`etres \`a |0.1pt|.
-\example
-\hfuzz = .5in
-\hbox to 2in{This box is longer than two inches.}
-% No error results
-|
-\produces
-\hfuzz = .5in
-\hbox to 2in{This box is longer than two inches.}
-% No error results
-\doruler{\8\8\8}3{in}
-\endexample
-
-\eix^^{\boites//overfull}
-\eix^^{\boites//underfull}
-\eix^^{commandes de \boites}
-\enddesc
-
-\see |\tolerance| \ctsref{\tolerance}.
-%==========================================================================
-\section {Retrouver le dernier \'el\'ement d'une liste}
-
-\begindesc
-^^{\boites//derni\`ere \boite\ dans une liste}
-^^{cr\'enages//dernier cr\'enage dans une liste}
-^^{p\'enalit\'es//derni\`ere p\'enalit\'e dans une liste}
-^^{ressort//dernier \'el\'ement de ressort dans une liste}
-\margin{This section has been moved in its entirety from the chapter
-(`Commands for general operations')}
-\cts lastkern {}
-\cts lastskip {}
-\cts lastpenalty {}
-\cts lastbox {}
-\explain
-Ces s\'equences de contr\^ole donnent la valeur du dernier \'el\'ement de la liste
-courante. Ce ne sont pas de vraies commandes parce qu'elles ne peuvent appara\^\i tre que
-comme partie d'un argument.
-Si le dernier \'el\'ement de la liste n'est pas du type indiqu\'e,
-elles donnent une valeur z\'ero (ou une bo\^\i te vide, dans le cas de |\lastbox|).
-Par exemple,
-si le dernier \'el\'ement de la liste courante est un \minref{cr\'enage},
-|\lastkern| donne la dimension de ce cr\'enage~; si ce
-n'est pas un cr\'enage, il donne une dimension de $0$.
-
-Utiliser |\lastbox| a l'effet suppl\'ementaire d'enlever la derni\`ere bo\^\i te de
-la liste.
-Si vous voulez que le |\last!-box| original reste dans la liste, vous
-devez en ajouter une copie dans la liste.
-|\last!-box| n'est pas permise dans une liste math\'ematique ou dans la liste
-verticale~principale.
-
-Ces s\'equences de contr\^ole sont
-plus utiles apr\`es des appels de macro qui peuvent avoir ins\'er\'e des entit\'es
-du genre indiqu\'e.
-
-\example
-\def\a{two\kern 15pt}
-one \a\a\hskip 2\lastkern three\par
-% Get three times as much space before `three'.
-\def\a{\hbox{two}}
-one \a
-\setbox0 = \lastbox % Removes `two'.
-three \box0.
-|
-\produces
-\def\a{two\kern 15pt}
-one \a\a\hskip 2\lastkern three\par
-% get three times as much space before `three'
-\def\a{\hbox{two}}
-one \a
-\setbox0 = \lastbox % removes `two'
-three \box0.
-\endexample
-\enddesc
-
-\begindesc
-\cts unkern {}
-\cts unskip {}
-\cts unpenalty {}
-\explain
-Si le dernier \'el\'ement de la liste courante est de type \minref{cr\'enage},
-\minref{ressort} ou \minref{p\'enalit\'e} respectivement, ces commandes l'enl\`event
-de cette liste. Si l'\'el\'ement n'est pas du bon type, ces commandes n'ont
-pas d'effet. Comme ^|\lastbox|, vous ne pouvez pas les appliquer \`a des listes en
-mode math\'ema\-tique ou \`a la liste verticale principale.
-Ces commandes
-sont plus pratiques apr\`es un appel de macro connu pour avoir ins\'er\'e
-un \'el\'ement sp\'ecifique que vous ne voulez pas ici.
-\TeX\ ne procure pas de commande ^|\unbox| parce que |\lastbox| produit
-\`a peu pr\`es le m\^eme effet.
-\enddesc
-
-
-%==========================================================================
-\section {filets et r\`eglures}
-
-\begindesc
-\bix^^{filets}
-\bix^^{filets horizontaux}
-\bix^^{filets verticaux}
-%
-\cts hrule {}
-\aux\cts hrule {\bt height \<dimension> width \<dimension> depth \<dimension>}
-\cts vrule {}
-\aux\cts vrule {{\bt width \<dimension> height \<dimension> depth \<dimension>}}
-\explain
-La commande |\hrule| produit un filet horizontal. La commande |\vrule|
-produit un filet vertical. Vous pouvez sp\'ecifier tout ou une partie des largeur,
-hauteur et profondeur du filet---\TeX\ apporte des valeurs par d\'efaut pour celles
-que vous omettez. Vous pouvez donner les dimensions du filet dans n'importe quel ordre~;
-les formes list\'ees ci-dessus vous montrent simplement deux combinaisons possibles. Vous
-pouvez m\^eme donner une dimension d'un type donn\'e plus d'une fois---si vous le faites,
-la derni\`ere sera celle qui sera prise en compte.
-
-Si vous ne sp\'ecifiez pas la largeur d'un filet horizontal, le filet est
-\'etendu horizontalement jusqu'aux limites de la \minref{bo\^\i te} ou de
-l'\minref{alignement} le plus interne qui contient le filet. Si vous ne sp\'ecifiez pas
-la hauteur d'un filet horizontal, elle sera par d\'efaut de |0.4pt|~; si vous ne
-sp\'ecifiez pas la profondeur d'un filet horizontal, elle sera par d\'efaut de |0pt|.
-
-Si vous ne sp\'ecifiez pas la largeur d'un filet vertical, elle sera par d\'efaut de
-|0.4pt|. Si vous ne sp\'ecifiez pas la hauteur d'un filet vertical,
-le filet est \'etendu jusqu'aux limites de la \minref{bo\^\i te} ou de
-l'\minref{alignement} le plus interne qui contient le filet.
-
-\TeX\ traite un filet horizontal comme un \'el\'ement naturellement vertical
-et un filet vertical comme un \'el\'ement naturellement horizontal.
-Donc un filet horizontal n'est l\'egal qu'en \minref{mode vertical},
-Tandis qu'un filet vertical n'est l\'egal qu'en \minref{mode horizontal}.
-^^{mode horizontal//filets en}
-^^{mode vertical//filets en}
-Si cela semble surprenant, visualisez le---un filet horizontal va
-de gauche \`a droite et s\'epare des \'el\'ements verticaux dans une s\'equence, tandis
-qu'un filet vertical va de haut en bas et
-s\'epare des \'el\'ements horizontaux dans une s\'equence.
-
-\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
-% Here you can see how the baseline relates to the
-% height and depth of an \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{ baseline}\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{ baseline}\kern 3pt \hrule width .6in}
-}
-\nextexample
-\hbox{( {\vrule} {\vrule width 8pt} )}
-\hbox {( {\vrule height 13pt depth 0pt}
- {\vrule height 13pt depth 7pt} x)}
-% the parentheses define the height and depth of each of the
-% two preceding boxes; the `x' sits on the baseline
-|
-\produces
-\medskip
-\hbox{( {\vrule} {\vrule width 8pt} )}
-\hbox {( {\vrule height 13pt depth 0pt}
- {\vrule height 13pt depth 7pt} x)}
-\endexample
-
-\eix^^{filets}
-\eix^^{filets horizontaux}
-\eix^^{filets verticaux}
-\enddesc
-
-\begindesc
-\bix^^{r\`eglures}
-\easy\cts leaders {\<bo\^\i te ou filet> \<commande de saut>}
-\cts cleaders {\<bo\^\i te ou filet> \<commande de saut>}
-\cts xleaders {\<bo\^\i te ou filet> \<commande de saut>}
-\explain
-Ces commandes produisent des \minref{r\'eglures}, c'est-\`a-dire, qu'elles remplissent un
-espace horizontal ou vertical avec des
-copies d'un motif \seeconcept{filets}.
-La \<bo\^\i te> ou le \<filet> sp\'ecifie une r\'eglure,
-c'est-\`a-dire, une seule copie du motif,
-tandis que la \<commande de saut> sp\'ecifie une
-fen\^etre devant \^etre remplie avec une
-rang\'ee ou une colonne de r\'eglures.
-Le motif est r\'ep\'et\'e autant de fois qu'il peut rentrer dans la fen\^etre.
-Si \<commande de saut> est un saut horizontal, la fen\^etre
-contient une rang\'ee de r\'eglures et \TeX\ doit \^etre en mode horizontal~;
-si \<commande de saut> est un saut vertical, la fen\^etre
-contient une colonne de r\'eglures et \TeX\ doit \^etre en mode vertical.
-
-Les commandes diff\`erent dans leur fa\c con d'arranger le motif r\'ep\'et\'e
-et o\`u elles mettent l'espace restant~:
-
-\ulist\compact
-\li Pour |\leaders|, \TeX\ aligne une rang\'ee de r\'eglures avec la limite gauche de
-la \minref{bo\^\i te} $B$ la plus interne qui contient le r\'esultat de la
-commande |\leaders|.
-Elle aligne une colonne de r\'eglures avec le haut de $B$.
-Ces r\'eglures qui tombent enti\`erement dans la fen\^etre sont gard\'ees.
-Tout espace en plus en haut et en bas de la fen\^etre est laiss\'e vide.
-\li Pour |\cleaders|, les r\'eglures sont centr\'ees dans la fen\^etre.
-\li Pour |\xleaders| le motif est uniform\'ement distribu\'e \`a travers la fen\^etre.
-Si l'espace en plus est $l$ et que la r\'eglure est r\'ep\'et\'ee $n$ fois,
-\TeX\ met de l'espace de largeur ou hauteur $l/(n+1)$ entre des r\'eglures adjacentes et
-aux deux bouts (gauche et droite ou haut et bas) des r\'eglures.
-\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
-^^{remplissage}
-Ces commandes remplissent respectivement l'espace horizontal englob\'e avec
-une rang\'ee de points sur la ligne de base et avec
-une ligne horizontale sur la ligne de base.
-C'est habituellement une bonne id\'ee de laisser un espace entre
-|\dotfill| ou |\hrulefill|
-et le texte qui la pr\'ec\`ede ou la suit (voir l'exemple ci-dessous).
-\example
-\hbox to 3in{Start {\dotfill} Finish}
-\hbox to 3in{Swedish {\hrulefill} Finnish}
-|
-\produces
-\par\hbox to 3in{Start {\dotfill} Finish}
-\hbox to 3in{Swedish {\hrulefill} Finnish}
-\endexample\enddesc
-
-\begindesc
-\cts leftarrowfill {}
-\cts rightarrowfill {}
-\explain
-^^{remplissage}
-Ces commandes remplissent l'espace horizontal englob\'e avec
-des ^{fl\`eches} point\'ees vers la gauche ou vers la droite.
-\example
-\hbox to 3in{\vrule \rightarrowfill \ 3 in
- \leftarrowfill\vrule}
-|
-\produces
-\medskip
-\hbox to 3in{\vrule \rightarrowfill \ 3 in
- \leftarrowfill\vrule}
-\endexample
-
-\eix^^{r\`eglures}
-\enddesc
-
-%==========================================================================
-\section {Alignements}
-
-%==========================================================================
-\subsection {Alignements tabul\'es}
-
-\begindesc
-\bix^^{alignements tabul\'es}
-\bix^^{alignements//commandes pour}
-%
-\ctspecial + {{\bt \<texte>\thinspace\&\thinspace\<texte>%
- \thinspace\& $\cdots$ \\cr}}
-\ctsxrdef{@plus}
-\cts tabalign {}
-\explain
-Ces commandes d\'ebutent une simple ligne dans un \minref{alignement} tabul\'e .
-La seule diff\'erence entre |\+| et |\tabalign| est que
-|\+| est une macro outer ---vous ne pouvez pas l'utiliser quand \TeX\ lit des tokens \`a
-haute vitesse \seeconcept{outer}.
-
-Si vous placez un `|&|' \`a une position
-\`a droite de toute tabulation existante dans un alignement tabul\'e,
-le `|&|' \'etablit une nouvelle tabulation \`a cette position.
-\example
-\cleartabs % Nullify any previous \settabs.
-\+ {\bf if }$a[i] < a[i+1]$ &{\bf then}&\cr
-\+&&$a[i] := a[i+1]$;\cr
-\+&&{\it found }$:=$ {\bf true};\cr
-\+&{\bf else}\cr
-\+&&{\it found }$:=$ {\bf false};\cr
-\+&{\bf end if};\cr
-|
-\produces
-\cleartabs % Nullify any previous \settabs.
-\+ {\bf if }$a[i] < a[i+1]$ &{\bf then}&\cr
-\+&&$a[i] := a[i+1]$;\cr
-\+&&{\it found }$:=$ {\bf true};\cr
-\+&{\bf else}\cr
-\+&&{\it found }$:=$ {\bf false};\cr
-\+&{\bf end if};\cr
-\endexample
-\enddesc
-
-\begindesc
-\cts settabs {\<nombre> {\bt \\columns}}
-\aux\cts settabs {{\bt \\+} \<ligne d'exemple> {\bt \\cr}}
-\explain
-La premi\`ere forme de
-cette commande d\'efinit un jeu de tabulations d'arr\^et ^^{tabulations}
-pour un \minref{alignement} tabul\'e.
-Elle demande \`a \TeX\ de mettre les tabulations d'arr\^et de mani\`ere \`a diviser chaque ligne en
-\<nombre> parties \'egales. \TeX\ prend la longueur d'une ligne comme \'etant
-|\hsize|, normalement. Vous pouvez rendre l'alignement plus \'etroit en diminuant
-|\hsize|.
-\margin{paragraph ``The tab settings $\ldots$'' moved to below.}
-\example
-{\hsize = 3in \settabs 3 \columns
-\+$1$&one&first\cr
-\+$2$&two&second\cr
-\+$3$&three&third\cr}
-|
-\produces
-{\hsize = 3in \settabs 3 \columns
-\+$1$ & one & first\cr
-\+$2$ & two & second\cr
-\+$3$ & three & third\cr}
-
-\noindent\doruler{\8\8\8}3{in}
-\smallskip
-\endexample
-
-La seconde forme de cette commande d\'efinit des tabulations d'arr\^et en mettant les tabulations d'arr\^et
-aux positions indiqu\'ees par les `|&| dans la ligne d'exemple.
-La ligne d'exemple elle-m\^eme ne doit pas appara\^\i tre dans la sortie. Quand vous
-utilisez cette forme vous devrez normalement mettre du mat\'eriel dans la ligne d'exemple qui sera
-un peu plus large que le plus large mat\'eriel correspondant dans l'alignement,
-de mani\`ere \`a produire de l'espace entre les colonnes.
-C'est ce que nous avons fait dans
-l'exemple ci-dessous. Le mat\'eriel suivant la derni\`ere tabulation
-d'arr\^et est inutile, puisqu'il n'a pas besoin de positionner
-quoi que ce soit \`a l'endroit o\`u le |\cr|~appara\^\i t.
-
-Les r\'eglages de tabulation \'etablies par |\settabs| restent actifs jusqu'\'a
-une nouvelle commande |\settabs| ou la fin du groupe contenant |\set!-tabs|. Ceci est vrai pour
-les deux formes de la commande.
-
-\example
-% The first line establishes the template.
-\settabs \+$1$\qquad & three\quad & seventh\cr
-\+$1$&one&first\cr
-\+$2$&two&second\cr
-\+$3$&three&third\cr
-|
-\produces
-\settabs \+$1$\qquad & three\quad & seventh\cr % the sample line
-\+$1$&one&first\cr
-\+$2$&two&second\cr
-\+$3$&three&third\cr
-\smallskip
-\endexample
-\enddesc
-
-\begindesc
-
-\cts cleartabs {}
-\explain
-Cette commande efface toutes les tabulations \`a droite de la colonne courante.
-Son utilisation principale est dans des applications telles que la composition de programme informatique
-dans lesquels les positions de tabulation changent \`a chaque ligne.
-\enddesc
-
-\see |\cr|, |\endline|, |\crcr| (\xref \endline).
-\eix^^{alignements tabul\'es}
-
-%==========================================================================
-\subsection {Alignement g\'en\'eraux}
-
-\begindesc
-{\tighten
-\cts halign {{\bt \rqbraces{\<pr\'eambule> \\cr \<rang> \\cr $\ldots$ \<rang> \\cr}}}
- \xrdef{@and}\xrdef{@pound}
-\aux\cts halign {{\bt to \<dimension>%
- \rqbraces{\<pr\'eambule> \\cr \<rang> \\cr $\ldots$ \<rang> \\cr}}}
-\aux\cts halign {{\bt spread \<dimension>%
- \rqbraces{\<pr\'eambule> \\cr \<rang> \\cr $\ldots$ \<rang> \\cr}}}
-\par}
-\explain
-Cette commande produit un \minref{alignement} horizontal constitu\'e d'une
-suite de rang\'ees, o\`u chaque rang\'ee \`a son tour contient une suite
-d'entr\'ee de colonne. \TeX\ ajuste les largeurs des entr\'ees de colonne
-pour accommoder la plus large dans chaque colonne.
-
-Un alignement horizontal n'appara\^\i t que quand \TeX\ est dans un \minref{mode}
-vertical. Nous vous recommandons d'apprendre les alignements en g\'en\'e\-ral
-(\xref{alignement}) avant d'essayer d'utiliser la commande |\valign|.
-
-Un alignement consiste en un ^{pr\'eambule}
-suivi par le texte \`a aligner. Le pr\'eambule,
-qui d\'ecrit la forme des rang\'ees qui le suivent, consiste en une
-suite de patrons de colonne, s\'epar\'es par `|&|' et termin\'e
-par |\cr|.
-\bix^^{patron}
-\bix^^{entr\'ee (colonne ou rang\'ee)}
-Chaque rang\'ee consiste en une suite d'entr\'ees
-de ^{colonne}, s\'epar\'ees aussi par `|&|' et termin\'ees par |\cr|. Dans
-un patron, `|#|' indique o\`u \TeX\ doit ins\'erer le
-texte correspondant \`a l'entr\'ee de colonne.
-Par contre, |\settabs| utilise un patron fixe implicite \`a `|#|',
-c'est-\`a-dire, qu'il ins\`ere simplement le texte tel quel.
-
-\TeX\ compose chaque entr\'ee de colonne en mode horizontal restreint,
-c'est-\`a-dire, comme le contenu d'une \minref{hbox},
-et englobe implicitement l'en\-tr\'ee dans un groupe.
-
-La forme |to| de cette commande demande \`a \TeX\
-d'\'etendre la largeur de l'alignement \`a \<dimension>,
-en ajustant l'espace entre les colonnes.
-La forme |spread| de cette commande demande \`a \TeX\
-d'agrandir l'alignement de \<dimension> par rapport \`a sa largeur naturelle.
-Ces formes sont comme les formes correspondantes de |\hbox| \ctsref\hbox.
-
-Voir |\tabskip| \ctsref\tabskip{} pour un exemple d'utilisation de la
-forme |to|.
-
-\example
-\tabskip = 1em \halign{%
- \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
- United States&Washington&dollar&1.00\cr
- France&Paris&franc&0.174\cr
- Israel&Jerusalem&shekel&0.507\cr
- Japan&Tokyo&yen&0.0829\cr}
-|
-\produces
-\tabskip = 1em \halign{%
- \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
- United States&Washington&dollar&1.00\cr
- France&Paris&franc&0.174\cr
- Israel&Jerusalem&shekel&0.507\cr
- Japan&Tokyo&yen&0.0829\cr}
-\endexample
-\enddesc
-
-\begindesc
-{\tighten
-\cts valign {{\bt \rqbraces{\<pr\'eambule>\\cr \<colonne>\\cr $\ldots$
- \<colonne>\\cr}}}
-\aux\cts valign {{\bt to \<dimension>%
- \rqbraces{\<pr\'eambule>\\cr \<colonne>\\cr $\ldots$ \<colonne>\\cr}}}
-\aux\cts valign {{\bt spread \<dimension>%
- \rqbraces{\<pr\'eambule>\\cr \<col.>\\cr $\ldots$ \<col.>\\cr}}}
-\par}
-\explain
-Cette commande produit un \minref{alignement} vertical
-constitu\'e d'une
-suite de colonnes, o\`u chaque colonne \`a son tour contient une suite
-d'entr\'ees de rang\'ee.
-\TeX\ ajuste les hauteurs des entr\'ees de rang\'ee pour accommoder la plus longue
-dans chaque rang\'ee.
-
-Un alignement vertical
-n'appara\^\i t que quand \TeX\ est dans un \minref{mode} horizontal.
-Puisque les alignements verticaux sont (a)~conceptuellement assez difficiles et
-(b)~peu souvent utilis\'es, nous vous recommandons d'ap\-prendre les
-alignements en g\'en\'eral
-(\xref{alignement}) et la commande |\halign| (voir ci-dessus) avant
-d'essayer d'utiliser la commande |\valign|.
-
-Un alignement consiste en un ^{pr\'eambule}
-suivi par le texte \`a aligner. Le pr\'eambule,
-qui d\'ecrit la forme des colonnes qui le suivent,
-consiste en une
-suite de patrons de rang\'ee, s\'epar\'es par `|&|' et termin\'e
-par |\cr|.
-\bix^^{patron}
-Chaque colonne consiste en une suite d'entr\'ee
-de ^{rang\'ee}, s\'epar\'ees aussi par `|&|' et termin\'ees par |\cr|. Dans
-un patron, `|#|' indique o\`u \TeX\ doit ins\'erer le
-texte correspondant \`a l'entr\'ee de rang\'ee.
-
-\TeX\ compose chaque entr\'ee de rang\'ee en mode vertical
-interne, c'est-\`a-dire, comme le contenu d'une \minref{vbox},
-et englobe implicitement l'entr\'ee dans un groupe.
-Il donne toujours \`a la vbox une profondeur \`a z\'ero.
-Tout texte ou autre mat\'eriel en mode horizontal dans une entr\'ee de rang\'ee met alors \TeX\
-en mode horizontal ordinaire.
-C'est juste une application des r\`egles g\'en\'erales du fonctionnement de \TeX\
-en mode vertical interne.
-Les param\`etres de paragraphage habituels s'appliquent dans ce cas~:
-l'entr\'ee de rang\'ee a une indentation
-initiale de |\parindent| (\xref\parindent) et
-les \minref{ressorts}
-|\leftskip| et |\rightskip| (\xref\leftskip)
-s'appliquent \`a ses lignes.
-
-Notez en particulier qu'une entr\'ee de rang\'ee contenant du texte a
-une largeur de |\hsize| (\xref\hsize). A moins que vous mettiez
-|\hsize| \`a la largeur de rang\'ee que vous voulez, vous rencontrerez
-vraisemblablement des ``overfull \minref{hbox}'' ou trouverez que
-la premi\`ere colonne occupe la largeur de la page enti\`ere, ou les deux.
-\eix^^{entr\'ee (colonne ou rang\'ee)}
-
-Normalement, vous devrez inclure un \minref{strut}
-^^{struts//dans des alignements verticaux}
-dans chaque
-patron pour que les rang\'ees n'apparaissent pas comme un r\'esultat
-des hauteurs variables des entr\'ees de l'alignement. Vous
-pouvez produire un strut avec la commande |\strut|.
-
-La forme |to| de cette commande demande \`a \TeX\
-d'\'etendre l'extension verticale de l'alignement \`a \<dimension>,
-en ajustant l'espace entre les rang\'ees.
-La forme |spread| de cette commande demande \`a \TeX\
-d'agrandir l'alignement de \<dimension> par rapport \`a sa hauteur naturelle.
-Ces formes sont comme les formes correspondantes de |\vbox| \ctsref\vbox.
-
-\example
-{\hsize=1in \parindent=0pt
-\valign{#\strut&#\strut&#\strut&#\strut\cr
- bernaise&curry&hoisin&hollandaise\cr
- ketchup&marinara&mayonnaise&mustard\cr
- rarebit&tartar\cr}}
-|
-\produces
-{\hsize=1in \parindent=0pt \leftskip=0pt
-\valign{#\strut&#\strut&#\strut&#\strut\cr
- bernaise&curry&hoisin&hollandaise\cr
- ketchup&marinara&mayonnaise&mustard\cr
- rarebit&tartar\cr}}
-\nextexample
-% same thing but without struts (shows why you need them)
-{\hsize=1in \parindent=0pt
-\valign{#&#&#&#\cr
- bernaise&curry&hoisin&hollandaise\cr
- ketchup&marinara&mayonnaise&mustard\cr
- rarebit&tartar\cr}}
-|
-\produces
-{\hsize=1in \parindent=0pt \leftskip=0pt
-\valign{#&#&#&#\cr
- bernaise&curry&hoisin&hollandaise\cr
- ketchup&marinara&mayonnaise&mustard\cr
- rarebit&tartar\cr}}
-\endexample
-\enddesc
-
-\begindesc
-\cts ialign {}
-\explain
-Cette commande r\'eagit comme ^|\halign|,
-sauf qu'elle met d'abord le ressort |\tabskip| \`a z\'ero et
-met |\everycr| \`a vide.
-\enddesc
-
-\begindesc
-\cts cr {}
-\explain
-Cette commande termine le pr\'eambule d'un alignement horizontal ou
-vertical, une rang\'ee d'un alignement horizontal ou tabul\'e,
-ou une colonne d'un alignement vertical.
-Vous pouvez demander \`a \TeX\ de faire certaines actions \`a chaque fois qu'il rencontre un |\cr|
-en chargeant la valeur du param\`etre ^|\everycr| \ctsref\everycr.
-\enddesc
-
-\begindesc
-\cts endline {}
-\explain
-Cette commande est un synonyme de la commande ^|\cr|. Elle est utile quand
-vous avez red\'efini |\cr| mais devez encore acc\'eder \`a sa d\'efinition originale.
-\enddesc
-
-\begindesc
-\cts crcr {}
-\explain
-Cette commande r\'eagit comme ^|\cr|, sauf que \TeX\ l'ignore si
-elle arrive imm\'ediatement apr\`es un |\cr| ou un ^|\noalign|.
-Sa principale application est comme mesure de s\'ecurit\'e pour \'eviter un message d'erreur ``misleading''
-caus\'e par une \minref{macro} qui attend un argument se terminant par |\cr|.
-Si vous mettez |\crcr| apr\`es le `|#|$n$' qui d\'enote un tel argument
-dans la d\'efinition de macro, la
-macro marchera proprement, que l'argument se termine par |\cr| ou non.
-\enddesc
-
-\begindesc
-\cts omit {}
-\explain
-Cette commande demande \`a \TeX\ d'ignorer un patron dans un \minref{alignement}
-horizontal ou vertical pendant le traitement d'une entr\'ee de colonne ou de rang\'ee particuli\`ere
-respectivement.
-|\omit| doit appara\^\i tre comme le premier \'el\'ement dans une entr\'ee de colonne ou de rang\'ee~; en effet,
-il remplace le patron du pr\'eambule avec le simple
-patron `|#|'.
-
-
-\example
-\tabskip = 2em\halign{%
- \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
- United States&Washington&dollar&1.00\cr
- \omit \dotfill France\dotfill&Paris&franc&0.174\cr
- Israel&Jerusalem&shekel&0.507\cr
- Japan&Tokyo&yen&0.0829\cr}
-|
-\produces
-\tabskip = 2em\halign{%
- \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
- United States&Washington&dollar&1.00\cr
- \omit \dotfill France\dotfill&Paris&franc&0.174\cr
- Israel&Jerusalem&shekel&0.507\cr
- Japan&Tokyo&yen&0.0829\cr}
-\nextexample
-{\hsize=1.2in \parindent=0pt
-\valign{(#)\strut&(#)\strut&(#)\strut&(#)\strut\cr
- bernaise&curry&hoisin&hollandaise\cr
- ketchup&\omit\strut{\bf MARINARA!!}&mayonnaise&mustard\cr
- rarebit&tartar\cr}}
-|
-\produces
-{\hsize=1.2in \parindent=0pt \leftskip=0pt
-\valign{(#)\strut&(#)\strut&(#)\strut&(#)\strut\cr
- bernaise&curry&hoisin&hollandaise\cr
- ketchup&\omit\strut{\bf MARINARA!}&mayonnaise&mustard\cr
- rarebit&tartar\cr}}
-\endexample
-\enddesc
-
-\begindesc
-\cts span {}
-\explain
-La signification de cette commande d\'epend suivant qu'elle appara\^\i t soit dans un pr\'eambule
-soit dans une entr\'ee d'alignement.
-\ulist
-\li Normalement, \TeX\ ne d\'eveloppe pas de tokens dans le pr\'eambule
-quand il le lit.
-Mettre |\span| au d\'ebut d'un token dans le pr\'eambule rend
-ce token d\'eveloppable imm\'ediatement selon les r\`egles usuelles de d\'eveloppement
-de \minref{macro} de \TeX.
-\li Mettre |\span| \`a la place de `|&|' entre deux entr\'ees de colonne ou de rang\'ee
-rend ces colonnes ou rang\'ees combin\'ees.
-Pour un alignement horizontal,
-la largeur de la colonne combin\'ee est la somme des
-largeurs des colonnes incluses.
-Pour un alignement vertical,
-la hauteur de la rang\'ee combin\'ee est la somme des
-hauteurs des rang\'ees incluses.
-Le patron des colonnes ou rang\'ees combin\'ees forme un seul groupe,
-donc des commandes de chargement de police pr\'ec\'edant un |\span| affectent tout jusqu'au
-prochain `|&|'.
-\endulist
-\noindent
-|\span| est rarement utile d'elle-m\^eme en dehors d'un patron,
-mais procure le m\'ecanisme de base
-pour d\'efinir ^|\multispan|.
-\enddesc
-
-\begindesc
-\cts multispan {\<nombre>}
-\explain
-Cette commande demande \`a \TeX\ que les \<nombre>
-colonnes suivantes d'une rang\'ee d'un alignement horizontal,
-ou
-que les \<nombre> rang\'ees dans une colonne d'un alignement vertical,
-doivent \^etre combin\'ees en une seule colonne ou rang\'ee (comme avec
-|\span|) et que leur patron doit \^etre omis (comme avec |\omit|).
-
-\example
-\tabskip = 13pt\halign{%
- \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
- United States&Washington&dollar&1.00\cr
- France&Paris&franc&0.174\cr
- Israel&Jerusalem &
- \multispan 2 \hfil\it(no information)\hfil \cr
- Japan&Tokyo&yen&0.0829\cr}
-|
-\produces
-\tabskip = 13pt\halign{%
- \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
- United States&Washington&dollar&1.00\cr
- France&Paris&franc&0.174\cr
- Israel&Jerusalem &
- \multispan 2 \hfil\it(no information)\hfil \cr
- Japan&Tokyo&yen&0.0829\cr}
-\nextexample
-{\hsize=1.2in \parindent=0pt
-\valign{(#)\strut&(#)\strut&(#)\strut&(#)\strut\cr
- bernaise&curry&hoisin&hollandaise\cr
- \multispan 3$$\left\{{{\rm ketchup}\atop{\rm marinara}}
- \right\}$$&mustard\cr
- rarebit&tartar\cr}}
-|
-\produces
-{\hsize=1.2in \parindent=0pt \leftskip=0pt
-\valign{(#)\strut&(#)\strut&(#)\strut&(#)\strut\cr
- bernaise&curry&hoisin&hollandaise\cr
- \multispan 3$$\left\{{{\rm ketchup}\atop{\rm marinara}}
- \right\}$$&mustard\cr
- rarebit&tartar\cr}}
-\endexample
-
-\eix^^{patron}
-\enddesc
-
-\begindesc
-\cts noalign {\rqbraces{\<mat\'eriel en mode vertical>}}
-\aux\cts noalign {\rqbraces{\<mat\'eriel en mode horizontal>}}
-\explain
-Cette commande ins\`ere
-\<mat\'eriel en mode vertical>
-apr\`es la rang\'ee cou\-rante d'un \minref{alignement} horizontal ou
-\<mat\'eriel en mode horizontal> apr\`es la colonne courante d'un \minref{alignement}
-vertical.
-Le mat\'eriel peut \^etre du texte, un ressort, un filet ou tout autre chose.
-
-L'utilisation la plus commune de |\noalign|
-est de mettre de l'espace suppl\'ementaire apr\`es une rang\'ee ou une colonne.
-Si vous voulez mettre de l'espace suppl\'ementaire apr\`es \emph{toutes\/} les rang\'ees d'un alignement
-horizontal, utilisez ^|\openup| (\xref\openup).
-
-\example
-\halign{%
- \hfil\it#\hfil\tabskip=2em&\hfil#\hfil&#&
- \hfil\$#\tabskip=0em\cr
- % The \tabskip changes prevent the rule below
- % from sticking out.
- United States&Washington&dollar&1.00\cr
- France&Paris&franc&0.174\cr
- \noalign{\smallskip\hrule\smallskip}
- Israel&Jerusalem&shekel&0.507\cr
- Japan&Tokyo&yen&0.0829\cr}
-|
-\produces
-\halign{%
- \hfil\it#\hfil\tabskip=2em&\hfil#\hfil&#&
- \hfil\$#\tabskip=0em\cr
- % The \tabskip changes prevent the rule below
- % from sticking out.
- United States&Washington&dollar&1.00\cr
- France&Paris&franc&0.174\cr
- \noalign{\smallskip\hrule\smallskip}
- Israel&Jerusalem&shekel&0.507\cr
- Japan&Tokyo&yen&0.0829\cr}
-\nextexample
-{\hsize=1in \parindent=0pt
-\valign{#\strut&#\strut&#\strut&#\strut\cr
- \noalign{\vrule width 2pt\quad}
- bernaise&curry&hoisin&hollandaise\cr
- \noalign{\vrule width 2pt\quad}
- ketchup&marinara&mayonnaise&mustard\cr
- \noalign{\vrule width 2pt\quad}
- rarebit&tartar\cr
- \noalign{\vrule width 2pt\quad}}}
-|
-\produces
-\medskip
-{\hsize=1in \parindent=0pt
-\valign{#\strut&#\strut&#\strut&#\strut\cr
- \noalign{\vrule width 2pt\quad}
- bernaise&curry&hoisin&hollandaise\cr
- \noalign{\vrule width 2pt\quad}
- ketchup&marinara&mayonnaise&mustard\cr
- \noalign{\vrule width 2pt\quad}
- rarebit&tartar\cr
- \noalign{\vrule width 2pt\quad}}}
-\endexample
-\enddesc
-
-\begindesc
-\cts tabskip {\param{ressort}}
-\explain
-Ce param\`etre sp\'ecifie le montant de ressort horizontal ou vertical
-que \TeX\ met entre les
-colonnes d'un alignement horizontal ou entre les
-rang\'ees d'un alignement vertical.
-\TeX\ met aussi le ressort |\tabskip|
-\`a gauche de la premi\`ere colonne et \`a droite de la derni\`ere colonne
-d'un alignement horizontal,
-avant la premi\`ere rang\'ee
-et apr\`es la derni\`ere rang\'ee d'un alignement vertical.
-Vous pouvez changer |\tabskip| dans un patron---%
-le changement affectera le ressort associ\'e avec tous les
-|&| suivant aussi bien que le ressort apr\`es la derni\`ere rang\'ee ou colonne.
-\example
-\halign to 3.5in{%
- \hfil\it#\tabskip = 2em plus 8pt
- \hfil&\hfil#\hfil&#\tabskip = 1em
- &\hfil\$#\tabskip = 0em\cr
- United States&Washington&dollar&1.00\cr
- France&Paris&franc&0.174\cr
- Israel&Jerusalem&shekel&0.507\cr
- Japan&Tokyo&yen&0.0829\cr}
-|
-\produces
-\halign to 3.5in{%
- \hfil\it#\tabskip = 2em plus 8pt
- \hfil&\hfil#\hfil&#\tabskip = 1em
- &\hfil\$#\tabskip = 0em\cr
- United States&Washington&dollar&1.00\cr
- France&Paris&franc&0.174\cr
- Israel&Jerusalem&shekel&0.507\cr
- Japan&Tokyo&yen&0.0829\cr}
-\nextexample
-{\hsize = 1in \parindent=0pt \tabskip=5pt
-\valign{#\strut&#\strut\tabskip = 3pt
- &#\strut&#\strut\cr
- bernaise&curry&hoisin&hollandaise\cr
- ketchup&marinara&mayonnaise&mustard\cr
- rarebit&tartar\cr}}
-|
-\produces
-{\hsize = 1in \parindent=0pt \tabskip=5pt
-\valign{#\strut&#\strut\tabskip = 3pt
- &#\strut&#\strut\cr
- bernaise&curry&hoisin&hollandaise\cr
- ketchup&marinara&mayonnaise&mustard\cr
- rarebit&tartar\cr}}
-\endexample
-\enddesc
-
-\begindesc
-\cts hidewidth {}
-\explain
-Cette commande demande \`a \TeX\ d'ignorer la largeur de l'entr\'ee de la colonne suivante dans un
-alignement horizontal. C'est pratique quand vous avez une entr\'ee qui est plus longue
-que la plupart des autres dans la m\^eme colonne
-et que vous pr\'ef\'erez avoir cette entr\'ee sortant de la colonne plut\^ot
-que rendre toutes les entr\'ees
-de la colonne plus larges. Si le |\hidewidth| est \`a gauche de
-l'entr\'ee, l'entr\'ee d\'ebordera \`a gauche~; si le |\hidewidth| est \`a
-droite de l'entr\'ee, l'entr\'ee d\'ebordera \`a droite.
-\example
-\tabskip = 25pt\halign{%
- \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
- United States&\hidewidth Washington&
- dollar&1.00\cr
- France&Paris&franc&0.174\cr
- Israel&Jerusalem&shekel&0.507\cr
- Japan&Tokyo&yen&0.0829\cr}
-|
-\produces
-\tabskip = 25pt\halign{%
- \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
- United States&\hidewidth Washington&
- dollar&1.00\cr
- France&Paris&franc&0.174\cr
- Israel&Jerusalem&shekel&0.507\cr
- Japan&Tokyo&yen&0.0829\cr}
-\endexample
-\enddesc
-
-\begindesc
-\cts everycr {\param{liste de token}}
-\explain
-\TeX\ d\'eveloppe \<token list> \`a chaque fois qu'il ex\'ecute
-un |\cr|---\`a la fin de chaque pr\'eambule,
-\`a la fin de chaque rang\'ee d'un alignement horizontal
-et \`a la fin de chaque colonne d'un alignement vertical.
-La commande |\everycr| est d\'evelopp\'ee juste apr\`es le |\cr|.
-Ainsi vous pouvez demander \`a \TeX\
-d'ex\'ecuter certaines commandes \`a la fin d'un pr\'eambule, d'une rang\'ee ou d'une colonne en
-assignant une liste de commandes \`a |\everycr|.
-
-Les tokens |\everycr| ne doivent pas inclure d'autres commandes que |\no!-align|.
-Ceci parce que
-les tokens |\everycr| r\'eappara\^\i tront apr\`es le dernier
-|\cr| de l'alignement. Une commande autre qu'un
-|\noalign| fera penser \`a \TeX\ qu'il commence une nouvelle
-rang\'ee ou colonne.
-\TeX\ se plaindra d'un |\cr| manquant, ins\`erera
-un |\cr|, ins\`erera les tokens |\everycr| \`a nouveau et r\'ep\`etera ces actions
-ind\'efiniment.
-\example
-\everycr={\noalign{\smallskip\hrule\smallskip}}
-\halign{#\tabskip = 11pt&\hfil#\hfil&\hfil#\hfil
- \tabskip = 0pt\cr
- $1$&one&first\cr
- $2$&two&second\cr
- $3$&three&third\cr}
-|
-\produces
-\medskip
-\everycr={\noalign{\smallskip\hrule\smallskip}}
-\halign{#\tabskip = 11pt&\hfil#\hfil&\hfil#\hfil
- \tabskip = 0pt\cr
- $1$&one&first\cr
- $2$&two&second\cr
- $3$&three&third\cr}
-\endexample
-
-\eix^^{alignements//commandes pour}
-\enddesc
-
-\enddescriptions
-
-
-\endchapter
-\byebye
+% This is part of the book TeX for the Impatient.
+% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
+% Copyright (C) 2004 Marc Chaudemanche pour la traduction française.
+% See file fdl.tex for copying conditions.
+
+\input fmacros
+\chapter {Commandes pour \linebreak les modes horizontaux \linebreak et verticaux}
+
+\chapterdef{hvmodes}
+
+Cette section couvre les commandes qui ont des formes correspondantes ou
+identiques dans les modes horizontaux et verticaux.
+Ces commandes fournissent des bo\^\i tes, des espaces, des filets, des r\'eglures
+et des alignements.
+Pour une explication des conventions utilis\'ees dans cette section,
+voir \headcit{Descriptions des commandes}{cmddesc}.
+
+\begindescriptions
+
+%==========================================================================
+\section {Produire des espaces}
+
+%==========================================================================
+
+\subsection {Espaces horizontaux de largeur fixe}
+
+\begindesc
+\bix^^{espace//production d'}
+\bix^^{espace horizontal}
+\cts thinspace {}
+\explain
+Cette commande produit un \minref{cr\'enage} positif
+dont la largeur \'equivaut \`a un sixi\`eme d'em
+(\xref{dimdefs})
+c'est-\`a-dire qu'il demande \`a \TeX\ de d\'eplacer sa position \`a droite de ce montant.
+C'est pratique
+quand vous avez par exemple des quotes imbriqu\'ees
+et que vous voulez les s\'eparer.
+\TeX\ ne coupe pas de ligne sur un
+|\thinspace|.\minrefs{line break}
+
+\example
+``\thinspace`A quote.'\thinspace''\par
+24,\thinspace 29--31,\thinspace 45,\thinspace 102
+|
+\produces
+``\thinspace`A quote.'\thinspace''\par
+24,\thinspace 29--31,\thinspace 45,\thinspace 102
+\endexample
+\enddesc
+
+\begindesc
+\cts negthinspace {}
+\explain
+Cette commande produit un \minref{cr\'enage} n\'egatif
+dont la largeur \'equivaut \`a un sixi\`eme d'em
+(\xref{dimdefs})
+c'est-\`a-dire qu'il demande \`a \TeX\ de d\'eplacer sa position \`a gauche de ce montant.
+C'est pratique pour rapprocher deux caract\`eres qui sont un peu trop
+\'eloign\'es l'un de l'autre.
+\TeX\ ne coupe pas de ligne sur un |\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
+Cette commande produit un \minref{cr\'enage} dont la largeur \'equivaut \`a un ^{en}
+(la moiti\'e d'un em, voir \xrefpg{dimdefs}).
+\TeX\ ne coupe pas de ligne sur un |\enspace| \`a moins qu'il soit suivi d'un ressort.
+Dans une liste \`a puce, les puces sont g\'en\'eralement s\'epar\'ees du texte qui les suit
+par un |\enspace|.
+\example
+Lemma 1.\enspace There exists a white rabbit.
+|
+\produces
+Lemma 1.\enspace There exists a white rabbit.
+\endexample
+% the enspace here follows the \proclaim convention (Knuth p. 355).
+\enddesc
+
+\begindesc
+\easy\cts enskip {}
+\cts quad {}
+\cts qquad {}
+\explain
+^^{en}
+Chacune de ces commandes
+produit un bout de \minref{ressort} horizontal
+qui ne peut ni s'\'etirer ni se r\'etr\'ecir.
+\TeX\ peut couper une ligne \minrefs{line break} sur un tel ressort.
+Les largeurs de ces ressort/dimension
+(qui sont relatifs \`a la police courante)
+sont les suivantes pour |cmr10|, la police par d\'efaut de \plainTeX~:
+\medskip
+\def\distance#1{\hbox{\strut $\rightarrow$\vrule\hskip #1\vrule$\leftarrow$}}
+{\def\l#1{\hfil$#1$\thinspace em}
+\tabskip 3pc \halign{#&#&\hfil#\hfil\cr
+{\it Commande}&{\it Espace}&{\it Illustration}\cr
+\noalign{\vskip 4pt}
+|\enskip|&\l{\frac 1/2}&\distance{.5em}\cr
+|\quad|&\l1&\distance{1em}\cr
+|\qquad|&\l2&\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^^{espace horizontal}
+\enddesc
+
+%==========================================================================
+\subsection {Espaces verticaux de largeur fixe}
+
+\begindesc
+\bix^^{espace vertical}
+\easy\cts smallskip {}
+\cts medskip {}
+\cts bigskip {}
+\explain
+Ces commandes produisent des montants d'espacement vertical
+successivement plus larges~:
+\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| saute de $3$ points et peut s'\'etirer ou
+s'\'elargir de $1$ point. |\med!-skip| est \'equivalent \`a deux |\smallskip|s
+et |\bigskip| est \'equivalent \`a deux |\medskip|s.
+
+Ces commandes terminent un paragraphe car elles sont fondamentalement verticales.
+Les sauts qu'elles produisent
+sont ajout\'es au saut inter-para\-graphe normal.
+\example
+Hop \smallskip skip \medskip and \bigskip jump.
+|
+\produces
+Hop \smallskip skip \medskip and \bigskip jump.
+\endexample
+\enddesc
+
+\begindesc
+\cts smallskipamount {\param{ressort}}
+\cts medskipamount {\param{ressort}}
+\cts bigskipamount {\param{ressort}}
+\explain
+Ces param\`etres sp\'ecifient les montants de ressort produit par
+les commandes |\small!-skip|, |\med!-skip| et |\big!-skip|.
+En changeant ces param\`e\-tres vous changez l'effet des commandes.
+Les valeurs par d\'efaut (pour \plainTeX)
+correspondent \`a un quart d'une ligne d'espace, \`a la moiti\'e d'une ligne d'espace,
+et \`a une ligne d'espace enti\`ere.
+Nous vous recommandons de maintenir ce ratio en changeant
+ces valeurs \`a chaque fois que
+vous changez |\baselineskip| (\xref\baselineskip).
+^^|\baselineskip//et {\tt\\smallskipamount}, etc.|
+\eix^^{espace vertical}
+
+\enddesc
+
+%==========================================================================
+\subsection {Espace de taille variable}
+
+\begindesc
+\easy\cts hskip {\<dimension$_1$> {\bt plus} \<dimension$_2$> {\bt minus} \<dimension$_3$>}
+\cts vskip {\<dimension$_1$> {\bt plus} \<dimension$_2$> {\bt minus} \<dimension$_3$>}
+^^{saut vertical}^^{ressort vertical}
+^^{saut horizontal}^^{ressort horizontal}
+\bix^^{espace horizontal}
+\bix^^{espace vertical}
+\explain
+Ces commandes produisent des ressorts respectivement horizontaux et verticaux.
+Dans le cas le plus simple et le plus courant, quand il n'y a seulement que \<dimension$_1$>,
+|\hskip| saute vers la droite de \<dimension$_1$>
+et |\vskip| saute vers le bas de la page de \<dimension$_1$>.
+Plus g\'en\'erale\-ment, ces commandes
+produisent des \minref{ressort}s dont la taille naturelle est
+\<dimension$_1$>, l'\'etirement \<dimension$_2$> et le r\'etr\'ecissement \<dimension$_3$>.
+Le |plus| \<dimension$_2$>, le |minus |\<dimension$_3$>,
+ou les deux peuvent \^etre omis.
+Si les deux sont pr\'esent, le |plus| doit \^etre avant le |minus|.
+Une valeur omise
+est consid\'er\'ee \`a z\'ero. Toutes les \<dimension>s peuvent \^etre n\'egatives.
+
+Vous pouvez utiliser |\hskip| en mode math\'ematique, mais vous ne pouvez utiliser d'unit\'es |mu|
+\seeconcept{unit\'e math\'ematique}
+pour aucune des dimensions. Si vous voulez des unit\'es |mu|, utilisez |\mskip|
+(\xref\mskip) \`a la place.
+
+\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% Just show effects of \vskip.
+ \hbox{one}\vskip 0pc plus 1pc \hbox{two}
+ \vskip .5pc \hbox{three}}
+|
+\produces
+\smallskip
+\vbox to 4pc{\offinterlineskip% Just show effects of \vskip.
+ \hbox{one}\vskip 0pc plus 1pc \hbox{two}
+ \vskip .5pc \hbox{three}}
+\endexample
+\enddesc
+
+\begindesc
+\cts hglue {\<ressort>}
+\cts vglue {\<ressort>}
+^^{ressort vertical}
+^^{ressort horizontal}
+\explain
+La commande |\hglue| produit un \minref{ressort} horizontal qui ne dispara\^\i t pas sur
+une coupure de ligne. La commande |\vglue|
+produit un \minref{ressort} vertical qui ne dispara\^\i t pas sur une coupure de page.
+Pour le reste ces commandes sont comme |\hskip| et |\vskip|.
+Vous pouvez utiliser |\vglue| pour produire de l'espace blanc en haut d'une page,
+par exemple, au dessus d'un titre sur la premi\`ere page d'un document, mais
+^|\topglue| (suivant) est normalement plus appropri\'e pour cet usage.
+\enddesc
+
+\begindesc
+\cts topglue {\<ressort>}
+\explain
+\margin{Command added; recent addition to \TeX}
+Cette commande\footnote{|\topglue| a \'et\'e ajout\'e \`a \TeX\ dans la version 3.0,
+apr\`es les autres am\'enagements introduitis par le ^{\newTeX}
+(\xref{newtex}). C'est la premi\`ere d\'ecrite dans la \emph{dix-huiti\`eme\/}
+\'edition de \texbook.} fait que l'espace entre le haut de la page et le
+haut de la premi\`ere bo\^\i te de la page soit pr\'ecis\'ement \'egal \`a \<glue>.
+Le haut de la page est consid\'er\'e \^etre sur la ligne de base d'une
+ligne imaginaire de texte juste au-dessus de la ligne du haut de la page.
+Plus pr\'ecis\'ement, c'est une distance |\topskip| au dessus de l'origine donn\'ee par
+|\hoffset| et |\voffset|.
+
+Cette commande est pratique parce que \TeX\ ajuste le ressort normalement
+produit par |\topskip| d'une mani\`ere complexe. En utilisant |\top!-glue| vous pouvez
+contr\^oler la position de la premi\`ere bo\^\i te de la page sans vous inqui\'eter de
+ces ajustements.
+
+\enddesc
+
+\begindesc
+\cts kern {\<dimension>}
+\explain
+L'effet de cette commande d\'epend du mode dans lequel est \TeX\ quand
+il la rencontre~:
+\ulist
+
+\li En mode horizontal, \TeX\ d\'eplace sa position vers la droite (pour un cr\'enage positif)
+ou vers la gauche (pour un cr\'enage n\'egatif).
+
+\li En mode vertical, \TeX\ d\'eplace sa position vers le bas de la page (pour un cr\'enage positif)
+ou vers le haut de la page (pour un cr\'enage n\'egatif).
+
+\endulist
+\noindent
+Ainsi un cr\'enage positif produit un espace vide tandis qu'un cr\'enage n\'egatif
+fait que \TeX\ recule sur quelque chose qu'il a d\'ej\`a produit.
+Cette notion de cr\'enage ^^{cr\'enages}
+est diff\'erente de la notion de cr\'enage dans certains syst\`emes de composition
+typographique informatis\'es---dans \TeX, des cr\'e\-nages positifs \emph{\'ecartent}
+deux lettres au lieu de les rapprocher.
+
+Un cr\'enage est similaire \`a un
+\minref{ressort}, sauf que (a)~un cr\'enage ne peut ni s'\'etirer ni se r\'etr\'ecir,
+et (b)~\TeX\ ne coupera une ligne ou une page sur un cr\'enage que si le cr\'enage
+est suivi par un ressort et ne fait pas partie d'une formule math\'ematique.
+Si \TeX\ trouve un cr\'enage \`a la fin
+d'une ligne ou d'une page, il \'elimine le cr\'enage.
+Si vous voulez obtenir l'effet d'un cr\'enage qui ne dispara\^\i t jamais,
+utilisez ^|\hglue| ou ^|\vglue|.
+
+Vous pouvez utiliser |\kern| en mode math\'ematique, mais vous ne pouvez pas utiliser d'unit\'es |mu|
+\seeconcept{unit\'e math\'ematique}
+pour \<dimension>. Si vous voulez des unit\'es |mu|, utilisez |\mkern|
+(\xref\mkern) \`a la place.
+^^{coupures de ligne//cr\'enages sur des}
+^^{coupures de page//cr\'enages sur des}
+
+\example
+\centerline{$\Downarrow$}\kern 3pt % a vertical kern
+\centerline{$\Longrightarrow$\kern 6pt % a horizontal kern
+ {\bf Heed my warning!!}\kern 6pt % another horizontal kern
+ $\Longleftarrow$}
+\kern 3pt % another vertical kern
+\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
+ $\Longleftarrow$}
+\kern 3pt % another vertical kern
+\centerline{$\Uparrow$}
+\endexample
+\enddesc
+
+\begindesc
+\makecolumns 4/2:
+\cts hfil {}
+\cts hfill {}
+\cts vfil {}
+\cts vfill {}
+\explain
+\bix^^{ressort//\'etirable infiniment}
+Ces commandes produisent des ressorts horizontaux et verticaux \'etirables
+infiniment qui
+\'ecrasent tout \'etirement fini qui peut \^etre pr\'esent.
+|\hfil| et |\hfill| produisent des ressorts horizontaux, tandis que
+|\vfil| et |\vfill| produisent des ressorts verticaux.
+
+|\hfill| est infiniment plus grand que |\hfil|.
+Si |\hfill| et |\hfil| apparaissent dans la m\^eme \minref{bo\^\i te},
+le |\hfill| consumera toute la place suppl\'ementaire possible
+et le |\hfil| sera effectivement ignor\'e.
+|\hfill| peut \`a son tour est \'ecras\'e par |\hskip 0pt plus 1filll|.
+Les ressorts produits par
+|\hfil| et |\hfill| ne r\'etr\'ecissent jamais.
+
+Le comportement de |\vfil| et |\vfill| est analogue.
+
+\example
+\hbox to 2in{Left\hfil Middle \hfil Right}
+|
+\produces
+\hbox to 2in{Left\hfil Middle \hfil Right}
+
+
+\doruler{\8\8}2{in}
+\nextexample
+\hbox to 2in{Left\hfil Middle \hfill Right}
+|
+\produces
+\hbox to 2in{Left\hfil Middle \hfill Right}
+
+\doruler{\8\8}2{in}
+\nextexample
+\leftline{%
+\vbox to 4pc{%
+ \hbox{Top}\vfil\hbox{Middle}\vfil \hbox{Bottom}}\quad
+\vbox to 4pc{%
+ \hbox{Top}\vfil\hbox{Middle}\vfill\hbox{Bottom}}}
+|
+\produces
+\smallskip
+\leftline{%
+\vbox to 4pc{%
+ \hbox{Top}\vfil\hbox{Middle}\vfil \hbox{Bottom}}\quad
+\vbox to 4pc{%
+ \hbox{Top}\vfil\hbox{Middle}\vfill\hbox{Bottom}}}
+\endexample
+
+\eix^^{ressort//\'etirable infiniment}
+\enddesc
+
+\begindesc
+\cts hss {}
+\cts vss {}
+\explain
+Ces commandes produisent des ressorts horizontaux et
+verticaux qui sont infiniment \'etirables et
+r\'etr\'ecissables. Le ressort peut se r\'etr\'ecir
+sur une distance n\'egative, produisant l'effet de reculer sur une ligne
+(pour |\hss|) ou remonter sur une page (pour |\vss|).
+
+\example
+\line{text\hfil\hbox to 0pt{margin\hss}}
+% `margin\hss' shrinks to the zero width of the hbox.
+|
+\produces
+\line{text\hfil\hbox to 0pt{margin\hss}}
+\nextexample
+\vbox to 1pc{\hrule width 6pc % Top of box.
+ \hbox{1} \vskip 1pc\hbox to 2pc{\hfil 2}
+ % The \vss absorbs the extra distance produced by \vskip.
+ \vss \hbox to 3pc{\hfil 3}
+ \hrule width 6pc}% Bottom of box.
+|
+\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
+^^{ressort//n\'egatif}
+Ces commandes effacent l'effet d'un |\hfil| ou d'un |\vfil|
+pr\'ec\'edent. Tandis que |\hfil| et |\vfil| produisent un
+\minref{ressort} positif infiniment \'etirable, |\hfilneg| et |\vfilneg|
+produisent un ressort n\'egatif infiniment \'etirable.
+(ainsi, $n$ |\hfilneg| effacent $n$ ^|\hfil| et pareillement
+pour le |\vfilneg|.)
+L'utilisation principale de |\hfilneg| et de |\vfilneg| est de contrecarrer
+l'effet d'un |\hfil| ou d'un |\vfil| ins\'er\'e par une \minref{macro}.
+
+|\hfilneg| et |\vfilneg| ont
+la propri\'et\'e curieuse, s'ils sont les seuls ressorts infiniment \'etirables
+d'une bo\^\i te, de produire exactement le m\^eme effet que |\hfil|
+et |\vfil|.
+
+\example
+\leftline{\hfil on the right\hfilneg}
+% Cancel the \hfil that \leftline produces to the right
+% of its argument.
+|
+\produces
+\leftline{\hfil on the right \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| et |\vbadness| (\xref \vbadness),
+|\hfuzz| et |\vfuzz| (\xref \vfuzz),
+\conceptcit{filets}.\par}
+\eix^^{espace//production d'}
+\eix^^{espace horizontal}
+\eix^^{espace vertical}
+
+%==========================================================================
+\section {Manipuler des bo\^\i tes}
+
+%==========================================================================
+\subsection {Construire des hbox et des vbox}
+
+\begindesc
+\bix^^{commandes de \boites}
+^^{hbox//construction avec \b\tt\\hbox\e}
+%
+\cts hbox {\rqbraces{\<mat\'eriel en mode horizontal>}}
+\aux\cts hbox {{\bt to} \<dimension> \rqbraces{\<mat\'eriel en mode horizontal>}}
+\aux\cts hbox {{\bt spread} \<dimension> \rqbraces{\<mat\'eriel en mode horizontal>}}
+\explain
+Ces commandes produisent une hbox
+(\minref{bo\^\i te} horizontale) contenant du \<mat\'eriel en mode horizontal>.
+Les accolades autour du \<mat\'eriel en mode horizontal> d\'efinissent un groupe.
+\TeX\ ne coupe pas le \<mat\'eriel en mode horizontal> en plusieurs lignes,
+puisqu'il est en mode horizontal restreint quand il assemble la bo\^\i te.
+\TeX\ ne change pas la taille de la bo\^\i te une fois qu'elle est produite.
+
+|\hbox| est souvent utile quand vous voulez conserver du texte sur une seule ligne.
+Si votre utilisation de |\hbox| emp\^eche \TeX\ de couper des lignes de mani\`ere acceptable,
+\TeX\ se plaindra d'un ``overfull hbox''.
+
+La largeur du hbox d\'epend des arguments de |\hbox|~:
+\ulist\compact
+\li Si vous ne sp\'ecifiez que du \<mat\'eriel en mode horizontal>,
+le hbox aura sa \minref{largeur} naturelle.
+\li Si vous sp\'ecifiez |to| \<dimension>, la largeur du hbox sera \<dimension>.
+\li Si vous sp\'ecifiez |spread| \<dimension>, la largeur du hbox sera
+sa largeur naturelle plus \<dimension>, c'est-\`a-dire, le hbox s'allongera de
+\<dimension>.
+\endulist
+
+La commande ^|\hfil| (\xref\hfil) est utile pour remplir un
+hbox d'espace vide quand le mat\'eriel dans la bo\^\i te n'est pas aussi large que la
+largeur de la bo\^\i te.
+\example
+\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.
+|
+\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 {\<mat\'eriel en mode vertical>}
+\aux\cts vtop {{\bt to} \<dimension> \rqbraces{\<mat\'eriel en mode vertical>}}
+\aux\cts vtop {{\bt spread} \<dimension> \rqbraces{\<mat\'eriel en mode vertical>}}
+\cts vbox {\rqbraces{\<mat\'eriel en mode vertical>}}
+\aux\cts vbox {{\bt to} \<dimension> \rqbraces{\<mat\'eriel en mode vertical>}}
+\aux\cts vbox {{\bt spread} \<dimension> \rqbraces{\<mat\'eriel en mode vertical>}}
+\explain
+^^{hbox//construction avec \b\tt\\hbox\e}
+Ces commandes
+produisent une \minref{vbox} (\minref{bo\^\i te} verticale)
+contenant du \<ma\-t\'eriel en mode vertical>.
+Les accolades autour du \<mat\'eriel en mode vertical> d\'efinissent un groupe.
+\TeX\ est en mode vertical interne quand il assemble la bo\^\i te.
+\TeX\ ne change pas la taille de la bo\^\i te une fois qu'elle est produite.
+
+La diff\'erence entre |\vtop| et |\vbox| est o\`u \TeX\ met
+le point de r\'ef\'erence de la vbox construite.
+Normalement, le point de r\'ef\'erence obtenu de |\vtop| tend \`a \^etre sur ou pr\`es
+du haut de la vbox construite,
+tandis que
+le point de r\'ef\'erence obtenu de |\vbox| tend \`a \^etre sur ou pr\`es
+du bas de la vbox construite.
+Ainsi une rang\'ee de vbox toutes construites avec |\vtop|
+tendra \`a avoir leurs hauts \`a peu pr\`es align\'es,
+tandis qu'une rang\'e de vbox toutes construites avec |\vbox|
+tendra \`a avoir leurs bas \`a peu pr\`es align\'es.
+
+|\vtop| et |\vbox| sont souvent pratiques
+quand vous voulez garder du texte ensemble sur une seule page.
+(Pour cela, peu importe normalement quelle commande vous utilisez.)
+Si votre usage de ces commandes
+emp\^eche \TeX\ de couper des pages d'une mani\`ere acceptable,
+\TeX\ se plaindra qu'il a trouv\'e un ``overfull'' ou un ``underfull vbox while
+|\output| is active''.
+
+La hauteur d'une vbox d\'epend des
+arguments de |\vtop| ou |\vbox|.
+Pour |\vbox|, \TeX\ d\'etermine la hauteur de la mani\`ere suivante~:
+\ulist\compact
+\li Si vous ne sp\'ecifiez que du \<mat\'eriel en mode vertical>,
+la vbox aura sa hauteur naturelle.
+\li Si vous sp\'ecifiez |to| \<dimension>,
+la hauteur de la vbox sera fix\'ee \`a \<dimension>.
+\li Si vous sp\'ecifiez |spread| \<dimension>, la hauteur de la vbox sera
+sa hauteur naturelle plus \<dimension>, c'est-\`a-dire,
+que la hauteur de la vbox sera \'etir\'ee verticalement de \<dimension>.
+\endulist
+\noindent
+Pour |\vtop|,
+\TeX\ construit la bo\^\i te en utilisant ses r\`egles pour |\vbox| et ensuite
+r\'epartit l'extension verticale entre la hauteur et la profondeur comme
+d\'ecrit ci-dessous.
+
+Normalement, la largeur d'une vbox construite est la largeur de l'\'el\'e\-ment le plus
+large contenu\footnote
+{Plus pr\'ecis\'ement, c'est la distance du point de r\'ef\'erence au cot\'e le plus \`a
+droite de la vbox construite. Par cons\'equent,
+si vous d\'eplacez un des \'el\'ements vers la droite en utilisant ^|\moveright| ou
+^|\moveleft| (avec une distance n\'egative),
+la vbox construite pourra \^etre plus large.}.
+Les r\`egles de r\'epartitions de l'extension verticale entre la
+hauteur et la profondeur sont plus compliqu\'ees~:
+\ulist
+\li Pour |\vtop|,
+la hauteur est la hauteur de son premier \'el\'ement, si cet \'el\'ement est une bo\^\i te ou un filet.
+Autrement la hauteur est \`a z\'ero. La profondeur est toute extension verticale
+restante quand la hauteur a \'et\'e enlev\'ee.
+\li Pour |\vbox|,
+la profondeur est la profondeur de son dernier \'el\'ement, si cet \'el\'ement est une bo\^\i te ou un filet.
+Autrement la profondeur est \`a z\'ero. La hauteur est toute extension verticale
+restante quand la profondeur a \'et\'e enlev\'ee%
+\footnote{En fait, il y a une complication suppl\'ementaire.
+Supposez qu'apr\`es que la profondeur ait \'et\'e d\'etermin\'ee
+en utilisant les deux r\`egles pr\'ec\'edentes, la profondeur devienne plus grande que
+^|\boxmaxdepth|.
+Alors la profondeur est r\'eduite \`a |\boxmaxdepth| et la hauteur est ajust\'ee
+en cons\'equence.}.
+\endulist
+
+La commande |\vfil| (\xref\vfil) est pratique pour remplir une vbox
+^^|\vfil//remplir une vbox|
+avec de l'espace vide quand le mat\'eriel dans la bo\^\i te n'est pas aussi grand que
+l'extention verticale de la bo\^\i te.
+\example
+\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.}}
+|
+\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.}}
+\nextexample
+\hbox{\hsize = 1in \raggedright\parindent = 0pt
+\vtop to .75in{\hrule This box is .75in deep. \vfil\hrule}
+\qquad
+\vtop{\hrule This box is at its natural depth. \vfil\hrule}
+\qquad
+\vtop spread .2in{\hrule This box is .2in deeper than
+ its natural depth.\vfil\hrule}}
+|
+\produces
+\hbox{\hsize = 1in \raggedright\parindent=0pt
+\vtop to .75in{\hrule This box is .75in deep. \vfil\hrule}
+\qquad
+\vtop{\hrule This box is at its natural depth. \vfil\hrule}
+\qquad
+\vtop spread .2in{\hrule This box is .2in deeper than
+ its natural depth.\vfil\hrule}}
+\nextexample
+% See how \vbox lines up boxes at their bottoms
+% instead of at their tops.
+\hbox{\hsize = 1in \raggedright
+\vbox to .5in{\hrule This box is .5in deep.\vfil\hrule}
+\qquad
+\vbox to .75in{\hrule This box is .75in deep.\vfil\hrule}}
+|
+\produces
+\hbox{\hsize = 1in \raggedright
+\vbox to .5in{\hrule This box is .5in deep.\vfil\hrule}
+\qquad
+\vbox to .75in{\hrule This box is .75in deep.\vfil\hrule}}
+\vskip 16pt % to avoid running into the next command description
+\endexample
+\enddesc
+
+\begindesc
+\margin{Two commands interchanged here.}
+\cts boxmaxdepth {\param{dimension}}
+\explain
+Ce param\`etre contient une dimension $D$.
+\TeX\ ne construira pas une bo\^\i te dont la profondeur d\'epassera $D$.
+Si vous produisez une bo\^\i te dont la profondeur $d$ doit d\'epasser $D$,
+\TeX\ transf\`erera la
+profondeur exc\'edentaire dans la hauteur de la bo\^\i te, en abaissant en r\'ealit\'e le
+\minref{point de r\'ef\'erence} de la bo\^\i te de $d-D$.
+Si vous mettez |\boxmaxdepth| \`a z\'ero, \TeX\ alignera une rang\'ee de vbox
+de telle mani\`ere que leurs fronti\`eres du bas seront toutes sur la m\^eme ligne horizontale.
+\PlainTeX\ met |\boxmaxdepth| \`a |\maxdimen| \ctsref{\maxdimen},
+donc |\boxmaxdepth| n'affectera pas vos bo\^\i tes \`a moins que vous le changiez.
+\enddesc
+
+\begindesc
+\cts underbar {\<argument>}
+\explain
+Cette commande met \<argument> dans une \minref{hbox}
+et la souligne sans faire attention \`a tout ce que d\'epasse sous la
+\minref{ligne de base} de la bo\^\i te.
+\example
+\underbar{Why not learn \TeX?}
+|
+\produces
+\underbar{Why not learn \TeX?}
+\endexample
+\enddesc
+
+\begindesc
+\cts everyhbox {\param{liste de token}}
+\cts everyvbox {\param{liste de token}}
+\explain
+Ces param\`etres contiennent des liste de token que \TeX\ d\'eveloppe au d\'ebut de
+toutes \minref{hbox} ou \minref{vbox} qu'il construit.
+Tout \'el\'ement r\'esultant de l'expansion devient alors
+le d\'ebut de la liste d'\'el\'ements pour la bo\^\i te.
+Par d\'efaut, ces listes de token sont vides.
+\enddesc
+
+%==========================================================================
+\subsection {Remplir et r\'ecuperer le contenu de bo\^\i tes}
+
+\begindesc
+\bix^^{registres de \boite}
+%
+\cts setbox {\<registre>\thinspace{\bt =}\thinspace\<bo\^\i te>}
+\cts box {\<registre>}
+\explain
+^^{assignements//de \boites}
+Ces commandes remplissent et r\'ecup\`erent respectivement le contenu
+du registre de bo\^\i te
+dont le num\'ero est \<registre>.
+Notez que vous remplissez un registre de bo\^\i te d'une mani\`ere un peu diff\'erente de celle
+utilis\'ee pour les autres types de registres~: vous utilisez
+|\setbox|$\,n$~|=| plut\^ot que |\box|$\,n$~|=|.
+
+\emph{R\'ecup\'erer le contenu d'un registre de bo\^\i te
+avec ces commandes a l'effet secondaire d'enlever ce qu'il contient,
+donc le registre de bo\^\i te devient vide.} Si vous ne voulez pas que cela arrive,
+vous pouvez utiliser |\copy| (voir ci-dessous) pour r\'ecup\'erer le contenu.
+Vous devez utiliser |\box| de pr\'ef\'erence \`a |\copy|
+quand vous n'avez plus besoin du contenu d'un registre de bo\^\i te apr\`es l'avoir utilis\'e,
+de mani\`ere \`a ne pas augmenter la m\'emoire de \TeX\ en la remplissant avec des bo\^\i tes obsol\`etes.
+\example
+\setbox0 = \hbox{mushroom}
+\setbox1 = \vbox{\copy0\box0\box0}
+\box1
+|
+\produces
+\setbox0 = \hbox{mushroom}
+\setbox1 = \vbox{\copy0\box0\box0}
+\box1
+\endexample
+\enddesc
+
+\begindesc
+\cts copy {\<registre>}
+\explain
+^^{\boites//copie}\minrefs{box}
+Cette commande
+produit une copie d'un registre de bo\^\i te \<registre>.
+Cette commande est utile quand vous voulez r\'ecup\'erer le contenu d'un registre
+de bo\^\i te mais ne voulez pas en d\'etruire le contenu.
+(R\'ecup\'erer le contenu d'un registre avec ^|\box| rend le registre vide.)
+\example
+\setbox0 = \hbox{good }
+Have a \copy0 \box0 \box0 day!!
+|
+\produces
+\setbox0 = \hbox{good }
+Have a \copy0 \box0 \box0 day!
+\endexample
+\enddesc
+
+\begindesc
+\cts unhbox {\<registre>}
+\cts unvbox {\<registre>}
+^^{\boites//extraction de contenu de}
+\explain
+Ces commandes produisent la liste contenue dans un registre de bo\^\i te \<registre> et rend
+ce registre de bo\^\i te vide.
+|\unhbox| s'applique aux registres de bo\^\i te contenant
+des hbox et |\unvbox| s'applique aux registres de bo\^\i te contenant des vbox.
+Vous devez utiliser ces commandes en pr\'ef\'erence \`a |\unhcopy| et |\unvcopy|
+(voir ci-dessous)
+quand vous n'avez pas besoin de ce qu'il y a dans le registre de bo\^\i te apr\`es l'avoir utilis\'e,
+de mani\`ere \`a ne pas augmenter la m\'emoire de \TeX\ en la remplissant avec des bo\^\i tes obsol\`etes.
+\example
+\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. }
+\unhbox0 \unhbox1
+% \box0 \box1 would set two hboxes side by side
+% (and produce a badly overfull line).
+\box1 % produces nothing
+|
+\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. }
+\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 {\<registre>}
+\cts unvcopy {\<registre>}
+^^{\boites//extraction du contenu de}
+^^{\boites//copie}\minrefs{box}
+\explain
+Ces commandes produisent la liste contenue dans un registre de bo\^\i te \<registre> et
+sans d\'eranger le contenu des registres.
+|\unhbox| s'applique aux registres de bo\^\i te contenant
+des hbox et |\unvbox| s'applique aux registres de bo\^\i te contenant des vbox.
+\example
+\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. }
+\unhcopy0 \unhcopy1\par\noindent
+% \box0 \box1 would set two hboxes side by side
+% (and produce a badly overfull line).
+\box1 % Produces an hbox (which can't be broken).
+|
+\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. }
+\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^^{registres de \boite}
+
+%==========================================================================
+\subsection {D\'eplacer des bo\^\i tes}
+
+\begindesc
+\cts moveleft {\<dimension> \<bo\^\i te>}
+\cts moveright {\<dimension> \<bo\^\i te>}
+\bix^^{\boites//d\'eplacement}
+\minrefs{box}
+\explain
+Ces commandes d\'eplacent \<bo\^\i te> \`a gauche ou \`a droite de \<dimension> (qui peut \^etre
+n\'egatif). Vous ne pouvez appliquer |\moveleft| et |\moveright| qu'\`a des bo\^\i tes
+qui sont dans une \minref{liste verticale}.
+\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 {\<dimension> \<bo\^\i te>}
+\cts raise {\<dimension> \<bo\^\i te>}
+\explain
+Ces commandes d\'eplacent \<bo\^\i te> en haut ou en bas de \<dimension>
+(qui peut \^etre n\'egatif).
+Vous ne pouvez appliquer |\moveleft| et |\moveright| qu'\`a des bo\^\i tes
+qui sont dans une \minref{liste horizontale}.
+\example
+Are you feeling \lower 6pt \hbox{depressed} about the
+ \raise 6pt \hbox{bump} on your nose?
+|
+\produces
+Are you feeling \lower 6pt \hbox{depressed} about the
+ \raise 6pt \hbox{bump} on your nose?
+\endexample
+
+\eix^^{\boites//d\'eplacement}
+\enddesc
+
+%==========================================================================
+\subsection {Dimensions des registres de bo\^\i tes}
+
+\begindesc
+\bix^^{registres de \boite}
+\bix^^{dimensions//de registres de \boite}
+\cts ht {\<registre>\param{dimension}}
+\cts dp {\<registre>\param{dimension}}
+\cts wd {\<registre>\param{dimension}}
+\explain
+Ces param\`etres font r\'ef\'erence \`a la ^{hauteur}, la ^{profondeur} et la ^{largeur}
+respectivement du \minref{registre} de \minref{bo\^\i te} \<registre>.
+Vous pouvez les utiliser pour conna\^\i tre les dimensions d'une bo\^\i te.
+Vous pouvez aussi changer les dimensions d'une bo\^\i te, mais ce n'est pas une mince affaire~;
+si vous voulez \^etre aventureux vous pouvez
+apprendre tout sur cela dans les \
+{pages~388--389}{448--449}.
+\example
+\setbox0 = \vtop{\hbox{a}\hbox{beige}\hbox{bunny}}%
+The box has width \the\wd0, height \the\ht0,
+and depth \the\dp0.
+|
+\produces
+\setbox0 = \vtop{\hbox{a}\hbox{beige}\hbox{bunny}}%
+The box has width \the\wd0, height \the\ht0,
+and depth \the\dp0.
+\endexample
+\eix^^{registres de \boite}
+\eix^^{dimensions//de registres de \boite}
+\enddesc
+
+%==========================================================================
+\subsection {Struts, fantomes et bo\^\i tes vides}
+
+\begindesc
+\margin{This subsection is a merger of two previous subsections.
+The commands have also been reordered.}
+\bix^^{struts}
+\cts strut {}
+\explain
+Cette commande produit une bo\^\i te dont la largeur est \`a z\'ero
+et dont la hauteur (|8.5pt|) et la profondeur (|3.5pt|)
+sont celles d'une ligne de caract\`ere plus ou moins en |cmr10|,
+la police par d\'efaut de \plainTeX.
+Son utilisation principale est de forcer des lignes \`a avoir la m\^eme hauteur
+quand vous avez d\'ebranch\'e le ressort inter-ligne de \TeX\ avec
+|\offinter!-lineskip| ^^|\offinterlineskip| ou une commande similaire,
+par exemple, quand vous construisez un alignement.
+Si la hauteur naturelle d'une ligne est
+trop petite, vous pouvez la ramener au standard en incluant un |\strut|
+dans la ligne. Le strut forcera la hauteur et la profondeur de la ligne
+\`a \^etre plus grande, mais il n'imprime rien ni ne consomme aucun espace
+horizontal.
+
+Si vous mettez des caract\`eres d'une police qui est plus grande ou plus petite que |cmr10|,
+vous devez red\'efinir |\strut| pour ce contexte.
+\example
+\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}}
+|
+\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
+Cette commande produit une formule fant\^ome dont la largeur est \`a z\'ero
+et dont la largeur et la hauteur sont les m\^emes que celle d'une parenth\`ese gauche.
+|\mathstrut| est en fait d\'efini comme `|\vphantom(|'.
+Son utilisation principale est d'obtenir des radicaux, soulign\'es et surlign\'es align\'es
+avec d'autres radicaux, soulign\'es et surlign\'es d'une formule.
+C'est un peu comme ^|\strut| (\xref \strut),
+sauf qu'il s'ajuste lui-m\^eme aux diff\'erents \minref{style}s
+qui peuvent appara\^\i tre dans une formule math\'ematique.
+\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^^{struts}
+\enddesc
+
+\begindesc
+\cts phantom {\<argument>}
+\explain
+\bix^^{\boites//fant\^ome}
+\bix^^{fant\^omes}
+Cette commande produit une \minref{bo\^\i te} vide
+ayant la m\^eme taille et placement
+que \<argument> aurait s'il \'etait compos\'e.
+Une utilisation de |\phantom| est de r\'eserver de l'espace pour un symbole qui pour certaines
+raisons demande \`a \^etre dessin\'e \`a la main.
+\example
+$1\phantom{9}2$
+|
+\produces
+$1\phantom{9}2$
+\endexample
+\enddesc
+
+\begindesc
+\cts hphantom {\<argument>}
+\cts vphantom {\<argument>}
+\explain
+Ces commandes produisent des bo\^\i tes\minrefs{bo\^\i te}\ fant\^ome qui
+n'impriment rien~:
+\ulist\compact
+\li |\hphantom| produit une bo\^\i te avec la m\^eme largeur que \<argument>
+mais de hauteur et profondeur z\'ero.
+\li |\vphantom| produit une bo\^\i te avec les m\^emes hauteur et profondeur que \<argu\-ment>
+mais de largeur z\'ero.
+\endulist
+\noindent
+Leur usage principal est de forcer une sous-formule \`a avoir un dimension
+horizontale ou verticale minimum.
+\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 {\<argument>}
+\explain
+Cette commande compose \<argument>,
+mais force la hauteur et la profondeur de sa \minref{bo\^\i te} contenante \`a z\'ero.
+Vous pouvez utiliser |\smash| et |\vphantom| en combinaison pour donner \`a une sous-formule
+toutes hauteurs et profondeurs que vous d\'esirez.
+\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^^{\boites//fant\^ome}
+\eix^^{fant\^omes}
+\enddesc
+
+\begindesc
+^^{\boites//vides}
+\cts null {}
+\explain
+Cette commande produit une \minref{hbox} vide.
+\example
+\setbox0 = \null
+The null box \null has width \the\wd0, height \the\ht0,
+and depth \the\dp0.
+|
+\produces
+\setbox0 = \null
+The null box \null has width \the\wd0, height \the\ht0,
+and depth \the\dp0.
+\endexample
+\enddesc
+
+
+%==========================================================================
+\subsection {Param\`etres faisant partie des bo\^\i tes mal form\'ees}
+
+\begindesc
+\bix^^{\boites//overfull}
+\bix^^{\boites//underfull}
+\cts overfullrule {\param{dimension}}
+\explain
+Ce param\`etre sp\'ecifie la largeur du filet
+que \TeX\ positionne pour un ``overfull \minref{hbox}''.
+\PlainTeX\ le met \`a |5pt|.
+\enddesc
+
+\begindesc
+\cts hbadness {\param{nombre}}
+\cts vbadness {\param{nombre}}
+\explain
+Ces param\`etres sp\'ecifient les seuils de \minref{badness} horizontal
+et vertical pour rapporter des ``underfull'' ou ``overfull boxes''
+|\hbadness| s'applique aux hbox et |\vbadness| s'applique aux vbox.
+Si la m\'ediocrit\'e d'une bo\^\i te construite d\'epasse le seuil,
+\TeX\ reportera une erreur. Si vous augmentez les seuils
+(les valeurs par d\'efaut de \plainTeX\ sont de $1000$),
+\TeX\ sera moins amen\'e \`a se plaindre.
+Notez que les valeurs de |\hbadness| et |\vbadness| n'ont pas d'effet sur
+l'apparence de votre document compos\'e~; ils n'affectent que le message d'erreur
+que vous obtenez.
+Voir la \knuth{page~302}{353} pour une description pr\'ecise
+sur comment \TeX\ d\'ecide quand se plaindre d'``overfull'' ou d'``underfull
+box''.
+
+\margin{The material on tolerance was inappropriate here and has been
+removed. A new example replaces it.}
+\example
+\hbadness = 10000 % Suppress any hbadness complaints.
+\hbox to 2in{a b}\par
+\hbadness = 500 % Report hbadness exceeding 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
+Cette commande donne la valeur num\'erique de la m\'ediocrit\'e de la \minref{bo\^\i te}
+(aussi bien horizontale que verticale) que \TeX\ a le plus r\'ecemment produit.
+Si la bo\^\i te \'etait ``overfull'', |\badness| sera de $1000000$~; dans tous les autres cas
+il sera entre $0$ et $10000$.
+\enddesc
+
+\begindesc
+\cts hfuzz {\param{dimension}}
+\cts vfuzz {\param{dimension}}
+\explain
+Ces param\`etres sp\'ecifient les valeurs dont une
+\minref{bo\^\i te} peut d\'epasser sa taille naturelle avant que \TeX\ la consid\`ere comme
+\'etant overfull. ^^{\boites//overfull}
+|\hfuzz| s'applique aux hbox et |\vfuzz| s'applique aux vbox.
+\PlainTeX\ met ces deux param\`etres \`a |0.1pt|.
+\example
+\hfuzz = .5in
+\hbox to 2in{This box is longer than two inches.}
+% No error results
+|
+\produces
+\hfuzz = .5in
+\hbox to 2in{This box is longer than two inches.}
+% No error results
+\doruler{\8\8\8}3{in}
+\endexample
+
+\eix^^{\boites//overfull}
+\eix^^{\boites//underfull}
+\eix^^{commandes de \boites}
+\enddesc
+
+\see |\tolerance| \ctsref{\tolerance}.
+%==========================================================================
+\section {Retrouver le dernier \'el\'ement d'une liste}
+
+\begindesc
+^^{\boites//derni\`ere \boite\ dans une liste}
+^^{cr\'enages//dernier cr\'enage dans une liste}
+^^{p\'enalit\'es//derni\`ere p\'enalit\'e dans une liste}
+^^{ressort//dernier \'el\'ement de ressort dans une liste}
+\margin{This section has been moved in its entirety from the chapter
+(`Commands for general operations')}
+\cts lastkern {}
+\cts lastskip {}
+\cts lastpenalty {}
+\cts lastbox {}
+\explain
+Ces s\'equences de contr\^ole donnent la valeur du dernier \'el\'ement de la liste
+courante. Ce ne sont pas de vraies commandes parce qu'elles ne peuvent appara\^\i tre que
+comme partie d'un argument.
+Si le dernier \'el\'ement de la liste n'est pas du type indiqu\'e,
+elles donnent une valeur z\'ero (ou une bo\^\i te vide, dans le cas de |\lastbox|).
+Par exemple,
+si le dernier \'el\'ement de la liste courante est un \minref{cr\'enage},
+|\lastkern| donne la dimension de ce cr\'enage~; si ce
+n'est pas un cr\'enage, il donne une dimension de $0$.
+
+Utiliser |\lastbox| a l'effet suppl\'ementaire d'enlever la derni\`ere bo\^\i te de
+la liste.
+Si vous voulez que le |\last!-box| original reste dans la liste, vous
+devez en ajouter une copie dans la liste.
+|\last!-box| n'est pas permise dans une liste math\'ematique ou dans la liste
+verticale~principale.
+
+Ces s\'equences de contr\^ole sont
+plus utiles apr\`es des appels de macro qui peuvent avoir ins\'er\'e des entit\'es
+du genre indiqu\'e.
+
+\example
+\def\a{two\kern 15pt}
+one \a\a\hskip 2\lastkern three\par
+% Get three times as much space before `three'.
+\def\a{\hbox{two}}
+one \a
+\setbox0 = \lastbox % Removes `two'.
+three \box0.
+|
+\produces
+\def\a{two\kern 15pt}
+one \a\a\hskip 2\lastkern three\par
+% get three times as much space before `three'
+\def\a{\hbox{two}}
+one \a
+\setbox0 = \lastbox % removes `two'
+three \box0.
+\endexample
+\enddesc
+
+\begindesc
+\cts unkern {}
+\cts unskip {}
+\cts unpenalty {}
+\explain
+Si le dernier \'el\'ement de la liste courante est de type \minref{cr\'enage},
+\minref{ressort} ou \minref{p\'enalit\'e} respectivement, ces commandes l'enl\`event
+de cette liste. Si l'\'el\'ement n'est pas du bon type, ces commandes n'ont
+pas d'effet. Comme ^|\lastbox|, vous ne pouvez pas les appliquer \`a des listes en
+mode math\'ema\-tique ou \`a la liste verticale principale.
+Ces commandes
+sont plus pratiques apr\`es un appel de macro connu pour avoir ins\'er\'e
+un \'el\'ement sp\'ecifique que vous ne voulez pas ici.
+\TeX\ ne procure pas de commande ^|\unbox| parce que |\lastbox| produit
+\`a peu pr\`es le m\^eme effet.
+\enddesc
+
+
+%==========================================================================
+\section {filets et r\`eglures}
+
+\begindesc
+\bix^^{filets}
+\bix^^{filets horizontaux}
+\bix^^{filets verticaux}
+%
+\cts hrule {}
+\aux\cts hrule {\bt height \<dimension> width \<dimension> depth \<dimension>}
+\cts vrule {}
+\aux\cts vrule {{\bt width \<dimension> height \<dimension> depth \<dimension>}}
+\explain
+La commande |\hrule| produit un filet horizontal. La commande |\vrule|
+produit un filet vertical. Vous pouvez sp\'ecifier tout ou une partie des largeur,
+hauteur et profondeur du filet---\TeX\ apporte des valeurs par d\'efaut pour celles
+que vous omettez. Vous pouvez donner les dimensions du filet dans n'importe quel ordre~;
+les formes list\'ees ci-dessus vous montrent simplement deux combinaisons possibles. Vous
+pouvez m\^eme donner une dimension d'un type donn\'e plus d'une fois---si vous le faites,
+la derni\`ere sera celle qui sera prise en compte.
+
+Si vous ne sp\'ecifiez pas la largeur d'un filet horizontal, le filet est
+\'etendu horizontalement jusqu'aux limites de la \minref{bo\^\i te} ou de
+l'\minref{alignement} le plus interne qui contient le filet. Si vous ne sp\'ecifiez pas
+la hauteur d'un filet horizontal, elle sera par d\'efaut de |0.4pt|~; si vous ne
+sp\'ecifiez pas la profondeur d'un filet horizontal, elle sera par d\'efaut de |0pt|.
+
+Si vous ne sp\'ecifiez pas la largeur d'un filet vertical, elle sera par d\'efaut de
+|0.4pt|. Si vous ne sp\'ecifiez pas la hauteur d'un filet vertical,
+le filet est \'etendu jusqu'aux limites de la \minref{bo\^\i te} ou de
+l'\minref{alignement} le plus interne qui contient le filet.
+
+\TeX\ traite un filet horizontal comme un \'el\'ement naturellement vertical
+et un filet vertical comme un \'el\'ement naturellement horizontal.
+Donc un filet horizontal n'est l\'egal qu'en \minref{mode vertical},
+Tandis qu'un filet vertical n'est l\'egal qu'en \minref{mode horizontal}.
+^^{mode horizontal//filets en}
+^^{mode vertical//filets en}
+Si cela semble surprenant, visualisez le---un filet horizontal va
+de gauche \`a droite et s\'epare des \'el\'ements verticaux dans une s\'equence, tandis
+qu'un filet vertical va de haut en bas et
+s\'epare des \'el\'ements horizontaux dans une s\'equence.
+
+\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
+% Here you can see how the baseline relates to the
+% height and depth of an \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{ baseline}\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{ baseline}\kern 3pt \hrule width .6in}
+}
+\nextexample
+\hbox{( {\vrule} {\vrule width 8pt} )}
+\hbox {( {\vrule height 13pt depth 0pt}
+ {\vrule height 13pt depth 7pt} x)}
+% the parentheses define the height and depth of each of the
+% two preceding boxes; the `x' sits on the baseline
+|
+\produces
+\medskip
+\hbox{( {\vrule} {\vrule width 8pt} )}
+\hbox {( {\vrule height 13pt depth 0pt}
+ {\vrule height 13pt depth 7pt} x)}
+\endexample
+
+\eix^^{filets}
+\eix^^{filets horizontaux}
+\eix^^{filets verticaux}
+\enddesc
+
+\begindesc
+\bix^^{r\`eglures}
+\easy\cts leaders {\<bo\^\i te ou filet> \<commande de saut>}
+\cts cleaders {\<bo\^\i te ou filet> \<commande de saut>}
+\cts xleaders {\<bo\^\i te ou filet> \<commande de saut>}
+\explain
+Ces commandes produisent des \minref{r\'eglures}, c'est-\`a-dire, qu'elles remplissent un
+espace horizontal ou vertical avec des
+copies d'un motif \seeconcept{filets}.
+La \<bo\^\i te> ou le \<filet> sp\'ecifie une r\'eglure,
+c'est-\`a-dire, une seule copie du motif,
+tandis que la \<commande de saut> sp\'ecifie une
+fen\^etre devant \^etre remplie avec une
+rang\'ee ou une colonne de r\'eglures.
+Le motif est r\'ep\'et\'e autant de fois qu'il peut rentrer dans la fen\^etre.
+Si \<commande de saut> est un saut horizontal, la fen\^etre
+contient une rang\'ee de r\'eglures et \TeX\ doit \^etre en mode horizontal~;
+si \<commande de saut> est un saut vertical, la fen\^etre
+contient une colonne de r\'eglures et \TeX\ doit \^etre en mode vertical.
+
+Les commandes diff\`erent dans leur fa\c con d'arranger le motif r\'ep\'et\'e
+et o\`u elles mettent l'espace restant~:
+
+\ulist\compact
+\li Pour |\leaders|, \TeX\ aligne une rang\'ee de r\'eglures avec la limite gauche de
+la \minref{bo\^\i te} $B$ la plus interne qui contient le r\'esultat de la
+commande |\leaders|.
+Elle aligne une colonne de r\'eglures avec le haut de $B$.
+Ces r\'eglures qui tombent enti\`erement dans la fen\^etre sont gard\'ees.
+Tout espace en plus en haut et en bas de la fen\^etre est laiss\'e vide.
+\li Pour |\cleaders|, les r\'eglures sont centr\'ees dans la fen\^etre.
+\li Pour |\xleaders| le motif est uniform\'ement distribu\'e \`a travers la fen\^etre.
+Si l'espace en plus est $l$ et que la r\'eglure est r\'ep\'et\'ee $n$ fois,
+\TeX\ met de l'espace de largeur ou hauteur $l/(n+1)$ entre des r\'eglures adjacentes et
+aux deux bouts (gauche et droite ou haut et bas) des r\'eglures.
+\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
+^^{remplissage}
+Ces commandes remplissent respectivement l'espace horizontal englob\'e avec
+une rang\'ee de points sur la ligne de base et avec
+une ligne horizontale sur la ligne de base.
+C'est habituellement une bonne id\'ee de laisser un espace entre
+|\dotfill| ou |\hrulefill|
+et le texte qui la pr\'ec\`ede ou la suit (voir l'exemple ci-dessous).
+\example
+\hbox to 3in{Start {\dotfill} Finish}
+\hbox to 3in{Swedish {\hrulefill} Finnish}
+|
+\produces
+\par\hbox to 3in{Start {\dotfill} Finish}
+\hbox to 3in{Swedish {\hrulefill} Finnish}
+\endexample\enddesc
+
+\begindesc
+\cts leftarrowfill {}
+\cts rightarrowfill {}
+\explain
+^^{remplissage}
+Ces commandes remplissent l'espace horizontal englob\'e avec
+des ^{fl\`eches} point\'ees vers la gauche ou vers la droite.
+\example
+\hbox to 3in{\vrule \rightarrowfill \ 3 in
+ \leftarrowfill\vrule}
+|
+\produces
+\medskip
+\hbox to 3in{\vrule \rightarrowfill \ 3 in
+ \leftarrowfill\vrule}
+\endexample
+
+\eix^^{r\`eglures}
+\enddesc
+
+%==========================================================================
+\section {Alignements}
+
+%==========================================================================
+\subsection {Alignements tabul\'es}
+
+\begindesc
+\bix^^{alignements tabul\'es}
+\bix^^{alignements//commandes pour}
+%
+\ctspecial + {{\bt \<texte>\thinspace\&\thinspace\<texte>%
+ \thinspace\& $\cdots$ \\cr}}
+\ctsxrdef{@plus}
+\cts tabalign {}
+\explain
+Ces commandes d\'ebutent une simple ligne dans un \minref{alignement} tabul\'e .
+La seule diff\'erence entre |\+| et |\tabalign| est que
+|\+| est une macro outer ---vous ne pouvez pas l'utiliser quand \TeX\ lit des tokens \`a
+haute vitesse \seeconcept{outer}.
+
+Si vous placez un `|&|' \`a une position
+\`a droite de toute tabulation existante dans un alignement tabul\'e,
+le `|&|' \'etablit une nouvelle tabulation \`a cette position.
+\example
+\cleartabs % Nullify any previous \settabs.
+\+ {\bf if }$a[i] < a[i+1]$ &{\bf then}&\cr
+\+&&$a[i] := a[i+1]$;\cr
+\+&&{\it found }$:=$ {\bf true};\cr
+\+&{\bf else}\cr
+\+&&{\it found }$:=$ {\bf false};\cr
+\+&{\bf end if};\cr
+|
+\produces
+\cleartabs % Nullify any previous \settabs.
+\+ {\bf if }$a[i] < a[i+1]$ &{\bf then}&\cr
+\+&&$a[i] := a[i+1]$;\cr
+\+&&{\it found }$:=$ {\bf true};\cr
+\+&{\bf else}\cr
+\+&&{\it found }$:=$ {\bf false};\cr
+\+&{\bf end if};\cr
+\endexample
+\enddesc
+
+\begindesc
+\cts settabs {\<nombre> {\bt \\columns}}
+\aux\cts settabs {{\bt \\+} \<ligne d'exemple> {\bt \\cr}}
+\explain
+La premi\`ere forme de
+cette commande d\'efinit un jeu de tabulations d'arr\^et ^^{tabulations}
+pour un \minref{alignement} tabul\'e.
+Elle demande \`a \TeX\ de mettre les tabulations d'arr\^et de mani\`ere \`a diviser chaque ligne en
+\<nombre> parties \'egales. \TeX\ prend la longueur d'une ligne comme \'etant
+|\hsize|, normalement. Vous pouvez rendre l'alignement plus \'etroit en diminuant
+|\hsize|.
+\margin{paragraph ``The tab settings $\ldots$'' moved to below.}
+\example
+{\hsize = 3in \settabs 3 \columns
+\+$1$&one&first\cr
+\+$2$&two&second\cr
+\+$3$&three&third\cr}
+|
+\produces
+{\hsize = 3in \settabs 3 \columns
+\+$1$ & one & first\cr
+\+$2$ & two & second\cr
+\+$3$ & three & third\cr}
+
+\noindent\doruler{\8\8\8}3{in}
+\smallskip
+\endexample
+
+La seconde forme de cette commande d\'efinit des tabulations d'arr\^et en mettant les tabulations d'arr\^et
+aux positions indiqu\'ees par les `|&| dans la ligne d'exemple.
+La ligne d'exemple elle-m\^eme ne doit pas appara\^\i tre dans la sortie. Quand vous
+utilisez cette forme vous devrez normalement mettre du mat\'eriel dans la ligne d'exemple qui sera
+un peu plus large que le plus large mat\'eriel correspondant dans l'alignement,
+de mani\`ere \`a produire de l'espace entre les colonnes.
+C'est ce que nous avons fait dans
+l'exemple ci-dessous. Le mat\'eriel suivant la derni\`ere tabulation
+d'arr\^et est inutile, puisqu'il n'a pas besoin de positionner
+quoi que ce soit \`a l'endroit o\`u le |\cr|~appara\^\i t.
+
+Les r\'eglages de tabulation \'etablies par |\settabs| restent actifs jusqu'\'a
+une nouvelle commande |\settabs| ou la fin du groupe contenant |\set!-tabs|. Ceci est vrai pour
+les deux formes de la commande.
+
+\example
+% The first line establishes the template.
+\settabs \+$1$\qquad & three\quad & seventh\cr
+\+$1$&one&first\cr
+\+$2$&two&second\cr
+\+$3$&three&third\cr
+|
+\produces
+\settabs \+$1$\qquad & three\quad & seventh\cr % the sample line
+\+$1$&one&first\cr
+\+$2$&two&second\cr
+\+$3$&three&third\cr
+\smallskip
+\endexample
+\enddesc
+
+\begindesc
+
+\cts cleartabs {}
+\explain
+Cette commande efface toutes les tabulations \`a droite de la colonne courante.
+Son utilisation principale est dans des applications telles que la composition de programme informatique
+dans lesquels les positions de tabulation changent \`a chaque ligne.
+\enddesc
+
+\see |\cr|, |\endline|, |\crcr| (\xref \endline).
+\eix^^{alignements tabul\'es}
+
+%==========================================================================
+\subsection {Alignement g\'en\'eraux}
+
+\begindesc
+{\tighten
+\cts halign {{\bt \rqbraces{\<pr\'eambule> \\cr \<rang> \\cr $\ldots$ \<rang> \\cr}}}
+ \xrdef{@and}\xrdef{@pound}
+\aux\cts halign {{\bt to \<dimension>%
+ \rqbraces{\<pr\'eambule> \\cr \<rang> \\cr $\ldots$ \<rang> \\cr}}}
+\aux\cts halign {{\bt spread \<dimension>%
+ \rqbraces{\<pr\'eambule> \\cr \<rang> \\cr $\ldots$ \<rang> \\cr}}}
+\par}
+\explain
+Cette commande produit un \minref{alignement} horizontal constitu\'e d'une
+suite de rang\'ees, o\`u chaque rang\'ee \`a son tour contient une suite
+d'entr\'ee de colonne. \TeX\ ajuste les largeurs des entr\'ees de colonne
+pour accommoder la plus large dans chaque colonne.
+
+Un alignement horizontal n'appara\^\i t que quand \TeX\ est dans un \minref{mode}
+vertical. Nous vous recommandons d'apprendre les alignements en g\'en\'e\-ral
+(\xref{alignement}) avant d'essayer d'utiliser la commande |\valign|.
+
+Un alignement consiste en un ^{pr\'eambule}
+suivi par le texte \`a aligner. Le pr\'eambule,
+qui d\'ecrit la forme des rang\'ees qui le suivent, consiste en une
+suite de patrons de colonne, s\'epar\'es par `|&|' et termin\'e
+par |\cr|.
+\bix^^{patron}
+\bix^^{entr\'ee (colonne ou rang\'ee)}
+Chaque rang\'ee consiste en une suite d'entr\'ees
+de ^{colonne}, s\'epar\'ees aussi par `|&|' et termin\'ees par |\cr|. Dans
+un patron, `|#|' indique o\`u \TeX\ doit ins\'erer le
+texte correspondant \`a l'entr\'ee de colonne.
+Par contre, |\settabs| utilise un patron fixe implicite \`a `|#|',
+c'est-\`a-dire, qu'il ins\`ere simplement le texte tel quel.
+
+\TeX\ compose chaque entr\'ee de colonne en mode horizontal restreint,
+c'est-\`a-dire, comme le contenu d'une \minref{hbox},
+et englobe implicitement l'en\-tr\'ee dans un groupe.
+
+La forme |to| de cette commande demande \`a \TeX\
+d'\'etendre la largeur de l'alignement \`a \<dimension>,
+en ajustant l'espace entre les colonnes.
+La forme |spread| de cette commande demande \`a \TeX\
+d'agrandir l'alignement de \<dimension> par rapport \`a sa largeur naturelle.
+Ces formes sont comme les formes correspondantes de |\hbox| \ctsref\hbox.
+
+Voir |\tabskip| \ctsref\tabskip{} pour un exemple d'utilisation de la
+forme |to|.
+
+\example
+\tabskip = 1em \halign{%
+ \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
+ United States&Washington&dollar&1.00\cr
+ France&Paris&franc&0.174\cr
+ Israel&Jerusalem&shekel&0.507\cr
+ Japan&Tokyo&yen&0.0829\cr}
+|
+\produces
+\tabskip = 1em \halign{%
+ \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
+ United States&Washington&dollar&1.00\cr
+ France&Paris&franc&0.174\cr
+ Israel&Jerusalem&shekel&0.507\cr
+ Japan&Tokyo&yen&0.0829\cr}
+\endexample
+\enddesc
+
+\begindesc
+{\tighten
+\cts valign {{\bt \rqbraces{\<pr\'eambule>\\cr \<colonne>\\cr $\ldots$
+ \<colonne>\\cr}}}
+\aux\cts valign {{\bt to \<dimension>%
+ \rqbraces{\<pr\'eambule>\\cr \<colonne>\\cr $\ldots$ \<colonne>\\cr}}}
+\aux\cts valign {{\bt spread \<dimension>%
+ \rqbraces{\<pr\'eambule>\\cr \<col.>\\cr $\ldots$ \<col.>\\cr}}}
+\par}
+\explain
+Cette commande produit un \minref{alignement} vertical
+constitu\'e d'une
+suite de colonnes, o\`u chaque colonne \`a son tour contient une suite
+d'entr\'ees de rang\'ee.
+\TeX\ ajuste les hauteurs des entr\'ees de rang\'ee pour accommoder la plus longue
+dans chaque rang\'ee.
+
+Un alignement vertical
+n'appara\^\i t que quand \TeX\ est dans un \minref{mode} horizontal.
+Puisque les alignements verticaux sont (a)~conceptuellement assez difficiles et
+(b)~peu souvent utilis\'es, nous vous recommandons d'ap\-prendre les
+alignements en g\'en\'eral
+(\xref{alignement}) et la commande |\halign| (voir ci-dessus) avant
+d'essayer d'utiliser la commande |\valign|.
+
+Un alignement consiste en un ^{pr\'eambule}
+suivi par le texte \`a aligner. Le pr\'eambule,
+qui d\'ecrit la forme des colonnes qui le suivent,
+consiste en une
+suite de patrons de rang\'ee, s\'epar\'es par `|&|' et termin\'e
+par |\cr|.
+\bix^^{patron}
+Chaque colonne consiste en une suite d'entr\'ee
+de ^{rang\'ee}, s\'epar\'ees aussi par `|&|' et termin\'ees par |\cr|. Dans
+un patron, `|#|' indique o\`u \TeX\ doit ins\'erer le
+texte correspondant \`a l'entr\'ee de rang\'ee.
+
+\TeX\ compose chaque entr\'ee de rang\'ee en mode vertical
+interne, c'est-\`a-dire, comme le contenu d'une \minref{vbox},
+et englobe implicitement l'entr\'ee dans un groupe.
+Il donne toujours \`a la vbox une profondeur \`a z\'ero.
+Tout texte ou autre mat\'eriel en mode horizontal dans une entr\'ee de rang\'ee met alors \TeX\
+en mode horizontal ordinaire.
+C'est juste une application des r\`egles g\'en\'erales du fonctionnement de \TeX\
+en mode vertical interne.
+Les param\`etres de paragraphage habituels s'appliquent dans ce cas~:
+l'entr\'ee de rang\'ee a une indentation
+initiale de |\parindent| (\xref\parindent) et
+les \minref{ressorts}
+|\leftskip| et |\rightskip| (\xref\leftskip)
+s'appliquent \`a ses lignes.
+
+Notez en particulier qu'une entr\'ee de rang\'ee contenant du texte a
+une largeur de |\hsize| (\xref\hsize). A moins que vous mettiez
+|\hsize| \`a la largeur de rang\'ee que vous voulez, vous rencontrerez
+vraisemblablement des ``overfull \minref{hbox}'' ou trouverez que
+la premi\`ere colonne occupe la largeur de la page enti\`ere, ou les deux.
+\eix^^{entr\'ee (colonne ou rang\'ee)}
+
+Normalement, vous devrez inclure un \minref{strut}
+^^{struts//dans des alignements verticaux}
+dans chaque
+patron pour que les rang\'ees n'apparaissent pas comme un r\'esultat
+des hauteurs variables des entr\'ees de l'alignement. Vous
+pouvez produire un strut avec la commande |\strut|.
+
+La forme |to| de cette commande demande \`a \TeX\
+d'\'etendre l'extension verticale de l'alignement \`a \<dimension>,
+en ajustant l'espace entre les rang\'ees.
+La forme |spread| de cette commande demande \`a \TeX\
+d'agrandir l'alignement de \<dimension> par rapport \`a sa hauteur naturelle.
+Ces formes sont comme les formes correspondantes de |\vbox| \ctsref\vbox.
+
+\example
+{\hsize=1in \parindent=0pt
+\valign{#\strut&#\strut&#\strut&#\strut\cr
+ bernaise&curry&hoisin&hollandaise\cr
+ ketchup&marinara&mayonnaise&mustard\cr
+ rarebit&tartar\cr}}
+|
+\produces
+{\hsize=1in \parindent=0pt \leftskip=0pt
+\valign{#\strut&#\strut&#\strut&#\strut\cr
+ bernaise&curry&hoisin&hollandaise\cr
+ ketchup&marinara&mayonnaise&mustard\cr
+ rarebit&tartar\cr}}
+\nextexample
+% same thing but without struts (shows why you need them)
+{\hsize=1in \parindent=0pt
+\valign{#&#&#&#\cr
+ bernaise&curry&hoisin&hollandaise\cr
+ ketchup&marinara&mayonnaise&mustard\cr
+ rarebit&tartar\cr}}
+|
+\produces
+{\hsize=1in \parindent=0pt \leftskip=0pt
+\valign{#&#&#&#\cr
+ bernaise&curry&hoisin&hollandaise\cr
+ ketchup&marinara&mayonnaise&mustard\cr
+ rarebit&tartar\cr}}
+\endexample
+\enddesc
+
+\begindesc
+\cts ialign {}
+\explain
+Cette commande r\'eagit comme ^|\halign|,
+sauf qu'elle met d'abord le ressort |\tabskip| \`a z\'ero et
+met |\everycr| \`a vide.
+\enddesc
+
+\begindesc
+\cts cr {}
+\explain
+Cette commande termine le pr\'eambule d'un alignement horizontal ou
+vertical, une rang\'ee d'un alignement horizontal ou tabul\'e,
+ou une colonne d'un alignement vertical.
+Vous pouvez demander \`a \TeX\ de faire certaines actions \`a chaque fois qu'il rencontre un |\cr|
+en chargeant la valeur du param\`etre ^|\everycr| \ctsref\everycr.
+\enddesc
+
+\begindesc
+\cts endline {}
+\explain
+Cette commande est un synonyme de la commande ^|\cr|. Elle est utile quand
+vous avez red\'efini |\cr| mais devez encore acc\'eder \`a sa d\'efinition originale.
+\enddesc
+
+\begindesc
+\cts crcr {}
+\explain
+Cette commande r\'eagit comme ^|\cr|, sauf que \TeX\ l'ignore si
+elle arrive imm\'ediatement apr\`es un |\cr| ou un ^|\noalign|.
+Sa principale application est comme mesure de s\'ecurit\'e pour \'eviter un message d'erreur ``misleading''
+caus\'e par une \minref{macro} qui attend un argument se terminant par |\cr|.
+Si vous mettez |\crcr| apr\`es le `|#|$n$' qui d\'enote un tel argument
+dans la d\'efinition de macro, la
+macro marchera proprement, que l'argument se termine par |\cr| ou non.
+\enddesc
+
+\begindesc
+\cts omit {}
+\explain
+Cette commande demande \`a \TeX\ d'ignorer un patron dans un \minref{alignement}
+horizontal ou vertical pendant le traitement d'une entr\'ee de colonne ou de rang\'ee particuli\`ere
+respectivement.
+|\omit| doit appara\^\i tre comme le premier \'el\'ement dans une entr\'ee de colonne ou de rang\'ee~; en effet,
+il remplace le patron du pr\'eambule avec le simple
+patron `|#|'.
+
+
+\example
+\tabskip = 2em\halign{%
+ \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
+ United States&Washington&dollar&1.00\cr
+ \omit \dotfill France\dotfill&Paris&franc&0.174\cr
+ Israel&Jerusalem&shekel&0.507\cr
+ Japan&Tokyo&yen&0.0829\cr}
+|
+\produces
+\tabskip = 2em\halign{%
+ \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
+ United States&Washington&dollar&1.00\cr
+ \omit \dotfill France\dotfill&Paris&franc&0.174\cr
+ Israel&Jerusalem&shekel&0.507\cr
+ Japan&Tokyo&yen&0.0829\cr}
+\nextexample
+{\hsize=1.2in \parindent=0pt
+\valign{(#)\strut&(#)\strut&(#)\strut&(#)\strut\cr
+ bernaise&curry&hoisin&hollandaise\cr
+ ketchup&\omit\strut{\bf MARINARA!!}&mayonnaise&mustard\cr
+
+ rarebit&tartar\cr}}
+|
+\produces
+{\hsize=1.2in \parindent=0pt \leftskip=0pt
+\valign{(#)\strut&(#)\strut&(#)\strut&(#)\strut\cr
+ bernaise&curry&hoisin&hollandaise\cr
+ ketchup&\omit\strut{\bf MARINARA!}&mayonnaise&mustard\cr
+ rarebit&tartar\cr}}
+\endexample
+\enddesc
+
+\begindesc
+\cts span {}
+\explain
+La signification de cette commande d\'epend suivant qu'elle appara\^\i t soit dans un pr\'eambule
+soit dans une entr\'ee d'alignement.
+\ulist
+\li Normalement, \TeX\ ne d\'eveloppe pas de tokens dans le pr\'eambule
+quand il le lit.
+Mettre |\span| au d\'ebut d'un token dans le pr\'eambule rend
+ce token d\'eveloppable imm\'ediatement selon les r\`egles usuelles de d\'eveloppement
+de \minref{macro} de \TeX.
+\li Mettre |\span| \`a la place de `|&|' entre deux entr\'ees de colonne ou de rang\'ee
+rend ces colonnes ou rang\'ees combin\'ees.
+Pour un alignement horizontal,
+la largeur de la colonne combin\'ee est la somme des
+largeurs des colonnes incluses.
+Pour un alignement vertical,
+la hauteur de la rang\'ee combin\'ee est la somme des
+hauteurs des rang\'ees incluses.
+Le patron des colonnes ou rang\'ees combin\'ees forme un seul groupe,
+donc des commandes de chargement de police pr\'ec\'edant un |\span| affectent tout jusqu'au
+prochain `|&|'.
+\endulist
+\noindent
+|\span| est rarement utile d'elle-m\^eme en dehors d'un patron,
+mais procure le m\'ecanisme de base
+pour d\'efinir ^|\multispan|.
+\enddesc
+
+\begindesc
+\cts multispan {\<nombre>}
+\explain
+Cette commande demande \`a \TeX\ que les \<nombre>
+colonnes suivantes d'une rang\'ee d'un alignement horizontal,
+ou
+que les \<nombre> rang\'ees dans une colonne d'un alignement vertical,
+doivent \^etre combin\'ees en une seule colonne ou rang\'ee (comme avec
+|\span|) et que leur patron doit \^etre omis (comme avec |\omit|).
+
+\example
+\tabskip = 13pt\halign{%
+ \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
+ United States&Washington&dollar&1.00\cr
+ France&Paris&franc&0.174\cr
+ Israel&Jerusalem &
+ \multispan 2 \hfil\it(no information)\hfil \cr
+ Japan&Tokyo&yen&0.0829\cr}
+|
+\produces
+\tabskip = 13pt\halign{%
+ \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
+ United States&Washington&dollar&1.00\cr
+ France&Paris&franc&0.174\cr
+ Israel&Jerusalem &
+ \multispan 2 \hfil\it(no information)\hfil \cr
+ Japan&Tokyo&yen&0.0829\cr}
+\nextexample
+{\hsize=1.2in \parindent=0pt
+\valign{(#)\strut&(#)\strut&(#)\strut&(#)\strut\cr
+ bernaise&curry&hoisin&hollandaise\cr
+ \multispan 3$$\left\{{{\rm ketchup}\atop{\rm marinara}}
+ \right\}$$&mustard\cr
+ rarebit&tartar\cr}}
+|
+\produces
+{\hsize=1.2in \parindent=0pt \leftskip=0pt
+\valign{(#)\strut&(#)\strut&(#)\strut&(#)\strut\cr
+ bernaise&curry&hoisin&hollandaise\cr
+ \multispan 3$$\left\{{{\rm ketchup}\atop{\rm marinara}}
+ \right\}$$&mustard\cr
+ rarebit&tartar\cr}}
+\endexample
+
+\eix^^{patron}
+\enddesc
+
+\begindesc
+\cts noalign {\rqbraces{\<mat\'eriel en mode vertical>}}
+\aux\cts noalign {\rqbraces{\<mat\'eriel en mode horizontal>}}
+\explain
+Cette commande ins\`ere
+\<mat\'eriel en mode vertical>
+apr\`es la rang\'ee cou\-rante d'un \minref{alignement} horizontal ou
+\<mat\'eriel en mode horizontal> apr\`es la colonne courante d'un \minref{alignement}
+vertical.
+Le mat\'eriel peut \^etre du texte, un ressort, un filet ou tout autre chose.
+
+L'utilisation la plus commune de |\noalign|
+est de mettre de l'espace suppl\'ementaire apr\`es une rang\'ee ou une colonne.
+Si vous voulez mettre de l'espace suppl\'ementaire apr\`es \emph{toutes\/} les rang\'ees d'un alignement
+horizontal, utilisez ^|\openup| (\xref\openup).
+
+\example
+\halign{%
+ \hfil\it#\hfil\tabskip=2em&\hfil#\hfil&#&
+ \hfil\$#\tabskip=0em\cr
+ % The \tabskip changes prevent the rule below
+ % from sticking out.
+ United States&Washington&dollar&1.00\cr
+ France&Paris&franc&0.174\cr
+ \noalign{\smallskip\hrule\smallskip}
+ Israel&Jerusalem&shekel&0.507\cr
+ Japan&Tokyo&yen&0.0829\cr}
+|
+\produces
+\halign{%
+ \hfil\it#\hfil\tabskip=2em&\hfil#\hfil&#&
+ \hfil\$#\tabskip=0em\cr
+ % The \tabskip changes prevent the rule below
+ % from sticking out.
+ United States&Washington&dollar&1.00\cr
+ France&Paris&franc&0.174\cr
+ \noalign{\smallskip\hrule\smallskip}
+ Israel&Jerusalem&shekel&0.507\cr
+ Japan&Tokyo&yen&0.0829\cr}
+\nextexample
+{\hsize=1in \parindent=0pt
+\valign{#\strut&#\strut&#\strut&#\strut\cr
+ \noalign{\vrule width 2pt\quad}
+ bernaise&curry&hoisin&hollandaise\cr
+ \noalign{\vrule width 2pt\quad}
+ ketchup&marinara&mayonnaise&mustard\cr
+ \noalign{\vrule width 2pt\quad}
+ rarebit&tartar\cr
+ \noalign{\vrule width 2pt\quad}}}
+|
+\produces
+\medskip
+{\hsize=1in \parindent=0pt
+\valign{#\strut&#\strut&#\strut&#\strut\cr
+ \noalign{\vrule width 2pt\quad}
+ bernaise&curry&hoisin&hollandaise\cr
+ \noalign{\vrule width 2pt\quad}
+ ketchup&marinara&mayonnaise&mustard\cr
+ \noalign{\vrule width 2pt\quad}
+ rarebit&tartar\cr
+ \noalign{\vrule width 2pt\quad}}}
+\endexample
+\enddesc
+
+\begindesc
+\cts tabskip {\param{ressort}}
+\explain
+Ce param\`etre sp\'ecifie le montant de ressort horizontal ou vertical
+que \TeX\ met entre les
+colonnes d'un alignement horizontal ou entre les
+rang\'ees d'un alignement vertical.
+\TeX\ met aussi le ressort |\tabskip|
+\`a gauche de la premi\`ere colonne et \`a droite de la derni\`ere colonne
+d'un alignement horizontal,
+avant la premi\`ere rang\'ee
+et apr\`es la derni\`ere rang\'ee d'un alignement vertical.
+Vous pouvez changer |\tabskip| dans un patron---%
+le changement affectera le ressort associ\'e avec tous les
+|&| suivant aussi bien que le ressort apr\`es la derni\`ere rang\'ee ou colonne.
+\example
+\halign to 3.5in{%
+ \hfil\it#\tabskip = 2em plus 8pt
+ \hfil&\hfil#\hfil&#\tabskip = 1em
+ &\hfil\$#\tabskip = 0em\cr
+ United States&Washington&dollar&1.00\cr
+ France&Paris&franc&0.174\cr
+ Israel&Jerusalem&shekel&0.507\cr
+ Japan&Tokyo&yen&0.0829\cr}
+|
+\produces
+\halign to 3.5in{%
+ \hfil\it#\tabskip = 2em plus 8pt
+ \hfil&\hfil#\hfil&#\tabskip = 1em
+ &\hfil\$#\tabskip = 0em\cr
+ United States&Washington&dollar&1.00\cr
+ France&Paris&franc&0.174\cr
+ Israel&Jerusalem&shekel&0.507\cr
+ Japan&Tokyo&yen&0.0829\cr}
+\nextexample
+{\hsize = 1in \parindent=0pt \tabskip=5pt
+\valign{#\strut&#\strut\tabskip = 3pt
+ &#\strut&#\strut\cr
+ bernaise&curry&hoisin&hollandaise\cr
+ ketchup&marinara&mayonnaise&mustard\cr
+ rarebit&tartar\cr}}
+|
+\produces
+{\hsize = 1in \parindent=0pt \tabskip=5pt
+\valign{#\strut&#\strut\tabskip = 3pt
+ &#\strut&#\strut\cr
+ bernaise&curry&hoisin&hollandaise\cr
+ ketchup&marinara&mayonnaise&mustard\cr
+ rarebit&tartar\cr}}
+\endexample
+\enddesc
+
+\begindesc
+\cts hidewidth {}
+\explain
+Cette commande demande \`a \TeX\ d'ignorer la largeur de l'entr\'ee de la colonne suivante dans un
+alignement horizontal. C'est pratique quand vous avez une entr\'ee qui est plus longue
+que la plupart des autres dans la m\^eme colonne
+et que vous pr\'ef\'erez avoir cette entr\'ee sortant de la colonne plut\^ot
+que rendre toutes les entr\'ees
+de la colonne plus larges. Si le |\hidewidth| est \`a gauche de
+l'entr\'ee, l'entr\'ee d\'ebordera \`a gauche~; si le |\hidewidth| est \`a
+droite de l'entr\'ee, l'entr\'ee d\'ebordera \`a droite.
+\example
+\tabskip = 25pt\halign{%
+ \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
+ United States&\hidewidth Washington&
+ dollar&1.00\cr
+ France&Paris&franc&0.174\cr
+ Israel&Jerusalem&shekel&0.507\cr
+ Japan&Tokyo&yen&0.0829\cr}
+|
+\produces
+\tabskip = 25pt\halign{%
+ \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
+ United States&\hidewidth Washington&
+ dollar&1.00\cr
+ France&Paris&franc&0.174\cr
+ Israel&Jerusalem&shekel&0.507\cr
+ Japan&Tokyo&yen&0.0829\cr}
+\endexample
+\enddesc
+
+\begindesc
+\cts everycr {\param{liste de token}}
+\explain
+\TeX\ d\'eveloppe \<token list> \`a chaque fois qu'il ex\'ecute
+un |\cr|---\`a la fin de chaque pr\'eambule,
+\`a la fin de chaque rang\'ee d'un alignement horizontal
+et \`a la fin de chaque colonne d'un alignement vertical.
+La commande |\everycr| est d\'evelopp\'ee juste apr\`es le |\cr|.
+Ainsi vous pouvez demander \`a \TeX\
+d'ex\'ecuter certaines commandes \`a la fin d'un pr\'eambule, d'une rang\'ee ou d'une colonne en
+assignant une liste de commandes \`a |\everycr|.
+
+Les tokens |\everycr| ne doivent pas inclure d'autres commandes que |\no!-align|.
+Ceci parce que
+les tokens |\everycr| r\'eappara\^\i tront apr\`es le dernier
+|\cr| de l'alignement. Une commande autre qu'un
+|\noalign| fera penser \`a \TeX\ qu'il commence une nouvelle
+rang\'ee ou colonne.
+\TeX\ se plaindra d'un |\cr| manquant, ins\`erera
+un |\cr|, ins\`erera les tokens |\everycr| \`a nouveau et r\'ep\`etera ces actions
+ind\'efiniment.
+\example
+
+\everycr={\noalign{\smallskip\hrule\smallskip}}
+\halign{#\tabskip = 11pt&\hfil#\hfil&\hfil#\hfil
+ \tabskip = 0pt\cr
+ $1$&one&first\cr
+ $2$&two&second\cr
+ $3$&three&third\cr}
+|
+\produces
+\medskip
+\everycr={\noalign{\smallskip\hrule\smallskip}}
+\halign{#\tabskip = 11pt&\hfil#\hfil&\hfil#\hfil
+ \tabskip = 0pt\cr
+ $1$&one&first\cr
+ $2$&two&second\cr
+ $3$&three&third\cr}
+\endexample
+
+\eix^^{alignements//commandes pour}
+\enddesc
+
+\enddescriptions
+
+
+\endchapter
+\byebye