summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/plain/impatient-fr
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-05-19 00:52:39 +0000
committerKarl Berry <karl@freefriends.org>2009-05-19 00:52:39 +0000
commita00c526e00a6843ced2e5962906b9d7ec48cdec4 (patch)
treea063ae9ddd34a930d94b5e13437aff792f9d1342 /Master/texmf-dist/doc/plain/impatient-fr
parent57e2bc6866ae84cbb5c539506ea229d28e5e1eb4 (diff)
move impatient-fr out of texmf-doc
git-svn-id: svn://tug.org/texlive/trunk@13224 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/plain/impatient-fr')
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/README8
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/config.tex0
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/eplain.tex1196
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/fbackm.tex103
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/fbook.pdfbin0 -> 1552306 bytes
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/fbook.tex50
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/fcapsule.tex1123
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/fconcept.tex4069
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/fcopyrgh.tex58
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/fdl.tex463
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/ferrors.tex309
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/fexamples.tex56
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/ffrontm.tex82
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/fgenops.tex2834
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/fmacros.tex2345
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/fmath.tex2176
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/fmodes.tex2077
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/fonts.tex242
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/fpages.tex1153
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/fparas.tex2152
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/fpreface.tex158
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/fread1st.tex46
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/ftips.tex1004
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/fusebook.tex227
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/fusermacs.tex1168
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/fusingtex.tex860
-rw-r--r--Master/texmf-dist/doc/plain/impatient-fr/fxmptext.tex452
27 files changed, 24411 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/README b/Master/texmf-dist/doc/plain/impatient-fr/README
new file mode 100644
index 00000000000..8622be0fe67
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/README
@@ -0,0 +1,8 @@
+Public domain. (Originally written by Karl Berry, 2004.)
+
+This French translation of TeX for the Impatient was made by Marc
+Chaudemanche and colleagues in 2004.
+
+TeX for the Impatient is now a GNU project, and the development sources,
+contact information, and other project details are available at
+http://savannah.gnu.org/projects/teximpatient.
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/config.tex b/Master/texmf-dist/doc/plain/impatient-fr/config.tex
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/config.tex
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/eplain.tex b/Master/texmf-dist/doc/plain/impatient-fr/eplain.tex
new file mode 100644
index 00000000000..19ad8cf59f6
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/eplain.tex
@@ -0,0 +1,1196 @@
+%% @texfile{
+%% author = "Karl Berry et al.",
+%% version = "1.9a",
+%% date = "28jul03",
+%% filename = "eplain.tex",
+%% email = "karl@cs.umb.edu",
+%% codetable = "ISO/ASCII",
+%% supported = "yes",
+%% docstring = "This file defines macros that expand on plain TeX, and
+%% is used in the production of the book TeX for the Impatient. It was
+%% originally version 1.9 from 11mar91, and differs only in this header
+%% material. Sadly, newer versions of eplain have more
+%% incompatibilities with the features we used to produce TFTI. Of
+%% course new documents should use the latest eplain, available from
+%% http://tug.org/eplain and from http://www.ctan.org/macros/eplain.
+%% ",
+%% }
+\def\makeactive#1{\catcode`#1 = \active \ignorespaces}%
+\chardef\letter = 11
+\chardef\other = 12
+\catcode`@ = \letter
+\def\uncatcodespecials{%
+ \def\do##1{\catcode`##1 = \other}%
+ \dospecials
+}%
+{%
+ \makeactive\^^M
+ \long\gdef\letreturn#1{\let^^M = #1}%
+}%
+\def\gobble#1{}%
+\def\gobbletwo#1#2{}%
+\def\gobblethree#1#2#3{}%
+\def\@gobblemeaning#1:->{}%
+\def\sanitize{\expandafter\@gobblemeaning\meaning}%
+\def\futurenonspacelet#1{\def\cs{#1}%
+ \afterassignment\@stepone\let\nexttoken=
+}%
+\def\\{\let\@stoken= }%
+\\ % now \@stoken is a space token (\\ is a control symbol, so that
+\def\@stepone{\expandafter\futurelet\cs\@steptwo}%
+\def\@steptwo{\expandafter\ifx\cs\@stoken\let\@@next=\@stepthree
+ \else\let\@@next=\nexttoken\fi \@@next}%
+\def\@stepthree{\afterassignment\@stepone\let\@@next= }%
+\let\@plainwlog = \wlog
+\let\wlog = \gobble
+\newlinechar = `^^J
+\def\loggingall{\tracingcommands\tw@\tracingstats\tw@
+ \tracingpages\@ne\tracingoutput\@ne\tracinglostchars\@ne
+ \tracingmacros\tw@\tracingparagraphs\@ne\tracingrestores\@ne
+ \showboxbreadth\maxdimen\showboxdepth\maxdimen
+}%
+\def\tracingboxes{\showboxbreadth = \maxdimen \showboxdepth = \maxdimen}%
+\newdimen\hruledefaultheight \hruledefaultheight = 0.4pt
+\newdimen\hruledefaultdepth \hruledefaultdepth = 0.0pt
+\newdimen\vruledefaultwidth \vruledefaultwidth = 0.4pt
+\def\ehrule{\hrule height\hruledefaultheight depth\hruledefaultdepth}%
+\def\evrule{\vrule width\vruledefaultwidth}%
+\begingroup
+ \catcode`\{ = 12 \catcode`\} = 12
+ \catcode`\[ = 1 \catcode`\] = 2
+ \gdef\lbracechar[{]%
+ \gdef\rbracechar[}]%
+ \catcode`\% = \other
+ \gdef\percentchar[%]\endgroup
+\def^^L{\par}%
+\let\@ifempty = \iffalse
+\ifx\@undefinedmessage\@undefined
+ \def\@undefinedmessage
+ {No .aux file; I won't warn you about undefined labels.}%
+\fi
+%% @texfile{
+%% author = "Karl Berry and Oren Patashnik",
+%% version = "0.99h",
+%% date = "24 Apr 1991",
+%% filename = "btxmac.tex",
+%% address = "Please use electronic mail",
+%% checksum = "812 4053 30557",
+%% email = "opbibtex@neon.stanford.edu",
+%% codetable = "ISO/ASCII",
+%% supported = "yes",
+%% docstring = "Defines macros that make BibTeX work with plain TeX",
+%% }
+\edef\cite{\the\catcode`@}%
+\catcode`@ = 11
+\let\@oldatcatcode = \cite
+\chardef\@letter = 11
+\chardef\@other = 12
+\def\@innerdef#1#2{\edef#1{\expandafter\noexpand\csname #2\endcsname}}%
+\@innerdef\@innernewcount{newcount}%
+\@innerdef\@innernewdimen{newdimen}%
+\@innerdef\@innernewif{newif}%
+\@innerdef\@innernewwrite{newwrite}%
+\def\@gobble#1{}%
+\ifx\inputlineno\@undefined
+ \let\@linenumber = \empty % Pre-3.0.
+\else
+ \def\@linenumber{\the\inputlineno:\space}%
+\fi
+\def\@getoptionalarg#1{\let\temp = #1\futurelet\next\@bracketcheck}%
+\def\@bracketcheck{\begingroup
+ \if [\next
+ \aftergroup\@@getoptionalarg
+ \else
+ \global\let\@optionalarg = \empty
+ \aftergroup\temp
+ \fi
+\endgroup}%
+\def\@@getoptionalarg[#1]{%
+ \def\@optionalarg{#1}%
+ \temp
+}%
+\def\@tokstostring#1{\@ttsA#1 \@ttsmarkA}%
+\def\@ttsA#1 #2\@ttsmarkA{%
+ \@ifempty{#1}\else
+ \@ttsB #1\@ttsmarkB
+ \@ifempty{#2}\else
+ \@spacesub\@ttsA#2\@ttsmarkA
+ \fi
+ \fi
+}%
+\def\@ttsB#1{%
+ \ifx #1\@ttsmarkB\else
+ \string #1%
+ \expandafter\@ttsB
+ \fi
+}%
+\def\@ttsmarkB{\@ttsmarkB}% should never be expanded
+\def\@spacesub{+}%
+\def\@ifempty#1{\@@ifempty #1\@emptymarkA\@emptymarkB}%
+\def\@@ifempty#1#2\@emptymarkB{\ifx #1\@emptymarkA}%
+\def\@emptymarkA{\@emptymarkA}% Again, so \ifx won't complain.
+\def\@nnil{\@nil}%
+\def\@fornoop#1\@@#2#3{}%
+\def\@for#1:=#2\do#3{%
+ \edef\@fortmp{#2}%
+ \ifx\@fortmp\empty \else
+ \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}%
+ \fi
+}%
+\def\@forloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else
+ #5\def#4{#2}\ifx #4\@nnil \else#5\@iforloop #3\@@#4{#5}\fi\fi
+}%
+\def\@iforloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
+ \let\@nextwhile=\@fornoop \else
+ #4\relax\let\@nextwhile=\@iforloop\fi\@nextwhile#2\@@#3{#4}%
+}%
+\@innernewif\if@fileexists
+\def\@testfileexistence{\@getoptionalarg\@finishtestfileexistence}%
+\def\@finishtestfileexistence#1{%
+ \begingroup
+ \def\extension{#1}%
+ \immediate\openin0 =
+ \ifx\@optionalarg\empty\jobname\else\@optionalarg\fi
+ \ifx\extension\empty \else .#1\fi
+ \space
+ \ifeof 0
+ \global\@fileexistsfalse
+ \else
+ \global\@fileexiststrue
+ \fi
+ \immediate\closein0
+ \endgroup
+}%
+\toks0 = {%
+\def\bibliographystyle#1{%
+ \@readauxfile
+ \@writeaux{\string\bibstyle{#1}}%
+}%
+\let\bibstyle = \@gobble
+\def\bibliography#1{%
+ \@readauxfile
+ \@writeaux{\string\bibdata{#1}}%
+ \@testfileexistence{bbl}%
+ \if@fileexists
+ \@readbblfile
+ \fi
+}%
+\let\bibdata = \@gobble
+\def\nocite#1{%
+ \@readauxfile
+ \@writeaux{\string\citation{#1}}%
+}%
+\@innernewif\if@notfirstcitation
+\def\cite{\begingroup\catcode`_ = \@letter \@getoptionalarg\@cite}%
+\def\@cite#1{%
+ \nocite{#1}%
+ \printcitestart
+ \@notfirstcitationfalse
+ \@for \@citation :=#1\do
+ {%
+ \expandafter\@onecitation\@citation\@@
+ }%
+ \ifx\empty\@optionalarg\else
+ \printcitenote{\@optionalarg}%
+ \fi
+ \printcitefinish
+ \endgroup
+}%
+\def\@onecitation#1\@@{%
+ \if@notfirstcitation
+ \printbetweencitations
+ \fi
+ \expandafter \ifx \csname\@citelabel{#1}\endcsname \relax
+ \if@citewarning
+ \message{\@linenumber Undefined citation `#1'.}%
+ \fi
+ \expandafter\gdef\csname\@citelabel{#1}\endcsname{%
+ {\tt \nobreak\hskip0pt#1\nobreak\hskip0pt}}%
+ \fi
+ \csname\@citelabel{#1}\endcsname
+ \@notfirstcitationtrue
+}%
+\def\@citelabel#1{\@tokstostring{b@#1}}%
+\def\@citedef#1{%
+ \begingroup
+ \@resetnumerals
+ \@finishcitedef{#1}%
+}%
+\def\@finishcitedef#1#2{%
+ \expandafter\gdef\csname\@citelabel{#1}\endcsname{#2}%
+ \endgroup
+}%
+\def\@resetnumerals{%
+ \catcode`0 = \@other \catcode`1 = \@other \catcode`2 = \@other
+ \catcode`3 = \@other \catcode`4 = \@other \catcode`5 = \@other
+ \catcode`6 = \@other \catcode`7 = \@other \catcode`8 = \@other
+ \catcode`9 = \@other \catcode`" = \@other \catcode`' = \@other
+ \catcode`` = \@other \catcode`, = \@other \catcode`. = \@other
+}%
+\def\@readbblfile{%
+ \@innernewcount\@itemnum
+ \begingroup
+ \def\begin##1##2{%
+ \setbox0 = \hbox{\biblabelcontents{##2}}%
+ \biblabelwidth = \wd0
+ }%
+ \def\end##1{}% ##1 is `thebibliography' again.
+ \@itemnum = 0
+ \def\bibitem{\futurelet\next\@bibitem}%
+ \def\@bibitem{%
+ \begingroup \if [\next
+ \aftergroup\@alphabibitem
+ \else
+ \aftergroup\@numberedbibitem
+ \fi \endgroup
+ }%
+ \def\@alphabibitem[##1]##2{%
+ \expandafter \xdef\csname\@citelabel{##2}\endcsname {##1}%
+ \@finishbibitem{##2}%
+ }%
+ \def\@numberedbibitem##1{%
+ \advance\@itemnum by 1
+ \expandafter \xdef\csname\@citelabel{##1}\endcsname{\number\@itemnum}%
+ \@finishbibitem{##1}%
+ }%
+ \def\@finishbibitem##1{%
+ \biblabelprint{\csname\@citelabel{##1}\endcsname}%
+ \@writeaux{\string\@citedef{##1}{\csname\@citelabel{##1}\endcsname}}%
+ \ignorespaces
+ }%
+ \let\em = \bblem
+ \let\newblock = \bblnewblock
+ \let\sc = \bblsc
+ \frenchspacing
+ \clubpenalty = 4000 \widowpenalty = 4000
+ \tolerance = 10000 \hfuzz = .5pt
+ \everypar = {\hangindent = \biblabelwidth
+ \advance\hangindent by \biblabelextrahang}%
+ \bblrm
+ \parskip = 1.5ex plus .5ex minus .5ex
+ \biblabelextrahang = .5em
+ \bblhook
+ \input \jobname.bbl
+ \endgroup
+}%
+\@innernewdimen\biblabelwidth
+\@innernewdimen\biblabelextrahang
+\def\biblabelprint#1{%
+ \noindent\hbox to \biblabelwidth{\biblabelcontents{#1}\hss}\enspace}%
+\def\biblabelcontents#1{\bblrm [#1]}%
+\def\bblrm{\rm}%
+\def\bblem{\it}%
+\def\bblsc{\ifx\@scfont\@undefined
+ \font\@scfont = cmcsc10
+ \fi
+ \@scfont
+}%
+\def\bblnewblock{\hskip .11em plus .33em minus .07em}%
+\let\bblhook = \empty
+\def\printcitestart{[}% left bracket
+\def\printcitefinish{]}% right bracket
+\def\printbetweencitations{, }% comma, space
+\def\printcitenote#1{, #1}% comma, space, note (if it exists)
+\let\citation = \@gobble
+\@innernewcount\@numparams
+\def\newcommand#1{%
+ \def\@commandname{#1}%
+ \futurelet\@next\@continuenewcommand
+}%
+\def\@continuenewcommand{\begingroup
+ \if [\@next
+ \aftergroup\@newcommandwithargs
+ \else
+ \global\@numparams = 0
+ \aftergroup\@newcommand
+ \fi
+\endgroup}%
+\def\@newcommandwithargs[#1]{%
+ \global\@numparams = #1
+ \@newcommand
+}%
+\def\@newcommand#1{%
+ \def\@startdef{\expandafter\edef\@commandname}%
+ \ifnum\@numparams=0
+ \let\@paramdef = \empty
+ \else
+ \ifnum\@numparams>9
+ \errmessage{\the\@numparams\space is too many parameters}%
+ \else
+ \ifnum\@numparams<0
+ \errmessage{\the\@numparams\space is too few parameters}%
+ \else
+ \edef\@paramdef{%
+ \ifcase\@numparams
+ \empty No arguments.
+ \or ####1%
+ \or ####1####2%
+ \or ####1####2####3%
+ \or ####1####2####3####4%
+ \or ####1####2####3####4####5%
+ \or ####1####2####3####4####5####6%
+ \or ####1####2####3####4####5####6####7%
+ \or ####1####2####3####4####5####6####7####8%
+ \or ####1####2####3####4####5####6####7####8####9%
+ \fi
+ }%
+ \fi
+ \fi
+ \fi
+ \expandafter\@startdef\@paramdef{#1}%
+}%
+}%
+\ifx\nobibtex\@undefined \the\toks0 \fi
+\def\@readauxfile{%
+ \if@auxfiledone \else % remember: \@auxfiledonetrue if \noauxfile is defined
+ \global\@auxfiledonetrue
+ \@testfileexistence{aux}%
+ \if@fileexists
+ \begingroup
+ \endlinechar = -1
+ \@setletters
+ \input \jobname.aux
+ \endgroup
+ \else
+ \message{\@undefinedmessage}%
+ \global\@citewarningfalse
+ \fi
+ \immediate\openout\@auxfile = \jobname.aux
+ \fi
+}%
+\newif\if@auxfiledone
+\ifx\noauxfile\@undefined \else \@auxfiledonetrue\fi
+\def\@setletters{%
+ \count255 = 0
+ \edef\temp{\ifx\inputlineno\@undefined 128\else 256\fi}%
+ \loop
+ \ifnum\catcode\count255 = \@other
+ \catcode\count255 = \@letter
+ \fi
+ \advance\count255 by 1
+ \ifnum\count255<\temp
+ \repeat
+ \catcode`\_ = \@letter
+}%
+\@innernewwrite\@auxfile
+\def\@writeaux#1{\ifx\noauxfile\@undefined \write\@auxfile{#1}\fi}%
+\ifx\@undefinedmessage\@undefined
+ \def\@undefinedmessage{No .aux file; I won't give you warnings about
+ undefined citations.}%
+\fi
+\@innernewif\if@citewarning
+\ifx\noauxfile\@undefined \@citewarningtrue\fi
+\catcode`@ = \@oldatcatcode
+\let\auxfile = \@auxfile
+\let\for = \@for
+\let\getoptionalarg = \@getoptionalarg
+\let\ifempty = \@ifempty
+\def\iffileexists{\if@fileexists}%
+\let\innerdef = \@innerdef
+\let\innernewcount = \@innernewcount
+\let\innernewdimen = \@innernewdimen
+\let\innernewif = \@innernewif
+\let\innernewwrite = \@innernewwrite
+\let\linenumber = \@linenumber
+\let\readauxfile = \@readauxfile
+\let\spacesub = \@spacesub
+\let\testfileexistence = \@testfileexistence
+\let\tokstostring = \@tokstostring
+\let\writeaux = \@writeaux
+\def\innerinnerdef#1{\expandafter\innerdef\csname inner#1\endcsname{#1}}%
+\innerinnerdef{newbox}%
+\innerinnerdef{newfam}%
+\innerinnerdef{newhelp}%
+\innerinnerdef{newinsert}%
+\innerinnerdef{newlanguage}%
+\innerinnerdef{newmuskip}%
+\innerinnerdef{newread}%
+\innerinnerdef{newskip}%
+\innerinnerdef{newtoks}%
+\def\immediatewriteaux#1{%
+ \ifx\noauxfile\@undefined
+ \immediate\write\@auxfile{#1}%
+ \fi
+}%
+\begingroup
+ \makeactive\^^M \makeactive\ % No spaces or ^^M's from here on.
+\gdef\obeywhitespace{%
+\makeactive\^^M\def^^M{\par\futurelet\next\@finishobeyedreturn}%
+\makeactive\ \def {\ }%
+\aftergroup\@removebox%
+\futurelet\next\@finishobeywhitespace%
+}%
+\gdef\@finishobeywhitespace{{%
+\ifx\next %
+\aftergroup\@obeywhitespaceloop%
+\else\ifx\next^^M%
+\aftergroup\gobble%
+\fi\fi}}%
+\gdef\@finishobeyedreturn{%
+\ifx\next^^M\vskip\blanklineskipamount\fi%
+\indent%
+}%
+\endgroup
+\def\@obeywhitespaceloop#1{\futurelet\next\@finishobeywhitespace}%
+\def\@removebox{%
+ \setbox0 = \lastbox
+ \ifdim\wd0=\parindent
+ \setbox2 = \hbox{\unhbox0}%
+ \ifdim\wd2=0pt
+ \ignorespaces
+ \else
+ \box2 % Put it back: it wasn't empty.
+ \fi
+ \else
+ \box0 % Put it back: it wasn't the right width.
+ \fi
+}%
+\newskip\blanklineskipamount
+\blanklineskipamount = 0pt
+\def\frac#1/#2{\leavevmode
+ \kern.1em \raise .5ex \hbox{\the\scriptfont0 #1}%
+ \kern-.1em $/$%
+ \kern-.15em \lower .25ex \hbox{\the\scriptfont0 #2}%
+}%
+\def\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX\null}%
+\def\LaTeX{L\kern -.26em \raise .6ex \hbox{\sevenrm A}\kern -.15em \TeX}%
+\def\AMSTeX{$\cal A\kern -.1667em
+ \lower .5ex\hbox{$\cal M$}%
+ \kern -.125em S$-\TeX
+}%
+\def\BibTeX{{\rm B\kern-.05em{\sevenrm I\kern-.025em B}\kern-.08em
+ T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}%
+\font\mflogo = logo10
+\def\MF{{\mflogo META}{\tenrm \-}{\mflogo FONT}}%
+\def\blackbox{\vrule height .8ex width .6ex depth -.2ex }% square bullet
+\def\makeblankbox#1#2{%
+ \ifvoid0
+ \errmessage{Box 0 is void}%
+ \errhelp = \@makeblankboxhelp
+ \fi
+ \hbox{\lower\dp0
+ \vbox{\hidehrule{#1}{#2}%
+ \kern -#1% overlap rules
+ \hbox to \wd0{\hidevrule{#1}{#2}%
+ \raise\ht0\vbox to #1{}% vrule height
+ \lower\dp0\vtop to #1{}% vrule depth
+ \hfil\hidevrule{#2}{#1}%
+ }%
+ \kern-#1\hidehrule{#2}{#1}%
+ }%
+ }%
+}%
+\newhelp\@makeblankboxhelp{Assigning to the dimensions of a void^^J%
+ box has no effect. Do `\string\setbox0=\string\null' before you^^J%
+ define its dimensions.}%
+\def\hidehrule#1#2{\kern-#1\hrule height#1 depth#2 \kern-#2}%
+\def\hidevrule#1#2{%
+ \kern-#1%
+ \dimen0=#1\advance\dimen0 by #2%
+ \vrule width\dimen0
+ \kern-#2%
+}%
+\newdimen\boxitspace \boxitspace = 3pt
+\def\boxit#1{%
+ \vbox{%
+ \hrule
+ \hbox{%
+ \vrule
+ \kern\boxitspace
+ \vbox{\kern\boxitspace \parindent = 0pt #1\kern\boxitspace}%
+ \kern\boxitspace
+ \vrule
+ }%
+ \hrule
+ }%
+}%
+\def\numbername#1{\ifcase#1%
+ zero%
+ \or one%
+ \or two%
+ \or three%
+ \or four%
+ \or five%
+ \or six%
+ \or seven%
+ \or eight%
+ \or nine%
+ \or ten%
+ \or #1%
+ \fi
+}%
+\def\environment#1{%
+ \ifx\@groupname\@undefined\else
+ \errhelp = \@unnamedendgrouphelp
+ \errmessage{`\@groupname' was not closed by \string\endenvironment}%
+ \fi
+ \def\@groupname{#1}%
+ \begingroup
+ \let\@groupname = \@undefined
+}%
+\def\endenvironment#1{%
+ \endgroup
+ \def\@thearg{#1}%
+ \ifx\@groupname\@thearg
+ \else
+ \ifx\@groupname\@undefined
+ \errhelp = \@isolatedendenvironmenthelp
+ \errmessage{Isolated \string\endenvironment\space for `#1'}%
+ \else
+ \errhelp = \@mismatchedenvironmenthelp
+ \errmessage{Environment `#1' ended, but `\@groupname' started}%
+ \endgroup % Probably a typo in the names.
+ \fi
+ \fi
+ \let\@groupname = \@undefined
+}%
+\newhelp\@unnamedendgrouphelp{Most likely, you just forgot an^^J%
+ \string\endenvironment. Maybe you should try inserting another^^J%
+ \string\endgroup to recover.}%
+\newhelp\@isolatedendenvironmenthelp{You ended an environment X, but^^J%
+ no \string\environment\space to start it is anywhere in sight.^^J%
+ You might also be at an \string\endenvironment\space that would match^^J%
+ a \string\begingroup, i.e., you forgot an \string\endgroup.}%
+\newhelp\@mismatchedenvironmenthelp{You started an environment X, but^^J%
+ you ended it with Y. Maybe you made a typo in one or the other^^J%
+ of the names.}%
+\newif\ifenvironment
+\def\checkenv{\ifenvironment \errhelp = \@interwovenenvhelp
+ \errmessage{Interwoven environments}%
+ \endgroup \fi
+}%
+\newhelp\@interwovenenvhelp{Perhaps you forgot to end the previous^^J%
+ environment? I'm finishing off the current group,^^J%
+ hoping that will fix it.}%
+\newif\ifeqno
+\newif\ifleqno
+\def\eq{\the\@eqtoks}%
+\def\eqn{\the\@eqnotoks}%
+\newtoks\@eqtoks
+\newtoks\@eqnotoks
+\long\def\displaysetup#1$${%
+ \@ddisplaytest#1\eqdef\eqdef\@ddisplaytest
+ \expandafter\@displaytest\the\toks0\eqno\eqno\@displaytest
+}%
+\def\@removetrailingspaces#1 #2 \endmark{#1}%
+\long\def\@ddisplaytest#1\eqdef#2\eqdef#3\@ddisplaytest{%
+ \if !\noexpand#3!%
+ \toks0 = {#1}%
+ \else
+ \toks2 = {#1}%
+ \begingroup
+ \def\temp{\@removetrailingspaces #2}%
+ \def\\{ }%
+ \xdef\temp{{\expandafter\temp\\ \endmark}}%
+ \endgroup
+ \toks4 = \expandafter\expandafter\expandafter{\expandafter\eqdef\temp}%
+ \edef\@setupeq{\toks0 = {\the\toks2 \the\toks4}}%
+ \@setupeq
+ \fi
+}%
+\long\def\@displaytest#1\eqno#2\eqno#3\@displaytest{%
+ \if !\noexpand#3!%
+ \@ldisplaytest#1\leqno\leqno\@ldisplaytest
+ \else
+ \eqnotrue
+ \leqnofalse
+ \@eqnotoks = {#2}%
+ \@eqtoks = {#1}%
+ \fi
+ \generaldisplay$$%
+}%
+\long\def\@ldisplaytest#1\leqno#2\leqno#3\@ldisplaytest{%
+ \@eqtoks = {#1}%
+ \if !\noexpand#3!%
+ \eqnofalse
+ \else
+ \eqnotrue
+ \leqnotrue
+ \@eqnotoks = {#2}%
+ \fi
+}%
+\newdimen\leftdisplayindent
+\newtoks\previouseverydisplay
+\newtoks\displayhook
+\def\leftdisplays{%
+ \previouseverydisplay = \everydisplay
+ \everydisplay = {\the\previouseverydisplay \the\displayhook \displaysetup}%
+ \def\generaldisplay{%
+ \leftline{%
+ \strut
+ \indent \hskip\leftskip \hskip\leftdisplayindent
+ \dimen0 = \parindent \advance\dimen0 by \leftskip
+ \advance\dimen0 by \leftdisplayindent
+ \advance\displaywidth by -\dimen0
+ \@redefinealignmentdisplays
+ \ifeqno\ifleqno
+ \kern-\dimen0\rlap{$\displaystyle\eqn$}\kern\dimen0
+ \fi\fi
+ $\displaystyle\eq$%
+ \ifeqno\ifleqno\else
+ \hfill $\displaystyle\eqn$%
+ \fi\fi
+ }%
+ }%
+}%
+\def\@redefinealignmentdisplays{%
+ \def\displaylines##1{\displ@y
+ \vcenter{%
+ \let\oldeqprint = \eqprint
+ \def\eqprint{\hfill\oldeqprint}%
+ \halign{\hbox to\displaywidth{$\@lign\displaystyle####\hfil$}\crcr
+ ##1\crcr}}}%
+ \def\eqalignno##1{\displ@y
+ \vcenter{%
+ \halign to\displaywidth{%
+ $\@lign\displaystyle{####}$\tabskip\z@skip
+ &$\@lign\displaystyle{{}####}$\hfil\tabskip\centering
+ &\llap{$\@lign####$}\tabskip\z@skip\crcr
+ ##1\crcr}}}%
+ \def\leqalignno##1{\displ@y
+ \vcenter{%
+ \halign to\displaywidth{%
+ $\@lign\displaystyle{####}$\tabskip\z@skip
+ &$\@lign\displaystyle{{}####}$\hfil\tabskip\centering
+ &\kern-\displaywidth
+ \rlap{\kern-\parindent\kern-\leftskip$\@lign####$}%
+ \tabskip\displaywidth\crcr
+ ##1\crcr}}}%
+}%
+\def\centereddisplays{\let\displaysetup = \relax}%
+\def\monthname{%
+ \ifcase\month
+ \or Jan\or Feb\or Mar\or Apr\or May\or Jun%
+ \or Jul\or Aug\or Sep\or Oct\or Nov\or Dec%
+ \fi
+}%
+\def\fullmonthname{%
+ \ifcase\month
+ \or January\or February\or March\or April\or May\or June%
+ \or July\or August\or September\or October\or November\or December%
+ \fi
+}%
+\def\timestring{\begingroup
+ \count0 = \time
+ \divide\count0 by 60
+ \count2 = \count0 % The hour, from zero to 23.
+ \count4 = \time
+ \multiply\count0 by 60
+ \advance\count4 by -\count0 % The minute, from zero to 59.
+ \ifnum\count4<10
+ \toks1 = {0}%
+ \else
+ \toks1 = {}%
+ \fi
+ \ifnum\count2<12
+ \toks0 = {a.m.}%
+ \else
+ \toks0 = {p.m.}%
+ \advance\count2 by -12
+ \fi
+ \ifnum\count2=0
+ \count2 = 12
+ \fi
+ \number\count2:\the\toks1 \number\count4 \thinspace \the\toks0
+\endgroup}%
+\def\timestamp{\number\day\space\monthname\space\number\year\quad\timestring}%
+\newskip\abovelistskip \abovelistskip = .5\baselineskip
+\newskip\interitemskip \interitemskip = 0pt
+\newskip\belowlistskip \belowlistskip = .5\baselineskip
+\newdimen\listleftindent \listleftindent = 0pt
+\newdimen\listrightindent \listrightindent = 0pt
+\def\listcompact{\interitemskip = 0pt \relax}%
+\newdimen\@listindent
+\def\beginlist{%
+ \@listindent = \parindent
+ \advance\@listindent by \listleftindent
+ \everydisplay = \expandafter{\the\everydisplay
+ \advance\displayindent by \@listindent
+ \advance\displaywidth by -\@listindent
+ \advance\displaywidth by -\listrightindent}%
+ \nobreak\vskip\abovelistskip
+ \advance\leftskip by \@listindent
+ \advance\rightskip by \listrightindent
+}%
+\def\printitem{%
+ \par
+ \vskip-\parskip
+ \noindent
+ \llap{\marker \enspace}%
+}%
+\def\endlist{\vskip\belowlistskip}%
+\newcount\numberedlistdepth
+\newcount\itemnumber
+\newcount\itemletter
+\def\numberedmarker{%
+ \ifcase\numberedlistdepth
+ (impossible)%
+ \or \itemnumberout)%
+ \or \itemletterout)%
+ \else *%
+ \fi
+}%
+\def\numberedlist{\environment{@numbered-list}%
+ \advance\numberedlistdepth by 1
+ \itemnumber = 1
+ \itemletter = `a
+ \beginlist
+ \let\marker = \numberedmarker
+ \def\li{%
+ \ifnum\itemnumber=1\else
+ \vskip\interitemskip
+ \fi
+ \printitem
+ \advance\itemnumber by 1
+ \advance\itemletter by 1
+ }%
+}%
+\def\itemnumberout{\number\itemnumber}%
+\def\itemletterout{\char\itemletter}%
+\def\endnumberedlist{%
+ \par
+ \endenvironment{@numbered-list}%
+ \endlist
+}%
+\newcount\unorderedlistdepth
+\def\unorderedmarker{%
+ \ifcase\unorderedlistdepth
+ (impossible)%
+ \or \blackbox
+ \or ---%
+ \else *%
+ \fi
+}%
+\def\unorderedlist{\environment{@unordered-list}%
+ \advance\unorderedlistdepth by 1
+ \beginlist
+ \itemnumber = 1
+ \let\marker = \unorderedmarker
+ \def\li{%
+ \ifnum\itemnumber=1\else
+ \vskip\interitemskip
+ \fi
+ \printitem
+ \advance\itemnumber by 1
+ }%
+}%
+\def\endunorderedlist{%
+ \par
+ \endenvironment{@unordered-list}%
+ \endlist
+}%
+\def\listing#1{%
+ \par \begingroup
+ \@setuplisting
+ \setuplistinghook
+ \input #1
+ \endgroup
+}%
+\let\setuplistinghook = \empty
+\def\@setuplisting{%
+ \uncatcodespecials
+ \obeywhitespace
+ \makeactive\`
+ \makeactive\^^I
+ \def^^L{\vfill\eject}%
+ \tt
+}%
+{%
+ \makeactive\`
+ \gdef`{\relax\lq}% Defeat ligatures.
+}%
+{%
+ \makeactive\^^I
+ \tt
+ \gdef^^I{\hskip8\fontdimen2\font \relax}%
+}%
+\newif\if@tocfileopened
+\newwrite\tocfile
+\def\opentocfile{%
+ \if@tocfileopened\else
+ \global\@tocfileopenedtrue
+ \immediate\openout\tocfile = \jobname.toc
+ \fi
+}%
+\def\writetocentry#1#2{\writenumberedtocentry{#1}{#2}\empty}%
+\def\writenumberedtocentry#1#2#3{%
+ \ifrewritetocfile
+ \opentocfile
+ \toks0 = {\expandafter\noexpand \csname toc#1entry\endcsname}%
+ \def\temp{#2}%
+ \def\cs{#3}%
+ \edef\@wr{%
+ \write\tocfile{%
+ \the\toks0
+ {\sanitize\temp}%
+ \ifx \empty\cs\else{#3}\fi
+ {\noexpand\folio}%
+ }%
+ }%
+ \@wr
+ \fi
+ \ignorespaces
+}%
+\newif\ifrewritetocfile \rewritetocfiletrue
+\def\readtocfile{%
+ \testfileexistence{toc}%
+ \if@fileexists
+ \input \jobname.toc
+ \ifrewritetocfile
+ \opentocfile
+ \fi
+ \fi
+}%
+\def\tocchapterentry#1#2{\line{\bf #1 \dotfill\ #2}}%
+\def\tocsectionentry#1#2{\line{\quad\sl #1 \dotfill\ \rm #2}}%
+\def\tocsubsectionentry#1#2{\line{\qquad\rm #1 \dotfill\ #2}}%
+\def\xrdef#1{%
+ \@readauxfile
+ \begingroup
+ \xrlabel{#1}%
+ \edef\@wr{\@writexrdef{\the\xrlabeltoks}}%
+ \@wr
+ \endgroup
+ \ignorespaces
+}%
+\def\@writexrdef#1{%
+ \@writeaux{%
+ \string\gdef\expandafter\string\csname#1\endcsname {\noexpand\folio}%
+ }%
+}%
+\newtoks\xrlabeltoks
+\def\xrlabel#1{%
+ \begingroup
+ \escapechar = `\_
+ \edef\tts{\tokstostring{#1_}}%
+ \global\xrlabeltoks = \expandafter{\tts}%
+ \endgroup
+}%
+\let\ifxrefwarning = \iftrue
+\def\xrefwarningtrue{\@citewarningtrue \let\ifxrefwarning = \iftrue}%
+\def\xrefwarningfalse{\@citewarningfalse let\ifxrefwarning = \iffalse}%
+\def\xrefn#1{%
+ \@readauxfile
+ \xrlabel{#1}% \xrlabeltoks now has the control sequence name.
+ \toks0 = \expandafter{\csname\the\xrlabeltoks\endcsname}%
+ \expandafter \ifx\the\toks0\relax
+ \if@citewarning
+ \message{\linenumber Undefined label `\tokstostring{#1}'.}%
+ \fi
+ \begingroup
+ \let\spacesub = \space
+ \expandafter\xdef\the\toks0{`{\tt \tokstostring{#1}}'}%
+ \endgroup
+ \fi
+ \the\toks0 % Always produce something.
+}%
+\def\xref#1{p.\thinspace\xrefn{#1}}%
+\newcount\eqnumber
+\def\eqdefn#1{%
+ \@readauxfile
+ \global\advance\eqnumber by 1
+ \begingroup
+ \xrlabel{#1}% \xrlabeltoks now has the control sequence name.
+ \edef\@wr{\@writeeqdef{\the\xrlabeltoks}{\the\eqnumber}}%
+ \@wr
+ \endgroup
+ \expandafter\xdef\csname\the\xrlabeltoks\endcsname{\the\eqnumber}%
+ \ignorespaces
+}%
+\def\@writeeqdef#1#2{%
+ \immediatewriteaux{%
+ \string\gdef\expandafter\string\csname#1\endcsname{#2}%
+ }%
+}%
+\def\eqdef#1{%
+ \@maybedisableeqno
+ \eqno \eqdefn{#1}\eqprint{\the\eqnumber}%
+ \@mayberestoreeqno
+ \ignorespaces
+}%
+\let\@mayberestoreeqno = \empty
+\def\@maybedisableeqno{%
+ \ifinner
+ \global\let\eqno = \relax
+ \global\let\@mayberestoreeqno = \@restoreeqno
+ \fi
+}%
+\let\@primitiveeqno = \eqno
+\def\@restoreeqno{%
+ \global\let\eqno = \@primitiveeqno
+ \global\let\@mayberestoreeqno = \empty
+}%
+\def\eqref#1{%
+ \@readauxfile
+ \xrlabel{#1}% \xrlabeltoks now has the control sequence name.
+ \toks0 = \expandafter{\csname\the\xrlabeltoks\endcsname}%
+ \expandafter \ifx\the\toks0\relax
+ \if@citewarning
+ \message{\linenumber Undefined equation label `\tokstostring{#1}'.}%
+ \fi
+ \begingroup
+ \let\spacesub = \space
+ \expandafter\xdef\the\toks0{`{\tt \tokstostring{#1}}'}%
+ \endgroup
+ \fi
+ \eqprint{\the\toks0}%
+}%
+\def\eqprint#1{(#1)}%
+\begingroup
+ \catcode `\^^M = \active %
+ \globaldefs = 1 %
+ \def\flushleft{\beforejustify %
+ \aftergroup\@endflushleft %
+ \def^^M{\null\hfil\break}%
+ \def\@eateol^^M{}%
+ \@eateol %
+ }%
+ \def\flushright{\beforejustify %
+ \aftergroup\@endflushright %
+ \def^^M{\break\null\hfil}%
+ \def\@eateol^^M{\hfil\null}%
+ \@eateol %
+ }%
+ \def\center {\beforejustify %
+ \aftergroup\@endcenter %
+ \def^^M{\hfil\break\null\hfil}%
+ \def\@eateol^^M{\hfil\null}%
+ \@eateol %
+ }%
+\endgroup
+\def\@endflushleft{\unpenalty{\parfillskip = 0pt plus 1 fil\par}\ignorespaces}%
+\def\@endflushright{% Remove the \hfil\null\break we just put on.
+ \unskip \setbox0=\lastbox \unpenalty
+ {\parfillskip = 0pt \par}\ignorespaces
+}%
+\def\@endcenter{% Remove the \hfil\null\break we just put on.
+ \unskip \setbox0=\lastbox \unpenalty
+ {\parfillskip = 0pt plus 1fil \par}\ignorespaces
+}%
+\def\beforejustify{%
+ \par\noindent
+ \catcode`\^^M = \active
+ \checkenv \environmenttrue
+}%
+\newcount\abovecolumnspenalty \abovecolumnspenalty = 10000
+\newcount\@linestogo % Lines remaining to process.
+\newcount\@linestogoincolumn % Lines remaining in column.
+\newcount\@columndepth % Number of lines in a column.
+\newdimen\@columnwidth % Width of each column.
+\newtoks\crtok \crtok = {\cr}%
+\newcount\currentcolumn
+\def\makecolumns#1/#2: {\par \begingroup
+ \@columndepth = #1
+ \advance\@columndepth by #2
+ \advance\@columndepth by -1
+ \divide \@columndepth by #2
+ \@linestogoincolumn = \@columndepth
+ \@linestogo = #1
+ \currentcolumn = 1
+ \def\@endcolumnactions{%
+ \ifnum \@linestogo<2
+ \the\crtok \egroup \endgroup \par % End \valign and \makecolumns.
+ \else
+ \global\advance\@linestogo by -1
+ \ifnum\@linestogoincolumn<2
+ \global\advance\currentcolumn by 1
+ \global\@linestogoincolumn = \@columndepth
+ \the\crtok
+ \else
+ &\global\advance\@linestogoincolumn by -1
+ \fi
+ \fi
+ }%
+ \makeactive\^^M
+ \letreturn \@endcolumnactions
+ \@columnwidth = \hsize
+ \advance\@columnwidth by -\parindent
+ \divide\@columnwidth by #2
+ \penalty\abovecolumnspenalty
+ \noindent % It's not a paragraph (usually).
+ \valign\bgroup
+ &\hbox to \@columnwidth{\strut \hsize = \@columnwidth ##\hfil}\cr
+}%
+\newcount\footnotenumber
+\newdimen\footnotemarkseparation \footnotemarkseparation = .5em
+\newskip\interfootnoteskip \interfootnoteskip = 0pt
+\newtoks\everyfootnote
+\newdimen\footnoterulewidth \footnoterulewidth = 2true in
+\newdimen\footnoteruleheight \footnoteruleheight = 0.4pt
+\newdimen\belowfootnoterulespace \belowfootnoterulespace = 2.6pt
+\let\@plainfootnote = \footnote
+\let\@plainvfootnote = \vfootnote
+\def\vfootnote#1{\insert\footins\bgroup
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\ht\strutbox % top baseline for broken footnotes
+ \advance\splittopskip by \interfootnoteskip
+ \splitmaxdepth\dp\strutbox
+ \floatingpenalty\@MM
+ \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip
+ \everypar = {}%
+ \the\everyfootnote
+ \vskip\interfootnoteskip
+ \indent\llap{#1\kern\footnotemarkseparation}\footstrut\futurelet\next\fo@t
+}%
+\def\footnoterule{\dimen0 = \footnoteruleheight
+ \advance\dimen0 by \belowfootnoterulespace
+ \kern-\dimen0
+ \hrule width\footnoterulewidth height\footnoteruleheight depth0pt
+ \kern\belowfootnoterulespace
+ \vskip-\interfootnoteskip
+}%
+\def\numberedfootnote{%
+ \global\advance\footnotenumber by 1
+ \@plainfootnote{$^{\number\footnotenumber}$}%
+}%
+\newdimen\paperheight \paperheight = 11in
+\def\topmargin{\afterassignment\@finishtopmargin \dimen0}%
+\def\@finishtopmargin{%
+ \dimen2 = \voffset % Remember the old \voffset.
+ \voffset = \dimen0 \advance\voffset by -1in
+ \advance\dimen2 by -\voffset % Compute the change in \voffset.
+ \advance\vsize by \dimen2 % Change type area accordingly.
+}%
+\def\advancetopmargin{%
+ \dimen0 = 0pt \afterassignment\@finishadvancetopmargin \advance\dimen0
+}%
+\def\@finishadvancetopmargin{%
+ \advance\voffset by \dimen0
+ \advance\vsize by -\dimen0
+}%
+\def\bottommargin{\afterassignment\@finishbottommargin \dimen0}%
+\def\@finishbottommargin{%
+ \@computebottommargin % Result in \dimen2.
+ \advance\dimen2 by -\dimen0 % Compute the change in the bottom margin.
+ \advance\vsize by \dimen2 % Change the type area.
+}%
+\def\advancebottommargin{%
+ \dimen0 = 0pt \afterassignment\@finishadvancebottommargin \advance\dimen0
+}%
+\def\@finishadvancebottommargin{%
+ \advance\vsize by -\dimen0
+}%
+\def\@computebottommargin{%
+ \dimen2 = \paperheight % The total paper size.
+ \advance\dimen2 by -\vsize % Less the text size.
+ \advance\dimen2 by -\voffset % Less the offset at the top.
+ \advance\dimen2 by -1in % Less the default offset.
+}%
+\newdimen\paperwidth \paperwidth = 8.5in
+\def\leftmargin{\afterassignment\@finishleftmargin \dimen0}%
+\def\@finishleftmargin{%
+ \dimen2 = \hoffset % Remember the old \hoffset.
+ \hoffset = \dimen0 \advance\hoffset by -1in
+ \advance\dimen2 by -\hoffset % Compute the change in \hoffset.
+ \advance\hsize by \dimen2 % Change type area accordingly.
+}%
+\def\advanceleftmargin{%
+ \dimen0 = 0pt \afterassignment\@finishadvanceleftmargin \advance\dimen0
+}%
+\def\@finishadvanceleftmargin{%
+ \advance\hoffset by \dimen0
+ \advance\hsize by -\dimen0
+}%
+\def\rightmargin{\afterassignment\@finishrightmargin \dimen0}%
+\def\@finishrightmargin{%
+ \@computerightmargin % Result in \dimen2.
+ \advance\dimen2 by -\dimen0 % Compute the change in the right margin.
+ \advance\hsize by \dimen2 % Change the type area.
+}%
+\def\advancerightmargin{%
+ \dimen0 = 0pt \afterassignment\@finishadvancerightmargin \advance\dimen0
+}%
+\def\@finishadvancerightmargin{%
+ \advance\hsize by -\dimen0
+}%
+\def\@computerightmargin{%
+ \dimen2 = \paperwidth % The total paper size.
+ \advance\dimen2 by -\hsize % Less the text size.
+ \advance\dimen2 by -\hoffset % Less the offset at the left.
+ \advance\dimen2 by -1in % Less the default offset.
+}%
+\newskip\abovedoublecolumnskip \abovedoublecolumnskip = \bigskipamount
+\newskip\belowdoublecolumnskip \belowdoublecolumnskip = \bigskipamount
+\newdimen\gutter \gutter = 2pc
+\newdimen\doublecolumnhsize
+\newbox\@partialpage \newdimen\singlecolumnhsize \newdimen\singlecolumnvsize
+\newtoks\previousoutput
+\def\doublecolumns{%
+ \doublecolumnhsize = \hsize % If \hsize changed, get the new value.
+ \par % Shouldn't start in horizontal mode.
+ \previousoutput = \expandafter{\the\output}%
+ \advance\doublecolumnhsize by -\gutter
+ \divide\doublecolumnhsize by 2
+ \output = {%
+ \global\setbox\@partialpage =
+ \vbox{\unvbox255\vskip\abovedoublecolumnskip}%
+ }%
+ \pagegoal = \pagetotal
+ \break % Now expand the \output just above.
+ \output = {\doublecolumnoutput}%
+ \singlecolumnhsize = \hsize
+ \singlecolumnvsize = \vsize
+ \hsize = \doublecolumnhsize
+ \vsize = 2\vsize
+}%
+\def\@doublecolumnsplit{%
+ \splittopskip = \topskip
+ \splitmaxdepth = \maxdepth
+ \dimen0 = \singlecolumnvsize
+ \advance\dimen0 by -\ht\@partialpage
+ \advance\dimen0 by -\ht\footins
+ \ifvoid\footins\else \advance\dimen0 by -\skip\footins \fi
+ \advance\dimen0 by -\ht\topins
+ \ifvoid\topins\else \advance\dimen0 by -\skip\topins \fi
+ \begingroup
+ \vbadness = 10000
+ \global\setbox1 = \vsplit255 to \dimen0
+ \wd1 = \hsize
+ \global\setbox3 = \vsplit255 to \dimen0
+ \wd3 = \hsize
+ \endgroup
+ \global\setbox4 = \vbox{\unvbox255 \penalty\outputpenalty}%
+ \global\setbox255
+ = \vbox{%
+ \unvbox\@partialpage
+ \hbox to \singlecolumnhsize{\box1\hfil\box3}%
+ }%
+}%
+\def\doublecolumnoutput{%
+ \@doublecolumnsplit
+ \hsize = \singlecolumnhsize % Local to the \output group.
+ \vsize = \singlecolumnvsize
+ \the\previousoutput
+ \unvbox4
+}%
+\def\singlecolumn{%
+ \par % Shouldn't start in horizontal mode.
+ \output = {\global\setbox1 = \box255}%
+ \pagegoal = \pagetotal
+ \break % Exercise the page builder, i.e., \output.
+ \setbox255 = \box1 % Retrieve what the fake \output set.
+ \begingroup
+ \singlecolumnvsize = \ht\@partialpage
+ \advance\singlecolumnvsize by \ht\footins
+ \ifvoid\footins\else \advance\singlecolumnvsize by \skip\footins\fi
+ \advance\singlecolumnvsize by \ht\topins
+ \ifvoid\topins\else \advance\singlecolumnvsize by \skip\topins\fi
+ \dimen0 = \ht255 \divide\dimen0 by 2
+ \advance\singlecolumnvsize by \dimen0
+ \advance\singlecolumnvsize by .5\baselineskip
+ \@doublecolumnsplit
+ \endgroup
+ \hsize = \singlecolumnhsize
+ \vsize = \singlecolumnvsize
+ \output = \expandafter{\the\previousoutput}%
+ \unvbox255
+ \vskip\belowdoublecolumnskip
+ \nointerlineskip
+}%
+\let\wlog = \@plainwlog
+\catcode`@ = \other
+\def\fmtname{eplain}%
+\def\eplain{t}%
+{\edef\plainversion{\fmtversion}%
+ \xdef\fmtversion{1.9: 26 April 1991 (and plain \plainversion)}%
+}%
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/fbackm.tex b/Master/texmf-dist/doc/plain/impatient-fr/fbackm.tex
new file mode 100644
index 00000000000..dc9f1ee01fc
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/fbackm.tex
@@ -0,0 +1,103 @@
+% 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.
+%
+% Backmatter.
+
+\input fmacros
+
+\ifcompletebook
+ \noheadlinetrue\pagebreak
+ \ifodd\pageno\else \noheadlinetrue\pagebreak \fi
+\fi
+
+\edgetabsfalse
+
+% About the authors.
+%
+\backsinkage
+\leftline{\sectionfonts \`a propos des auteurs}
+\vskip\belowsectionskip
+
+%\noindent
+Paul W. Abrahams, Sc.D., CCP, est consultant informatique et ancien
+pr\'esident de l'Association for Computing Machinery. Ses sp\'ecialit\'es
+sont la programmation de langage informatique, la conception,
+l'impl\'ementation de syst\`emes logiciels et l'\'ecriture technique. Il a
+re\c cu son doctorat de math\'ematiques du Massachusetts Institute of
+Technology en 1963, \'etudiant l'intelligence artificielle sous la tutelle
+de Marvin Minsky et John McCarthy. Il est un des concepteurs du premier
+syst\`eme {\sc LISP} et concepteur du syst\`eme {\sc CIMS PL/I},
+d\'evelopp\'e quand il \'etait professeur \`a l'universit\'e de New York.
+Plus r\'ecemment, il a con\c cu {\sc SPLASH}, un langage de programmation
+syst\`eme pour des hackers de logiciel. Paul r\'eside \`a Deerfield,
+Massachusetts, o\`u il \'ecrit, bidouille, fait de la randonn\'ee, chasse
+les champignons sauvages et \'ecoute de la musique classique.
+
+Kathryn A. Hargreaves a re\c cu son M.S. degree en informatique de
+l'universit\'e du Massachusetts, Boston, en ao\^ut 1989. Ses
+sp\'ecialit\'es sont la typographie num\'erique et la vision humaine. Elle
+a d\'evelopp\'e un ensemble de programmes pour produire une police
+num\'erique de haute qualit\'e et librement distribuable pour la Free
+Software Foundation et a \'egalement travaill\'e avec Robert~A. Morris en
+tant qu'Adjunct Research Associate. En 1986 elle a accompli le programme de
+r\'e-entr\'ee en informatique pour les femmes et les minorit\'es \`a
+l'universit\'e de Californie \`a Berkeley, o\`u elle a \'egalement
+travaill\'e dans le \TeX\ research group sous Michael Harrison. Elle a
+\'etudi\'e la conception de police de caract\`ere avec Don Adleta, Andr\'e
+G\"urtler, et Christian Mengelt \`a la Rhode Island School of Design.
+Typographe, elle a travaill\'e chez Headliners\slash Identicolor, \`a San
+Francisco, et chez Futur Studio, Los Angeles, deux soci\'et\'es
+typographiques majeures. Elle a obtenu \'egalement un M.F.A. en
+Peinture\slash Sculpture\slash Art Graphiques de l'universit\'e de
+Californie \`a Los Angeles. Kathy peint des aquarelles, con\c coit des
+polices, joue du piano et lit la critique de film f\'eministe.
+
+Comme Kathy, Karl Berry a re\c cu son M.S. degree en informatique \`a
+l'universit\'e du Massachusetts, Boston, en ao\^ut 1989. Il a \'egalement
+travaill\'e pour la Free Software Foundation, a fait de la recherche avec
+Morris et a \'etudi\'e avec Adleta, G\"urtler, et Mengelt. Il avait
+commenc\'e \`a travailler avec \TeX\ depuis 1983 et a install\'e et a
+maintenu le syst\`eme \TeX\ dans un certain nombre d'universit\'es. Il
+\'etait le mainteneur du syst\`eme Web2c d\'evelopp\'e par Tim Morgan
+pendant un certain nombre d'ann\'ees, parmi d'autres projets \TeX. Il est
+devenu pr\'esident du \TeX\ Users Group en 2003.
+\vfill\eject
+\noheadlinetrue\pagebreak
+
+
+% Colophon.
+%
+\backsinkage
+\leftline{\sectionfonts Colophon}
+\vskip\belowsectionskip
+
+%\noindent
+Ce livre a \'et\'e compos\'e en utilisant \TeX\ (naturellement),
+d\'evelopp\'e par Donald~E. Knuth. Le texte principal est compos\'e en
+Computer Modern, \'egalement con\c cu par Knuth. Les en-t\^etes du livre
+original ont \'et\'e compos\'ees en Zapf Humanist (la version Bitstream
+d'Optima), con\c cu par Hermann Zapf.
+
+Le papier \'etait du Amherst Ultra Matte 45 livres. L'impression et la
+reliure ont \'et\'e faits par Arcadia Graphics-Halliday. La sortie de
+photocomposeuse a \'et\'e produite \`a type 2000,~Inc., \`a Mill Valley,
+Californie. Les preuves ont \'et\'e faites sur une Apple LaserWriter plus
+et sur une Hewlett Packard LaserJet~II\null.
+
+Les r\'ef\'erences crois\'ees, l'indexage et la table des mati\`eres ont
+\'et\'e faits m\'ecaniquement, en utilisant les macros de la
+\chapterref{eplain} ainsi que des macros additionnelles \'ecrites
+sp\'ecialement pour ce livre. La production de l'index a \'et\'e
+r\'ealis\'ee par un programme additionnel \'ecrit en Icon.
+
+
+\noheadlinetrue
+\iftrue
+ \pagebreak
+ \printconceptpage
+\fi
+
+\byebye
+
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/fbook.pdf b/Master/texmf-dist/doc/plain/impatient-fr/fbook.pdf
new file mode 100644
index 00000000000..e9727146f6a
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/fbook.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/fbook.tex b/Master/texmf-dist/doc/plain/impatient-fr/fbook.tex
new file mode 100644
index 00000000000..0a1d2ac8821
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/fbook.tex
@@ -0,0 +1,50 @@
+% 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.
+% Top-level control.
+%
+% commentez la ligne suivante (\language=1) pour une compilation avec tex ou pdftex
+% elle n'est utilisée qu'avec bplain (ou pdfbplain)
+\language=1
+\input fmacros
+% Here we override part of the configuration
+% since we're doing a full run.
+\rewritetocfiletrue % always do a table of contents
+\xrefwarningtrue
+\completebooktrue
+\edgetabsfalse
+\input ffrontm
+% (not for web) \edgetabstrue
+\settabdepth{\bigtab}
+\input fusebook
+\input fusingtex
+\input fexamples
+\nextedgetab
+\input fconcept
+\nextedgetab
+\settabdepth{\smalltab}
+\input fparas
+\nextedgetab
+\input fpages
+\nextedgetab
+\input fmodes
+\nextedgetab
+\input fmath
+\nextedgetab
+\input fgenops
+\nextedgetab
+\settabdepth{\bigtab}
+\input ftips
+\input ferrors
+\input fusermacs
+\nextedgetab
+\input fcapsule
+\nextedgetab
+\backmatter
+\input fdl
+\input findex
+\edgetabsfalse
+\input fbackm
+
+\bye
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/fcapsule.tex b/Master/texmf-dist/doc/plain/impatient-fr/fcapsule.tex
new file mode 100644
index 00000000000..dcea6a39247
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/fcapsule.tex
@@ -0,0 +1,1123 @@
+% 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{Sommaire \linebreak des commandes}
+
+\chapterdef{capsule}
+
+Cette section contient des descriptions sur une ligne des commandes primitives de\TeX\
+et des commandes \TeX\ d\'efinies dans \plainTeX. Cela inclut les s\'equences de
+contr\^ole et les caract\`eres
+sp\'eciaux.
+Nous avons omis les commandes qui ne sont qu'\`a l'usage interne de la d\'efinition
+\plainTeX\ (\knuth{annexe~B}{}).
+Notez que les caract\`eres ordinaires
+comme `|a|' ou `|6|' sont aussi des commandes, et m\^eme les plus communes
+\seeconcept{caract\`ere}.
+
+Pour rendre la desciption la plus br\`eve possible, nous avons adopt\'e
+certaines conventions~:
+
+\ulist
+
+\li Un ast\'erisque devant une commande indique que la commande est une primitive,
+^^{primitive//commande} c'est-\`a-dire, construite dans le programme \TeX\
+\seeconcept{primitive}.
+
+\li Les mots ``musique'', ``ponctuation'', ``fonction'',
+``symbole'', ``relation'', ``d\'elimiteur'' ou ``op\'erateur'' dans une description de
+commande impliquent que la commande n'est l\'egale qu'en mode math\'ema\-tique.
+
+\li Le verbe ``afficher'' s'applique \`a l'information que \TeX\ envoit au ^{\logfile},
+sauf indication contraire. Si |\tracingonline| est positif, \TeX\ envoit \'egalement
+cette information sur le terminal. Nous utilisons le mot ``affichage'' pour nous
+r\'ef\'erer aux affichages math\'ema\-tiques (voir \xref{math\'ematique affich\'ee}),
+c'est-\`a-dire, \`a ce qui se trouve entre des |$$|.
+
+\li La phrase ``produit $x$'' indique que la commande composera
+$x$ et mettra le r\'esultat dans une bo\^\i te.
+Nous omettons parfois ``produit'' quand l'omission ne peut pas porter \`a
+confusion. Par exemple, nous d\'ecrivons |\alpha| comme ``lettre Grecque
+math\'ematique $\alpha$'' et non ``produit la lettre grecque math\'ematique $\alpha$''.
+\margin{Remove explanations of ``space'' and ``glue''}
+
+\endulist
+
+\begincapsum
+
+{\catcode `@ = \letter
+\caplineout {\\\visiblespace} {espace inter mot}*{\@space}}%
+ {\catcode `\ =\other\ctsidxref{ }}
+\capcs ! {espace fin n\'egatif en math\'ematique}{}{\@shriek}
+\capcs " {accent tr\'ema en texte, comme dans \"o}{}{\@quote}
+\capactwo # {introduit un param\`etre de macro ou indique o\`u le texte
+source va dans un pr\'eambule d'alignement}{}{@msharp:@asharp}
+\capcs # {produit le caract\`ere \# de la police courante}{}{\@pound}
+\capac $ {commence ou finit une formule math\'ematique}{}{mathform}
+\capcs $ {produit le caract\`ere \$ de la police courante}{}{\@bucks}
+\capac % {commence un commentaire}*{commentaires}
+\capcs % {produit le caract\`ere \% de la police courante}{}{\@percent}
+\capac & {s\'epare les mod\`eles et les entr\'ees dans un alignement}{}{@and}
+\capcs & {produit le caract\`ere \& de la police courante}{}{\@and}
+\capac ' {symbole prime en math\'ematique, comme dans $p'$}{}{@prime}
+\capcs ' {accent aigu en texte, comme dans \'e}{}{\@prime}
+\capcs * {symbole multiplication qui autorise une coupure de ligne}{}{\@star}
+\capcs + {d\'ebut d'une ligne tabul\'ee}{}{\@plus}
+\capcs , {espace fin en math\'ematique}{}{\@comma}
+\capcs - {sp\'ecifie un point de c\'esure l\'egal}*{\@minus}
+\capcs . {accent point en texte, comme dans \.n}{}{\@dot}
+\capcs / {correction italique pour le caract\`ere pr\'ec\'edent}*{\@slash}
+\capcs ; {espace \'epaissi en math\'ematique}{}{\@semi}
+\capcs = {accent macron en texte, comme dans \=r}{}{\@equal}
+\capac \ {d\'ebute une s\'equence de contr\^ole}*{@backslash}
+\capcs > {espace moyen en math\'ematique}{}{\@greater}
+\capac ^ {produit une sous-formule sp\'ecifi\'ee en exposant}{}{@hat}
+\capcs ^ {accent circonflexe en texte, comme dans \^o}{}{\@hat}
+{\catcode `@ = \letter
+\caplineout {\twocarets L}{\'equivalent \`a la primitive |\\par|}
+ {}{\@par}\ttidxref{^^L}
+\caplineout {\twocarets M}{une fin de ligne}*{@newline}\ttidxref{^^M}
+}%
+\capac _ {produit une sous-formule sp\'ecifi\'ee en indice}{}{@underscore}
+\capcs _ {soulignement~: \_}{}{\@underscore}
+%x \capac ` {in a \<number> context, \ascii\ code for character that follows}*{@lquote}
+\capcs ` {accent grave en texte, comme dans \`e}{}{\@lquote}
+\capac { {d\'ebute un groupe}{}{@lbrace}
+\capcs { {d\'elimiteur accolade ouvrante en math\'ematique~ $\{$}{}{\@lbrace}
+\capcs | {lignes parall\`eles en math\'ematique~: $\Vert$}{}{\@bar}
+\capac } {fin d'un groupe}{}{@rbrace}
+\capcs } {d\'elimiteur accolade fermante en math\'ematique~: $\}$}{}{\@rbrace}
+\capac ~ {espace inter-mot sur lequel une ligne ne sera pas coup\'ee}{}{@not}
+\capcs ~ {accent tilde en texte, comme dans \~a}{}{\@not}
+\capcs aa {lettre scandinave~: \aa}{}{}
+\capcs AA {lettre scandinave~: \AA}{}{}
+\capcs above {produit une fraction avec une barre d'\'epaisseur sp\'ecifi\'ee}*{}
+\capcs abovedisplayshortskip {ressort que \TeX\ ins\'ere avant un affichage quand la
+ ligne pr\'ec\'edente d\'epasse l'indentation d'affichage, par
+ d\'efaut 0\pt\ plus 3\pt}*{}
+\capcs abovedisplayskip {ressort que \TeX\ ins\'ere avant un affichage quand la
+ ligne pr\'ec\'edente ne d\'epasse pas l'indentation d'affichage, par default 12\pt\
+ plus 3\pt\ minus 9\pt}*{}
+\capcs abovewithdelims {produit une fraction avec une barre d'\'epaisseur sp\'ecifi\'ee
+ et entour\'ee des d\'elimiteurs sp\'ecifi\'es}*{}
+\capcs accent {met l'accent sp\'ecifi\'e sur le caract\`ere suivant}*{}
+\capcs active {code de cat\'egorie pour des caract\`eres actifs, c'est-\`a-dire, le nombre $13$}{}{}
+\capcs acute {accent aigu en math\'ematique, comme dans $\acute x$}{}{}
+\capcs adjdemerits {d\'em\'erites additionnels pour une coupure de ligne qui seront mises dans
+ des lignes adjacentes avec un espacement de mot incompatible, par d\'efaut~10000}*{}
+\capcs advance {ajoute un nombre \`a un registre |\\count|}*{}
+\capcs advancepageno {si |\\pageno| est positif, ajoute un~;
+ s'il est n\'egatif, soustrait un}{}{}
+\capcs ae {ligature \ae}{}{}
+\capcs AE {ligature \AE}{}{}
+\capcs afterassignment {attend, pour d\'evelopper le token suivant, que
+ l'assignement d'apr\`es soit effectu\'e}*{}
+\capcs aftergroup {attend, pour d\'evelopper le token suivant, la fin
+ du groupe courant}*{}
+\capcs aleph {lettre h\'ebra\^\i que seule en math\'ematique~: $\aleph$}{}{}
+\capcstwo allowbreak {fait |\\penalty0|, c'est-\`a-dire, autorise une coupure de ligne ou
+ de page l\`a o\`u elle ne devrait pas \^etre}{}{hallowbreak:vallowbreak}
+\capcs alpha {lettre math\'ematique grecque $\alpha$}{}{}
+\capcs amalg {op\'erateur d'amalgamation~: $\amalg$}{}{}
+\capcs angle {symbole d'angle~: $\angle$}{}{}
+\capcs approx {relation d'approximation~: $\approx$}{}{}
+\capcs arccos {fonction arc cosinus~: $\arccos$}{}{}
+\capcs arcsin {fonction arc sinus~: $\arcsin$}{}{}
+\capcs arctan {fonction arc tangente~: $\arctan$}{}{}
+\capcs arg {fonction argument (phase)~: $\arg$}{}{}
+\capcs arrowvert {partie verticale d'une double fl\`eche extensible}{}{}
+\capcs Arrowvert {partie verticale d'une fl\`eche simple extensible}{}{}
+\capcs ast {op\'erateur ast\'erisque~: $\ast$}{}{}
+\capcs asymp {relation asymptote~: $\asymp$}{}{}
+\capcs atop {produit une fraction sans barre de fraction}*{}
+\capcs atopwithdelims {produit une fraction sans barre de fraction et
+ entour\'ee des d\'elimiteurs sp\'ecifi\'es}*{}
+\capcs b {accent barre du dessous en math\'ematique, comme dans $\b x$}{}{}
+\capcs backslash {symbole antislash~: $\backslash$}{}{}
+\capcs badness {la m\'ediocrit\'e du ressort mis dans la derni\`ere bo\^\i te
+ fabriqu\'ee}*{}
+\capcs bar {accent barre en math\'ematique, comme dans $\bar x$}{}{}
+\capcs baselineskip {ressort pour la distance verticale normale entre une ligne de base
+ et la suivante, par d\'efaut 12\pt}*{}
+\capcs batchmode {ne s'arr\^ete pas sur les erreurs et n'\'ecrit rien sur le terminal}*{}
+\capcs begingroup {d\'ebute un groupe termin\'e par |\\endgroup|}*{}
+\capcs beginsection {d\'ebute une subdivision majeure d'un document}{}%
+ {\@beginsection}
+\capcs belowdisplayshortskip {ressort que \TeX\ ins\`ere apr\`es un affichage quand la
+ ligne pr\'ec\'edente d\'epasse l'indentation de l'affichage,
+ par d\'efaut 7\pt\ plus 0.3\pt\ minus 4\pt}*{}
+\capcs belowdisplayskip {ressort que \TeX\ ins\`ere apr\`es un affichage quand la
+ ligne pr\'ec\'edente ne d\'epasse pas l'indentation de l'affichage,
+ par d\'efaut 12\pt\ plus 3\pt\ minus 9\pt}*{}
+\capcs beta {lettre grecque math\'ematique $\beta$}{}{}
+\capcs bf {utilise le gras, c'est-\`a-dire, fait |\\tenbf\\fam=\\bffam|}{}{}
+\capcs bffam {famille grasse en math\'ematique}{}{}
+\capcs bgroup {caract\`ere de d\'ebut de groupe implicite}{}{}
+\capcs big {rend le d\'elimiteur sp\'ecifi\'e plus grand qu'\`a l'ordinaire, mais
+ encore assez petit pour du texte}{}{}
+\capcs Big {rend le d\'elimiteur sp\'ecifi\'e haut de 11.5\pt}{}{}
+\capcs bigbreak {indique une coupure de page d\'esirable avec |\\penalty-200|
+ et produit un ressort |\\bigskipamount|}{}{}
+\capcs bigcap {grand op\'erateur cap (non, cela ne produit pas une grande
+ lettre capitale~!)~: $\bigcap$}{}{}
+\capcs bigcirc {grand op\'erateur cercle~: $\bigcirc$}{}{}
+\capcs bigcup {grand op\'erateur coupe~: $\bigcup$}{}{}
+\capcs bigg {rend le d\'elimiteur sp\'ecifi\'e haut de 14.5\pt}{}{}
+\capcs Bigg {rend le d\'elimiteur sp\'ecifi\'e haut de 17.5\pt}{}{}
+\capcs biggl {taille comme |\\bigg|, mais espac\'e comme une ouverture}{}{}
+\capcs Biggl {taille comme |\\Bigg|, mais espac\'e comme une ouverture}{}{}
+\capcs biggm {taille comme |\\bigg|, mais espac\'e comme une relation}{}{}
+\capcs Biggm {taille comme |\\Bigg|, mais espac\'e comme une relation}{}{}
+\capcs biggr {taille comme |\\bigg|, mais espac\'e comme une fermeture}{}{}
+\capcs Biggr {taille comme |\\Bigg|, mais espac\'e comme une fermeture}{}{}
+\capcs bigl {taille comme |\\big|, mais espac\'e comme une ouverture}{}{}
+\capcs Bigl {taille comme |\\Big|, mais espac\'e comme une ouverture}{}{}
+\capcs bigm {taille comme |\\big|, mais espac\'e comme une relation}{}{}
+\capcs Bigm {taille comme |\\Big|, mais espac\'e comme une relation}{}{}
+\capcs bigodot {grand op\'erateur cercle point\'e~: $\bigodot$}{}{}
+\capcs bigoplus {grand op\'erateur cercle plus~: $\bigoplus$}{}{}
+\capcs bigotimes {grand op\'erateur cercle multipli\'e~: $\bigotimes$}{}{}
+\capcs bigr {taille comme |\\big|, mais espac\'e comme une fermeture}{}{}
+\capcs Bigr {taille comme |\\Big|, mais espac\'e comme une fermeture}{}{}
+\capcs bigskip {produit un ressort |\\bigskipamount|}{}{}
+\capcs bigskipamount {ressort pour une grand saut vertical, par d\'efaut 12\pt\
+ plus 4\pt\ minus 4\pt}{}{}
+\capcs bigsqcup {grand op\'erateur en coupe carr\'e~: $\bigsqcup$}{}{}
+\capcs bigtriangledown {op\'erateur en triangle pointant vers le bas~:
+ $\bigtriangledown$}{}{}
+\capcs bigtriangleup {op\'erateur en triangle pointant vers le haut~: $\bigtriangleup$}{}{}
+\capcs biguplus {grand op\'erateur en coupe avec plus~: $\biguplus$}{}{}
+\capcs bigvee {grand op\'erateur logique ``ou''~: $\bigvee$}{}{}
+\capcs bigwedge {grand op\'erateur logique ``et''~: $\bigwedge$}{}{}
+\capcs binoppenalty {p\'enalit\'e suppl\'ementaire pour une coupure apr\`es un op\'erateur
+ math\'ematique binaire, par d\'efaut~700}*{}
+\capcs bmod {op\'erateur modulus, comme dans $n \bmod 2$}{}{}
+\capcs bordermatrix {produit une matrice avec des labels de rang\'ees et de colonnes}{}{}
+\capcs bot {symbole du bas d'un treillis ~: $\bot$}{}{}
+\capcs botmark {le dernier \'el\'ement marqu\'e de la page qui vient d'\^etre mis en bo\^\i te}*{}
+\capcs bowtie {relation en n\oe ud papillon~: $\bowtie$}{}{}
+\capcs box {affiche la bo\^\i te d'un registre de bo\^\i te sp\'ecifi\'e
+ dans la liste courante, et vide le registre}*{}
+\capcs boxmaxdepth {profondeur maximale des vbox, par d\'efaut |\\maxdimen|}*{}
+\capcs brace {|\char36 n\\brace k\char36| produit
+ une notation entre accolade~: $n \brace k$}{}{}
+\capcs bracevert {morceau vertival d'une grande accolade extensible }{}{}
+\capcs brack {|\char36 n\\brack k\char36| produit une notation entre crochets~: $n \brack k$}{}{}
+\capcstwo break {fait |\\penalty-10000|, c'est-\`a-dire., force une coupure de ligne
+ ou de page}{}{hbreak:vbreak}
+\capcs breve {accent bref en math\'ematique, comme dans $\breve x$}{}{}
+\capcs brokenpenalty {p\'enalit\'e pour une coupure de ligne sur un \'el\'ement discr\'etionnaire, par
+ d\'efaut~100}*{}
+\capcs buildrel {produit une formule sp\'ecifi\'ee sur la relation sp\'ecifi\'e}{}{}
+\capcs bullet {operateur bullet ~: $\bullet$}{}{}
+\capcs bye {|\\vfill| la derni\`ere page avec de l'espace blanc, la |\\supereject|,
+ et |\\end| l'ex\'ecution}{}{\@bye}
+\capcs c {accent c\'edille en texte, comme dans \c c}{}{}
+\capcs cal {utilise une police calligraphique pour des lettres capitales en math\'ematique,
+ comme dans $\cal XYZ$}{}{}
+\capcs cap {op\'erateur cap~: $\cap$}{}{}
+\capcs cases {produit des cas en math\'ematique, comme dans $\bigl\{{\cdots\atop\cdots}$}{}{}
+\capcs catcode {le code de cat\'egorie d'un caract\`ere sp\'ecifi\'e}*{}
+\capcs cdot {op\'erateur point centr\'e~: $\cdot$}{}{}
+\capcs cdotp {ponctuation point centr\'e~: $\cdotp$}{}{}
+\capcs cdots {points centr\'es en math\'ematique~: $\cdots$}{}{}
+\capcs centerline {produit une ligne avec son texte centr\'e}{}{}
+\capcs char {produit le caract\`ere de la police courante avec le code
+ sp\'ecifi\'e}*{}
+\capcs chardef {d\'efinit une s\'equence de contr\^ole sp\'ecifi\'ee comme \'etant un code de
+ caract\`ere, un nombre entre 0 et $255$}*{}
+\capcs check {accent tch\`eque en math\'ematique, comme dans $\check x$}{}{}
+\capcs chi {lettre grecque math\'ematique $\chi$}{}{}
+\capcs choose {|\char36 n\\choose k\char36| produit une notation combinatoire~:
+ $n \choose k$}{}{}
+\capcs circ {op\'eration cercle~: $\circ$}{}{}
+\capcs cleaders {produit une r\`eglure avec la moiti\'e de l'espace restant avant
+ la premi\`ere bo\^\i te et l'autre moiti\'e apr\`es la derni\`ere}*{}
+\capcs cleartabs {efface toutes les tabulations pour des alignements tabul\'es}{}{}
+\capcs closein {ferme un flot d'entr\'ee sp\'ecifi\'e}*{}
+\capcs closeout {ferme un flot de sortie sp\'ecifi\'e}*{}
+\capcs clubpenalty {p\'enalit\'e additionnelle pour une ligne seule restante avant
+ une coupure de page, par d\'efaut~150}*{}
+\capcs clubsuit {symbole tr\`efle~: $\clubsuit$}{}{}
+\capcs colon {symbole : en math\'ematique~: $:$}{}{}
+\capcs cong {relation congruence~: $\cong$}{}{}
+\capcs coprod {op\'erateur co-produit~: $\coprod$}{}{}
+\capcs copy {comme |\\box|, mais n'efface pas le registre}*{}
+\capcs copyright {marque de copyright~: \copyright}{}{}
+\capcs cos {fonction cosinus~: $\cos$}{}{}
+\capcs cosh {fonction cosinus hyperbolique~: $\cosh$}{}{}
+\capcs cot {fonction cotangente~: $\cot$}{}{}
+\capcs coth {fonction cotangente hyperbolique~: $\coth$}{}{}
+\capcs count {le registre entier sp\'ecifi\'e}*{}
+\capcs countdef {d\'efinit une s\'equence de contr\^ole sp\'ecifi\'ee comme \'etant un nombre
+ correspondant \`a un registre |\\count|}*{}
+\capcs cr {termine une rang\'ee (ou une colonne) dans un alignement}*{}
+\capcs crcr {ne fait rien si la derni\`ere commande \'etait |\\cr| ou |\\noalign|~;
+ autrement, \'equivalent \`a |\\cr|}*{}
+\capcs csc {fonction co-s\'ecante~: $\csc$}{}{}
+\capcs csname {d\'ebute un nom de s\'equence de contr\^ole devant \^etre termin\'e par |\\endcsname|}*{}
+\capcs cup {op\'erateur cup~: $\cup$}{}{}
+\capcs d {accent point en dessous en texte, comme dans \d r}{}{}
+\capcs dag {symbole dague en texte~: \dag}{}{}
+\capcs dagger {op\'erateur dague en math\'ematique~: $\dagger$}{}{}
+\capcs dashv {relation touren \`a droite~: $\dashv$}{}{}
+\capcs day {jour courant du mois, comme un nombre}*{}
+\capcs ddag {symbole double dague en texte~: \ddag}{}{}
+\capcs ddagger {op\'erateur double dague en math\'ematique~: $\ddagger$}{}{}
+\capcs ddot {accent deux points en math\'ematique~: $\ddot x$}{}{}
+\capcs ddots {points en diagonale en math\'ematique~: \smash{$\ddots$}}{}{}
+\capcs deadcycles {nombre d'initialisations d'|\\output| depuis le dernier
+ |\\shipout|}*{}
+\capcs def {d\'efini une s\'equence de contr\^ole comme \'etant une macro}*{}
+\capcs defaulthyphenchar {code du caract\`ere de c\'esure par d\'efaut}*{}
+\capcs defaultskewchar {code caract\`ere accent par d\'efaut }*{}
+\capcs deg {fonction degr\'e~: $\deg$}{}{}
+\capcs delcode {le code d\'elimiteur d'un caract\`ere sp\'ecifi\'e}*{}
+\capcs delimiter {produit un d\'elimiteur sp\'ecifi\'e}*{}
+\capcs delimiterfactor {1000 fois le ratio de la taille minimum d'un
+ d\'elimiteur par rapport \`a la taille qui recouvrirait compl\`etement la formule, par
+ d\'efaut~901}*{}
+\capcs delimitershortfall {diff\'erence minimum entre une hauteur de formule et
+ une hauteur de d\'elimiteur, par d\'efaut 5\pt}*{}
+\capcs delta {lettre grecque math\'ematique $\delta$}{}{}
+\capcs Delta {lettre grecque math\'ematique $\Delta$}{}{}
+\capcs det {fonction d\'eterminant~: $\det$}{}{}
+\capcs diamond {op\'erateur diamant~: $\diamond$}{}{}
+\capcs diamondsuit {symbole carr\'e~: $\diamondsuit$}{}{}
+\capcs dim {fonction dimension~: $\dim$}{}{}
+\capcs dimen {le registre de dimension sp\'ecifi\'e}*{}
+\capcs dimendef {d\'efinit une s\'equence de contr\^ole sp\'ecifi\'ee comme \'etant un nombre
+ correspondant \`a un registre |\\dimen|}*{}
+\capcs discretionary {sp\'ecifie trois textes, les deux premiers pour avant et
+ apr\`es une coupure de ligne, le troisi\`eme quand il n'y a pas de coupure de ligne}*{}
+\capcs displayindent {\TeX\ met ceci pour l'indentation d'un affichage}*{}
+\capcs displaylimits {place des limites sur et sous des op\'erateurs seulement en style
+ d'affichage}*{}
+\capcs displaylines {produit un affichage multi-lignes sp\'ecifi\'e avec chaque
+ ligne centr\'ee}{}{}
+\capcs displaystyle {utilise la taille displaystyle dans une formule}*{}
+\capcs displaywidowpenalty {p\'enalit\'e pour une ligne seule d\'ebutant une page
+ juste avant un affichage, par d\'efaut~50}*{}
+\capcs displaywidth {\TeX\ met ceci pour la largeur d'un affichage}*{}
+\capcs div {op\'erateur division~: $\div$}{}{}
+\capcs divide {divise un registre |\\count| sp\'ecifi\'e par un entier sp\'ecifi\'e}*{}
+\capcs dot {accent point en math\'ematique, comme dans $\dot x$}{}{}
+\capcs doteq {relation d'\'egalit\'e point\'ee~: $\doteq$}{}{}
+\capcs dotfill {remplit un espace horizontal d\'elimit\'e avec des points}{}{}
+\capcs dots {ellipse pour des suites~: $x_1$, \dots, $x_n$}{}{}
+\capcs doublehyphendemerits {d\'em\'erites pour deux lignes cons\'ecutives se terminant
+ par de c\'esures, par d\'efaut~10000}*{}
+\capcs downarrow {relation~: $\downarrow$}{}{}
+\capcs Downarrow {relation~: $\Downarrow$}{}{}
+\capcs downbracefill {remplit la hbox inclue avec une accolade vers le bas ~:
+ \hbox to 3.5em{\downbracefill}}{}{}
+\capcs dp {profondeur de la bo\^\i te d'un registre de bo\^\i te sp\'ecifi\'e}*{}
+\capcs dump {termine l'ex\'ecution et produit un fichier de format}*{}
+\capcs edef {d\'efinit une s\'equence de contr\^ole comme \'etant une macro,
+ d\'eveloppant imm\'ediatement le texte de remplacement}*{}
+\capcs egroup {caract\`ere de fin de groupe implicite}{}{}
+\capcs eject {termine le paragraphe courant et force une coupure de page,
+ en \'etirant la page courante}{}{}
+\capcs ell {lettre ``l'' manuscrite en math\'ematique~: $\ell$}{}{}
+\capcs else {cas faux ou par d\'efaut pour une condition}*{\@else}
+\capcs emergencystretch {\'etirement suppl\'ementaire ajout\'e \`a toute ligne si
+ |\\tol\-er\-ance| n'est pas satisfait}*{}
+\capcs empty {macro dont le d\'eveloppement ne fait rien}{}{}
+\capcs emptyset {symbole d'ensemble vide~: $\emptyset$}{}{}
+\capcs end {|\\output| la derni\`ere page et termine l'ex\'ecution}*{}
+\capcs endcsname {termine un nom de s\'equence de contr\^ole commenc\'e par
+ |\\csname|}*{}
+\capcs endgraf {\'equivalent \`a la primitive |\\par|}{}{}
+\capcs endgroup {termine un groupe d\'ebut\'e par |\\begingroup|}*{}
+\capcs endinput {termine l'entr\'ee du fichier courant}*{}
+\capcs endinsert {fin d'insertion}{}{}
+\capcs endline {\'equivalent \`a la primitive |\\cr|}{}{}
+\capcs endlinechar {caract\`ere que \TeX\ ins\`ere \`a la fin de chaque ligne
+ entr\'ee, par d\'efaut |\twocarets M|}*{}
+\capcs enskip {ressort horizontal de largeur \frac1/2\em}{}{}
+\capcs enspace {cr\'enage de \frac1/2\em}{}{}
+\capcs epsilon {lettre grecque math\'ematique $\epsilon$}{}{}
+\capcs eqalign {produit un affichage multi-lignes sp\'ecifi\'e dont les parties indiqu\'ees
+ sont align\'ees verticalement}{}{}
+\capcs eqalignno {produit un affichage multi-lignes sp\'ecifi\'e
+ avec des num\'eros d'\'equation dont les parties indiqu\'ees sont align\'ees verticalement}{}{}
+\capcs eqno {met un num\'ero d'\'equation sp\'ecifi\'e \`a droite d'un affichage}*{}
+\capcs equiv {relation d'\'equivalence~: $\equiv$}{}{}
+\capcs errhelp {liste de token dont le d\'eveloppement \TeX\ s'affiche quand l'utilisateur
+ demande de l'aide en r\'eponse \`a un |\\errmessage|}*{}
+\capcs errmessage {donne un message d'erreur sp\'ecifi\'e}*{}
+\capcs errorcontextlines {le nombre de lignes de contexte que \TeX\
+ affiche pour une erreur, par d\'efaut~5}*{}
+\capcs errorstopmode {stoppe pour une interaction sur des messages d'erreur}*{}
+\capcs escapechar {caract\`ere avec lequel \TeX\ pr\'ec\`ede les noms de s\'equence de contr\^ole
+ qui sont affich\'es}*{}
+\capcs eta {lettre grecque math\'ematique $\eta$}{}{}
+\capcs everycr {liste de token que \TeX\ d\'eveloppe apr\`es un |\\cr| ou un |\\crcr|
+ non suivi de |\\cr| ou de |\\noalign|}*{}
+\capcs everydisplay {liste de token que \TeX\ d\'eveloppe quand un affichage math\'ematique d\'ebute}*{}
+\capcs everyhbox {liste de token que \TeX\ d\'eveloppe quand une hbox d\'ebute}*{}
+\capcs everyjob {liste de token que \TeX\ d\'eveloppe quand une ex\'ecution d\'ebute}*{}
+\capcs everymath {liste de token que \TeX\ d\'eveloppe quand un texte en mode math\'ematique
+ d\'ebute}*{}
+\capcs everypar {liste de token que \TeX\ d\'eveloppe quand un paragraphe d\'ebute}*{}
+\capcs everyvbox {liste de token que \TeX\ d\'eveloppe quand une vbox d\'ebute}*{}
+\capcs exhyphenpenalty {p\'enalit\'e suppl\'ementaire pour une coupure de ligne apr\`es
+ une c\'esure explicite, par d\'efaut~50}*{}
+\capcs exists {symbole ``il existe''~: $\exists$}{}{}
+\capcs exp {fonction exponentielle~: $\exp$}{}{}
+\capcs expandafter {ne d\'eveloppe le token suivant qu'apr\`es d\'eveloppement du token
+ le suivant}*{}
+\capcs fam {famille de police que \TeX\ utilise pour des caract\`eres de classe 7
+ (c'est-\`a-dire, des variables) en mathi\'ematiques}*{}
+\capcs fi {termine une condition}*{\@fi}
+\capcs filbreak {force une coupure de page \`a moins que le texte contenant un autre |\\filbreak|
+ convienne aussi sur la page}{}{}
+\capcs finalhyphendemerits {p\'enalit\'e pour l'avant-derni\`ere ligne coup\'ee sur une
+ c\'esure, par d\'efaut~5000}*{}
+\capcs firstmark {premier \'el\'ement marqu\'e sur la page qui vient d'\^etre mise en bo\^\i te}*{}
+\capcs fivebf {utilise une police grasse en $5$ points, |cmbx5|}{}{}
+\capcs fivei {utilise une police math\'ematique italique en $5$ points, |cmmi5|}{}{}
+\capcs fiverm {utilise une police romaine en $5$ points, |cmr5|}{}{}
+\capcs fivesy {utilise une police de symbole en $5$ points, |cmsy5|}{}{}
+\capcs flat {symbole b\'emol en musique~: $\flat$}{}{}
+\capcs floatingpenalty {p\'enalit\'e pour des insertions qui sont s\'epar\'ees sur des
+ pages, par d\'efaut~0}*{}
+\capcs fmtname {nom du format courant}{}{}
+\capcs fmtversion {num\'ero de version du format courant}{}{}
+\capcs folio {produit |\\pageno| comme des caract\`eres~;
+ en chiffres romains s'il est n\'egatif}{}{}
+\capcs font {d\'efinit une s\'equence de contr\^ole sp\'ecifique pour s\'electionner une police}*{}
+\capcs fontdimen {un param\`etre sp\'ecifi\'e d'une police sp\'ecifi\'ee}*{}
+\capcs fontname {produit le nom de fichier d'une police sp\'ecifi\'ee en caract\`eres}*{}
+\capcs footline {liste de token qui produit une ligne en bas de chaque page}{}{}
+\capcs footnote {produit une note de pied de page sp\'ecifi\'ee
+ avec une marque de r\'ef\'erence sp\'ecifi\'ee}{}{}
+\capcs forall {symbole ``pour tout''~: $\forall$}{}{}
+\capcs frenchspacing {rend l'espacement inter-mot ind\'ependant de la ponctuation}{}{}
+\capcs frown {relation frown~: $\frown$}{}{}
+\capcs futurelet {assigne le troisi\`eme token suivant \`a une s\'equence de contr\^ole
+ sp\'ecifi\'ee, puis d\'eveloppe le deuxi\`eme token}*{}
+\capcs gamma {lettre grecque math\'ematique $\gamma$}{}{}
+\capcs Gamma {lettre grecque math\'ematique $\Gamma$}{}{}
+\capcs gcd {fonction plus grand d\'enominateur commun~: $\gcd$}{}{}
+\capcs gdef {\'equivalent \`a |\\global\\def|, c'est-\`a-dire, d\'efinit une macro globale}*{}
+\capcs ge {relation plus grand ou \'egal~: $\ge$}{}{}
+\capcs geq {\'equivalent \`a |\\ge|}{}{}
+\capcs gets {relation ''donne''~: $\gets$}{}{}
+\capcs gg {relation beaucoup plus grand que~: $\gg$}{}{}
+\capcs global {rend la d\'efinition suivante globale}*{}
+\capcs globaldefs {remplace le pr\'efixe|\\global| dans les assignements}*{}
+\capcs goodbreak {indique une coupure de page souhaitable avec |\\penalty-500|}{}{}
+\capcs grave {accent grave en math\'ematique, comme dans $\grave x$}{}{}
+\capcs H {accent tr\'ema hongrois en texte, comme dans \H o}{}{}
+\capcs halign {aligne du texte en colonnes}*{}
+\capcs hang {indente le paragraphe courant de |\\parindent|}{}{}
+\capcs hangafter {num\'ero de ligne d\'ebutant une indentation hanging}*{}
+\capcs hangindent {espace pour indentation hanging}*{}
+\capcs hat {accent circonflexe en math\'ematique, comme dans $\hat x$}{}{}
+\capcs hbadness {seuil de badness pour reporter une erreur "underfull or overfull
+ hboxes", par d\'efaut 1000}*{}
+\capcs hbar {symbole math\'ematique~: $\hbar$}{}{}
+\capcs hbox {produit une hbox sp\'ecifi\'ee}*{}
+\capcs headline {liste de token qui produit la ligne en haut
+ de chaque page}{}{}
+\capcs heartsuit {symbole c\oe ur~: $\heartsuit$}{}{}
+\capcs hfil {produit un ressort horizontal infiniment \'etirable}*{}
+\capcs hfill {produit un ressort horizontal encore plus infiniment \'etirable
+ que celui produit par |\\hfil|}*{}
+\capcs hfilneg {produit un ressort horizontal n\'egatif infiniment \'etirable}*{}
+\capcs hfuzz {seuil pour reporter overfull hboxes, par d\'efaut
+ 0.1\pt}*{}
+\capcs hglue {produit un ressort horizontal qui ne disparait pas sur des
+ coupure de ligne}{}{}
+\capcs hidewidth {ignore la largeur d'une entr\'ee d'un alignement, pour qu'il
+ l'\'etende au dehors de sa boite dans la direction de |\\hidewidth|}{}{}
+\capcs hoffset {offset horizontal relatif d'un pouce par rapport au bord gauche du papier}*{}
+\capcs holdinginserts {si positif, n'enl\`eve pas d'insertion de la
+ page courante}*{}
+\capcs hom {fontion homologie~: $\hom$}{}{}
+\capcs hookleftarrow {relation~: $\hookleftarrow$}{}{}
+\capcs hookrightarrow {relation~: $\hookrightarrow$}{}{}
+\capcs hphantom {produit une formule invisible de hauteur et largeur z\'ero mais
+ de largeur naturelle}{}{}
+\capcs hrule {produit un filet horizontal~; l\'egale seulement en mode vertical}*{}
+\capcs hrulefill {rempli un espace d\'elimit\'e d'un filet horizontal}{}{}
+\capcs hsize {longueur de ligne, par d\'efaut 6.5\thinspace in}*{}
+\capcs hskip {produit un ressort horizontal sp\'ecifi\'e}*{}
+\capcs hss {produit un ressort horizontal qui est infiniment \'etirable et
+ infiniment r\'etr\'ecissable}*{}
+\capcs ht {la hauteur de la bo\^\i te d'un registre de bo\^\i te sp\'ecifi\'e}*{}
+\capcs hyphenation {ajoute des mots sp\'ecifi\'es au dictionnaire
+ d'exception de c\'esure}*{}
+\capcs hyphenchar {le caract\`ere de c\'esure d'une police sp\'ecifi\'ee}*{}
+\capcs hyphenpenalty {p\'enalit\'e suppl\'ementaire pour une coupure de ligne sur une c\'esure, par
+ d\'efaut~50}*{}
+\capcs i {lettre `\i' sans point \`a utiliser avec des accents}{}{}
+\capcs ialign {d\'ebute un |\\halign| avec le ressort |\\tabskip| \`a z\'ero et
+ |\\everycr| vide}{}{}
+\capcs if {teste si deux tokens sp\'ecifi\'es ont le m\^eme code de caract\`ere}*{\@if}
+\capcs ifcase {d\'eveloppe un cas $n$ pour un valeur $n$ sp\'ecifi\'ee}*{\@ifcase}
+\capcs ifcat {teste si deux tokens sp\'ecifi\'es ont le m\^eme code de
+ cat\'egorie}*{\@ifcat}
+\capcs ifdim {teste une relation sp\'ecifi\'ee entre deux dimensions }*{\@ifdim}
+\capcs ifeof {teste la fin d'un fichier sp\'ecifi\'e}*{\@ifeof}
+\capcs iff {relation si et seulement si~: $\iff$}{}{}
+\capcs iffalse {test qui est toujours faux}*{\@iffalse}
+\capcs ifhbox {teste si un registre de bo\^\i te sp\'ecifi\'e contient une hbox}*{\@ifhbox}
+\capcs ifhmode {teste si \TeX\ est dans un mode horizontal}*{\@ifhmode}
+\capcs ifinner {teste si \TeX\ est dans un mode interne}*{\@ifinner}
+\capcs ifmmode {teste si \TeX\ est dans un mode math\'ematique}*{\@ifmmode}
+\capcs ifnum {teste une relation sp\'ecifi\'ee entre deux nombres}*{\@ifnum}
+\capcs ifodd {teste si un nombre sp\'ecifi\'e est impair}*{\@ifodd}
+\capcs iftrue {test qui est toujours vrai}*{\@iftrue}
+\capcs ifvbox {teste si un registre de bo\^\i te sp\'ecifi\'e contient une vbox}*{\@ifvbox}
+\capcs ifvmode {teste si \TeX\ est dans un mode vertical}*{\@ifvmode}
+\capcs ifvoid {teste si un registre de bo\^\i te sp\'ecifi\'e est vide}*{\@ifvoid}
+\capcs ifx {teste si deux tokens sont les m\^emes, ou si
+ deux macros ont les m\^emes d\'efinitions finales}*{\@ifx}
+\capcs ignorespaces {ignore tous les tokens espaces suivants}*{}
+\capcs Im {symbole d'une partie imaginaire d'un complexe~: $\Im$}{}{}
+\capcs imath {lettre `$\imath$' sans point \`a utiliser avec des accents math\'ematiques}{}{}
+\capcs immediate {effectue l'op\'eration de fichier sp\'ecifi\'ee sans d\'elai}*{}
+\capcs in {relation ``appartient \`a''~: $\in$}{}{}
+\capcs indent {produit une bo\^\i te vide de largeur |\\parindent| et entre
+ en mode horizontal}*{}
+\capcs inf {fonction inf\'erieur~: $\inf$}{}{}
+\capcs infty {symbole infini~: $\infty$}{}{}
+\capcs input {commence \`a lire \`a partir d'un fichier sp\'ecifi\'e}*{}
+\capcs inputlineno {le num\'ero de ligne courante du fichier d'entr\'ee courant}*{}
+\capcs insert {produit une insertion d'une classe sp\'ecifi\'ee}*{}
+\capcs insertpenalties {somme des p\'enalit\'es des insertions}*{}
+\capcs int {symbole int\'egrale~: $\int$}{}{}
+\capcs interlinepenalty {p\'enalit\'e suppl\'ementaire pour une coupure de page
+ entre des lignes d'un paragraphe, par d\'efaut~0}*{}
+\capcs iota {lettre grecque math\'ematique $\iota$}{}{}
+\capcs it {utilise des italiques, c'est-\`a-dire, fait |\\tenit\\fam=\\itfam|}{}{}
+\capcs item {d\'ebute un paragraphe avec une indentation accroch\'ee de |\\parindent|
+ et pr\'ec\'ed\'ee d'un label sp\'ecifi\'e}{}{}
+\capcs itemitem {comme |\\item|, mais avec une indentation de |2\\parindent|}{}{}
+\capcs itfam {famille italique en math\'ematique}{}{}
+\capcs j {lettre `\j' sans point, pour utiliser avec des accents}{}{}
+\capcs jmath {lettre `$\jmath$' sans point, pour utiliser avec des accents math\'ematiques}{}{}
+\capcs jobname {nom de base du fichier par lequel \TeX\ a \'et\'e appel\'e}*{}
+\capcs jot {unit\'e de mesure for opening up displays}{}{}
+\capcs kappa {lettre grecque math\'ematique $\kappa$}{}{}
+\capcs ker {fonction kern~: $\ker$}{}{}
+\capcs kern {produit un montant d'espace sp\'ecifi\'e sur lequel
+ une coupure n'est pas autoris\'ee}*{}
+\capcs l {lettre polonaise~: \l}{}{}
+\capcs L {lettre polonaise~: \L}{}{}
+\capcs lambda {lettre grecque math\'ematique $\lambda$}{}{}
+\capcs Lambda {lettre grecque math\'ematique $\Lambda$}{}{}
+\capcs land {op\'erateur logique ``et''~: $\land$}{}{}
+\capcs langle {left angle delimiter~: $\langle$}{}{}
+\capcs language {le jeu de patrons de c\'esure courant}*{}
+\capcs lastbox {retrouve et enl\`eve le dernier \'el\'ement de la liste courante, si c'est une
+ bo\^\i te}*{}
+\capcs lastkern {retrouve le dernier \'el\'ement de la liste courante, si c'est un
+ cr\'enage}*{}
+\capcs lastpenalty {enl`eve le dernier item de la liste courante, si c'est une p/'enalit\'e }*{}
+\capcs lastskip {enl\`eve le dernier item de la liste courante, si c'est une glue}*{}
+\capcs lbrace {d\'elimiteur accolade gauche~: $\lbrace$}{}{}
+\capcs lbrack {d\'elimiteur crochet gauche~: $\lbrack$}{}{}
+\capcs lccode {le code de caract\`ere pour la forme minuscule d'une lettre}*{}
+\capcs lceil {d\'elimiteur plafond gauche~: $\lceil$}{}{}
+\capcs ldotp {point sur la ligne de base comme ponctuation~: $\ldotp$}{}{}
+\capcs ldots {points sur la ligne de base en math\'ematique~: $\ldots$}{}{}
+\capcs le {relation inf\'erieur ou \'egal~: $\le$}{}{}
+\capcs leaders {remplit un espace horizontal ou vertical sp\'ecifi\'e en r\'ep\'etant un
+ filet ou une bo\^\i te sp\'ecifi\'ee}*{}
+\capcs left {produit le d\'elimiteur sp\'ecifi\'e, en l'agrandissant pour couvrir la
+ sous-formule suivante se finissant par |\\right|}*{}
+\capcs leftarrow {relation~: $\leftarrow$}{}{}
+\capcs Leftarrow {relation~: $\Leftarrow$}{}{}
+\capcs leftarrowfill {rempli la hbox contenante avec un |\\leftarrow|~:
+ \hbox to 3.5em{\leftarrowfill}}{}{}
+\capcs leftharpoondown {relation~: $\leftharpoondown$}{}{}
+\capcs leftharpoonup {relation~: $\leftharpoonup$}{}{}
+\capcs lefthyphenmin {taille du plus petit fragment de mot que \TeX\ autorise
+ avant une c\'esure en d\'ebut d'un mot, par d\'efaut~2}*{}
+\capcs leftline {produit une ligne avec son texte pouss\'e vers la marge de gauche}{}{}
+\capcs leftrightarrow {relation~: $\leftrightarrow$}{}{}
+\capcs Leftrightarrow {relation~: $\Leftrightarrow$}{}{}
+\capcs leftskip {ressort que \TeX\ ins\`ere \`a gauche de chaque ligne}*{}
+\capcs leq {\'equivalent \`a |\\le|}{}{}
+\capcs leqalignno {produit un affichage multi-ligne sp\'ecifi\'e avec des num\'eros d'\'equation
+ \`a gauche dont les parties indiqu\'ees sont align\'ees verticalement}{}{}
+\capcs leqno {d\'epose un num\'ero d'\'equation sp\'ecifi\'e \`a gauche d'un affichage}*{}
+\capcs let {d\'efinit une s\'equence de contr\^ole comme \'etant le token suivant}*{}
+\capcs lfloor {d\'elimiteur plancher gauche~: $\lfloor$}{}{}
+\capcs lg {fonction logarithme~: $\lg$}{}{}
+\capcs lgroup {d\'elimiteur groupe gauche (la plus petite taille est montr\'ee ici)~:
+ $\Big\lgroup$}{}{}
+\capcs lim {fonction limite~: $\lim$}{}{}
+\capcs liminf {fonction limite inf\'erieur~: $\liminf$}{}{}
+\capcs limits {place un exposant sur et un indice sous un
+ grand op\'erateur}*{}
+\capcs limsup {fonction limite sup\'erieure~: $\limsup$}{}{}
+\capcs line {produit une ligne de caract\`eres justifi\'ee}{}{}
+\capcs linepenalty {p\'enalit\'e pour coupure de ligne ajout\'ee \`a chaque ligne,
+ par d\'efaut~10}*{}
+\capcs lineskip {ressort vertical d'une ligne de base \`a la suivante si les
+ lignes sont plus proche l'une de l'autre que |\\lineskiplimit|, par d\'efaut 1\pt}*{}
+\capcs lineskiplimit {seuil pour utiliser |\\lineskip| au lieu de |\\base\-line\-skip|, par d\'efaut 0\pt}*{}
+\capcs ll {relation beaucoup moins que~: $\ll$}{}{}
+\capcs llap {produit du texte (sans largeur) \`a partir de la gauche
+ de la position courante}{}{}
+\capcs lmoustache {moiti\'e haute d'une grande accolade~: $\big\lmoustache$}{}{}
+\capcs ln {fonction logarithme naturel~: $\ln$}{}{}
+\capcs lnot {symbole logique ``non''~: $\lnot$}{}{}
+\capcs log {fonction logarithme~: $\log$}{}{}
+\capcs long {autorise des tokens |\\par| dans le(s) argument(s) de
+ la d\'efinition suivante}*{}
+\capcs longleftarrow {relation~: $\longleftarrow$}{}{}
+\capcs Longleftarrow {relation~: $\Longleftarrow$}{}{}
+\capcs longleftrightarrow {relation~: $\longleftrightarrow$}{}{}
+\capcs Longleftrightarrow {relation~: $\Longleftrightarrow$}{}{}
+\capcs longmapsto {relation~: $\longmapsto$}{}{}
+\capcs longrightarrow {relation~: $\longrightarrow$}{}{}
+\capcs Longrightarrow {relation~: $\Longrightarrow$}{}{}
+\capcs loop {d\'ebute une boucle devant se finir par |\\repeat|}{}{}
+\capcs looseness {diff\'erence entre le nombre de lignes d'un paragraphe que vous
+ voulez par rapport au nombre optimal}*{}
+\capcs lor {op\'erateur logique ``ou''~: $\lor$}{}{}
+\capcs lower {abaisse une bo\^\i te sp\'ecifi\'e d'un montant sp\'ecifi\'e}*{}
+\capcs lowercase {convertit les lettres capitales du texte sp\'ecifi\'e
+ en minuscules}*{}
+\capcs lq {caract\`ere quote gauche pour du texte~: \lq}{}{}
+\capcs mag {$1000$ fois le ratio pour agrandir toutes les dimensions}*{}
+\capcs magnification {comme |\\mag|, mais n'agrandit pas la taille de la page}{}{}
+\capcs magstep {$1000 \cdot 1.2^n$ pour un $n$ sp\'ecifi\'e}{}{}
+\capcs magstephalf {$1000\cdot\sqrt{1.2}$}{}{}
+\capcs mapsto {relation~: $\mapsto$}{}{}
+\capcs mark {produit un \'el\'ement marqu\'e avec un texte sp\'ecifi\'e}*{}
+\capcs mathaccent {met un accent math\'ematique sp\'ecifi\'e sur le caract\`ere suivant}*{}
+\capcs mathbin {espace une sous-formule sp\'ecifi\'ee comme une op\'eration binaire}*{}
+\capcs mathchar {produit le caract\`ere math\'ematique de mathcode sp\'ecifi\'e}*{}
+\capcs mathchardef {d\'efinit une s\'equence de contr\^ole sp\'ecifi\'ee comme \'etant un mathcode,
+ un nombre entre 0 et $2^{15}-1$}*{}
+\capcs mathchoice {s\'electionne une des quatre sous-formules math\'ematiques sp\'ecifi\'ees
+ selon le style courant}*{}
+\capcs mathclose {espace une sous-formule sp\'ecifi\'ee comme un d\'elimiteur fermant}*{}
+\capcs mathcode {le mathcode d'un caract\`ere sp\'ecifi\'e}*{}
+\capcs mathinner {espace une sous-formule sp\'ecifi\'ee comme une formule interne, c'est-\`a-dire,
+ une fraction}*{}
+\capcs mathop {espace une sous-formule sp\'ecifi\'ee comme un grand op\'erateur math\'ematique}*{}
+\capcs mathopen {espace une sous-formule sp\'ecifi\'ee comme un d\'elimiteur ouvrant}*{}
+\capcs mathord {espace une sous-formule sp\'ecifi\'ee comme un caract\`ere ordinaire}*{}
+\capcs mathpalette {produit un |\\mathchoice| qui d\'eveloppe une s\'equence de contr\^ole sp\'ecifi\'ee d\'ependant du style courant}{}{}
+\capcs mathpunct {espace une sous-formule sp\'ecifi\'ee comme une ponctuation}*{}
+\capcs mathrel {espace une sous-formule sp\'ecifi\'ee comme une relation}*{}
+\capcs mathstrut {produit une bo\^\i te invisible avec la hauteur et la largeur d'une
+ parenth\`ese gauche et sans largeur}{}{}
+\capcs mathsurround {espace que \TeX\ ins\`ere avant et apr\`es les maths dans le texte}*{}
+\capcs matrix {produit une matrice sp\'ecifi\'ee}{}{}
+\capcs max {fonction maximum~: $\max$}{}{}
+\capcs maxdeadcycles {valeur de |\\deadcycles| sur laquelle \TeX\ se plaint,
+ et utilise alors sa propre routine de sortie, par d\'efaut~25}*{}
+\capcs maxdepth {profondeur maximum de la bo\^\i te en bas d'une page,
+ par d\'efaut 4\pt}*{}
+\capcs maxdimen {plus grande dimension acceptable par \TeX}{}{}
+\capcs meaning {produit la signification compr\'ehensible humainement d'un token
+ sp\'ecifi\'e comme des caract\`eres}*{}
+\capcs medbreak {indique une coupure de page
+ souhaitable avec |\\penalty-100| et produit un ressort |\\medskipamount|}{}{}
+\capcs medmuskip {ressort pour un espace math\'ematique moyen, par d\'efaut 4\mud\ plus 2\mud\
+ minus 4\mud}*{}
+\capcs medskip {produit un ressort |\\medskipamount|}{}{}
+\capcs medskipamount {ressort pour un saut vertical moyen, par d\'efaut 6\pt
+ plus 2\pt\ minus 2\pt}{}{}
+\capcs message {affiche le d\'eveloppement du texte sp\'ecifi\'e sur le terminal}*{}
+\capcs mid {middle relation~: $\mid$}{}{}
+\capcs midinsert {produit le texte sp\'ecifi\'e \`a la position courante si
+ possible, sinon en haut de la page suivante}{}{}
+\capcs min {fonction minimum~: $\min$}{}{}
+\capcs mit {utilise des italiques math\'ematiques, c'est-\`a-dire, fait |\\fam=1|}{}{}
+\capcs mkern {produit un cr\'enage sp\'ecifi\'e en unit\'es |mu| en math\'ematique}*{}
+\capcs models {relation mod\`ele ~: $\models$}{}{}
+\capcs month {mois courant, comme un nombre}*{}
+\capcs moveleft {d\'eplace une bo\^\i te sp\'ecifi\'e \`a gauche d'un espace sp\'ecifi\'e~; l\'egal
+ uniquement en mode vertical}*{}
+\capcs moveright {d\'eplace une bo\^\i te sp\'ecifi\'e \`a droite d'un espace sp\'ecifi\'e~; l\'egal
+ uniquement en mode vertical}*{}
+\capcs mp {op\'erateur plus et moins~: $\mp$}{}{}
+\capcs mskip {produit un ressort sp\'ecifi\'e en unit\'es |mu| en math\'ematique}*{}
+\capcs mu {lettre grecque math\'ematique $\mu$}{}{}
+\capcs multiply {multiplie un registre |\\count| sp\'ecifi\'e par un entier
+ sp\'ecifi\'e}*{}
+\capcs multispan {fait traverser l'entr\'ee d'alignement suivante un nombre sp\'ecifi\'e
+ de colonnes (ou de rang\'ees)}{}{}
+\capcs muskip {le registre muglue sp\'ecifi\'e}*{}
+\capcs muskipdef {d\'efinit une s\'equence de contr\^ole sp\'ecifi\'e comme un nombre
+ correspondant \`a un registre |\\muskip|}*{}
+\capcs nabla {symbole diff\'erence \`a l'envers~: $\nabla$}{}{}
+\capcs narrower {diminue les marges droite et gauche d'un |\\parindent|}{}{}
+\capcs natural {symbole naturel en musique~: $\natural$}{}{}
+\capcs nearrow {relation fl\`eche montante vers la droite~: $\nearrow$}{}{}
+\capcs ne {relation non \'egal~: $\ne$}{}{}
+\capcs neg {symbole logique ``non''~: $\neg$}{}{}
+\capcs negthinspace {kern $-\frac1/6$\em}{}{}
+\capcs neq {relation non \'egal~: $\neq$}{}{}
+\capcs newbox {r\'eserve et nomme un registre |\\box|}{}{\@newbox}
+\capcs newcount {r\'eserve et nomme un registre |\\count|}{}{\@newcount}
+\capcs newdimen {r\'eserve et nomme un registre |\\dimen|}{}{\@newdimen}
+\capcs newfam {r\'eserve et nomme une famille math\'ematique}{}{\@newfam}
+\capcs newhelp {nomme un message d'erreur sp\'ecifi\'e}{}{\@newhelp}
+\capcs newif {d\'efinit un nouveau test conditionel avec le nom sp\'ecifi\'e}{}{\@newif}
+\capcs newinsert {nomme une classe d'insertion et r\'eserve des registres
+ |\\box|, |\\count|, |\\dimen| et |\\skip| correspondants}
+ {}{\@newinsert}
+\capcs newlanguage {r\'eserve et nomme un |\\language|}{}{\@newlanguage}
+\capcs newlinechar {caract\`ere fin de ligne pour |\\write|, etc.}*{}
+\capcs newmuskip {r\'eserve et nomme un registre |\\muskip|}{}{\@newmuskip}
+\capcs newread {r\'eserve et nomme un flot d'entr\'ee}{}{\@newread}
+\capcs newskip {r\'eserve et nomme un registre |\\skip|}{}{\@newskip}
+\capcs newtoks {r\'eserve et nomme un registre |\\toks|}{}{\@newtoks}
+\capcs newwrite {r\'eserve et nomme un flot de sortie}{}{\@newwrite}
+\capcs ni {relation ``dans invers\'e''~: $\ni$}{}{}
+\capcs noalign {ins\`ere du mat\'eriel entre des rang\'ees (ou des colonnes) d'un
+ alignement}*{}
+\capcs noboundary {inhibe des ligatures ou cr\'enages dues au |boundarychar| de la police
+ courante}*{}
+\capcstwo nobreak {fait |\\penalty10000|, c'est-\`a-dire,
+ inhibe une coupure de ligne ou de page}{}{hnobreak:vnobreak}
+\capcs noexpand {supprime le d\'eveloppement du token suivant}*{}
+\capcs noindent {entre en mode horizontal sans indenter le paragraphe}*{}
+\capcs nointerlineskip {inhibe le ressort inter-ligne avant la ligne suivante}{}{}
+\capcs nolimits {place un exposant et un indice apr\`es de grands op\'erateurs}*{}
+\capcs nonfrenchspacing {rend l'espacement inter-mot d\'ependant de la ponctuation}{}{}
+\capcs nonscript {inhibe tout ressort ou cr\'enage suivant
+ en styles script et scriptscript}*{}
+\capcs nonstopmode {ne stoppe pas sur des erreurs, m\^eme celles relatives aux fichiers manquants}*{}
+\capcs nopagenumbers {inhibe l'impression des num\'eros de page, c'est-\`a-dire, fait
+ |\\footline = {\\hfil}|}{}{}
+\capcs normalbaselines {met |\\baselineskip|, |\\line\-skip| et
+ |\\line\-skip\-limit| aux valeurs normales pour la taille de la police courante}{}{}
+\capcs normalbaselineskip {valeur de |\\baselineskip| pour la
+ taille de la police courante}{}{}
+\capcs normalbottom {rend la marge du bas identique de page en page}{}{}
+\capcs normallineskip {valeur de |\\lineskip| pour la taille de caract\`ere
+ courante}{}{}
+\capcs normallineskiplimit {valeur de |\\lineskiplimit| pour la taille de caract\`ere
+ courante}{}{}
+\capcs not {un |\\/| sans largeur pour construire des n\'egations de relation
+ mat\'ematiques, comme dans $\not=$}{}{}
+\capcs notin {relation n'appartient pas~: $\notin$}{}{}
+\capcs nu {lettre grecque math\'ematique $\nu$}{}{}
+\capcs null {se d\'eveloppe en une bo\^\i te vide}{}{}
+\capcs nulldelimiterspace {espace produit par un d\'elimiteur nul, par
+ d\'efaut 1.2\pt}*{}
+\capcs nullfont {police primitive sans characters}*{}
+\capcs number {produit un chiffre sp\'ecifi\'e en caract\`eres}*{}
+\capcs nwarrow {relation fl\`eche en haut vers la gauche~: $\nwarrow$}{}{}
+\capcs o {lettre danoise~: \o}{}{}
+\capcs O {lettre danoise~: \O}{}{}
+\capcs obeylines {rend chaque fin de ligne du fichier entr\'ee
+ \'equivalente \`a |\\par|}{}{}
+\capcs obeyspaces {produit un espace dans la sortie pour chaque caract\`ere espace dans
+ l'entr\'ee}{}{}
+\capcs odot {op\'eration point centr\'e~: $\odot$}{}{}
+\capcs oe {ligature \oe}{}{}
+\capcs OE {ligature \OE}{}{}
+\capcs offinterlineskip {inhibe le ressort inter-ligne \`a partir de maintenant}{}{}
+\capcs oint {op\'erateur contour int\'egral~: $\oint$}{}{}
+\capcs oldstyle {utilise des chiffres elz\'eviriens~: {\oldstyle1234567890}}{}{}
+\capcs omega {lettre grecque math\'ematique $\omega$}{}{}
+\capcs Omega {lettre grecque math\'ematique $\Omega$}{}{}
+\capcs ominus {op\'erateur moins dans un cercle~: $\ominus$}{}{}
+\capcs omit {saute un patron de colonne (ou de rang\'ee) dans un alignement}*{}
+\capcs openin {pr\'epare un flot d'entr\'ee sp\'ecifi\'e pour lire un fichier}*{}
+\capcs openout {pr\'epare un flot de sortie sp\'ecifi\'e pour \'ecrire dans un fichier}*{}
+\capcs openup {augmente |\\baselineskip|, |\\lineskip| et
+ |\\lineskiplimit| d'un montant sp\'ecifi\'e}{}{}
+\capcs oplus {op\'erateur plus dans un cercle~: $\oplus$}{}{}
+\capcs or {s\'epare les cas d'un |\\ifcase|}*{\@or}
+\capcs oslash {op\'erateur divise dans un cercle~: $\oslash$}{}{}
+\capcs otimes {op\'erateur multiplie dans un cercle~: $\otimes$}{}{}
+\capcs outer {rend la d\'efinition de macro suivante ill\'egale dans des contextes dans
+ lesquels des tokens sont absorb\'e \`a haute vitesse}*{}
+\capcs output {liste de token que \TeX\ d\'eveloppe quand il trouve une coupure de page}*{}
+\capcs outputpenalty {si la coupure de page arrive sur une p\'enalit\'e, la valeur
+ de cette p\'enalit\'e~; sinon z\'ero}*{}
+\capcs over {produit une fraction avec une barre d'\'epaisseur par d\'efaut}*{}
+\capcs overbrace {produit une accolade recouvrant le haut d'une formule,
+ comme dans $\overbrace{h+w}{}$}{}{}
+\capcs overfullrule {largeur de la r\'eglure d'un ``overfull box''}*{}
+\capcs overleftarrow {produit une fl\`eche vers la gauche recouvrant le haut d'une
+ formule, comme dans $\overleftarrow{r+a}$}{}{}
+\capcs overline {produit une ligne recouvrant le haut d'une formule,
+ comme dans~$\overline{2b}$}*{}
+\capcs overrightarrow {produit une fl\`eche vers la droite recouvrant le haut d'une
+ formule, comme dans $\overrightarrow{i+t}$}{}{}
+\capcs overwithdelims {produit une fraction avec une barre d'\'epaisseur par d\'efaut
+ et surmont\'ee des d\'elimiteurs sp\'ecifi\'es}*{}
+\capcs owns {relation appartient~: $\owns$}{}{}
+\capcs P {caract\`ere paragraphe en texte~: \P}{}{}
+\capcs pagedepth {\TeX\ met ceci \`a la profondeur courante de la page
+ courante}*{}
+\capcs pagefilllstretch {\TeX\ met ceci au montant d'\'etirement |filll| sur
+ la page courante}*{}
+\capcs pagefillstretch {\TeX\ met ceci au montant d'\'etirement |fill| sur
+ la page courante}*{}
+\capcs pagefilstretch {\TeX\ met ceci au montant d'\'etirement |fil| sur
+ la page courante}*{}
+\capcs pagegoal {\TeX\ met ceci \`a la hauteur d\'esir\'ee pour la page courante
+ (c'est-\`a-dire, |\\vsize| quand la premi\`ere bo\^\i te est mise sur la page)}*{}
+\capcs pageinsert {produit le texte sp\'ecifi\'e sur la page suivante et utilise
+ jusqu'a la page enti\`ere}{}{}
+\capcs pageno {le registre |\\count0|, qui contient le num\'ero de page
+ (\'eventuellement n\'egatif)}{}{}
+\capcs pageshrink {\TeX\ met ceci au montant total de r\'etr\'ecissement
+ sur la page courante}*{}
+\capcs pagestretch {\TeX\ met ceci au montant total d'\'etirement
+ sur la page courante}*{}
+\capcs pagetotal {\TeX\ met ceci \`a la hauteur naturelle de la page
+ courante}*{}
+\capcs par {finit un paragraphe et termine le mode horizontal}*{\@par}
+\capcs parallel {relation parall\`ele~: $\parallel$}{}{}
+\capcs parfillskip {ressort horizontal que \TeX\ ins\`ere \`a la fin d'un
+ paragraphe}*{}
+\capcs parindent {espace horizontal que \TeX\ ins\`ere au d\'ebut d'un
+ paragraphe}*{}
+\capcs parshape {sp\'ecifie la largeur et la longueur de chaque ligne
+ dans le prochain paragraphe}*{}
+\capcs parskip {ressort vertical que \TeX\ ins\`ere avant un paragraphe}*{}
+\capcs partial {symbole d\'eriv\'ee partielle~: $\partial$}{}{}
+\capcs pausing {si positif, stoppe apr\`es avoir lu chaque ligne d'entr\'ee pour un
+ remplacement possible}*{}
+\capcstwo penalty {produit une p\'enalit\'e (ou un bonus, si n\'egatif) pour couper
+ une ligne ou une page ici}*{hpenalty:vpenalty}
+\capcs perp {relation perpendiculaire~: $\perp$}{}{}
+\capcs phantom {produit une formule invisible avec les
+ dimensions d'une sous formule sp\'ecifi\'e}{}{}
+\capcs phi {lettre grecque math\'ematique $\phi$}{}{}
+\capcs Phi {lettre grecque math\'ematique $\Phi$}{}{}
+\capcs pi {lettre grecque math\'ematique $\pi$}{}{}
+\capcs Pi {lettre grecque math\'ematique $\Pi$}{}{}
+\capcs plainoutput {routine |\\output| de \plainTeX}{}{}
+\capcs pm {op\'erateur plus et moins~: $\pm$}{}{}
+\capcs pmatrix {produit une matrice entre parenth\`eses}{}{}
+\capcs pmod {notation modulo entre parenth\`eses \'a la fin d'une formule comme dans $x \equiv y+1 \pmod 2$}{}{}
+\capcs postdisplaypenalty {p\'enalit\'e suppl\'ementaire pour une coupure de ligne
+ juste apr\`es un affichage, par d\'efaut~0}*{}
+\capcs Pr {fonction probabilit\'e~: $\Pr$}{}{}
+\capcs prec {relation pr\'ec\`ede~: $\prec$}{}{}
+\capcs preceq {relation pr\'ec\`ede ou \'egale~: $\preceq$}{}{}
+\capcs predisplaypenalty {p\'enalit\'e suppl\'ementaire pour une coupure de ligne juste
+ avant un affichage, par d\'efaut~0}*{}
+\capcs predisplaysize {\TeX\ met ceci \`a la largeur de la
+ ligne pr\'ecedant un affichage}*{}
+\capcs pretolerance {tol\'erance de m\'ediocrit\'e pour une coupure de ligne sans
+ c\'esure, par d\'efaut~100}*{}
+\capcs prevdepth {profondeur de la derni\`ere bo\^\i te dans la liste verticale courante
+ (sauf filet)}*{}
+\capcs prevgraf {\TeX\ met ceci au nombre de lignes dans le paragraphe en plus
+ (en mode horizontal) ou dans le paragraphe pr\'ec\'edent (en mode vertical)}*{}
+\capcs prime {symbole prime math\'ematique, comme dans $r^\prime$}{}{}
+\capcs proclaim {d\'ebute un th\'eor\`eme, un lemme, une hypoth\`ese, $\ldots$}{}{\@proclaim}
+\capcs prod {grand op\'erateur produit~: $\prod$}{}{}
+\capcs propto {relation proportionnel \`a~: $\propto$}{}{}
+\capcs psi {lettre grecque math\'ematique $\psi$}{}{}
+\capcs Psi {lettre grecque math\'ematique $\Psi$}{}{}
+\capcs qquad {produit un ressort horizontal de largeur 2\em}{}{}
+\capcs quad {produit un ressort horizontal de largeur 1\em}{}{}
+\capcs radical {produit un symbole radical sp\'ecifi\'e}*{}
+\capcs raggedbottom {autorise la marge du bas \`a varier d'une page \`a l'autre}{}{}
+\capcs raggedright {autorise la marge droite \`a varier d'une ligne \`a l'autre}{}{}
+\capcs raise {abaisse une bo\^\i te sp\'ecifi\'ee d'un montant sp\'ecifi\'e}*{}
+\capcs rangle {d\'elimiteur angle fermant~: $\rangle$}{}{}
+\capcs rbrace {d\'elimiteur accolade fermante~: $\rbrace$}{}{}
+\capcs rbrack {d\'elimiteur crochet fermant~: $\rbrack$}{}{}
+\capcs rceil {d\'elimiteur plancher fermant~: $\rceil$}{}{}
+\capcs Re {symbole partie r\'eelle de complexe~: $\Re$}{}{}
+\capcs read {lit une ligne d'un flot d'entr\'ee sp\'ecifi\'e}*{}
+\capcs relax {ne fait rien}*{}
+\capcs relpenalty {p\'enalit\'e suppl\'ementaire pour une coupure apr\`es une relation,
+ par d\'efaut~500}*{}
+\capcs repeat {termine une boucle d\'ebut\'ee avec |\\loop|}{}{\@repeat}
+\capcs rfloor {d\'elimiteur plafond fermant~: $\rfloor$}{}{}
+\capcs rgroup {d\'elimiteur de groupe fermant (la plus petite taille est montr\'ee ici)~:
+ $\Big\rgroup$}{}{}
+\capcs rho {lettre grecque math\'ematique $\rho$}{}{}
+\capcs right {produit le d\'elimiteur sp\'ecifi\'e \`a l'extr\'emit\'e d'une
+ sous-formule d\'ebut\'ee par |\\left|}*{}
+\capcs rightarrow {relation~: $\rightarrow$}{}{}
+\capcs Rightarrow {relation~: $\Rightarrow$}{}{}
+\capcs rightarrowfill {remplit une hbox avec un |\\rightarrow|~:
+ \hbox to 3.5em{\rightarrowfill}}{}{}
+\capcs rightharpoondown {relation~: $\rightharpoondown$}{}{}
+\capcs rightharpoonup {relation~: $\rightharpoonup$}{}{}
+\capcs rightleftharpoons {relation~: $\rightleftharpoons$}{}{}
+\capcs rightline {produit une ligne avec son texte pouss\'e vers la marge droite}{}{}
+\capcs rightskip {ressort que \TeX\ ins\`ere \`a droite de chaque ligne}*{}
+\capcs righthyphenmin {taille du plus petit fragment de mot que \TeX\ autorise
+ apr\`es une c\'esure \`a la fin d'un mot, par d\'efaut~3}*{}
+\capcs rlap {produit du texte (sans largeur) \`a partir de la droite
+ de la position courante}{}{}
+\capcs rm {utilise des caract\`eres romains, c'est-\`a-dire, fait |\\tenrm\\fam=0|}{}{}
+\capcs rmoustache {moiti\'e basse d'une grande accolade~: $\big\rmoustache$}{}{}
+\capcs romannumeral {produit la repr\'esentation en chiffre romain minuscule d'un
+ nombre sp\'ecifi\'e, en caract\`eres}{}{}
+\capcs root {produit une racine sp\'ecifi\'ee d'une sous-formule sp\'ecifi\'ee, comme dans
+ $\root 3 \of 2$}{}{}
+\capcs rq {caract\`ere quote fermante en texte~: \rq}{}{}
+\capcs S {caract\`ere section en texte~: \S}{}{}
+\capcs sb {caract\`ere indice implicite}{}{}
+\capcs scriptfont {la police de style script dans une famille math\'ematique sp\'ecifi\'ee}*{}
+\capcs scriptscriptfont {la police de style scriptscript dans une famille math\'ematique
+ sp\'ecifi\'ee}*{}
+\capcs scriptscriptstyle {utilise la taille de style scriptscript dans une formule}*{}
+\capcs scriptspace {espace suppl\'ementaire que \TeX\ cr\`ee apr\`es un exposant ou un
+ indice, par d\'efaut 0.5\pt}*{}
+\capcs scriptstyle {utilise la taille de style script dans une formule}*{}
+\capcs scrollmode {ne stoppe pas sur les erreurs, mais stoppe sur les erreurs
+ de fichiers manquants}*{}
+\capcs searrow {relation fl\`eche en bas \`a gauche~: $\searrow$}{}{}
+\capcs sec {fonction s\'ecante~: $\sec$}{}{}
+\capcs setbox {d\'efinit un registre de bo\^\i te sp\'ecifi\'e comme \'etant une bo\^\i te}*{}
+\capcs setlanguage {change un jeu de r\`egles de c\'esure sp\'ecifi\'e, mais
+ ne change pas |\\language|}{*}{}
+\capcs setminus {operateur difference ~: $\setminus$}{}{}
+\capcs settabs {d\'efinit les tabulations pour un alignement tabul\'e}{}{}
+\capcs sevenbf {utilise une police grasse de $7$ points, |cmbx7|}{}{}
+\capcs seveni {utilise une police math\'ematique italique de $7$ points, |cmmi5|}{}{}
+\capcs sevenrm {utilise une police romaine de $7$ points, |cmr7|}{}{}
+\capcs sevensy {utilise une police symbole de $7$ points, |cmsy7|}{}{}
+\capcs sfcode {le code du facteur d'espace d'un caract\`ere sp\'ecifi\'e}*{}
+\capcs sharp {symbole di\`ese en musique~: $\sharp$}{}{}
+\capcs shipout {envoit une bo\^\i te vers le fichier |.dvi|}*{}
+\capcs show {montre, dans la log et
+ sur le terminal, la signification d'un token sp\'ecifi\'e}*{}
+\capcs showbox {affiche le contenu d'un registre de bo\^\i te sp\'ecifi\'e}*{}
+\capcs showboxbreadth {nombre maximum d'\'el\'ements montr\'e sur chaque niveau imbriqu\'e,
+ par d\'efaut~5}*{}
+\capcs showboxdepth {maximum de niveaux imbriqu\'es montr\'es, par d\'efaut~3}*{}
+\capcs showhyphens {montre, dans la log
+ et sur le terminal, les c\'esures dans un texte sp\'ecifi\'e}{}{}
+\capcs showlists {affiche toutes les listes sur lequel il travaille}*{}
+\capcs showthe {montre, dans la log
+ et sur le terminal, ce que |\\the| produira}*{}
+\capcs sigma {lettre grecque math\'ematique $\sigma$}{}{}
+\capcs Sigma {lettre grecque math\'ematique $\Sigma$}{}{}
+\capcs sim {relation similarit\'e~: $\sim$}{}{}
+\capcs simeq {relation similaire ou \'egal~: $\simeq$}{}{}
+\capcs sin {fonction sinus~: $\sin$}{}{}
+\capcs sinh {fonction sinus hyperbolique~: $\sinh$}{}{}
+\capcs skew {d\'eplace un accent sp\'ecifi\'e d'un montant sp\'ecifi\'e
+ sur un caract\`ere accentu\'e sp\'ecifi\'e}{}{}
+\capcs skewchar {caract\`ere d'une police sp\'ecifi\'ee utilis\'e pour positionner des accents}*{}
+\capcs skip {le registre de ressort sp\'ecifi\'e}*{}
+\capcs skipdef {d\'efinit une s\'equence de contr\^ole sp\'ecifi\'ee comme \'etant un nombre
+ correspondant \`a un registre |\\skip|}*{}
+\capcs sl {utilise des caract\`eres pench\'es, c'est-\`a-dire, fait |\\tensl\\fam=\\slfam|}{}{}
+\capcs slash {caract\`ere \slash\ autorisant une coupure de ligne}{}{}
+\capcs slfam {famille pench\'ee en math\'ematique}{}{}
+\capcs smallbreak {indique une coupure de page assez d\'esirable
+ avec |\\penalty-50| et produit un ressort |\\smallskipamount|}{}{}
+\capcs smallint {petit symbole d'int\'egrale~: $\smallint$}{}{}
+\capcs smallskip {produit un ressort |\\smallskipamount|}{}{}
+\capcs smallskipamount {ressort pour un petit saut vertical, par d\'efaut 3\pt\
+ plus 1\pt\ minus 1\pt}{}{}
+\capcs smash {produit une formule sans hauteur, ni profondeur}{}{}
+\capcs smile {relation smile~: $\smile$}{}{}
+\capcs sp {caract\`ere d'exposant implicite}{}{}
+\capcs space {produit un ressort inter-mot normal}{}{}
+\capcs spacefactor {modifie l'\'etirement et le r\'etr\'ecissement des ressorts inter-mot
+ s'il diff\'erent de 1000}*{}
+\capcs spaceskip {si diff\'erent de z\'ero et |\\spacefactor|${}<2000$, surcharge
+ le ressort inter-mot normal}*{}
+\capcs spadesuit {symbole pique~: $\spadesuit$}{}{}
+\capcs span {soit combine des entr\'ees dans un corps d'alignement body soit
+ d\'eveloppe des tokens dans un pr\'eambule}*{}
+\capcs special {\'ecrit des tokens dans le fichier |.dvi| devant \^etre interpr\'et\'es par un
+ programme de lecture de DVI}*{}
+\capcs splitbotmark {dernier \'el\'ement de marque dans une bo\^\i te r\'esultant de |\\vsplit|}*{}
+\capcs splitfirstmark {premier \'el\'ement de marque dans une bo\^\i te r\'esultant de
+ |\\vsplit|}*{}
+\capcs splitmaxdepth {profondeur maximum d'une bo\^\i te r\'esultant de |\\vsplit|}*{}
+\capcs splittopskip {ressort que \TeX\ ins\`ere en haut d'une bo\^\i te r\'esultant de
+ |\\vsplit|}*{}
+\capcs sqcap {op\'erateur square cap~: $\sqcap$}{}{}
+\capcs sqcup {op\'erateur square cup~: $\sqcup$}{}{}
+\capcs sqrt {produit une racine carr\'ee d'une sous-formule, comme dans $\sqrt 2$}{}{}
+\capcs sqsubseteq {relation square subset ou \'egal~: $\sqsubseteq$}{}{}
+\capcs sqsupseteq {relation square superset ou \'egal~: $\sqsupseteq$}{}{}
+\capcs ss {lettre allemande~: \ss}{}{}
+\capcs star {op\'erateur \'etoile~: $\star$}{}{}
+\capcs string {produit un token sp\'ecifi\'e, le plus souvent une s\'equence de
+ contr\^ole, comme des caract\`eres}*{}
+\capcs strut {bo\^\i te sans largeur, mais de hauteur et profondeur d'une ligne standard,
+ de ligne de base \`a ligne de base, dans la police courante}{}{}
+\capcs subset {relation subset~: $\subset$}{}{}
+\capcs subseteq {relation subset ou \'egal~: $\subseteq$}{}{}
+\capcs succ {relation successeur~: $\succ$}{}{}
+\capcs succeq {relation successeur ou \'egal~: $\succeq$}{}{}
+\capcs sum {grand op\'erateur de somme~: $\sum$}{}{}
+\capcs sup {fonction sup\'erieur~: $\sup$}{}{}
+\capcs supereject {force une coupure de page, et d\'echarge toutes les insertions}{}{}
+\capcs supset {relation superset~: $\supset$}{}{}
+\capcs supseteq {relation superset ou \'egal~: $\supseteq$}{}{}
+\capcs surd {symbole surd~: $\surd$}{}{}
+\capcs swarrow {relation fl\`eche en bas \`a gauche~: $\swarrow$}{}{}
+\capcs t {accent tie-after en texte, comme dans \t uu}{}{}
+\capcs tabalign {\'equivalent \`a |\\+|, sauf s'il n'est pas |\\outer|}{}{}
+\capcs tabskip {ressort entre colonnes (ou rang\'ees) d'un alignement}*{}
+\capcs tan {fonction tangente~: $\tan$}{}{}
+\capcs tanh {fonction tangente hyperbolique~: $\tanh$}{}{}
+\capcs tau {lettre grecque math\'ematique $\tau$}{}{}
+\capcs tenbf {utilise une police grasse de $10$ points, |cmbx10|}{}{}
+\capcs tenex {utilise une police d'extension math\'ematique de $10$ points, |cmex10|}{}{}
+\capcs teni {utilise une police italique math\'ematique de $10$ points, |cmmi10|}{}{}
+\capcs tenit {utilise une police italique de texte de $10$ points, |cmti10|}{}{}
+\capcs tenrm {utilise une police romaine de texte de $10$ points, |cmr10|}{}{}
+\capcs tensl {utilise une police romaine pench\'ee de $10$ points, |cmsl10|}{}{}
+\capcs tensy {utilise une police de symbole math\'ematique de $10$ points, |cmsy10|}{}{}
+\capcs tentt {utilise une police de machine \`a \'ecrire de $10$ points, |cmtt10|}{}{}
+\capcs TeX {produit le logo \TeX}{}{}
+\capcs textfont {la police de style dans une famille math\'ematique sp\'ecifi\'ee}*{}
+\capcs textindent {comme |\\item|, mais ne fait pas d'indentation associ\'ee}{}{}
+\capcs textstyle {utilise une taille textstyle dans une formule}*{}
+\capcs the {donne la valeur d'un token sp\'ecifi\'e}*{}
+\capcs theta {lettre grecque math\'ematique $\theta$}{}{}
+\capcs Theta {lettre grecque math\'ematique $\Theta$}{}{}
+\capcs thickmuskip {ressort pour une espace math\'ematique gras, par d\'efaut 5\mud\ plus 5\mud}*{}
+\capcs thinmuskip {ressort pour un espace math\'ematique fine, par d\'efaut 3\mud}*{}
+\capcs thinspace {cr\'enage de \frac1/6\em}{}{}
+\capcs tilde {accent tilde en math\'ematique, comme dans $\tilde x$}{}{}
+\capcs time {l'heure d'aujourd'hui, en minutes depuis minuit}*{}
+\capcs times {op\'erateur multipli\'e~: $\times$}{}{}
+\capcs toks {le registre de token sp\'ecifi\'e}*{}
+\capcs toksdef {d\'efinit une s\'equence de contr\^ole sp\'ecifi\'e comme \'etant un nombre
+ correspondant \`a un registre |\\toks|}*{}
+\capcs tolerance {tol\'erance de m\'ediocrit\'e pour des coupures de ligne avec c\'esure}*{}
+\margin{{\tt\\topglue} command added~; recent addition to \TeX}
+\capcs to {relation mapping~: $\to$}{}{}
+\capcs top {symbole lattice top~: $\top$}{}{}
+\capcs topglue {produit un ressort vertical sp\'ecifi\'e en haut
+ d'une page}{}{}
+\capcs topinsert {produit le texte sp\'ecifi\'e en haut d'une page}{}{}
+\capcs topmark {|\\botmark| avant que la page courante soit en bo\^\i te}*{}
+\capcs topskip {ressort entre la ligne de t\^ete et la premi\`ere ligne de texte
+ sur une page, par d\'efaut 10\pt}*{}
+\capcs tracingall {d\'eclanche des traces maximal}{}{}
+\capcs tracingcommands {affiche l'ex\'ecution des commandes}*{}
+\capcs tracinglostchars {affiche les caract\`eres demand\'es, mais non
+ d\'efinis}*{}
+\capcs tracingmacros {affiche les d\'eveloppements de macros}*{}
+\capcs tracingonline {montre les sorties de diagnostic sur le terminal aussi bien que
+ dans le fichier log}*{}
+\capcs tracingoutput {affiche les contenus des bo\^\i tes sorties}*{}
+\capcs tracingpages {affiche les calculs de coupure de page}*{}
+\capcs tracingparagraphs {affiche les calculs de coupure de ligne}*{}
+\capcs tracingrestores {affiche les valeurs restaur\'ees \`a la fin
+ d'un groupe}*{}
+\capcs tracingstats {affiche les statistiques d'utilisation de la m\'emoire}*{}
+\capcs triangle {symbole triangle~: $\triangle$}{}{}
+\capcs triangleleft {op\'erateur triangle gauche~: $\triangleleft$}{}{}
+\capcs triangleright {op\'erateur triangle droite~: $\triangleright$}{}{}
+\capcs tt {utilise des caract\`eres de machine \`a \'ecrire, c'est-\`a-dire, fait |\\tentt\\fam=\\ttfam|}{}{}
+\capcs ttfam {famille machine \`a \'ecrire en math\'ematique}{}{}
+\capcs ttraggedright {utilise des caract\`eres de machine \`a \'ecrire et autorise la marge
+ droite des paragraphes \`a varier d'une ligne \`a l'autre}{}{}
+\capcs u {accent bref en texte, comme dans \u r}{}{}
+\capcs uccode {le code de caract\`ere de la forme capitale d'une lettre}*{}
+\capcs uchyph {si positif, laisse c\'esurer des mots qui commencent avec une
+ lettre capitale}*{}
+\capcs underbar {souligne le texte sp\'ecifi\'e sans toucher les descendantes , comme dans \underbar{fog}}{}{}
+\capcs underbrace {produit une accolade couvrant le bas d'une formule, comme dans
+ $\underbrace{x+x}{}$}{}{}
+\capcs underline {souligne une formule math\'ematique sous les descendantes, comme dans
+ $\underline{x+y}$}*{}
+\capcs unhbox {d\'echarge le contenu de la bo\^\i te
+ d'un registre de bo\^\i te sp\'ecifi\'e
+ de la liste courante et vide le registre~; l\'egal en
+ mode horizontal seulement}*{}
+\capcs unhcopy {comme |\\unhbox|, mais ne vide pas le registre}*{}
+\capcs unkern {si le dernier \'el\'ement de la liste courante est un cr\'enage, l'enl\`eve}*{}
+\capcs unpenalty {si le dernier \'el\'ement de la liste courante est une p\'enalit\'e, l'enl\`eve}*{}
+\capcs unskip {si le dernier \'el\'ement de la liste courante est un ressort, l'enl\`eve}*{}
+\capcs unvbox {d\'echarge le contenu de la bo\^\i te
+ d'un registre de bo\^\i te sp\'ecifi\'e
+ de la liste courante et vide le registre~; l\'egal en
+ modes verticaux seulement}*{}
+\capcs unvcopy {comme |\\unvbox|, mais ne vide pas le registre}*{}
+\capcs uparrow {relation~: $\uparrow$}{}{}
+\capcs Uparrow {relation~: $\Uparrow$}{}{}
+\capcs upbracefill {fill enclosing hbox with an upwards facing brace~:
+ \hbox to 3.5em{\upbracefill}}{}{}
+\capcs updownarrow {relation~: $\updownarrow$}{}{}
+\capcs Updownarrow {relation~: $\Updownarrow$}{}{}
+\capcs uplus {op\'erateur plus cupped~: $\uplus$}{}{}
+\capcs uppercase {convertit les lettres minuscules d'un texte sp\'ecifi\'e
+ en capitales}*{}
+\capcs upsilon {lettre grecque math\'ematique $\upsilon$}{}{}
+\capcs Upsilon {lettre grecque math\'ematique $\Upsilon$}{}{}
+\capcs v {accent tch\`eque en texte, comme dans \v o}{}{}
+\capcs vadjust {produit du mat\'eriel en mode vertical apr\`es la ligne courante}*{}
+\capcs valign {aligne du texte dans des rang\'ees}*{}
+\capcs varepsilon {variante de la lettre grecque math\'ematique $\varepsilon$}{}{}
+\capcs varphi {variante de la lettre grecque math\'ematique $\varphi$}{}{}
+\capcs varpi {variante de la lettre grecque math\'ematique $\varpi$}{}{}
+\capcs varrho {variante de la lettre grecque math\'ematique $\varrho$}{}{}
+\capcs varsigma {variante de la lettre grecque $\varsigma$}{}{}
+\capcs vartheta {variante de la lettre grecque math\'ematique $\vartheta$}{}{}
+\capcs vbadness {badness threshold for reporting underfull or overfull
+ vboxes, par d\'efaut~1000}*{}
+\capcs vbox {produit une vbox dont la ligne de base est celle de la bo\^\i te du haut
+ incluse}*{}
+\capcs vcenter {centre le texte sp\'ecifi\'e sur l'axe math\'ematique}*{}
+\capcs vdash {symbole left turnstile~: $\vdash$}{}{}
+\capcs vdots {points verticaux en math\'ematique~: \smash{$\vdots$}}{}{}
+\capcs vec {accent vecteur en math\'ematique, comme dans $\vec x$}{}{}
+\capcs vee {op\'erateur ``ou'' logique~: $\vee$}{}{}
+\capcs vert {relation barre~: $\vert$}{}{}
+\capcs Vert {relation double barre~: $\Vert$}{}{}
+\capcs vfil {produit un ressort vertical infiniment \'etirable}*{}
+\capcs vfill {produit un ressort vertical encore plus infiniment \'etirable
+ que celui produit par |\\vfil|}*{}
+\capcs vfilneg {produit un ressort vertical n\'egatif infiniment \'etirable}*{}
+\capcs vfootnote {produit une note de bas de page sp\'ecifi\'ee avec une marque
+ de r\'ef\'erence sp\'ecifi\'ee, mais ne produit la marque de r\'ef\'erence dans le texte}{}{}
+\capcs vfuzz {seuil de d\'epassement pour dire overfull vboxes, par d\'efaut
+ 0.1\pt}*{}
+\capcs vglue {produit un ressort vertical sp\'ecifi\'e
+ qui ne disparait pas sur des coupures de page}{}{}
+\capcs voffset {offset vertical relatif d'un pouce par rapport au coin
+ haut du papier}*{}
+\capcs vphantom {produit un formule invisible sans largeur mais de hauteur
+ et profondeur naturelle}{}{}
+\capcs vrule {produit un filet vertical~; l\'egal seulement en modes horizontaux}*{}
+\capcs vsize {hauteur de page, par d\'efaut 8.9\thinspace in}*{}
+\capcs vskip {produit un ressort vertical sp\'ecifi\'e}*{}
+\capcs vsplit {coupe le contenu d'un registre de bo\^\i te sp\'ecifi\'ee
+ de la hauteur sp\'ecifi\'e}*{}
+\capcs vss {produit un ressort vertical qui est infiniment \'etirable et
+ infiniment r\'etr\'ecissable}*{}
+\capcs vtop {produit une vbox dont la ligne de base est celle de la bo\^\i te du haut englob\'ee}*{}
+\capcs wd {la largeur d'une bo\^\i te dans un registre de bo\^\i te sp\'ecifi\'e}*{}
+\capcs wedge {op\'erateur logique ``et''~: $\wedge$}{}{}
+\capcs widehat {accent math\'ematique, comme dans $\widehat {y+z+a}$}{}{}
+\capcs widetilde {accent math\'ematique $\widetilde {b+c+d}$}{}{}
+\capcs widowpenalty {p\'enalit\'e pour une ligne seule d\'ebutant une page,
+ par d\'efaut~150}*{}
+\capcs wlog {|\\write| la liste de token sp\'ecifi\'ee dans le fichier log}{}{}
+\capcs wp {symbole Weierstra\ss\ `p'~: $\wp$}{}{}
+\capcs wr {op\'erateur produisant un ruban~: $\wr$}{}{}
+\capcs write {\'ecrit une ligne vers un flot de sortie sp\'ecifi\'e}*{}
+\capcs xdef {\'equivalent \`a |\\global\\edef|, c'est-\`a-dire, d\'efini globalement une
+ macro, d\'eveloppant imm\'ediatement le texte de remplacement}*{}
+\capcs xi {lettre grecque math\'ematique $\xi$}{}{}
+\capcs Xi {lettre grecque math\'ematique $\Xi$}{}{}
+\capcs xleaders {produit des r\'eglures avec l'espace en trop \`a gauche redistribu\'e egalement}*{}
+\capcs xspaceskip {si diff\'erent de z\'ero et |\\spacefactor|${}\ge2000$,
+ surcharge le ressort inter-mot normal}*{}
+\capcs year {l'ann\'ee courante, comme un nombre}*{}
+\capcs zeta {lettre grecque math\'ematique $\zeta$}{}{}
+
+\endcapsum
+\endchapter
+\byebye
+
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/fconcept.tex b/Master/texmf-dist/doc/plain/impatient-fr/fconcept.tex
new file mode 100644
index 00000000000..a1f8001ef39
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/fconcept.tex
@@ -0,0 +1,4069 @@
+% 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{Concepts}
+
+\chapterdef{concepts}
+
+Cette partie du livre contient les d\'efinitions et explications des
+concepts que nous utilisons pour d\'ecrire \TeX. Les concepts comprennent
+les termes techniques que nous utilisons pour expliquer les commandes et
+des points importants qui ne sont vus nulle part ailleurs dans le livre
+
+Les concepts sont class\'es dans l'ordre alphab\'etique. La page de garde int\'erieure
+contient une liste compl\`ete des concepts et les pages o\`u ils sont expliqu\'es.
+Nous vous sugg\'erons de faire une copie de cette page int\'erieure et de la
+garder de cot\'e pour que vous puissiez identifier et regarder un concept non
+familier imm\'ediatement. Autant que possible, nous gardons notre
+terminologie coh\'erente avec celle de \texbook.\idxref{\texbook}
+
+\beginconcepts
+
+\conceptindex{alignements}
+\concept alignement
+
+\bix^^{tables}
+Un \defterm{alignement} est une construction pour aligner du mat\'e\-riel tel
+qu'un tableau, en colonne ou en rang\'ee. Pour former un alignement vous devez
+(a)~d\'ecrire le format des colonnes ou des rang\'ees et (b)~ dire \`a \TeX\ quel
+mat\'eriel va dans les colonnes ou les rang\'ees. Un alignement tabul\'e ou un
+alignement horizontal est organis\'e comme une suite de rang\'ees~; un alignement
+vertical est organis\'e comme une suite de colonnes. Nous d\'ecrirons d'abord
+les alignements tabul\'es et horizontaux et ensuite, plus bri\`evement, les
+alignements verticaux.
+
+Les alignements tabul\'es sont d\'efinis par \plainTeX. Ils sont plus simples
+mais moins flexibles que les alignements horizontaux. Ils diff\`erent
+principalement sur la fa\c con de d\'ecrire leurs formats.
+
+\bix^^|\settabs|
+\bix\ctsidxref{+}
+\bix\ctsidxref{cr}
+
+Pour construire un alignement tabul\'e vous devez tout d'abord former une
+commande |\settabs| \ctsref{\settabs} qui sp\'ecifie comment \TeX\ doit
+diviser l'es\-pace horizontal disponible en colonne, ensuite vous procurer
+une suite de rang\'ees \`a tabuler. Chaque rang\'ee consiste en une s\'equence de
+contr\^ole |\+| \ctsref{\@plus} suivi par une liste d'``entr\'ees'', c'est-\`a-dire
+des intersections rang\'ees\slash colonnes.
+^^{entr\'ee (colonne ou rang\'ee)}
+Des entr\'ees qui se suivent sur une rang\'ee sont s\'epar\'ees par une esperluette
+(|&|).
+\xrdef{@and}
+\ttidxref{&}
+La fin d'une rang\'ee est indiqu\'ee par ^|\cr| apr\`es sa derni\`ere entr\'ee.
+Si une rang\'ee a moins d'entr\'ees qu'il y a de colonnes dans l'alignement,
+\TeX\ rempli jusqu'\`a la fin la rang\'ee de blanc.
+
+Tant qu'il est pr\'ec\'ed\'e d'une commande |\settabs|, vous pouvez mettre une
+rang\'ee d'un alignement tabul\'e n'importe o\`u dans votre document. En particulier,
+vous pouvez mettre autres choses entre les rang\'ees d'aligne\-ments tabul\'es ou
+d\'ecrire plusieurs alignements tabul\'es avec un seul |\set!-tabs|. Voici un exemple
+d'alignement tabul\'e~:
+
+\xrdef{tabbedexample}\csdisplay
+{\hsize = 1.7 in \settabs 2 \columns
+\+cattle&herd\cr
+\+fish&school\cr
+\+lions&pride\cr}
+|
+La commande |\settabs 2 \columns| de cet exemple \ctsref{\settabs}
+demande \`a \TeX\ de produire deux colonnes de largeurs \'egales.
+La longueur de la ligne est de $1.7$ pouces.
+L'alignement compos\'e ressemble \`a ceci~:
+
+{\def\+{\tabalign}% so it isn't \outer.
+\vdisplay{%
+\hsize 1.7 in \settabs 2 \columns
+\+cattle&herd\cr
+\+fish&school\cr
+\+lions&pride\cr}
+}%
+
+\margin{Missing explanation added here.}
+Il y a une autre forme d'alignement tabul\'e dans lequel vous sp\'ecifiez les
+largeurs de colonne avec un exemple. La largeur de colonne de l'exemple
+d\'etermine les largeurs de colonne du reste de l'alignement~:
+\csdisplay
+{\settabs\+cattle\quad&school\cr
+\+cattle&herd\cr
+\+fish&school\cr
+\+lions&pride\cr}
+|
+Voici le r\'esultat~:
+{\def\+{\tabalign}% so it isn't \outer.
+\vdisplay{%
+\settabs\+cattle\quad&school\cr
+\+cattle&herd\cr
+\+fish&school\cr
+\+lions&pride\cr}
+}%
+
+\eix^^|\settabs|
+\eix\ctsidxref{+}
+\bix^^|\halign|
+Les alignements horizontaux sont construits avec |\halign| \ctsref\halign.
+\TeX\ ajuste la largeur des colonnes d'un alignement horizontal en fonction
+du contenu des colonnes. Quand \TeX\ rencontre la commande |\halign| qui
+d\'ebute un alignement horizontal, il examine d'abord toutes les rang\'ees de
+l'alignement pour voir quelle est la largeur des entr\'ees. Il fixe alors
+la largeur des colonnes pour accommoder les entr\'ees les plus larges dans ces
+colonnes.
+
+Un alignement horizontal g\'er\'e par |\halign| est constitu\'e d'un
+``\pix^{pr\'eam\-bule}'' qui indique le sch\'ema des rang\'ees suivi par les
+rang\'ees elles-m\^emes.
+\ulist
+\li Le pr\'eambule est constitu\'e d'une suite de \pix^{patron}s, un pour
+chaque colonne. Le patron d'une colonne sp\'ecifie comment le texte de cette
+colonne doit \^etre compos\'e. Chaque patron doit inclure un seul carac\-t\`ere |#|
+\ttidxref{#}\xrdef{@asharp}
+pour indiquer o\`u \TeX\ doit substituer le texte d'une entr\'ee dans le patron.
+Les patrons sont s\'epar\'es par une esperluette (|&|) \ttidxref{&} et la fin
+du pr\'eambule est indiqu\'ee par |\cr|. En procurant un patron appro\-pri\'e, vous
+pouvez obtenir des effets comme centrer une colonne, justifier une colonne
+\`a gauche ou \`a droite ou composer une colonne dans une \refterm{police}
+particuli\`ere.
+
+\li Les rang\'ees ont la m\^eme forme que dans l'alignement tabul\'e, sauf que
+vous ne mettez pas de |\+| au d\'ebut de chaque rang\'ee.
+Comme avant, des entr\'ees sont s\'epar\'ees par |&| et la fin d'une rang\'ee est
+indiqu\'ee par |\cr|.
+\TeX\ traite chaque entr\'ee comme un \refterm{groupe}, donc, chaque commande
+de changement de police ou autre \refterm{assignement} dans le patron de
+colonne ne prend effet que pour les entr\'ees de cette colonne.
+\endulist
+\noindent Le pr\'eambule et les rang\'ees doivent \^etre inclus entre les
+accolades qui suivent |\halign|. Chaque alignement |\halign| doit inclure
+son propre pr\'eambule.
+
+Par exemple, l'alignement horizontal~:
+\csdisplay
+\tabskip=2pc
+\halign{\hfil#\hfil &\hfil#\hfil &\hfil#\hfil \cr
+ &&\it Table\cr
+\noalign{\kern -2pt}
+ \it Creature&\it Victual&\it Position\cr
+\noalign{\kern 2pt}
+ Alice&crumpet&left\cr
+ Dormouse&muffin&middle\cr
+ Hatter&tea&right\cr}
+|
+
+\noindent produit le r\'esultat~:
+
+\xrdef{halignexample}
+\vdisplay{%
+\tabskip=2pc \halign{\hfil#\hfil &\hfil#\hfil &\hfil#\hfil \cr
+ &&\it Table\cr
+\noalign{\kern -2pt}
+ \it Creature&\it Victual&\it Position\cr
+\noalign{\kern 2pt}
+ Alice&crumpet&left\cr
+ Dormouse&muffin&middle\cr
+ Hatter&tea&right\cr}
+}%
+\noindent Le ^|\tabskip| \ctsref{\tabskip} de cet exemple
+demande \`a \TeX\ d'ins\'erer |2pc| de
+\refterm{ressort} entre les colonnes.
+La commande ^|\noalign| \ctsref{\noalign} d'ins\'erer
+du mat\'eriel de \refterm{mode vertical} entre deux rang\'ees.
+Dans cet exemple nous avons
+utilis\'e |\noalign| pour produire de l'espace suppl\'ementaire entre les
+rang\'ees de titre et les rang\'ees de donn\'ees, et aussi rapprocher ``Table''
+et ``Position''.
+(Vous pouvez aussi utiliser |\noalign| avant la premi\`ere rang\'ee ou apr\`es la
+derni\`ere.)
+\eix^^|\halign|
+
+Vous pouvez aussi construire un alignement vertical avec la commande ^|\valign|
+\ctsref{\valign}. Un alignement vertical est organis\'e comme une s\'erie de
+colonnes plut\^ot que comme une s\'erie de rang\'ees. Un alignement vertical suit
+les m\^eme r\`egles qu'un alignement horizontal sauf que le r\^ole des rang\'ees et
+des colonnes est invers\'e. Par exemple, l'alignement vertical~:
+
+\csdisplay
+{\hsize=0.6in \parindent=0pt
+\valign{#\strut&#\strut&#\strut\cr
+ one&two&three\cr
+ four&five&six\cr
+ seven&eight&nine\cr
+ ten&eleven\cr}}
+|
+\noindent produit~:
+\vdisplay{%
+{\hsize=0.6in \parindent=\listleftindent % Because lists and displays
+ % are not indented just by \parindent.
+\valign{#\strut&#\strut&#\strut\cr
+ one&two&three\cr
+ four&five&six\cr
+ seven&eight&nine\cr
+ ten&eleven\cr}}
+}
+La commande ^|\strut| \ctsref{\strut} dans le patron est n\'ecessaire pour
+que les entr\'ees de chaque rang\'ee s'alignent proprement, c'est-\`a-dire,
+pour avoir une \refterm{ligne de base} commune et garder une distance
+uniforme entre les lignes de base.
+\eix\ctsidxref{cr}
+\eix^^{tables}
+
+\endconcept
+
+
+\concept {\anatomy}
+
+\texbook\ d\'ecrit la fa\c con dont {\TeX} compile ses sources en termes de
+``t\^aches digestives'' de \TeX---ses ``^{yeux}'', ``^{bouche}'',
+``^{\oesophage}'', ``^{estomac}'' et ``^{intestin}''. Savoir comment ces
+organes travaillent peut \^etre utile quand vous essayer de comprendre de subtils
+aspects du raisonnement de \TeX\ quand il dig\`ere un document.
+
+\ulist
+
+\li En utilisant ses ``\pix^{yeux}'', \TeX\ lit les \refterm{caract\`eres:caract\`ere} du
+^{fichier source} et les passe \`a sa bouche. Puisqu'un fichier source
+peut contenir des commandes ^|\input| \ctsref{\input},
+\TeX\ peut en effet d\'etourner son regard d'un fichier \`a l'autre.
+
+\li En utilisant sa ``\pix^{bouche}'', {\TeX} assemble les caract\`eres en
+\refterm{tokens:token} et les passe \`a son \oesophage.
+Chaque token est soit une \refterm{s\'equence de contr\^ole} ou un simple
+caract\`ere. Une s\'equence de contr\^ole commence toujours par un \refterm{caract\`ere
+d'\'echappement}. Notez que les espaces et les fins de ligne sont des caract\`eres
+de plein droit, de plus \TeX\ compresse une suite d'espaces en un seul token
+d'espace. Voir \knuth{pages~46--47}{56--58} pour les r\`egles avec lesquelles \TeX\
+assemble les caract\`eres en tokens.
+^^{tokens//assembl\'ee \`a partir de caract\`eres}
+
+\li En utilisant son ``\pix^{\oesophage}'', {\TeX} d\'eveloppe chaque macro, conditions, et
+^^{macros//d\'evelopp\'ees dans l'estomac de \TeX}
+^^{tokens//pass\'ee \`a l'estomac de \TeX}
+constructions similaires qu'il trouve (voir \knuth{pages~212--216}{249--253}) et passe
+la suite de \refterm{tokens:token} r\'esultante
+\`a l'estomac de \TeX. D\'evelopper un token
+peu faire appara\^\i tre d'autres tokens qui \`a leur tour ont besoin d'\^etre
+d\'evelopp\'es. {\TeX} parcourt ce d\'eveloppement de gauche \`a droite \`a moins
+que l'ordre soit modi\-fi\'e par
+une commande telle que |\expandafter| \ctsref{\expandafter}.
+En d'autres mots, l'\oe sophage de \TeX\ d\'eveloppe toujours le token le plus \`a
+gauche non-d\'evelopp\'e qu'il n'a pas encore envoy\'e vers l'estomac de \TeX.
+
+\li En utilisant son ``\pix^{estomac}'', {\TeX} ex\'ecute tous les groupes de token.
+Chaque groupe contient une commande primitive suivie par ses
+arguments, s'il y en a.
+La plupart des commandes sont de type ``compose ce caract\`ere'',
+dont leur groupe n'est constitu\'e que d'un token.
+Suivant les instructions donn\'ees par les commandes, l'estomac de
+\TeX\ assemble de plus en plus grandes unit\'es, d\'ebutant par des
+caract\`eres et finissant par des pages,
+et passe les pages \`a l'intestin de \TeX.
+^^{pages//assembl\'ees dans l'estomac de \TeX}
+L'estomac de \TeX\ ex\'ecute les taches de \refterm{coupure de ligne}---%
+^^{coupures de ligne}
+c'est-\`a-dire, couper chaque paragraphe en suite de lignes---%
+et de \refterm{coupure de page}---c'est-\`a-dire,
+couper une suite continue de lignes
+et autres mat\'eriels de mode vertical en pages.
+
+\li En utilisant ses ``\pix^{intestin}'', \TeX\ transforme les pages produites par son
+estomac en une forme destin\'ee \`a \^etre lue
+par d'autres program\-mes. Il envoit alors la sortie transform\'ee dans le
+\dvifile.
+^^{\dvifile//cr\'e\'e par l'intestin de \TeX}
+
+\endulist
+
+La plupart du temps, vous pouvez penser que les processus qui prennent place dans
+les yeux, bouches, \oesophage, estomac et intestin de \TeX\ ont lieu les uns apr\`es
+les autres. La v\'erit\'e en la mati\`ere est que des commandes ex\'ecut\'ees dans l'estomac
+de \TeX\ peuvent influencer les \'etapes suivantes de la digestion. Par exemple,
+quand l'estomac de \TeX\ rencontre la commande |\input| \ctsref{\input}, ses
+yeux commencent \`a lire un fichier diff\'erent~; quand l'estomac de \TeX\
+rencontre une commande |\catcode| \ctsref{\catcode} sp\'ecifiant un code de
+cat\'egorie pour le caract\`ere $c$, l'interpr\'etation de $c$ par la bouche de
+\TeX\ s'en trouve affect\'e. Et quand l'estomac de \TeX\ rencontre une d\'efinition
+de \refterm{macro}, les d\'eveloppements charg\'es dans l'\oe sophage de \TeX\
+sont eux aussi affect\'es.
+
+Vous pouvez comprendre comment les processus agissent les uns sur les autres
+en imaginant que chaque processus avale goul\^ument le
+rendu de son pr\'ed\'ecesseur d\`es qu'il devient disponible. Par
+exemple, une fois que l'estomac de \TeX\ a vu le dernier caract\`ere du
+nom de fichier dans une commande |\input|, \TeX\ fixe son regard
+imm\'ediatement sur le premier caract\`ere du fichier d'entr\'ee indiqu\'e.
+
+\endconcept
+
+%\pagebreak
+\conceptindex{arguments}
+\concept argument
+
+^^{commandes//arguments de}
+Un \defterm{argument} contient le texte pass\'e \`a une
+\refterm{commande}.
+Les arguments d'une commande compl\`etent la description de ce que
+la commande est suppos\'ee faire.
+La commande peut \^etre soit une commande \refterm{primitive}, soit une
+\refterm{macro}.
+
+Chaque commande primitive ^^{primitive//commande}
+a sa propre convention sur la forme de ses
+arguments. Par exemple, la suite de \refterm{tokens:token}~:
+
+\csdisplay
+\hskip 3pc plus 1em
+|
+consiste en la commande `|\hskip|' et les arguments
+`|3pc plus 1em|'. Mais si vous \'ecrivez~:
+
+\csdisplay
+\count11 3pc plus 1em
+|
+vous obtiendrez un effet enti\`erement diff\'erent.
+\TeX\ traitera `|\count11|' comme une commande avec un argument `|3|',
+suivi par les tokens de texte ordinaire `|pc plus 1em|'
+(parce que les registres de compteur attendent l'affectation d'un nombre)%
+---probablement pas ce dont vous aviez
+intention. L'effet de la commande, donc, sera d'assigner
+$3$ au registre du compteur $11$ (voir la discussion sur ^|\count|,
+\xref\count).
+
+Les macros, d'un autre cot\'e, suivent toutes la m\^eme convention
+pour leurs arguments.
+^^{macros//arguments de}
+Chaque argument pass\'e \`a une macro
+correspond \`a un \refterm{param\`etre}
+^^{param\`etres//et arguments}
+dans la d\'efinition de cette
+macro. ^^{macros//param\`etres de}
+Un param\`etre de macro est soit ``d\'elimit\'e'', soit ``non d\'elimite''.
+La d\'efinition de la macro d\'etermine le nombre et la nature des param\`etres de la macro
+et donc le nombre et la nature des arguments de la macro.
+
+La diff\'erence entre un argument d\'elimit\'e et un argument non d\'elimit\'e tient
+\`a la fa\c con qu'a \TeX\ de d\'ecider o\`u se termine l'argument.
+^^{arguments d\'elimit\'es}
+^^{arguments non d\'elimit\'es}
+\ulist
+\li Un argument d\'elimit\'e est constitu\'e des tokens \`a partir du d\'ebut de
+l'argument jusqu'\`a, mais sans l'inclure, la suite de tokens particuliers
+qui servent comme d\'elimiteur pour cet argument. Le d\'elimiteur est sp\'ecifi\'e
+dans la d\'efinition de la macro. Ainsi, vous ajoutez un argument d\'elimit\'e \`a
+une macro en \'ecrivant l'argument lui-m\^eme, suivi par le d\'elimiteur. Un
+argument d\'elimit\'e peut \^etre vide, c'est-\`a-dire, ne pas avoir de texte du
+tout. Chaque accolade d'un argument d\'elimit\'e doit \^etre appair\'e
+correctement, c'est-\`a-dire, chaque accolade gauche doit avoir une accolade
+droite correspondante et vice versa.
+
+\li Un argument non d\'elimit\'e consiste en un token simple ou une suite de
+tokens entour\'e d'accolades, comme ceci~:
+`|{Here is {the} text.}|'. Malgr\'e les apparences, les accolades ext\'erieures
+ne forment pas un \refterm{groupe}---\TeX\ ne les utilise que pour
+d\'eterminer quel est l'argument. Chaque accolade interne, comme celles autour
+de `|the|', doivent \^etre appair\'ees correctement. Si vous faites une erreur
+et mettez trop d'accolades fermantes, \TeX\ se plaindra d'un `unexpected right brace'
+\TeX\ se plaindra aussi si vous mettez trop d'accolades ouvrantes, mais vous
+obtiendrez \emph{cette} plainte longtemps apr\`es l'endroit o\`u vous pensiez
+finir l'argument (voir \xref{mismatched}).
+\endulist
+\noindent
+Voir \conceptcit{macro} pour plus d'information sur les param\`etres et les
+arguments. Vous trouverez les r\`egles pr\'ecises concernant les arguments
+d\'elimit\'es et non d\'elimit\'es dans \knuth{pages~203--204}{237--239}.
+\endconcept
+
+
+\concept {ASCII}
+
+\defterm{\ascii} est l'abr\'eviation de ``American Standard Code for
+Information Interchange''. Il y a $256$ ^{caract\`eres} \ascii, chacun avec
+son propre num\'ero de code, mais seuls les~$128$ premiers
+ont \'et\'e standardis\'es. Vous pouvez trouver leur signification dans une ``table
+de codes'' \ascii\ comme celle de la \knuth{page~367}{425}.
+Les caract\`eres $32$--$126$ sont des ``caract\`eres imprimables'',
+^^{caract\`eres imprimables} comme les lettres, les chiffres et les signes de
+ponctuation. Les caract\`eres restants sont des ``^{caract\`eres de contr\^ole}''
+qui sont utilis\'es sp\'ecialement (dans l'industrie informatique, pas dans \TeX)
+pour contr\^oler les entr\'ees\slash sorties et les instruments de communication
+de donn\'ees.
+Par exemple, le code \ascii\ $84$ correspond \`a la lettre `T', tandis que
+le code \ascii\ $12$ correspond \`a la fonction ``form feed''
+(interpr\'et\'e par la plupart des imprimantes par ``commence une nouvelle page'').
+Bien que le standard \ascii\ sp\'ecifie des significations pour les caract\`eres de
+contr\^ole, beaucoup de fabricants d'\'equipements tels que modems et imprimantes
+ont utilis\'e les caract\`eres de contr\^ole pour des usages autres que le standard.
+
+La signification d'un caract\`ere dans \TeX\ est normalement li\'ee \`a sa signification
+dans le standard \ascii, et les \refterm{polices:police} qui contiennent
+des caract\`eres imprimables \ascii\ ont normalement ces caract\`eres aux m\^emes
+positions que leurs contreparties \ascii.
+Mais certaines polices, notamment celles utilis\'ees en math\'ematique, remplacent
+les caract\`eres imprimables \ascii\ par d'autres caract\`eres sans aucune relation
+avec les caract\`eres \ascii.
+Par exemple, La police Computer Modern math\'ematique
+^^{police Computer Modern}
+|cmsy10| a le symbole math\'ematique
+`{$\forall$}' \`a la place du chiffre \ascii\ `8'.
+
+
+\endconcept
+
+\conceptindex{assignements}
+\concept assignement
+
+Un \defterm{assignement} est une construction qui dit \`a \TeX\ d'assigner une
+valeur \`a un registre,
+^^{registres//assignement \`a des}
+\`a un de ces
+\refterm{param\`etres:param\`etre} internes,
+^^{param\`etres//assignements \`a des}
+\`a une entr\'ee dans une de ces tables internes
+ou \`a une \refterm{s\'equence de contr\^ole}. Quelques exemples d'assignements sont~:
+
+\csdisplay
+\tolerance = 2000
+\advance\count12 by 17
+\lineskip = 4pt plus 2pt
+\everycr = {\hskip 3pt \relax}
+\catcode\`@ = 11
+\let\graf = \par
+\font\myfont = cmbx12
+|
+
+Le premier assignement indique que \TeX\ doit assigner la valeur num\'e\-rique
+|2000| au param\`etre num\'erique |\tolerance|, c'est-\`a-dire, met la valeur de
+|\tolerance| \`a $2000$. Les autres assignements sont similaires. Le `|=|'
+et les espaces sont optionnels, donc vous pouvez aussi \'ecrire le premier
+assignement plus bri\`evement~:
+
+\csdisplay
+\tolerance2000
+|
+
+Voir \knuth{pages~276--277}{321--322} pour la syntaxe d\'etaill\'ee des assignements.
+\endconcept
+
+
+\conceptindex{\boites}
+\concept {\boites}
+
+Une \defterm{bo\^\i te} est un rectangle de mati\`ere \`a composer. Un simple
+\refterm{caract\`ere} est une bo\^\i te par lui-m\^eme, et une page enti\`ere est
+aussi une bo\^\i te. \TeX\ forme une page comme une suite de bo\^\i tes contenant
+des bo\^\i tes contenant des bo\^\i tes. La bo\^\i te sup\'erieure est la page elle-m\^eme,
+les bo\^\i tes inf\'erieures sont souvent de simples caract\`eres et de simples
+lignes sont des bo\^\i tes qui sont quelque part au milieu.
+
+\TeX\ effectue la plupart de ses activit\'es de construction de bo\^\i te implicitement quand il
+construit des paragraphes et des pages.
+Vous pouvez construire des bo\^\i tes explicitement
+en utilisant nombre de \refterm{commandes} de \TeX, notamment
+^|\hbox| \ctsref{\hbox},
+^|\vbox| \ctsref{\vbox} et
+^|\vtop| \ctsref{\vtop}.
+La commande ^|\hbox|
+construit une bo\^\i te en assemblant des plus petites bo\^\i tes horizontalement de gauche \`a droite~;
+il op\`ere sur une \refterm{liste horizontale} et donne
+une \refterm{hbox} ^^{hbox} (bo\^\i te horizontale).
+^^{listes horizontales}
+Les commandes ^|\vbox| et |\vtop|
+construisent une bo\^\i te en assemblant de plus petites bo\^\i tes verticalement de haut en bas~;
+^^{vbox}
+elles op\`erent sur une \refterm{liste verticale}
+et donnent une \refterm{vbox} ^^{vbox} (bo\^\i te verticale).
+^^{listes verticales}
+Ces listes horizontales et verticales peuvent ne pas inclure que des bo\^\i tes plus petites mais
+plusieurs autres sortes d'entit\'es, par exemple, un \refterm{ressort} et
+des cr\'enages.
+^^{cr\'enages//comme \'el\'ements de liste}
+
+Une bo\^\i te a une \refterm{hauteur}, une \refterm{profondeur} et une \refterm{largeur},
+^^{hauteur} ^^{profondeur} ^^{largeur}
+comme ceci~:
+\vdisplay{\offinterlineskip\sevenrm
+ \halign{#&#&\kern3pt \hfil#\hfil\cr
+ &\hrulefill\cr
+ &\vrule
+ \vtop to .7in{\vss \hbox to .9in{\hss ligne de base\hss}\vskip4pt}%
+ \vrule
+ &\labelledheight{.7in}{hauteur}\cr
+ %
+ \vbox to 0pt{
+ \vss
+ \hbox{point de r\'ef\'erence\hbox to 15pt{\rightarrowfill}%
+ \hskip3pt}%
+ \kern-4.5pt}&{\box\refpoint}\hrulefill\cr
+ %
+ \omit
+ &\vrule\hfil\vrule
+ &\labelledheight{.4in}{profondeur}\cr
+ %
+ &\hrulefill\cr
+ %
+ \noalign{\vskip3pt}%
+ &\leftarrowfill { largeur }\rightarrowfill\cr
+}}
+
+^^{lignes de base}
+La \refterm{ligne de base} est comme une des
+lignes-guide claire d'un bloc de papier lign\'e.
+Les bo\^\i tes de lettres telles qu'un `g'
+s'\'etendent sous la ligne de base~; Les bo\^\i tes de lettres telles qu'un `h' ne le font pas.
+La hauteur d'une bo\^\i te est la distance par laquelle une bo\^\i te s'\'etend au-dessus de sa
+ligne de base, tandis que sa profondeur est la distance par laquelle elle s'\'etend sous sa
+ligne de base. \bix^^{point de r\'ef\'erence}
+Le \minref{point de r\'ef\'erence}
+d'une bo\^\i te est l'endroit o\`u sa ligne de base rejoint son cot\'e gauche.
+
+{\tighten
+\TeX\ construit une hbox $H$ d'une liste horizontale en d\'esignant un point
+de r\'ef\'erence pour $H$ et en enfilant les items dans la liste $H$ un par un
+de gauche \`a droite. chaque bo\^\i te de la liste est plac\'ee de telle fa\c con que
+sa ligne de base co\"\i ncide avec la ligne de base de $H$\kern-2pt, c'est-\`a-%
+dire que les bo\^\i tes la composant sont align\'ees horizontalement%
+\footnote{Si une bo\^\i te est hauss\'ee ou baiss\'ee avec ^|\raise| ou ^|\lower|,
+\TeX\ utilise son point de r\'ef\'erence avant le d\'eplacement quand il la
+place.}. La hauteur de $H$ est la hauteur de la bo\^\i te la plus grande de la
+liste, et la profondeur de $H$ est la profondeur de la bo\^\i te la plus
+profonde de la liste. La largeur de $H$ est la somme des largeurs de tous
+les items dans la liste. Si quelques-uns de ces items sont des
+\refterm{ressort}s et que \TeX\ a besoin de r\'etr\'ecir ou d'\'etirer le ressort, la
+largeur de $H$ sera plus large ou plus \'etroite en cons\'equence. Voir la
+\knuth{page~77}{90} pour les~d\'etails.
+\par}
+
+De m\^eme, \TeX\ construit une vbox $V$ d'une liste verticale en d\'esignant un
+point de r\'ef\'erence temporaire pour $V$ et ensuite en enfilant les items dans la
+liste $V$ un par un de haut en bas. Chaque bo\^\i te dans la liste est
+plac\'ee de telle fa\c con que leur point de r\'ef\'erence est align\'e verticalement avec le
+point de r\'ef\'erence de $V$\footnote{Si une bo\^\i te est d\'eplac\'ee \`a gauche
+ou \`a droite avec
+^|\moveleft| ou ^|\moveright|, \TeX\ utilise son point de r\'ef\'erence avant
+le d\'eplacement quand il la place.}. Quand chaque bo\^\i te autre que la premi\`ere est ajout\'ee \`a
+\Vcomma, \TeX\ met un \minref{ressort interligne} juste au-dessus d'elle. (Ce
+^{ressort interligne} n'a pas d'\'equivalent pour les hbox.) La largeur de $V$ est la
+largeur de la bo\^\i te la plus large de la liste, et les extensions verticales (hauteur
+plus profondeur) de $V$ est la somme des \'el\'ements verticaux \'etendus de tous les
+items de la liste.
+
+\bix^^|\vbox|
+\bix^^|\vtop|
+La diff\'erence entre |\vbox| et |\vtop| est sur leur fa\c con de partitionner
+l'extension verticale de $V$ en hauteur et en largeur.
+Le choix du point de r\'ef\'erence de $V$ d\'etermine cette partition.
+\ulist
+\li Pour |\vbox|, \TeX\ place le point de r\'ef\'erence sur une ligne
+horizontale avec le point de r\'ef\'erence du dernier composant bo\^\i te ou trait
+de \Vcomma, sauf que si la derni\`ere bo\^\i te (ou le dernier trait) est
+suivie d'un ressort ou d'un cr\'enage, \TeX\ place le point de r\'ef\'erence tout en
+bas de $V$%
+\footnote{La profondeur est limit\'ee par le param\`etre
+^|\boxmaxdepth| \ctsref{\boxmaxdepth}.}.
+
+\li Pour |\vtop|, \TeX\ place le point de r\'ef\'erence sur une ligne horizontale
+avec le point de r\'ef\'erence du premier composant bo\^\i te ou trait de \Vcomma,
+sauf que si la premi\`ere bo\^\i te (ou le premier trait)
+est pr\'ec\'ed\'ee par un ressort ou un cr\'enage, \TeX\ place
+le point de r\'ef\'erence tout en haut de \Vperiod.
+
+\endulist
+\noindent
+A proprement parler, alors, |\vbox| met le point de r\'ef\'erence pr\`es du haut
+du vbox et |\vtop| le met pr\`es du haut.
+Quand vous voulez aligner une rang\'ee de vbox pour que leur sommet
+s'aligne horizontalement,
+vous utiliserez normalement |\vtop| plut\^ot que |\vbox|.
+Voir les \knuth{pages~78 et 80--81}{91 et 94--95} pour les
+d\'etails sur comment \TeX\ construit des vbox.
+\eix^^|\vbox|
+\eix^^|\vtop|
+\eix^^{point de r\'ef\'erence}
+
+Vous avez une certaine libert\'e dans la construction de bo\^\i tes. Le mat\'eriel
+\`a composer
+dans une bo\^\i te peut s'\'etendre au-del\`a des bords de la bo\^\i te comme il le fait
+pour certaines lettres (pour la plupart italiques ou pench\'ees). Les composants
+bo\^\i tes des grandes bo\^\i tes peuvent se chevaucher.
+Une bo\^\i te peut avoir une largeur, une profondeur ou une hauteur n\'egative,
+des bo\^\i tes comme celles-ci ne sont pas souvent utiles.
+
+Vous pouvez sauvegarder une bo\^\i te dans un \refterm{registre} de bo\^\i te et la rappeler plus tard.
+Avant d'utiliser un registre de bo\^\i te,
+^^{registres de \boite}
+Vous devez la r\'eserver et lui donner un nom
+avec la commande ^|\newbox| \ctsref{\@newbox}. Voir
+\conceptcit{registre} pour plus d'information sur les registres de bo\^\i tes.
+\endconcept
+
+
+\conceptindex{caract\`eres}
+\concept caract\`ere
+
+{\tighten
+\TeX\ travaille avec des \defterm{caract\`eres} provenant de deux contex\-tes~:
+des caract\`eres du source, quand il lit et des caract\`eres de sortie,
+quand il compose. \TeX\ transforme la plupart des caract\`eres saisis dans
+le caract\`ere de sortie qui lui correspond. Par exemple, il transforme
+normalement la lettre saisie `|h|' en `h' compos\'e dans la police courante.
+Ce n'est pas le cas, n\'eanmoins, pour un caract\`ere saisi tel que `|$|' qui
+a une signification sp\'eciale.
+\par}
+
+\TeX\ obtient ses caract\`eres saisis en les lisant \`a partir du fichier source
+(ou de votre terminal) et en d\'eveloppant les \refterm{macros:macro}. Ce
+sont les seuls moyens par lesquels \TeX\ puisse acqu\'erir un caract\`ere saisi.
+Chaque caract\`ere d'entr\'ee a un num\'ero de code correspondant \`a sa position
+dans la table de code \refterm{\ascii}. ^^{\ascii}
+Par exemple, la lettre `|T|' a le code \ascii~$84$.
+
+Quand \TeX\ lit un caract\`ere, il lui attache un \refterm{code de cat\'egorie}.
+^^{codes de cat\'egorie//attach\'e pendant l'entr\'ee}
+Le code de cat\'egorie affecte la fa\c con dont \TeX\ interpr\`ete le caract\`ere
+une fois qu'il a \'et\'e lu. \TeX\ d\'etermine (et se souvient) des codes de
+cat\'egorie des caract\`eres d'une macro quand il lit sa d\'efinition. Comme \TeX\
+lit les caract\`eres avec ses yeux \seeconcept{\anatomy} il fait quelques
+``filtrages'' comme condenser des suites de caract\`eres espace en un espace
+seul. Voir les \knuth{pages~46--48}{56--59} pour les d\'etails de ce filtrage.
+
+Les ``^{caract\`eres de contr\^ole}'' \ascii\ ont les codes $0$--$31$ et $127$--$255$.
+Ils ne sont pas visualisables ou provoquent des choses \'etranges si vous essayez
+de les afficher.
+N\'eanmoins, on en a parfois besoin dans les sources \TeX, donc \TeX\ a une
+fa\c con sp\'eciale de les noter.
+\xrdef{twocarets}
+Si vous saisissez `|^^|$c$', o\`u $c$ est n'importe quel caract\`ere, vous obtenez
+le caract\`ere dont le code \ascii\ est soit plus grand soit plus petit de $64$
+que le code \ascii\ de $c$.
+La plus grande valeur de code acceptable en utilisant cette notation est $127$
+donc la notation n'est pas ambigu\"e.
+Trois instances particu\-li\`erement communes de cette notation sont
+`|^^M|' (le caract\`ere \ascii\ \asciichar{retour}),
+`|^^J|' (le caract\`ere \ascii\ \asciichar{saut\ de\ page}) et
+`|^^I|' (le caract\`ere \ascii\ \asciichar{tabulation\ horizontale}).
+\ttidxref{^^M}\ttidxref{^^J}\ttidxref{^^I}
+
+{\tighten
+\TeX\ a aussi une autre notation pour indiquer la valeur des codes \ascii\
+qui fonctionne pour tous les codes de caract\`ere de $0$ \`a $255$.
+\xrdef{hexchars}
+Si vous saisissez `|^^|$xy$', o\`u $x$ et $y$ sont des ^{chiffres
+hexad\'ecimaux} `|0123456789abcdef|', vous obtenez le caract\`ere dont le
+code est sp\'ecifi\'e. Des lettres minuscules sont n\'ecessaires ici.
+\TeX\ opte pour l'interpr\'etation des ``chiffres hexad\'ecimaux'' quand il
+a le choix, donc vous ne devez pas faire suivre un caract\`ere comme `|^^a|'
+par un chiffre hexad\'ecimal minuscule---si vous le faites, vous aurez la
+mauvaise interpr\'etation.
+Si vous avez besoin d'utiliser cette notation, vous trouverez pratique
+d'avoir une table des codes \ascii.
+\par}
+
+Un caract\`ere de sortie est un caract\`ere de composition.
+Une commande qui produit un caract\`ere de sortie signifie
+``produit une \refterm{bo\^\i te} contenant un caract\`ere num\'ero $n$ dans
+la \refterm{police} courante'', o\`u $n$ est d\'etermin\'e par la commande.
+\TeX\ produit votre document compos\'e en combinant de telles bo\^\i tes avec
+d'autres \'el\'ements typographiques et les arrange sur la page.
+
+Un caract\`ere d'entr\'ee dont le code de cat\'egorie est $11$ (^{lettre}) ou
+$12$ (autre)
+^^{autres caract\`eres}
+agit comme une commande pour produire le caract\`ere de sortie correspondant.
+En plus, vous pouvez demander \`a \TeX\ de produire un carac\-t\`ere $n$ en
+entrant la commande `|\char |$n$' \ctsref{\char}, ^^|\char| o\`u $n$ est un
+\refterm{nombre} entre $0$ et $255$. Les commandes `|h|',
+|\char`h| et |\char104| ont toutes le m\^eme effet. ($104$ est le
+code \ascii\ de `h'.)
+
+\endconcept
+
+
+\conceptindex{caract\`eres actifs}
+\concept {caract\`ere actif}
+
+Un \defterm{caract\`ere actif} est un \refterm{caract\`ere} poss\'edant une
+d\'efinition, c'est-\`a-dire, une d\'efinition de macro, qui lui est associ\'ee.
+^^{macros//nomm\'ees par des caract\`eres actifs}
+Vous pouvez penser \`a un caract\`ere actif comme \`a une s\'equence de contr\^ole
+d'un type sp\'ecial. Quand \TeX\ rencontre un caract\`ere actif, il ex\'ecute la
+d\'efinition associ\'ee avec le caract\`ere. Si \TeX\ rencontre un caract\`ere actif
+qui n'a pas de d\'efinition associ\'ee, il se plaindra d'un ``undefined control
+sequence''.
+
+Un caract\`ere actif a un \refterm{code de cat\'egorie} \`a $13$ (la valeur
+d'^|\active|).
+Pour d\'efinir un caract\`ere actif, vous devez d'abord
+utiliser la commande ^|\catcode|
+\ctsref{\catcode} pour le rendre actif
+et ensuite donner la d\'efini\-tion du caract\`ere, en utilisant
+une commande comme |\def|, |\let| ou |\chardef|.
+La d\'efinition d'un caract\`ere actif a la m\^eme forme que
+la d\'efinition d'une \refterm{s\'equence de contr\^ole}.
+^^{codes de cat\'egorie//de caract\`eres actifs}
+Si vous essayez de d\'efinir la macro pour un caract\`ere actif
+avant d'avoir rendu le caract\`ere actif, \TeX\ se plaindra d'un
+"missing control sequence".
+
+Par exemple, le caract\`ere tilde (|~|) est d\'efini comme un caract\`ere
+actif dans \plainTeX. Il
+produit un espace entre deux mots mais relie ces mots pour que
+\TeX\ ne transforme pas cet espace en \refterm{coupure de ligne}.
+\refterm{\PlainTeX:\plainTeX} d\'efinit `|~|' par les commandes~:
+
+\csdisplay
+\catcode `~ = \active \def~{\penalty10000\!visiblespace}
+|
+(|\penalty| inhibe une coupure de ligne et `|\!visiblespace|'
+ins\`ere un espace.)
+\endconcept
+
+
+\concept {caract\`ere d'\'echappement}
+
+Un \defterm{caract\`ere d'\'echappement} introduit une s\'equence de contr\^ole.
+Le caract\`ere d'\'echappement dans \refterm{\plainTeX} est l'antislash (|\|).
+\indexchar \
+Vous pouvez changer le caract\`ere d'\'echappement de $c_1$ vers $c_2$
+en r\'eassignant les codes de cat\'egorie de $c_1$ et $c_2$
+avec la commande ^|\catcode| \ctsref{\catcode}.
+Vous pouvez aussi d\'efinir des caract\`eres d'\'echap\-pement additionnels de la m\^eme fa\c con.
+Si vous voulez composer du mat\'e\-riel contenant des caract\`eres d'\'echappement litt\'eraux,
+vous devez
+soit
+(a) d\'efinir une s\'equence de contr\^ole qui transforme le caract\`ere d'\'echap\-pe\-ment imprim\'e soit
+(b) changer temporairement son code de cat\'egorie, en utilisant la
+m\'ethode montr\'ee en \xrefpg{verbatim}. La d\'efinition~:
+
+\csdisplay
+\def\\{$\backslash$}
+|
+est un moyen de cr\'eer une s\'equence de contr\^ole qui le transforme en `$\backslash$'
+(un antislash compos\'e dans une police math\'ematique).
+
+Vous pouvez utiliser le param\`etre ^|\escapechar| \ctsref{\escapechar} pour sp\'ecifier
+comment le caract\`ere de contr\^ole est repr\'esent\'e dans des s\'equences de contr\^ole
+synth\'etis\'ees,
+c'est-\`a-dire, celles cr\'e\'ees par |\string| et |\message|.
+
+
+\endconcept
+
+
+\concept {c\'esure}
+
+\TeX\ c\'esure les mots automatiquement en compilant votre document.
+\TeX\ n'est pas un acharn\'e de l'insertion de c\'esure, pr\'ef\'erant trouver \`a la
+place une bonne coupure de ligne en ajustant l'espace entre les mots et en
+d\'epla\c cant les mots d'une ligne \`a l'autre.
+\TeX\ est assez intelligent pour comprendre les c\'esures qui sont d\'ej\`a dans
+les mots
+
+Vous pouvez contr\^oler les c\'esures de \TeX\ de plusieurs fa\c cons~:
+\ulist
+\li Vous pouvez dire \`a \TeX\ d'autoriser une c\'esure \`a un endroit particulier
+en ins\'erant une c\'esure optionnelle
+^^{c\'esures optionnelles}
+avec la commande ^|\-| \ctsref{\@minus}.
+\li Vous pouvez dire \`a \TeX\ comment couper des mots particuliers dans votre
+document avec la commande ^|\hyphenation| \ctsref{\hyphenation}.
+\li Vous pouvez englober un mot dans une \refterm{hbox} pour emp\^echer \TeX\
+de le couper.
+\li Vous pouvez fixer la valeur des p\'enalit\'es comme avec |\hyphen!-pe!-nalty|
+\ctsref\hyphenpenalty.
+\endulist
+\noindent Si un mot contient une c\'esure explicite ou optionnelle,
+\TeX\ ne le coupera jamais ailleurs.
+\endconcept
+
+
+\concept classe
+
+La \defterm{classe} d'un \refterm{caract\`ere} sp\'ecifie le r\^ole de ce caract\`ere
+dans les formules math\'ematiques. La classe d'un caract\`ere est encod\'ee dans son
+\refterm{mathcode}. ^^{mathcodes//classe encod\'ee en} Par exemple, le
+signe \'egal `|=|' est dans la classe $3$ (Relation). \TeX\ utilise sa
+connaissance de classe de caract\`ere pour d\'ecider combien d'espace mettre
+entre diff\'erents composants d'une formule math\'ematique. \margin{clarifying
+material added} Par exemple, voici une formule math\'ematique affich\'ee comme
+\TeX\ l'im\-prime normalement et avec la classe de chaque caract\`ere modifi\'e
+al\'eatoi\-rement~:
+$$\strut a+(b-a)=a \qquad
+ \mathopen{a}\mathord{+}\mathrel{(}\mathclose{b}\mathclose{-}
+ \mathop{a}\mathopen{)}\mathord{=}\mathopen{a}$$
+
+Voir \xrefpg\mathord\ de ce livre pour une liste des classes et la
+\knuth{page~154}{180} pour leurs significations.
+
+\endconcept
+
+
+\conceptindex{codes de cat\'egorie}
+\concept {codes de cat\'egorie}
+
+Le \defterm{code de cat\'egorie} d'un \refterm{caract\`ere} d\'etermine le r\^ole
+de ce caract\`ere dans \TeX.
+^^{caract\`eres//code de cat\'egorie}
+Par exemple, \TeX\ assigne un certain r\^ole aux
+lettres, un autre au caract\`ere espace, et ainsi de suite. \TeX\ attache un
+code \`a chaque caract\`ere qu'il lit. Quand \TeX\ lit la
+lettre `|r|', par exemple, il lui attache normalement
+le code de cat\'egorie $11$ (lettre).
+Pour de simples applications \TeX\ vous n'avez pas \`a vous pr\'eoccuper des
+codes de cat\'egorie, mais ils deviennent importants quand vous essayez
+des effets sp\'eciaux.
+
+Les codes de cat\'egorie ne s'appliquent qu'aux caract\`eres que \TeX\ lit dans les
+fichiers source. Une fois qu'un caract\`ere a pass\'e l'^{\oesophage} de \TeX\
+\seeconcept{\anatomy} et a \'et\'e interpr\'et\'e, son code de cat\'egorie ne
+sert plus. Un caract\`ere que vous produisez avec la commande ^|\char|
+\ctsref{\char} n'a pas de code de cat\'egorie parce que |\char|
+est une instruction pour que \TeX\ produise un certain caract\`ere d'une
+certaine \refterm{police}. Par exemple, le code ^{\ascii} pour `|\|'
+(le caract\`ere d'\'echappement usuel) est $92$. Si
+vous saisissez `|\char92 grok|', Ce n'est \emph{pas} \'equivalent \`a |\grok|.
+\`a la place il demande \`a \TeX\ de
+composer `$c$grok', o\`u $c$ est le caract\`ere en position $92$
+de la table de code de la police courante.
+
+Vous pouvez utiliser la commande ^|\catcode| \ctsref{\catcode} pour r\'eassigner le
+code de cat\'egorie de tout caract\`ere. En changeant les code de cat\'egorie vous
+pouvez changer les r\^oles de caract\`eres vari\'es. Par exemple, si vous saisissez
+`|\catcode`\@ = 11|', le code de cat\'egorie du signe arrose (|@|) sera celui
+d'une ``lettre''. Vous pourrez alors avoir `|@|' dans le nom d'une s\'equence de
+contr\^ole.
+
+Voici une liste des codes de cat\'egorie tels qu'ils sont d\'efinis dans
+\refterm{\plainTeX} (voir \xref{twocarets} pour une explication de la
+notation |^^|),
+ainsi que les caract\`eres de chaque cat\'egorie~:
+
+\xrdef{catcodes}
+\vskip\abovedisplayskip
+%k \vskip 0pt plus 2pt % to fix bad page break
+{%k \interlinepenalty = 10000
+\halign{\indent\hfil\strut#&\qquad#\hfil\cr
+\it Code&\it Signification\cr
+\noalign{\vskip\tinyskipamount}
+0&Caract\`ere d'\'echappement \quad |\| ^^{caract\`ere d'\'echappement//code de cat\'egorie}
+ {\recat!ttidxref[\//code de cat\'egorie]]
+ \cr
+1&D\'ebut d'un groupe \quad |{| ^^{groupes}
+ {\recat!ttidxref[{//code de cat\'egorie]]
+ \cr
+2&Fin d'un groupe \quad |}|
+ {\recat!ttidxref[}//code de cat\'egorie]]
+ \cr
+3&basculement en math\'ematique \quad |$| ^^{basculement en math\'ematique}
+ {\recat!ttidxref[$//code de cat\'egorie]]
+ \cr
+4&Alignement tab \quad |&| ^^{tabulations} ^^{alignements//caract\`ere tabulation pour}
+ \ttidxref{&//code de cat\'egorie} \cr
+5&Fin d'une ligne \quad |^^M| \tequiv \ascii\ \asciichar{retour chariot}
+ ^^{fin de ligne} \ttidxref{^^M//code de cat\'egorie}\cr
+6&Param\`etre de macro \quad |#|
+ ^^{macros//param\`etres de}
+ ^^{param\`etres//indiqu\'es par \b\tt\#\e}
+ \ttidxref{#//code de cat\'egorie} \cr
+7&Exposant \quad |^| et |^^K| ^^{exposants}
+ \ttidxref{^^K}
+ \ttidxref{^//code de cat\'egorie} \cr
+8&Indice \quad |_| et |^^A| ^^{indices}
+ \ttidxref{^^A}
+ \ttidxref{_//code de cat\'egorie} \cr
+9&caract\`ere ignor\'e \quad |^^@| \tequiv \ascii\ \asciichar{nul}
+ ^^{caract\`eres ignor\'es} \indexchar ^^@ \cr
+10&Espace \quad \visiblespace\ et |^^I| \tequiv \ascii\
+ \asciichar{tabulation}
+ ^^{tabulation horizontale}
+ ^^{caract\`eres espaces//code de cat\'egorie} \indexchar ^^I
+ {\recat!ttidxref[ ]]
+ \cr
+11&Lettre \quad |A| \dots |Z| et |a| \dots |z| ^^{lettre}\cr
+12&Autres caract\`eres \quad (tout ce qui n'est pas ci-dessus ou ci-dessous)
+ ^^{autres caract\`eres}\cr
+13&Caract\`ere actif \quad |~| et |^^L| \tequiv\ascii\ \asciichar{saut\ de\ page}
+ ^^{caract\`eres actifs} ^^{retour chariot} \indexchar ~ \indexchar ^^L \cr
+14&Caract\`ere de commentaire \quad |%| ^^{commentaires}
+ {\recat!ttidxref[%//code de cat\'egorie]]
+ \cr
+15&Caract\`ere invalide \quad |^^?| \tequiv \ascii\ \asciichar{suppression}
+ ^^{caract\`eres invalides} \indexchar ^^? \cr
+}}
+\vskip\belowdisplayskip
+%k \vskip 0pt plus 2pt % to fix bad page break
+
+\noindent Mise \`a part ceux des cat\'egories $11$--$13$,
+tous les caract\`eres d'une cat\'egorie particuli\`ere produisent le m\^eme effet.
+\margin{Misleading material removed.}
+Par exemple, supposez
+que vous saisissiez~:
+\csdisplay
+\catcode`\[ = 1 \catcode`\] = 2
+|
+Alors les caract\`eres crochets droits et gauches deviennent \'equivalents aux caract\`eres de
+d\'ebut et de fin d'un groupe, les caract\`eres accolades droites et gauches.
+Avec ces d\'efinitions `|[a b]|'
+est un groupe valide, ainsi que \hbox{`|[a b}|'} et~\hbox{`|{a b]|'}.
+
+Les caract\`eres des cat\'egories $11$ (lettre) et $12$
+(autres caract\`eres) agis\-sent comme des \refterm{commandes:commande}
+qui signifient
+``produit une \refterm{bo\^\i te} contenant ce caract\`ere
+compos\'e dans la police courante''.
+La seule distinction entre les lettres et les ``autres'' caract\`eres est
+que les lettres peuvent appara\^\i tre dans des \refterm{mots de contr\^ole} mais
+pas les ``autres'' caract\`eres.
+
+Un caract\`ere de cat\'egorie $13$ (actif) agit comme une s\'equence de contr\^o\-le
+\`a lui tout seul. \TeX\ se plaint s'il rencontre un caract\`ere actif qui n'est
+pas associ\'e avec une d\'efinition.
+^^{caract\`eres actifs}
+
+Si \TeX\ rencontre un caract\`ere invalide ^^{caract\`eres invalides} (cat\'egorie $15$)
+dans votre source, il s'en plaindra.
+
+Les caract\`eres `|^^K|' et `|^^A|' ont \'et\'e inclus dans les cat\'egories
+$8$ (indice) et $9$ (exposant), m\^eme si ces significations
+ne suivent pas l'interpr\'etation du standard \refterm{\ascii}.
+C'est parce que certains claviers, tout du moins certains \`a
+l'universit\'e de Stanford d'o\`u \TeX\ est originaire, n'ont pas
+de touche fl\`eche vers le bas et fl\`eche vers le haut qui g\'en\`erent ces caract\`eres.
+\ttidxref{^^A}
+\ttidxref{^^K}
+
+Il y a une subtilit\'e sur la fa\c con dont \TeX\ assigne les codes de cat\'egories
+qui peut vous d\'eboussoler si vous ne la connaissez pas. \TeX\ a parfois
+besoin de rechercher un caract\`ere deux fois quand il fait un survol initial~:
+la premi\`ere fois pour la fin d'une pr\'ec\'edente construction, c'est-\`a-dire,
+une s\'equence de contr\^ole et ensuite pour transformer ce caract\`ere en token.
+\TeX\ n'a pas besoin d'assigner le code de cat\'egorie avant d'avoir vu le
+\emph{second} caract\`ere. Par exemple~:
+
+\csdisplay
+\def\foo{\catcode`\$ = 11 }% Make $ be a letter.
+\foo$ % Produces a `$'.
+\foo$ % Undefined control sequence `foo$'.
+|
+\noindent
+Ce bout de code \TeX\ produit `\$' dans la sortie. Quand \TeX\ voit le
+`|$|' sur la seconde ligne, il recherche la fin du nom d'une s\'equence de
+contr\^ole. Puisque le `|$|' n'est pas encore une lettre, il marque la fin de
+`|\foo|'. Ensuite, \TeX\ d\'eveloppe la macro `|\foo|' et change le code de
+cat\'egorie de `|$|' en $11$ (lettre). Alors, \TeX\ lit le `|$|' ``pour de
+vrai''. Puisque `|$|' est maintenant une lettre, \TeX\ produit une bo\^\i te
+contenant le caract\`ere `|$|' de la police courante. Quand \TeX\ voit la
+troisi\`eme ligne, il traite `|$|' comme une lettre et donc consid\`ere qu'elle
+fait partie du nom de la s\'equence de contr\^ole. Avec comme r\'esultat qu'il se
+plaint d'un ``undefined control sequence |\foo$|''.
+
+\TeX\ se comporte de cette fa\c con m\^eme lorsque le caract\`ere de
+terminaison est une fin de ligne. Par exemple, supposez que la macro
+|\fum| active le caract\`ere de fin de ligne. Alors si |\fum|
+appara\^\i t sur une ligne $\ell$ elle-m\^eme, \TeX\ interpr\'etera
+d'abord la fin de la ligne $\ell$ comme la fin de la s\'equence de
+contr\^ole |\fum| et ensuite \emph{r\'einterpr\'etera} la fin de la
+ligne de $\ell$ comme un caract\`ere actif.
+
+\endconcept
+
+
+\conceptindex{commandes}
+\concept commande
+
+Une \defterm{commande} demande \`a \TeX\ de faire une certaine action.
+Chaque \refterm{token} qui atteint l'estomac de \TeX\seeconcept{\anatomy}
+agit comme une commande, sauf celui qui fait partie des arguments d'une
+autre commande (voir dessous).
+^^{tokens//comme commandes}
+Une commande peut \^etre appel\'ee par une
+\refterm{s\'equence de contr\^ole}, par un \refterm{caract\`ere actif} ou par un
+caract\`ere ordinaire. Il peut sembler bizarre que \TeX\ traite un carac\-t\`ere
+ordinaire comme une commande, mais en fait c'est ce qu'il fait~:
+Quand \TeX\ voit
+un caract\`ere ordinaire
+il construit une \refterm{bo\^\i te} contenant ce caract\`ere compos\'e dans
+la police courante.
+
+Une commande peut avoir des arguments.
+Les arguments d'une commande sont de simples tokens ou
+groupes de tokens qui compl\`etent la description de ce que
+la commande est suppos\'ee faire.
+Par exemple, la commande `|\vskip 1in|' demande \`a \TeX\ de sauter
+$1$ pouce verticalement. Elle a un argument `|1in|',
+qui est constitu\'e de trois tokens.
+La description de ce que |\vskip| est suppos\'ee faire serait incompl\`ete
+sans sp\'ecifier de combien elle est suppos\'ee sauter.
+Les tokens dans les arguments d'une commande ne sont pas consid\'er\'es
+eux-m\^emes comme des commandes.
+
+Quelques exemples de diff\'erentes sortes de commandes de \TeX\ sont~:
+\ulist\compact
+\li Des caract\`eres ordinaires, comme `|W|', qui demande \`a \TeX\
+de produire une bo\^\i te contenant un `W' compos\'e.
+\li Des commandes de modification de police,
+telles que |\bf|, qui commence une composition en gras
+\li Des accents, tels que |\`|, qui produit un accent grave comme dans `\`e'
+\li Des symboles sp\'eciaux et des ligatures, comme |\P| (\P) et |\ae| (\ae)
+\li Des param\`etres, tels que |\parskip|, le montant du ressort que
+\TeX\ met entre les paragraphes
+\li des symboles math\'ematiques, tels que |\alpha| ($\alpha$) et |\in| ($\in$)
+\li Des op\'erateurs math\'ematiques, tels que |\over|, qui produit une fraction
+\endulist
+\endconcept
+
+
+\concept {constantes d\'ecimales}
+
+See \conceptcit{nombre}.
+\endconcept
+
+\concept {construction de page}
+
+Voir \conceptcit{page}.
+\endconcept
+
+
+\conceptindex{coupures de ligne}
+\concept {coupure de ligne}
+
+Une \defterm{coupure de ligne} est un endroit dans votre document o\`u \TeX\
+termine une ligne quand il compose un paragraphe. Quand \TeX\ compile votre
+document, il collecte le contenu de chaque paragraphe dans une \refterm{liste
+horizontale}. Quand il a collect\'e un paragraphe entier, il analyse la liste
+pour trouver ce qu'il consid\`ere comme \'etant les meilleures coupures de ligne
+possibles. \TeX\ associe des ``^{d\'em\'erites}'' avec diff\'erents sympt\^omes de
+coupure de ligne non attractive---des lignes ayant trop ou trop peu d'espace
+entre les mots, des lignes cons\'ecutives se terminant par des c\'esures, et
+ainsi de suite. Il choisit alors les coupures de lignes de mani\`ere \`a minimiser
+le nombre total de d\'em\'erites. Voir les \knuth{pages~96--101}{112--118} pour une
+description compl\`ete des r\`egles de coupure de ligne de \TeX.
+
+Vous pouvez contr\^oler le choix des coupures de ligne de \TeX\ de plusieurs mani\`eres~:
+\ulist
+
+\li vous pouvez ins\'erer une \refterm{p\'enalit\'e} (\xref{hpenalty}) quelque part
+dans la liste horizontale que \TeX\ construit quand il forme un paragraphe.
+^^{p\'enalit\'es//en listes horizontales}
+Une p\'enalit\'e
+positive d\'ecourage \TeX\ de couper la ligne \`a cet endroit, tandis qu'une
+p\'enalit\'e n\'egative---un bonus, en quelque sorte---encourage \TeX\ \`a couper
+la ligne \`a cet endroit. Une p\'enalit\'e de $10000$ ou plus emp\^eche une coupure de
+ligne, tandis qu'une p\'enalit\'e de $-10000$ ou moins force une coupure de ligne.
+Vous pouvez obtenir les m\^emes effets avec les commandes ^|\break| et
+^|\nobreak| (voir \pp\xrefn{hbreak} et~\xrefn{hnobreak}).
+
+\li Vous pouvez dire \`a \TeX\ d'autoriser une c\'esure \`a un endroit particulier
+en ins\'erant une c\'esure optionnelle
+^^{c\'esures optionnelles}
+avec la commande |\-| \ctsref{\@minus}, ou
+sinon en contr\^olant comment \TeX\ met des c\'esures dans votre document \seeconcept
+{c\'esure}.
+^^|\-//sur une coupure de ligne|
+
+\li Vous pouvez dire \`a \TeX\ d'autoriser une coupure de ligne apr\`es un
+(/) ^{slash} entre
+deux mots en ins\'erant un ^|\slash| \ctsref{\slash}
+entre eux, par exemple, `|fur!-longs\slash fortnight|'.
+
+\li Vous pouvez dire \`a \TeX\ de ne pas couper une ligne entre deux mots particuliers en
+ins\'erant une ^{punaise} (|~|) entre ces mots.
+^^|~//sur une coupure de ligne|
+
+\li Vous pouvez ajuster les p\'enalit\'es associ\'ees avec les coupures de ligne en
+assignant des valeurs diff\'erentes aux \refterm{param\`etres:param\`etre} de coupures de ligne de \TeX.
+
+\li Vous pouvez englober un mot ou une s\'equence de mots dans une \refterm{hbox},
+emp\^echant ainsi \TeX\ de couper la ligne o\`u que cela soit dans l'hbox.
+^^{hbox//contr\^oler des coupures de lignes}
+\endulist
+
+Il est pratique de savoir o\`u \TeX\ peut couper une ligne~:
+\ulist
+\li sur un ressort, sous r\'eserve que~:
+\olist
+\li l'objet pr\'ec\'edant le ressort est un des suivants~:
+une bo\^\i te, un objet optionnel (par exemple, une c\'esure optionnelle),
+la fin d'une formule math\'ematique,
+un \'el\'ement extraordinaire,
+ou du mat\'eriel vertical produit par |\mark|, |\vadjust|
+ou |\insert|
+\li Le ressort ne fait pas partie d'une formule math\'ematique
+\endolist
+\noindent
+Quand \TeX\ coupe une ligne sur un ressort, il fait la coupure du cot\'e gauche
+de l'espace du ressort et oublie le reste du ressort.
+\li sur un cr\'enage qui est imm\'ediatement suivi par un ressort,
+\`a condition que ce cr\'enage ne soit pas dans une formule math\'ematique
+\li \`a la fin d'une formule math\'ematique qui est imm\'ediatement suivie par un ressort
+\li sur une p\'enalit\'e, m\^eme dans une formule math\'ematique
+\li sur une c\'esure optionnelle
+\endulist
+Quand \TeX\ coupe une ligne, il efface toute s\'equence de ressort, cr\'enage et
+p\'enalit\'e qui suivent le point de coupure.
+Si une telle s\'equence est suivie par le d\'ebut d'une formule math\'ematique, il
+efface aussi tout cr\'enage produit au d\'ebut de la formule.
+\endconcept
+
+
+\conceptindex{coupures de page}
+\concept {coupure de page}
+
+Une \defterm{coupure de page} est un endroit dans votre document o\`u \TeX\
+termine une page et (sauf \`a la fin du document) en commence une nouvelle.
+Voir \conceptcit{page} pour le processus que \TeX\ traverse pour choisir
+une coupure de page.
+
+Vous pouvez contr\^oler le choix de coupure de page de \TeX\ de plusieurs fa\c cons~:
+\ulist
+\li Vous pouvez ins\'erer une p\'enalit\'e (\xref{vpenalty})
+^^{p\'enalit\'es//en listes verticales}
+entre deux \'el\'ements de la liste verticale principale. Une p\'enalit\'e positive
+d\'ecourage \TeX\ de couper la page \`a cet endroit, tandis qu'une p\'enalit\'e
+n\'egative---un bonus, autrement dit---%
+encourage \TeX\ de couper la page \`a cet endroit. Une p\'enalit\'e de $10000$
+ou plus pr\'evient une coupure de page, tandis qu'une p\'enalit\'e de $-10000$ ou
+moins force une coupure de page. Vous pouvez obtenir le m\^eme effet avec les
+commandes |\break| et |\nobreak| \ctsref{vbreak}.
+
+\li Vous pouvez ajuster les p\'enalit\'es associ\'ees aux coupures de page
+en assignant diff\'erentes valeurs aux \refterm{param\`etres:param\`etre} de
+coupure de page de \TeX.
+
+\li Vous pouvez englober une suite de paragraphes ou autres \'el\'ements dans
+la liste verticale principale avec une \refterm{vbox}, ceci emp\^eche \TeX\ de
+couper la page n'importe o\`u dans la suite.
+\endulist
+
+Une fois que \TeX\ a choisi une coupure de page, il place la portion
+de la liste verticale principale qui pr\'ec\`ede la coupure en |\box255|.
+Il appelle alors la \refterm{routine de sortie} courante pour ex\'ecuter |\box255|
+et \'eventuellement envoyer son contenu dans le \dvifile.
+^^{\dvifile//mat\'eriel de la routine de sortie}
+La routine de sortie doit aussi inclure des \refterm{insertions}, telles
+que des notes de pied de page, que \TeX\ a accumul\'e en ex\'ecutant la page.
+
+Il est utile de conna\^\i tre les endroits o\`u \TeX\ peut couper une page~:
+\ulist
+\li Sur le ressort, \`a condition que l'\'el\'ement pr\'ec\'edent le ressort soit
+une bo\^\i te, un \'el\'ement extraordinaire, une marque ou une insertion.
+Quand \TeX\ coupe une page sur un ressort, il fait la coupure devant
+l'espace du ressort et oublie le reste du ressort.
+\li Sur un cr\'enage qui est imm\'ediatement suivi par un ressort.
+\li Sur une p\'enalit\'e, vraisemblablement entre les lignes d'un paragraphe.
+\endulist
+Quand \TeX\ coupe une page, il efface toute s\'equence de ressort, cr\'enages et \'el\'ements
+de p\'enalit\'e qui suivent le point de coupure.
+
+
+\endconcept
+
+
+\conceptindex{cr\'enages}
+\concept cr\'enage
+
+^^{espacement//ajuster avec des cr\'enages}
+Un \defterm{cr\'enage} indique un changement de l'espacement normal entre
+les \'el\'ements d'une liste horizontale ou verticale.
+Un cr\'enage peut \^etre soit positif, soit n\'egatif. En
+mettant un cr\'enage positif entre deux \'el\'ements, vous les \'eloignez du
+montant du cr\'enage. en mettant un cr\'enage positif entre deux \'el\'ements,
+vous les rapprochez du montant du cr\'enage. Par exemple, ce texte~:
+\csdisplay
+11\quad 1\kern1pt 1\quad 1\kern-.75pt 1
+|
+produit des paires de lettres qui ressemblent \`a ceci~:
+\display{11\quad 1\kern1pt 1\quad 1\kern-.75pt 1}
+Vous pouvez utiliser des cr\'enages en mode vertical pour ajuster l'espace
+entre des paires de lignes particuli\`eres.
+
+Un cr\'enage de taille $d$ est tr\`es similaire \`a un \'el\'ement \refterm{ressort}
+qui a une taille $d$ sans \'etirement ni r\'etr\'ecissement. Le cr\'enage et le ressort
+ins\`erent ou enl\`event de l'espace entre deux \'el\'ements voisins. La diff\'erence
+essentielle est que \TeX\ consid\`ere deux bo\^\i tes n'ayant qu'un cr\'enage entre
+elles comme \'etant li\'ees. Cela fait que, \TeX\ ne coupe pas une ligne ou une
+page sur un cr\'enage sauf si le cr\'enage est imm\'ediatement suivi d'un ressort.
+Garder cette diff\'erence \`a l'esprit quand vous choisissez d'utiliser un
+cr\'enage ou un \'el\'ement ressort pour un usage particulier.
+
+\TeX\ ins\`ere automatiquement des cr\'enages entre des paires particuli\`eres de
+lettres adjacentes, ajustant ainsi l'espace entre ces lettres et mettant en
+valeur l'apparence de votre document compos\'e.
+Par exemple, la police Computer Modern romaine de $10$ points contient un
+cr\'enage pour la paire `To' qui remet le cot\'e gauche du `o' sous le `T'.
+Sans le cr\'enage, vous obtiendriez \hbox{``T{o}p''} au lieu de ``Top''---
+la diff\'erence est l\'eg\`ere mais visible.
+Le fichier de m\'etrique
+(^{\tfmfile})
+de chaque \refterm{police} sp\'ecifie le placement et la taille des cr\'enages
+que \TeX\ ins\`ere automatiquement quand il met du texte dans cette~police.
+\margin{paragraph deleted to save space; most of the material was
+already in this section.}
+
+\endconcept
+
+
+\conceptindex{dimensions}
+\concept dimension
+
+Une \defterm{dimension} sp\'ecifie une distance, c'est, une mesure lin\'eaire
+d'espace. Vous utilisez des dimensions pour sp\'ecifier des tailles de choses, comme les grandeurs
+d'une ligne. Les imprimeurs dans les pays de langue Anglaise mesurent traditionnellement
+les distances en points et en picas, tandis que les imprimeurs d'Europe continentale
+mesurent traditionnellement les distances en points Didot et en ciceros.
+Vous pouvez utiliser ces mesures ou d'autres, comme les pouces, qui peuvent
+vous \^etre plus familier. Les ^{unit\'es de mesure} ind\'ependantes des polices
+que \TeX\ comprend sont~:
+
+\xrdef{dimdefs}
+\nobreak\vskip\abovedisplayskip
+\halign{\indent\hfil\tt #\qquad&#\hfil\cr
+pt&^{point} (72.27 points = 1 pouce)\cr
+pc&^{pica} (1 pica = 12 points)\cr
+bp&big point (72 gros points = 1 pouce)\cr
+in&^{pouce}\cr
+cm&^{centim\`etre} (2.54 centim\`etres = 1 pouce)\cr
+mm&^{millim\`etre} (10 millim\`etres = 1 centim\`etre)\cr
+dd&^{\didotpt} (1157 {\didotpt}s = 1238 points)\cr
+cc&^{cic\'ero} (1 cicero = 12 points Didot)\cr
+sp&^{point d'\'echelle} (65536 points d'\'echelle = 1 point)\cr
+}
+\vskip\belowdisplayskip
+
+Deux unit\'es de mesure suppl\'ementaires sont associ\'ees avec chaque police~: `^|ex|',
+une mesure verticale correspondant habituellement \`a la hauteur de la lettre `x'
+de la police et `^|em|', une mesure
+horizontale habituellement \'egale \`a la taille du point de la police et
+environ la largeur de la lettre `M' de la police. Finalement,
+\TeX\ procure trois unit\'e de mesure ``infinies''~: `^|fil|', `^|fill|' et
+`^|filll|', dans l'ordre de force croissant.
+
+Une dimension est \'ecrite comme un ^{facteur}, c'est-\`a-dire, un multiplieur,
+suivi par une unit\'e de mesure.
+^^{unit\'es de mesure}
+Le facteur peut \^etre soit un \refterm{nombre} entier, soit
+une \refterm{constante d\'ecimale} contenant un point d\'ecimal
+ou une virgule d\'ecimale.
+Le facteur peut \^etre pr\'ec\'ed\'e par un signe plus ou moins, donc une dimension
+peut \^etre positive ou n\'egative.
+^^{dimensions//n\'egatives}
+L'unit\'e de mesure doit \^etre l\`a, m\^eme si le nombre est
+z\'ero. Des espaces entre le nombre et l'unit\'e de mesure sont permis
+mais facultatifs. Vous trouverez une d\'efinition pr\'ecise d'une
+dimension sur la \knuth{page~270}{315}. Voici quelques exemples de dimensions~:
+
+\csdisplay
+5.9in 0pt -2,5 pc 2fil
+|
+La derni\`ere repr\'esente un ordre de distance infinie.
+
+Une distance infinie \'ecrase toute distance finie ou toute distance infinie
+plus l\'eg\`ere. Si vous additionnez |10in| \`a |.001fil|, vous obtiendrez |.001fil|~; si vous additionnez
+|2fil| \`a |-1fill| vous aurez |-1fill|~; et ainsi de suite.
+\TeX\ n'accepte des distances infinies que quand
+vous avez sp\'ecifi\'e l'\refterm{\'etirement} et le \refterm{r\'etr\'ecissement}
+du \refterm{ressort}.
+
+\TeX\ multiplie toutes les dimensions de votre document par un
+facteur de \refterm{magnification} $f/1000$,
+o\`u $f$ est la valeur du param\`etre ^|\mag|.
+^^{magnification}
+Puisque la valeur par d\'efaut de
+|\mag| est $1000$, le cas normal est que votre document est
+compos\'e comme sp\'ecifi\'e. Vous pouvez sp\'ecifier une dimension comme elle sera
+mesur\'ee dans le document final ind\'ependamment d'une magnification en mettant
+`|true|' devant l'unit\'e. Par exemple, `|\kern 8 true pt|'
+produit un cr\'enage de $8$ points quelle que soit la magnification.
+\endconcept
+
+
+\concept {disposition de page}
+
+\bix^^{marges}
+\bix^^{ent\^etes}
+\bix^^{pieds de page}
+Quand vous concevez un document, vous devez d\'ecider de son
+\defterm{ajustement de page}~: la taille de la page, les marges des
+quatre cot\'es, les ent\^etes et pieds de page, s'il y en a, qui
+apparaissent en haut et en bas de la page et la taille de l'espace
+entre le corps du texte et l'ent\^ete ou le pied de page. \TeX\ en
+d\'efinit par d\'efaut. Il d\'efinit une page de $8 \frac1/2$
+par $11$ pouces avec des marges d'approximativement un pouce de
+chaque cot\'e, sans ent\^ete et avec un pied de page constitu\'e d'un
+num\'ero de page centr\'e.
+
+Les marges sont d\'etermin\'ees conjointement par les quatre param\`etres
+^|\hoffset|, ^|\voffset|, ^|\hsize| et ^|\vsize| (voir
+``marges'', \xrefpg{marges},
+pour des conseils sur la fa\c con de les ajuster).
+\eix^^{marges}
+L'ent\^ete consiste normalement en une simple ligne qui appara\^\i t en haut de chaque
+page, dans l'aire de la marge du haut. Vous pouvez la d\'efinir en assignant
+une liste de \refterm{token} dans le param\`etre ^|\headline| (\xref{\headline}).
+Similairement,
+le pied de page consiste normalement en une simple ligne qui appara\^\i t en bas de chaque
+page, dans l'aire de la marge du bas. Vous pouvez la d\'efinir en assignant
+une liste de \refterm{token} dans le param\`etre ^|\footline| (\xref{\footline}).
+Par exemple, l'entr\'ee~:
+\csdisplay
+\headline = {Baby's First Document\dotfill Page\folio}
+\footline = {\hfil}
+|
+produit une ligne d'ent\^ete comme celle-ci sur chaque page~:
+\vdisplay{
+\dimen0 = \hsize
+\advance \dimen0 by -\parindent
+\hbox to \dimen0{Baby's First Document\dotfill Page 19}}
+\noindent
+et aucune ligne de pied de page.
+
+Vous pouvez utiliser des marques pour placer le sujet d'une section de texte
+courante dans l'ent\^ete ou le pied de page.
+^^{marques//avec ent\^etes ou pieds de page}
+Voir \conceptcit{marque} pour une explication sur comment faire cela.
+\eix^^{ent\^etes}
+\eix^^{pieds de page}
+\endconcept
+
+\conceptindex{d\'elimiteurs}
+\concept d\'elimiteur
+
+Un \defterm{d\'elimiteur} est un caract\`ere mis comme fronti\`ere visible d'une
+formule math\'ematique. La propri\'et\'e essentielle d'un d\'elimiteur est que \TeX\
+peut ajuster sa taille par rapport \`a la taille verticale (\refterm{hauteur}
+plus \refterm{profondeur}) de la sous-formule.
+De plus, \TeX\ n'ex\'ecute d'ajustement que si le d\'elimiteur
+appara\^\i t dans un ``contexte de d\'elimiteur'', plus pr\'ecis\'ement, comme argument
+d'une des commandes ^|\left|,
+^|\right|,
+|\overwith!-delims|,
+|\atop!-with!-delims|,
+ou |\above!-with!-delims|
+^^|\overwithdelims|
+^^|\atopwithdelims|
+^^|abovewithdelims|
+\margin{Footnote deleted}
+(voir les \pp\xrefn{\overwithdelims},~\xrefn{\left}).
+Les contextes de d\'elimiteur incluent aussi tout \refterm{argument}
+\`a une \refterm{macro} qui utilise l'argument dans un contexte de d\'elimiteur.
+
+Par exemple, les parenth\`eses gauches et droites sont des d\'elimiteurs.
+Si vous utilisez des ^{parenth\`eses} dans un contexte de d\'elimiteur autour
+d'une formule, \TeX\ rend les parenth\`eses assez grandes pour entourer la
+\refterm{bo\^\i te} qui contient la formule (\`a condition que les
+\refterm{polices:police} que vous utilisez aient des parenth\`eses assez grandes).
+Par exemple~:
+\csdisplay
+$$ \left( a \over b \right) $$
+|
+donne~:
+\centereddisplays $$\left (a \over b \right ) $$
+Ici \TeX\ a rendu les parenth\`eses assez grandes pour s'accorder \`a la fraction.
+Mais si vous \'ecrivez, \`a la place~:
+\csdisplay
+$$({a \over b})$$
+|
+vous aurez~:
+$$({a \over b})$$
+Puisque les parenth\`eses ne sont pas dans un contexte de d\'elimiteur, elles ne
+sont \emph{pas} \'elargies.
+
+Les d\'elimiteurs vont par paires~:
+un d\'elimiteur ouvrant \`a la gauche de la sous-formule
+et un d\'elimiteur fermant \`a sa droite.
+Vous pouvez choisir explicitement une hauteur plus grande pour un
+d\'elimiteur avec les commandes |\bigl|, ^|\bigr|, et leurs
+pendantes \ctsref{\bigl}\footnote
+{\PlainTeX\ d\'efini les diff\'erentes commandes |\big| en utilisant |\left|
+et |\right| pour obtenir un contexte de d\'elimiteur. Il r\`egle la taille en
+construisant une formule vide de la hauteur d\'esir\'ee.}.
+Par exemple, pour avoir la
+formule affich\'ee~:
+$$\bigl(f(x) - x \bigr) \bigl(f(y) - y \bigr)$$
+
+\noindent dans laquelle les parenth\`eses externes sont un peu plus grandes
+que leurs internes, vous devez \'ecrire~:
+
+\csdisplay
+$$\bigl( f(x) - x \bigr) \bigl( f(y) - y \bigr)$$
+|
+
+Les $22$ d\'elimiteurs \plainTeX, montr\'es \`a leur taille normale, sont~:
+\display{%
+$( \>) \>[ \>] \>\{ \>\}
+\>\lfloor \>\rfloor \>\lceil \>\rceil
+\>\langle \>\rangle \>/ \>\backslash
+\>\vert \>\Vert
+\>\uparrow \>\downarrow \>\updownarrow
+\>\Uparrow \>\Downarrow \>\Updownarrow$}
+^^|)| ^^|)| ^^|[| ^^|]| ^^|\lbrack| ^^|\rbrack|
+^^|\{| ^^|\}| ^^|\lbrace| ^^|\rbrace|
+^^|\lfloor| ^^|\rfloor| ^^|\lceil| ^^|\rceil|
+^^|\langle| ^^|\rangle| ^^|/| ^^|\backslash|
+^^|\vert| ^^|\Vert|
+^^|\uparrow| ^^|\downarrow| ^^|\updownarrow|
+^^|\Uparrow| ^^|\Downarrow| ^^|\Updownarrow|
+\noindent
+Voici les plus grandes tailles fournies explicitement par \plainTeX\
+ (les versions |\Biggl|, |\Biggr|, etc.)~:
+\nobreak\vskip .5\abovedisplayskip
+\display{%
+$\Biggl( \>\Biggr) \>\Biggl[ \>\Biggr]
+\>\Biggl\{ \>\Biggr\} \>\Biggl\lfloor \>\Biggr\rfloor
+\>\Biggl\lceil \>\Biggr\rceil
+\>\Biggl\langle \>\Biggr\rangle
+\>\Biggm/ \>\Biggm\backslash
+\>\Biggm\vert \>\Biggm\Vert
+\>\Biggm\uparrow \>\Biggm\downarrow \>\Biggm\updownarrow
+\>\Biggm\Uparrow \>\Biggm\Downarrow \>\Biggm\Updownarrow$}
+\vskip .5\belowdisplayskip
+\noindent
+Les d\'elimiteurs (sauf pour `|(|', `|)|', et
+`|/|')
+sont les symboles list\'es sur les
+pages~\xrefn{\lbrace}--\xrefn{\Uparrow}.
+Ils sont list\'es \`a un seul endroit sur la \knuth{page~146}{170--171}.
+
+Un d\'elimiteur peut appartenir \`a n'importe quelle classe.
+^^{classe//d'un d\'elimiteur}
+Pour un d\'elimiteur que vous agrandissez avec
+|\bigl|, |\bigr|, etc., la classe est d\'etermin\'ee par la commande~:
+``opener'' pour les commandes-|l|, ``closer'' pour les commandes-|r|,
+``relation'' pour les commandes-|m|, et ``ordinary symbol'' pour les
+commandes-|g|,
+c'est-\`a-dire, |\Big|.
+
+Vous pouvez obtenir un d\'elimiteur de deux diff\'erentes mani\`eres~:
+\olist
+\li Vous pouvez rendre un caract\`ere d\'elimiteur en lui assignant un
+codes de d\'elimiteur non n\'egatif
+\bix^^{codes d\'elimiteurs}
+(voir plus bas) avec la commande ^|\delcode| (\xref\delcode).
+N\'eanmoins le caract\`ere n'agit comme d\'elimiteur que si vous l'utilisez dans un
+contexte de d\'elimiteur\footnote{%
+Il est possible d'utiliser un caract\`ere avec un code de d\'elimiteur non n\'egatif
+dans un contexte o\`u il n'est pas un d\'elimiteur. Dans ce cas \TeX\ ne fait pas
+la recherche~; \`a la place, il utilise simplement le caract\`ere de fa\c con ordinaire
+(voir la \knuth{page~156}{181--282}).}.
+\li Vous pouvez produire un d\'elimiteur explicitement avec la commande
+^|\delimiter|
+(\xref\delimiter), en analogie avec la mani\`ere par laquelle vous pouvez produire un
+caract\`ere ordinaire avec la commande |\char| ou un caract\`ere math\'ematique
+avec la commande |\mathchar|.
+La commande |\delimiter| utilise les m\^emes code de d\'elimiteur que ceux utilis\'es
+dans une entr\'ee de table
+|\delcode|, mais avec un chiffre suppl\'ementaire devant pour indiquer une
+classe.
+Il est rare d'utiliser |\delimiter| en dehors d'une d\'efinition de macro.
+\endolist
+
+Un code de d\'elimiteur dit \`a
+\TeX\ comment chercher un caract\`ere de sortie appropri\'e pour repr\'esenter
+un d\'elimiteur.
+Les r\`egles de cette recherche sont assez compliqu\'ees
+(voir les \knuth{pages~156 et 442}{181--282 et 506--507}).
+Une compr\'ehension compl\`ete de ces r\`egles requiert des connaissances
+sur l'organisation des ^{fichiers de m\'etriques} des polices, un sujet qui n'est pas seulement en dehors
+de l'objectif de ce livre mais \'egalement en dehors de l'objectif de \texbook.
+
+En r\'esum\'e la recherche travaille comme cela. Le code de d\'elimiteur sp\'ecifie un
+``petit'' caract\`ere de sortie et un ``grand'' caract\`ere de sortie en
+fournissant une position dans la \refterm{police} et une \refterm{famille} de
+police pour chacun
+(see \xref\delcode).
+En utilisant cette information, \TeX\ peut trouver (ou construire)
+de plus en plus grandes versions du d\'elimiteur. \TeX\ essaye d'abord
+diff\'erentes tailles (de la petite \`a la grande)
+du ``petit'' caract\`ere dans la ``petite'' police
+et ensuite
+diff\'erentes tailles (l\`a aussi de la petite \`a la grande)
+du ``grand'' caract\`ere dans la ``grande'' police,
+en cherchant un dont la hauteur plus la profondeur soit suffisamment grande.
+Si aucun de ces caract\`eres trouv\'e n'est assez
+grand, il utilise le plus grand.
+Il est possible que
+le petit caract\`ere, le grand caract\`ere, ou les deux ait \'et\'e laiss\'e non
+sp\'ecifi\'e
+(indiqu\'e par un z\'ero dans la partie appropri\'ee du code de d\'elimiteur).
+Si seulement un caract\`ere
+a \'et\'e sp\'ecifi\'e, \TeX\ l'utilise. Si aucun ne l'a \'et\'e,
+il remplace le d\'elimiteur par un espace de largeur ^|\nulldelimiterspace|.
+\eix^^{codes d\'elimiteurs}
+
+\endconcept
+
+
+\concept d\'em\'erites
+
+\TeX\ utilise des \refterm{d\'em\'erites} comme une mesure de combien une ligne n'est pas d\'esirable
+quand il coupe un paragraphe en lignes \seeconcept{coupure de ligne}.
+^^{coupures de ligne//d\'em\'erites pour}
+Les d\'em\'erites d'une ligne sont affect\'es par la \refterm{m\'ediocrit\'e} de la ligne
+et par les \refterm{p\'enalit\'es:p\'enalit\'e} associ\'ees avec la ligne.
+^^{m\'ediocrit\'e}
+Le but de \TeX\ dans le choix d'un arrangement particulier de lignes est de
+minimiser le total des
+d\'em\'erites pour le paragraphe, qu'il calcule en additionnant les d\'em\'erites
+des lignes individuelles.
+voir les \knuth{pages~97--98}{114--115} pour les d\'etails sur comment \TeX\
+coupe un paragraphe en lignes.
+\TeX\ n'utilise pas de d\'em\'erites quand il choisit des coupures de page~;
+\`a la place, il utilise
+une mesure similaire appel\'ee le ``co\^ut'' d'une coupure de page particuli\`ere.
+\endconcept
+
+\conceptindex{\elements}
+\concept \'el\'ement
+
+Le terme \defterm{\'el\'ement} est souvent utilis\'e pour faire r\'ef\'erence \`a un composant
+d'une liste horizontale, verticale ou math\'ematique, c'est-\`a-dire, une liste d'\'el\'ements que
+\TeX\ construit quand il est dans un mode horizontal, vertical ou math\'ematique.
+\endconcept
+
+
+\concept {\elementextra}
+
+Un \defterm{\'el\'ement extraordinaire} est un \'el\'ement d'information qui
+dit \`a \TeX\ d'effectuer une action
+qui n'entre pas dans le sch\'ema ordinaire des choses.
+un \'el\'ement extraordinaire peut appara\^\i tre dans une liste horizontale ou
+verticale, comme une bo\^\i te ou un \'el\'ement ressort.
+\TeX\ compose un \'el\'ement extraordinaire
+comme une \refterm{bo\^\i te} de largeur, hauteur et profondeur \`a z\'ero---en d'autres
+termes, une bo\^\i te qui ne contient rien et n'occupe pas d'espace.
+
+Trois sortes d'\'el\'ements extraordinaires sont construits dans \TeX~:
+\ulist
+\li Les commandes |\openout|, |\closeout| et |\write|
+(\p\xrefn{\openout})
+% (2nd) removed \xref to \write, since it's on the same page
+produisent un \'el\'ement extraordinaire pour agir sur un fichier de sortie.
+^^|\openout//\elementextra\ produit par|
+^^|\write//\elementextra\ produit par|
+^^|\closeout//\elementextra\ produit par|
+\TeX\ diff\`ere l'op\'eration jusqu'a ce qu'il envoit la prochaine page
+dans le {\dvifile}
+^^{\dvifile//\elementextra\ en}
+(\`a moins que l'op\'eration soit pr\'ec\'ed\'ee par ^|\immediate|).
+\TeX\ utilise un \'el\'ement extraordinaire pour ces commandes parce qu'elles
+ n'ont rien \`a faire avec ce qu'il compose quand il les rencontre.
+\li La commande ^|\special| \ctsref{\special} demande \`a \TeX\
+d'ins\'erer un certain texte directement dans le \dvifile.
+comme avec la commande |\write|, \TeX\ diff\`ere l'op\'eration jusqu'a ce
+qu'il envoit la prochaine page dans le {\dvifile}
+^^{\dvifile//mat\'eriel ins\'er\'e par \b\tt\\special\e}
+Une utilisation typique de |\special| serait de
+nommer un fichier graphique que le driver d'affichage pourrait incorporer dans
+votre sortie finale.
+\li Quand vous changez de langage avec les commandes ^|\language| ou ^|\setlanguage|
+\ctsref{\language},
+\TeX\ ins\`ere un \'el\'ement extraordinaire qui l'instruit de l'usage d'un
+certain jeu de r\`egle de c\'esure \`a suivre quand il coupe un paragraphe
+en lignes.
+\endulist
+\noindent
+Une impl\'ementation particuli\`ere de \TeX\ peut procurer des \'el\'ements extraordinaires additionnels.
+\endconcept
+
+
+\conceptindex{ent\^etes}
+\concept ent\^ete
+
+Un \defterm{ent\^ete} est un mat\'eriel que \TeX\ met en haut de chaque page,
+au-dessus du texte de cette page. L'ent\^ete pour un simple rapport
+peut \^etre constitu\'e du titre du cot\'e gauche de la page et du
+texte ``Page $n$'' du cot\'e droite de la page.
+D'habitude, un ent\^ete est constitu\'e d'une seule ligne, que vous pouvez mettre en
+assignant une liste de tokens \`a ^|\headline| \ctsref\headline.
+L'ent\^ete par d\'efaut de \plainTeX\ est \`a blanc.
+Il est aussi possible de produire des ent\^ete multiligne~ (voir \xrefpg{bighead})
+\endconcept
+
+
+\concept espace
+
+Vous pouvez demander \`a \TeX\ de mettre un \defterm{espace} entre deux \'el\'ements de
+plusieurs fa\c cons~:
+
+\olist
+^^{fin de ligne}
+\li Vous pouvez \'ecrire quelque chose que \TeX\ traite comme un \refterm{token}
+espace~: un ou plusieurs caract\`eres blancs, La fin d'une ligne (le
+caract\`ere fin de ligne agit comme un espace) ou toute \refterm{commande} qui
+se d\'eveloppe en token espace. \TeX\ g\'en\'eralement traite plusieurs
+espaces cons\'ecutifs comme \'equivalent \`a un seul, en incluant le cas o\`u
+les espaces comprennent une seule fin de ligne. (Une ligne vide
+indique la fin d'un paragraphe~; il fait que \TeX\ g\'en\`ere un token |\par|.)
+^^|\par//d'une ligne vide|
+\TeX\ ajuste la taille de cette sorte d'espace en fonction de la longueur
+requise par le contexte.
+
+^^{ressort//cr\'eer de l'espace avec}
+\li Vous pouvez \'ecrire une commande de saut qui produit le ressort
+que vous sp\'ecifiez dans la commande. Le ressort peut
+s'\refterm{\'etirer} ou se \refterm{r\'etr\'ecir},
+produisant plus ou moins d'espace. Vous pouvez avoir un ressort vertical
+comme un ressort horizontal. Le ressort dispara\^\i t \`a chaque fois qu'il
+est apr\`es une coupure de ligne ou de page.
+
+^^{cr\'enages//cr\'eer de l'espace avec}
+\li Vous pouvez \'ecrire un \refterm{cr\'enage}. Un cr\'enage produit un montant
+ d'espace fixe qui ne s'\'etire ni se r\'etr\'ecit et ne dispara\^\i t pas sur un
+une coupure de ligne ou de page (\`a moins d'\^etre suivie imm\'ediatement par
+ressort). L'usage le plus courant du cr\'enage est d'\'etablir une relation
+spatiale fixe entre deux \refterm{bo\^\i te}s adjacentes.
+\endolist
+
+Le ressort et les cr\'enages peuvent avoir des valeurs n\'egatives.
+Un ressort n\'egatif ou un cr\'enage n\'egatif
+entre des \'el\'ements adjacents rapproche ces \'el\'ements l'un de l'autre.
+\endconcept
+
+
+\concept {\etirement}
+
+Voir \conceptcit{ressort}.
+\endconcept
+
+
+\concept famille
+
+Une \defterm{famille} est un groupe de trois \refterm{polices:police} reli\'ees utilis\'ees
+quand \TeX\ est en \refterm{mode math\'ematique}.
+^^{polices//familles de}
+En dehors du mode math\'ematique, les familles
+n'ont aucun effet. Les trois polices d'une famille sont utilis\'ees pour les symboles normaux
+(\refterm{taille de texte}), indices et exposants (\refterm{taille script})
+et sous-indices, sur-exposants, etc.\
+(\refterm{taille scriptscript}).
+^^{taille texte}
+^^{taille script}
+^^{taille scriptscript}
+Par exemple, le nombre `|2|' compos\'e dans ces trois polices vous donnera
+`$2$', `$\scriptstyle 2$' et `$\scriptscriptstyle 2$' (en \plainTeX).
+Normalement vous fixerez les trois polices d'une famille \`a diff\'erentes
+tailles du m\^eme type de police, mais rien ne vous emp\^eche d'utiliser des
+types diff\'erents pour les trois polices ni d'utiliser la m\^eme police
+deux fois dans une famille.
+
+{\tighten
+TeX\ procure jusqu'a seize familles, num\'erot\'ees de $0$ \`a $15$. Par
+exemple, la famille $0$ en \refterm{\plainTeX} consiste en roman $10$ points
+pour le texte, roman $7$ points pour le script et roman $5$ points pour le
+scriptscript.
+^^{\plainTeX//familles de police en}
+\PlainTeX\ d\'efini aussi la famille $1$ qui est constitu\'ee des polices
+math\'ematiques italiques et r\'eserve les familles $2$ et $3$ pour respectivement
+les ^{symboles sp\'eciaux} et les ^{extensions math\'ematiques}\footnote{Les
+familles $2$ et $3$ sont sp\'eciales en ce que leurs fichiers de m\'etriques de
+police doivent inclure des param\`etres pour l'espacement math\'ematique.}. Si
+vous devez d\'efinir une famille vous m\^eme, vous devrez utiliser la commande
+^|\newfam| \ctsref{\@newfam} pour avoir le num\'ero d'une famille qui n'est
+pas utilis\'ee et les commandes ^|\textfont|, ^|\scriptfont| and
+^|\scriptscriptfont| commands \ctsref{\scriptscriptfont} pour assigner des
+polices \`a cette famille.
+\par}
+
+\endconcept
+
+
+\conceptindex{fichiers}
+\concept fichier
+
+Un \defterm{fichier} est un flot d'information que \TeX\ interpr\`ete ou
+cr\'ee. Des fichiers sont g\'er\'es par le ^{syst\`eme d'exploitation} qui supervise votre
+ex\'ecution de \TeX. \TeX\ manipule des fichiers dans quatre contextes diff\'erents~:
+\olist
+\li Un ``^{fichier source}'' est celui que \TeX\ lit avec ses ``yeux''
+\seeconcept{\anatomy} et interpr\`ete en accord avec ses r\`egles ordinaires.
+Votre fichier d'entr\'ee primaire---celui que vous sp\'ecifiez apr\`es `|**|' ou
+sur la ligne de commande quand vous
+invoquez \TeX---est un fichier source, et ainsi pour tout fichier que vous
+appelez avec une commande ^|\input| \ctsref \input.
+
+\li Un ``^{fichier r\'esultat}'' est celui qui contient les r\'esultats de
+l'ex\'ecution de \TeX. \TeX\ cr\'ee deux fichiers r\'esultat~: Le
+\dvifile\ et le fichier .log.
+^^{\dvifile//comme un fichier r\'esultat}
+^^{\logfile//comme un fichier r\'esultat}
+Le \dvifile\ contient l'information n\'ecessaire pour imprimer votre document.
+Le fichier
+.log contient un enregistrement de ce qui s'est pass\'e pendant l'ex\'ecution,
+incluant tout message d'erreur que \TeX\ a g\'en\'er\'e.
+Si votre fichier source primaire s'appelle
+|screed.tex|, vos \dvifiles\ et log se nommeront |screed.dvi|
+et |screed.log|\footnote{C'est la convention usuelle, mais
+des impl\'ementations particuli\`eres de \TeX\ sont libres de changer cela.}.
+
+\li Pour lire un fichier avec la commande ^|\read|
+\ctsref{\read} vous devez associer le fichier avec un flot d'entr\'ee.
+^^{flots d'entr\'ee//lire avec \b\tt\\read\e}
+Vous pouvez avoir jusqu'a $16$ flots d'entr\'ee actifs
+\`a la fois, num\'erot\'es de $0$ \`a $15$.
+La commande |\read| lit un seul fichier et le fait avec la valeur d'une
+\refterm{s\'equence de contr\^ole} d\'esign\'ee, donc lire avec
+|\read| est tr\`es diff\'erent de lire avec ^|\input| (qui apporte un
+fichier entier).
+\TeX\ prend tout flot d'entre qui n'est pas num\'erot\'e entre
+$0$ et $15$ comme r\'ef\'erence au terminal,
+donc `|\read16|', disons, lit la prochaine ligne que vous saisissez sur le
+terminal.
+
+\li Pour \'ecrire dans un fichier avec la commande |\write|
+\ctsref \write\ vous devez associer le fichier
+avec un flot de sortie.
+^^|\write//flot d'entr\'ee pour|
+^^{flots de sortie}
+Vous pouvez avoir jusqu'a $16$ flots de sortie actifs
+\`a la fois, num\'erot\'es de $0$ \`a $15$.
+Les flots d'entr\'ee et de sortie sont ind\'ependants.
+Tout ce qui est envoy\'e vers un flot de sortie avec un num\'ero n\'egatif va vers le
+fichier log~; tout ce qui est envoy\'e vers un flot de sortie avec un num\'ero
+sup\'erieur \`a $15$
+va \`a la fois vers le fichier log et le terminal.
+Ainsi `|\write16|', disons, \'ecrit une ligne sur le terminal et aussi envoit
+cette ligne vers le fichier~log.
+
+\endolist
+
+Vous devez ouvrir un fichier de flot avant de pouvoir l'utiliser.
+Un fichier de flot d'entr\'ee est ouvert avec une commande ^|\openin|
+\ctsref \openin\ et un fichier de flot de sortie est ouvert avec une
+commande ^|\openout| \ctsref\openout.
+Par propret\'e,
+vous devez fermer un fichier de flot quand vous en avez fini avec lui, n\'eanmoins
+\TeX\ le fera \`a la fin du traitement si vous ne l'avez pas fait.
+Les deux commandes pour fermer un fichier de flot sont ^|\closein| \ctsref\closein\
+et ^|\closeout| \ctsref\closeout.
+Un avantage de fermer un flot quand vous en avez fini avec lui
+est que vous pouvez r\'eutiliser le flot pour un autre fichier.
+Ceci peut \^etre essentiel quand vous lisez un longue suite de fichiers.
+
+De plus vous pouvez assigner des num\'eros vous-m\^eme aux flots d'entr\'ee et de sortie,
+Il est pr\'ef\'erable de le faire avec les commandes ^|\newread| et
+^|\newwrite| \ctsref{\@newwrite}.
+Vous pouvez avoir plus d'un flot associ\'e avec un seul fichier,
+mais vous aurez des salet\'es (probablement non diagnostiqu\'e) \`a moins que tous les flots
+soit des flots d'entr\'ee. Associer plus d'un flot avec un fichier d'entr\'ee
+peut-\^etre utile quand vous voulez utiliser le m\^eme fichier d'entr\'ee pour deux
+usages diff\'erents.
+
+D'habitude, \TeX\ diff\`ere les actions d'ouverture, d'\'ecriture et de fermeture
+d'un flot de sortie jusqu'a ce qu'il enregistre une page avec ^|\shipout|
+(voir la \knuth{page~227}{266}
+pour les d\'etails). Cette propri\'et\'e s'applique m\^eme aux messages \'ecrits sur le
+terminal avec |\write|. Mais vous pouvez demander \`a \TeX\ de faire une action
+sur un flot de sortie imm\'ediatement en faisant pr\'ec\'eder la commande d'action de
+^|\immediate| \ctsref\immediate. Par exemple~:
+\csdisplay
+\immediate\write16{Do not pass GO!! Do not collect $200!!}
+|
+\endconcept
+
+
+\concept {fichier format}
+
+{\tighten
+Un \defterm{fichier format} est un fichier qui contient une image de
+la m\'emoire de \TeX\ sous la forme dans laquelle il peut \^etre recharg\'e rapidement.
+Un fichier format peut \^etre cr\'e\'e avec la commande ^|\dump| \ctsref\dump.
+L'image contient un enregistrement complet
+des d\'efinitions (de \refterm{polices:police}, \refterm{macros:macro}, etc.)
+qui \'etaient pr\'esentes quand le dump a \'et\'e effectu\'e.
+En utilisant ^|virtex|, un forme sp\'eciale ``vierge'' de \TeX,
+vous pouvez recharger le fichier format \`a haute vitesse et
+continuer avec le m\^eme \'etat dans lequel \'etait \TeX\ au moment du dump.
+L'avantage du fichier format sur un fichier d' entr\'ee ordinaire
+contenant la m\^eme information est que \TeX\ peut la charger beaucoup plus
+vite.
+\par}
+
+Des fichiers de format doivent \^etre cr\'e\'es par ^|initex|, une
+forme sp\'eciale de \TeX\ \'ecrite \`a cette intention.
+Ni |virtex|, ni |initex| n'ont d'outils autres que les primitives
+construites dans le programme \TeX\ lui-m\^eme.
+
+Une forme ^{pr\'echarg\'ee} de \TeX\ est celle qui a un fichier format conforme
+charg\'e et est pr\^et \`a accepter l'entr\'ee de l'utilisateur.
+La forme de \TeX\ qui se nomme |tex|
+a souvent les d\'efinitions \plainTeX\ pr\'echarg\'ees.
+(\PlainTeX\ est normalement fourni sous deux autres formes~:
+comme une fichier de format et comme une fichier source de \TeX.
+Dans certains environnements, |tex| est \'equivalent \`a appeler |virtex|
+et charge alors |plain|.)
+Cr\'eer des formes pr\'echarg\'ees de \TeX\ n\'ecessite un programme sp\'ecial~;
+il ne peut pas \^etre fait en n'utilisant que les outils de \TeX\ lui-m\^eme.
+
+\endconcept
+
+
+\concept {fichier log}
+
+Voir \conceptcit{fichier}.
+\endconcept
+
+
+\conceptindex{filets}
+\concept filets
+
+Un \defterm{filet} est un rectangle plein noir.
+Un filet, comme une \refterm{bo\^\i te},
+a une \refterm{largeur}, une \refterm{hauteur} et une \refterm{profondeur}.
+La dimension verticale du rectangle
+est la somme de sa hauteur et de sa profondeur.
+Une ligne droite horizontale ou verticale est un cas sp\'ecial de filet.
+
+\bix^^{filets horizontaux}
+\bix^^{filets verticaux}
+\bix^^|\hrule|
+\bix^^|\vrule|
+Un filet peut \^etre soit horizontal, soit vertical. La distinction entre un
+filet horizontal et un vertical diff\`ere selon la fa\c con de produire le
+filet, un filet vertical peut \^etre court et \'epais (et donc ressembler
+\`a une ligne horizontale), tandis qu'un filet horizontal peut \^etre grand et maigre
+(et donc ressembler \`a une ligne verticale). La notion de filet de \TeX\ est
+plus g\'en\'erale que celle des typographes, qui pensent \`a un filet comme \`a une ligne
+et ne veulent habituellement pas appeler filet une bo\^\i te noire carr\'ee.
+
+Vous pouvez produire un filet horizontal en utilisant la commande
+|\hrule| et un filet vertical en utilisant
+la commande |\vrule| \ctsref{\vrule}.
+Par exemple, la s\'equence de contr\^ole |\hrule| par elle-m\^eme
+produit un filet fin qui traverse la page, comme ceci~:
+
+{\offinterlineskip
+\nobreak\medskip
+\hrule
+\medskip}
+
+La commande `|\vrule height .25in|' produit un filet vertical
+qui s'allonge de $.25$~pouces sur la page comme ceci~:
+\nobreak\vskip \abovedisplayskip
+\leftline{\vrule height .25in}
+\vskip \belowdisplayskip
+
+Il y a deux diff\'erences entre les filets horizontaux et verticaux~:
+\olist
+\li Pour un filet horizontal, \TeX\ prend comme largeur par d\'efaut la largeur
+de la plus petite \refterm{bo\^\i te} ou \refterm{alignement} qui l'englobe.
+Pour un filet vertical, \TeX\ prend comme hauteur et profondeur par d\'efaut
+de la m\^eme fa\c con. (Le
+d\'efaut est la taille que vous obtenez si vous ne donnez pas de taille explicitement
+pour cette dimension.)
+
+^^{listes horizontales//filet en}
+^^{listes verticales//filet en}
+\li
+{\tighten
+Un filet horizontal est un \'el\'ement fondamentalement vertical qui ne peut participer
+\`a une \refterm{liste horizontale}, tandis qu'un filet vertical est un \'el\'ement
+horizontal qui ne peut participer \`a une \refterm{liste verticale}.
+Cette propri\'et\'e peut sembler \'etrange d'un premier abord, mais il y a une
+bonne raison \`a cela~:
+Un filet horizontal s'\'etend visuellement de gauche \`a droite et donc s\'epare des
+\'el\'ements d'une liste verticale, tandis qu'un filet vertical s'\'etend visuellement
+de haut en bas et ainsi s\'epare des \'el\'ements d'une liste horizontale.
+%(Look at the rules that are shown above.)
+\par}
+\endolist
+
+{\tighten
+Si vous construisez un filet avec trois dimensions explicites,
+cela donnera la m\^eme chose que vous fassiez un filet horizontal ou vertical.
+Par exemple, la commande `|\vrule height1pt depth2pt width3in|' produit ce
+filet au look horizontal~:
+\par}
+
+{\offinterlineskip
+\nobreak\medskip\nobreak\vskip3pt
+\leftline{\vrule height1pt depth2pt width3in}
+\medskip}
+
+Vous trouverez un \'etat pr\'ecis du traitement des filets de \TeX\ dans les
+\knuth{pages~221--222}{259--260}.
+\eix^^{filets horizontaux}
+\eix^^{filets verticaux}
+\eix^^|\hrule|
+\eix^^|\vrule|
+\endconcept
+
+
+\conceptindex{flots d'entr\'ee}
+\concept {flots d'entr\'ee}
+
+Voir \conceptcit{fichier}.
+\endconcept
+
+
+\conceptindex{flots de sortie}
+\concept {flots de sortie}
+
+\margin{This concept was out of order.}
+Voir \conceptcit{fichier}.
+\endconcept
+
+
+\concept global
+
+Une d\'efinition \defterm{globale} est effective
+jusqu'a la fin du
+document ou jusqu'a ce qu'elle soit \'ecras\'ee par une autre d\'efinition,
+m\^eme quand elle appara\^\i t dans un \refterm{groupe}.
+Ainsi une d\'efinition globale n'est pas affect\'ee par les fronti\`eres de groupe.
+Vous pouvez rendre n'importe quelle d\'efinition globale en la pr\'efixant avec la
+commande |\global| \ctsref{\global} a moins que ^|\globaldefs| \ctsref\globaldefs{}
+soit n\'egatif.
+^^|\global|
+
+Il y a un moyen sp\'ecial de rendre une d\'efinition de \refterm{macro} globale.
+^^{macros//globale}
+Normalement vous d\'efinissez une macro en utilisant soit la commande |\def|
+soit la commande |\edef| \ctsref{\edef}.
+^^|\edef//rendre global|
+^^|\def//rendre global|
+Si vous utilisez |\gdef| ou |\xdef|
+au lieu de |\def| et |\edef| respectivement, la d\'efinition de macro sera
+globale. Parce que, `^|\gdef|' est \'equivalent \`a `|\global\def|' et
+`^|\xdef|' est \'equivalent \`a `|\global\edef|'.
+\endconcept
+
+
+\conceptindex{groupes}
+\concept groupe
+
+Un \defterm{groupe} est une partie de votre manuscrit que \TeX\ traite comme
+une unit\'e.
+Vous indiquez un groupe en l'entourant avec les accolades
+`|{|' et `|}|' (ou tout autre caract\`ere avec le
+\refterm{code de cat\'egorie} appropri\'e).
+^^|{//d\'ebuter un groupe|
+^^|}//terminer un groupe|
+
+La plus importante propri\'et\'e d'un groupe est que toute d\'efinition
+ou assignation non globale que vous faites dans un groupe dispara\^\i t quand
+le groupe se termine. Par exemple, si vous \'ecrivez~:
+
+\csdisplay
+Please don't pour {\it any} more tea into my hat.
+|
+La \refterm{s\'equence de contr\^ole} |\it| demande \`a \TeX\ de mettre le mot
+`|any|' en police italique mais n'affecte pas le reste du texte.
+Comme autre exemple, si vous utilisez le param\`etre |\hsize|
+\ctsref{\hsize} pour changer la longueur de la ligne dans un groupe, la longueur de ligne
+retourne \`a sa valeur pr\'ec\'edente un fois que \TeX\ est sorti du groupe.
+
+Les groupes sont aussi pratiques comme moyen de contr\^oler l'espace\-ment.
+Par exemple, si vous saisissez~:
+
+\csdisplay
+\TeX for the Impatient and the Outpatient too.
+|
+\noindent
+vous aurez~:
+\display{%
+\TeX for the Impatient and the Outpatient too.
+}
+\noindent
+puisque la s\'equence de contr\^ole |\TeX| (qui produit le logo \TeX)
+absorbe l'espace qui le suit.
+vous voulez probablement ceci~:
+\display{%
+{\TeX} for the Impatient and the Outpatient too.
+}
+\noindent
+Une mani\`ere d'obtenir ceci est d'englober `|\TeX|' dans un groupe~:
+\csdisplay
+{\TeX} for the Impatient and the Outpatient too.
+|
+L'accolade droite emp\^eche la s\'equence de contr\^ole d'absorber l'espace.
+\endconcept
+
+
+\concept hauteur
+
+La \defterm{hauteur} d'une \refterm{bo\^\i te} est la distance \`a laquelle la bo\^\i te
+s'\'etend au dessus de sa \refterm{ligne de base}.
+^^{\boites//hauteur de}
+\endconcept
+
+
+\conceptindex{hbox}
+\concept hbox
+
+Une \defterm{hbox} (bo\^\i te horizontale) est une \refterm{bo\^\i te} que \TeX\
+construit en plaquant les articles d'une \refterm{liste horizontale} l'un
+apr\`es l'autre, de la gauche vers la droite.
+^^{listes horizontales//hbox form\'es \`a partir de}
+Une hbox, prise comme unit\'e, n'est ni
+fondamentalement horizontale ni fondamentalement verticale, c'est-\`a-dire,
+qu'elle peut appara\^\i tre comme un
+article soit d'une liste horizontale soit d'une \refterm{liste verticale}.
+Vous pouvez construire une hbox avec la commande |\hbox| \ctsref{\hbox}.
+\endconcept
+
+
+\conceptindex{insertions}
+\concept insertion
+
+\looseness = -1
+Une \defterm{insertion} est une liste verticale contenant du mat\'eriel devant
+\^etre ins\'er\'e sur une page quand \TeX\ a fini de construire cette page\footnote
+{\tighten
+\TeX\ lui-m\^eme n'ins\`ere pas le mat\'eriel---il rend juste le mat\'eriel accessible
+\`a la routine de sortie, qui est alors responsable de la transf\'erer sur la
+page compos\'ee.
+^^{routine de sortie//insertions, traitement de}
+Le seul effet imm\'ediat de la commande ^|\insert|
+\ctsref{\insert} est de changer les calculs de coupure de page de \TeX\ pour
+qu'il laisse de la place sur la page pour le mat\'eriel \`a ins\'erer. Plus tard,
+quand \TeX\ coupera r\'eellement la page, il divisera le mat\'eriel \`a ins\'erer en
+deux groupes~: le mat\'eriel qui passe sur la page courante et le mat\'eriel qui
+ne passe pas.
+^^{coupures de page//insertions sur des}
+Le mat\'eriel qui passe sur la page est plac\'e dans des registres de bo\^\i te, un
+par insertion et le mat\'eriel qui ne passe pas est transf\'er\'e sur la page
+suivante.
+Cette proc\'edure autorise \TeX\ \`a faire des choses comme distribuer des parties
+d'une longue note de pied de page sur plusieurs pages cons\'ecutives.}. Des
+exemples de telles insertions sont les notes de pied de page et les figures.
+Les commandes \refterm{\plainTeX} pour cr\'eer des insertions sont
+^|\footnote|, ^|\topinsert|, |\mid!-insert|,
+^^|\midinsert|
+et ^|\pageinsert|, aussi bien que la commande primitive ^|\insert|
+elle-m\^eme (\pp\xrefn\footnote--\xrefn{endofinsert}).
+Le m\'ecanisme de \TeX\ pour manipuler des insertions est plus compliqu\'e~;
+voir les \knuth{pages~122--125}{142--146} pour les d\'etails.
+\endconcept
+
+
+\concept largeur
+
+^^{\boites//largeur de}
+La \defterm{largeur} d'une \refterm{bo\^\i te} est le montant d'espace horizontal
+qu'il occupe, c'est-\`a-dire, la distance de son cot\'e gauche \`a son cot\'e droit.
+Le mat\'eriel compos\'e dans une bo\^\i te peut \^etre plus large que la bo\^\i te elle-m\^eme.
+\endconcept
+
+
+
+\conceptindex{ligatures}
+\concept ligature
+
+Une \defterm{ligature} est un simple caract\`ere qui remplace une
+s\'e\-quence particuli\`ere de caract\`eres adjacents dans un document compos\'e.
+Par exemple, le mot `|office|' est compos\'e \hbox{``office''} et non
+\hbox{``of{f}ice''}, par les syst\`emes de composition de haute qualit\'e.
+La connaissance des ligatures est construite dans les \refterm{polices:police}
+que vous utilisez, donc vous n'avez rien \`a faire pour que \TeX\
+les produise. (Vous pouvez emp\^echer la ligature d'``office'', comme nous
+l'avons dit plus t\^ot, en saisissant `|of{f}ice|' dans votre entr\'ee.)
+\TeX\ est aussi capable d'utiliser son m\'ecanisme de ligature pour composer
+la premi\`ere ou la derni\`ere lettre d'un mot diff\'eremment de la m\^eme lettre
+qui appara\^\i t au milieu d'un mot
+Vous pouvez emp\^echer cet effet (si vous le rencontrez) en utilisant la
+commande ^|\noboundary| (\xref\noboundary).
+
+Parfois, vous aurez besoin d'une ligature d'une langue europ\'eenne.
+^^{langues europ\'eennes}
+\TeX\ ne les produit pas automatiquement sauf si vous utilisez une police
+dessin\'ee pour cette langue. Un certain nombre de ces ligatures, par exemple,
+\AE, sont accessible par une commande
+(voir ``Lettres et ligatures pour alphabets europ\'eens'',
+\xref{fornlets}).
+\endconcept
+
+
+\conceptindex{lignes de base}
+\concept ligne de base
+
+La \defterm{ligne de base} d'une \refterm{bo\^\i te} est une ligne imaginaire qui traverse
+la bo\^\i te.
+^^{\boites//lignes de base de}
+Quand \TeX\
+assemble les bo\^\i tes d'une \refterm{liste horizontale} en une bo\^\i te plus grande,
+il aligne les bo\^\i tes de la liste pour que leurs lignes de base co\"\i ncident.
+Par analogie, pensez que vous \'ecrivez sur un bloc de papier lign\'e. Chaque lettre
+que vous \'ecrivez a
+une ligne de base implicite.
+Pour aligner les lettres horizontalement,
+vous les placez sur le bloc pour que leurs lignes de base
+s'ajustent avec les lignes-guides claires imprim\'ees sur le bloc.
+
+Une bo\^\i te peut et souvent doit s'\'etendre sous sa ligne de base.
+Par exemple, la lettre `g' s'\'etend sous la ligne de base de sa bo\^\i te parce
+qu'elle a une descendante (la boucle du dessous du `g').
+\endconcept
+
+
+\conceptindex{listes}
+\concept liste
+
+Une \defterm{liste} est une s\'equence d'\refterm{\'el\'ements:\'el\'ement}
+(\refterm{bo\^\i tes:bo\^\i te}, \refterm{ressorts:ressort}, \refterm{cr\'enages:cr\'enage}, etc.)
+cela comprend tout le contenu d'une hbox, d'une vbox
+ou d'une formule math\'ematique.
+Voir \conceptcit{liste horizontale}, \conceptcit{liste verticale}.
+
+\endconcept
+
+
+\conceptindex{listes horizontales}
+\concept {liste horizontale}
+
+Une \defterm{liste horizontale} est une liste d'articles
+que \TeX\ a produit quand il \'etait dans un de ses
+\refterm{modes horizontaux:mode horizontal}, c'est-\`a-dire, en assemblant
+soit un paragraphe soit une hbox. Voir ``mode horizontal'' ci-dessous.
+\endconcept
+
+
+\conceptindex{listes verticales}
+\concept {liste verticale}
+
+Une \defterm{liste verticale} est une liste d'\'el\'ements que \TeX\ a produit quand il
+\'etait dans une de ses modes vertical, c'est-\`a-dire, en assemblant soit une
+\refterm{vbox} soit une page. Vois ``mode vertical'' ci-dessous.
+
+\endconcept
+
+
+\conceptindex{macros}
+\concept macro
+
+{% Use a brace here so that definitions of explanatory macros remain local.
+% The closing brace is at the end of the concept.
+Une \defterm{macro} est une d\'efinition qui donne un nom \`a un mod\`ele de texte
+d'entr\'ee de \TeX\footnote{Plus pr\'ecis\'ement, la d\'efinition donne un nom
+\`a une s\'equence de tokens.}. Le nom peut \^etre soit une \refterm{s\'equence de
+contr\^ole} soit un \refterm{caract\`ere actif}. Le mod\`ele est appel\'e le
+``texte de remplacement''. La commande primaire pour d\'efinir des macros est
+la s\'equence de contr\^ole |\def|.
+
+\def\arctheta{\cos \theta + i \sin \theta}
+Comme exemple simple, supposez que vous ayez un document dans lequel
+la s\'equence `$\cos \theta + i \sin \theta$' appara\^\i t plusieurs fois.
+Au lieu de l'\'ecrire \`a chaque fois, vous pouvez d\'efinir une macro pour cela~:
+\csdisplay
+\def\arctheta{\cos \theta + i \sin \theta}
+|
+Maintenant \`a chaque fois que vous avez besoin de cette s\'equence, vous pouvez
+simplement ``appeler'' la macro en \'ecrivant `|\arctheta|' et vous l'aurez.
+Par exemple, `|$e^{\arctheta}$|' vous donnera `$e^{\arctheta}$'.
+
+\bix^^{macros//param\`etres de}
+Mais la r\'eelle puissance des macros tient au fait qu'une macro peut avoir des
+param\`etres. Quand vous appelez une macro qui a des param\`etres, vous fournissez
+des arguments qui se substituent \`a ces param\`etres. Par exemple, supposez
+que vous \'ecrivez~:
+\pix\indexchar #
+\def\arc#1{\cos #1 + i \sin #1}
+\csdisplay
+\def\arc#1{\cos #1 + i \sin #1}
+|
+
+La notation |#1| \xrdef{@msharp} d\'esigne le premier param\`etre
+de la macro, qui dans ce cas n'a qu'un param\`etre. Vous pouvez maintenant
+produire une forme similaire, telle que `$\arc{2t}$', avec l'appel de macro
+`|\arc{2t}|'.
+
+Plus g\'en\'eralement, une macro peut avoir jusqu'a neuf param\`etres, que vous
+d\'esignez par `|#1|', `|#2|', etc\null. dans la d\'efinition de la macro. \TeX\
+fourni deux types de param\`etres~: les param\`etres d\'elimit\'es et les param\`etres
+non d\'elimit\'es. Bri\`evement, un param\`etre d\'elimit\'e a un \refterm{argument} qui
+est d\'elimit\'e ou termin\'e par une s\'equence sp\'ecifique de tokens (le d\'elimiteur),
+tandis qu'un param\`etre non d\'elimit\'e a un argument qui n'a pas besoin de
+d\'elimiteur pour le terminer.
+Premi\`erement, nous expliquerons comment fonctionnent les macros quand elles
+n'ont que des param\`etres non d\'elimit\'es, et ensuite, nous expliquerons comment
+elles fonctionnent quand elles ont des param\`etres d\'elimit\'es.
+
+^^{param\`etres//non d\'elimit\'es}
+Si une macro n'a que des param\`etres non d\'elimit\'es, ces param\`etres doivent appara\^\i tre
+l'un apr\`es l'autre dans la d\'efinition de macro \emph{sans rien entre
+eux ou entre le dernier param\`etre et l'accolade gauche au d\'ebut du
+texte de remplacement}.
+Un appel d'une telle macro consiste en le nom de la macro suivi par
+les arguments de l'appel, un pour chaque param\`etre. Chaque argument est
+soit~:
+
+\ulist \compact
+\li un \refterm{token} simple autre qu'un accolade gauche ou droite ou
+
+\li une s\'equence de tokens englob\'e entre une accolade gauche et
+une accolade droite correspondante\footnote{L'argument peut avoir des paires
+d'accolades englobantes et chacune de ces paires peut d\'esigner soit
+un \refterm{groupe} soit un autre argument de macro.}.
+\endulist
+
+Quand \TeX\ rencontre une macro, il d\'eveloppe la macro dans son \oe so\-phage
+\seeconcept{\anatomy}
+en substituant chaque argument par le param\`etre correspondant
+dans le texte de remplacement. Le texte r\'esultant peut contenir d'autres
+appels de macro. Quand \TeX\ rencontre un tel appel de macro imbriqu\'e, il
+d\'eveloppe cet appel imm\'ediatement sans regarder ce qui suit l'appel
+\footnote{En terminologie informatique, le d\'eveloppement est ``profondeur
+d'abord'' plut\^ot que ``largeur d'abord''. Notez que vous pouvez modifier l'ordre
+du d\'eveloppement avec des commandes telles que |\expandafter|.}. Quand
+l'\oesophage de \TeX\ tombe sur une \refterm{commande} \refterm{primitive}
+qui ne peut \^etre d\'evelopp\'ee plus loin, \TeX\ passe cette commande \`a l'estomac
+de \TeX. L'ordre de d\'eveloppement est parfois critique, donc de fa\c con \`a vous
+aider \`a le comprendre, nous vous donnons un exemple de \TeX\ au travail.
+
+Supposez que vous procurez \`a \TeX\ l'entr\'ee suivante~:
+\csdisplay
+\def\a#1#2{\b#2#1\kern 2pt #1}
+\def\b{bb}
+\def\c{\char49 cc}
+\def\d{dd}
+\a\c{e\d} % Call on \a.
+|
+Alors l'argument correspondant \`a |#1| est |\c|,
+et l'argument correspondant \`a |#2| est |e\d|.
+\TeX\ d\'eveloppe l'appel de macro d'apr\`es les \'etapes suivantes~:
+
+{\vskip\abovedisplayskip\obeylines % ugly
+|\b e\d\c\kern 2pt \c|
+|bbe\d\c\kern 2pt \c|
+|\d\c\kern 2pt \c|\quad(`|b|', `|b|', `|e|' envoy\'es vers l'estomac)
+|dd\c\kern 2pt \c|
+|\c\kern 2pt \c|\quad(`|d|', `|d|' envoy\'es vers l'estomac)
+|\char49 cc\kern 2pt \c|
+|\c|\quad(`|\char|', `|4|', `|9|', `|c|', `|c|', %
+`|\kern|', `|2|', `|p|', `|t|' envoy\'es vers l'estomac)
+|\char49 cc|
+(`|\char49|', `|c|', `|c|' envoy\'es vers l'estomac)
+\vskip\belowdisplayskip}
+
+\noindent Notez que les lettres `|b|', `|c|', `|d|' et `|e|' et les
+s\'equences de contr\^ole `|\kern|' et `|\char|' sont toutes des commandes
+primitives qui ne peuvent \^etre d\'evelopp\'ees.
+
+\bix^^{param\`etres//d\'elimit\'es}
+Une macro peut aussi avoir des ``param\`etres d\'elimit\'es'', qui peuvent \^etre m\'elang\'es avec
+des non d\'elimit\'es dans toutes les combinaisons. L'id\'ee d'un param\`etre
+d\'elimit\'e est que \TeX\ trouve l'argument correspondant en recherchant
+une certaine s\'equence de tokens qui marquent la fin de l'argument---le
+d\'elimiteur. Cela fait, quand \TeX\ recherche un tel argument, il
+prend comme argument tout les tokens \`a partir de la position courante de \TeX\
+mais sans inclure le d\'elimiteur.
+
+Vous indiquez un param\`etre d\'elimit\'e en \'ecrivant `|#|$n$' ($n$
+doit \^etre entre $0$
+et $9$) suivi par un ou plusieurs tokens qui agissent comme le d\'elimiteur.
+Le d\'elimiteur s'\'etend jusqu'au prochain `|#|' ou `|{|'---qui ont un sens
+car `|#|' d\'ebute un autre param\`etre et `|{|' le texte de remplacement.
+
+Le d\'elimiteur ne peut \^etre `|#|' ou `|{|', donc vous pouvez appeler un param\`etre
+d\'elimit\'e \`a partir d'un non d\'elimit\'e en recherchant ce qui le suit.
+
+Si le caract\`ere apr\`es le param\`etre est `|#|' ou `|{|', vous avez un
+param\`etre non d\'elimit\'e~; autrement il sera d\'elimit\'e. Notez
+la diff\'erence dans les arguments pour les deux sortes de param\`etres---un
+param\`etre non d\'elimit\'e est d\'esign\'e soit par un simple token, soit par une
+s\'equence de tokens englob\'es entre des accolades, tandis qu'un param\`etre
+d\'elimit\'e est d\'esign\'e par n'importe quel nombre de tokens, m\^eme aucun.
+
+Un exemple de macro utilisant deux param\`etres d\'elimit\'es est~:
+\def\diet#1 #2.{On #1 we eat #2!}
+\csdisplay
+\def\diet#1 #2.{On #1 we eat #2!!}
+|
+Ici le premier param\`etre est d\'elimit\'e par un simple espace et le
+second param\`etre est d\'elimit\'e par un point. Si vous saisissez~:
+\csdisplay
+\diet Tuesday turnips.
+|
+vous obtiendrez le texte ``\diet Tuesday turnips.''.
+Mais si les tokens d\'elimitants sont englob\'es dans un groupe, \TeX\
+ne les consid\`ere pas d\'elimit\'es. Donc si vous \'ecrivez~:
+\csdisplay
+\diet {Sunday mornings} pancakes.
+|
+vous obtiendrez le texte `\diet {Sunday mornings} pancakes.'
+m\^eme s'il y a un espace entre `|Sunday|' et `|morning|'.
+Quand vous utilisez un espace comme d\'elimiteur,
+un caract\`ere fin de ligne d\'elimite aussi normalement l'argument
+car \TeX\ convertit la fin de ligne en espace avant que le m\'ecanisme de
+macro ne le voit.
+\eix^^{param\`etres//d\'elimit\'es}
+\eix^^{macros//param\`etres de}
+
+Il arrivera que vous ayez \`a d\'efinir une macro qui ait `|#|' comme caract\`ere
+significatif. Vous aurez plus de chance d'avoir besoin de faire cela quand
+vous d\'efinirez une macro qui \`a son tour d\'efinit une seconde macro. Comment
+faire \`a propos des param\`etres de la seconde macro sans mettre \TeX\
+dans la confusion~? La r\'eponse est que vous saisissez deux `|#|' pour chacun
+de ceux que vous voulez quand la premi\`ere macro est d\'evelopp\'ee. Par exemple,
+supposons que vous \'ecriviez la d\'efinition de macro~:
+\def\first#1{\def\second##1{#1/##1}}
+\csdisplay
+\def\first#1{\def\second##1{#1/##1}}
+|
+Alors l'appel `|\first{One}|' d\'efini `|\second|' comme~:
+\csdisplay
+\def\second#1{One/#1}
+|
+et l'appel cons\'ecutif `|\second{Two}|' produit le texte
+\def\second#1{One/#1}%
+`\second {Two}'.
+
+Un certain nombre de commandes fournissent des moyens suppl\'emen\-taires pour d\'efinir des macros
+(voir pp.~\xrefn{mac1}--\xrefn{mac2}).
+Pour les r\`egles com\-pl\`etes concernant les macros, voir le \knuth{chapitre~20}{}
+}% close brace at the start of the `macro' concept.
+\endconcept
+
+
+\concept magnification
+
+Quand \TeX\ compose un document, il multiplie toutes les dimensions
+par un facteur de
+\refterm{magnification} $f/1000$,
+o\`u $f$ est la valeur du param\`etre ^|\mag| \ctsref\mag.
+Puisque la valeur par d\'efaut de |\mag| est $1000$, le cas normal est que
+votre document est compos\'e comme il est sp\'ecifi\'e.
+Augmenter la magnification est souvent utile quand vous composez un document
+qui sera r\'eduit photographiquement.
+
+Vous pouvez aussi appliquer de la magnification sur une seule \refterm{police}
+pour avoir une version plus petite ou plus grande de cette police que sa
+``^{taille d'origine}''. Vous
+devez procurer au driver d'impression un ^{fichier de forme}
+\seeconcept{police} pour
+chaque magnification de police que vous utilisez---%
+a moins que la police ne soit construite dans votre imprimante et que votre driver
+d'impression la connaisse.
+Quand vous d\'efinissez une police avec la commande
+|\font| \ctsref{\font}, vous pouvez sp\'ecifier une magnification avec
+le mot `|scaled|'. Par exemple~:
+
+\csdisplay
+\font\largerbold = cmbx10 scaled 2000
+|
+d\'efinit `|\largerbold|' comme une police qui est
+deux fois plus grande que |cmbx10| (Computer Modern
+Grasse Etendue en $10$ points) et a les formes de caract\`ere
+uniform\'ement agrandies d'un facteur de~$2$.
+
+De nombreux centres informatiques trouvent pratique de fournir des polices
+agrandies par un ratio
+de $1.2$, correspondant \`a des valeurs de magnification de $1200$, $1440$, etc.
+\TeX\ a des noms sp\'eciaux pour ces valeurs~:
+^^|\magstep|
+`|\magstep1|' pour $1200$,
+`|\magstep2|' pour $1440$, et ainsi de suite jusqu'a `|\magstep5|'.
+La valeur sp\'eciale `^|\magstephalf|' correspond \`a une magnification de $\sqrt{1.2}$, qui
+est visuellement \`a mi-chemin entre `|\magstep0|' (pas de magnification) et
+`|\magstep1|'. Par exemple~:
+
+\csdisplay
+\font\bigbold = cmbx10 scaled \magstephalf
+|
+
+Vous pouvez sp\'ecifier une \refterm{dimension} comme elle sera
+mesur\'ee dans le document final ind\'ependamment des magnifications en mettant
+`^|true|' devant l'unit\'e. Par exemple, `|\kern 8 true pt|'
+produit un cr\'enage de $8$ points quelque soit la magnification.
+
+\endconcept
+
+\concept marges
+
+Les \refterm{marges}
+d'une page d\'efinissent un rectangle qui normalement
+contient la mati\`ere imprim\'ee sur la page.
+Vous pouvez demander \`a \TeX\ d'imprimer du mat\'eriel en dehors de ce rectangle,
+mais uniquement en demandant des actions explicites qui d\'eplacent le mat\'eriel
+\`a cet endroit. \TeX\ consid\`ere les ent\^etes et les pieds de page comme \'etant
+en dehors des marges.
+
+Le rectangle est d\'efini en fonction de son coin en haut \`a gauche, de sa largeur, et
+de sa profondeur. L'emplacement du coin en haut \`a gauche est d\'efini par
+les param\`etres ^|\hoffset|
+et ^|\voffset|
+\ctsref\voffset. L'usage est de placer ce coin \`a un pouce du haut
+et \`a un pouce du bord gauche de la page, correspondant \`a une valeur de
+z\'ero pour |\hoffset| et |\voffset|%
+\footnote{Il nous semble qu'il s'agisse d'une convention bizarre.
+Il aurait \'et\'e plus naturel d'avoir le point $(0,0)$
+pour |\hoffset| et |\voffset| dans le coin en haut \`a gauche du
+papier et d'avoir leur valeur par d\'efaut \`a un pouce.}.
+La largeur du rectangle est donn\'e par ^|\hsize| et la profondeur par ^|\vsize|.
+
+Les implications de ces conventions sont~:
+\ulist\compact
+\li La marge gauche est donn\'ee par |\hoffset|\tplus|1in|.
+\li La marge droite est donn\'ee par la largeur du papier moins
+ |\hoffset|\tplus|1in|\tplus|\hsize|.
+\li La marge du haut est donn\'ee par |\voffset|\tplus|1in|.
+\li La marge du bas est donn\'ee par la longueur du papier moins
+ |\voff!-set|\tplus|1in|\tplus|\vsize|.
+\endulist
+A partir de ces informations vous pouvez voir quels param\`etres vous devez
+changer pour modifier les marges.
+
+Chaque changement que vous faites \`a |\hoffset|, |\voffset| ou |\vsize| prendra
+effet la prochaine fois que \TeX\ d\'ebutera une page. En d'autres termes, si vous
+les changez dans une page, le changement n'affectera que la page \emph{suivante}.
+Si vous changez |\hsize|, le changement deviendra effectif imm\'ediatement.
+\endconcept
+
+
+\conceptindex{marques}
+\concept marque
+
+Une \defterm{marque} est un \'el\'ement que vous pouvez ins\'erer dans une
+liste horizontale, verticale ou math\'ematique et plus tard la retrouver dans
+votre routine de sortie. Les marques sont utiles pour des usages tels que
+garder une trace des sujets apparents dans des ent\^etes de page.
+Chaque marque a une liste de tokens---le ``^{texte de marque}''---associ\'e avec elle.
+La commande ^|\mark| \ctsref{\mark} attend une telle liste de token
+comme son argument, et attend un \'el\'ement contenant cette liste de token (apr\`es
+expansion) pour toute liste que \TeX\ est en train de construire.
+Les commandes ^|\topmark|, ^|\firstmark| et ^|\botmark|
+\ctsref{\topmark} peuvent \^etre utilis\'ees pour retrouver diverses marques sur une page.
+Ces commandes sont le plus souvent utilis\'ees dans les ent\^etes et les pieds de page.
+^^{pieds de page//marques utilis\'es en}
+^^{ent\^etes//marques utilis\'es en}
+
+\margin{This example of {\tt\\mark} replaces the previous explanatory
+paragraph.}
+Voici un exemple simplifi\'e.
+Supposez que vous d\'efinissiez une macro d'ent\^ete de section comme suit~:
+\csdisplay
+\def\section#1{\medskip{\bf#1}\smallskip\mark{#1}}
+% #1 is the name of the section
+|
+^^|\mark|
+Cette macro, quand elle est appel\'ee, produira un ent\^ete de section en caract\`eres gras et
+enregistrera aussi le nom de la section comme marque.
+Vous pouvez maintenant d\'efinir l'ent\^ete de chaque page imprim\'ee
+comme suit~:
+\csdisplay
+\headline = {\ifodd\pageno \hfil\botmark\quad\folio
+ \else \folio\quad\firstmark\hfil \fi}
+|
+Chaque page paire (celle de gauche) aura maintenant le num\'ero de page suivi par
+le nom de la premi\`ere section de cette page, tandis que chaque page impaire (celle de droite)
+aura le num\'ero de page suivi du nom de la derni\`ere section de cette page.
+Les cas sp\'eciaux, par exemple, pas de section commen\c cant sur une page,
+s'afficheront g\'en\'eralement correctement gr\^ace \`a la mani\`ere dont travaillent
+^|\firstmark| et ^|\botmark|.
+
+Quand vous partagez une page en utilisant la commande |\vsplit| \ctsref{\vsplit} vous
+pouvez retrouver les textes de la premi\`ere et de la derni\`ere marque de la
+portion non partag\'ee avec les commandes ^|\splitfirstmark| et ^|\splitbotmark|
+\ctsref{\splitfirstmark}.
+
+Voir les \knuth{pages~258--260}{302--305} pour une explication plus pr\'ecise sur la
+fa\c con de cr\'eer et retrouver des marques.
+\endconcept
+
+
+\conceptindex{mathcodes}
+\concept mathcode
+
+Un \defterm{mathcode} est un nombre que \TeX\ utilise pour identifier et
+d\'ecrire un caract\`ere math\'ematique,
+^^{caract\`eres math\'ematiques//d\'ecrits par mathcodes}
+c'est-\`a-dire, un caract\`ere qui a un
+r\^ole particulier dans une formule math\'ematique. Un mathcode
+transmet trois sortes
+d'informations sur un caract\`ere~: sa position dans la \refterm{police}, sa
+\refterm{famille} et sa \refterm{classe}.
+Chacun des $256$ caract\`eres entr\'es possibles
+a un mathcode, qui est d\'efini par le programme \TeX\
+mais peut \^etre chang\'e.
+
+^^{famille//comme partie de mathcode}
+\TeX\ a seize familles de police, num\'erot\'ees $0$--$15$. Chaque
+famille con\-tient trois polices~: une pour la \refterm{taille texte}, une pour
+la \refterm{taille script} et une pour la \refterm{taille scriptscript}. \TeX\
+choisi la taille d'un caract\`ere particulier et donc sa police,
+en fonction du contexte. La classe d'un caract\`ere sp\'ecifie son r\^ole
+dans une formule (voir la \knuth{page~154}{180}). Par exemple, le signe \'egal `|=|'
+est dans la classe $3$ (relation). \TeX\ utilise sa connaissance des classes
+de caract\`eres quand il d\'ecide combien d'espace mettre entre diff\'erents
+composants d'une formule math\'ematique.
+
+La meilleure fa\c con de comprendre ce que sont les mathcodes est de voir comment
+\TeX\ les utilise. Nous montrons ce que \TeX\ fait avec un
+token de caract\`ere $t$ de \refterm{code de cat\'egorie}~11 ou~12 dans une
+formule math\'ematique~:
+
+\olist\compact
+\li Il recherche le mathcode du caract\`ere.
+\li Il d\'etermine une famille $f$ \`a partir du mathcode.
+\li Il d\'etermine la taille $s$ \`a partir du contexte.
+\li Il s\'electionne une police $F$ en prenant la police de taille $s$ dans la famille $f$.
+\li Il d\'etermine un num\'ero de caract\`ere $n$ \`a partir du mathcode.
+\li Il s\'electionne comme caract\`ere $c$ devant \^etre compos\'e le caract\`ere
+\`a la position $n$ de la police $F$.
+\li Il ajuste l'espacement autour de $c$ en fonction de la classe de $t$ et
+du contexte ambiant.
+\li Il compose le caract\`ere $c$.
+\endolist
+
+La d\'ependance du contexte dans les \'etapes
+(3) et (7) implique que \TeX\ ne peut pas composer un caract\`ere math\'ematique
+tant qu'il n'a pas vu toute la formule contenant le
+caract\`ere math\'ematique. Par exemple, dans la formule
+`|$a\over b$|', \TeX\ ne sait pas quelle taille aura le `|a|' tant qu'il
+n'aura pas vu le |\over|.
+
+{\tighten
+Le mathcode d'un caract\`ere est encod\'e en fonction de la formule $4096c
++ 256f + n$, o\`u $c$ est la classe du caract\`ere, $f$ sa
+\refterm{famille} et $n$ son code de \refterm{caract\`ere \ascii} dans
+la famille. Vous pouvez changer l'interpr\'etation de \TeX\ pour un caract\`ere entr\'e
+dans un mode math\'ematique en assignant une valeur \`a la table d'entr\'ee des ^|\mathcode|
+\ctsref{\mathcode} pour ce
+caract\`ere. Le caract\`ere doit avoir un
+\refterm{code de cat\'egorie} \`a $11$ (lettre) ou $12$ (autre) pour que \TeX\
+recherche son |\mathcode|.
+}\par
+
+^^{famille//variable}
+Vous pouvez d\'efinir un caract\`ere math\'ematique pour avoir une famille ``variable'' en
+lui donnant une classe de $7$. A chaque fois que \TeX\ rencontre ce caract\`ere dans une
+formule math\'ematique, il prend la famille du caract\`ere comme \'etant la valeur
+courante du param\`etre |\fam| \ctsref{\fam}. Une famille variable vous autorise
+\`a sp\'ecifier la police de texte ordinaire dans une formule math\'ematique. Par
+exemple, si le caract\`ere romain est dans la famille $0$, l'assignement
+|\fam = 0|
+fera que le texte ordinaire d'une formule math\'ematique sera mis en type romain
+au lieu d'autre chose comme du type math\'ematique italique. Si la valeur de
+|\fam| n'est pas dans la fourchette de $0$ \`a $15$, \TeX\ prend la valeur \`a
+$0$, ainsi le rendu des classes $0$ et $7$ est \'equivalent.
+\TeX\ fixe |\fam| \`a $-1$ a chaque fois qu'il entre en mode math\'ematique.
+\endconcept
+
+
+\conceptindex {math\'ematiques affich\'ees}
+\concept {math\'ematique affich\'ee}
+
+Le terme \defterm{math\'ematique affich\'ee} fait r\'ef\'e\-rence aux formules math\'ematiques que \TeX\
+place sur une ligne seule avec de l'espace suppl\'ementaire dessus et dessous
+pour le s\'eparer du texte l'environnant.
+Une formule math\'ematique affich\'ee est entour\'ee de `|$$|'.
+\ttidxref{$$}
+\TeX\ lit les math\'ematiques affich\'ees dans le \refterm{mode} math\'ematiques affich\'ees.
+\endconcept
+
+
+\concept m\'ediocrit\'e
+
+La \defterm{m\'ediocrit\'e} d'une ligne mesure combien les tailles des espaces
+inter-mot ^^{espacement inter-mots} de la ligne d\'evient de leurs valeurs
+naturelles, c'est-\`a-dire, des valeurs sp\'ecifi\'ees dans les
+\refterm{polices:police} utilis\'ees dans la ligne. Plus grande est la
+d\'eviation, plus grande est la m\'ediocrit\'e. Similairement, la m\'ediocrit\'e d'une
+page est une mesure de combien les espaces entre les bo\^\i tes qui dessinent
+la page d\'evient de leurs valeurs id\'eales. (Ordinairement, la plupart de ces
+bo\^\i tes sont des lignes simples de paragraphes.)
+
+Plus pr\'ecis\'ement, la m\'ediocrit\'e mesure de combien le \refterm{ressort}
+associ\'e avec ces espaces doit s'\'etirer ou se r\'etr\'ecir pour remplir la
+ligne ou la page exactement. \TeX\ calcule la m\'ediocrit\'e comme
+approximativement $100$ fois le cube du ratio par lequel il doit \'etirer ou
+r\'etr\'ecir le ressort pour composer une ligne ou une page de la taille d\'esir\'ee.
+^^{coupures de ligne//m\'ediocrit\'e pour}^^{coupures de page//m\'ediocrit\'e pour} Par exemple,
+\'etirer le ressort par deux fois son \'etat d'\'etirement signifie un ratio de
+$2$ et une m\'ediocrit\'e de $800$~; la r\'etr\'ecir de moiti\'e son \'etat de r\'etr\'ecissement
+signifie un ratio de $.5$ et une m\'ediocrit\'e de $13$. \TeX\ traite une m\'ediocrit\'e
+sup\'erieure \`a $10000$ comme \'etant \'egale \`a $10000$.
+
+\TeX\ utilise la m\'ediocrit\'e d'une ligne quand il coupe un paragraphe en lignes
+\seeconcept{coupure de ligne}. Il utilise cette information en deux \'etapes~:
+
+\olist
+\li Quand \TeX\ choisi des coupures de ligne,
+il acceptera \'eventuellement des lignes dont la m\'ediocrit\'e est inf\'erieure ou \'egale \`a
+la valeur de |\tole!-rance| (\xref \tolerance). Si \TeX\ ne peut pas diminuer la conception
+d'une ligne dont la m\'ediocrit\'e d\'epasse cette valeur,
+il lui mettra un ``underfull ou overfull \refterm{hbox}''.
+\TeX\ ne mettra
+un ``overfull ou underfull hbox'' qu'en dernier ressort, c'est-\`a-dire, seulement s'il n'y a
+pas d'autre moyen de d\'ecouper le paragraphe en lignes.
+\li En assumant que toutes les lignes sont tol\'erablement mauvaises, \TeX\ utilise la m\'ediocrit\'e des lignes
+pour \'evaluer les diff\'erents moyens de couper le paragraphe en lignes.
+Durant cette \'evaluation il associe des ``d\'em\'erites'' avec chaque ligne potentielle.
+La m\'ediocrit\'e augmente le nombre de \refterm{d\'em\'erites}.
+\TeX\ alors
+coupe le paragraphe en lignes d'une fa\c con qui minimise
+le total des d\'em\'erites pour le paragraphe.
+Plus
+souvent \TeX\ arrange le paragraphe pour minimiser la m\'ediocrit\'e de la
+ligne la pire. Voir \knuth{pages~97--98}{114--115} pour les d\'etails comment \TeX\
+coupe un paragraphe en lignes.
+\endolist
+
+La proc\'edure de \TeX\ pour assembler une s\'equence de lignes et autres mati\`eres en modes verticaux
+en pages est similaire \`a sa proc\'edure de coupure de ligne.
+De toutes fa\c cons, assembler des pages n'est pas aussi compliqu\'e parce que
+\TeX\ ne consid\`ere qu'une page \`a la fois
+quand il cherche des coupures de page.
+Donc la seule d\'ecision qu'il doit prendre est o\`u finir la page courante.
+De plus, quand \TeX\ choisit des coupures de ligne il en
+consid\`ere plusieurs simultan\'ement.
+(La plupart des traitements de texte choisissent des coupures de ligne une \`a la fois,
+et donc ne font pas un aussi bon boulot que celui que fait \TeX\.)
+Voir \knuth{pages~111--113}{129--131} pour les d\'etails sur comment \TeX\ choisit ses
+coupures de page.
+\endconcept
+
+
+\conceptindex{modes}
+\concept mode
+
+Quand \TeX\ dig\`ere votre entr\'ee dans son estomac \seeconcept{\anatomy},
+il est dans un des six \defterm{modes}~:
+\ulist\compact
+\li ^{mode horizontal ordinaire} (assemblage d'un paragraphe)
+\li ^{mode horizontal restreint} (assemblage d'une \refterm{hbox})
+\li ^{mode vertical ordinaire} (assemblage d'une page)
+\li ^{mode vertical restreint} (assemblage d'une \refterm{vbox})
+\li ^{mode math\'ematique de texte} (assemblage d'une formule apparaissant dans du texte)
+\li ^{mode math\'ematique hors-texte}
+(assemblage d'une formule apparaissant sur une ligne seule)
+^^{mode horizontal}^^{mode vertical}^^{mode math\'ematique}
+\endulist
+Le mode d\'ecrit une sorte d'entit\'e que \TeX\ rassemble.
+
+Parce que vous pouvez encastrer une sorte d'entit\'e avec une autre, c'est-\`a-dire, une vbox
+dans une formule, \TeX\ garde trace non seulement d'un mode mais d'une
+liste enti\`ere de modes (ce qu'un informaticien appelle une ``pile'').
+Supposez que \TeX\ soit en mode $M$ et rencontre quelque chose qui le
+met dans une nouveau mode \Mprimeperiod. Quand il termine son travail dans
+le mode \Mprimecomma, il reprend ce qu'il faisait dans le mode \Mperiod.
+
+\endconcept
+
+
+\concept {mode horizontal}
+
+^^{hbox//mode horizontal pour}
+Quand \TeX\ assemble un paragraphe ou une \refterm{hbox}, il est dans un
+des deux \defterm{modes horizontaux}~: le ^{mode horizontal ordinaire}
+pour assembler des paragraphes et le ^{mode horizontal restreint} pour
+assembler des bo\^\i tes horizontales. A chaque fois que \TeX\ est dans un mode horizontal
+son estomac \seeconcept{\anatomy} construit une \refterm{liste horizontale}
+d'articles (bo\^\i tes, ressort, p\'enalit\'es, etc.).
+\TeX\ compose les articles dans la liste
+l'un apr\`es l'autre, de gauche \`a droite.
+
+Une liste horizontale ne peut contenir aucun
+article produit par des commandes verticales internes, par exemple, |\vskip|.
+^^{listes horizontales//ne peuvent contenir de commandes verticales}
+
+\ulist
+\li Si \TeX\ assemble une liste horizontale dans le mode horizontal ordinaire et
+rencontre une commande verticale interne, \TeX\ termine le paragraphe et
+entre dans le \refterm{mode vertical}.
+
+\li Si \TeX\ assemble une liste horizontale dans le mode horizontal
+interne et rencontre une commande verticale interne, il rousp\`ete.
+\endulist
+
+Deux commandes que vous pensez d'abord horizontales internes
+sont en fait verticales internes~: |\halign| \ctsref{\halign}
+et |\hrule| \ctsref{\hrule}.
+^^|\hrule//vertical par nature|
+^^|\halign//vertical par nature|
+voir la \knuth{page~286}{332} pour une liste
+des commandes verticales internes.
+
+{\tighten
+Vous devez faire attention \`a une subtile mais importante propri\'et\'e du mode
+horizontal interne~: \emph{vous ne pouvez pas entrer en mode horizontal interne
+quand vous \^etes en mode horizontal normal}. Ce que cela signifie en pratique
+est que quand \TeX\ assemble une hbox il n'appr\'ehendera pas un texte en
+paragraphe, c'est-\`a-dire, du texte pour lequel il ferait une \refterm{coupure
+de ligne}. Vous pouvez contourner cette restriction en englobant le texte en
+paragraphe dans une \refterm{vbox} \`a l'int\'erieur de l'hbox. la m\^eme m\'ethode
+marche si vous voulez mettre, disons un \refterm{alignement} horizontal dans
+un~hbox.
+}% end scope of tighten
+
+\endconcept
+
+
+\concept {mode math\'ematique}
+
+{\tighten
+Un \defterm{mode math\'ematique} est un \refterm{mode} dans lequel \TeX\
+construit une formule math\'ematique. \TeX\ a deux modes math\'ematiques diff\'erents~: Le
+^{mode math\'ematique de texte} construit une formule devant \^etre englob\'ee dans une ligne de texte,
+tanfis que le ^{mode math\'ematique d'affichage} construit une formule devant
+appara\^\i tre seul sur une ligne. Vous indiquez le mode math\'ematique de texte
+en englobant la formule entre |$| et dans le mode math\'ematique d'affichage en
+englobant la formule entre |$$|.
+%\TeX\ will accept most \refterm{commands:command} in
+%math mode. If it encounters a command in math mode that doesn't make
+%sense in a formula, it will complain.
+Une propri\'et\'e importante des deux modes math\'ematiques est que les
+\emph{espace saisis ne comptent pas}. Voir les
+\knuth{pages~290--293}{338--342} pour des d\'etails sur la fa\c con dont \TeX\ r\'epond aux
+diff\'erentes commandes en mode math\'ematique.
+\par}
+
+\endconcept
+
+
+\concept {mode ordinaire}
+
+Le \defterm{mode ordinaire} est le \refterm{mode} dans lequel est \TeX\ quand
+il assemble un paragraphe en lignes ou assemble des lignes
+en une page. Voir \conceptcit{mode horizontal}, \conceptcit{mode vertical}.
+\endconcept
+
+
+\concept {mode restreint}
+
+Le \defterm{mode restreint} est le \refterm{mode} dans lequel est \TeX\ quand
+il assemble une \refterm{hbox} ou une \refterm{vbox}.
+Nous suivons \texbook\ dans l'utilisation du terme ``mode vertical interne''
+pour ce que vous vous attendez \^etre un ``mode vertical restreint''.
+Voir \conceptcit{mode horizontal} et \conceptcit{mode vertical}.
+\endconcept
+
+
+\concept {mode vertical}
+
+^^{vbox//mode vertical pour} Quand \TeX\ assemble soit une
+\refterm{vbox} soit la liste verticale principale dont les pages sont d\'eriv\'ees,
+il est dans un des deux \defterm{modes verticaux}~: le ^{mode vertical ordinaire}
+pour assembler la liste verticale principale et le ^{mode vertical restreint}
+pour assembler les vbox. A chaque fois que \TeX\ est en mode vertical
+son estomac \seeconcept{\anatomy} construit une \refterm{liste verticale}
+d'\'el\'ements (bo\^\i tes, ressort, p\'enalit\'es, etc.).
+\TeX\ compose les \'el\'ements de la liste
+l'un apr\`es l'autre, de haut en bas.
+
+Une liste verticale ne peut pas contenir tous les \'el\'ements produits par
+des commandes fondamentalement horizontales, c'est-\`a-dire,
+^^{listes verticales//ne peuvent contenir de commandes horizontales}
+|\hskip| ou un caract\`ere ordinaire (pas un espace)
+\footnote{\TeX\ \emph{ignore} tout caract\`ere espace
+qu'il rencontre quand il est dans un mode vertical.}.
+
+\ulist
+\li Si \TeX\ assemble une liste verticale dans le mode vertical ordinaire et
+rencontre une commande fondamentalement horizontale, il bascule vers le
+\refterm{mode horizontal} ordinaire.
+\li Si \TeX\ assemble une liste verticale dans le mode vertical interne et
+rencontre une commande fondamentalement horizontale, il rousp\`ete.
+\endulist
+
+Deux commandes auxquelles vous devez penser en premier qu'elles sont fondamentalement verticales sont
+en fait fondamentalement horizontales~: |\valign| \ctsref{\valign} et |\vrule|
+\ctsref{\vrule}.
+^^|\valign//horizontal par nature|
+^^|\vrule//horizontal par nature|
+Voir la \knuth{page~283}{329} pour une liste des commandes
+fondamentalement horizontales.
+
+Il est particuli\`erement important d'avoir conscience que \TeX\ consid\`ere un
+caract\`ere ordinaire autre qu'un espace comme \'etant fondamentalement horizontal.
+Si \TeX\ d\'ebute soudainement un nouveau paragraphe quand vous ne vous y
+attendez pas une cause vraisemblable est un caract\`ere que \TeX\ a rencontr\'e
+en \'etant en mode vertical. Vous pouvez convaincre \TeX\ de ne pas traiter ce
+caract\`ere comme fondamentalement horizontal en l'englobant dans une
+\refterm{hbox} puisque la commande |\hbox|, malgr\'e son nom, n'est ni
+fondamentalement horizontale ni fondamentalement verticale.
+\endconcept
+
+
+\conceptindex{mots de contr\^ole}
+\concept {mot de contr\^ole}
+
+Un \defterm{mot de contr\^ole} est une \refterm{s\'equence de contr\^ole} qui
+est constitu\'e d'un \refterm{caract\`ere d'\'echappement} suivi d'une ou plusieurs
+lettres\footnote{Une ``lettre'' ici a la strict signification d'un
+caract\`ere de code de cat\'egorie $11$.}.
+\TeX\
+ignore tout espace ou fin de ligne qui suit un mot de contr\^ole, sauf pour
+noter qu'ils terminent le mot de contr\^ole.
+^^{caract\`ere d'\'echappement}
+\endconcept
+
+
+\concept muglue
+
+Une \defterm{muglue} est une sorte de \refterm{ressort}
+que vous ne pouvez utiliser que dans les formules math\'ematiques.
+Elle est mesur\'ee en ^|mu| (\refterm{unit\'es math\'ematiques:unit\'e
+math\'ematique}).
+^^{unit\'es math\'ematiques}^^{ressort//math\'ematique}
+Une |mu| est \'egale \`a \frac1/{18} em, o\`u
+la taille d'un em est prise de la \refterm{famille} 2 des polices math\'ematiques.
+\TeX\ ajuste automatiquement la taille de la muglue en fonction du contexte.
+Par exemple, une taille de ressort de |2mu| est normalement plus petite dans un
+sous-script que dans un texte ordinaire.
+Vous devez utiliser la commande ^|\mskip| pour produire une muglue.
+Par exemple, `|\mskip 4mu plus 5mu|' produit un ressort math\'ematique avec un
+espace naturel de quatre |mu| et un \refterm{\'etirement} de cinq |mu|.
+
+\endconcept
+
+
+\conceptindex{noms de fichier}
+\concept {nom de fichier}
+
+Un \defterm{nom de fichier} nomme un
+\refterm{fichier} qui est connu du ^{syst\`eme d'exploitation}
+qui
+supervise votre ex\'ecution de \TeX. La syntaxe d'un nom de fichier ne doit \emph{pas}
+suivre les r\`egles usuelles de la syntaxe de \TeX\ et en fait est diff\'erente
+selon les diff\'erentes impl\'emen\-ta\-tions de \TeX.
+En particulier, la plupart des impl\'ementations de \TeX\ consid\`erent un nom de fichier
+comme \'etant
+termin\'e par un blanc ou une fin de ligne. Ainsi \TeX\ est susceptible de
+mal interpr\'eter `|{\input chapter2}|'
+en prenant l'accolade droite comme partie du nom de fichier.
+Comme r\`egle g\'en\'erale, vous devez faire suivre un nom de fichier d'un blanc ou
+d'une fin de ligne comme dans `|{\input chapter2!visiblespace}|'.
+
+\endconcept
+
+
+\conceptindex{nombres}
+\concept nombre
+
+En \TeX, un \defterm{nombre} est un entier positif ou n\'egatif.
+Vous pouvez \'ecrire un nombre en \TeX\ de quatre fa\c cons diff\'erentes~:
+\olist\compact
+\li comme un entier d\'ecimal ordinaire, par exemple, |52|
+\li comme un nombre octal, par exemple, |'14| ^^{nombres octaux}
+\li comme un nombre hexad\'ecimal, par exemple, |"FF0| ^^{nombres hexad\'ecimaux}
+\li comme le code d'un \refterm{caract\`ere \ascii}, par exemple, |`)|
+ou |`\)|
+\endolist
+\noindent
+Chacune de ces formes peut \^etre pr\'ec\'ed\'ee par `|+|' ou `|-|'.
+
+Un nombre octal ne peut avoir que les chiffres |0|--|7|.
+^^{nombres octaux}
+Un nombre hexa\-d\'ecimal peut avoir les chiffres |0|--|9| et
+|A|--|F|, repr\'esentant
+les valeurs de $0$ \`a $15$.
+^^{nombres hexad\'ecimaux}
+Vous ne pouvez, h\'elas, utiliser de lettres minuscules quand vous \'ecrivez un nombre hexad\'ecimal.
+Si vous voulez des explications sur les nombres octaux et hexad\'ecimaux,
+vous en trouverez dans les \knuth{pages~43--44}{53--54}.
+
+Un nombre d\'ecimal, octal ou hexad\'ecimal
+se termine au premier caract\`ere qui ne peut faire partie du nombre.
+Ainsi un nombre d\'ecimal se termine quand \TeX\ voit, disons, une lettre,
+tandis qu'une lettre entre `|A|' et `|F|' ne terminera pas un nombre hexad\'ecimal.
+Vous pouvez terminer un nombre avec un ou plusieurs espaces et normalement,
+\TeX\ les ignorera\footnote{
+Quand vous d\'efinissez une macro qui se termine par un nombre, vous devez
+toujours mettre un espace apr\`es ce nombre~; autrement, \TeX\ pourrait combiner
+ce nombre avec autre chose.}.
+
+La quatri\`eme forme ci-dessus sp\'ecifie un nombre comme le code
+\minref{\ascii} d'un caract\`ere.
+^^{caract\`eres//codes \ascii\ pour}
+\TeX\ ignore les espaces apr\`es cette forme de nombre aussi.
+Vous pouvez \'ecrire un nombre de cette forme soit comme |`|$c$ soit comme |`\|$c$.
+La seconde forme, bien que plus longue, a l'avantage que vous pouvez l'utiliser
+avec \emph{tout} caract\`ere, m\^eme `|\|', `|%|', ou `|^^M|'.
+En revanche, il y a un inconv\'enient plut\^ot technique~: quand \TeX\ d\'eveloppe
+une s\'equence de tokens pour une commande telle que |\edef| ou |\write|,
+^^|\edef//expansion de {\tt\\'\it c} en|
+^^|\write//expansion de {\tt\\'\it c} en|
+des occurrences de `|\|$c$' repr\'esentant un nombre sera aussi d\'evelopp\'ee
+ si elle peut l'\^etre.
+C'est rarement l'effet que vous d\'esirez.
+
+Ce qui suit sont des repr\'esentations valides du nombre d\'ecimal
+$78$~:
+\csdisplay
+78 +078 "4E '116 `N `\N
+|
+
+
+Vous ne pouvez utiliser un nombre dans du texte par lui-m\^eme car un nombre n'est pas
+une commande.
+N\'eanmoins, vous pouvez ins\'erer la forme d\'ecimale d'un nombre dans du texte
+en mettant une commande ^|\number| (\xref\number) devant lui
+ou la forme num\'erique romaine en mettant une commande ^|\romannumeral|
+devant lui.
+
+Vous pouvez aussi utiliser des ^{constantes d\'ecimales},
+par exemple, des nombres avec une partie fractionnaire,
+pour sp\'ecifier des dimensions \seeconcept{dimension}.
+Une constante d\'ecimale a un ^{point d\'ecimal}, qui peut \^etre
+le premier caract\`ere de la constante. Vous pouvez utiliser une
+virgule au lieu d'un point pour repr\'esenter le point d\'ecimal.
+Une constante d\'ecimale peut \^etre pr\'ec\'ed\'ee par un signe plus ou moins.
+Ainsi `|.5in|',
+`|-3.22pt|' et `|+1,5\baselineskip|' sont des dimensions valides.
+Vous ne pouvez, par contre, utiliser de constantes d\'ecimales
+dans tous les contextes \emph{autres} comme la partie ``facteur'' d'une dimension,
+c'est-\`a-dire, son multiplicateur.
+
+
+\endconcept
+
+
+\concept outer
+
+\bix^^{macros//outer}
+Une macro \defterm{outer} est une macro que vous ne pouvez utiliser dans
+certains contextes o\`u \TeX\ assemble des tokens \`a grande vitesse.
+Le but de rendre une commande outer est d'obliger \TeX\ \`a g\'en\'erer
+des erreurs avant d'aller trop loin.
+Quand vous d\'efinissez une macro, vous pouvez la rendre outer avec la commande
+^|\outer| \ctsref\outer.
+
+Vous ne pouvez utiliser de macro outer dans aucun des contextes suivants~:
+\ulist\compact
+\li comme argument d'une macro
+\li dans le texte param\`etre ou le texte de remplacement d'une d\'efinition
+\li dans le pr\'eambule d'un alignement
+\li dans la partie non ex\'ecut\'ee d'un test conditionnel
+\endulist
+\noindent
+Un contexte outer est un contexte dans lequel vous pouvez utiliser une
+macro outer, c'est-\`a-dire c'est tout contexte autre que ceux list\'es ci-dessus.
+
+Par exemple, l'entr\'ee suivante sera une utilisation interdite d'une macro outer
+\csdisplay
+\leftline{\proclaim Assertion 2. That which is not inner
+ is outer.}
+|
+La macro |\proclaim| (\xref{\@proclaim}) est d\'efinie en \plainTeX\
+comme \'etant outer, mais elle est utilis\'ee ici comme un macro argument \`a
+ |\leftline|.
+\eix^^{macros//outer}
+
+\endconcept
+
+
+\conceptindex{pages}
+\concept page
+
+\TeX\ compile un document en assemblant des \defterm{pages} une par une
+et en les passant \`a la routine de sortie.
+Quand il lit votre document, \TeX\ maintient une liste des lignes
+et d'autres \'el\'ements \`a placer sur la page. (Les lignes sont normalement des
+hbox.) Cette liste est appel\'ee la ``^{liste verticale principale}''.
+P\'eriodiquement \TeX\ rentre dans un processus appel\'e ``devoir du
+^{constructeur de page}''.
+Les \'el\'ements ajout\'es \`a la liste verticale principale entre les devoirs
+du constructeur de page sont appel\'e ``^{contributions r\'ecentes}''.
+
+Le constructeur de page examine d'abord la liste verticale principale pour voir si elle
+a besoin de d\'eposer une page maintenant, soit parce que les \'el\'ements sur la liste
+verticale principale ne tiennent pas sur la page, soit parce que un \'el\'ement
+sp\'ecifique, tel que |\eject| \ctsref\eject, demande \`a \TeX\ de finir la page.
+S'il n'est pas n\'ecessaire de d\'eposer une page, alors le constructeur de page
+est fait pour la prochaine fois.
+
+Autrement, le constructeur de page analyse la liste verticale principale pour
+trouver ce qu'il consid\`ere comme \'etant la meilleure coupure de page possible.
+Il associe des p\'enalit\'es avec plusieurs types de coupure de page peu attirantes---une
+coupure qui laisse une ligne isol\'ee en haut ou en bas de la page, une coupure
+juste avant un affichage math\'ematique, et ainsi de suite. Il choisit alors
+la coupure de page la moins ch\`ere
+o\`u le co\^ut d'une coupure est augment\'e de toute p\'enalit\'e associ\'ee avec cette
+coupure et par la m\'ediocrit\'e de la page qui en r\'esulte
+(voir la \knuth{page~111}{130} pour la formule du co\^ut). S'il trouve plusieurs
+coupures de page de co\^ut identique, il choisit la derni\`ere.
+
+{\tighten
+Une fois que le constructeur de page a choisi une coupure de page,
+il place les \'el\'ements de la liste qui sont avant cette coupure
+dans la ^|\box255| et garde le reste pour la page suivante.
+Il appelle alors la routine de sortie. |\box255| agit comme une bo\^\i te
+aux lettres, avec le constructeur de page comme exp\'editeur et la routine de
+sortie comme destinataire.
+Ordinairement la routine de sortie traite la |\box255|, ajoute
+d'autres \'el\'ements, comme des insertions, ent\^ete et pieds de page \`a la page et
+envoit la page vers le \dvifile\
+^^{\dvifile//mat\'eriel de la routine de sortie}
+avec une commande |\shipout|.
+(Des routines de sortie sp\'ecialis\'ees peuvent agir diff\'eremment.)
+Du point de vue de \TeX, il importe peu que la routine de sortie envoie
+la page ou non~;
+La seule
+responsabilit\'e de la routine de sortie est de traiter la |\box255| d'une fa\c con
+ou d'une autre.
+\par}
+
+{\tighten
+Il est important de r\'ealiser que le meilleur endroit pour couper une page
+n'est pas n\'ecessairement le dernier endroit possible pour couper la page.
+Des p\'enalit\'es et autres consid\'erations peuvent faire que la coupure de page
+ait lieu plus t\^ot. De plus, \TeX\ appr\'ehende les \'el\'ements de la liste verticale
+principale en batch, pas seulement un par un. Les lignes d'un paragraphe sont
+un exemple d'un tel batch. Pour ces raisons, le constructeur de page garde
+des \'el\'ements sous le coude quand il coupe une page. Ces \'el\'ements mis en r\'eserve
+forment alors le d\'ebut de la liste verticale principale de la page suivante
+(vraisemblablement au milieu d'un batch). Parce que des \'el\'ements sont d\'eplac\'es
+d'une page \`a une autre, vous pouvez \^etre s\^ur que quand \TeX\ ex\'ecute l'entr\'ee,
+le num\'ero de la page courante refl\`ete la page sur laquelle la sortie correspondante
+appara\^\i tra. Voir les \knuth{pages~110--114}{128--133} pour une description compl\`ete
+des r\`egles de coupure de page de \TeX.
+\par}
+
+\endconcept
+
+
+\conceptindex{paragraphes}
+\concept paragraphe
+
+Intuitivement, un \defterm{paragraphe} est une suite de lignes de saisie
+se terminant par une ligne blanche, une commande |\par| \ctsref{\@par}
+^^|\par//terminer un paragraphe avec|
+ou par une commande intrins\`equement verticale, telle que |\vskip|.
+Plus pr\'ecis\'ement, un paragraphe est une s\'equence de commandes que \TeX\ ex\'ecute
+en mode horizontal restreint.
+Quand \TeX\ a collect\'e un paragraphe entier, il le transforme en une s\'equence de
+lignes en choisissant les coupures de ligne \seeconcept{coupure de ligne}.
+Le r\'esultat est une liste de hbox avec ressort, p\'enalit\'e interligne
+et mat\'eriel vertical imbriqu\'e entre.
+Chaque hbox est une simple ligne et le ressort est le ressort inter-ligne.
+
+%\eject
+\TeX\ d\'ebute un paragraphe quand il est dans un mode vertical et
+rencontre une commande fondamentalement horizontale.
+En particulier, il est en mode vertical juste apr\`es avoir termin\'e un
+paragraphe, donc le mat\'eriel horizontal sur la ligne suivant une ligne
+blanche d\'ebute le paragraphe suivant de mani\`ere naturelle.
+Il y a plusieurs types de commandes fondamentalement horizontales, mais le
+type le plus commun est un caract\`ere ordinaire, c'est-\`a-dire, une lettre.
+
+\looseness = -1
+Les commandes ^|\indent| et ^|\noindent|
+(\pp\xrefn{\indent},~\xrefn{\noindent})
+sont aussi des commandes fondamentalement horizontales qui demandent \`a
+\TeX\ d'in\-denter ou non le d\'ebut d'un paragraphe.
+Toute autre commande horizontale en mode vertical
+fait que \TeX\ fait un |\indent| implicite.
+Une fois que \TeX\ a commenc\'e un paragraphe, il est en mode horizontal ordinaire.
+Il commence par suivre toutes commandes situ\'ees dans ^|\everypar|.
+Il commence alors \`a collecter des \'el\'ements pour le paragraphe jusqu'a
+ce qu'il re\c coive un signal de la fin du paragraphe.
+A la fin du paragraphe il r\'einitialise les param\`etres de formation de
+paragraphe ^|\parshape|, |\hang!-indent|,
+^^|\hangindent|
+et ^|\looseness|.
+
+\TeX\ traduit normalement une ligne blanche par |\par|.
+Il ins\`ere aussi
+un |\par| dans l'entr\'ee chaque fois, en mode horizontal, qu'il
+rencontre une commande intrins\`equement verticale.
+Donc finalement la chose qui termine un paragraphe est toujours une commande |\par|.
+
+Quand \TeX\ re\c coit une commande |\par|, il compl\`ete d'abord\footnote{%
+Plus pr\'ecis\'ement, il ex\'ecute les commandes~:
+\csdisplay
+\unskip \penalty10000 \hskip\parfillskip
+|
+apportant ainsi les \'el\'ements de ces commandes
+\`a la fin de la liste horizontale courante.}
+le paragraphe sur lequel il travaille.
+Il coupe alors le paragraphe en lignes,
+ajoute la liste r\'esultante d'\'el\'ements dans la liste verticale englobante
+et ex\'ecute le constructeur de page
+(dans le cas o\`u la liste verticale englobante est la liste verticale principale).
+Si le paragraphe se termine par une commande intrins\`equement verticale,
+\TeX\ ex\'ecute alors cette commande.
+
+\endconcept
+
+\conceptindex{param\`etres}
+\concept param\`etre
+
+Le terme \defterm{param\`etre} a deux significations diff\'erentes---il peut faire
+r\'ef\'erence soit \`a un param\`etre de \TeX, soit \`a un param\`etre de macro.
+
+Un param\`etre de \TeX\ est une \refterm{s\'equence de contr\^ole} qui nomme
+une valeur.
+La valeur d'un param\`etre peut \^etre un \refterm{nombre}, une \refterm{dimension},
+un montant de \refterm{ressort}, de muglue ou une \refterm{liste de tokens}.
+Par exemple, le param\`etre ^|\parindent|
+sp\'ecifie la distance que \TeX\ saute au d\'ebut d'un paragraphe indent\'e.
+
+Vous pouvez utiliser la s\'equence de contr\^ole d'un param\`etre soit pour r\'etablir la valeur
+du param\`etre soit pour fixer cette valeur. \TeX\ interpr\`ete la s\'equence de contr\^ole
+comme une requ\^ete pour une valeur si elle appara\^\i t dans un contexte o\`u une valeur est attendue,
+et comme un \refterm{assignement} autrement.
+^^{assignements}
+Par exemple~:
+\csdisplay
+\hskip\parindent
+|
+produit un \refterm{ressort} horizontal dont la taille naturelle est donn\'ee
+par |\par!-indent|,
+tandis que~:
+\csdisplay
+\parindent = 2pc % (ou \parindent 2pc)
+|
+fixe |\parindent| \`a une longueur de deux picas. L'assignement~:
+\csdisplay
+\parindent = 1.5\parindent
+|
+utilise |\parindent| des deux fa\c cons. Son effet est de multiplier la valeur de
+|\parindent| par $1.5$.
+
+Vous pouvez penser \`a un param\`etre comme \`a un \refterm{registre} construit.
+^^{registres//param\`etres comme}
+Vous trouverez la liste de tous les param\`etres de \TeX\ dans les \knuth{pages~272--275}{317--318}.
+
+Un param\`etre de \refterm{macro} est un endroit qui garde la place du texte
+qui est branch\'e dans la d\'efinition d'une macro. Voir \conceptcit{macro}
+pour plus d'informations sur ce type de param\`etre.
+
+\endconcept
+
+
+\conceptindex{penalties}
+\concept p\'enalit\'e
+
+Une \defterm{p\'enalit\'e} est un \'el\'ement que vous pouvez inclure dans une
+liste horizontale, verticale ou math\'ematique
+pour d\'ecourager \TeX\ de couper la liste
+\`a cet endroit ou encourager \TeX\ de couper la liste ici.
+^^{listes horizontales//p\'enalit\'es dans}
+^^{listes verticales//p\'enalit\'es dans}
+Une p\'enalit\'e positive indique un mauvais point de coupure, tandis qu'une
+p\'enalit\'e n\'egative indique un bon point de coupure.
+Couper une liste horizontale ordinaire
+produit une \refterm{coupure de ligne}, tandis que couper une liste
+verticale ordinaire produit
+une \refterm{coupure de page}.
+(Une p\'enalit\'e n'a aucun effet en \refterm{mode} horizontal restreint ou
+vertical interne.)
+
+Vous pouvez utiliser la commande
+|\penalty| (\pp\xrefn{hpenalty},~\xrefn{vpenalty})
+pour ins\'erer une p\'enalit\'e explicitement.
+Une p\'enalit\'e de $10000$ ou plus emp\^eche une coupure, tandis qu'une p\'enalit\'e de
+$-10000$ ou moins force une coupure.
+\endconcept
+
+
+\conceptindex{pieds de page}
+\concept {pied de page}
+
+Un \defterm{pied de page} est du mat\'eriel que \TeX\ met en bas de chaque page,
+sous le texte de cette page.
+Le pied de page par d\'efaut en \plainTeX\ est un num\'ero de page centr\'e.
+D'habitude un pied de page consiste en une ligne simple, que vous pouvez
+d\'efinir en assignant une liste de tokens \`a ^|\footline| \ctsref\footline.
+Voir \xrefpg{bighead} pour une m\'ethode de production de pied de page multi-ligne.
+
+\endconcept
+
+%k \vskip 0pt plus 2pt % to solve page break problem
+
+%\eject
+\concept {\plainTeX}
+
+\defterm{\PlainTeX} est le format de \TeX\ d\'ecrit dans ce
+livre et dans \texbook. \PlainTeX\ est une partie du syst\`eme \TeX\ standard,
+donc des documents qui n'utilisent que les am\'enagements de \plainTeX\ peuvent
+facilement \^etre transf\'er\'es d'une installation vers une autre sans
+difficult\'e.
+
+\PlainTeX\ est constitu\'e de commandes \refterm{primitive}s auxquelles se joignent
+une large collection de macros et
+autres d\'efinitions. Ces d\'efinitions additionnelles sont d\'ecrites dans
+l'\knuth{annexe~B}{}. Vous pourrez aussi les trouver dans le fichier |plain.tex|
+quelque part sur votre syst\`eme informatique.
+\endconcept
+
+
+\concept {point de r\'ef\'erence}
+
+^^{lignes de base}
+^^{\boites//point de r\'ef\'erence de}
+Le \defterm{point de r\'ef\'erence} d'une \refterm{bo\^\i te} est le point o\`u le
+cot\'e gauche de la bo\^\i te est en intersection avec sa \refterm{ligne de base}.
+Quand \TeX\ ex\'ecute une \refterm{liste horizontale} ou
+\refterm{verticale:liste verticale}, il utilise les points de r\'ef\'erence
+des bo\^\i tes dans la liste pour aligner ces bo\^\i tes horizontalement ou
+verticalement \seeconcept{\boites}.
+\endconcept
+
+\conceptindex{polices}
+\concept police
+
+Une \defterm{police} en \TeX\ est une collection de jusqu'a $256$ caract\`eres
+de sortie, ayant normalement les m\^emes design, style (romain,
+italique, gras, condens\'e, etc.),
+et taille\footnote{\PlainTeX\ utilise une police sp\'eciale
+pour construire les ^{symboles math\'ematiques} pour lesquelles les caract\`eres
+ont diff\'erentes tailles. D'autres polices sp\'eciales sont souvent utiles pour
+des applications comme le composition de ^{logos}.}.
+La ^{police Computer Modern} qui est fournie
+g\'en\'eralement avec \TeX\ n'a que $128$ caract\`eres. Le colophon sur la
+derni\`ere page de ce livre d\'ecrit les polices que nous avons utilis\'ees pour composer
+ce livre.
+
+Par exemple, voici l'alphabet en police romaine Palatino de $10$ points~:
+^^{police Palatino}
+\vskip\abovedisplayskip{\narrower\tenpal
+\noindent ABCDEFGHIJKLMNOPQRSTUVWXYZ\hfil\break
+abcdefghijklmnopqrstuvwxyz\par
+}\vskip\belowdisplayskip
+\noindent
+et le voici dans la police Computer Modern Grasse \'etendue de $12$
+point~:
+^^{police Computer Modern}
+\vskip\abovedisplayskip{\narrower\font\twelvebf=cmbx12\twelvebf
+\noindent ABCDEFGHIJKLMNOPQRSTUVWXYZ\hfil\break
+abcdefghijklmnopqrstuvwxyz\par
+}\vskip\belowdisplayskip
+Les caract\`eres d'une police sont num\'erot\'es.
+La num\'erotation s'accorde normalement avec la num\'erotation ^{\ascii}
+pour les caract\`eres existants dans le jeu de caract\`eres \ascii.
+La table de code de chaque police indique \`a quoi ressemble le caract\`ere
+avec le code $n$ dans cette police.
+Certaines polices, comme celles utilis\'ees pour les symboles math\'ematiques, n'ont pas
+de lettres. Vous pouvez produire une \refterm{bo\^\i te} contenant le
+caract\`ere num\'erot\'e $n$, compos\'e dans la police courante, en \'ecrivant `|\char |$n$'
+ \ctsref{\char}.
+
+Pour utiliser une police dans votre document,
+vous devez d'abord la nommer avec une s\'equence de contr\^ole et la charger. Alors vous
+pourrez la s\'electionner en saisissant
+cette s\'equence de contr\^ole quand vous voulez l'utiliser.
+\PlainTeX\ procure un certain nombre de polices d\'ej\`a nomm\'ees et~charg\'ees.
+
+Vous nommez et chargez une police comme une simple op\'eration, avec une
+commande comme `|\font\twelvebf=cmbx12|'. Ici, `|\twelvebf|' est la s\'equence
+de contr\^ole que vous utilisez pour nommer la police et `|cmbx12|' identifie
+le fichier de m\'etrique de la police |cmbx12.tfm| sur votre syst\`eme de
+fichier. Vous pouvez alors commencer \`a utiliser la police en saisissant
+`|\twelvebf|'. Apr\`es cela, la police sera effective jusqu'a ce que soit
+(a)~vous s\'electionnez une autre police, (b)~vous terminez le \refterm{groupe}
+ dans lequel vous avez commenc\'e avec la police. Par exemple,
+la saisie~:
+
+\csdisplay
+{\twelvebf white rabbits like carrots}
+|
+fera que la police |cmbx12| ne sera effective que pour le texte
+`|white rabbits like carrots|'.
+
+Vous pouvez utiliser \TeX\ avec d'autres polices que Computer Modern
+(regardez l'exemple sur \xrefpg{palatino} et les ent\^etes de page).
+Les fichiers de telles polices doivent \^etre install\'es sur votre syst\`eme
+de fichier \`a une place o\`u \TeX\ puisse les trouver. \TeX\ et ses programmes
+compagnons ont g\'en\'eralement besoin de deux fichiers pour chaque police~:
+un pour les m\'etriques (|cmbx12.tfm|,
+^^{\tfmfile}
+par exemple) et un autre pour la forme
+des caract\`eres (|cmbx12.pk|, par exemple).
+\TeX\ lui-m\^eme n'utilise que les fichiers de m\'etriques.
+Un autre programme, le pilote de p\'eriph\'erique,
+^^{drivers de p\'eriph\'erique}
+convertit le \dvifile\
+^^{\dvifile//convertit par driver}
+produit par \TeX\ en une forme que votre imprimante
+ou autre p\'eriph\'erique de sortie puisse interpr\'eter. Le pilote
+utilise le fichier de forme (s'il existe).
+
+Le fichier de m\'etrique de la police contient l'information dont \TeX\ \`a
+besoin pour allouer de l'espace pour chaque caract\`ere compos\'e.
+Ainsi il inclut la taille de chaque caract\`ere, les ligatures et cr\'enages
+qui modifient les suites de caract\`eres adjacents, et ainsi de suite.
+Ce que le fichier de m\'etrique n'inclut \emph{pas} sont les informations
+sur les formes des caract\`eres de la police.
+
+{\tighten
+Le fichier de forme (pixel) \xrdef{shape}
+^^{fichier de pixel}^^{fichier de forme}
+peut \^etre de diff\'erents
+formats. La partie d'extension du nom (la partie apr\`es le point)
+informe le pilote sur le format dans lequel est le fichier de forme.
+Par exemple,
+|cmbx12.pk| ^^{\pkfile} est le fichier de forme de la police |cmbx12| en
+format compress\'e, tandis que |cmbx12.gf| ^^{\gffile} est le fichier de forme
+pour la police |cmbx12| en format de police g\'en\'erique.
+Un fichier de forme peut ne pas \^etre n\'ecessaire pour une police r\'esidente dans votre
+p\'eriph\'erique de sortie.
+\par}
+
+\endconcept
+
+
+\concept {primitive}
+
+Une \refterm{commande} \defterm{primitive} est une commande dont la d\'efini\-tion
+est construite dans le programme informatique \TeX.
+Au contraire, une commande qui n'est pas une
+primitive est d\'efinie par une \refterm{macro} ou un autre format de
+d\'efinition \'ecrit en \TeX. Les commandes dans \refterm{\plainTeX}
+sont constitu\'ees de commandes primitives auxquelles se joignent
+d'autres commandes d\'efinies en termes de
+primitives.
+\endconcept
+
+
+\concept profondeur
+
+^^{\boites//profondeur de}
+La \defterm{profondeur} d'une \refterm{bo\^\i te} est la distance par laquelle
+la bo\^\i te s'\'etend sous sa \refterm{ligne de base}.
+\endconcept
+
+
+\conceptindex{registres}
+\concept registre
+
+Un \defterm{registre} est une place nomm\'ee pour stocker une valeur.
+C'est plus comme une variable dans un langage de programmation.
+\TeX\ a cinq sortes de registres, comme montr\'e dans le tableau suivant~:
+
+\vdisplay{\tabskip 10pt\halign{\tt #\hfil &#\hfil\cr
+{\it Type de registre}&{\it Contenus}\cr
+box&une \refterm{bo\^\i te} \idxref{registres de \boite}\cr
+count&une \refterm{nombre} \idxref{registres de compteur}\cr
+dimen&une \refterm{dimension} \idxref{registres de dimension}\cr
+muskip&\refterm{muglue} \idxref{registres de muglue}\cr
+skip&\refterm{ressort} \idxref{registres de ressort}\cr
+toks&un \refterm{token} list\idxref{registres de token}\cr}}
+
+Les registres de chaque type sont num\'erot\'es de $0$ \`a $255$.
+Vous pouvez acc\'eder au registre $n$ de cat\'egorie $c$ en utilisant la forme `|\|$cn$',
+c'est-\`a-dire, |\muskip192|.
+Vous pouvez utiliser un registre
+n'importe o\`u cette information de type appropri\'e est appel\'ee. Par
+exemple, vous pouvez utiliser |\count12|
+dans tout contexte appelant un nombre ou |\skip0|
+dans tout contexte appelant un ressort.
+
+Vous mettez de l'information dans un registre en y \refterm{assignant:assignment}
+quelque chose~:
+
+\csdisplay
+\setbox3 = \hbox{lagomorphs are not mesomorphs}
+\count255 = -1
+|
+Le premier assignement construit une hbox et l'assigne au
+registre de bo\^\i te~$3$.
+Vous pouvez
+ensuite utiliser `|\box3|' partout o\`u une bo\^\i te est appel\'ee et vous obtiendrez
+cette hbox\footnote{Mais faites attention~: utiliser un registre de bo\^\i te
+la vide aussi donc son contenu devient vide. Les autres sortes de
+registres n'ont pas cet mani\`ere de r\'eagir. Vous pouvez utiliser la commande |\copy|
+\ctsref{\copy} pour conserver le contenu d'un registre de bo\^\i te sans
+le vider.}.
+Le second assignement assigne $-1$ au registre de compteur~$255$.
+
+Un registre d'un type donn\'e, par exemple, un registre de ressort, r\'eagit comme
+un param\`etre de ce type.
+^^{param\`etres//comme registres}
+Vous retrouvez sa valeur ou la lui assignez
+comme vous le feriez avec un \refterm{param\`etre}.
+Quelques param\`etres de \TeX, par exemple, |\pageno|,
+sont impl\'ement\'es comme des registres.
+
+\PlainTeX\
+utilise plein de registres pour son propre usage, donc vous ne devez pas
+simplement prendre un num\'ero de registre arbitraire
+quand vous avez besoin d'un registre. \`A la place, vous devez demander
+\`a \TeX\ de r\'eserver un registre en utilisant une des commandes
+^|\newbox|, ^|\newcount|, ^|\newdimen|, ^|\newmuskip|, ^|\newskip|
+ou ^|\newtoks|
+\ctsref{\@newbox}. Ces com\-man\-des sont outer, donc vous ne pouvez
+pas les utiliser dans une d\'efinition de macro.
+Si vous le pouviez,
+vous utiliseriez un registre \`a chaque fois que la macro serait appel\'ee et
+probablement d\'epasseriez le nombre de
+registres rapidement.
+
+Quoiqu'il en soit, vous pouvez, avec pr\'ecaution utiliser tout registre temporairement
+dans un \refterm{groupe}, m\^eme un que \TeX\ utilise pour autre chose.
+Quand \TeX\ a fini d'ex\'ecuter les commandes dans un groupe,
+il retrouve le contenu de tous les registres
+dans l'\'etat o\`u ils \'etaient avant de commencer \`a ex\'ecuter le groupe.
+Quand vous utilisez un registre num\'erot\'e explicitement dans un groupe,
+vous devez \^etre sur que le registre n'est modifi\'e par aucune
+\refterm{macro}
+que vous pourriez appeler dans le groupe.
+Soyez sp\'ecialement attentif
+quand vous utilisez des registres arbitraires dans un groupe qui appelle des macros
+que vous n'avez pas \'ecrit vous-m\^eme.
+
+{\tighten
+\TeX\ r\'eserve certains registres \`a des t\^aches sp\'eciales~: de |\count0| \`a
+|\count9| pour des informations de num\'erotation de page et
+^^{num\'erotation de page}
+^|\box255| pour le contenu
+d'une page juste avant qu'elle soit offerte \`a la \refterm{routine de sortie}.
+Les registres |\dimen0|--|\dimen9|, |\skip0|--|\skip9|,
+|\muskip0|--|\mu!-skip9| et |\box0|--|\box9| ainsi que
+les |255| registres de bo\^\i te autres que |\box255|
+sont g\'en\'eralement utilisables comme registre ``brouillon''.
+Aussi \plainTeX\ ne procure qu'un registre brouillon, |\count255|, pour
+des compteurs.
+Voir les \knuth{pages~122 et 346}{141--142 et 402} pour des conventions \`a suivre
+pour choisir des num\'eros de registre.
+\par}
+
+Vous pouvez examiner le contenu des registres lors d'une ex\'ecution
+avec la commande ^|\showthe| \ctsref\showthe, par exemple, `|\showthe\dimen0|'.
+\endconcept
+
+
+\concept r\'eglures
+
+Vous pouvez utiliser des \refterm{r\'eglures} pour remplir un espace avec des
+copies d'un mod\`ele, c'est-\`a-dire, mettre des points r\'ep\'et\'es entre un titre et
+un num\'ero de page dans une table des mati\`eres.
+Une r\'eglure est une copie simple d'un mod\`ele.
+La sp\'ecification des r\'eglures contient trois parties d'information.
+\olist\compact
+\li ce qu'est une r\'eglure seule
+\li combien d'espace doit \^etre rempli
+\li comment les copies du mod\`ele doivent \^etre arrang\'ees dans l'espace
+\endolist
+
+\bix^^|\leaders|
+\bix^^|\cleaders|
+\bix^^|\xleaders|
+{\tighten
+\TeX\ poss\`ede trois commandes pour sp\'ecifier des r\'eglures~:
+|\leaders|, |\cleaders| et |\xleaders| (\xref\leaders).
+L'\refterm{argument} de chaque commande sp\'e\-ci\-fie la r\'eglure.
+La commande doit \^etre suivie d'un \refterm{ressort}. La taille du ressort
+sp\'ecifie combien d'espace doit \^etre rempli. Le choix de la commande d\'etermine
+comment les r\'eglures sont arrang\'ees dans l'espace.}
+
+Voici un exemple montrant comment les |\leaders| travaillent~:
+\csdisplay
+\def\dotting{\leaders\hbox to 1em{\hfil.\hfil}\hfil}
+\line{The Political Process\dotting 18}
+\line{Bail Bonds\dotting 26}
+|
+Ici, nous avons plac\'e les r\'eglures et leur ressort associ\'e dans une d\'efinition
+de \refterm{macro} pour pouvoir les utiliser facilement \`a deux endroits.
+Cette entr\'ee produit~:
+
+\vdisplay{\advance\hsize by -\parindent
+\def\dotting{\leaders\hbox to 1em{\hfil{.}\hfil}\hfill}%
+\line{The Political Process{\dotting}18}
+\line{Bail Bonds{\dotting}26}
+}
+
+La \refterm{hbox} suivant |\leaders| sp\'ecifie
+la r\'eglure, soit, une hbox d'1\em\ de large contenant un point en son
+centre.
+L'espace est rempli avec des copies de cette bo\^\i te,
+effectivement remplies
+de points dont les centres sont s\'epar\'es de 1\em.
+Le |\hfil| suivant (celui \`a la fin de la d\'efinition de macro) est
+un ressort qui sp\'ecifie l'espace \`a remplir.
+Dans ce cas, c'est l'espace n\'ecessaire pour remplir la ligne.
+en choisissant |\leaders| plut\^ot que |\cleaders| ou |\xleaders|, nous nous
+assurons que les points des diff\'erentes lignes soient align\'es entre eux.
+
+En g\'en\'eral, l'espace \`a remplir agit comme une fen\^etre pour les copies
+r\'ep\'et\'ees de r\'eglures. \TeX\ ins\`ere autant de copies que possible, mais de
+l'espace est habituellement laiss\'e---soit parce que les r\'eglures s'arr\^etent
+dans la fen\^etre, soit parce que la largeur de la fen\^etre n'est pas un multiple
+exact de la largeur de la r\'eglure.
+La diff\'erence entre les trois commandes est dans leur fa\c con d'arranger les
+r\'eglures dans la fen\^etre et comment elles distribuent l'espace perdu.
+
+\ulist
+\li Pour |\leaders|, \TeX\ produit d'abord une rang\'ee de copies de la r\'eglure.
+Il aligne alors le d\'ebut de cette rang\'ee avec l'extr\'emit\'e gauche de la bo\^\i te
+la plus interne $B$ qui contient le r\'esultat de la commande |\leaders|.
+Dans les deux lignes d'exemple ci-dessous, $B$ est une bo\^\i te produite par |\line|.
+Ces r\'eglures qui rentrent enti\`erement dans la fen\^etre sont plac\'ees dans $B$,
+et l'espace restant aux extr\`e\-mit\'ees gauche et droite est laiss\'e vide.
+L'image est comme ceci~:
+\vdisplay{%
+\def\dotting{\leaders\hbox to 1em{\hfil{.}\hfil}\hfill}%
+\def\pp{The Political Process}
+\line{\dotting}
+\line{\hphantom\pp\hfil$\Downarrow$\hfil\hphantom{18}}
+\vskip 4pt
+\setbox0 = \hbox{\pp}
+\setbox1 = \hbox{18}
+\dimen0 = \hsize \advance\dimen0 by -\wd0 \advance \dimen0 by -\wd1
+\advance\dimen0 by -0.8pt
+\hbadness=10000
+\line{\pp
+ \vrule\vbox{\hrule width \dimen0\vskip 2pt
+ \hbox to \dimen0{\hfil window\strut\hfil}
+ \vskip 2pt\hrule width \dimen0}%
+ \vrule 18}
+\line{\hphantom\pp\hfil$\Downarrow$\hfil\hphantom{18}}
+\vskip 2pt
+\line{\pp{\dotting}18}
+}
+\vskip\medskipamount
+{\tighten
+\noindent
+Cette proc\'edure assure que dans les deux lignes d'exemple de la page pr\'ec\'edente,
+les points des deux lignes soient align\'es verticalement (puisque les
+\refterm{points de r\'ef\'erence:point de r\'ef\'erence} des hbox produites par
+|\line| sont align\'es verticalement).
+\par}
+
+\li Pour |\cleaders|, \TeX\ centre les r\'eglures dans la fen\^etre
+en divisant l'espace perdu entre les deux extr\'emit\'es de la fen\^etre.
+L'espace perdu est toujours inf\'erieur \`a la largeur d'une seule r\'eglure.
+
+\li Pour |\xleaders|, \TeX\ distribue l'espace perdu de chaque cot\'e dans la
+fen\^etre. En d'autres mots, si l'espace perdu est $w$ et que la r\'eglure se
+r\'ep\`ete $n$ fois, \TeX\ met un espace de largeur $w/(n+1)$ entre les r\'eglures
+adjacente et \`a deux extr\'emit\'es des r\'eglures.
+L'effet est habituellement d'\'etaler les r\'eglures un petit peu. L'espace
+perdu pour |\xleaders|, comme celui de |\cleaders|, est toujours inf\'erieur
+\`a la largeur d'une r\'eglure seule.
+\endulist
+
+Jusqu'ici, nous supposions que les r\'eglures consistaient en hbox arrang\'ees
+horizontalement. Deux variations sont possibles~:
+\olist
+\li Vous pouvez utiliser une r\`egle \`a la place d'une hbox pour la r\'eglure.
+\TeX\ rend la r\`egle aussi large que possible pour s'\'etendre au del\`a du
+ressort (et les trois commandes sont \'equivalentes).
+\li Vous pouvez produire des r\'eglures verticales qui traversent la page en
+les incluant dans une \refterm{liste verticale} au lieu d'une \refterm{liste
+horizontale}. Dans ce cas vous avez besoin de ressort vertical apr\`es les
+r\'eglures.
+\endolist
+\noindent
+Voir les \knuth{pages~223--225}{261--263} pour les r\`egles pr\'ecises que \TeX\ utilise
+en composant des r\'eglures.
+\eix^^|\leaders|
+\eix^^|\cleaders|
+\eix^^|\xleaders|
+\endconcept
+
+
+\concept ressort
+
+\bix^^{\etirement}
+\bix^^{r\'etr\'ecissement}
+Le \defterm{ressort} est de l'espace blanc qui peut se r\'etr\'ecir ou s'\'etirer.
+Le ressort donne \`a \TeX\ la flexibilit\'e dont il a besoin pour produire
+des documents impeccables.
+Le ressort existe en deux types~: le ressort horizontal et le ressort vertical.
+Le ressort horizontal appara\^\i t dans des \refterm{listes horizontales: liste horizontale},
+tandis que le ressort vertical appara\^\i t dans des \refterm{listes verticales:liste verticale}.
+^^{listes horizontales}
+^^{listes verticales}
+Vous
+pouvez produire un ressort soit implicitement, c'est-\`a-dire, avec un espace inter-mot, soit
+explicitement, c'est-\`a-dire, avec la commande ^|\hskip|.
+^^{espace//inter-mots}
+\TeX\ lui-m\^eme produit beaucoup de ressorts
+en composant votre document.
+Nous ne d\'ecrirons que le ressort horizontal---le ressort vertical \'etant analogue.
+
+Quand \TeX\ assemble une liste de bo\^\i tes et de ressorts en grande
+quantit\'e,
+^^{\boites//ressort avec}
+il ajuste la taille des ressorts pour garder les espaces demand\'ees d'unit\'e
+de largeur. Par exemple, \TeX\ s'assure que la ^{marge de droite} d'une page
+est uniforme en ajustant les ressorts horizontaux des lignes.
+Similairement, il s'assure que les diff\'erentes pages ont la
+m\^eme ^{marge du bas}
+en ajustant les ressorts entre les blocs de texte comme des paragraphes et
+des affichages math\'ematiques
+(o\`u le changement est probablement moins remarquable).
+
+Un ressort a un espacement naturel---la taille qu'il ``veut avoir''.
+Le ressort a aussi deux autres attributs~: son \refterm{\'etirement} et son
+\refterm{r\'etr\'ecissement}. Vous pouvez produire un montant sp\'ecifique de ressort
+horizontal avec la \refterm{commande} ^|\hskip| \ctsref{\hskip}. La commande
+|\hskip 6pt plus 2pt minus 3pt|
+produit un ressort horizontal dont la taille naturelle
+est de $6$ points, l'\'etirement de $2$ points et le r\'etr\'ecissement
+$3$ points. Similairement, vous pouvez produire un montant sp\'ecifique de ressort vertical
+avec la commande ^|\vskip| commande \ctsref{\vskip}.
+
+Le meilleur moyen de comprendre ce qui s'\'etire et ce qui se r\'etr\'ecit
+et de voir un exemple de ressort au travail.
+Supposez que vous construisez un \refterm{hbox} de trois bo\^\i tes et deux ressorts,
+comme dans l'image~:
+\gluepicture
+ 29 {\picbox 4 \gluebox 6 4 1 6 \picbox 5 \gluebox 10 8 3 10 \picbox 4 }
+\noindent
+L'unit\'e de mesure ici peut \^etre en points, en millim\`etres, etc.
+Si le hbox est autoris\'e \`a assumer sa largeur naturelle, alors chaque ressort
+de la bo\^\i te assume aussi sa largeur naturelle. La largeur totale du hbox est
+alors la somme des largeurs de ses parties, soit, $29$ unit\'es.
+
+Ensuite, supposez que le hbox doit \^etre plus large que $29$ unit\'es, disons
+$35$ unit\'es. Cela
+peut arriver, par exemple, si le hbox doit occuper une ligne enti\`ere
+et que la largeur de la ligne soit de $35$ unit\'es.
+Puisque les bo\^\i tes ne peuvent changer leurs largeurs,
+\TeX\ produit l'espace suppl\'ementaire n\'ecessaire en rendant les ressorts plus larges.
+L'image maintenant ressemble \`a ceci~:
+\gluepicture
+ 35 {\picbox 4 \gluebox 6 4 2 8 \picbox 5 \gluebox 10 8 6 14 \picbox 4 }
+Les ressorts ne deviennent pas plus larges de mani\`ere \'egale~;
+ils deviennent plus large en proportion de leur \'etirement.
+Puisque le second ressort
+a deux fois plus d'\'etirement que le premier,
+il devient plus large de quatre unit\'es tandis que le premier devient plus large de
+seulement deux unit\'es.
+Le ressort peut s'\'etirer autant que n\'ecessaire, n\'eanmoins, \TeX\ rechigne
+\`a l'\'etirer au del\`a du montant d'\'etirement donn\'e dans sa d\'efinition.
+
+Finalement, supposez que le hbox doive se rapprocher de $29$ unit\'es \`a, disons
+$25$ unit\'es. Dans ce cas \TeX\ r\'etr\'ecit les ressorts.
+L'image ressemble \`a ceci~:
+\gluepicture
+ 25 {\picbox 4 \gluebox 6 4 2 5 \picbox 5 \gluebox 10 8 6 7 \picbox 4 }
+Les ressorts deviennent plus proches en proportion de leur r\'etr\'e\-cis\-sement.
+Le premier ressort devient plus \'etroit d'une unit\'e, tandis que le second
+r\'etr\'ecit de trois unit\'es. Le ressort ne peut pas se r\'etr\'ecir
+d'une distance inf\'erieure au montant de r\'etr\'ecissement donn\'e dans sa d\'efinition
+m\^eme si la distance \`a laquelle il peut se r\'etr\'ecir est sans
+limite. Sur ce point important l'\'etirement et le r\'etr\'ecissement r\'eagissent
+diff\'eremment.
+
+Une bonne r\`egle \`a suivre pour le ressort est de fixer sa taille normale au
+montant d'espace qui va le mieux, l'\'etirement au montant d'espace le plus grand
+que \TeX\ puisse ajouter avant que le document devienne mauvais et le
+r\'etr\'ecissement au montant d'espace le plus grand que \TeX\ puisse enlever
+avant que le document commence \`a devenir mauvais. Vous pouvez devoir fixer
+les valeurs par exp\'erimentation.
+
+Vous pouvez produire un ressort \'etirable \`a l'infini en sp\'ecifiant son
+\'etirement en unit\'es de `^|fil|', `^|fill|' ou `^|filll|'. Le ressort mesur\'e en
+`|fill|' est infiniment plus \'etirable que le ressort mesur\'e en `|fil|' et
+le ressort mesur\'e en `|filll|' est infiniment plus \'etirable que le ressort mesur\'e
+en `|fill|'. Vous n'aurez que tr\`es rarement besoin de ressort `|filll|'. Un ressort
+s'\'etirant de |2fil| s'\'etire deux fois plus qu'un ressort s'\'etirant de |1fil|,
+et de m\^eme pour les autres sortes de ressorts \'etirables infiniment.
+
+Quand \TeX\ apporte un espace suppl\'ementaire en plus d'un ressort,
+celui infiniment \'etirable, s'il y en a, en prend la totalit\'e.
+Le ressort infiniment \'etirable est particuli\`erement pratique pour
+cadrer du texte \`a gauche, \`a droite ou centr\'e.
+
+\ulist\compact
+\li Pour faire un texte ^{cadr\'e \`a gauche}, mettez un ressort horizontal
+infiniment \'etirable \`a sa droite.
+Ce ressort consommera tout l'espace suppl\'ementaire possible sur la ligne.
+Vous pouvez utiliser la commande ^|\leftline| \ctsref{\leftline}
+ou la commande |\raggedright| \ctsref{\raggedright} pour faire cela.
+\li Pour faire un texte ^{cadr\'e \`a droite}, mettez un ressort horizontal
+infiniment \'etirable \`a sa gauche. Comme ci-dessus
+ce ressort consommera tout l'espace suppl\'ementaire possible sur la ligne.
+Vous pouvez utiliser la commande ^|\rightline| \ctsref{\rightline}
+pour faire cela.
+\li Pour faire du ^{texte centr\'e}, mettez un ressort horizontal
+infiniment \'etirable de chaque cot\'e.
+Ces deux ressorts diviseront tout l'espace suppl\'ementaire de la ligne
+\'egalement entre eux.
+Vous pouvez utiliser la commande ^|\centerline| \ctsref{\centerline} pour faire cela.
+\endulist
+
+Vous pouvez aussi sp\'ecifier un ressort r\'etr\'ecissable infiniment
+^^{ressort//infiniment \'etirable}
+de la m\^eme mani\`ere. Un ressort r\'etr\'ecissable infiniment peut agir comme espace n\'egatif.
+Notez que |fil|, etc., ne peuvent \^etre utilis\'es que pour sp\'ecifier l'\'etirement
+et le r\'etr\'ecissement du ressort---Ils ne peuvent \^etre utilis\'es pour sp\'ecifier
+sa taille normale.
+\eix^^{\etirement}
+\eix^^{r\'etr\'ecissement}
+\endconcept
+
+
+\concept {ressort inter-ligne}
+
+Le \defterm{ressort inter-ligne} est le ressort que \TeX\ ins\`ere au d\'ebut de chaque
+\refterm{bo\^\i te} dans une \refterm{liste verticale} sauf pour la premi\`ere.
+Le ressort inter-ligne est normalement sp\'ecifi\'ee de fa\c con \`a maintenir une
+distance constante entre les lignes de base des bo\^\i tes.
+Sa valeur est d\'etermin\'ee conjointement par les param\`etres ^|\baselineskip|,
+^|\lineskip| et ^|\lineskiplimit| \ctsref{\baselineskip}.
+\endconcept
+
+
+\conceptindex {r\'etr\'ecissements}
+\concept {r\'etr\'ecissement}
+
+Voir \conceptcit{ressort}.
+\endconcept
+
+
+\concept {routine de sortie}
+
+Quand \TeX\ a accumul\'e
+au moins assez de mat\'e\-riel pour remplir une page, il choisi un point d'arr\^et
+et place le mat\'eriel situ\'e avant le point d'arr\^et en |\box255|. Il appelle
+alors la \defterm{routine de sortie} courante, qui compile le mat\'eriel et
+l'envoie \'eventuellement dans le \dvifile.
+^^{\dvifile//mat\'eriel de la routine de sortie}
+La routine de sortie peut faire d'autres actions, comme ins\'erer des ent\^etes,
+des pieds de page et des notes de pieds de page.
+\refterm{\PlainTeX:\plainTeX} procure
+une routine de sortie par d\'efaut qui ins\`ere un num\'ero de page centr\'e
+en bas de chaque page.
+En procurant une routine de sortie diff\'erente vous pouvez cr\'eer des
+effets tels que des sortie en double colonnes.
+Vous pouvez imaginer les routines de sortie comme ayant une seule responsabilit\'e~:
+disposer le mat\'eriel en |\box255| d'une fa\c con ou d'une autre.
+
+La routine de sortie courante est d\'efinie par la valeur de ^|\output|
+\ctsref{\output}, qui est une liste de \refterm{tokens:token}. Quand \TeX\
+est pr\^et \`a produire une page, il d\'eveloppe simplement la liste de tokens.
+
+Vous pouvez faire quelque simples changements aux actions de la routine de
+sortie de \plainTeX\ sans la modifier r\'eellement. Par exemple, en assignant
+une liste de \refterm{tokens:token} \`a |\headline| ou
+|\footline| \ctsref{\footline} vous pouvez faire que \TeX\ produise un ent\^ete
+ou un pied de page diff\'erent de l'ordinaire.
+
+La routine de sortie est aussi responsable pour collecter
+toutes \refterm{insertions:insertion}~; en combinant ces insertions et
+toutes ``d\'ecorations'' telles que ent\^etes et pieds de page avec
+les contenus principaux de la page et empaqu\`ete tout ce mat\'eriel
+dans une bo\^\i te~; et \'eventuellement envoyer cette bo\^\i te dans
+le \dvifile\
+^^{\dvifile//mat\'eriel de la routine de sortie}
+avec la commande ^|\shipout|\ctsref{\shipout}.
+Bien que cela soit ce que fait une routine de sortie le plus souvent,
+une routine de sortie d'usage sp\'ecial peut agir diff\'eremment.
+\endconcept
+
+
+\conceptindex{s\'equences de contr\^ole}
+\concept {s\'equence de contr\^ole}
+
+Une \defterm{S\'equence de contr\^ole} est un nom pour une \refterm{command}e \TeX.
+Une s\'equence de contr\^ole commence par un ^{caract\`ere d'\'echappement},
+habituellement un antislash (|\|).
+\indexchar \
+Une s\'equence de contr\^ole prend une des deux formes~:
+
+\ulist
+
+\li Un \refterm{mot de contr\^ole} est une S\'equence de contr\^ole constitu\'ee
+d'un \refterm{caract\`ere d'\'echappement} suivi par une ou plusieurs lettres.
+^^{mots de contr\^ole}
+Le mot de contr\^ole se termine quand \TeX\ voit une non-lettre. Par exemple,
+quand \TeX\ lit
+`\hbox{|\hfill!visiblespace,!visiblespace!.the|}', il voit six
+\refterm{tokens:token}~:
+Les s\'equences de contr\^ole `|\hfill|', virgule, espace, `|t|', `|h|', `|e|'.
+L'espace apr\`es `|\hfill|' termine la s\'equence de contr\^ole et
+est absorb\'ee par \TeX\ quand il lit la s\'equence de contr\^ole.
+(Pour le texte `|\hfill,!visiblespace!.the|', d'un autre cot\'e,
+La virgule termine aussi la s\'equence de contr\^ole et compte comme un caract\`ere
+de bon aloi.)
+
+\li Un \refterm{symbole de contr\^ole}
+^^{symboles de contr\^ole}
+est une s\'equence de contr\^ole constitu\'ee d'un
+^{caract\`ere d'\'echappement} suivi par n'importe caract\`ere autre qu'une lettre---%
+m\^eme un espace ou une fin de ligne.
+Un symbole de contr\^ole est auto-d\'elimit\'e, c'est-\`a-dire, \TeX\ sait o\`u il termine sans
+devoir regarder le caract\`ere qui le suit.
+Le caract\`ere apr\`es un symbole de contr\^ole n'est jamais absorb\'e par le
+symbole de contr\^ole.
+\endulist
+\noindent Voir \xrefpg{espace} pour plus d'information sur les espaces apr\`es
+des s\'equences de contr\^ole.
+
+\TeX\ procure une grand nombre de s\'equences de contr\^ole pr\'ed\'efinies. Les
+s\'equences de contr\^ole \refterm{primitives} sont construites dans le programme
+informatique \TeX\ et donc, sont accessibles sous toutes les formes de \TeX.
+^^{primitive//s\'equence de contr\^ole}
+D'autres s\'equences de contr\^ole sont fournies par \refterm{\plainTeX}, la
+forme de \TeX\ d\'ecrite dans ce livre
+
+Vous pouvez augmenter des s\'equences de contr\^ole pr\'ed\'efinies avec celles de
+votre cru, en utilisant des commandes telles que ^|\def| et ^|\let| pour les
+d\'efinir. La \chapterref{eplain} de ce livre contient une collection de
+d\'efinitions de s\'equence de contr\^ole que vous pouvez trouver utile. De plus,
+votre syst\`eme informatique peut vous rendre capable de cr\'eer une collection
+de macros \TeX\ d\'evelopp\'ees localement.
+\endconcept
+
+
+\conceptindex{struts}
+\concept strut
+
+{\tighten
+Un \defterm{strut} est une \refterm{bo\^\i te} invisible
+^^{\boites//invisible}
+dont la largeur est \`a z\'ero et dont la hauteur et la profondeur sont l\'eg\`erement
+sup\'erieure \`a celle d'une ligne de texte ``normale'' dans le contexte.
+Les struts sont pratiques pour obtenir un espacement vertical uniforme quand
+l'espacement de ligne usuel de \TeX, par exemple, dans une formule math\'ematique
+ou dans un alignement horizontal o\`u vous sp\'ecifiez ^|\offinterlineskip|.
+Parce qu'un strut est plus haut et plus profond que tout autre chose sur sa ligne,
+il d\'etermine la hauteur et la profondeur de la ligne.
+Vous pouvez produire un strut avec la commande ^|\strut| \ctsref{\strut} ou
+la commande ^|\mathstrut| \ctsref\mathstrut.
+Vous pouvez utiliser |\strut| n'importe o\`u, mais vous ne pouvez utiliser
+|\mathstrut| que quand \TeX\ est en \refterm{mode} math\'ematique.
+Un strut dans \plainTeX\ a une hauteur de 8.5\pt\ et une profondeur de 3.5\pt,
+tandis qu'un strut math\'ematique \`a la hauteur et la profondeur d'une
+parenth\`ese ouvrante du \refterm{style} courant (donc il est plus petit pour
+des indices ou des exposants).
+\par}
+
+Voici un exemple montrant comment vous devriez utiliser un strut~:
+\csdisplay
+\vbox{\hsize = 3in \raggedright
+ \strut Here is the first of two paragraphs that we're
+ setting in a much narrower line length.\strut}
+\vbox{\hsize = 3in \raggedright
+ \strut Here is the second of two paragraphs that we're
+ setting in a much narrower line length.\strut}
+|
+Cette entr\'ee donne~:
+\display{\vbox{
+\vbox{\hsize = 3in \raggedright
+\strut Here is the first of two paragraphs that we're setting
+in a much narrower line length.\strut}
+\vbox{\hsize = 3in \raggedright
+\strut Here is the second of two paragraphs that we're setting
+in a much narrower line length.\strut}
+}}
+\noindent
+Sans les struts la \refterm{vbox} serait trop rapproch\'ee.
+Similairement, dans la formule~:
+\csdisplay
+$\overline{x\mathstrut} \otimes \overline{t\mathstrut}$
+|
+Les struts math\'ematiques font que les deux barres sont mises \`a la m\^eme hauteur m\^eme
+si le `$x$' et le `$t$' ont des hauteurs diff\'erentes~:
+\display{
+$\overline{x\mathstrut} \otimes \overline{t\mathstrut}$
+}
+\vskip -\belowdisplayskip
+\endconcept
+%\nobreak
+
+\conceptindex{styles}
+\concept {style}
+
+Le mat\'eriel d'une formule math\'ematique est mis dans un des huit \defterm{styles},
+d\'ependant du contexte. Conna\^\i tre les styles peut \^etre utile si vous voulez
+mettre une partie d'une formule dans une taille de caract\`ere diff\'erente de
+celle que \TeX\ a choisi en fonction de ses r\`egles usuelles.
+
+%\eject
+Les quatre styles primaires sont~:
+
+\vdisplay{%
+\halign{\refterm{# style}\hfil&\hskip .25in(#)\hfil\cr
+display&formules affich\'ees sur une ligne seule\cr
+text&formules englob\'ees dans du texte ordinaire\cr
+script&exposants et indices\cr
+scriptscript&indices d'indices, etc.\cr
+}}
+
+Les quatre autres styles sont dits ^{variantes \'etroites}. Dans ces variantes
+les exposants ne sont pas mont\'es aussi haut que normalement et donc la formule
+n\'ecessite moins d'espace vertical qu'ils le devraient. Voir les \knuth{pages~140--141}{164--165}
+pour les d\'etails sur la fa\c con de \TeX\ de s\'electionner le style.
+
+\TeX\ choisit une taille de caract\`ere en fonction du style~:
+
+\ulist\compact
+^^{style d'affichage}^^{style texte}
+\li Le style d'affichage et le style texte sont mis en \refterm{taille texte}, comme
+`$\rm ceci$'.
+
+^^{style script}
+\li le style script est mis en \refterm{taille script}, comme `$\scriptstyle
+\rm ceci$'.
+
+^^{style scriptscript}
+\li le style scriptscript est mis en \refterm{taille scriptscript}, comme
+`$\scriptscriptstyle \rm ceci$'.
+\endulist
+
+Voir \conceptcit{famille} pour plus d'informations \`a propos de ces trois tailles.
+
+\TeX\ n'a pas de style ``scriptscriptscript'' parce qu'un tel style
+serait souvent mis dans une taille de caract\`ere trop petite \`a lire. \TeX\
+par cons\'equent met les indices, exposants, etc. de troisi\`eme ordre en utilisant le
+style scriptscript.
+
+Parfois vous pourrez trouver que \TeX\ a mis une formule dans un style diff\'erent
+de celui que vous pr\'ef\'erez. Vous pouvez passer outre le choix de \TeX\ avec les
+commandes ^|\textstyle|, ^|\displaystyle|, ^|\scriptstyle| et ^|\scriptscriptstyle|
+\ctsref{\textstyle}.
+\endconcept
+
+
+\conceptindex{symboles de contr\^ole}
+\concept {symbole de contr\^ole}
+
+Un \defterm{symbole de contr\^ole} est une \refterm{s\'equence de contr\^ole} qui
+est constitu\'ee d'un \refterm{caract\`ere d'\'echappement} suivi d'un caract\`ere
+autre qu'une lettre---m\^eme un espace et une fin de ligne.
+^^{caract\`ere d'\'echappement}
+\endconcept
+
+
+\concept {taille script}
+
+Une \defterm{taille script} d\'ecrit une des trois
+\refterm{polices:police} reli\'ees dans une famille.
+^^{famille//taille script en}
+Une taille script est plus petite que la \refterm{taille texte} mais plus
+grande que la
+\refterm{taille scriptscript}. \TeX\ utilise la taille script pour les
+indices et les exposants, aussi bien que pour les num\'erateurs et les
+d\'enominateurs de fractions dans du texte.
+\endconcept
+
+
+\concept {taille scriptscript}
+
+Une \defterm{taille scriptscript} d\'ecrit la plus petite taille des trois
+\refterm{polices:police} reli\'ees dans une famille.
+^^{famille//taille scriptscript en}
+\TeX\ utilise la \refterm{taille scriptscript} pour des indices, exposants,
+num\'erateurs et d\'enominateurs de second rang. Par exemple, \TeX\ utilisera
+la taille scriptscript pour un indice d'indice ou pour un exposant d'exposant.
+\endconcept
+
+
+\concept {taille texte}
+
+La \defterm{taille texte} d\'ecrit la plus grande des trois
+\refterm{polices:police} li\'ees dans une \refterm{famille}.
+^^{famille//taille texte en}
+\TeX\ utilise la taille texte pour des symboles ordinaires apparaissant en
+\refterm{mode math\'ematique}.
+\endconcept
+
+
+\conceptindex{tests conditionnels}
+\concept {test conditionnel}
+
+Un \defterm{test conditionnel} est une commande qui teste si une condition est
+vraie ou non et
+demande \`a \TeX\ soit de d\'evelopper soit de sauter du texte, selon le cas.
+La forme g\'en\'erale d'une test conditionnel est soit~:
+\display{
+{\tt \\if}$\alpha$\<true text>{\tt \\else}\<false text>{\tt \\fi}}
+^^|\else|^^|\fi|
+\noindent soit~:\hfil\
+\display{
+{\tt \\if}$\alpha$\<true text>{\tt \\fi}}
+\noindent o\`u $\alpha$ sp\'ecifie le test particulier.
+Par exemple, |\ifvmode| teste la condition que \TeX\
+soit actuellement dans un \refterm{mode vertical}.
+Si la condition est vraie, \TeX\ d\'eveloppe \<true text>.
+Si la condition est fausse, \TeX\ d\'eveloppe \<false text> (s'il est pr\'esent).
+Les tests conditionnels sont interpr\'et\'es dans l'\oesophage\ de \TeX
+\seeconcept{\anatomy}, donc tous les \minref{token}s d\'eveloppables dans
+le texte interpr\'et\'e ne sont d\'evelopp\'es qu'apr\`es que le test n'ait \'et\'e r\'esolu.
+Les diff\'erents tests conditionnels sont expliqu\'es dans
+\headcit{Tests conditionnels}{conds}.
+
+\endconcept
+
+
+\concept {\TeXMeX}
+
+(a)~Une vari\'et\'e de \TeX\ utilis\'ee pour composer des math\'e\-matiques dans les
+pays d'Am\'erique Centrale.
+(b)~Une cuisine tr\`es \'epic\'ee appr\'e\-ci\'ee par les \TeX\-ni\-ciens d'^{El Paso}.
+\endconcept
+
+
+\conceptindex{justification}
+\concept {texte justifi\'e}
+
+Du \defterm{texte justifi\'e} est du texte qui a \'et\'e compos\'e pour que les
+deux marges soit align\'ees. Du texte non justifi\'e, d'un autre cot\'e, a \'et\'e compos\'e
+avec des marges ``d\'echir\'ees'' d'un ou des deux cot\'es.
+Les documents saisis sur les vieilles machines \`a \'ecrire ont la plupart du temps
+des marges droites d\'echir\'ees.
+Bien que les documents produits par \TeX\ soient justifi\'es par d\'efaut, vous
+pouvez si vous voulez produire des documents (ou des suites de lignes) qui
+ont la marge ^{droite}---ou ^{gauche d\'echir\'ee}.
+Vous pouvez aussi demander \`a \TeX\ de centrer un suite de lignes, ce qui rend
+les deux marges d\'echir\'ees.
+^^{texte centr\'e}
+Vous pouvez utiliser les commandes
+^|\leftskip|, ^|\rightskip| et ^|\raggedright|
+(\pp \xrefn{\leftskip},~\xrefn{\raggedright}) pour cela.
+
+Quand \TeX\ produit du texte justifi\'e, il a normalement besoin de r\'e\-tr\'ecir ou
+d'\'etirer les ressorts de chaque ligne pour que les marges soient align\'ees.
+Quand \TeX\ produit du texte non justifi\'e, d'un autre cot\'e, il laisse les ressorts
+de chaque ligne \`a leur taille naturelle.
+Beaucoup de typographes pr\'ef\`erent le texte non justifi\'e parce que son espacement
+inter-mot est plus uniforme.
+\endconcept
+
+
+\concept {texte math\'ematique}
+
+Nous utilisons le terme \defterm{texte math\'ematique} pour faire r\'ef\'erence
+\`a une formule math\'ematique mise dans une ligne de texte, c'est-\`a-dire,
+entour\'ee de |$|.
+\ttidxref{$}
+\TeX\ met du texte math\'ematique dans le \refterm{mode} texte math\'ematique .
+\endconcept
+
+
+\conceptindex{tokens}
+\concept token
+
+Un \defterm{token} est soit un simple caract\`ere attach\'e \`a un
+\refterm{code de cat\'egorie} ou une \refterm{s\'equence de contr\^ole}.
+\TeX\ lit les caract\`eres d'un fichier en utilisant ses yeux \seeconcept{\anatomy}
+et groupe les caract\`eres en tokens en utilisant sa bouche. Quand un token
+atteint l'estomac de \TeX, \TeX\ l'interpr\`ete comme une \refterm{commande}
+\`a moins qu'il fasse partie d'un argument d'une commande pr\'ec\'edente.
+\endconcept
+
+
+\conceptindex{unit\'es de mesure}
+\concept {unit\'e de mesure}
+
+Voir \conceptcit{dimension}.
+\endconcept
+
+
+\conceptindex{unit\'es math\'ematiques}
+\concept {unit\'e math\'ematique}
+
+Une \defterm{unit\'e math\'ematique}, cod\'ee `|mu|', est une unit\'e de distance
+utilis\'ee pour sp\'ecifier un \refterm{ressort} dans les formules math\'e\-matiques. Voir
+le \conceptcit{muglue}.
+\endconcept
+
+
+\conceptindex{vbox}
+\concept vbox
+
+^^{listes verticales//vbox form\'ees \`a partir de}
+Une \defterm{vbox} (bo\^\i te verticale) est une \refterm{bo\^\i te} que \TeX\ construit
+en pla\c cant les \'el\'ements d'une \refterm{liste verticale} l'une apr\`es l'autre, de haut
+en bas. Une vbox, prise en tant qu'unit\'e, n'est ni fondamentalement horizontale
+ni fondamentalement verticale, c'est-\`a-dire, elle peut appara\^\i tre comme un \'el\'ement
+soit d'une liste verticale soit d'une \refterm{liste horizontale}. Vous
+pouvez construire une vbox avec les commandes ^|\vbox| ou ^|\vtop| \ctsref{\vtop}.
+La diff\'erence est que pour |\vbox|, le \refterm{point de r\'ef\'erence} de la
+vbox construite est d\'eriv\'e de celui du dernier (et souvent plus bas)
+\'el\'ement constituant la liste, mais pour |\vtop|, c'est celui du premier
+(et normalement plus haut) \'el\'ement constituant la liste.
+\endconcept
+
+
+\endconcepts
+
+\endchapter
+\byebye
+
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/fcopyrgh.tex b/Master/texmf-dist/doc/plain/impatient-fr/fcopyrgh.tex
new file mode 100644
index 00000000000..15534a78d5a
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/fcopyrgh.tex
@@ -0,0 +1,58 @@
+% 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
+
+
+% Copyright page.
+%
+\noheadlinetrue
+\sinkage
+
+\noindent `\TeX' est une marque d\'epos\'ee de the American Mathematical Society.
+
+\noindent `\Metafont' est une marque d\'epos\'ee d'Addison-Wesley Publishing Company.
+
+\bigskip
+\noindent Ce livre, \thisbook, contient le tutorial et l'information
+de r\'ef\'erence sur tous les dispositifs de plain \TeX\ et des
+primitives de \TeX.
+
+\bigskip
+
+\noindent Copyright \copyright{} 2003 Paul~W. Abrahams,
+Kathryn~A. Hargreaves, and Karl Berry.
+
+\bigskip
+
+\noindent Copyright \copyright{} 2004 Marc Chaudemanche pour la
+traduction.
+[Note du traducteur : Je tiens \`a remercier chaleureusement Claude Hiebel
+pour la relecture et les nombreuses corrections apport\'ees]
+
+\bigskip
+\noindent Permission vous est donn\'ee de copier, distribuer et/ou
+modifier ce docu\-ment selon les termes de la Licence GNU Free
+Documentation License, Version 1.1 ou ult\'erieure publi\'ee par la
+Free Software Foundation~; avec les sections inalt\'erables
+suivantes~:
+
+
+\medskip\noindent
+Selon les termes de la GFDL, n'importe qui est autoris\'e \`a modifier
+et redistribuer ce document, et nous esp\'erons que d'autres le
+trouveront assez utile pour le faire. Cela inclut les traductions,
+vers d'autres langues \'etrang\`eres ou d'autres formats informatiques.
+
+\medskip\noindent
+Dans notre interpr\'etation de la GFDL, vous pouvez aussi extraire du
+texte de ce livre pour l'utiliser dans un nouveau document, \`a
+condition que ce nouveau document soit \'egalement sous la GFDL et que
+les bonnes accr\'editations soit donn\'ees (conform\'ement \`a la
+licence).
+
+
+\pagebreak
+\byebye
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/fdl.tex b/Master/texmf-dist/doc/plain/impatient-fr/fdl.tex
new file mode 100644
index 00000000000..4ae17d2d753
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/fdl.tex
@@ -0,0 +1,463 @@
+% This file is a chapter. It must be included in a larger document to work
+% properly.
+
+\chapter{GNU Free Documentation \linebreak License}
+
+\begingroup
+% pseudo-latex since that's what the original source used.
+\let\label=\eqdefn
+\def\eqprint#1{#1\relax}
+\def\\{\hfil\break}
+\let\ref=\eqref
+
+% we have to have section numbers since we have internal references.
+\def\fdlkludge{\begingroup
+ \count255=\eqnumber \advance\count255 by 1
+ \the\count255.
+\endgroup}
+
+Version 1.2, November 2002
+
+ Copyright \copyright\ 2000,2001,2002 Free Software Foundation, Inc.\\
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\\
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+\section{PREAMBLE}
+
+The purpose of this License is to make a manual, textbook, or other
+functional and useful document ``free'' in the sense of freedom: to
+assure everyone the effective freedom to copy and redistribute it,
+with or without modifying it, either commercially or noncommercially.
+Secondarily, this License preserves for the author and publisher a way
+to get credit for their work, while not being considered responsible
+for modifications made by others.
+
+This License is a kind of ``copyleft'', which means that derivative
+works of the document must themselves be free in the same sense. It
+complements the GNU General Public License, which is a copyleft
+license designed for free software.
+
+We have designed this License in order to use it for manuals for free
+software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does. But this License is not limited to software manuals;
+it can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book. We recommend this License
+principally for works whose purpose is instruction or reference.
+
+
+\section{APPLICABILITY AND DEFINITIONS}
+
+\label{applicability}
+
+This License applies to any manual or other work, in any medium, that
+contains a notice placed by the copyright holder saying it can be
+distributed under the terms of this License. Such a notice grants a
+world-wide, royalty-free license, unlimited in duration, to use that
+work under the conditions stated herein. The ``Document'', below,
+refers to any such manual or work. Any member of the public is a
+licensee, and is addressed as ``you''. You accept the license if you
+copy, modify or distribute the work in a way requiring permission
+under copyright law.
+
+A ``Modified Version'' of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+A ``Secondary Section'' is a named appendix or a front-matter section of
+the Document that deals exclusively with the relationship of the
+publishers or authors of the Document to the Document's overall subject
+(or to related matters) and contains nothing that could fall directly
+within that overall subject. (Thus, if the Document is in part a
+textbook of mathematics, a Secondary Section may not explain any
+mathematics.) The relationship could be a matter of historical
+connection with the subject or with related matters, or of legal,
+commercial, philosophical, ethical or political position regarding
+them.
+
+The ``Invariant Sections'' are certain Secondary Sections whose titles
+are designated, as being those of Invariant Sections, in the notice
+that says that the Document is released under this License. If a
+section does not fit the above definition of Secondary then it is not
+allowed to be designated as Invariant. The Document may contain zero
+Invariant Sections. If the Document does not identify any Invariant
+Sections then there are none.
+
+The ``Cover Texts'' are certain short passages of text that are listed,
+as Front-Cover Texts or Back-Cover Texts, in the notice that says that
+the Document is released under this License. A Front-Cover Text may
+be at most 5 words, and a Back-Cover Text may be at most 25 words.
+
+A ``Transparent'' copy of the Document means a machine-readable copy,
+represented in a format whose specification is available to the
+general public, that is suitable for revising the document
+straightforwardly with generic text editors or (for images composed of
+pixels) generic paint programs or (for drawings) some widely available
+drawing editor, and that is suitable for input to text formatters or
+for automatic translation to a variety of formats suitable for input
+to text formatters. A copy made in an otherwise Transparent file
+format whose markup, or absence of markup, has been arranged to thwart
+or discourage subsequent modification by readers is not Transparent.
+An image format is not Transparent if used for any substantial amount
+of text. A copy that is not ``Transparent'' is called ``Opaque''.
+
+Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, \LaTeX\ input format, SGML
+or XML using a publicly available DTD, and standard-conforming simple
+HTML, PostScript or PDF designed for human modification. Examples of
+transparent image formats include PNG, XCF and JPG. Opaque formats
+include proprietary formats that can be read and edited only by
+proprietary word processors, SGML or XML for which the DTD and/or
+processing tools are not generally available, and the
+machine-generated HTML, PostScript or PDF produced by some word
+processors for output purposes only.
+
+The ``Title Page'' means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page. For works in
+formats which do not have any title page as such, ``Title Page'' means
+the text near the most prominent appearance of the work's title,
+preceding the beginning of the body of the text.
+
+A section ``Entitled XYZ'' means a named subunit of the Document whose
+title either is precisely XYZ or contains XYZ in parentheses following
+text that translates XYZ in another language. (Here XYZ stands for a
+specific section name mentioned below, such as ``Acknowledgements'',
+``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title''
+of such a section when you modify the Document means that it remains a
+section ``Entitled XYZ'' according to this definition.
+
+The Document may include Warranty Disclaimers next to the notice which
+states that this License applies to the Document. These Warranty
+Disclaimers are considered to be included by reference in this
+License, but only as regards disclaiming warranties: any other
+implication that these Warranty Disclaimers may have is void and has
+no effect on the meaning of this License.
+
+
+\section{VERBATIM COPYING}
+
+\label{verbatim}
+
+You may copy and distribute the Document in any medium, either
+commercially or noncommercially, provided that this License, the
+copyright notices, and the license notice saying this License applies
+to the Document are reproduced in all copies, and that you add no other
+conditions whatsoever to those of this License. You may not use
+technical measures to obstruct or control the reading or further
+copying of the copies you make or distribute. However, you may accept
+compensation in exchange for copies. If you distribute a large enough
+number of copies you must also follow the conditions in
+section~\ref{copying}.
+
+You may also lend copies, under the same conditions stated above, and
+you may publicly display copies.
+
+
+\section{COPYING IN QUANTITY}
+
+\label{copying}
+
+If you publish printed copies (or copies in media that commonly have
+printed covers) of the Document, numbering more than 100, and the
+Document's license notice requires Cover Texts, you must enclose the
+copies in covers that carry, clearly and legibly, all these Cover
+Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
+the back cover. Both covers must also clearly and legibly identify
+you as the publisher of these copies. The front cover must present
+the full title with all words of the title equally prominent and
+visible. You may add other material on the covers in addition.
+Copying with changes limited to the covers, as long as they preserve
+the title of the Document and satisfy these conditions, can be treated
+as verbatim copying in other respects.
+
+If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+
+If you publish or distribute Opaque copies of the Document numbering
+more than 100, you must either include a machine-readable Transparent
+copy along with each Opaque copy, or state in or with each Opaque copy
+a computer-network location from which the general network-using
+public has access to download using public-standard network protocols
+a complete Transparent copy of the Document, free of added material.
+If you use the latter option, you must take reasonably prudent steps,
+when you begin distribution of Opaque copies in quantity, to ensure
+that this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+
+It is requested, but not required, that you contact the authors of the
+Document well before redistributing any large number of copies, to give
+them a chance to provide you with an updated version of the Document.
+
+
+\section{MODIFICATIONS}
+
+\label{modifications}
+
+You may copy and distribute a Modified Version of the Document under
+the conditions of sections~\ref{verbatim} and \ref{copying} above,
+provided that you release
+the Modified Version under precisely this License, with the Modified
+Version filling the role of the Document, thus licensing distribution
+and modification of the Modified Version to whoever possesses a copy
+of it. In addition, you must do these things in the Modified Version:
+
+%\begin{enumerate}
+\smallskip
+\itemletter = `A
+\def\item{\vskip\interitemskip \char\itemletter. \advance\itemletter by 1}
+\item Use in the Title Page (and on the covers, if any) a title distinct
+ from that of the Document, and from those of previous versions
+ (which should, if there were any, be listed in the History section
+ of the Document). You may use the same title as a previous version
+ if the original publisher of that version gives permission.
+\item List on the Title Page, as authors, one or more persons or entities
+ responsible for authorship of the modifications in the Modified
+ Version, together with at least five of the principal authors of the
+ Document (all of its principal authors, if it has fewer than five),
+ unless they release you from this requirement.
+\item State on the Title page the name of the publisher of the
+ Modified Version, as the publisher.
+\item Preserve all the copyright notices of the Document.
+\item Add an appropriate copyright notice for your modifications
+ adjacent to the other copyright notices.
+\item Include, immediately after the copyright notices, a license notice
+ giving the public permission to use the Modified Version under the
+ terms of this License, in the form shown in the Addendum below.
+\item Preserve in that license notice the full lists of Invariant Sections
+ and required Cover Texts given in the Document's license notice.
+\item Include an unaltered copy of this License.
+\item Preserve the section Entitled ``History'', Preserve its Title, and add
+ to it an item stating at least the title, year, new authors, and
+ publisher of the Modified Version as given on the Title Page. If
+ there is no section Entitled ``History'' in the Document, create one
+ stating the title, year, authors, and publisher of the Document as
+ given on its Title Page, then add an item describing the Modified
+ Version as stated in the previous sentence.
+\item Preserve the network location, if any, given in the Document for
+ public access to a Transparent copy of the Document, and likewise
+ the network locations given in the Document for previous versions
+ it was based on. These may be placed in the ``History'' section.
+ You may omit a network location for a work that was published at
+ least four years before the Document itself, or if the original
+ publisher of the version it refers to gives permission.
+\item For any section Entitled ``Acknowledgements'' or ``Dedications'',
+ Preserve the Title of the section, and preserve in the section all
+ the substance and tone of each of the contributor acknowledgements
+ and/or dedications given therein.
+\item Preserve all the Invariant Sections of the Document,
+ unaltered in their text and in their titles. Section numbers
+ or the equivalent are not considered part of the section titles.
+\item Delete any section Entitled ``Endorsements''. Such a section
+ may not be included in the Modified Version.
+\item Do not retitle any existing section to be Entitled ``Endorsements''
+ or to conflict in title with any Invariant Section.
+\item Preserve any Warranty Disclaimers.
+
+\smallskip
+%\end{enumerate}
+
+If the Modified Version includes new front-matter sections or
+appendices that qualify as Secondary Sections and contain no material
+copied from the Document, you may at your option designate some or all
+of these sections as invariant. To do this, add their titles to the
+list of Invariant Sections in the Modified Version's license notice.
+These titles must be distinct from any other section titles.
+
+You may add a section Entitled ``Endorsements'', provided it contains
+nothing but endorsements of your Modified Version by various
+parties--for example, statements of peer review or that the text has
+been approved by an organization as the authoritative definition of a
+standard.
+
+You may add a passage of up to five words as a Front-Cover Text, and a
+passage of up to 25 words as a Back-Cover Text, to the end of the list
+of Cover Texts in the Modified Version. Only one passage of
+Front-Cover Text and one of Back-Cover Text may be added by (or
+through arrangements made by) any one entity. If the Document already
+includes a cover text for the same cover, previously added by you or
+by arrangement made by the same entity you are acting on behalf of,
+you may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+
+The author(s) and publisher(s) of the Document do not by this License
+give permission to use their names for publicity for or to assert or
+imply endorsement of any Modified Version.
+
+
+\section{COMBINING DOCUMENTS}
+
+\label{combining}
+
+You may combine the Document with other documents released under this
+License, under the terms defined in section~\ref{modifications}
+above for modified
+versions, provided that you include in the combination all of the
+Invariant Sections of all of the original documents, unmodified, and
+list them all as Invariant Sections of your combined work in its
+license notice, and that you preserve all their Warranty Disclaimers.
+
+The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections may be replaced with a single
+copy. If there are multiple Invariant Sections with the same name but
+different contents, make the title of each such section unique by
+adding at the end of it, in parentheses, the name of the original
+author or publisher of that section if known, or else a unique number.
+Make the same adjustment to the section titles in the list of
+Invariant Sections in the license notice of the combined work.
+
+In the combination, you must combine any sections Entitled ``History''
+in the various original documents, forming one section Entitled
+``History''; likewise combine any sections Entitled ``Acknowledgements'',
+and any sections Entitled ``Dedications''. You must delete all sections
+Entitled ``Endorsements''.
+
+
+\section{COLLECTIONS OF DOCUMENTS}
+
+\label{collections}
+
+You may make a collection consisting of the Document and other documents
+released under this License, and replace the individual copies of this
+License in the various documents with a single copy that is included in
+the collection, provided that you follow the rules of this License for
+verbatim copying of each of the documents in all other respects.
+
+You may extract a single document from such a collection, and distribute
+it individually under this License, provided you insert a copy of this
+License into the extracted document, and follow this License in all
+other respects regarding verbatim copying of that document.
+
+
+\section{AGGREGATION WITH INDEPENDENT WORKS}
+
+\label{aggregation}
+
+A compilation of the Document or its derivatives with other separate
+and independent documents or works, in or on a volume of a storage or
+distribution medium, is called an ``aggregate'' if the copyright
+resulting from the compilation is not used to limit the legal rights
+of the compilation's users beyond what the individual works permit.
+When the Document is included in an aggregate, this License does not
+apply to the other works in the aggregate which are not themselves
+derivative works of the Document.
+
+If the Cover Text requirement of section~\ref{copying} is applicable to
+these copies of the Document, then if the Document is less than one half
+of the entire aggregate, the Document's Cover Texts may be placed on
+covers that bracket the Document within the aggregate, or the
+electronic equivalent of covers if the Document is in electronic form.
+Otherwise they must appear on printed covers that bracket the whole
+aggregate.
+
+\section{TRANSLATION}
+
+\label{translation}
+
+Translation is considered a kind of modification, so you may
+distribute translations of the Document under the terms of
+section~\ref{modifications}.
+Replacing Invariant Sections with translations requires special
+permission from their copyright holders, but you may include
+translations of some or all Invariant Sections in addition to the
+original versions of these Invariant Sections. You may include a
+translation of this License, and all the license notices in the
+Document, and any Warranty Disclaimers, provided that you also include
+the original English version of this License and the original versions
+of those notices and disclaimers. In case of a disagreement between
+the translation and the original version of this License or a notice
+or disclaimer, the original version will prevail.
+
+If a section in the Document is Entitled ``Acknowledgements'',
+``Dedications'', or ``History'', the requirement
+(section~\ref{modifications}) to Preserve
+its Title (section~\ref{applicability}) will typically require
+changing the actual title.
+
+
+\section{TERMINATION}
+
+\label{termination}
+
+You may not copy, modify, sublicense, or distribute the Document except
+as expressly provided for under this License. Any other attempt to
+copy, modify, sublicense or distribute the Document is void, and will
+automatically terminate your rights under this License. However,
+parties who have received copies, or rights, from you under this
+License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+
+\section{FUTURE REVISIONS OF THIS LICENSE}
+
+\label{future}
+
+The Free Software Foundation may publish new, revised versions
+of the GNU Free Documentation License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns. See
+http://www.gnu.org/copyleft/.
+
+Each version of the License is given a distinguishing version number.
+If the Document specifies that a particular numbered version of this
+License ``or any later version'' applies to it, you have the option of
+following the terms and conditions either of that specified version or
+of any later version that has been published (not as a draft) by the
+Free Software Foundation. If the Document does not specify a version
+number of this License, you may choose any version ever published (not
+as a draft) by the Free Software Foundation.
+
+
+% this section title is so long, it messes up everything.
+% don't put it in the headline and don't write it to the toc
+\let\markinfo=\gobble
+\let\writetocentry=\gobbletwo
+\section{\vtop{\noindent ADDENDUM: How to use this License
+ \\for your documents\hfil}}
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and
+license notices just after the title page:
+
+%\begin{quote}
+\smallskip
+{\narrower\obeylines\eightrm\baselineskip=10pt
+ Copyright \copyright\ YEAR YOUR NAME.
+ Permission is granted to copy, distribute and/or modify this document
+ under the terms of the GNU Free Documentation License, Version 1.2
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+ A copy of the license is included in the section entitled ``GNU
+ Free Documentation License''.
+\par}
+%\end{quote}
+\smallskip
+
+If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
+replace the ``with...Texts.'' line with this:
+
+\smallskip
+{\narrower\obeylines\eightrm\baselineskip=10pt
+ with the Invariant Sections being LIST THEIR TITLES, with the
+ Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+\par}
+\smallskip
+
+If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License,
+to permit their use in free software.
+
+\endgroup
+
+\endchapter\byebye
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/ferrors.tex b/Master/texmf-dist/doc/plain/impatient-fr/ferrors.tex
new file mode 100644
index 00000000000..9d086cc1170
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/ferrors.tex
@@ -0,0 +1,309 @@
+% 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{Comprendre les \linebreak messages d'erreur}
+
+\chapterdef{errors}
+
+%\codefuzz = 4pc % for this chapter only (in scope of \chapter)
+\bix^^{messages d'erreur}
+L'interpr\'etation des messages d'erreur de \TeX\ peut parfois \^etre
+compar\'ee \`a aller chez votre m\'edecin avec la sensation d'\^etre
+fatigu\'e et obtenir, en r\'eponse, une analyse de votre chimie sanguine.
+C'est probablement l'explication de votre d\'etresse, mais il n'est pas
+facile de la d\'ecrire. Quelques r\`egles simples vous feront aller plus
+loin en vous aidant \`a comprendre les messages d'erreur de \TeX\ et \`a en
+obtenir d'avantage.
+
+Votre premier objectif sera de comprendre ce que vous avez fait pour que
+\TeX\ se plaigne. Le second (si vous travaillez interactivement) sera de
+d\'eceler le plus d'erreurs que vous pouvez en une seule fois.
+
+Regardons un exemple. Supposez que votre source contienne la ligne~:
+\csdisplay
+We skip \quid a little bit.
+|
+Vous pensiez saisir `|\quad|', mais vous avez tap\'e `|\quid|' \`a la
+place. Voici la r\'eponse que vous obtiendrez de \TeX\~:
+\csdisplay !!
+Undefined control sequence.
+l.291 We skip \quid
+ a little bit.
+?
+|
+Ce message appara\^\i tra sur votre terminal et dans votre \logfile.
+^^{fichier log//message d'erreur} La premi\`ere ligne, qui commence
+toujours par un point d'exclamation (|!!|), vous indique ce qu'est le
+probl\`eme. Les deux derni\`eres lignes avant le prompt `|?|'(qui sont,
+dans ce cas-ci, \'egalement, les deux lignes suivantes) vous indiquent o\`u
+\'etait \TeX\ quand il a trouv\'e l'erreur. Il a trouv\'e l'erreur sur la
+ligne $291$ du fichier source courant, et la coupure entre les deux lignes
+de message indiquent la position pr\'ecise de \TeX\ dans la ligne $291$, \`a
+savoir, juste apr\`es |\quid|. Le fichier source courant est celui juste
+apr\`es la parenth\`ese gauche la plus r\'ecemment ouverte dans le r\'esultat
+de votre ex\'ecution sur votre terminal (voir les \xref{infiles}).
+
+Cette erreur particuli\`ere, un ``undefined control sequence'', est l'une
+des plus communes que vous puissiez obtenir. Si vous r\'epondez au prompt
+par un autre~`|?| ', \TeX\ affichera le message suivant~:
+
+{\hfuzz = 2in
+\csdisplay
+Type <return> to proceed, S to scroll future error messages,
+R to run without stopping, Q to run quietly,
+I to insert something, E to edit your file,
+1 or ... or 9 to ignore the next 1 to 9 tokens of input,
+H for help, X to quit.
+|
+}%
+Voici ce que signifient ces propositions~:
+\ulist
+\li Si vous saisissez \asciichar{return}, \TeX\ continuera \`a traiter
+votre document. Dans ce cas, il ignorera juste le |\quid|.
+\li Si vous saisissez `|S|' (ou `|s|'---majuscule et minuscule sont
+\'equivalentes ici), \TeX\ traitera votre document sans s'arr\^eter,
+\emph{sauf} s'il rencontre un fichier absent. Les messages d'erreur
+continueront \`a appara\^\i tre sur votre terminal et dans le \logfile.
+\li Si vous saisissez `|R|' ou `|r|', vous obtiendrez le m\^eme effet que
+pour `|S|', sauf que \TeX\ ne s'arr\^etera pas pour les fichiers manquants.
+\li Si vous saisissez `|Q|' ou `|q|', \TeX\ continuera \`a traiter votre
+document mais ne s'arr\^etera pas pour des erreurs ni ne les montrera sur
+votre terminal. Les erreurs appara\^\i tront toujours dans le \logfile.
+\li Si vous saisissez `|X|' ou `|x|', \TeX\ nettoiera ce qu'il peut au
+mieux, jettera la page sur laquelle il travaillait et stoppera. Vous pourrez
+imprimer ou regarder les pages que \TeX\ a d\'ej\`a trait\'ees.
+\li Si vous saisissez `|E|' ou `|e|', \TeX\ nettoiera et se terminera comme
+il le fait pour `|X|' ou `|x|' et entrera alors dans votre \'editeur de
+texte, vous pla\c cant sur la ligne incorrecte. (tous les syst\`emes ne
+supportent pas cette option.)
+\li Si vous saisissez `|H|' ou `|h|', vous obtiendrez une autre explication
+de l'erreur montr\'ee sur votre terminal et probablement du conseil sur
+quoi faire \`a son sujet. Cette explication appara\^\i tra \'egalement dans
+votre \logfile. Pour le ``undefined control sequence'' ci-dessus, vous
+obtiendrez~:
+
+{\hfuzz = 2in
+\csdisplay
+The control sequence at the end of the top line
+of your error message was never \def'ed. If you have
+misspelled it (e.g., `\hobx'), type `I' and the correct
+spelling (e.g., `I\hbox'). Otherwise just continue,
+and I'll forget about whatever was undefined.
+|
+}
+\li Si vous saisissez `|?|', vous recevrez encore ce m\^eme message.
+\endulist
+\noindent
+Les deux autres solutions de rechange, saisir `|I|' ou un petit nombre
+entier, fournissent des moyen de demander \`a \TeX de revenir en \ arri\`ere
+pour que votre erreur ne cause pas d'autres erreurs plus tard dans
+votre document~:
+
+\ulist
+\li Si vous saisissez `|I|' ou `|i|' suivi de texte, alors \TeX\ ins\'erera
+ce texte comme s'il s'\'etait produit juste apr\`es le point d'erreur, au
+niveau les plus secrets o\`u \TeX \ travaille. Dans le cas de l'exemple
+ci-dessus, cela signifie \`a la position de \TeX\ dans votre source
+original, c'est-\`a-dire, juste apr\`es `|\quid|'. Plus tard vous verrez un
+exemple qui montre la diff\'erence entre ins\'erer quelque chose au niveau
+les plus secrets et l'ins\'erer dans votre source original. Dans l'exemple
+ci-dessus d'``undefined control sequence'', si vous saisissez~:
+\csdisplay
+I\quad
+|
+\TeX\ effectuera la commande |\quad| et produira un espace cadratin
+l\`a o\`u vous avez eu l'intention d'avoir un.
+\li Si vous saisissez un nombre entier positif inf\'erieur \`a $100$ (pas
+inf\'erieur \`a $10$ comme le message le sugg\`ere maladroitement), \TeX\
+supprimera ce nombre de tokens du niveau les plus secrets o\`u il
+travaille. (si vous saisissez un nombre entier sup\'erieur ou \'egal \`a
+$100$, \TeX\ supprimera $10$ tokens~!)
+\endulist
+
+Voici un autre exemple d'erreur commune~:
+\csdisplay
+Skip across \hskip 3cn by 3 centimeters.
+|
+Le message d'erreur pour ceci est~:
+\csdisplay
+!! Illegal unit of measure (pt inserted).
+<to be read again>
+ c
+<to be read again>
+ n
+l.340 Skip across \hskip 3cn
+ by 3 centimeters.
+|
+^^|<to be read again>|
+Dans ce cas, \TeX\ a vu que `|3|' est suivi par quelque chose qui n'est pas
+une unit\'e de mesure reconnue, et ainsi suppose que l'unit\'e de mesure est
+le point. \TeX\ relira le token `|cn|' et l'ins\'erera dans votre saisie,
+ce qui n'est pas ce que vous voulez. Dans ce cas, vous pouvez obtenir un
+meilleur r\'esultat en saisissant d'abord `|2|' pour reculer avant `|cn|'.
+Vous recevrez le message~:
+\csdisplay
+<recently read> n
+
+l.340 Skip across \hskip 3cn
+ by 3 centimeters.
+|
+
+Maintenant vous pouvez saisir `|I\hskip 3cm|' pour obtenir le saut que vous
+vouliez (en plus du saut de |3pt| que vous avez d\'ej\`a obtenu).\footnote{en
+saisissant `|I\unskip\hskip 3cm|' vous pouvez vous d\'ebarrasser du saut de
+|3pt|.}
+
+Si vous saisissez quelque chose qui n'est valide qu'en mode math\'ema\-tique,
+\TeX\ s'orientera vers le mode math\'ematique pour vous que ce soit ce que
+vous avez vraiment voulu ou non. Par exemple~:
+\csdisplay
+So \spadesuit s are trumps.
+|
+Voici le message d'erreur de \TeX\~:
+\csdisplay
+!! Missing $ inserted.
+<inserted text>
+ $
+<to be read again>
+ \spadesuit
+l.330 So \spadesuit
+ s are trumps.
+|
+Puisque le symbole |\spadesuit| n'est permis qu'en mode math\'ematique,
+\TeX\ a ins\'er\'e un `|$|' devant lui. Apr\`es que \TeX\ ait ins\'er\'e un
+token, il se place \emph{devant} ce token, dans ce cas, le `|$|', pr\^et
+\`a le lire. saisir `|2|' fera que \TeX\ sautera le `|$|' et le token
+`|\spadesuit|', le laissant pr\^et \`a traiter le `|s|' de
+`|s are trumps|'. Si vous laissez juste \TeX\ continuer, il
+composera `|s are trumps|' en mode math\'ematique.
+
+Voici un exemple o\`u le diagnostic d'erreur de \TeX\ est compl\`etement
+erron\'e~:
+\csdisplay
+\hbox{One \vskip 1in two.}
+|
+Le message d'erreur est~:
+\csdisplay
+!! Missing } inserted.
+<inserted text>
+ }
+<to be read again>
+ \vskip
+l.29 \hbox{One \vskip
+ 1in two.}
+|
+^^|<inserted text>|
+Le probl\`eme est que vous ne pouvez pas utiliser |\vskip| quand \TeX\ est
+en mode horizontal restreint, c'est-\`a-dire, en construisant un hbox. Mais
+au lieu de rejeter le |\vskip|, \TeX\ a ins\'er\'e une accolade droite devant
+lui afin d'essayer de fermer le hbox. Si vous acceptez la correction de \TeX,
+\TeX\ se plaindra encore quand il arrivera plus tard \`a l'accolade droite
+correcte. Il se plaindra \'egalement \`a propos de tout ce qui pr\'ec\`ede cette
+accolade droite et qui n'est pas permis en mode vertical. Ces plaintes
+r\'ep\'etitives seront particuli\`erement embrouillantes parce que les
+erreurs qu'elles indiquent sont fausses, elles sont le r\'esultat des effets
+propag\'es de l'insertion inad\'equate de l'accolade droite. Votre meilleur
+pari est de saisir `|5|', et de sauter apr\`es tous les tokens de `|}\vskip 1in|'.
+
+Voici un exemple similaire dans lequel le message d'erreur est plus long
+que ce que nous avons vus jusqu'ici~:
+\csdisplay
+\leftline{Skip \smallskip a little further.} But no more.
+|
+L'erreur ici est que |\smallskip| ne fonctionne qu'en mode vertical.
+Le message d'erreur est quelque chose comme~:
+\csdisplay
+!! Missing } inserted.
+<inserted text>
+ }
+<to be read again>
+ \vskip
+\smallskip ->\vskip
+ \smallskipamount
+<argument> Skip \smallskip
+ a little further.
+\leftline #1->\line {#1
+ \hss }
+l.93 ...Skip \smallskip a little further.}
+ But no more.
+|
+Les messages d'erreur ici vous donnent un tour d'horizon des macros qui sont
+utilis\'ees dans l'impl\'ementation de |\leftline| dans \plainTeX---des
+macros sur lesquelles vous ne vous inqui\'etez probablement pas. La premi\`ere
+ligne vous indique que \TeX\ pr\'evoit de traiter le probl\`eme en
+ins\'erant une accolade droite. \TeX\ n'a pas encore r\'eellement lu
+l'accolade droite, ainsi vous pouvez la supprimer si vous le choisissez.
+Chaque composant du message apr\`es la premi\`ere ligne (celle avec le `!')
+occupe une paire de lignes. Voici ce que signifient les paires de lignes
+successives~:
+\olist
+\li La premi\`ere paire indique que \TeX\ a ins\'er\'e, mais pas encore lu, une
+accolade droite~:
+\li La paire suivante indique qu'apr\`es avoir lu l'accolade droite, \TeX\
+relira un `|\vskip|' (obtenue de la macro d\'efinition du |\smallskip|).
+\li La troisi\`eme paire indique que \TeX\ d\'eveloppait la macro
+|\smallskip| quand il a trouv\'e l'erreur. Ces deux lignes montrent
+\'egalement la d\'efinition de |\smallskip| et indiquent o\`u \TeX\ est
+parvenu en d\'evelop\-pant et en ex\'ecutant cette d\'efinition.
+Sp\'ecifiquement, il a juste essay\'e sans succ\`es d'ex\'ecuter la
+commande |\vskip|. En g\'en\'eral, une ligne diagnostic qui commence par
+une commande suivie de `|->|' indique que \TeX\ a d\'evelopp\'e et
+ex\'ecut\'e une macro de ce nom.
+\li La quatri\`eme paire indique que \TeX\ traitait un argument de macro
+quand il a trouv\'e le |\smallskip| et indique \'egalement la position de
+\TeX\ du fait de l'argument, c'est-\`a-dire, qu'il a juste trait\'e le
+|\smallskip| (sans succ\`es). En regardant vers la prochaine paire de
+lignes nous pouvons voir que l'argument a \'et\'e pass\'e \`a |\leftline|.
+\li La cinqui\`eme paire indique que \TeX\ d\'eveloppait la macro
+|\leftline| quand il a trouv\'e l'erreur. Dans cet exemple l'erreur s'est
+produite pendant que \TeX\ \'etait en train d'interpr\'eter plusieurs
+d\'efinitions de macro \`a diff\'erents degr\'es de d\'eveloppement. Sa
+position apr\`es |#1| indique que la derni\`ere chose qu'il ait vu \'etait le
+premier (et dans ce cas-ci le seul) argument de |\leftline|.
+\li La derni\`ere paire indique o\`u \TeX\ est plac\'e dans votre fichier
+source. Notez que cette position est bien au del\`a de la position o\`u il
+a ins\`er\'e l'accolade droite et relu le `|\vskip|'. C'est parce que \TeX\
+a d\'ej\`a lu tout l'argument du |\leftline| de votre fichier source,
+m\^eme s'il n'a trait\'e qu'une partie de cet argument. Les points au
+d\'ebut de la paire indiquent qu'une partie pr\'ec\'edente de la ligne
+source n'est pas montr\'ee. Cette partie pr\'ec\'edente, en fait, inclut la
+commande |\leftline| qui a rendu le |\vskip| ill\'egal.
+\endolist
+\noindent
+Dans un long message comme ceci, vous ne trouverez g\'en\'eralement utiles
+que la premi\`ere ligne et la derni\`ere paire de lignes~; mais cela aide
+parfois de savoir ce que sont les autres lignes. N'importe quel texte que
+vous ins\'ererez ou effacerez sera ins\'er\'e ou supprim\'e au niveau les
+plus secrets. Dans cet exemple l'insertion ou la suppression se produira
+juste avant l'accolade droite ins\'er\'ee. Notez en particulier que dans ce
+cas-ci, \TeX \ met tout texte que vous pourriez ins\'erer, \emph{non} dans
+votre texte source mais dans une d\'efinition de macro plusieurs niveaux
+plus bas. (naturellement, la d\'efinition de macro originale n'est pas
+modifi\'ee.)
+
+Vous pouvez employer la commande ^|\errorcontextlines|
+\ctsref{\errorcontextlines} pour limiter le nombre de paires de lignes de
+contexte d'erreur que \TeX\ produit. Si vous n'\^etes pas int\'eress\'e par
+toute l'information que \TeX\ vous fournit, vous pouvez placer |\error!-
+contextlines| \`a $0$. Cela vous ne donnera que les premi\`eres et
+derni\`eres paires de lignes.
+
+En conclusion, nous mentionnerons deux autres indicateurs qui peuvent
+appara\^\i tre au d\'ebut d'une paire de lignes de message d'erreur~:
+\ulist
+\li ^|<output>| indique que \TeX\ \'etait au milieu de sa routine de sortie
+quand cette erreur s'est produite.
+\li ^|<write>| indique que \TeX\ \'etait en train d'ex\'ecuter une commande
+|\write| quand cette erreur s'est produite. \TeX\ d\'etectera une telle
+erreur quand il fera r\'eellement le |\write| (pendant un |\shipout|), et
+non quand il rencontre le |\write|.
+\endulist
+
+
+\eix^^{messages d'erreur}
+\endchapter
+\byebye
+
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/fexamples.tex b/Master/texmf-dist/doc/plain/impatient-fr/fexamples.tex
new file mode 100644
index 00000000000..790d908aba8
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/fexamples.tex
@@ -0,0 +1,56 @@
+% 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{Exemples}
+
+\chapterdef{examples}
+
+Cette section du livre contient un ensemble d'exemples pour vous aider \`a
+commencer et pour vous montrer comment faire diverses choses avec \TeX.
+Chaque exemple a le r\'esultat de \TeX\ sur la page de gauche et la source
+\TeX\ ayant men\'e \`a ce r\'esultat sur la page de droite. Vous pouvez utiliser
+ces exemples comme mod\`ele pour les imiter et comme une mani\`ere de trouver
+les commandes \TeX\ dont vous avez besoin afin de r\'ealiser un effet
+particulier. Cependant, ces exemples ne peuvent illustrer que quelques-unes
+des $900$ commandes environ de \TeX.
+
+Certains de ces exemples sont auto-descriptifs---ainsi, ils d\'ecrivent eux-%
+m\^emes les dispositifs de \TeX\ qu'ils illustrent. Ces discussions sont
+n\'eces\-sairement peu pr\'ecises parce qu'il n'y a pas la place dans les
+exemples pour toute l'information dont vous auriez besoin. Le sommaire des
+commandes (\chapterref{capsule}) et l'index vous aideront \`a localiser
+l'explication compl\`ete de chaque dispositif \TeX\ montr\'e dans les
+exemples.
+
+Puisque nous avons con\c cu les exemples pour illustrer beaucoup de choses \`a
+la fois, quelques exemples contiennent une grande vari\'et\'e d'effets
+typographiques. Ces exemples ne sont g\'en\'eralement pas de bons mod\`eles de
+pratique typographique. Par exemple, l'exemple~8 a certains de ses num\'eros
+d'\'equation du c\^ot\'e gauche et d'autres du c\^ot\'e droit. Vous ne ferez jamais
+cela dans une v\'eritable publication.
+
+\xrdef{xmphead}
+
+Chaque exemple, sauf le premier, commence par une macro (voir la
+\xref{macro}) appel\'e |\xmpheader|. Nous avons utilis\'e |\xmpheader|
+afin de garder de la place dans le source. Sans cela, chaque exemple
+ferait plusieurs lignes de plus que vous auriez d\'ej\`a vu.
+|\xmpheader| produit le titre de l'exemple et l'espace
+suppl\'ementaire qui va avec. Vous pouvez voir dans le premier exemple
+ce que fait |\xmpheader|, ainsi vous pouvez l'imiter si vous le
+souhaitez. A part le |\xmpheader|, chaque commande que nous utilisons
+dans ces exemples est d\'efinie dans \plainTeX.
+
+% The first example does the necessary eject here.
+{%
+ \let\bye = \relax % We don't want to obey \bye in the example input.
+ % These switches can't be done by a macro since \bye is outer.
+ \doexamples {fxmptext}% Typeset the actual examples.
+}%
+
+
+\endchapter
+\byebye
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/ffrontm.tex b/Master/texmf-dist/doc/plain/impatient-fr/ffrontm.tex
new file mode 100644
index 00000000000..83980b52e25
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/ffrontm.tex
@@ -0,0 +1,82 @@
+% 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.
+%
+% Front matter.
+
+\input fmacros
+
+
+% Frontmatter is numbered i, ii, ...
+\pageno = -1
+
+% Bastard title.
+%
+% \sinkage
+\leftline{\chapterfonts \TeX\ pour l'Impatient}
+
+\noheadlinetrue\pagebreak
+
+
+% Title spread.
+%
+%(title page, lhs)
+%\noheadlinetrue\pagebreak
+\blankpage
+
+%(title page, rhs)
+%\noheadlinetrue\pagebreak
+\blankpage
+
+
+\input fcopyrgh
+\noheadlinetrue
+
+
+% Dedication.
+%
+\sinkage
+{\it \flushright
+ Pour Jodi.
+ ---{\sc p.w.a.}
+
+ \`a la m\'emoire de mon p\`ere,
+ qui a eu foi en moi.
+ ---{\sc k.a.h.}
+
+ Pour Dan.
+ ---{\sc k.b.}
+}
+\pagebreak
+
+% From here on, the convention is that every frontchapter does its own
+% ending pagebreak and encloses its fonts in a group if necessary.
+
+% The preface should start on a right-hand page.
+
+\blankpage
+\input fpreface
+
+% Contents.
+%
+% We never want to empty the file after doing the brief contents.
+%
+\rewritetocfilefalse
+%
+\blankpage
+\frontchapter{Table des mati\`eres\linebreak abr\'eg\'ee}
+
+\shortcontents
+
+
+\ifcompletebook \global\rewritetocfiletrue \fi
+
+\frontchapter{Table des mati\`eres}
+
+\contents
+
+\blankpage
+\input fread1st
+
+\byebye
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/fgenops.tex b/Master/texmf-dist/doc/plain/impatient-fr/fgenops.tex
new file mode 100644
index 00000000000..2ca0acac59e
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/fgenops.tex
@@ -0,0 +1,2834 @@
+% 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 des op\'erations g\'en\'erales}
+
+\chapterdef{general}
+
+Cette section couvre
+des ^{caract\'eristiques de programmation} de \TeX\ et
+toutes autres choses qui ne rentrent pas dans les cat\'egories
+de commandes des chapitres pr\'ec\'edents.
+Pour une explication des conventions utilis\'ees dans cette section,
+voir \headcit{Descriptions des commandes}{cmddesc}.
+
+\begindescriptions
+
+%==========================================================================
+\section {Nommer et modifier des polices}
+
+\begindesc
+\bix^^{polices//nommer et modifier}
+\cts font {}
+\aux\cts font {\<s\'equence de contr\^ole> = \<nom de police>}
+\aux\cts font {\<s\'equence de contr\^ole> = \<nom de police> {\bt scaled} \<nombre>}
+\aux\cts font {\<s\'equence de contr\^ole> = \<nom de police> {\bt at} \<dimension>}
+\explain
+Utilis\'ee seule, la s\'equence de contr\^ole |\font| d\'esigne la police courante.
+|\font| n'est pas une vraie commande quand elle est utilis\'ee seule,
+puis\-qu'elle ne peut alors appara\^\i tre que comme argument d'une autre commande.
+
+Pour les trois autres formes de |\font|,
+\<nom de police> nomme un jeu de fichier qui d\'efinit une police.
+Ces formes de |\font| sont des commandes. Chacune de ces formes a deux
+effets~:
+{\tighten
+\olist
+\li Elle d\'efinit \<s\'equence de contr\^ole> comme un nom qui s\'electionne
+la police \<nom de police>, \'eventuellement magnifi\'ee (voir plus bas).
+\li Elle demande \`a \TeX\ de charger le fichier de m\'etriques
+^^{fichiers de m\'etriques} de la police (^{\tfmfile}) pour \<nom de
+police>.
+\endolist
+}% end tighten
+
+\noindent
+Le nom d'un fichier de police indique normalement sa taille de dessin.
+Par exemple, |cmr10| indique Computer Modern romain avec une
+taille de dessin de $10$ points.
+La taille des dessins d'une police est enregistr\'ee dans ses fichiers de m\'etriques.
+
+Si ni |scaled| \<nombre> ni |at| \<dimension>
+n'est pr\'esent, la police est utilis\'ee
+\`a sa taille de dessin---la taille pour laquelle elle est normalement faite.
+Autrement, une version magnifi\'ee de la police est charg\'ee~:
+\ulist
+\li Si |scaled| \<nombre>
+est pr\'esent, la police est magnifi\'ee d'un facteur de $\hbox{\<nombre>}/1000$.
+\li Si |at| \<dimension> est pr\'esent, la police est
+agrandie de \<dimension> en la magnifiant
+par $\hbox{\<dimension>}/ds$, o\`u $ds$ est la taille de dessin de
+\<nom de police>.
+\<dimension> et $ds$ sont toujours donn\'es en points.
+\endulist
+\noindent
+Des magnifications de moins que $1$ sont possibles~; Elles r\'eduisent la taille.
+
+Vous devez habituellement fournir un fichier de formes (\xref{shape}) pour chaque
+magnification de police que vous chargez.
+N\'eanmoins, certains ^{pilotes de p\'eriph\'eriques} peuvent utiliser des polices
+qui sont r\'esidentes dans une imprimante. ^^{polices r\'esidentes}
+De telles polices n'ont pas besoin de fichiers de formes.
+
+Voir \conceptcit{police} et
+\conceptcit{magnification} pour plus d'informa\-tion.
+
+\example
+\font\tentt = cmtt10
+\font\bigttfont = cmtt10 scaled \magstep2
+\font\eleventtfont = cmtt10 at 11pt
+First we use {\tentt regular CM typewriter}.
+Then we use {\eleventtfont eleven-point CM typewriter}.
+Finally we use {\bigttfont big CM typewriter}.
+|
+\produces
+\font\regttfont = cmtt10
+\font\bigttfont = cmtt10 scaled \magstep 2
+\font\eleventtfont = cmtt10 at 11pt
+First we use {\regttfont regular CM typewriter}.
+Then we use {\eleventtfont eleven-point CM typewriter}.
+Finally we use {\bigttfont big CM typewriter}.
+\endexample
+\enddesc
+
+\begindesc
+\cts fontdimen {\<nombre> \<police>\param{dimension}}
+\explain
+^^{polices//param\`etres de}
+Ce param\`etre sp\'ecifie des dimensions vari\'ees associ\'ees avec
+la police nomm\'ee par la s\'equence de contr\^ole \<police>
+(\`a distinguer de \<font\-name> qui nomme les fichiers de police).
+Des valeurs de ces param\`etres sont sp\'ecifi\'es dans les fichiers de m\'etriques
+pour \<police>, mais vous pouvez
+r\'eparer ou changer leurs valeurs pendant une ex\'ecution de \TeX.
+Les nombres et significations de ces param\`etres sont~:
+\display{\halign{\hfil#\hfil\quad&#\hfil\cr
+\it Nombre&\it Signification\cr
+\noalign{\vskip 1\jot}%
+1&inclinaison par point\cr
+2&espace inter-mot\cr
+3&\'etirement inter-mot\cr
+4&r\'etr\'ecissement inter-mot\cr
+5&hauteur de x (taille d'un |1ex|)\cr
+6&largeur de cadratin (taille d'un |1em|)\cr
+7&espace suppl\'ementaire\cr}}
+\noindent
+\TeX\ utilise l'inclinaison par point pour positionner des accents.
+Il utilise aussi les param\`etres inter-mot pour produire des espaces inter-mots
+(voir |\spaceskip|, \xref\spaceskip) et le param\`etre d'espace suppl\'ementaire
+pour l'espa\-ce additionel apr\`es une virgule (voir |\xspaceskip|,
+\xref\xspaceskip).
+Les valeurs de ces param\`etres pour les
+polices \plainTeX\ sont \'enum\'er\'ees dans la \knuth{page~433}{497}.
+Les polices de symboles math\'ematiques ont $15$ param\`etres additionnels,
+dont nous ne parlerons pas ici.
+
+Attention~:
+les assignements de ces param\`etres \emph{ne} sont \emph{pas} d\'efaits \`a la fin
+d'un groupe.
+Si vous voulez changer ces param\`etres localement, vous devrez
+sauvegarder et restaurer leurs valeurs originales explicitement.
+\example
+Here's a line printed normally.\par
+\fontdimen2\font = 3\fontdimen2\font
+% Triple the interword spacing.
+\noindent Here's a really spaced-out line.
+|
+\produces
+Here's a line printed normally.\par
+\dimen0 = \fontdimen2\font % to undo global assignment
+\fontdimen2\font = 3\fontdimen2\font
+% triple the interword spacing
+\noindent Here's a really spaced-out line.
+\fontdimen2\font = \dimen0
+\endexample
+\enddesc
+
+\begindesc
+\cts magnification {{\bt =} \<nombre>}
+\cts mag {\param{nombre}}
+\explain
+\margin{{\tt\\mag} and {\tt\\magnification} combined.}
+Un assignement de |\magnification| \'etablit
+le ``^{facteur d'\'echelle}'' $f$ qui d\'etermine
+le ratio de \minref{magnification} de votre document \seeconcept{magnification}.
+L'assignation de |\magni!-fication| doit appara\^\i tre avant que la premi\`ere page
+de votre document ait \'et\'e envoy\'ee.
+
+L'assignement met $f$ \`a \<nombre> et met
+aussi |\hsize| et |\vsize|
+^^|\hsize//d\'etermin\'e par {\tt\\magnification}|
+^^|\vsize//d\'etermin\'e par {\tt\\magnification}|
+respectivement \`a |6.5true in| et |8.9true in|,
+Les valeurs appropri\'ees pour une page $8 \frac1/2$-%
+par-$11$-pouce.
+$f$ doit \^etre entre $0$ et $32768$.
+Le ratio \minref{magnification} du
+document est $f/1000$.
+Un facteur d'\'echelle
+de $1000$ procure une unit\'e de magnification, c'est-\`a-dire, il laisse
+la taille de votre document inchang\'ee.
+Il est d'usage d'utiliser des puissances de $1.2$ comme facteur d'\'echelle et
+la plupart des librairies de polices sont bas\'ees sur de tels facteurs. Vous
+pouvez utiliser les commandes ^|\magstep| et ^|\magstephalf| pour sp\'ecifier
+des magnifications par ces facteurs.
+
+|\magnification| n'est pas un param\`etre. Vous ne pouvez pas l'utiliser
+pour \emph{r\'ecuperer} le facteur d'\'echelle. Si vous \'ecrivez quelque chose comme
+|\dimen0 = \mag!-nifi!-cation|, \TeX\ s'en plaindra.
+
+Le param\`etre |\mag| contient le facteur d'\'echelle.
+Changer la valeur de |\mag| retaille les dimensions de la page, ce qui n'est pas
+ce que vous voulez habituellement.
+Aussi, il est pr\'ef\'erable de changer la magnification en
+l'assignant \`a |\magnification| plut\^ot qu'\`a |\mag|.
+
+\example
+\magnification = \magstep2
+% magnify fonts by 1.44 (=1.2x1.2)
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts magstep {\<nombre>}
+\explain
+Cette commande d\'eveloppe le ratio de \minref{magnification} demand\'e pour
+magnifier tout dans votre document
+(autre que des dimensions |true|)
+par $1.2^r$, o\`u $r$ est
+la valeur de \<nombre>. \<nombre> doit \^etre entre $0$ et $5$.
+\example
+\magnification = \magstep1 % Magnify by ratio of 1.2.
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts magstephalf {}
+\explain
+Cette commande d\'eveloppe le ratio de \minref{magnification} demand\'e pour
+magnifier tout dans votre document
+(autre que des dimensions |true|)
+par $\sqrt{1.2}$,
+c'est-\`a-dire, \`a mi chemin entre $1$ et $1.2$.
+\example
+\magnification = \magstephalf
+|
+\endexample
+\eix^^{polices//nommer et modifier}
+\enddesc
+
+%==========================================================================
+\section {Convertir l'information en tokens}
+
+\subsection {Nombres}
+
+\begindesc
+\xrdef{convert}
+\bix^^{nombres//convertir en caract\`eres}
+%
+\cts number {\<nombre>}
+\explain
+Cette commande produit la repr\'esentation d'un \minref{nombre}
+comme une s\'e\-quence de
+\minref{token}s de caract\`ere. Le nombre peut \^etre un entier explicite,
+un param\`etre \<nombre> ou un registre \<nombre>.
+\example
+\number 24 \quad \count13 = -10000 \number\count13
+|
+\produces
+\number 24 \quad \count13 = -10000 \number\count13
+\endexample
+\enddesc
+
+\begindesc
+^^{chiffres romain}
+\easy\cts romannumeral {\<nombre>}
+\explain
+Cette commande produit la repr\'esentation num\'erique romaine d'un \minref{nom\-bre}
+comme une s\'equence de
+\minref{token}s de caract\`ere. Le nombre peut \^etre un entier explicite,
+un param\`etre \<nombre> ou un registre \<nombre>.
+Si le nombre est z\'ero ou n\'egatif, |\romannumeral| ne produit
+pas de tokens.
+\example
+\romannumeral 24 \quad (\romannumeral -16)\quad
+\count13 = 6000 \romannumeral\count13
+|
+\produces
+\romannumeral 24 \quad (\romannumeral -16)\quad
+\count13 = 6000 \romannumeral\count13
+\endexample
+
+\eix^^{nombres//convertir en caract\`eres}
+\enddesc
+
+%==========================================================================
+\subsection {Information environmentale}
+
+\begindesc
+^^{heure du jour}
+\cts time {\param{nombre}}
+\explain
+\TeX\ met ce param\`etre au
+nombre de minutes qui se sont d\'eroul\'ees depuis minuit (du jour courant).
+A neuf heures, par exemple, |\time| est \`a $720$.
+Cette commande et les trois suivantes utilisent l'heure et la date
+enregistr\'ee dans votre ordinateur.
+\TeX\ les r\'ecup\`ere juste une fois, au d\'ebut de votre ex\'ecution, donc |\time|
+\`a la fin de l'ex\'ecution \`a toujours la m\^eme valeur que |\time| au
+d\'ebut de l'ex\'ecution (\`a moins que vous l'ayez chang\'ee explicitement).
+\enddesc
+
+\bix^^{date}
+\begindesc
+\cts day {\param{nombre}}
+\explain
+\TeX\ met ce param\`etre au jour courant du mois. c'est
+un nombre entre $1$ et $31$.
+|\day| est mis au d\'ebut de votre ex\'ecution (voir les commentaires sur
+|\time| ci-dessus).
+\enddesc
+
+\begindesc
+\cts month {\param{nombre}}
+\explain
+\TeX\ met ce param\`etre au mois courant. C'est
+un nombre entre $1$ et $12$.
+|\month| est mis au d\'ebut de votre ex\'ecution (voir les commentaires sur
+|\time| ci-dessus).
+\enddesc
+
+\begindesc
+\cts year {\param{nombre}}
+\explain
+\TeX\ met ce param\`etre \`a l'ann\'ee courante ({apr\`es \sc J.-C.}).
+C'est un nombre tel que $2004$.
+|\year| est mis au d\'ebut de votre ex\'ecution (voir les commentaires sur
+|\time| ci-dessus).
+
+\eix^^{date}
+\enddesc
+
+\begindesc
+^^{num\'ero de version}
+\cts fmtname {}
+\cts fmtversion {}
+\explain
+Ces commandes produisent le nom et le num\'ero de version
+du format \TeX,
+c'est-\`a-dire \minref{\plainTeX} ou ^{\LaTeX}, que vous utilisez.
+\example
+This book was produced with the \fmtname\ format,
+version~\fmtversion.
+|
+\produces
+This book was produced with the \fmtname\ format,
+version~\fmtversion.
+\endexample
+\enddesc
+
+\begindesc
+\cts jobname {}
+\explain
+Cette commande produit le nom de base
+du fichier avec lequel \TeX\ \`a \'et\'e invoqu\'e.
+Par exemple, si votre fichier d'entr\'ee principal est |hatter.tex|,
+|\jobname| se d\'eveloppera en |hatter|.
+|\jobname| est plus pratique quand vous
+cr\'eez un fichier auxiliaire devant \^etre associ\'e avec un document.
+^^{fichiers auxiliaires}
+\example
+\newwrite\indexfile \openout\indexfile = \jobname.idx
+% For input file `hatter.tex', open index file `hatter.idx'.
+|
+\endexample\enddesc
+
+%==========================================================================
+\subsection {Valeurs des variables}
+
+\begindesc
+\cts meaning {\<token>}
+\explain
+^^{tokens//montrer la signification de}
+Cette commande produit
+la signification de \<token>. Elle est pratique pour diagnostiquer en sortie.
+Vous pouvez utiliser la commande ^|\the| (\xref\the) d'une mani\`ere similaire
+pour obtenir l'information sur les valeurs des \minref{registre}s et autres
+entit\'es de \TeX.
+\example
+[{\tt \meaning\eject}] [\meaning\tenrm] [\meaning Y]
+|
+\produces
+[{\tt \meaning\eject}] [\meaning\tenrm] [\meaning Y]
+\endexample\enddesc
+
+\begindesc
+\cts string {\<s\'equence de contr\^ole>}
+\explain
+^^{s\'equences de contr\^ole//convertir en chaines}
+Cette commande produit
+les caract\`eres qui forment le nom \<s\'equence de contr\^ole>,
+en incluant le \minref{caract\`ere d'\'echappement}.
+Le caract\`ere d'\'echap\-pement est repr\'esent\'e par la valeur courante de
+^|\escapechar|.
+^^{caract\`ere d'\'echappement//repr\'esent\'e par \b\tt\\escapechar\e}
+\TeX\ donne les caract\`eres dans la liste d'un code de cat\'egorie de $12$ (outre).
+
+Vous pouvez proc\'eder \`a l'op\'eration inverse avec
+la commande ^|\csname| (\xref \csname),
+qui transforme une chaine en une s\'equence de contr\^ole.
+\example
+the control sequence {\tt \string\bigbreak}
+|
+\produces
+the control sequence {\tt \string\bigbreak}
+\endexample\enddesc
+
+\begindesc
+\cts escapechar {\param{nombre}}
+\explain
+Ce param\`etre sp\'ecifie le code \ascii\ \minrefs{\ascii} du
+caract\`ere que \TeX\ utilise pour repr\'esenter le \minref{caract\`ere d'\'echappement}
+^^{caract\`ere d'\'echappement//repr\'esent\'e par \b\tt\\escapechar\e}
+quand il
+convertit un nom de s\'equence de contr\^ole en une s\'equence de tokens de caract\`ere.
+Cette conversion \`a lieu quand vous utilisez la commande |\string| et aussi quand
+\TeX\ produit des messages de diagnostic. La valeur par d\'efaut du caract\`ere
+d'\'echappement est $92$, la code de caract\`ere {\ascii} pour un ^{backslash}.
+Si |\escapechar| n'est pas dans la fourchette $0$--$255$,
+\TeX\ n'inclut pas de caract\`ere d'\'echappement dans le r\'esultat de la conversion.
+\example
+\escapechar = `!!
+the control sequence {\tt \string\bigbreak}
+|
+\produces
+\escapechar = `!
+the control sequence {\tt \string\bigbreak}
+\endexample
+\enddesc
+
+\begindesc
+\cts fontname {\<police>}
+\explain
+^^{polices//noms de}
+Cette commande produit le nom de fichier
+pour la \<police>. Le nom de fichier est le \<font\-name> qui a \'et\'e utilis\'e
+pour d\'efinir \<police>.
+\example
+\font\myfive=cmr5 [\fontname\myfive]
+|
+\produces
+\font\myfive=cmr5 [\fontname\myfive]
+\endexample
+\enddesc
+
+
+%==========================================================================
+\section {Groupement}
+
+\begindesc
+\bix^^{groupes}
+%
+\cts begingroup {}
+\cts endgroup {}
+\explain
+Ces deux commandes d\'ebutent et terminent un \minref{groupe}.
+Un |\begingroup| ne s'accorde pas avec une accolade droite,
+ni un |\endgroup| avec une accolade gauche.
+
+\TeX\ traite |\begingroup| et |\endgroup| comme tout autre
+\minref{s\'equence de contr\^ole} quand il scanne son entr\'ee. En particulier,
+vous pouvez d\'efinir une \minref{macro} qui contient un |\begingroup|
+mais pas de |\endgroup|, et inversement.
+^^{macros//utiliser \b\tt\\begingroup\e\ et \b\tt\\endgroup\e\ dans des}
+Cette technique est souvent pratique
+quand vous d\'efinissez des paires de macros, une qui \'etablit
+un environnement et l'autre qui termine cet environnement.
+Vous ne pouvez, de plus, pas utiliser |\begingroup| et |\endgroup| comme
+substituts pour des
+accolades autres que celles qui entourent un groupe.
+\example
+\def\a{One \begingroup \it two }
+\def\enda{\endgroup four}
+\a three \enda
+|
+\produces
+\def\a{One \begingroup \it two }
+\def\enda{\endgroup four}
+\a three \enda
+\endexample
+\enddesc
+
+\begindesc
+\makecolumns 4/2:
+\easy%
+\ctsact { \xrdef{@lbrace}
+\cts bgroup {}
+\ctsact } \xrdef{@rbrace}
+\cts egroup {}
+\explain
+Les accolades gauches et droites sont des commandes qui d\'ebutent et terminent un
+\minref{groupe}.
+Les \minref{s\'equences de contr\^ole} |\bgroup| et |\egroup| sont \'equivalentes
+\`a `|{|' et `|}|', sauf que
+\TeX\ traite |\bgroup| et |\egroup| comme tout autre
+\minref{s\'equence de contr\^ole} quand il scanne son entr\'ee.
+
+|\bgroup| et |\egroup| peuvent \^etre pratiques quand vous
+d\'efinissez des paires de macros, une dans laquelle
+d\'ebute une construction d\'elimit\'ee par accolade (pas n\'ecessairement un groupe)
+et l'autre dans laquelle ce termine cette construction.
+^^{macros//utiliser \b\tt\\bgroup\e\ et \b\tt\\egroup\e\ dans des}
+Vous ne pouvez pas d\'efinir de telles macros en utilisant des accolades ordinaires---si vous essayez,
+vos d\'efinitions de macro contiendront des accolades non appair\'ees
+et seront de ce fait inacceptables par \TeX.
+Normalement vous ne devez utilisez ces commandes que quand vous ne pouvez utiliser
+d'accolades ordinaires.
+
+\example
+Braces define the {\it boundaries\/} of a group.
+|
+\produces
+Braces define the {\it boundaries\/} of a group.
+\nextexample
+\def\a{One \vbox\bgroup}
+% You couldn't use { instead of \bgroup here because
+% TeX would not recognize the end of the macro
+\def\enda#1{{#1\egroup} two}
+% This one is a little tricky, since the \egroup actually
+% matches a left brace and the following right brace
+% matches the \bgroup. But it works!!
+\a \enda{\hrule width 1in}
+|
+\produces
+\def\a{One \vbox\bgroup}
+% You couldn't use { instead of \bgroup here because
+% TeX would not recognize the end of the macro
+\def\enda#1{{#1\egroup} two}
+% This one is a little tricky, since the \egroup actually
+% matches a left brace and the following right brace
+% matches the \bgroup. But it works!
+\a \enda{\hrule width 1in}
+\endexample
+\enddesc
+
+\begindesc
+\cts global {}
+\explain
+Cette commande rend la d\'efinition
+ou l'\minref{assignement} suivant \minref{global} \seeconcept{global}
+pour qu'il devienne effectif ind\'ependamment des fronti\`eres du \minref{groupe}.
+Vous pouvez appliquer un pr\'efix |\global| \`a toute sorte de d\'efinition
+ou \minref{assignement},
+en incluant une d\'efinition de \minref{macro} ou un assignement de \minref{registre}.
+\example
+{\global\let\la = \leftarrow}
+$a \la b$
+|
+\produces
+% for safety's sake we fake this one!
+\let\la = \leftarrow
+$a \la b$
+\endexample
+\enddesc
+
+\begindesc
+\cts globaldefs {\param{nombre}}
+\explain
+Ce param\`etre contr\^ole si \TeX\ prend ou non des d\'efinitions
+et autres assignements comme \'etant
+\minref{globaux}~:
+\ulist
+\li Si |\globaldefs| est \`a z\'ero (comme il l'est par d\'efaut), une d\'efinition est globale
+si et seulement si il est pr\'ec\'ed\'e par |\global| soit explicitement soit implicitement.
+(Les commandes ^|\gdef| et ^|\xdef| (\xref\gdef) ont un pr\'efixe
+|\global| implicite).
+\li Si |\globaldefs| est sup\'erieur \`a z\'ero, tout assignement et
+d\'efinition est implicitement pr\'efix\'e par ^|\global|.
+\li Si |\globaldefs| est inf\'erieur \`a z\'ero, tout pr\'efixe ^|\global| est ignor\'e.
+\endulist
+\enddesc
+
+\begindesc
+\margin{Order of {\tt\\aftergroup} and {\tt\\afterassignment} changed.}
+\cts aftergroup {\<token>}
+\explain
+Quand \TeX\ rencontre cette commande dans une entr\'ee,
+il sauve \<token>.
+Apr\`es la fin du \minref{groupe} courant,
+il r\'eins\`ere \<token> dans l'entr\'ee et le d\'eveloppe.
+Si un groupe contient plusieurs |\aftergroup|s, les tokens correspondants
+sont \emph{tous} ins\'er\'es suivant la fin du groupe, dans l'ordre
+dans lequel ils apparaissent \`a l'origine.
+
+L'exemple qui suit vous montre comment vous pouvez utiliser |\after!-group|
+pour diff\'erer le traitement d'un token que vous avez g\'en\'er\'e dans un
+\minref{test conditionnel}.
+\example
+\def\neg{negative} \def\pos{positive}
+% These definitions are needed because \aftergroup applies
+% to a single token, not to a sequence of tokens or even
+% to a brace-delimited text.
+\def\arith#1{Is $#1>0$? \begingroup
+ \ifnum #1>-1 Yes\aftergroup\pos
+ \else No\aftergroup\neg\fi
+ , it's \endgroup. }
+\arith 2
+\arith {-1}
+|
+\produces
+\def\neg{negative} \def\pos{positive}
+% These definitions are needed because \aftergroup applies
+% to a single token, not a sequence of tokens or even
+% a group.
+\def\arith#1{Is $#1>0$? \begingroup
+ \ifnum #1>-1 Yes\aftergroup\pos
+ \else No\aftergroup\neg\fi
+ , it's \endgroup. }
+\arith 2
+\arith {-1}
+\endexample
+\eix^^{groupes}
+\enddesc
+
+\begindesc
+\cts afterassignment {\<token>}
+\explain
+Quand \TeX\ rencontre cette commande il sauve \<token> dans un endroit sp\'ecial.
+Apr\`es qu'il ait ex\'ecut\'e l'\minref{assignment} suivant, il ins\`ere
+\<token> dans l'entr\'ee et le d\'eveloppe. Si vous appelez |\afterassignment|
+plus d'une fois avant un assignement, seul le dernier appel a un effet.
+Une utilisation de |\afterassignment|
+est dans l'\'ecriture de \minref{macro}s pour des commandes devant \^etre \'ecrites
+sous la forme d'assignements, comme dans l'exemple suivant.
+
+Voir la \knuth{page~279}{325} pour un description pr\'ecise
+du fonctionnement d'|\afterassignment|.
+\example
+\def\setme{\afterassignment\setmeA\count255}
+\def\setmeA{$\number\count255\advance\count255 by 10
+ +10=\number\count255$}
+Some arithmetic: \setme = 27
+% After expanding \setme, TeX sets \count255 to 27 and
+% then calls \setmeA.
+|
+\produces
+\def\setme{\afterassignment\setmeA\count255}
+\def\setmeA{$\number\count255\advance\count255 by 10
++10=\number\count255$}
+Some arithmetic: \setme = 27
+% After expanding \setme, TeX sets \count255 to 27 and
+% then calls \setmeA.
+\endexample
+\enddesc
+
+
+%==========================================================================
+\section {Macros}
+
+%==========================================================================
+\subsection {D\'efinir des macros}
+
+\begindesc
+\bix^^{macros}
+\bix^^{macros//d\'efinir des}
+\xrdef{mac1}% begin the section on macros
+%
+\cts def {\<s\'equence de contr\^ole> \<texte de param\`etre> \rqbraces{\<texte de remplacement>}}
+\explain
+Cette commande d\'efinit \<s\'equence de contr\^ole> comme une \minref{macro} avec les
+\<texte de param\`etre> et \<texte de remplacement> sp\'ecifi\'es.
+Voir \xrefpg{macro} pour une explication compl\`ete sur la fa\c con d'\'ecrire une
+d\'efinition de macro.
+\example
+\def\add#1+#2=?{#1+#2&=
+ \count255=#1 \advance\count255 by #2 \number\count255\cr}
+$$\eqalign{
+ \add 27+9=?
+ \add -5+-8=?}$$
+|
+\dproduces
+\def\add#1+#2=?{#1+#2&=
+ \count255=#1 \advance\count255 by #2 \number\count255\cr}
+$$\eqalign{
+ \add 27+9=?
+ \add -5+-8=?}$$
+\endexample
+\enddesc
+
+\begindesc
+\cts edef {\<s\'equence de contr\^ole> \<texte de param\`etre> \rqbraces{\<texte de remplacement>}}
+\explain
+Cette commande d\'efinit une macro de la m\^eme mani\`ere g\'en\'erale que |\def|.
+La diff\'erence est que \TeX\ d\'eveloppe le \<texte de remplacement>
+d'un |\edef| imm\'ediatement (mais sans rien ex\'ecuter).
+Ainsi toutes d\'efini\-tions du \<texte de remplacement> sont d\'evelopp\'ees, mais
+des assignements et commandes qui produisent des choses telles que bo\^\i tes et
+des ressorts sont laiss\'es tels quels. Par exemple, une commande |\hbox| dans
+le \<texte de remplacement> d'un |\edef| reste comme une commande et n'est pas
+transform\'ee en une bo\^\i te quand \TeX\ ex\'ecute la d\'efinition.
+Il n'est pas toujours \'evident de savoir ce qui est d\'evelopp\'e et ce qui ne l'est pas, mais vous
+trouverez une liste compl\`ete des s\'equences de contr\^ole d\'eveloppables sur les
+\knuth{pages~212--215}{249--252}.
+
+Vous pouvez inhiber le d\'eveloppement d'une s\'equence de contr\^ole qui devrait
+\^etre d\'evelopp\'ee en utilisant |\no!-expand| (\xref\noexpand). ^^|\noexpand|
+Vous pouvez diff\'erer le d\'eveloppement d'une s\'equence de contr\^ole en utilisant la commande
+^|\expandafter| (\xref\expandafter).
+
+Les commandes |\write|, |\message|, |\errmessage|, |\wlog| et |\csname|
+d\'eveloppent leurs
+listes de token en utilisant les m\^eme r\`egles que |\edef| utilise pour d\'evelopper son
+texte de remplacement.
+^^|\write//d\'evelopp\'e par les r\`egles d'{\tt\\edef}|
+^^|\message//d\'evelopp\'e par les r\`egles d'{\tt\\edef}|
+^^|\errmessage//d\'evelopp\'e par les r\`egles d'{\tt\\edef}|
+^^|\wlog//d\'evelopp\'e par les r\`egles d'{\tt\\edef}|
+^^|\csname//d\'evelopp\'e par les r\`egles d'{\tt\\edef}|
+\example
+\def\aa{xy} \count255 = 1
+\edef\bb{w\ifnum \count255 > 0\aa\fi z}
+% equivalent to \def\bb{wxyz}
+\def\aa{} \count255 = 0 % leaves \bb unaffected
+\bb
+|
+\produces
+\def\aa{xy} \count255 = 1
+\edef\bb{w\ifnum \count255 > 0\aa\fi z}
+% equivalent to \def\bb{wxyz}
+\def\aa{} \count255 = 0 % leaves \bb unaffected
+\bb
+\endexample
+\enddesc
+
+\begindesc
+\cts gdef {\<s\'equence de contr\^ole> \<texte de param\`etre> \rqbraces{\<texte de remplacement>}}
+\explain
+Cette commande est \'equivalente \`a |\global\def|.
+\enddesc
+
+\begindesc
+\cts xdef {\<s\'equence de contr\^ole> \<texte de param\`etre> \rqbraces{\<texte de remplacement>}}
+\explain
+Cette commande est \'equivalente \`a |\global\edef|.
+\enddesc
+
+\begindesc
+\cts long {}
+\explain
+Cette commande est utilis\'ee comme pr\'efixe d'une d\'efinition de \minref{macro}.
+Elle dit \`a \TeX\ que les arguments de la macro peuvent inclure
+des tokens |\par| (\xref{\@par}), qui indiquent normalement la fin d'un paragraphe.
+^^|\par//dans des arguments de macro|
+Si \TeX\
+essaye de d\'evelopper une macro d\'efinie sans |\long| et qu'un des arguments
+de la macro comprend un token |\par|,
+\TeX\ se plaindra par un ``runaway argument''. Le but
+de ce comportement est de vous fournir des protections contre des arguments de
+macro non termin\'es.
+|\long| vous donne un moyen d'outrepasser la protection.
+\example
+\long\def\aa#1{\par\hrule\smallskip#1\par\smallskip\hrule}
+\aa{This is the first line.\par
+This is the second line.}
+% without \long, TeX would complain
+|
+\produces
+\medskip
+\long\def\aa#1{\par\hrule\smallskip#1\par\smallskip\hrule}
+\aa{This is the first line.\par
+This is the second line.}
+% without \long, TeX would complain
+\endexample
+\enddesc
+
+\begindesc
+\cts outer {}
+\explain
+\null ^^{outer}
+Cette commande est utilis\'ee comme pr\'efixe d'une d\'efinition de \minref{macro}.
+Elle dit \`a \TeX\ que la macro est externe (\xref{outer})
+et ne peut pas \^etre utilis\'ee dans certains contextes.
+Si la macro est utilis\'ee dans un contexte interdit, \TeX\ se plaindra.
+
+\example
+\outer\def\chapterhead#1{%
+ \eject\topglue 2in \centerline{\bf #1}\bigskip}
+% Using \chapterhead in a forbidden context causes an
+% error message.
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts chardef {\<s\'equence de contr\^ole>=\<charcode>}
+\explain
+^^{caract\`eres//d\'efinis par \b\tt\\chardef\e}
+Cette commande d\'efinit \<s\'equence de contr\^ole>
+comme \'etant \<charcode>.
+Bien que |\chardef| soit plus souvent utilis\'ee pour d\'efinir des caract\`eres, vous pouvez aussi
+l'utiliser pour donner un nom \`a un nombre dans la fourchette $0$--$255$ m\^eme
+quand vous n'utilisez pas ce nombre comme un code de caract\`ere.
+\example
+\chardef\percent = `\% 21\percent, {\it 19\percent}
+% Get the percent character in roman and in italic
+|
+\produces
+\chardef\percent = `\%
+21\percent, {\it 19\percent}
+% You'll get the percent character in roman and in italic
+\endexample
+\enddesc
+
+\begindesc
+^^{caract\`eres math\'ematiques}
+^^{mathcodes}
+\cts mathchardef {\<s\'equence de contr\^ole>=\<mathcode>}
+\explain
+Cette commande d\'efinit la \<s\'equence de contr\^ole> comme un caract\`ere math\'ematique
+avec le \minrefs{mathcode}\<mathcode> donn\'e.
+La s\'equence de contr\^ole ne sera l\'egale qu'en mode math\'ematique.
+\example
+\mathchardef\alphachar = "010B % As in plain TeX.
+$\alphachar$
+|
+\produces
+\mathchardef\alphachar = "010B % As in plain TeX.
+$\alphachar$
+\endexample
+\eix^^{macros//d\'efinir des}
+\enddesc
+
+%==========================================================================
+\subsection {Autre d\'efinitions}
+
+\begindesc
+\cts let {\<s\'equence de contr\^ole> = \<token>}
+\explain
+^^{s\'equences de contr\^ole//d\'efinies avec \b\tt\\let\e}
+\minrefs{token}
+Cette commande fait que
+\<s\'equence de contr\^ole> prend la signification actuelle de \<token>.
+M\^eme si vous red\'efinissez \<token> plus tard, la signification de \<s\'equence de contr\^ole>
+ne changera pas. Bien que \<token> soit le plus souvent une s\'equence de contr\^ole,
+il peut aussi \^etre un token de \minref{caract\`ere}.
+\enddesc
+
+\begindesc
+\cts futurelet {\<s\'equence de contr\^ole> \<token$_1$> \<token$_2$>}
+\explain
+Cette commande dit \`a \TeX\ de donner \`a \<token$_2$> la signification de
+\<s\'equence de contr\^ole> (comme elle le serait avec |\let|) et ensuite
+d'ex\'ecu\-ter \<token$_1$> et \<token$_2$> normalement.
+|\futurelet| est pratique \`a la fin d'une d\'efinition de macro
+parce qu'elle vous donne un moyen de regarder au-del\`a du token que \TeX\
+est en train d'ex\'ecuter avant de continuer.
+\example
+\def\predict#1{\toks0={#1}\futurelet\next\printer}
+% \next will acquire the punctuation mark after the
+% argument to \predict
+\def\printer#1{A \punc\ lies ahead for \the\toks0. }
+\def\punc{%
+ \ifx\next;semicolon\else
+ \ifx\next,comma\else
+ ``\next''\fi\fi}
+\predict{March}; \predict{April}, \predict{July}/
+|
+\produces
+\def\predict#1{\toks0={#1}\futurelet\next\printer}
+\def\printer#1{A \punc\ lies ahead for \the\toks0. }
+\def\punc{%
+ \ifx\next;semicolon\else
+ \ifx\next,comma\else
+ ``\next''\fi\fi
+ }
+\predict{March};
+\predict{April},
+\predict{July}/
+\endexample
+\enddesc
+
+\begindesc
+\cts csname {\<liste de token> {\bt \\endcsname}}
+\xrdef{\endcsname}
+\explain
+Cette commande produit une s\'equence de contr\^ole \`a partir de \<liste de token>.
+Elle procure un moyen de synth\'etiser des s\'equences de contr\^ole,
+en incluant celles que vous ne pouvez normalement pas \'ecrire.
+\<liste de token> peut elle-m\^eme inclure des s\'equences de contr\^ole~:
+elle est d\'eveloppable de la m\^eme mani\`ere que le texte de remplacement d'une
+d\'efinition |\edef| (\xref\edef).
+Si le d\'eveloppement final
+produit quelque chose qui n'est pas un caract\`ere, \TeX\ se plaindra.
+|\csname| transforme une liste de tokens en s\'equence de contr\^ole~;
+vous pouvez faire l'inverse avec ^|\string| \ctsref\string.
+\example
+\def\capTe{Te}
+This book purports to be about \csname\capTe X\endcsname.
+|
+\produces
+\def\capTe{Te}
+This book purports to be about \csname\capTe X\endcsname.
+\endexample
+\enddesc
+
+%==========================================================================
+\subsection {Contr\^oler le d\'eveloppement}
+
+\begindesc
+\bix^^{macros//contr\^oler leur d\'eveloppement}
+\cts expandafter {\<token$_1$> \<token$_2$>}
+\explain
+Cette commande dit \`a \TeX\ de d\'evelopper \<token$_1$> en accord avec ses r\`egles
+de d\'eveloppement de \minref{macro} \emph{apr\`es} avoir d\'evelopp\'e \<token$_2$>
+d'un niveau. C'est pratique quand \<token$_1$> est quelque chose comme `|{|'
+^^|{//avec {\tt\\expandafter}|
+ou ^|\string| qui inhibe les expansions de \<token$_2$>,
+mais que vous voulez d\'evelopper \<token$_2$> quand m\^eme.
+\example
+\def\aa{xyz}
+\tt % Use this font so `\' prints that way.
+[\string\aa] [\expandafter\string\aa]
+[\expandafter\string\csname TeX\endcsname]
+|
+\produces
+\def\aa{xyz}
+\tt
+[\string\aa] [\expandafter\string\aa]
+[\expandafter\string\csname TeX\endcsname]
+\endexample
+\enddesc
+
+\begindesc
+\cts noexpand {\<token>}
+\explain
+Cette commande demande \`a \TeX\ de
+supprimer le d\'eveloppement de \<token> si \<token> est une
+\minref{s\'equence de contr\^ole} qui peut \^etre d\'evelopp\'ee.
+Si \<token> ne peut pas \^etre d\'evelopp\'ee, c'est-\`a-dire, si c'est une lettre,
+\TeX\ agit comme si le |\noexpand| n'\'etait pas l\`a
+et ex\'ecute \<token> normalement.
+En d'autres mots le d\'eveloppement de `|\noexpand|\<token>'
+est simplement \<token> quoi que \<token> devienne.
+\example
+\def\bunny{rabbit}
+\edef\magic{Pull the \noexpand\bunny\ out of the hat!! }
+% Without \noexpand, \bunny would always be replaced
+% by `rabbit'
+\let\oldbunny=\bunny \def\bunny{lagomorph} \magic
+\let\bunny=\oldbunny \magic
+|
+\produces
+\def\bunny{rabbit}
+\edef\magic{Pull the \noexpand\bunny\ out of the hat! }
+% Without \noexpand, \bunny would always be replaced
+% by `rabbit'
+\let\oldbunny=\bunny \def\bunny{lagomorph} \magic
+\let\bunny=\oldbunny \magic
+\endexample
+\enddesc
+
+\begindesc
+\cts the {\<token>}
+\explain
+Cette commande se d\'eveloppe g\'en\'eralement en une liste de tokens de \minref{caract\`ere}s
+que repr\'esente \<token>. \<token> peut \^etre parmi ce qui suit~:
+
+\ulist\compact
+\li un \minref{param\`etre} \TeX, par exemple, |\parindent| ou |\deadcycles|
+^^{param\`etres//utiliser \b\tt\\the\e\ avec}
+\li un \minref{registre}, par exemple, |\count0|
+^^{registres//avec \b\tt\\the\e}
+\margin{Item for special registers removed}
+\li un code associ\'e avec un caract\`ere entr\'e, par exemple, |\catcode`(|
+\li un param\`etre de police, par exemple, |\fontdimen3\sevenbf|
+\li le ^|\hyphenchar| ou le ^|\skewchar| d'une police,
+|\skewchar\teni|, par exemple
+\li ^|\lastpenalty|, ^|\lastskip| ou ^|\lastkern| (valeurs d\'eriv\'ees du
+der\-nier \'el\'ement d'une liste horizontale \minrefs{horizontal list}
+ou \minref{liste verticale} courante)
+\li une s\'equence de contr\^ole d\'efinie par ^|\chardef| ou
+^|\mathchardef|
+\endulist
+
+\noindent
+De plus, |\the| peut d\'evelopper des tokens non-caract\`ere dans les deux cas
+suivants~:
+\ulist\compact
+\li |\the| \<police>, qui d\'eveloppe la s\'equence de contr\^ole la plus r\'ecem\-ment
+d\'efinie qui s\'electionne la m\^eme police que la s\'equence de contr\^o\-le \<police>
+\li |\the| \<variable de token>, qui d\'eveloppe une copie de la valeur de la
+variable, par exemple, |\the\everypar|
+\endulist
+
+Voir les \knuth{pages~214--215}{251} pour une description plus d\'etaill\'ee de ce que
+|\the| fait selon les cas.
+\example
+The vertical size is currently \the\vsize.
+The category code of `(' is \the\catcode `(.
+|
+\produces
+The vertical size is currently \the\vsize.
+The category code of `(' is \the\catcode `(.
+\endexample
+\enddesc
+
+{\tighten
+\see \headcit{Convertir l'information en tokens}{convert} ainsi que la commande
+|\showthe| (\xref\showthe).
+\par}
+
+\eix^^{macros//contr\^oler leur d\'eveloppement}
+
+%==========================================================================
+\subsection {Tests conditionnels}
+
+\begindesc
+\xrdef{conds}
+\bix^^{tests conditionnels}
+%
+\ctspecial if {\<token$_1$> \<token$_2$>}\ctsxrdef{@if}
+\explain
+{\emergencystretch=1em
+Cette commande teste si \<token$_1$> et \<token$_2$>
+ont le m\^eme code de \minref{caract\`ere}, ind\'ependamment de leurs
+\minref{codes de cat\'egorie}.
+Avant d'ex\'ecuter le test, \TeX\ d\'eveloppe les tokens suivant le |\if|
+jusqu'\`a ce qu'il obtienne deux tokens qui ne peuvent se d\'evelopper plus.
+Ces deux tokens deviennent \<token$_1$> et \<token$_2$>.
+Le d\'eveloppement
+inclut le remplacement d'une s\'equence de contr\^ole |\let| \'egale \`a un token de caract\`ere
+par ce token de caract\`ere.
+Une \minref{s\'equence de contr\^ole} qui ne peut plus se d\'evelopper est
+consid\'er\'ee comme ayant un code de caract\`ere $256$.\par}
+\example
+\def\first{abc}
+\if\first true\else false\fi;
+% ``c'' is left over from the expansion of \first.
+% It lands in the unexecuted ``true'' part.
+\if a\first\ true\else false\fi;
+% Here ``bc'' is left over from the expansion of \first
+\if \hbox\relax true\else false\fi
+% Unexpandable control sequences test equal with ``if''
+|
+\produces
+\def\first{abc}
+\if\first true\else false\fi;
+% ``c'' is left over from the expansion of \first.
+% It lands in the unexecuted ``true'' part.
+\if a\first\ true\else false\fi;
+% Here ``bc'' is left over from the expansion of \first
+\if \hbox\relax true\else false\fi
+% Unexpandable control sequences test equal with ``if''
+\endexample
+\enddesc
+
+\begindesc
+\ctspecial ifcat {\<token$_1$> \<token$_2$>}\ctsxrdef{@ifcat}
+\explain
+^^{codes de cat\'egorie//tester}
+Cette commande teste si \<token$_1$> et \<token$_2$>
+ont le m\^eme \minref{code de cat\'ego\-rie}.
+Avant d'ex\'ecuter le test, \TeX\ d\'eveloppe les tokens suivant le |\if|
+jusqu'a ce qu'il obtienne deux tokens qui ne puissent plus se d\'evelopper.
+Ces deux tokens deviennent \<token$_1$> et \<token$_2$>.
+Le d\'eveloppement
+inclut le remplacement d'une s\'equence de contr\^ole |\let| \'egale \`a un token de caract\`ere
+par ce token de caract\`ere.
+Une \minref{s\'equence de contr\^ole} qui ne peut plus se d\'evelopper est
+consid\'er\'ee comme ayant un code de caract\`ere $16$.
+\example
+\ifcat axtrue\else false\fi;
+\ifcat ]}true\else false\fi;
+\ifcat \hbox\day true\else false\fi;
+\def\first{12345}
+\ifcat (\first true\else false\fi
+% ``2345'' lands in the true branch of the test
+|
+\produces
+\ifcat axtrue\else false\fi;
+\ifcat ]}true\else false\fi;
+\ifcat \hbox\day true\else false\fi;
+\def\first{12345}
+\ifcat (\first true\else false\fi
+% ``2345'' lands in the true branch of the test
+\endexample
+\enddesc
+
+\begindesc
+\ctspecial ifx {\<token$_1$> \<token$_2$>}\ctsxrdef{@ifx}
+\explain
+Cette commande teste si \<token$_1$> et \<token$_2$> s'accordent.
+Contrairement \`a |\if| et |\ifcat|, |\ifx| \emph{ne} d\'eveloppe \emph{pas} les tokens
+suivant |\ifx|, donc \<token$_1$> et \<token$_2$> sont les deux
+tokens imm\'ediatement apr\`es |\ifx|.
+Il y a trois cas~:
+\olist
+\li Si un token est une \minref{macro} et pas l'autre,
+les tokens ne s'accordent pas.
+\li Si aucun token n'est une macro, Les tokens s'accordent si~:
+\olist
+\li les deux tokens sont des caract\`eres (ou des s\'equences de contr\^ole d\'ecrivant des caract\`eres) et
+que leurs codes de \minref{caract\`ere} et de \minref{cat\'egorie} s'accordent, ou
+\li Les deux tokens font r\'ef\'erence \`a la m\^eme commande \TeX, police, etc.
+\endolist
+\li Si les deux tokens sont des macros, les tokens s'accordent si~:
+\olist\compact
+\li leurs d\'eveloppements de ``premier niveau'', c'est-\`a-dire,
+leurs textes de remplacement, sont identiques, et
+\li Ils ont le m\^eme statut concernant ^|\long| (\xref\long)
+et ^|\outer| (\xref\outer).
+\endolist
+Notez en particulier que \emph{deux s\'equences de contr\^ole non d\'efinies
+s'accordent}.
+\endolist
+\noindent
+Ce teste est g\'en\'eralement plus utile que |\if|.
+\example
+\ifx\alice\rabbit true\else false\fi;
+% true since neither \rabbit nor \alice is defined
+\def\a{a}%
+\ifx a\a true\else false\fi;
+% false since one token is a macro and the other isn't
+\def\first{\a}\def\second{\aa}\def\aa{a}%
+\ifx \first\second true\else false\fi;
+% false since top level expansions aren't the same
+\def\third#1:{(#1)}\def\fourth#1?{(#1)}%
+\ifx\third\fourth true\else false\fi
+% false since parameter texts differ
+|
+\produces
+\ifx\alice\rabbit true\else false\fi;
+% true since neither \rabbit nor \alice is defined
+\def\a{a}%
+\ifx a\a true\else false\fi;
+% false since one token is a macro and the other isn't
+\def\first{\a}\def\second{\aa}\def\aa{a}%
+\ifx \first\second true\else false\fi;
+% false since top level expansions aren't the same
+\def\third#1:{(#1)}\def\fourth#1?{(#1)}%
+\ifx\third\fourth true\else false\fi
+% false since parameter texts differ
+\endexample
+\enddesc
+
+\begindesc
+\ctspecial ifnum {\<number$_1$> \<relation> \<number$_2$>}\ctsxrdef{@ifnum}
+\explain
+^^{nombres//comparer}
+Cette commande teste si \<number$_1$> et \<number$_2$>
+satisfont \<relation>, qui peut \^etre soit `|<|', `|=|' ou `|>|'.
+Les nombres peuvent \^etre des constantes telles que |127|, des registres de compteur tels que
+|\pageno| ou |\count22| ou des param\`etres num\'eriques tels que |\hbadness|.
+Avant d'ex\'ecuter le test, \TeX\ d\'eveloppe les tokens suivant le |\ifnum|
+jusqu'a ce qu'il obtienne une s\'equence de tokens ayant la forme \<number$_1$>
+\<relation> \<number$_2$> suivi par un token
+qui ne peut \^etre une partie de \<number$_2$>.
+\example
+\count255 = 19 \ifnum \count255 > 12 true\else false\fi
+|
+\produces
+\count255 = 19 \ifnum \count255 > 12 true\else false\fi
+\endexample
+\enddesc
+
+\begindesc
+\ctspecial ifodd {\<nombre>}\ctsxrdef{@ifodd}
+\explain
+^^{nombres//tester la parit\'e}
+Cette commande teste si \<nombre> est impair.
+Avant d'ex\'ecuter le test, \TeX\ d\'eveloppe les tokens suivant le |\ifodd|
+jusqu'a ce qu'il obtienne une s\'equence de tokens ayant la forme \<nombre>,
+suivi par un token qui ne peut \^etre une partie de \<nombre>.
+\example
+\count255 = 19
+\ifodd 5 true\else false\fi
+|
+\produces
+\ifodd 5 true\else false\fi
+\endexample
+\enddesc
+
+\begindesc
+\ctspecial ifdim {\<dimen$_1$> \<relation> \<dimen$_2$>}\ctsxrdef{@ifdim}
+\explain
+^^{dimensions//comparer}
+Cette commande teste si \<dimen$_1$> et \<dimen$_2$>
+satisfont \<relation>, qui doit \^etre soit `|<|', `|=|' ou `|>|'.
+Les dimensions peuvent \^etre des constantes telles que |1in|, des registres de dimension
+tels que |\dimen6| ou des para\-m\`etres de dimension tels que |\parindent|.
+Avant d'ex\'ecuter le test, \TeX\ d\'eveloppe les tokens suivant le |\ifdim|
+jusqu'a ce qu'il obtienne une s\'equence de tokens ayant la forme
+\<dimen$_1$> \<relation> \<dimen$_2$>
+suivi par un token qui ne peut \^etre une partie de \<dimen$_2$>.
+
+\example
+\dimen0 = 1000pt \ifdim \dimen0 > 3in true\else false\fi
+|
+\produces
+\dimen0 = 1000pt \ifdim \dimen0 > 3in true\else false\fi
+\endexample
+\enddesc
+
+\begindesc
+\ctspecial ifhmode {}\ctsxrdef{@ifhmode}
+\ctspecial ifvmode {}\ctsxrdef{@ifvmode}
+\ctspecial ifmmode {}\ctsxrdef{@ifmmode}
+\ctspecial ifinner {}\ctsxrdef{@ifinner}
+\explain
+^^{mode horizontal//tester}
+^^{mode vertical//tester}
+^^{mode math\'ematique//tester}
+^^{mode restreint//tester}
+Ces commandes testent dans quel \minref{mode} est \TeX~:
+\ulist
+\li |\ifhmode| est vrai si \TeX\ est en mode horizontal ordinaire ou r\'eduit.
+\li |\ifvmode| est vrai si \TeX\ est en mode vertical ordinaire ou interne.
+\li |\ifmmode| est vrai si \TeX\ est en mode math\'ematique de texte ou d'affichage.
+\li |\ifinner| est vrai si \TeX\ est dans un mode ``interne''~:
+horizontal r\'eduit, vertical interne ou math\'ematique de texte.
+\endulist
+\example
+\def\modes{{\bf
+ \ifhmode
+ \ifinner IH\else H\fi
+ \else\ifvmode
+ \ifinner \hbox{IV}\else \hbox{V}\fi
+ \else\ifmmode \hbox{M}\else
+ error\fi\fi\fi}}
+Formula $\modes$; then \modes,
+ \hbox{next \modes\ and \vbox{\modes}}.
+\par\modes
+|
+\produces
+\def\modes{{\bf
+ \ifhmode
+ \ifinner IH\else H\fi
+ \else\ifvmode
+ \ifinner \hbox{IV}\fi
+ \else\ifmmode \hbox{M}\else
+ error\fi\fi\fi}}
+Formula $\modes$; then \modes,
+ \hbox{next \modes\ and \vbox{\modes}}.
+\par\noindent{\bf V} % sorry folks, we have to fake this one
+\endexample
+\enddesc
+
+\begindesc
+\ctspecial ifhbox {\<registre>}\ctsxrdef{@ifhbox}
+\ctspecial ifvbox {\<registre>}\ctsxrdef{@ifvbox}
+\ctspecial ifvoid {\<registre>}\ctsxrdef{@ifvoid}
+\explain
+^^{hbox//tester}
+^^{vbox//tester}
+^^{\boites//tester si elle est vide}
+Ces commandes testent le contenu du
+registre de bo\^\i te num\'ero \<reg\-ister>.
+Soit \<registre> \`a $n$. Alors~:
+\ulist
+\li |\ifhbox| est vrai si |\box|$\,n$ est une \minref{hbox}.
+\li |\ifvbox| est vrai si |\box|$\,n$ est une \minref{vbox}.
+\li |\ifvoid| est vrai si |\box|$\,n$ est vide, c'est-\`a-dire, ne contient pas
+de bo\^\i te.
+\endulist
+\example
+\setbox0 = \vbox{} % empty but not void
+\setbox1 = \hbox{a}
+\setbox2 = \box1 % makes box1 void
+\ifvbox0 true\else false\fi;
+\ifhbox2 true\else false\fi;
+\ifvoid1 true\else false\fi
+|
+\produces
+\setbox0 = \vbox{}
+\setbox1 = \hbox{a}
+\setbox2 = \box1 % empties box1
+\ifvbox0 true\else false\fi;
+\ifhbox2 true\else false\fi;
+\ifvoid1 true\else false\fi
+\endexample
+\enddesc
+
+\begindesc
+\ctspecial ifeof {\<nombre>}\ctsxrdef{@ifeof}
+\explain
+^^{fin de fichier, tester}
+\minrefs{file}
+Cette commande teste un flux d'entr\'ee de fin de fichier.
+Elle est vraie si le flux d'entr\'ee \<nombre> n'a pas \'et\'e ouvert,
+ou a \'et\'e ouvert et que le fichier associ\'e a \'et\'e enti\`erement lu
+(ou n'existe pas).
+\enddesc
+
+\begindesc
+\ctspecial ifcase
+{\<nombre>\<texte du cas$_0$> {\bt \\or }\<texte du cas$_1$> {\bt \\or}
+ $\ldots$ {\bt \\or} \<texte du cas$_n$>\hfil\break
+\hglue 3pc{\bt \\else} \<texte alternatif> {\bt \\fi}}
+\ctsxrdef{@ifcase}
+\ctsxrdef{@or}
+\explain
+^^{test de cas}
+Cette commande introduit un test avec des cas multiples num\'erot\'es.
+Si \<nom\-bre> a la valeur $k$, \TeX\ d\'eveloppera \<texte de cas$_k$> s'il
+existe et \<texte alternatif> autrement. Vous pouvez omettre le |\else|---%
+dans ce cas, \TeX\ ne d\'eveloppera rien si aucun des cas n'est satisfait.
+\example
+\def\whichday#1{\ifcase #1<day 0>\or Sunday\or Monday%
+ \or Tuesday\or Wednesday\or Thursday\or Friday%
+ \or Saturday\else Nonday\fi
+ \ is day \##1. }
+\whichday2 \whichday3 \whichday9
+|
+\produces
+\def\whichday#1{\ifcase #1<day 0>\or Sunday\or Monday%
+ \or Tuesday\or Wednesday\or Thursday\or Friday%
+ \or Saturday\else Nonday\fi
+ \ is day \##1. }
+\whichday2 \whichday3 \whichday9
+\endexample
+\enddesc
+
+\begindesc
+\ctspecial iftrue {}\ctsxrdef{@iftrue}
+\ctspecial iffalse {}\ctsxrdef{@iffalse}
+\explain
+Ces commandes sont \'equivalentes \`a des tests qui sont toujours vrai ou toujours
+faux. Le principal usage de ces commandes est de d\'efinir des macros qui gardent
+trace du r\'esultat d'un test.
+\example
+\def\isbigger{\let\bigger=\iftrue}
+\def\isnotbigger{\let\bigger=\iffalse}
+% These \let's MUST be buried in macros!! If they aren't,
+% TeX erroneously tries to match them with \fi.
+\def\test#1#2{\ifnum #1>#2 \isbigger\else\isnotbigger\fi}
+\test{3}{6}
+\bigger$3>6$\else$3\le6$\fi
+|
+\produces
+\def\isbigger{\let\bigger=\iftrue}
+\def\isnotbigger{\let\bigger=\iffalse}
+% These \let's MUST be buried in macros!
+% If they aren't, TeX erroneously tries to match them with \fi
+\def\test#1#2{\ifnum #1>#2 \isbigger\else\isnotbigger\fi}
+\test{3}{6}
+\bigger$3>6$\else$3\le6$\fi
+\endexample
+\enddesc
+
+\begindesc
+\ctspecial else {} \ctsxrdef{@else}
+\explain
+Cette commande introduit l'alternative ``faux'' d'un test conditionel.
+\enddesc
+
+\begindesc
+\ctspecial fi {} \ctsxrdef{@fi}
+\explain
+Cette commande termine le texte d'un test conditionel.
+\enddesc
+
+\begindesc
+\ctspecial newif {{\bt \\if}\<nom de test>}\ctsxrdef{@newif}
+\explain
+Cette commande nomme un trio de s\'equence de contr\^ole avec comme noms |\alpha!-true|,
+|\alphafalse|,
+et |\ifalpha|, o\`u |alpha| est \<test name>.
+Vous pouvez les utiliser pour d\'efinir vos propres tests en
+cr\'eant une variable logique qui enregistre des informations
+true\slash false:
+\ulist\compact
+\li |\alphatrue| met la variable logique |alpha| \`a vrai.
+\li |\alphafalse| met la variable logique |alpha| \`a faux
+\li |\ifalpha| est un test conditionnel qui est vrai si la variable logique
+|alpha| est vraie et faux autrement.
+\endulist
+La variable logique |alpha| n'existe pas r\'eellement, mais \TeX\ agit comme
+si elle l'\'etait. Apr\`es |\newif\ifalpha|, la variable logique est initialis\'ee
+\`a faux.
+
+|\newif| est un commande externe, donc vous ne pouvez l'utiliser dans une d\'efinition
+de macro.
+\example
+\newif\iflong \longtrue
+\iflong Rabbits have long ears.
+\else Rabbits don't have long ears.\fi
+|
+\produces
+\newif\iflong
+\longtrue
+\iflong Rabbits have long ears.\else Rabbits don't have long ears.\fi
+\endexample
+\eix^^{tests conditionnels}
+\enddesc
+
+
+%==========================================================================
+\subsection {Actions r\'ep\'et\'ees}
+
+{\def\test{{\bt \\if}$\Omega$}%
+\begindesc
+\bix^^{actions r\'ep\'et\'ees}
+\bix^^{boucles}
+\cts loop {$\alpha$ {\test} $\beta$ {\bt \\repeat}}
+\ctspecial repeat {}\ctsxrdef{@repeat}
+\explain
+Ces commandes procurent une construction de boucle pour \TeX.
+Ici, $\alpha$ et $\beta$ sont des s\'equences de commandes arbitraires
+et \test\ est un des tests conditionnels d\'ecrites dans
+\headcit{Tests conditionnels}{conds}.
+Le |\repeat| r\'ep\`ete le |\fi| correspondant au test,
+donc vous n'aurez pas besoin d'\'ecrire un |\fi| explicite pour terminer le test.
+Ni, malheureusement, associer un |\else| au test.
+Si vous voulez utiliser le test dans le sens oppos\'e, vous devez
+r\'earranger le test ou
+d\'efinir un test auxiliaire avec |\newif| (voir au-dessus) et utiliser ce
+test dans le sens que vous voulez (voir le second exemple ci-dessous).
+
+\TeX\ d\'eveloppe |\loop| comme suit~:
+\olist
+\li $\alpha$ est d\'evelopp\'e.
+\li {\test} est ex\'ecut\'e. Si le r\'esultat est faux, la boucle est termin\'ee.
+\li $\beta$ est d\'evelopp\'e.
+\li Le cycle est r\'ep\'et\'e.
+\endolist
+\example
+\count255 = 6
+\loop
+ \number\count255\
+ \ifnum\count255 > 0
+ \advance\count255 by -1
+\repeat
+|
+\produces
+\count255 = 6
+\loop
+ \number\count255\
+ \ifnum\count255 > 0
+ \advance\count255 by -1
+\repeat
+\nextexample
+\newif\ifnotdone % \newif uses \count255 in its definition
+\count255=6
+\loop
+ \number\count255\
+ \ifnum\count255 < 1 \notdonefalse\else\notdonetrue\fi
+ \ifnotdone
+ \advance\count255 by -1
+\repeat
+|
+\produces
+\newif\ifnotdone
+\count255=6
+\loop
+ \number\count255\
+ \ifnum\count255 < 1 \notdonefalse\else\notdonetrue\fi
+ \ifnotdone
+ \advance\count255 by -1
+\repeat
+%
+\eix^^{actions r\'ep\'et\'ees}
+\eix^^{boucles}
+%
+\endexample
+\enddesc
+} % end scope of definition of \test
+
+%==========================================================================
+\subsection {Ne rien faire}
+
+\begindesc
+\cts relax {}
+\explain
+Cette commande demande \`a \TeX\ de ne rien faire. C'est utile dans un contexte o\`u
+vous devez procurer une commande mais il n'y a rien que vous voulez que \TeX\ fasse.
+\example
+\def\medspace{\hskip 12pt\relax}
+% The \relax guards against the possibility that
+% The next tokens are `plus' or `minus'.
+|
+
+\endexample
+\enddesc
+
+\begindesc
+\cts empty {}
+\explain
+Cette commande se d\'eveloppe en aucun tokens du tout.
+Elle diff\`ere de |\relax| car elle dispara\^\i t apr\`es un d\'eveloppement de macro.
+%
+\xrdef{mac2}% end the section on macros
+\eix^^{macros}
+\enddesc
+
+%==========================================================================
+\section {Registres}
+
+%==========================================================================
+\subsection {Utiliser des registres}
+
+\begindesc
+\bix^^{registres}
+\makecolumns 11/2:
+\cts count {\<registre> {\bt =} \<nombre>}
+\cts dimen {\<registre> {\bt =} \<dimen>}
+\cts skip {\<registre> {\bt =} \<glue>}
+\cts muskip {\<registre> {\bt =} \<muglue>}
+\cts toks {\<registre> {\bt =} \<token variable>}
+\aux\cts toks {\<registre> {\bt =} \rqbraces{\<list. de tok.>}}
+\aux\cts count {\<registre>}
+\aux\cts dimen {\<registre>}
+\aux\cts skip {\<registre>}
+\aux\cts muskip {\<registre>}
+\aux\cts toks {\<registre>}
+\explain
+^^{assignements//de registres}
+Les six premi\`eres commandes list\'ees ici assignent quelque chose \`a un registre.
+Les |=| dans les assignations sont optionnels.
+Les cinq s\'equences de contr\^ole restantes ne sont pas de vraies commandes
+car elles n'apparais\-sent que comme partie d'un argument.
+Elles pr\'ecisent le contenu des registres sp\'ecifi\'es.
+Bien que vous ne puissiez utiliser ces s\'equences de contr\^ole elles-m\^eme comme commandes
+dans un texte, vous pouvez utili\-ser ^|\the| pour les convertir en texte
+et ainsi pouvoir composer leurs valeurs.
+
+Vous pouvez nommer et r\'eserver de nouveaux registres
+avec la commande ^|\newcount| et ses relatifs
+(\xref{\@newcount}).
+Utiliser ces commandes est un moyen s\^ur d'obtenir des registres qui
+ne sont pas cens\'es avoir d'usages conflictuels.
+
+^^{registres count}
+Un registre |\count| contient un entier, qui peut \^etre soit positif soit
+n\'egatif.
+Des entiers peuvent \^etre aussi grands que vous n'aurez probablement jamais besoin qu'ils soient.\footnote
+{Voici le seul exercice du livre~: trouvez le plus grand entier
+que \TeX\ acceptera.}
+\TeX\ utilise les registres compteur $0$--$9$ pour garder trace des
+num\'eros de page (voir la \knuth{page~119}{139}).
+|\count255| est le seul registre compteur possible pour une utilisation
+sans r\'eservation.
+\example
+\count255 = 17 \number\count255
+|
+\produces
+\count255 = 17 \number\count255
+\endexample
+
+\medskip\noindent
+^^{registre dimension}
+Un registre |\dimen| contient une dimension.
+Les registres de |\dimen0| \`a |\dimen255| sont possibles
+pour un brouillon.
+
+\example
+\dimen0 = 2.5in
+\hbox to \dimen0{$\Leftarrow$\hfil$\Rightarrow$}
+|
+\produces
+\dimen0 = 2.5in
+\hbox to \dimen0{$\Leftarrow$\hfil$\Rightarrow$}
+\doruler{\8\8\8}3{in}
+\endexample
+
+\medskip\noindent
+^^{registres skip}
+Un registre |\skip| contient les dimensions de ressort.
+Diff\'erent d'un registre |\dimen|, il
+enregistre un montant d'\'etirement et de r\'etr\'ecissement autant qu'une taille naturelle.
+Les registres de |\skip0| \`a |\skip9| et |\skip255| peuvent \^etre
+utilis\'es sans r\'eservation.
+
+\example
+\skip2 = 2in
+$\Rightarrow$\hskip \skip2 $\Leftarrow$
+|
+\produces
+\skip2 = 2in
+$\Rightarrow$\hskip \skip2 $\Leftarrow$\par
+\noindent\hphantom{$\Rightarrow$}\ruler{\8\8}2{in}
+\endexample
+
+\medskip\noindent
+^^{registres muskip}
+Un registre |\muskip| est comme un registre |\skip|,
+mais le ressort qu'il contient est toujours mesur\'ee en ^|mu|
+\seeconcept{unit\'e math\'ematique}.
+La taille d'un |mu| d\'epend de la police courante.
+Par exemple, elle est normalement un peu
+plus petite dans un exposant que dans un texte ordinaire.
+Les registres de |\muskip0| \`a |\muskip9| et |\muskip255| peuvent \^etre
+utilis\'es sans r\'eservation.
+
+\example
+\muskip0 = 24mu % An em and a half, no stretch or shrink.
+$\mathop{a \mskip\muskip0 b}\limits^{a \mskip\muskip0 b}$
+% Note the difference in spacing.
+|
+\produces
+\muskip0 = 24mu % an em and a half
+$\mathop{a \mskip\muskip0 b}\limits^{a \mskip\muskip0 b}$
+% Note the difference in spacing
+\endexample
+
+\medskip\noindent
+^^{registres token}
+Vous pouvez assigner soit un token variable
+(un registre ou un param\`etre) ou une liste de token
+\`a un registre |\toks|.
+Quand vous assignez une liste de token \`a un registre de token,
+les tokens de la liste de token \emph{ne} sont \emph{pas} d\'evelopp\'es.
+
+Une fois que les tokens d'une liste de token ont \'et\'e ins\'er\'es dans un texte
+en utilisant ^|\the|, ils sont
+d\'evelopp\'es comme des tokens qui seraient lus directement.
+Ils ont les codes de cat\'egorie qu'ils ont re\c cus quand \TeX\ les \`a vu
+une premi\`ere fois dans la~\hbox{source}.
+
+\example
+\toks0 = {the \oystereaters\ were at the seashore}
+% This assignment doesn't expand \oystereaters.
+\def\oystereaters{Walrus and Carpenter}
+\toks1 = \toks0
+% the same tokens are now in \toks0 and \toks1
+Alice inquired as to whether \the\toks1.
+|
+\produces
+\toks0 = {the \oystereaters\ were at the seashore}
+% This assignment doesn't expand \oystereaters
+\def\oystereaters{Walrus and Carpenter}
+\toks1 = \toks0
+% the same tokens are now in \toks0 and \toks1
+Alice inquired as to whether \the\toks1.
+\endexample
+\enddesc
+
+\begindesc
+\cts maxdimen {}
+\explain
+^^{dimensions//maximum}
+Cette s\'equence de contr\^ole d\'esigne une \<dimen> qui est la
+plus grande dimension acceptable par \TeX\ (environ 4,50 m\`etres).
+Ce n'est pas une vraie commande parce qu'elle ne peut appara\^\i tre
+que comme partie d'un argument d'une autre commande.
+\example
+\maxdepth = \maxdimen % Remove restrictions on \maxdepth.
+|
+\endexample
+\enddesc
+
+\see |\advance| (\xref\advance), |\multiply|,
+|\divide| (\xref\divide), |\set!-box|, |\box| (\xref\box).
+
+%==========================================================================
+\subsection {Nommer et r\'eserver des registres, etc.}
+
+\begindesc
+\bix^^{registres//r\'eserver}
+\makecolumns 11/2:
+\ctspecial newcount \ctsxrdef{@newcount}
+\ctspecial newdimen \ctsxrdef{@newdimen}
+\ctspecial newskip \ctsxrdef{@newskip}
+\ctspecial newmuskip \ctsxrdef{@newmuskip}
+\ctspecial newtoks \ctsxrdef{@newtoks}
+\ctspecial newbox \ctsxrdef{@newbox}
+\ctspecial newread \ctsxrdef{@newread}
+\ctspecial newwrite \ctsxrdef{@newwrite}
+\ctspecial newfam \ctsxrdef{@newfam}
+\ctspecial newinsert \ctsxrdef{@newinsert}
+\ctspecial newlanguage \ctsxrdef{@newlanguage}
+\explain
+Ces commandes
+r\'eservent et nomment une entit\'e du type indiqu\'e~:
+\ulist
+{\tolerance = 5000
+\fontdimen3\the\font = 2\fontdimen3\the\font % allow spaces to stretch more
+\li |\new!-count|, |\newdimen|, |\newskip|, |\new!-mu!-skip|, |\new!-toks|,
+et |\new!-box| r\'eservent chacun un \minref{registre} du type indiqu\'e.
+}
+^^{registres count//r\'eserv\'es par \b\tt\\newcount\e}
+^^{registres de dimension//r\'eserv\'es par \b\tt\\newdimen\e}
+^^{registres skip//r\'eserv\'es par \b\tt\\newskip\e}
+^^{registres muskip//r\'eserv\'es par \b\tt\\newmuskip\e}
+^^{registres token//r\'eserv\'es par \b\tt\\newtoks\e}
+^^{registres de \boite//r\'eserv\'es par \b\tt\\newbox\e}
+\li |\newread| et |\newwrite| r\'eservent un flot d'entr\'ee et
+de sortie \minrefs{input stream}\minrefs{output stream}
+respectivement.
+^^{flots d'entr\'ee//r\'eserv\'es par \b\tt\\newread\e}
+^^{flots de sortie//r\'eserv\'es par \b\tt\\newwrite\e}
+\li |\newfam| r\'eserve une \minref{famille} de police math\'ematique.
+^^{famille//r\'eserv\'ee par \b\tt\\newfam\e}
+\li |\newinsert| r\'eserve un caract\`ere d'insertion.
+(R\'eserver un caract\`ere d'insertion entra\^\i ne r\'eserver plusieurs registres diff\'erents.)
+^^{insertions//num\'eros r\'eserv\'es par \b\tt\\newinsert\e}
+\li |\newlanguage| r\'eserve un jeu de motifs de c\'esure.
+\endulist
+Vous devez utiliser ces commandes \`a chaque fois que vous avez besoin d'une
+de ces entit\'es, dans une r\'egion tr\`es locale,
+pour \'eviter des conflits de num\'erotation.
+
+Il y a une diff\'erence importante entre ces commandes~:
+\ulist
+\li Les s\'equences de contr\^ole d\'efinies par
+|\newcount|, |\newdimen|, |\newskip|, |\newmuskip| et |\newtoks|
+d\'esignent chacune une entit\'e du type appropri\'e.
+Par exemple, apr\`es la commande~:
+\csdisplay
+\newdimen\listdimen
+|
+la s\'equence de contr\^ole |\listdimen| peut \^etre utilis\'ee comme une dimension.
+\li Les s\'equences de contr\^ole d\'efinies par
+|\newbox|, |\newread|, |\new!-write|, |\newfam|, |\newinsert|
+et |\newlanguage| \'evaluent chacune
+le \emph{num\'ero} d'une entit\'e du type appropri\'e.
+Par exemple, apr\`es la commande~:
+\csdisplay
+\newbox\figbox
+|
+La s\'equence de contr\^ole |\figbox| doit \^etre utilis\'ee en conjonction avec
+une commande de type |\box|, par exemple~:
+\csdisplay
+\setbox\figbox = \vbox{!dots}
+|
+\endulist
+\enddesc
+
+\begindesc
+\cts countdef {\<s\'equence de contr\^ole> {\bt =} \<registre>}
+\cts dimendef {\<s\'equence de contr\^ole> {\bt =} \<registre>}
+\cts skipdef {\<s\'equence de contr\^ole> {\bt =} \<registre>}
+\cts muskipdef {\<s\'equence de contr\^ole> {\bt =} \<registre>}
+\cts toksdef {\<s\'equence de contr\^ole> {\bt =} \<registre>}
+\explain
+Ces commandes d\'efinissent \<s\'equence de contr\^ole> pour faire r\'ef\'erence au
+\minref{registre} de la cat\'egorie indiqu\'ee dont le num\'ero est \<registre>.
+Normalement vous devez utiliser les commandes du groupe pr\'ec\'edent
+(|\newcount|, etc.) en pr\'ef\'erence \`a ces commandes pour \'eviter
+des conflits de num\'ero. Les commandes du groupe pr\'ec\'edent sont
+d\'efinies en termes de commandes \hbox{de ce groupe}.
+\example
+\countdef\hatters = 19 % \hatters now refers to \count19
+\toksdef\hares = 200 % \hares now refers to \toks200
+|
+\endexample
+\enddesc
+
+\see |\newif| (\xref{\@newif}), |\newhelp| (\xref{\@newhelp}).
+\eix^^{registres//r\'eserver}
+
+%==========================================================================
+\subsection {Faire de l'arithm\'etique dans des registres}
+
+\begindesc
+\bix^^{arithm\'etique}
+\bix^^{registres//arithm\'etique dans des}
+%
+\cts advance {\<registre compteur> {\bt by} \<nombre>}
+\aux\cts advance {\<registre dimension> {\bt by} \<dimension>}
+\aux\cts advance {\<registre saut> {\bt by} \<ressort>}
+\aux\cts advance {\<registre muskip> {\bt by} \<muglue>}
+\explain
+Ces commandes ajoutent une quantit\'e compatible a un registre. Pour \<ressort>
+ou \<muglue> les trois composants (valeur naturelle, \'etirement et r\'etr\'ecissement)
+\minrefs{glue} sont ajout\'es.
+Toutes les quantit\'es peuvent \^etre n\'egatives.
+Pour ces calculs
+(et autres assignements en fait), \<ressort> peut \^etre converti en une
+\<dimension> en enlevant l'\'etirement et le r\'etr\'ecissement et une \<dimension>
+peut \^etre convertie en \<nombre> en prenant sa valeur en points d'\'echelle
+\seeconcept{dimension}.
+Vous pouvez omettre le mot |by| dans ces commandes---\TeX\ les comprendra quand
+m\^eme.
+\example
+\count0 = 18 \advance\count0 by -1 \number\count0\par
+\skip0 = .5in \advance\skip0 by 0in plus 1in % add stretch
+\hbox to 2in{a\hskip\skip0 b}
+|
+\produces
+\count0 = 18 \advance\count0 by -1 \number\count0\par
+\skip0 = .5in \advance\skip0 by 0in plus 1in % add stretch
+\hbox to 2in{a\hskip\skip0 b}
+\doruler{\8\8}2{in}
+\endexample
+\enddesc
+
+\begindesc
+\cts multiply {\<registre> {\bt by} \<nombre>}
+\cts divide {\<registre> {\bt by} \<nombre>}
+\explain
+Ces commandes multiplient et divisent la valeur de \<registre>
+par \<nombre> (qui peut \^etre n\'egatif).
+Le registre peut \^etre un registre ^|\count|, ^|\dimen|, ^|\skip|
+ou ^|\muskip|.
+Pour un registre ^|\skip| ou ^|\muskip| (\xref\skip),
+les trois composantes du \minref{ressort} du registre sont modifi\'es.
+Vous pouvez omettre le mot |by| dans ces commandes---\TeX\ les comprendra quand
+m\^eme.
+
+Vous pouvez aussi obtenir un multiple d'une \<dimension> en la pr\'ec\'edant par un \<nombre>
+\minrefs{number}
+ou une constante d\'ecimale, par exemple,
+|-2.5\dimen2|.
+Vous pouvez aussi utiliser cette notation pour des \<ressort>, mais attention---le r\'esultat
+est une \<dimension>, pas un \<ressort>.
+Ainsi |2\baselineskip| donne une \<dimension> qui est deux fois la taille naturelle
+de |\baselineskip|, sans \'etirement ni r\'etr\'ecissement.
+\example
+\count0 = 9\multiply \count0 by 8 \number\count0 ;
+\divide \count0 by 12 \number\count0 \par
+\skip0 = 20pt plus 2pt minus 3pt \multiply \skip0 by 3
+Multiplied value of skip0 is \the\skip0.\par
+\dimen0 = .5in \multiply\dimen0 by 6
+\hbox to \dimen0{a\hfil b}
+|
+\produces
+\count0 = 9\multiply \count0 by 8 \number\count0 ;
+\divide \count0 by 12 \number\count0 \par
+\skip0 = 20pt plus 2pt minus 3pt \multiply \skip0 by 3
+Multiplied value of skip0 is \the\skip0.\par
+\dimen0 = .5in \multiply\dimen0 by 6
+\hbox to \dimen0{a\hfil b}
+\doruler{\8\8\8}3{in}
+\endexample
+
+\eix^^{arithm\'etique}
+\eix^^{registres//arithm\'etique dans des}
+\eix^^{registres}
+\enddesc
+
+%==========================================================================
+\section {Terminer l'ex\'ecution}
+
+\begindesc
+^^{fin d'ex\'ecution}
+\easy\ctspecial bye \ctsxrdef{@bye}
+\explain
+Cette commande dit \`a \TeX\ de remplir et produire la derni\`ere page, d'imprimer
+toutes les \minref{insertion}s en suspens et de terminer l'ex\'ecution.
+C'est le moyen usuel de terminer votre fichier source.
+\enddesc
+
+\begindesc
+\cts end {}
+\explain
+Cette commande dit \`a \TeX\ de produire la derni\`ere page et de terminer l'ex\'ecution.
+Elle ne remplit pas la page,
+donc il est pr\'ef\'erable d'utiliser |\bye| plut\^ot que |\end|.
+\enddesc
+
+%==========================================================================
+\section {Entr\'ee et sortie}
+
+%==========================================================================
+\subsection {Op\'erations sur des fichiers d'entr\'ee}
+
+\begindesc
+\bix^^{fichiers}
+\bix^^{fichiers d'entr\'ee}
+\easy\cts input {\<nom de fichier>}
+\explain
+\minrefs{file}\minrefs{file name}
+Cette commande demande \`a \TeX\ de lire son entr\'ee \`a partir du fichier \<nom de fichier>.
+Quand ce fichier est \'epuis\'e, \TeX\ retourne lire \`a partir du source d'entr\'ee
+pr\'ec\'edent. Vous pouvez inclure des fichiers d'entr\'ee sur autant de niveaux que vous voulez
+(dans les limites du raisonnable).
+
+Quand vous saisissez un grand document, c'est souvent une bonne id\'ee de
+structurer votre fichier principal comme une suite de commandes |\input| faisant r\'ef\'erence
+aux parties subsidiaires du document. De cette fa\c con, vous pouvez ex\'ecuter les
+parties individuelles facilement quand vous travaillez sur des \'epreuves. C'est aussi une bonne
+pratique de mettre toutes vos d\'efinitions de \minref{macro} dans un fichier s\'epar\'e et
+appeler ce fichier avec une commande |\input| comme premi\`ere action de votre
+fichier principal.
+
+\TeX\ utilise des r\`egles diff\'erentes pour balayer les noms de fichier que
+pour lire les \minref{token}s en g\'en\'eral (voir \xref{nom de fichier}).
+Si votre impl\'ementation attend des noms de fichier avec extensions (habituellement
+pr\'ec\'ed\'ees par un point), alors \TeX\ procure l'extension par d\'efaut |.tex|.
+\example
+\input macros.tex
+\input chap1 % equivalent to chap1.tex
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts endinput {}
+\explain
+Cette commande dit \`a \TeX\ d'arr\^eter de lire l'entr\'ee du fichier courant
+quand il rencontrera la prochaine fin de ligne.
+\enddesc
+
+\begindesc
+\cts inputlineno {}
+\explain
+Cette commande donne un nombre (pas une cha\^\i ne) donnant le num\'ero de ligne
+de la ligne courante, devant \^etre le num\'ero qui appara\^\i trait dans un message d'erreur
+si une erreur arrive \`a cette endroit.
+\enddesc
+
+\begindesc
+\cts openin {\<nombre> {\bt =} \<nom de fichier>}
+\explain
+Cette commande demande \`a \TeX\ d'ouvrir le fichier nomm\'e \<nom de fichier>
+et de le rendre lisible via le flot d'entr\'ee d\'esign\'e par \<nombre>.
+^^{flots d'entr\'ee//ouverture}
+\<nombre> doit \^etre entre $0$ et $15$.
+Une fois que vous avez ouvert un fichier et l'avez connect\'e \`a un flot d'entr\'ee,
+vous pouvez lire le fichier en utilisant la commande |\read|
+avec le num\'ero du flot d'entr\'ee.
+
+vous pouvez associer plus d'un flot d'entr\'ee avec le m\^eme
+fichier. vous pouvez alors lire \`a plusieurs positions diff\'erentes dans
+le fichier, une pour chaque flot d'entr\'ee.
+
+Vous devez allouer les num\'eros de flots pour |\openin| en utilisant
+|\new!-read| (\xref{\@newread}).
+\example
+\newread\auxfile \openin\auxfile = addenda.aux
+% \auxfile now denotes the number of this opening
+% of addenda.aux.
+|
+\endexample
+\enddesc
+
+\begindesc%\secondprinting{\vglue-.5\baselineskip\vskip0pt}
+\cts closein {\<nombre>}
+\explain
+Cette commande demande \`a \TeX\ de fermer le \minref{flot d'entr\'ee} num\'erot\'e
+\<nombre>, c'est-\`a-dire,
+clore l'association entre le flot d'entr\'ee et son fichier.
+Le flot d'entr\'ee avec ce num\'ero devient alors disponible pour \^etre utilis\'e avec un
+fichier diff\'erent.
+Vous devez fermer un flot d'entr\'ee une fois que vous avez fini d'utiliser son fichier.
+\example
+\closein\auxfile
+|
+\endexample
+\enddesc
+
+\begindesc%\secondprinting{\vglue-.5\baselineskip\vskip0pt}
+\cts read {\<nombre> {\bt to} \<s\'equence de contr\^ole>}
+\explain
+^^{flots d'entr\'ee//lecture avec \b\tt\\read\e}
+^^{lire un fichier}
+Cette commande demande \`a \TeX\ de lire une ligne du fichier
+associ\'e avec le \minref{flot d'entr\'ee}
+d\'esign\'e par \<nombre> et assigne les tokens de cette ligne \`a
+\<s\'equence de contr\^ole>. La \minref{s\'equence de contr\^ole} devient alors une
+\minref{macro} sans param\`etre. Aucun d\'eveloppement de macro ne prend place
+durant l'op\'eration de lecture. Si la ligne contient des accolades ouvrantes
+non appair\'ees, \TeX\ lira des lignes suppl\'ementaires jusqu'a ce que les accolades
+soient toutes referm\'ees. Si \TeX\ atteint la fin du fichier sans fermer toutes les
+accolades, il se plaindra.
+
+Si \<nombre> est plus grand que $15$ ou n'a pas \'et\'e associ\'e avec un fichier
+en utilisant ^|\openin|, \TeX\ affichera l'incitation `\<s\'equence de contr\^ole> |=|'
+sur votre terminal et attendra que vous saisissiez une ligne d'entr\'ee.
+Il assignera alors la ligne d'entr\'ee \`a \<s\'equence de contr\^ole>.
+Si \<nombre> est inf\'erieur \`a z\'ero, il lira une ligne d'entr\'ee de votre
+terminal mais omettra l'incitation.
+\example
+\read\auxfile to \holder
+% Expanding \holder will produce the line just read.
+|
+\endexample
+\eix^^{fichiers d'entr\'ee}
+\enddesc
+
+%\secondprinting{\vfill\eject}
+
+
+%==========================================================================
+\subsection {Op\'erations sur des fichiers de sortie}
+
+\bix^^{fichiers de sortie}
+\begindesc
+\cts openout {\<nombre> {\bt =} \<nom de fichier>}
+\explain
+^^{flots de sortie//ouverture}
+Cette commande demande \`a \TeX\ d'ouvrir le fichier nomm\'e \<nom de fichier>
+et de le rendre disponible pour l'\'ecriture via le \minref{flux de sortie}
+d\'esign\'e par \<nombre>.
+\<nombre> doit \^etre entre $0$ et $15$.
+Une fois que vous avez ouvert un fichier et l'avez connect\'e \`a un flot de sortie,
+vous pouvez \'ecrire dans le fichier en utilisant la commande |\write|
+avec le num\'ero du flot de sortie.
+
+Un |\openout| g\'en\`ere un \'el\'ement extraordinaire qui devient une partie d'une bo\^\i te.
+Le |\openout| ne prend pas effet avant que \TeX\ n'envoit cette bo\^\i te
+dans le \dvifile,
+\`a moins que vous ayez fait pr\'ec\'eder |\openout| de ^|\immediate|.
+
+\TeX\ ne se plaindra pas si vous associez plus d'un flux de sortie avec le
+m\^eme fichier, mais vous aurez un sacr\'e bazar dans le fichier si vous essayez~!
+
+Vous devez allouer des num\'eros de flux pour |\openout| en utilisant
+|\newwrite| (\xref{\@newwrite}).
+\example
+\newwrite\auxfile \openout\auxfile = addenda.aux
+% \auxfile now denotes the number of this opening
+% of addenda.aux.
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts closeout {\<nombre>}
+\explain
+^^{flots de sortie//fermeture}
+Cette commande demande \`a \TeX\ de fermer le \minref{flot de sortie} num\'erot\'e
+\<nombre>. c'est-\`a-dire,
+cesser l'association entre le flot de sortie et son fichier.
+Le flot de sortie avec ce num\'ero devient alors disponible pour \^etre utilis\'e avec
+un fichier diff\'erent.
+Vous devez fermer un flot de sortie une fois que vous avez fini d'utiliser son fichier.
+
+Un |\closeout| g\'en\`ere un \'el\'ement extraordinaire qui devient une partie d'une bo\^\i te.
+Le |\closeout| ne prend pas effet avant que \TeX\ n'envoit pas cette bo\^\i te
+dans le \dvifile,
+\`a moins que vous ayez fait pr\'ec\'eder |\closeout| de ^|\immediate|.
+\example
+\closeout\auxfile
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts write {\<nombre> \rqbraces{\<liste de token>}}
+\explain
+^^{flots de sortie//\'ecriture}
+^^{\ecrire\ un fichier}
+Cette commande demande \`a \TeX\ d'\'ecrire \<liste de token> dans le fichier
+associ\'e avec le \minref{flot de sortie}
+d\'esign\'e par \<nombre>.
+Il g\'en\`ere un \'el\'ement extraordinaire qui devient une partie d'une bo\^\i te.
+L'\'ecriture actuelle ne prend pas de place tant que \TeX\ n'envoie cette bo\^\i te
+dans le \dvifile,
+\`a moins que vous pr\'ec\'ediez le |\write| par ^|\immediate|.
+
+Pour un |\write| qui n'est pas imm\'ediat, \TeX\ ne d\'eveloppe pas de macros de
+\<liste de token> tant que la liste de token n'est pas \'ecrite dans le fichier.
+Les d\'eveloppements de macro suivent les m\^emes r\`egles que |\edef| (\xref\edef).
+En particulier, toute s\'equence de contr\^ole qui n'est pas le
+nom d'une macro est \'ecrite comme un
+^|\escapechar| suivi par le nom de la s\'equence de contr\^ole
+et un espace. tous les tokens `|#|'
+de \<liste de token> sont doubl\'es, c'est-\`a-dire, \'ecrits comme `|##|'.
+
+Si \<nombre> n'est pas dans la fourchette de $0$ \`a $15$, \TeX\ \'ecrit
+\<liste de token> dans le fichier log.
+^^{fichier log//\'ecrit par \b\tt\\write\e}
+Si \<nombre> est sup\'erieur \`a $15$ ou n'est pas associ\'e avec un flot de
+sortie, \TeX\ \'ecrit aussi \<liste de token> sur le terminal.
+\example
+\def\aa{a a}
+\write\auxfile{\hbox{$x#y$} \aa}
+% Writes the string `\hbox {$x##y$} a a' to \auxfile.
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts immediate {}
+\explain
+Cette commande doit pr\'ec\'eder un |\openout|, un |\closeout| ou un |\write|.
+^^|\write//avec {\tt\\immediate}|
+^^|\openout//avec {\tt\\immediate}|
+^^|\closeout//avec {\tt\\immediate}|
+Elle demande \`a \TeX\ d'ex\'ecuter l'op\'eration de fichier sp\'ecifi\'ee sans d\'elai.
+\example
+\immediate\write 16{I'm stuck!!}
+% has the same effect as \message
+|
+\endexample\enddesc
+
+\begindesc
+\cts special {\rqbraces{\<liste de token>}}
+\explain
+Cette commande demande \`a \TeX\
+d'\'ecrire \<liste de token> directement dans le \dvifile\ quand il enverra
+une page.
+Une utilisation typique de |\special| sera de dire au driver d'impression d'incorporer
+le contenu d'un fichier graphique nomm\'e dans la page de sortie.
+^^{drivers de p\'eriph\'erique//instructions par \b\tt\\special\e}
+La commande |\special| produit un \'el\'ement extraordinaire qui associe
+\<liste de token> avec une position particuli\`ere sur la page, plus pr\'ecis\'ement,
+la position qu'une bo\^\i te de taille nulle aurait eu si un telle bo\^\i te
+serait apparue \`a la place de la commande |\special|.
+Toute utilisation que vous devez faire de |\special| d\'epend strictement des
+^{drivers d'impression} que vous avez \`a votre disposition.
+\example
+\special{graphic expic}
+% Display the graphics file `expic' here.
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts newlinechar {\param{nombre}}
+\explain
+Ce param\`etre contient un caract\`ere qui indique une nouvelle ligne sur la
+sortie. Quand \TeX\ rencontre ce caract\`ere
+en lisant l'argument d'une commande
+|\write|, |\message| ou
+|\errmessage|, il d\'ebute une nouvelle ligne.
+Si |\newlinechar| n'est pas dans la fourchette $0$--$255$,
+Il n'y a aucun caract\`ere indiquant
+une nouvelle ligne en sortie.
+\PlainTeX\ met |\newlinechar| \`a $-1$.
+\example
+\newlinechar = `\^^J
+\message{This message appears^^Jon two lines.}
+|
+\logproduces
+This message appears
+on two lines.
+|
+\endexample
+\enddesc
+
+\see |\newread|, |\newwrite| (\xref{\@newwrite}).
+\eix^^{fichiers}
+\eix^^{fichiers de sortie}
+
+%==========================================================================
+\subsection {Interpr\'eter des caract\`eres entr\'es}
+
+\begindesc
+\cts catcode {\<charcode> \tblentry{nombre}}
+\explain
+^^{codes de cat\'egorie//en table de \b\tt\\catcode\e}
+Cette entr\'ee de table contient le \minref{code de cat\'egorie} du caract\`ere
+dont le code \ascii\ est \<charcode>.
+Les codes de cat\'egorie sont list\'es dans la \xrefpg{catcodes}.
+En changeant le code de cat\'egorie d'un caract\`ere vous pouvez demande \`a \TeX\ de traiter
+ce caract\`ere diff\'eremment.
+\example
+\catcode `\[ = 1 \catcode `\] = 2
+% Make [ and ] act like left and right braces.
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts active {}
+\explain
+Cette commande contient le
+code de cat\'egorie pour un caract\`ere actif, soit, le nombre $13$.
+\example
+\catcode `\@ = \active % Make @ an active character.
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts mathcode {\<charcode> \tblentry{nombre}}
+\explain
+Cette entr\'ee de table contient le \minref{mathcode} du caract\`ere
+dont le code \ascii\ est \<charcode> \seeconcept{mathcode}.
+Le mathcode sp\'ecifie l'interpr\'etation du caract\`ere en mode math\'ematique.
+\example
+\mathcode\> = "313E % as in plain TeX
+% The > character has class 3 (relation), family 1 (math
+% italic), and character code "3E
+|
+\endexample
+\enddesc
+
+\begindesc
+\margin{{\tt\\delcode} was explained in two places. This explanation
+combines them. (The other place was in the math section.)}
+\cts delcode {\<charcode>\tblentry{number}}
+\explain
+^^{codes d\'elimiteurs}
+Cette entr\'ee de table sp\'ecifie le code \minref{delimiter} pour le caract\`ere entr\'ee
+dont le code \ascii\ est \<charcode>.
+Le code d\'elimiteur dit \`a \TeX\ comment trouver le meilleur caract\`ere de sortie utiliser
+pour composer le caract\`ere d'entr\'ee indiqu\'e comme d\'elimiteur.
+
+\<nombre> est normalement \'ecrit en notation hexad\'ecimale.
+Supposez que \<nombre> soit le nombre hexad\'ecimal $s_1s_2s_3\,
+l_1l_2l_3$. Alors, quand le caract\`ere est utilis\'e comme un d\'elimiteur,
+\TeX\ prend le caract\`ere ayant une petite variante
+$s_1s_2s_3$ et une grande variante $l_1l_2l_3$. Ici $s_1s_2s_3$ indique
+le caract\`ere math\'ematique trouv\'e en position $s_2s_3$ de la famille $s_1$ et
+de m\^eme pour $l_1l_2l_3$. C'est la m\^eme convention que celle
+utilis\'ee pour ^|\mathcode| (\xref \mathcode),
+sauf que |\mathcode| sp\'ecifie aussi une classe.
+\example
+\delcode `( = "028300 % As in plain TeX.
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts endlinechar {\param{nombre}}
+\explain
+Ce param\`etre
+contient le code de caract\`ere pour le caract\`ere que
+\TeX\ attend \`a la fin de chaque ligne d'entr\'ee.
+^^{ligne d'entr\'ee}
+Une valeur qui ne serait pas dans le fourchette $0$--$255$
+indique qu'aucun caract\`ere ne doit \^etre attendu.
+\PlainTeX\ laisse |\end!-line!-char| \`a
+|`\^^M| (le code {\ascii} pour \asciichar{return}).
+\enddesc
+
+\begindesc
+\cts ignorespaces {}
+\explain
+Cette commande demande \`a \TeX\ de lire et de d\'evelopper des tokens jusqu'\`a ce qu'il en trouve
+un qui ne soit pas un \minref{token} espace, ignorant tous les tokens espace
+qu'il trouve autrement.
+|\ignorespaces| est souvent pratique \`a la fin d'une \minref{macro} comme un moyen
+de rendre la macro insensible \`a tout espace ou fin de ligne
+qui peut suivre son propre appel.
+(Une ligne vide apr\`es |\ignorespaces| continue \`a produire un token |\par|,
+de tout fa\c con.)
+\example
+\def\aa#1{yes #1\ignorespaces}
+\aa{may}
+be
+|
+\produces
+\def\aa#1{yes #1\ignorespaces}
+\aa{may}
+be
+\endexample
+\enddesc
+
+%==========================================================================
+\section {Contr\^oler l'interaction avec \TeX}
+
+\begindesc
+\bix^^{contr\^oler \TeX}
+\bix^^{ex\'ecuter \TeX}
+\cts errorstopmode {}
+\explain
+Cette commande demande \`a \TeX\
+de stopper pour une interaction \`a chaque fois qu'il trouve une erreur.
+C'est le mode op\'eratoire normal.
+\enddesc
+
+\begindesc
+\cts scrollmode {}
+\explain
+Cette commande demande \`a \TeX\
+de ne pas stopper pour le plupart des erreurs,
+mais de continuer \`a afficher les messages d'erreur sur votre terminal.
+Saisir `|S|' ou `|s|' en r\'eponse \`a un message d'erreur vous met
+en mode scroll.
+\enddesc
+
+\begindesc
+\cts nonstopmode {}
+\explain
+Cette commande demande \`a \TeX\
+de ne pas stopper pour des erreurs, m\^eme celles r\'eclamant des fichiers qu'il
+ne peut trouver, mais de continuer \`a afficher les messages d'erreur sur votre terminal.
+Saisir `|R|' ou `|r|' en r\'eponse \`a un message d'erreur vous met
+en mode nonstop.
+\enddesc
+
+\begindesc
+\cts batchmode {}
+\explain
+Cette commande demande \`a \TeX\
+de ne pas stopper pour des erreurs et de supprimer toute sortie sur votre terminal.
+Saisir `|Q|' ou `|q|' en r\'eponse \`a un message d'erreur vous met
+en mode batch.
+\enddesc
+
+\begindesc
+\cts pausing {\param{nombre}}
+\explain
+Si ce param\`etre est sup\'erieur \`a z\'ero, \TeX\ s'arr\^etera
+\`a chaque ligne d'entr\'ee pour vous donner une opportunit\'e de
+la remplacer par une ligne diff\'erente. Si vous saisissez une modification,
+\TeX\ utilisera cette ligne au lieu de l'originale~; si vous r\'epondez
+par \asciichar{return}, \TeX\ utilisera l'originale.
+
+Mettre |\pausing| \`a $1$ peut \^etre pratique comme moyen de patcher un document quand
+\TeX\ l'ex\'ecute. Par exemple,
+vous pouvez utiliser cette facilit\'e pour ins\'erer des commandes ^|\show| (voir plus loin).
+\eix^^{ex\'ecuter \TeX}
+\eix^^{contr\^oler \TeX}
+\enddesc
+
+%==========================================================================
+\section {Aide au diagnostic}
+
+\subsection{Afficher des donn\'ees internes}
+
+\begindesc
+\bix^^{tracer}
+\bix^^{debugger}
+\bix^^{aides au diagnostique}
+\cts show {\<token>}
+\cts showthe {\<argument>}
+\cts showbox {\<nombre>}
+\cts showlists {}
+\explain
+Ces commandes enregistrent de l'information dans le fichier log de votre ex\'ecution \TeX~:
+\ulist
+\li |\show| enregistre la signification de \<token>.\minrefs{token}
+^^{tokens//affich\'es par \b\tt\\show\e}
+\li |\showthe| enregistre
+ quels tokens seront produit par
+|\the| \<arg\-u\-ment> (voir \xref \the).
+\li |\showbox| enregistre le contenu du \minref{registre} de la \minref{bo\^\i te}
+num\'erot\'e \<nom\-bre>.
+Le nombre de
+points affich\'es dans la log indique le nombre de
+niveaux d'inclusion de bo\^\i tes internes.
+\li |\showlists| enregistre
+le contenu de chaque liste que \TeX\ est en train de construire.
+(les listes sont empil\'ees les unes sur les autres.)
+Voir les \knuth{pages~88--89}{103} pour plus d'information sur l'interpr\'etation
+de la sortie de |\showlists|.
+\endulist
+Pour |\show| et |\showthe|, \TeX\ affiche aussi l'information sur votre
+^{terminal}.
+Pour |\showbox| et |\showlists|, \TeX\ n'affiche l'information sur votre
+terminal que
+si ^|\tracingonline| (\xref \tracingonline) est sup\'erieur \`a z\'ero~;
+si ^|\tracingonline| est \`a z\'ero ou moins (le cas par d\'efaut),
+l'information n'est pas affich\'ee.
+
+\`A chaque fois que \TeX\ rencontre une commande de type |\show| il
+stoppe pour un interaction. La requ\^ete d'interaction ne doit \emph{pas}
+indiquer une erreur, mais doit vous donner l'opportunit\'e de demander \`a \TeX\ de
+vous montrer autre chose. Si vous ne voulez pas voir autre chose, pressez juste
+\asciichar{return}.
+
+Vous pouvez contr\^oler la quantit\'e de sortie produite par |\showbox| en mettant
+|\show!-box!-breadth| et |\show!-box!-depth| (\xref\showboxbreadth).
+^^|\showboxbreadth| ^^|\showboxdepth|
+Ces param\`etres ont des valeurs par d\'efaut \`a $5$ et $3$ respectivement,
+C'est pourquoi
+juste cinq \'el\'ements apparaissent pour chaque bo\^\i te d\'ecrite
+dans la sortie de log ci-dessous. (Le `|..etc.|' indique des \'el\'ements additionnels
+des bo\^\i tes qui ne sont pas affich\'es.)
+\example
+\show a
+\show \hbox
+\show \medskip
+\show &
+|
+\logproduces
+> the letter a.
+> \hbox=\hbox.
+> \medskip=macro:
+->\vskip \medskipamount .
+> alignment tab character &.
+|
+\nextexample
+\showthe\medskipamount
+\toks27={\hbox{Joe's\quad\ Diner}}
+\showthe\toks27
+|
+\logproduces
+> 6.0pt plus 2.0pt minus 2.0pt.
+> \hbox {Joe's\quad \ Diner}.
+|
+\nextexample
+\setbox 3=\vbox{\hbox{A red dog.}\hrule A black cat.}
+\showbox 3
+|
+\logproduces
+> \box3=
+\vbox(16.23332+0.0)x53.05565
+.\hbox(6.94444+1.94444)x46.41675
+..\tenrm A
+..\glue 3.33333 plus 1.66498 minus 1.11221
+..\tenrm r
+..\tenrm e
+..\tenrm d
+..etc.
+.\rule(0.4+0.0)x*
+.\hbox(6.94444+0.0)x53.05565
+..\tenrm A
+..\glue 3.33333 plus 1.66498 minus 1.11221
+..\tenrm b
+..\tenrm l
+..\tenrm a
+..etc.
+|
+\endexample
+\vfil\eject
+\example
+\vbox{A \hbox
+ {formula
+ $x \over y\showlists$}}
+|
+\logproduces
+### math mode entered at line 3
+\mathord
+.\fam1 y
+this will be denominator of:
+\fraction, thickness = default
+\\mathord
+\.\fam1 x
+### restricted horizontal mode entered at line 2
+\tenrm f
+\tenrm o
+\tenrm r
+\tenrm m
+\kern-0.27779
+\tenrm u
+\tenrm l
+\tenrm a
+\glue 3.33333 plus 1.66666 minus 1.11111
+spacefactor 1000
+### horizontal mode entered at line 1
+\hbox(0.0+0.0)x20.0
+\tenrm A
+\glue 3.33333 plus 1.66498 minus 1.11221
+spacefactor 999
+### internal vertical mode entered at line 1
+prevdepth ignored
+### vertical mode entered at line 0
+prevdepth ignored
+|
+\endexample
+\enddesc
+
+\see |\showboxbreadth|, |\showboxdepth| \ctsref\showboxbreadth.
+
+\subsection{Sp\'ecifier ce qui est trac\'e}
+
+\begindesc
+\cts tracingonline {\param{nombre}}
+\explain
+Si ce param\`etre est sup\'erieur \`a z\'ero,
+\TeX\ affichera les r\'esultats de la trace
+(en incluant ^|\showbox| et ^|\showlists|)
+sur votre terminal en plus de les enregistrer dans le fichier log.
+\enddesc
+
+\begindesc
+\cts tracingcommands {\param{nombre}}
+\explain
+Si ce param\`etre est \'egal \`a $1$ ou plus,
+\TeX\ enregistrera dans le fichier log plus de commandes qu'il ex\'ecute.
+Si ^|\tracingonline| est plus grand que z\'ero, cette information appara\^\i tra aussi
+sur votre terminal.
+composer le premier caract\`ere d'un mot compte comme une commande,
+mais (dans le but de la trace seulement)
+les actions de composition des caract\`eres suivants
+et de toute ponctuation les suivant
+ne compte pas comme des commandes.
+Si |\tracingcommands| est \`a $2$ ou plus,
+\TeX\ enregistrera aussi des commandes qui sont d\'evelopp\'ees
+plut\^ot qu'ex\'ecut\'ees, par exemple, des tests conditionnels et leurs r\'esultats.
+\example
+\tracingcommands = 1 If $x+y>0$ we quit.\par
+On the other hand, \tracingcommands = 0
+|
+\logproduces
+{vertical mode: the letter I}
+{horizontal mode: the letter I}
+{blank space }
+{math shift character $}
+{math mode: the letter x}
+{the character +}
+{the letter y}
+{the character >}
+{the character 0}
+{math shift character $}
+{horizontal mode: blank space }
+{the letter w}
+{blank space }
+{the letter q}
+{blank space }
+{\par}
+{vertical mode: the letter O}
+{horizontal mode: the letter O}
+{blank space }
+{the letter t}
+{blank space }
+{the letter o}
+{blank space }
+{the letter h}
+{blank space }
+{\tracingcommands}
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts tracinglostchars {\param{nombre}}
+\explain
+Si ce param\`etre est plus grand que z\'ero,
+\TeX\ enregistrera une indication dans le fichier log \`a chaque fois
+qu'il d\'elaissera un caract\`ere de sortie parce que ce caract\`ere n'existe pas
+dans la police courante.
+Si ^|\tracingonline| est plus grand que z\'ero, cette information appara\^\i tra aussi
+sur votre terminal.
+\PlainTeX\ le met par d\'efaut \`a $1$ (contrairement aux autres).
+\example
+\tracinglostchars = 1
+A {\nullfont few} characters.
+|
+\logproduces
+Missing character: There is no f in font nullfont!!
+Missing character: There is no e in font nullfont!!
+Missing character: There is no w in font nullfont!!
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts tracingmacros {\param{nombre}}
+\explain
+Si ce param\`etre est \`a $1$ ou plus,
+\TeX\ enregistrera dans le fichier log le d\'eveloppement et les arguments
+de toutes les macros qu'il ex\'ecute.
+^^{macros//tracer des}
+Si |\tracingmacros| est \`a $2$ ou plus,
+\TeX\ enregistrera, en plus,
+tout d\'eveloppement de listes de \minref{token} telles que
+|\output| or |\everycr|.
+Si ^|\tracingonline| est plus grand que z\'ero, cette information appara\^\i tra aussi
+sur votre terminal.
+\example
+\def\a{first \b, then \c}
+\def\b{b} \def\c{c}
+\tracingmacros = 2
+Call \a once.
+|
+\logproduces
+\a ->first \b , then \c
+
+\b ->b
+
+\c ->c
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts tracingoutput {\param{nombre}}
+\explain
+Si ce param\`etre est sup\'erieur \`a z\'ero,
+\TeX\ enregistrera dans le fichier log le contenu de toutes les bo\^\i tes qu'il
+envoit dans le \dvifile.
+^^{\dvifile//\boite\ enregistr\'e dans le fichier}
+Si ^|\tracingonline| est sup\'erieur \`a z\'ero, cette information appara\^\i tra aussi
+sur votre terminal.
+Le nombre de
+points affich\'e dans la log indique le nombre de
+niveaux d'inclusion de bo\^\i tes sur cette ligne.
+Vous pouvez contr\^oler la quantit\'e de trace en fixant
+^|\showboxbreadth| et ^|\showboxdepth| (\xref\showboxbreadth).
+
+mettre |\tracingoutput| \`a $1$ peut \^etre tr\`es pratique quand vous essayez
+de d\'eterminer pourquoi vous obtenez un ^{espace suppl\'ementaire} sur une page.
+
+\example
+% This is the entire file.
+\tracingoutput = 1 \nopagenumbers
+One-line page. \bye
+|
+\logproduces
+Completed box being shipped out [1]
+\vbox(667.20255+0.0)x469.75499
+.\vbox(0.0+0.0)x469.75499, glue set 13.99998fil
+..\glue -22.5
+..\hbox(8.5+0.0)x469.75499, glue set 469.75499fil
+...\vbox(8.5+0.0)x0.0
+...\glue 0.0 plus 1.0fil
+..\glue 0.0 plus 1.0fil minus 1.0fil
+.\vbox(643.20255+0.0)x469.75499, glue set 631.2581fill
+..\glue(\topskip) 3.05556
+..\hbox(6.94444+1.94444)x469.75499, glue set 386.9771fil
+...\hbox(0.0+0.0)x20.0
+...\tenrm O
+...\tenrm n
+...\tenrm e
+...\tenrm -
+...etc.
+..\glue 0.0 plus 1.0fil
+..\glue 0.0 plus 1.0fill
+.\glue(\baselineskip) 24.0
+.\hbox(0.0+0.0)x469.75499, glue set 469.75499fil
+..\glue 0.0 plus 1.0fil
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts tracingpages {\param{nombre}}
+\explain
+Si ce param\`etre est sup\'erieur \`a z\'ero,
+\TeX\ enregistrera dans le fichier log ses calculs sur le co\^ut des
+diff\'erentes coupures de page qu'il essaie.
+^^{coupures de page//tracer}
+Si |\tracing!-online| ^^|\tracingonline|
+est sup\'erieur \`a z\'ero, cette information appara\^\i tra aussi
+sur votre terminal.
+\TeX\ produit une ligne de cette sortie
+\`a chaque fois qu'il commence \`a placer une bo\^\i te ou une \minref{insertion}
+sur la liste de page courante, et aussi \`a chaque fois qu'il ex\'ecute une
+point de coupure potentiel pour la page.
+Examiner cette sortie peut \^etre utile quand vous essayez de d\'eterminer
+la cause d'une mauvaise coupure de page.
+Voir les \knuth{pages~112--114}{130--133} pour une illustration et une explication de
+cette sortie.
+
+Certaines distributions de \TeX\ ignorent la valeur de |\tracingpages|
+ainsi elles peuvent s'ex\'ecuter plus rapidement.
+Si vous devez utiliser ce param\`etre, soyez certain d'utiliser une distribution qui
+lui r\'epond.
+\enddesc
+
+\begindesc
+\cts tracingparagraphs {\param{nombre}}
+\explain
+Si ce param\`etre est sup\'erieur \`a z\'ero,
+\TeX\ enregistrera dans le fichier log ses calculs sur le co\^ut des
+diff\'erentes coupures de ligne qu'il essaie.
+^^{coupures de ligne//tracer}
+Si ^|\tracingonline|
+est sup\'erieur \`a z\'ero, cette information appara\^\i tra aussi
+sur votre terminal.
+\TeX\ produit cette sortie quand il atteint la fin de chaque paragraphe.
+Voir les \knuth{pages~98--99}{115--116} pour une illustration et une explication de
+cette sortie.
+
+Certaines distributions de \TeX\ ignorent la valeur de |\tracing!-para!-graphs|
+ainsi elles peuvent s'ex\'ecuter plus rapidement.
+Si vous devez utiliser ce param\`etre, soyez certain d'utiliser une distribution qui
+lui r\'epond.
+\enddesc
+
+\begindesc
+\cts tracingrestores {\param{nombre}}
+\explain
+Si ce param\`etre est sup\'erieur \`a z\'ero,
+\TeX\ enregistrera dans le fichier log les valeurs qu'il restitue quand il
+rencontre la fin d'un \minref{groupe}.
+Si ^|\tracingonline|
+est sup\'erieur \`a z\'ero, cette information appara\^\i tra aussi
+sur votre terminal.
+
+Certaines distributions de \TeX\ ignorent la valeur de |\tracing!-restores|
+ainsi elles peuvent s'ex\'ecuter plus rapidement.
+Si vous devez utiliser ce param\`etre, soyez certain d'utiliser une distribution qui
+lui r\'epond.
+\enddesc
+
+\begindesc
+\cts tracingstats {\param{nombre}}
+\explain
+Si ce param\`etre est \`a $1$ ou plus, \TeX\ incluera
+un rapport sur les ressources qu'il utilise pour ex\'ecuter votre travail
+(voir la \knuth{page~300}{350--351} pour une liste et l'explication de ces ressources).
+Du reste, si |\tracingstats| est \`a $2$ ou plus,
+\TeX\ fera un rapport sur ses utilisations de m\'emoire \`a chaque fois qu'il fera un
+^|\shipout| (\xref \shipout) pour une page.
+Le rapport appara\^\i t \`a la fin du fichier log.
+^^{fichier log//tracer des statistiques dans le}
+Si ^|\tracingonline| est sup\'erieur \`a z\'ero, cette information appara\^\i tra aussi
+sur votre terminal.
+Si vous avez des probl\`emes avec \TeX\ d\'epassant une de ses
+capacit\'es, l'information procur\'ee par |\tracingstats| peut vous aider \`a
+mettre le doigt sur la cause de vos difficult\'es.
+
+Certaines distributions de \TeX\ ignorent la valeur de |\tracingstats|
+ainsi elles peuvent s'ex\'ecuter plus rapidement.
+Si vous devez utiliser ce param\`etre, soyez certain d'utiliser une distribution qui
+lui r\'epond.
+
+L'exemple suivant montre un extrait de
+la sortie de trace que vous obtenez sur une distribution
+de \TeX. Elle peut \^etre diff\'erente sur d'autres distributions.
+{\codefuzz = 1in
+\example
+\tracingstats=1
+|
+\logproduces
+Here is how much of TeX's memory you used:
+ 4 strings out of 5540
+ 60 string characters out of 72328
+ 5956 words of memory out of 262141
+ 921 multiletter control sequences out of 9500
+ 14794 words of font info for 50 fonts, out of 72000 for 255
+ 14 hyphenation exceptions out of 607
+ 7i,4n,1p,68b,22s stack positions out of 300i,40n,60p,3000b,4000s
+|
+\endexample
+}% end scope of codefuzz
+\enddesc
+
+\begindesc
+\cts tracingall {}
+\explain
+Cette commande demande \`a \TeX\ de
+brancher toutes les formes de trace disponibles.
+Elle met aussi ^|\tracingonline| \`a $1$ pour que la sortie de trace apparaisse
+sur votre terminal.
+\enddesc
+
+\begindesc
+\cts showboxbreadth {\param{nombre}}
+\explain
+Ce param\`etre sp\'ecifie le nombre maximum d'\'el\'ements de liste
+que \TeX\ affiche pour un niveau d'une bo\^\i te quand il produit
+la sortie pour ^|\showbox| ou ^|\tracingoutput|.
+\PlainTeX\ met |\showboxbreadth| \`a $5$.
+\enddesc
+
+\begindesc
+\cts showboxdepth {\param{nombre}}
+\explain
+Ce param\`etre sp\'ecifie le
+niveau de la plus profonde liste que \TeX\ affiche quand
+il produit la sortie pour ^|\showbox| ou ^|\showlists|.
+\PlainTeX\ met |\showboxdepth| \`a $3$.
+\eix^^{tracer}
+\eix^^{debugger}
+\eix^^{aides au diagnostique}
+\enddesc
+
+%==========================================================================
+\subsection {Envoyer des messages}
+
+\begindesc
+\bix^^{messages, envoyer}
+\bix^^{messages d'erreur}
+\cts message {\rqbraces{\<liste de token>}}
+\cts errmessage {\rqbraces{\<liste de token>}}
+\explain
+Cette commande affiche le message donn\'e par \<liste de token> sur votre
+terminal et l'entre aussi dans la log. Toutes les \minref{macro}s du
+message sont d\'evelopp\'ees, mais aucune commande n'est ex\'ecut\'ee. C'est la m\^eme r\`egle
+que \TeX\ utilise pour |\edef| (\xref \edef).
+
+Pour |\errmessage|, \TeX\ fait une pause
+de la m\^eme fa\c con qu'il le ferait pour un de ses propres messages d'erreur
+et affiche les tokens |\errhelp| si vous demandez de l'aide.
+
+Vous pouvez g\'en\'erer des messages multi-ligne en utilisant le caract\`ere ^|\newlinechar|
+(\xref \newlinechar).
+\example
+\message{Starting a new section.}
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts wlog {\rqbraces{\<liste de token>}}
+\explain
+Cette commande \'ecrit \<liste de token> dans le fichier log.
+^^{fichier log//\'ecrire par \b\tt\\wlog\e}
+\minrefs{log file}
+\TeX\ d\'eveloppe \<liste de token> en accord avec les m\^emes r\`egles qu'il utilise
+pour |\edef| (\xref\edef).
+\example
+\wlog{Take two aspirins and call me in the morning.}
+|
+\logproduces
+Take two aspirins and call me in the morning.
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts errhelp {\param{liste de token}}
+\explain
+Ce param\`etre contient la liste de token que \TeX\ affiche
+quand vous demandez de l'aide en r\'eponse \`a une commande |\errmessage|.
+Nous vous recommandons quand
+vous g\'en\'erez un message d'erreur avec |\errmessage|, de
+mettre |\errhelp| \`a une cha\^\i ne qui d\'ecrit la nature de
+l'erreur et utiliser |\newhelp| pour produire cette cha\^\i ne.
+Vous pouvez utiliser le caract\`ere ^|\newlinechar| pour produire des messages multi-ligne.
+\enddesc
+
+\begindesc
+\ctspecial newhelp \ctsxrdef{@newhelp} {\<s\'equence de contr\^ole>
+ \rqbraces{\<texte d'aide>}}
+\explain
+Cette commande assigne le ^{message d'aide} donn\'e par \<texte d'aide> \`a
+\<s\'equence de contr\^ole>. Il procure un moyen efficace de d\'efinir
+le ^{texte d'aide} qui compl\`ete un message d'erreur.
+Avant d'\'emettre le message d'erreur avec la commande |\errmessage|,
+vous devez assigner \<s\'equence de contr\^ole> \`a ^|\errhelp|. Le texte d'aide
+appara\^\i tra alors si l'utilisateur saisi `|H|'
+ou `|h|' en r\'eponse au message d'erreur.
+\example
+\newhelp\pain{Your input includes a token that I find^^J
+ to be offensive. Don't bother me again with this^^J
+ document until you've removed it.}
+\errhelp = \pain \newlinechar = `\^^J
+% ^^J will start a new line
+\errmessage{I do not appreciate receiving this token}
+|
+\logproduces
+!! I do not appreciate receiving this token.
+l.8 ...t appreciate receiving this token.}
+
+? H
+\Your input includes a token that I find
+ to be offensive. Don't bother me again with this
+ document until you've removed it.
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts errorcontextlines {\param{nombre}}
+\explain
+Ce param\`etre d\'etermine le nombre de paires de lignes de contexte,
+sans compter la premi\`ere et la derni\`ere, que \TeX\ imprime quand il
+rencontre une erreur. En le mettant \`a $0$ vous pouvez vous d\'ebarrasser de longs
+messages d'erreur.
+Vous pouvez forcer le contexte entier en saisissant quelque chose comme~:
+\csdisplay
+I\errorcontextlines=100\oops
+|
+en r\'eponse \`a une erreur,
+puisque la s\'equence de contr\^ole non d\'efinie |\oops| causera une autre erreur.
+\PlainTeX\ met |\error!-context!-lines| \`a $5$.
+\enddesc
+
+\see |\write| (\xref \write), |\escapechar| (\xref \escapechar).
+\eix^^{messages, envoyer}
+\eix^^{messages d'erreur}
+
+%==========================================================================
+\section {Initialiser \TeX}
+
+\begindesc
+\cts dump {}
+\explain
+Cette commande, qui ne doit pas appara\^\i tre \`a l'int\'erieur d'un groupe, met en
+r\'eserve le contenu de la m\'emoire de \TeX\ dans un ^{fichier format} (\xref{fichier format}).
+En utilisant ^|virtex|, une forme sp\'eciale ``vierge'' de \TeX,
+vous pouvez alors recharger le fichier format \`a grande vitesse et
+continuer dans le m\^eme \'etat que \TeX\ \'etait au moment du dump.
+|\dump| termine aussi une ex\'ecution. Puisque |\dump| ne peut \^etre utilis\'e
+qu'avec ^|initex|, pas en format de production de \TeX, elle n'est utile qu'aux
+gens qui installent \TeX.
+\enddesc
+
+\begindesc
+\cts everyjob {\param{liste de token}}
+\explain
+Ce param\`etre contient une liste de \minref{token} que \TeX\ d\'eveloppe au
+d\'ebut de chaque ex\'ecution. Parce qu'un assignement \`a |\everyjob| ne peut affecter
+l'ex\'ecution courante (au moment o\`u vous avez fait l'assignement, c'est d\'ej\`a trop
+tard), elle n'est utile qu'ux gens qui pr\'eparent des fichiers de format.
+\enddesc
+
+
+\enddescriptions \endchapter \byebye
+
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/fmacros.tex b/Master/texmf-dist/doc/plain/impatient-fr/fmacros.tex
new file mode 100644
index 00000000000..4bc83b5ea12
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/fmacros.tex
@@ -0,0 +1,2345 @@
+% 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.
+%
+% Macros for typesetting TeX for the Impatient.
+%
+% These macros are being distributed without any warranty whatsoever.
+% The level of commentary is that which we, the authors, found necessary
+% for our own purposes.
+%
+% ==========================================================================
+%
+% The macros use the term `chapter' for what in the book is called
+% a `section', `section' for the book's `subsection', etc. For purposes of
+% defining macros it's convenient to think of the book as divided into
+% chapters, but because of the nonsequential nature of the book we don't
+% want to tell the readers that they are reading chapters.
+%\language2
+% An embedded file should end with \byebye.
+%
+%%%%%%%%%%%%%%% COULEUR %%%%%%%%%%%%%%%%%%%%%%
+\input ifpdf.sty
+\ifpdf
+\def\Red{\pdfliteral{0 1 1 0 k}}
+\def\Blue{\pdfliteral{1 1 0 0 k}}
+\def\Green{\pdfliteral{1 0 1 0 k}}
+\def\RawSienna{\pdfliteral{0 0.72 1 0.45 k}}
+\def\Black{\pdfliteral{0 0 0 1 k}}
+\else
+\def\Red{\special{color rgb 1. 0 0}}
+\def\Blue{\special{color rgb 0 0 1.}}
+\def\Green{\special{color rgb 0 1. 0}}
+\def\RawSienna{\special{color rgb 0.63 0.32 0.18}}
+\def\Black{\special{color rgb 0 0 0}}
+\fi
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\begingroup
+\ifx \macsin\relax
+ % In frontm.tex, we do \input macros several times, and we still want
+ % the \byebye at the end to end the job.
+ % So we \input inside a group in frontm, and make the assignment to
+ % \endinput local.
+ \aftergroup\let\aftergroup\byebye\aftergroup\endinput
+ \aftergroup\endinput % Don't read this file again.
+\else
+ \global\let\byebye = \end
+ \global\let\macsin = \relax
+\fi
+\endgroup
+
+% This must come before config.tex.
+\input eplain
+
+% Define configuration switches and then read their values.
+%
+\newif\ifcenterpage \centerpagetrue
+\newif\ifcompletebook
+\newif\iffinal % true for the 2000dpi copy
+\newif\ifmsdos
+\newif\ifedgetabs \edgetabstrue
+\newif\ifdvi \dvitrue % true if we want a .dvi file
+
+%\xrefwarningfalse
+
+% The config file contains settings for flags, e.g.,
+% \completebookfalse
+% It can be empty as long as it exists.
+\input config
+\ifcompletebook \else\rewritetocfilefalse \fi
+\edef\tempfile{\ifmsdos g:temp \else x \fi}
+\ifx\setmodes\undefined\else\setmodes\fi % modify from command line input
+
+% Certain defaults are forced by certain others.
+%
+\iffinal \centerpagetrue \edgetabstrue\fi
+
+% Initial definitions. (These should come before \input fonts.)
+%
+\catcode`\@ = \letter % For the macro file only.
+
+% We don't want register allocation information in the log,
+% so we redefine the relevant macro from plain.tex.
+
+\def\alloc@#1#2#3#4#5{\global\advance\count1#1 by 1
+ \ch@ck#1#4#2%
+ \allocationnumber=\count1#1 \global#3#5=\allocationnumber
+}
+
+% The fonts. This should come before defining the new character control
+% sequences that follow.
+%
+\input fonts
+
+\hyphenation{script-script base-line-skip no-base-line-skip line-skip
+ line-skip-limit max-dead-cycles output-penalty no-inter-line-skip
+ show-box-depth show-box-breadth if-hmode if-vmode if-mmode
+ back-spaces back-space par-indent tracing-on-line}
+
+{
+ \catcode`\| = 0
+ \catcode`\\ = \other
+ |global|let|bsc = \ % \bsc is a true backslash character.
+}
+
+\let\\ = \bsc
+
+\def\bslash{$\backslash$} % backslash suitable for printing
+\let\shriek = !
+\let\vbar = |
+{
+ \catcode `\[ = 1 \catcode `\] = 2
+ \catcode `\{ = \other \catcode `\} = \other
+ \global\let\lbracechar = {
+ \global\let\rbracechar = }
+]
+\def\blbrace{{\bt \{}}
+\def\brbrace{{\bt \}}}
+
+{
+ \catcode`\ =\other% Notice no spaces at beginning of next line.
+\gdef\otherspace{ }
+}
+
+\let\mathlbrace = \{ \let\mathrbrace = \}
+{
+ \catcode `\[ = 1 \catcode `\] = 2
+ \catcode `\{ = \other \catcode `\} = \other
+ \gdef\{[\ifmmode\mathlbrace\else [\bt {]\fi]
+ \gdef\}[\ifmmode\mathrbrace\else [\bt }]\fi]
+]
+
+
+% These are for debugging (less drastically than \tracingall or \loggingall).
+%
+\def\tron{\tracingmacros=2 \tracingcommands=2 \tracingonline=1}
+\def\troff{\tracingmacros=0 \tracingcommands=0}
+
+% \pagebreak should always cause a break, even if the resulting
+% page is empty.
+%
+\def\pagebreak{\null\vfill\eject}
+
+% \linebreak causes a line break in chapter headings, but outside of that
+% context we don't want it to do anything.
+%
+\let\linebreak = \relax
+
+
+% Parameters.
+%
+\parskip = 0pt plus 0.3pt
+\newdimen\codefuzz \codefuzz = 10pt % for \csdisplay, \example
+\hbadness = 4000
+\vbadness = 8000
+\hfuzz = 0.1pt % as in plain TeX
+\vfuzz = 0.1pt % as in plain TeX
+\exhyphenpenalty = 0 % we don't mind these
+\widowpenalty = 10000 % these are very bad
+\clubpenalty = 10000 % these are very bad too
+
+% Page margins.
+%
+% Note that the \newdimens can't be within an \if or a \def
+% because \newdimen is an \outer macro (thanks to DEK).
+%
+\newdimen\insidemargin \newdimen\outsidemargin
+\newdimen\topmargin \newdimen\bottommargin
+\newdimen\headmargin
+\newdimen\totalwidth \newdimen\totalheight
+\newdimen\oddoffset \newdimen\evenoffset
+\newif\ifnoheadline
+
+% \totalwidth and \totalheight are the actual trim size of the book.
+% \insidemargin, \outsidemargin, \topmargin, and \bottommargin are margins
+% with respect to the pages of the book, not the draft 8 1/2 x 11 pages.
+%
+
+% This makes it so that we only have to cut twice on a page.
+% 8.5" = 51.19125pc exactly.
+% \totalwidth should = \outsidemargin + \insidemargin + \hsize.
+%
+%\totalwidth = 7.375in % 44.4159375pc = 7 3/8".
+\totalwidth = 18.7325cm % 44.4159375pc = 7 3/8".
+\outsidemargin = 8pc
+\insidemargin = 10pc
+\hsize = \totalwidth
+\advance \hsize by -\outsidemargin
+\advance \hsize by -\insidemargin
+% \hsize should now be 26.4159375pc
+
+% Now that we know \hsize, we can set \parfillskip to eliminate (most)
+% widows.
+%
+\parfillskip = .75\hsize plus .06\hsize minus .75\hsize
+
+
+% \oddoffset and \evenoffset are the \hoffset values needed to
+% align the left edge of the virtual page with the left edge of the
+% draft paper (not the left edge of the book pages).
+%
+% The -1in below comes from the default margin, which the DVI driver must
+% set at 1in. Odd pages are on the left, even on the right.
+%
+% First, align the left edge of the virtual page with the left edge of the
+% draft page.
+%
+\oddoffset = -1in
+\advance\oddoffset by \insidemargin
+%
+\evenoffset = -1in
+\advance\evenoffset by \outsidemargin
+
+% For centered pages, move the virtual page right by half the trim width.
+%
+\ifcenterpage
+% \dimen0 = 8.5in
+ \dimen0 = 21cm
+ \advance\dimen0 by -\totalwidth
+ \divide\dimen0 by 2
+ \advance\oddoffset by \dimen0
+ \advance\evenoffset by \dimen0
+
+% For uncentered even-numbered pages, align the right edge of the virtual
+% page with the right edge of the draft paper so that we can remove the trim
+% of two-sided pages with a single cut.
+%
+\else
+% \advance\evenoffset by 8.5in
+ \advance\evenoffset by 21cm
+ \advance\evenoffset by -\totalwidth
+\fi
+
+\hoffset = \oddoffset % First page is numbered one.
+
+% Now for the vertical, which is simpler, since it doesn't vary from
+% page to page.
+% 11" = 66.2475pc exactly.
+% \totalheight should = \topmargin + \bottommargin + \vsize.
+%
+%\totalheight = 9.25in % 9 1/4" = 55.708125pc
+\totalheight = 24.39cm % 9 1/4" = 55.708125pc
+\topmargin = 6pc % Distance from top of page to baseline of text line 1
+\bottommargin = 6pc % Distance from last line to bottom of page.
+\topskip = 2pc % Distance from top of \box255 to baseline of text line 1
+% \vsize Distance from top of \box255 to last line of text.
+% \headmargin Distance from top of \box255 to top of page
+% We'll place the headline just above \box255
+
+\headmargin = \topmargin \advance \headmargin by -\topskip
+
+\vsize = \totalheight
+\advance \vsize by -\headmargin
+\advance \vsize by -\bottommargin
+% \vsize should now be 46.708125pc
+
+\voffset = -1in % align top of logical page with top of physical page
+\advance \voffset by \headmargin
+\ifcenterpage
+% \dimen0 = 11in
+ \dimen0 = 29cm
+ \advance\dimen0 by -\totalheight
+ \divide\dimen0 by 2
+ \advance\voffset by \dimen0
+\fi
+
+\topskip = 2pc % Distance from headline to first line of text.
+
+
+% Other formatting parameters.
+%
+% The basic increments we'll use in the layout.
+%
+\def\setskip#1 = #2 {%
+ \dimen0 = #2\baselineskip
+ \csname #1skipamount\endcsname =
+ \dimen0 plus .33\dimen0 minus .25\dimen0
+ \ignorespaces
+}
+\newskip\greaterskipamount
+\newskip\greatskipamount
+\newskip\biggerskipamount
+\newskip\medbigskipamount
+\newskip\medsmallskipamount
+\newskip\tinyskipamount
+
+\setskip greater = 2.5
+\setskip great = 2.0
+\setskip bigger = 1.5
+\setskip big = 1.0
+\setskip medbig = .75
+\setskip med = .5
+\setskip medsmall = .375
+\setskip small = .25
+\setskip tiny = .125
+
+\parindent = 1em
+\newdimen\normalindent \normalindent = \parindent
+
+\footnotemarkseparation = .16666em
+
+\abovelistskip = \smallskipamount
+\interitemskip = \tinyskipamount
+\belowlistskip = \smallskipamount
+\listleftindent = \parindent
+
+% Displays involve text and math. We don't want as much flexibility in
+% the glue as plain.tex sets.
+%
+\abovedisplayskip = \medsmallskipamount
+\abovedisplayshortskip = 0pt plus 2pt
+\belowdisplayskip = \medsmallskipamount
+\belowdisplayshortskip = \belowdisplayskip
+
+\newskip\intercapsuleskip \intercapsuleskip = .75\tinyskipamount plus 0.4pt
+\newdimen\capsulehangindent \capsulehangindent = 2pc
+
+\newskip\aboveconceptskip \aboveconceptskip = \bigskipamount
+
+
+\newskip\abovesectionskip \abovesectionskip = \greaterskipamount
+% No stretch or shrink below heads, according to A-W.
+\newskip\belowsectionskip \belowsectionskip = 1\biggerskipamount
+
+\newskip\abovesubsectionskip \abovesubsectionskip = \greatskipamount
+\newskip\belowsubsectionskip \belowsubsectionskip = 1\bigskipamount
+
+\newskip\abovedescriptionskip \abovedescriptionskip = \biggerskipamount
+\newskip\belowdescriptionskip \belowdescriptionskip = \medskipamount
+
+\newskip\explainskip \explainskip = \tinyskipamount
+\newskip\exampleskip \exampleskip = \smallskipamount
+
+\def\interexampleskip{\vskip\medsmallskipamount}
+\def\tinyskip{\vskip\tinyskipamount}
+
+% Space in which a symbol is shown in a columnated list of commands.
+\newdimen\symbolspace \symbolspace = 14pt
+
+% \colsindent is the indentation before material arranged in columns and
+% displayed, as in the list of Greek letters.
+\newskip\colsindent \colsindent = \parindent
+
+% The indentation for page lists in the index that don't fit on one line.
+\newdimen\indexpageindent \indexpageindent = 1pc
+
+% The indentation for subsidiary entries in the index. (Should be less
+% than \indexpageindent.)
+\newdimen\indexlevelindent \indexlevelindent = .5pc
+
+\newskip\codebaselineskip \codebaselineskip = \baselineskip
+
+% Fill the previous page with blank space before a command.
+%
+\def\cmdbreak{\par\nobreak\vfil\penalty 1000\vfilneg\par}
+
+% Penalties.
+%
+\newcount\conceptpenalty \conceptpenalty = -1500
+\newcount\intercmdnamepenalty \intercmdnamepenalty = 300
+\newcount\@intercmdnamepenalty \@intercmdnamepenalty = \intercmdnamepenalty
+
+
+
+% The output routine.
+%
+\output = {%
+ \onepageout
+ %
+ % Odd pages are right-hand pages.
+ %
+ % Note \pageno has been incremented when we get here -- it now refers
+ % to the page number of the page about to be typeset, not the page
+ % that we just shipped out.
+ %
+ \ifodd\pageno % \onepageout advances \pageno.
+ \global\hoffset = \oddoffset
+ \global\intercmdnamepenalty = 10000
+ \else
+ \global\hoffset = \evenoffset
+ \global\intercmdnamepenalty = \@intercmdnamepenalty
+ \fi
+}
+
+\ifdvi\else\output={%
+ \setbox0=\box255\deadcycles=0
+ \advancepageno
+ \global\advance \truepage by 1
+ \ifnum\outputpenalty>-20000\else \dosupereject \fi
+ }
+\fi
+
+\def\onepageout{%
+ \shipout\vbox{%
+ \offinterlineskip % The page should have vertically abutting boxes.
+ \ifodd\pageno
+ \cropmargin = \insidemargin
+ \else
+ \cropmargin = \outsidemargin
+ \fi
+ \addcropmarks % Does not affect the position.
+ \ifcenterpage \addtruepage \fi
+ %
+ \ifedgetabs \ifodd\pageno \ifnoheadline\else
+ \edgetabs % Does not affect the position.
+ \fi\fi\fi
+ %
+ \vbox to 0pt{\vskip-\headmargin \vskip-3.5pc
+ \rightline{\sevenrm\timestamp}\vss}%
+ %
+ \smash{\line{\the\headline}}% Simplified \makeheadline.
+ \pagebody
+ \vskip 2\normalbaselineskip
+ % The footline is needed on one page (for an example).
+ \line{\the\footline}%
+ }%
+ % Now the rest from \plainoutput:
+ \advancepageno
+ \global\advance\truepage by 1
+ \ifnum\outputpenalty>-20000\else \dosupereject \fi
+}
+
+\footline = {\hfil}
+
+% The headline always includes the name of the current chapter. This
+% goes on the inside. If more information, such as the concept we're
+% explaining, is included, it goes on the outside.
+%
+\headline = {%
+ % Produce the timestamp
+ \ifnoheadline
+ \hfil
+ \global\noheadlinefalse
+ \else
+ \let\\ = \ignorespaces
+ \ifodd \pageno % Right-hand page.
+ {\tenit \firstmark}\hfil {\tenbf \folio}%
+ \else % Left-hand page.
+ {\tenbf \folio}%
+ \hfil
+ {\tenit
+ \chaptername
+ \ifnum\pageno>0\ifback\else
+ \quad $\backslash$\quad\S\the\chapterno
+ \fi\fi
+ }%
+ \fi
+ \fi
+}
+
+% Sizes for cropmarks:
+%
+\newdimen\cropthick \cropthick = 0.4pt
+\newdimen\crophsize \crophsize = 1pc
+\newdimen\cropvsize \cropvsize = 1pc
+\newdimen\cropoffset \cropoffset = .0625in
+
+% Each of the following macros generates a quarter of a cropmark as
+% a zero-size box at the center point of the cropmark.
+% We want the cropmarks to be centered with respect to their thicknesses.
+
+\def\vcropdown {\hbox to 0pt{%
+ \kern -.5\cropthick
+ \vbox to 0pt{%
+ \vskip \cropoffset
+ \hrule width\cropthick depth\cropvsize height0pt
+ \vss}%
+ \kern -.5\cropthick}%
+}
+
+\def\vcropup {\hbox to 0pt{%
+ \kern -.5\cropthick
+ \vbox to 0pt{%
+ \vss
+ \hrule width\cropthick depth\cropvsize height0pt
+ \vskip \cropoffset}%
+ \kern -.5\cropthick}%
+}
+
+\def\hcropright{\rlap{\kern\cropoffset\smash{%
+ \vrule width\crophsize depth .5\cropthick height .5\cropthick}}}
+
+\def\hcropleft{\llap{\smash{%
+ \vrule width\crophsize depth .5\cropthick height .5\cropthick}%
+ \kern\cropoffset}}
+
+% \cropmargin will be set to the left margin on the current page.
+%
+\newdimen\cropmargin
+\def\cropline#1{\moveleft\cropmargin\hbox to \totalwidth{#1}}
+
+% \addcropmarks adds the cropmarks to a page while leaving everything else
+% alone. It assumes we're positioned at the top of the page.
+
+\def\addcropmarks{%
+ \vbox to 0pt{%
+ \offinterlineskip % contextually redundant but precautionary
+ \vskip -\headmargin % to get to logical top of page
+ \ifcenterpage
+ \cropline{\hcropleft\vcropup \hfil \vcropup\hcropright}
+ \else
+ \cropline{\hfil \vcropdown}%
+ \fi
+ \vskip\totalheight
+ \ifcenterpage
+ \cropline{\hcropleft\vcropdown \hfil \vcropdown\hcropright}%
+ \else
+ \cropline{\hcropright\hfil\hcropleft\vcropup\vcropdown\hcropright}%
+ \fi
+ \vss
+}}
+
+% \addtruepage adds a small page number near the upper right cropmark.
+%
+\newcount\truepage \truepage = 1
+\def\addtruepage{%
+ \vbox to 0pt{\vskip -\headmargin\vskip -2pc
+ \moveleft\cropmargin\hbox to \totalwidth{%
+ \twelvebf
+ \quad\TeX\ pour l'Impatient\hss
+ N\raise 3.3pt\hbox{o} \the\truepage\quad}%
+ \vss}%
+}
+
+
+% The mark information is output by \markinfo.
+%
+% We can use a different mark, e.g., a shorter heading, by calling
+% \changemark.
+%
+\newtoks\shortmark \shortmark = {}
+\newif\ifchangemark
+
+\def\markinfo#1{%
+ \ifchangemark
+ \mark{\the\shortmark}\changemarkfalse
+ \else
+ \mark{#1}%
+ \fi
+}
+
+\def\changemark#1{\shortmark = {#1}\changemarktrue}
+
+
+% ``Tabs'' down the side of the book.
+% Say \nextedgetab to move the thing down to the next.
+% Say \edgetabsfalse to turn them off.
+%
+\newcount\numtabs \numtabs = 7
+\newdimen\edgetabjump \edgetabjump = 0pt
+\def\nextedgetab{%
+ \advance\edgetabjump by \edgetabdepth
+}
+
+\def\settabdepth#1{%
+ \edgetabdepth = #1
+ \setbox\tabbox = \vbox to \edgetabdepth{%
+ \leaders
+ \vbox{\vskip \edgespacing
+ \hrule width\edgetabwidth height0pt depth\edgethick}%
+ \vfil}
+}
+
+\newskip\bigtab \newskip\smalltab
+\newskip\edgetabdepth
+\newbox\tabbox
+
+\bigtab = \totalheight \divide\bigtab by \numtabs
+\smalltab = .4\bigtab % five smalls make two bigs
+
+\newdimen\edgetabin \edgetabin = .25in
+\newdimen\edgetabbleed \edgetabbleed = .25in
+\newdimen\edgetabwidth
+ \edgetabwidth = \edgetabin
+ \advance \edgetabwidth by \edgetabbleed
+\newdimen\edgethick \edgethick = 1.2pt % line thickness
+\newdimen\edgespacing \edgespacing = .0pt % line spacing
+
+
+\def\edgetabs{\vbox to 0pt{%
+ \vskip-\headmargin
+ \vskip\edgetabjump
+ \hbox{%
+ \hskip \hsize
+ \hskip\outsidemargin
+ \hskip-\edgetabin
+ \copy\tabbox
+ }%
+ \vss
+}}
+
+
+% We can simplify \pagecontents (which is called by \pagebody) somewhat,
+% since we don't have \topinserts.
+%
+\def\pagecontents{%
+ \unvbox255 % The main page contents.
+ %
+ \ifvoid\footins\else % Footnotes are present.
+ \vskip\skip\footins
+ \footnoterule
+ \unvbox\footins
+ \fi
+}
+
+
+% The command chapters had a mini-index at the bottom of right-hand
+% pages. These definitions are the way to put entries into it.
+%
+% \minref generates a reference for the mini-index, and prints the
+% reference on the page, also.
+%
+\def\minref#1{%
+ #1% Print it on the page.
+ % That's it, now.
+}
+
+% Mini-index entry without printing the argument on the page.
+% Just ignore the argument now.
+%
+\def\minrefs#1{%
+ \ignorespaces
+}
+
+% This is used for producing the concept mini-index.
+%
+\def\minrefsdelim#1\endmark{\minrefs{#1}}
+
+% One last insertion-oriented thing:
+% we always want numbered footnotes, as defined in eplain.
+% We'll do them in 8-point type.
+%
+\let\@plainfootnote = \footnote
+\let\footnote = \numberedfootnote
+\everyfootnote = {\footnotefonts}
+
+
+% The \margin macro produces a marginal note at the same level as its call.
+% It should only be used in a paragraph or in the main vertical list.
+% It is nullified when we're printing the final copy.
+%
+\def\margin#1{%
+ \ifhmode
+ \vadjust{\printmarginnote{#1}}%
+ \else
+ \dimen0 = \prevdepth
+ \prevdepth = -1000pt
+ \printmarginnote{#1}%
+ \prevdepth = \dimen0
+ \fi
+ \ignorespaces
+}
+
+\def\printmarginnote#1{%
+ \hbox to 0pt{%
+ \hskip 1.1\hsize
+ \vbox to 0pt{%
+ \everypar = {}% Don't inherit hanging indentation.
+ \hsize = 1in \rightskip = 0pt plus 1fil \noindent \sevenrm
+ \let\tt = \eighttt
+ \parfillskip = 0pt plus 1fil
+ \baselineskip = 8pt #1%
+ \vss
+ }%
+ \hss
+ }%
+}
+
+%\iffinal
+\iftrue
+ \def\margin#1{\ignorespaces}
+\fi
+
+
+% Stuff to preserve page breaks inserted for the 2nd printing.
+% This macro takes one ``argument''.
+%
+\def\secondprinting{\afterassignment\finishsecondprinting \toks0 = }
+\def\finishsecondprinting{\the\toks0}
+
+
+
+% Parts of the book.
+%
+%
+% Chapters.
+%
+\let\chaptername = \empty
+\newcount\chapterno
+
+\def\chaprule{\vrule depth3\baselineskip height1.5pc width1pt}
+
+% Chapter openings should not have headlines.
+% The text of each chapter starts on a right-hand page in the final
+% book. The facing page has an illustration. This means that if the
+% previous chapter ended on a left-hand (i.e., even) page, we have to
+% eject an extra blank page.
+%
+\outer\def\chapter#1 \par{%
+ \ifcompletebook % Don't do the blank pages for proof copies.
+ \blankpage % the illustration page
+ % The first real chapter starts on page 1.
+ \ifnum\pageno < 0 \pageno = 1 \fi
+ \fi
+ %
+ \def\chaptername{ #1\Black}%
+ \advance\chapterno by 1
+ %
+ \setbox0 = \hbox{\Blue\chapternumeralfont
+ \kern1pt
+ \expandafter\kernchapno\the\chapterno\empty
+ \kern3pt}%
+ \vglue 0pt % But we get a \topskip of 2pc now.
+ \nointerlineskip
+ \leftline{%
+ \ifback\else
+ \vtop{%
+ \copy0
+ \vskip6pt
+ \hrule width\wd0 height2.2pc
+ }%
+ \kern 16pt
+ \fi
+ \chapterfonts % to get \baselineskip now
+ \chaprule
+ \kern 6pt
+ \vtop{%
+ \def\linebreak{\hfil\break}%
+ \noindent \chaptername}%
+ }%
+ \vskip 6pc plus.5pc minus.5pc
+ \noheadlinetrue
+ \toks0=\expandafter{\chaptername}
+ \edef\writechaptertoc{%
+ \noexpand\writenumberedtocentry{chapter}{\the\toks0}{\the\chapterno}%
+ }%
+ \writechaptertoc
+ %
+ % Use chaptername as first A-head (or only one).
+ \mark{\chaptername}%
+ \footnotenumber = 0 % Number footnotes from 1 in each chapter.
+ \beginit{CHAPTER}%
+ \noindent
+ \ignorespaces
+}
+
+\def\endchapter{%
+ \mark{\chaptername}% Use chapter name on last blank recto page
+ \vfil\eject % be sure everything's out before testing for recto
+ \ifodd\pageno
+ \message{Le chapitre se termine sur une page paire.}%
+ \blankpage
+ \fi
+ \endit{CHAPTER}%
+}
+%
+% \blankpage creates a blank page with no headline.
+% In the final book, it just advances the page number.
+% For the web edition, the blank pages serve no purpose except to keep
+% the indexing correct. I didn't want to rerun the index.
+%
+\def\blankpage{%
+ \iffinal
+ \advancepageno
+ \global \advance \truepage by 1
+ \else
+ \noheadlinetrue\pagebreak
+ \fi
+}
+
+% This hokey little macro kerns between the numerals in the chapter
+% number. We want to kern more between `11' then otherwise; also, we
+% want to remove the extra space before the chapter number, and after
+% `11'.
+%
+\def\kernchapno#1#2{%
+ \ifx\empty#2\else \kern-3pt \fi
+ #1%
+ \ifx\empty#2\else
+ \if1#2%
+ \kern-.1em
+ \else
+ \kern-.05em
+ \fi
+ \fi
+ #2%
+ \if 1#2\kern-.1em\fi
+}
+
+% Sections.
+%
+\newif\ifheading % Avoid breaking after a heading.
+
+% get section numbers for the fdl only, since it has internal references.
+\let\fdlkludge=\empty
+
+% The heading flag is turned on by headings and turned off
+% at the start of a description.
+%
+\outer\def\section#1 \par{%
+ \par % be sure we're in vertical mode
+ \saveskip = \lastskip % will be 0 if no skip
+ \cmdbreak
+ \combineskips\abovesectionskip
+ \dimen0 = 2.5\baselineskip \advance\dimen0 by -\topskip
+ \vskip -\dimen0
+ \vglue \dimen0
+ %
+ {\sectionfonts \leftline{\fdlkludge\Red #1\Black}}%
+ %
+ \markinfo{#1}%
+ \writetocentry{section}{#1}%
+ \nobreak
+ % Don't go into horizontal mode within the command descriptions.
+ %
+ \vskip\belowsectionskip
+ \ifcommands \else \noindent \fi
+ \headingtrue
+ \everypar = {\headingfalse \global\everypar = {}}%
+ % only gets executed for \par in horizontal mode
+ \ignorespaces
+}
+
+
+% Subsections. We don't want a break at the glue if we were preceded by
+% a \nobreak.
+%
+\def\subsection#1 \par{%
+ \par % be sure we're in vertical mode
+ \saveskip = \lastskip % will be 0 if no skip
+ \ifheading % Did we just have \section?
+ \nobreak
+ \fi
+ \combineskips\abovesubsectionskip
+ \dimen0 = 2.5\baselineskip \advance\dimen0 by -\topskip
+ \vskip -\dimen0
+ \vglue \dimen0
+ %
+ {\subsectionfonts
+ \leftline{\vrule width.5em height1.2ex depth.2ex \enspace \RawSienna #1\Black}}%
+ \writetocentry{subsection}{#1}%
+ \nobreak
+ % Don't go into horizontal mode within the command descriptions.
+ \vskip\belowsubsectionskip
+ \ifcommands \else \noindent \fi
+ \headingtrue
+ \everypar = {\headingfalse \global\everypar = {}}%
+ % only gets executed for \par in horizontal mode
+ \ignorespaces
+}
+
+% \combineskips combines the current skip (#1) with the previous skip
+% (which must be in \saveskip), and effectively skips by the larger of
+% the two.
+%
+\newskip\saveskip
+\def\combineskips#1{\ifdim\saveskip<#1\vskip-\saveskip \vskip#1\fi}
+
+
+
+% List macros.
+%
+
+% We want to use different names than eplain.
+%
+\let\ulist = \unorderedlist
+\let\endulist = \endunorderedlist
+%
+\let\olist = \numberedlist
+\let\endolist = \endnumberedlist
+
+\let\compact = \listcompact
+
+% The \noindent here keeps us from getting indentation on the first line.
+% It also makes the display into a `short' display, FYI.
+% The \belowdisplayskip and \abovedisplayskip glue are inserted by the
+% display.
+%
+\long\def\display#1{%
+ \ifvmode \noindent \fi
+ $$\vtop{\everypar = {}\hsize = \displaywidth
+ \parfillskip = 0pt plus 1fil % don't worry about widows
+ \noindent #1\par\global\savedepth = \prevdepth}$$%
+ \endgraf
+ \prevdepth = \savedepth
+}
+
+% \vdisplay is like \display, except it's for vertical mode material. Use it
+% to avoid an unwanted initial lineskip.
+%
+\long\def\vdisplay#1{%
+ \ifvmode \noindent \fi
+ $$\vtop{\everypar = {}\hsize = \displaywidth
+ \parfillskip = 0pt plus 1fil % don't worry about widows
+ #1\par\global\savedepth = \prevdepth}$$%
+ \endgraf
+ \prevdepth = \savedepth
+}
+
+
+
+% Indexing.
+% Derived from Knuth's manmac macros.
+%
+\newwrite\index
+
+\immediate\openout\index = \jobname.idx
+\newif\ifsilent
+
+% We need ^ to be active temporarily, while we define it.
+%
+{ \catcode`\^ = \active
+%
+\gdef^{%
+ \ifmmode
+ \let \nextaction = \sp
+ \else
+ \let \nextaction = \beginindexref
+ \begingroup
+ \catcode `| = \other \catcode `^ = \other
+ \fi
+ \nextaction
+}}
+
+\def\beginindexref{\futurelet\next\checksilence}
+
+{% And for here, we need ^ to be deactivated
+\catcode `^ = \other
+
+\gdef\checksilence{%
+ \if ^\next
+ \silenttrue \let\nextaction = \secondhat
+ \else
+ \silentfalse \let\nextaction = \checkbar
+ \fi
+ \nextaction
+}
+
+% Eat the `^' that we saw would be the next token.
+%
+\gdef\secondhat^{\checkbar}
+
+} % end scope where ^ is \other
+
+\def\checkbar{\futurelet\next\iswitch}
+
+% Here we start reading the text of the actual index entry;
+% we've determined whether it's silent or not.
+%
+% We handle the following cases:
+% ^{alpha} and ^^{alpha}
+% ^|alpha| and ^^|alpha|
+% ^|\alpha| and ^^|\alpha|
+%
+% When this is called, \next is either `|' or `{'.
+%
+\def\iswitch{%
+ \ifx |\next
+ \let \nextaction = \checkbackslash
+ \else
+ \let \nextaction = \normalidx
+ \fi
+ \nextaction
+}
+
+\def\checkbackslash|{%
+ % within |...| we allow anything (but another |)
+ \deactivate \catcode `\ = \other
+ \futurelet\next\litidx
+}
+
+% The thing after the ^ is a |. We have further checking to do -- is
+% the next character a \?
+%
+{ % reverse \ and /
+\catcode`\/ = 0
+\catcode`\\ = \other
+/gdef/litidx{%
+ /if \/next
+ /expandafter/litidxA
+ /else
+ /expandafter/litidxB
+ /fi
+}
+
+% The thing being indexed starts with a \.
+%
+/gdef/litidxA \#1|{%
+ /ctsidxref{#1}%
+ /litidxswitch{/\#1}%
+}
+
+% The thing being indexed is just a word.
+%
+/gdef/litidxB #1|{%
+ /ttidxref{#1}%
+ /litidxswitch{#1}%
+}
+}% end reversal of \ and /
+
+% The thing after the ^ is not a |.
+%
+\def\normalidx#1{%
+ \ifsilent
+ \aftergroup\ignorespaces
+ \else
+ #1%
+ \fi
+ \idxref{#1}%
+ \endgroup % group started by \iswitch.
+}
+
+\def\litidxswitch#1{%
+ \ifsilent
+ \aftergroup\ignorespaces
+ \else
+ {\tt #1}%
+ \fi
+ \endgroup % group started by \iswitch.
+}
+
+
+
+% Indexing macros for external use.
+
+% \idxref generates an index entry for #1. If #1 contains any control
+% sequences, they are treated literally.
+%
+\def\idxref#1{\indexwrite{#1}N\ignorespaces}
+
+
+% For creating an index entry for control space.
+{\catcode `\ =\other
+\gdef\blankidxref{\ctsidxref{ }}
+}
+
+% I removed this macro from eplain because \csname works as well, but
+% since the macros below are already written to use it ...
+\def\@tokstostring#1{\@ttsA#1 \@ttsmarkA}%
+\let\tokstostring=\@tokstostring
+\def\@ttsA#1 #2\@ttsmarkA{%
+ \@ifempty{#1}\else
+ \@ttsB #1\@ttsmarkB
+ \@ifempty{#2}\else
+ \@spacesub\@ttsA#2\@ttsmarkA
+ \fi
+ \fi
+}%
+\def\@ttsB#1{%
+ \ifx #1\@ttsmarkB\else
+ \string #1%
+ \expandafter\@ttsB
+ \fi
+}%
+\def\@ttsmarkB{\@ttsmarkB}% should never be expanded
+%
+\def\@spacesub{+}%
+\let\spacesub = \@spacesub
+%
+\def\@ifempty#1{\@@ifempty #1\@emptymarkA\@emptymarkB}%
+\def\@@ifempty#1#2\@emptymarkB{\ifx #1\@emptymarkA}%
+\def\@emptymarkA{\@emptymarkA}% Again, so \ifx won't complain.
+
+% #1 is the index term, #2 is the reference as in
+% Diacritical mark, see accent.
+
+\def\idxsee#1#2{%
+ \begingroup
+ \def\spacesub{\otherspace}%
+ \edef\nextaction{\write\index{\tokstostring{#1}::N::*\tokstostring{#2}}}%
+ \nextaction
+ \ignorespaces
+\endgroup}
+
+
+% \ttidxref generates an index entry for #1 in the program font.
+% If #1 contains any control sequences, they are treated literally.
+%
+\def\ttidxref#1{\indexwrite{#1}T\ignorespaces}
+
+
+% \ctsidxref generates an index entry for a control sequence. #1
+% should not have a preceding backslash, so that the proper call for
+% indexing \alpha is \ctsidxref{alpha}.
+%
+\def\ctsidxref #1{\indexwrite{#1}C\ignorespaces}
+
+% \indexchar is needed to generate index entries for three especially
+% difficult single characters: {, }, and \. They are blank-delimited.
+%
+\def\indexchar{\begingroup \deactivate \indexcharA}
+\def\indexcharA#1 {\indexwrite{#1}T\endgroup}
+
+% \pix indicates that the next index entry is a principal one.
+%
+\newif\ifpix
+\def\pix{\global\pixtrue}
+
+% \bix and \eix indicate that the next index entry begins or ends a
+% range of pages.
+%
+\newif\ifbix \def\bix{\bixtrue}
+\newif\ifeix \def\eix{\eixtrue}
+
+% #1 is the text of the entry, #2 is N (normal), T (typewriter) or
+% C (control sequence) or `cs' for now.
+%
+\def\indexwrite#1#2{\begingroup
+ \def\spacesub{\otherspace}%
+ \edef\tts{\tokstostring{#1}}%
+ \edef\nextaction{\write\index{\tts::#2::\noexpand\number\noexpand\pageno
+ \ifbix B\fi\ifeix E\fi\ifpix P\fi}}%
+ \nextaction
+ \global\pixfalse \global\bixfalse \global\eixfalse
+\endgroup}
+
+{\catcode `\^ = \other \gdef\twocarets{^^}}
+
+
+% For generating index entries with weird characters, we need to deactivate
+% them: { } blank \ and substitute [ ] ! for { } \ . \recat does this.
+% It should be enclosed in a group (which must end in `]').
+\def\recat{%
+ \aftergroup\ignorespaces
+ \catcode `\! = 0 \catcode `[ = 1 \catcode `] = 2
+ \catcode `\ = \other \deactivate
+}
+
+
+
+% Macros for the front matter.
+%
+% Space at the top of the frontmatter pages.
+%
+\def\sinkage{\vglue 7pc \relax}
+
+% And at the top of the backmatter pages.
+%
+\def\backsinkage{\vglue 2pc \relax}
+
+% \frontchapter doesn't care if we're on an even page or an odd page.
+%
+\def\frontchapter#1 \par{%
+ \def\chaptername{ #1}%
+ \leftline{%
+ \chapterfonts
+ \chaprule
+ \kern 6pt
+ \vtop{%
+ \def\linebreak{\hfil\break}%
+ \noindent \Blue\chaptername\Black}%
+ }%
+ \vskip 4pc
+ \noheadlinetrue
+ % Use chaptername as first A-head (or only one)
+ \mark{\chaptername}%
+ \noheadlinetrue
+ \noindent \ignorespaces
+}
+
+
+% We are called from inside a group, so we can redefine the \toc... macros.
+%
+\def\shortcontents{{%
+ \firsttoctrue
+ \backfalse
+ \shorttocfonts
+ \let\tocchapterentry = \shorttocchapter
+ \let\tocsectionentry = \gobblethree
+ \let\tocsubsectionentry = \gobblethree
+ \halign{\hfil\strut##&\strut ##\hfil\cr
+ \readtocfile
+ \crcr}}%
+ \pagebreak
+ \global\backfalse
+}
+
+% #1 is the chapter name, #2 the chapter number, #3 the page number.
+%
+\def\shorttocchapter#1#2#3{%
+ \ifback\else#2\quad $\backslash$\quad\fi&#1\qquad
+ \raise3pt\hbox{\vrule height2pt width4pt depth2pt}$\,\,$#3\cr
+}
+
+% Yes, we read the entire contents (several pages) as one alignment.
+%
+\def\contents{{%
+ \firsttoctrue
+ \backfalse
+ \tocfonts
+ \interlinepenalty = 100
+ \halign{\hfil\strut##&\strut ##\hfil\cr
+ \readtocfile
+ \crcr}}%
+ \pagebreak
+ % We want to end the contents on a recto page, even if it's blank
+ \ifodd\pageno\pagebreak\fi % leaves us on an even page.
+ \global\backfalse
+}
+
+\newif\iffirsttoc
+
+\def\tocchapterentry#1#2#3{%
+ \iffirsttoc
+ \global\firsttocfalse
+ \else
+ \noalign{\penalty-1000 \bigskip\smallskip}%
+ \fi
+ %
+ \ifback\else\bf#2\quad $\backslash$\quad\fi
+ &\bf#1\qquad\raise3pt\hbox{\vrule height2pt width4pt depth2pt}%
+ $\,\,$#3\cr
+ \noalign{\nobreak\vskip2pt}%
+}
+
+\def\tocsectionentry#1#2#3{%
+ \noalign{\penalty-500 \vskip\medsmallskipamount}%
+ &\it #1\quad \openbox$\,\,$\rm #3\cr
+}
+
+\def\tocsubsectionentry#1#2#3{%
+ &\qquad #1\quad $\cdot\,$#3\cr
+}
+
+\def\openbox{\ht0 = 1.75pt \dp0 = 1.75pt \wd0 = 3.5pt
+ \raise 2.75pt \makeblankbox{.2pt}{.2pt}%
+}
+
+\newif\ifback
+% \ifback is true when we're doing the table of contents and are about
+% to do the back matter. It is also true just before we do the back matter
+% chapters (really, only the index).
+%
+\def\backmatter{\write\tocfile{\noexpand\setback}\backtrue}
+\def\setback{\noalign{\bigskip\global\backtrue}}
+
+
+
+% Macros for the examples chapter.
+%
+% \doexamples is called with the name of the examples file
+% Each example is ended by ::: (including the last one)
+% A line starting with ~ is executed in the output (without the ~)
+% but dropped from the input.
+%
+% Within the input, ! is an escape character, but {} are not recognized.
+% This provides a limited control sequence capability, which is sufficient
+% for delimited macros and therefore for cross-references (see \xrefdelim).
+% !! stands for !.
+%
+\def\endmark{:::}
+
+\newif\ifnotatend \newif\ifnotatendfile \newif\iftildeline
+\newread\exfileA \newread\exfileB \newwrite\exfileC
+\newcount\examplenumber
+
+\def\doexamples#1{%
+ % Here we assume that two read-only openings of the same file are OK.
+ \immediate\openin\exfileA = #1
+ \immediate\openin\exfileB = #1
+ \loop
+ \advance\examplenumber by 1
+ \reader
+ \ifx\holder\empty \notatendfilefalse \else \notatendfiletrue \fi
+ \ifnotatendfile
+ \dooneexample
+ \repeat
+}
+
+
+% We want control sequences to be executed as the input of each example
+% is formatted, but we don't want to execute them for the output of each
+% example until we generate that output with an \input command.
+% Therefore, we treat ! differently for \holder, which produces example
+% input, and \holderA, which produces example output.
+%
+% We can't say \global\immediate\read, but \immediate is implied with \read.
+%
+\def\reader{{\deactivate
+ \catcode`\! = \other % To execute control sequences on \input.
+ \catcode`\^^M = 9 \global\read\exfileA to \holder
+ %
+ \catcode`\! = 0 % To execute control sequences right away.
+ \obeyspaces \global\read\exfileB to \holderA
+ }%
+}
+
+\def\dooneexample{{%
+ % We want to mention \! in one of the examples:
+ \edef\examplenum{\numbername\examplenumber}%
+
+ \immediate\openout\exfileC = \tempfile
+
+ \catcode`\| = \other % No literal code in these examples.
+ \chardef\! = `\! % !! means a literal ! character.
+
+
+ % Collect the input page, as it is to be printed, in a box
+ % At the same time, write out each line to \exfileC
+ % We make the box 0pt tall to avoid problems with overfull pages.
+ \setbox\xmpinput = \vbox to 0pt{%
+ %
+ \baselineskip = \codebaselineskip
+ \loop
+ \ifx\endmark\holder \notatendfalse \else\notatendtrue \fi
+ \ifnotatend
+ \expandafter\tildecheck\holder \empty \marker
+ \iftildeline\else
+ \leftline{\tt\frenchspacing \holderA \thinspace}%
+ \immediate\write\exfileC{\holder}%
+ \fi
+ \reader
+ \repeat
+ \vss % reduce height to 0pt
+ }% end \vtop
+
+ \immediate\closeout\exfileC
+
+ {%
+ \maxdepth = \maxdimen % allow long input
+ \vfill\eject
+ \catcode`\! = 0
+ \restoreplainTeX
+ {%
+ \let\eject = \relax \input\tempfile
+ % Every example ends with \bye, but \bye is disabled in the main text.
+ \vfill\par\penalty-10000
+ \global\footline = {\hfil}%
+ }%
+ \box\xmpinput
+ }%
+}}
+
+{
+ \catcode `\~ = \other % So the \ifx works.
+ \gdef\tildecheck#1#2\marker{%
+ \ifx #1~%
+ \immediate\write\exfileC {#2}\tildelinetrue
+ \else
+ \tildelinefalse
+ \fi
+ }
+}
+
+% This definition is more or less repeated verbatim in the first example
+% in xmptext.tex.
+%
+\def\xmpheader #1/#2{%
+ {\exampletitlefonts \leftline{Exemple #1~:\quad \bi#2}}%
+ \vglue .5\baselineskip
+ \count255 = \pageno
+ \xdef\examplepage{\number\count255}%
+ \markinfo{Exemple #1~: #2}
+ \ifrewritetocfile
+ \write\tocfile{\string\tocsectionentry{#2}{}{\examplepage}}%
+ \fi
+}
+% Let's number examples automatically; it makes it easier to move them
+% around and add new ones.
+
+\def\xmpnum{\number\examplenumber}
+
+\newbox\xmpinput
+
+
+% \negthin lets us put `\!' in examples.
+
+\def\negthin{\ifmmode \mskip-\thinmuskip \else \char`\\ \char`\! \fi}
+
+\def\xmpheaddef{voir \xref{xmphead}}
+
+\def\restoreplainTeX{%
+ % Restore plain TeX's parameters (except for \hsize and \hoffset).
+ \parindent = 20pt
+ \parskip = 0pt plus 1pt
+ \parfillskip = 0pt plus 1fil
+ \hfuzz = 0.1pt
+ \hbadness = 1000
+ \abovedisplayskip=12pt plus 3pt minus 9pt
+ \abovedisplayshortskip=0pt plus 3pt
+ \belowdisplayskip=12pt plus 3pt minus 9pt
+ \belowdisplayshortskip=7pt plus 3pt minus 4pt
+ \everymath = {}%
+ \everydisplay = {}%
+ \centereddisplays
+ \let\vfootnote = \@plainvfootnote
+ \let\footnote = \@plainfootnote
+ \let\tenrm = \oldtenrm
+ \textfont0 = \tenrm
+ \rm
+ \ignorespaces
+}%
+
+
+
+% Macros for the concepts chapter.
+%
+%
+% Start off the chapter.
+%
+\def\beginconcepts{\openout\conceptfile = \jobname.ccs }
+\def\endconcepts{\closeout\conceptfile}
+
+\newwrite\conceptfile
+
+% \concept produces a concept heading and also generates a crossreference
+% suitable for the mini-index. It even works for concepts with several words
+% or containing control sequences like `\ascii'.
+%
+\def\concept#1 \par{%
+ \par%\vfill\eject
+ %k \cmdbreak
+ \penalty\conceptpenalty\vskip\aboveconceptskip
+ %k \vskip 0pt plus 1pt % allow a little more stretch
+ \noindent
+ % generate the index entry
+ \ifconceptindex \else \global\indextoks = {\idxref{#1}}\fi
+ \conceptindexfalse
+ \pix\bix\the\indextoks
+ %
+ {\bt \let\it=\bti \unskip\null \RawSienna\bf #1.\Black\hskip1em plus.2em minus.2em }%
+ \markinfo{#1}%
+ \xrdef{#1}%
+ \write\conceptfile{\string\doconcept{#1}{\number\pageno}}%
+ \beginit{CONCEPT}%
+ \nobreak
+ \ignorespaces
+}
+
+\def\endconcept{%
+ \par % always go to vertical mode here
+ \eix\the\indextoks
+ \endit{CONCEPT}%
+ \ignorespaces
+}
+
+\def\doconcept#1#2{\hbox{#1\quad #2}}
+
+% Sometimes we want to index a concept under some other name than the
+% concept name, e.g., indexing `delimiter' as `delimiters'. The
+% \conceptindex macro lets us do this.
+%
+\newif\ifconceptindex
+\newtoks\indextoks
+\def\conceptindex#1{%
+ \conceptindextrue
+ \global\indextoks = {\idxref{#1}}%
+ \ignorespaces
+}
+
+
+% Commands for cross-referencing within the concepts chapter.
+% Each refterm has the form {a} or {a:b}, where b is the term to
+% actually reference (e.g., \refterm{\PlainTeX:\plainTeX}).
+%
+\def\refterm#1{%
+ \reftermA #1:\endmark % Parse the stuff.
+ \expandafter\minrefsdelim\termtoref\endmark
+ \relax % Cancel the \ignorespaces.
+}%
+\def\reftermA#1:{\reftermfirst{#1}\futurelet\next\reftermB}
+\def\reftermB#1\endmark{\ifx\endmark \next \else \reftermsecond#1\fi}
+
+\def\reftermfirst#1{#1\def\termtoref{#1}}
+\def\reftermsecond#1:{\def\termtoref{#1}}%
+
+% The defining sentence for a concept.
+%
+\def\defterm#1{{\it #1\/}}
+
+
+% This macro prints the single page that will go on the back cover.
+%
+\def\printconceptpage{%
+ % Make sure this is considered an odd page.
+ \ifodd\pageno\else\blankpage\fi
+ \noheadlinetrue
+ \advance\hsize by 2pc
+ \vglue2pc % Plus a \topskip of 2pc.
+ {\sectionfonts \leftline{Liste des concepts}}%
+ \vskip\belowsectionskip
+ {\conceptpagefonts
+ \parindent=0pt
+ \makecolumns 94/3:
+ \input \jobname.ccs
+ \vfil
+ % Put the `logo' at the bottom of the page.
+ \rightline{\thisbook}%
+ }%
+ \eject
+}
+
+
+
+% Macros for the commands chapters.
+%
+% \ifcommands is true when we're within \begindescriptions ...
+
+\newif\ifcommands
+
+
+% \begindescriptions should be called to start the actual control sequences.
+%
+\outer\def\begindescriptions{\beginit{DESCRIPTIONS}%
+ % The following definitions are local to this chapter.
+ %
+ \let\example = \commandexample
+ \let\endexample = \endcommandexample
+ \interlinepenalty = 50
+ %
+ \commandstrue
+ \ignorespaces
+}
+
+% The \endgroup that \enddescriptions does must come after the page
+% break, so the last page of descriptions will get a mini-index.
+%
+\def\enddescriptions{%
+ \vskip -\lastskip % undo the skip created by \enddesc
+ \endit{DESCRIPTIONS}%
+ \ignorespaces
+}
+
+
+% Begin or end the description of a control sequence or group thereof.
+%
+\def\begindesc{%
+ \par % force vertical mode
+ \saveskip = \lastskip % will be 0 if no skip
+ \ifheading % Did we just have \section or \subsection?
+ \nobreak
+ \else
+ \cmdbreak
+ \fi
+ \combineskips\abovedescriptionskip
+ \headingfalse
+ \beginit{DESCRIPTION}%
+ \beginit{COMMANDS}%
+ % Each command name is set as a paragraph (for reasons I don't
+ % remember, \leftline doesn't work because of the way the manuscript
+ % was typed), and so \clubpenalty will be the penalty at the
+ % interline glue (see p.96).
+ \clubpenalty = \intercmdnamepenalty
+ \parfillskip = 0pt plus 1fil
+ \ignorespaces
+}
+
+\def\enddesc{%
+ \nobreak % if we need a break, we'll get it from the next group opener
+ \vskip\belowdescriptionskip
+ \endit{DESCRIPTION}%
+ \ignorespaces
+}
+
+% Begin the explanation of a control sequence. Don't break at the
+% space above the explanation, or the interline glue before the first line.
+%
+\def\explain{%
+ \par
+ \endit{COMMANDS}%
+ \nobreak \vskip\explainskip
+ \interlinepenalty = 50
+ \nobreak \noindent
+ \ignorespaces
+}
+
+% Here is how \example looks in the text:
+% \example
+% ...
+% |
+% \produces
+% ...
+% \endexample
+%
+% repeated an indefinite number of times.
+%
+% We want to set the code of an example in a box so as to prevent it from
+% being broken across pages. By using \vtop we assure that the code is the
+% right distance from the `Example:' line. In order to keep the `produces:'
+% the right distance from the last code line, we save the depth of that code
+% line and then fool TeX into thinking that the \vtop has that depth by
+% assigning it to \prevdepth. If we didn't do this, the last line of the code
+% would be too close to the `produces:' (as indeed it was in earlier versions
+% of the book.
+%
+\newdimen\savedepth
+
+{\makeactive|
+\gdef\commandexample{% a.k.a. \example, inside \begindescriptions.
+ \cmdbreak\vskip\exampleskip
+ \leftline{\it Exemple~:}%
+ \nobreak % At the interline glue.
+ \beginit{EXAMPLE}%
+ \parfillskip = 0pt plus 1fil
+ \hbox\bgroup\hskip\parindent\vtop\bgroup
+ \begincs
+ \let | = \endcode
+ \advance\hsize by -\parindent
+ \parindent = 0pt
+ \bgroup\obeywhitespace
+}}%
+
+\def\endcode{%
+ \egroup % end \obeywhitespace group
+ \par\global\savedepth=\prevdepth
+ \egroup % end inner \vbox
+ \egroup % end outer \hbox
+ \prevdepth = \savedepth
+ \ignorespaces
+}
+
+% \dproduces should be used when the following material is a math
+% display.
+%
+\newif\ifexampledisplay
+\def\dproduces{\global\exampledisplaytrue \produces}
+
+\newif\ifproduces
+
+% \produces puts its material into a vbox so it won't be broken.
+% The material starts in VERTICAL MODE! It uses the plainTeX conventions
+% except that \parindent is 0pt.
+
+\def\produces{%
+ \producestrue
+ \ifodd\pageno \par \nobreak \else \cmdbreak\fi
+ \vskip\tinyskipamount
+ \noindent {\it produit\ifexamplelog\ dans la log\examplelogfalse\fi~:}%
+ \vadjust{\nobreak}% At the interline glue.
+ \ifexampledisplay
+ \centereddisplays
+ \else
+ \par\nobreak
+ \advance\hsize by -\parindent
+ \savedepth = \prevdepth
+ \nointerlineskip
+ \hbox\bgroup\hskip\normalindent
+ \vtop\bgroup \restoreplainTeX \parindent = 0pt
+ \prevdepth = \savedepth
+ \fi
+}%
+
+% we need another ``produces'' form for when a command puts things in
+% the log. In this case, the produces text also ends with a |.
+%
+\newif\ifexamplelog
+{\makeactive|
+\gdef\logproduces{\examplelogtrue\produces
+ \begincs
+ \def |{\endcode\producesfalse}%
+ % Every line is set as a paragraph, so we get one \parindent for free.
+ % But we also did \advance\leftskip in \produces, so now we have two.
+ % We only want one.
+ \advance\leftskip by -\parindent
+ \bgroup\obeywhitespace
+}}%
+
+\def\nextexample{\endexample\interexampleskip\example}
+
+\def\endcommandexample{%
+ \par % force vertical mode, set previous paragraph
+ \ifproduces \ifexampledisplay \global\exampledisplayfalse \else
+ \global\savedepth = \prevdepth
+ \egroup % Matches the \vtop in either the \produces or the \example.
+ \egroup % Matches the \hbox in \producesbox.
+ \global\producesfalse
+ \par
+ \prevdepth = \savedepth
+ \fi\fi
+ \endit{EXAMPLE}%
+ \ignorespaces
+}
+
+\def\see{%
+ \ifodd\pageno\nobreak\fi % don't put at the top of a verso page
+ \vskip -\lastskip % should be \belowdescriptionskip
+ \bigskip
+ \noindent
+ {\tenbi \spaceskip = 3.33pt plus 2pt minus 1.1pt
+ \parfillskip = 0pt plus 1fil
+ Voir aussi~: %k \hskip 1em plus .5em minus .25em
+ }%
+ \ignorespaces
+}%
+
+
+\newif\ifxref \xreftrue
+
+% \aux acts as a prefix to a \cts command, specifying that a
+% cross-reference should not be generated.
+%
+\def\aux{\xreffalse}
+
+% So does \easy, which prints a hand, pointing at the control sequence.
+% (The hand font doesn't define an em.)
+%
+\newif\ifeasy
+\let\easy = \easytrue
+\def\testeasy{\ifeasy\llap{\hand\ \kern 6pt}\easyfalse\fi}
+
+% \cts typesets the beginning of a control sequence description, and
+% generates an index entry and cross-reference definition for it. The
+% control sequence name must be delimited by a blank, since there may be
+% parameters that follow. The control sequence name can contain special
+% characters; they are deactivated. The initial \ must be omitted.
+%
+\def\cts{\begingroup \deactivate \ctsA}
+\def\ctsA#1 {\endgroup \ctsB{#1}}
+\def\ctsB#1#2{%
+ \ctsbasic{\\#1}{#2}%
+ \ifxref \ctsxrdef{#1}\else \xreftrue \fi
+ \pix\ctsidxref{#1}%
+}
+
+% \ctsx is like \cts, but separates the control sequence name and the
+% text by more space. (`x' for `extra')
+%
+\def\ctsx{\begingroup \deactivate \ctsxA}
+\def\ctsxA#1 {\endgroup \ctsxB{#1}}
+\def\ctsxB#1#2{%
+ \ctsbasic{\\#1}{\quad #2}%
+ \ifxref \ctsxrdef{#1}\else \xreftrue \fi
+ \pix\ctsidxref{#1}%
+}
+
+
+% \ctscol is like \cts, but doesn't start a new paragraph. It's used in
+% in columns of cs's and their explanations.
+%
+\def\ctscol#1 #2{%
+ {\bt \\#1}\quad #2%
+ \ifxref \ctsxrdef{#1}\else \xreftrue \fi
+ \pix\ctsidxref{#1}%
+}
+
+% \ctsbasic does the actual printing of a cs name. It's needed on its
+% own for `\ '. It does not generate any index or cross-reference
+% entries. #1 is the command name, #2 some (possibly empty) text to go
+% next to it.
+%
+\def\ctsbasic#1#2{%
+ \par
+ \nobreak % At the \parskip glue the \noindent will produce.
+ \noindent\testeasy {{\bt #1}\space #2}%
+}
+
+% \ctsxrdef generates a control sequence cross-reference definition.
+% For example, `\ctsxrdef{@star}' generates a cross-reference definition
+% for `\@star'.
+%
+\def\ctsxrdef#1{\expandafter\xrdef\csname#1\endcsname}
+
+% \ctsact prints an active character #1 and generates an index entry
+% for it. #1 is blank-delimited. \ctsact does not generate a
+% cross-reference definition.
+%
+\def\ctsact{\begingroup \deactivate \ctsactA}
+\def\ctsactA#1 {\endgroup
+ \ctsbasic{#1}{}%
+ \pix\ttidxref{#1}}
+
+% \ctspecial prints a control sequence #1 and generates an index
+% entry for it. #1 is blank-delimited. \ctspecial does not
+% automatically generate a cross-reference definition, and so it's used
+% for things like \newbox and \%.
+%
+\def\ctspecial{\begingroup \deactivate \ctspecialA}
+\def\ctspecialA#1 {\endgroup
+ \ctsbasic{\\#1}{}%
+ \pix\ctsidxref{#1}%
+}
+
+% \ctspecialx is like \ctspecial, but leaves more space after its
+% argument. We want ` and ' to come from cmtt, instead of Optima, so we
+% call \mapquotes before reading the argument. This only affects the \`
+% and \' descriptions.
+%
+\def\ctspecialx{\begingroup \deactivate \mapquotes \ctspecialxA}
+\def\ctspecialxA#1 {\endgroup
+ \ctsbasic{\\#1}{}\quad
+ \pix\ctsidxref{#1}%
+}
+
+% \ctsdisplay has a blank-delimited argument consisting of a control
+% sequence such as alpha. It produces $\alpha$ followed by \alpha.
+%
+\def\ctsdisplay#1 {\basicdisplay {$\csname #1\endcsname$}{\\#1}%
+ \ifxref\ctsxrdef{#1}\else\xreftrue\fi \pix\ctsidxref {#1}}
+
+% \ctsdoubledisplay has a blank-delimited argument consisting of a
+% control sequence such as bigvee. It produces $\bigvee$ and
+% $\big\bigvee$ followed by \bigvee.
+%
+\def\ctsdoubledisplay#1 {
+ {%
+ \symbolspace = 42pt
+ \basicdisplay{$\csname #1\endcsname\quad
+ \displaystyle\csname #1\endcsname$\ddstrut}%
+ {\\#1}%
+ }%
+ \ifxref\ctsxrdef{#1}\else\xreftrue\fi
+ \pix\ctsidxref{#1}%
+}
+\def\ddstrut{\vrule width0pt height15pt depth11pt}
+
+% \ctsydisplay displays a control symbol. #1 is a single character,
+% which may be active. #2 is the cross-reference label,
+% blank-delimited.
+%
+\def\ctsydisplay{\begingroup \deactivate\catcode`\|=\other \ctsydisplayA}
+\def\ctsydisplayA#1 #2 {\endgroup
+ \basicdisplay{$\csname\string#1\endcsname$}{\\#1}%
+ \ifxref \ctsxrdef{#2}\else \xreftrue \fi
+ \pix\ctsidxref{#1}%
+}
+
+% \actdisplay displays an active character. #1 is the character, and
+% #2 is the cross-reference label, blank-delimited.
+%
+\def\actdisplay{\begingroup\catcode `\|=\other\actdisplayA}
+\def\actdisplayA#1 #2 {\endgroup
+ \basicdisplay{$#1$}{\string#1}%
+ \ifxref \xrdef{#2}\else \xreftrue \fi
+ \pix\ttidxref{#1}%
+}
+
+% \basicdisplay does the actual typesetting of a control sequence name.
+% for inside displays.
+%
+\def\basicdisplay#1#2{\testeasy\hbox to \symbolspace{#1\hfil}{\bt #2}}
+
+% Printing parameter and table entry headings.
+%
+\def\param#1{\printparam{#1}{param\`etre}}
+\def\tblentry#1{\printparam{#1}{\'el\'ement de table}}
+\def\printparam#1#2{\hskip1.5em [\kern3pt \<#1> #2\kern2pt]}
+
+% Required braces.
+%
+\def\rqbraces#1{\{\hskip2pt#1\hskip2pt\}}
+
+% Printing rulers.
+%
+\def\1{\vrule height 0pt depth 2pt}
+\def\2{\vrule height 0pt depth 4pt}
+\def\3{\vrule height 0pt depth 6pt}
+\def\4{\vrule height 0pt depth 8pt}
+\def\ruler#1#2#3{{$\vcenter{\hrule\hbox{\4#1}}\,\,\rm#2\,{#3}$}}
+\def\doruler{\par \noindent\ruler}
+\def\tick#1{\hbox to .125in{\hfil#1}}
+\def\8{\tick\1\tick\2\tick\1\tick\3\tick\1\tick\2\tick\1\tick\4}
+
+% Macros for the capsule summary chapter.
+%
+\def\begincapsum{\beginit{CAPSULE SUMMARY}%
+ \let\bt = \tentt
+ \bigskip
+}
+
+\def\endcapsum{\endit{CAPSULE SUMMARY}}
+
+\newbox\@primitivebox \setbox\@primitivebox = \hbox{\tt *}
+\newif\ifcs
+
+\def\capline{\begingroup \deactivate\catcode `\| = \other \caplineA}
+\def\caplineA#1 {\endgroup
+ \begingroup
+ \catcode `@ = \letter % for constructing labels
+ \caplineB{#1}%
+}
+
+% Parameters of \caplineB:
+% #1 name of control sequence
+% #2 description
+% #3 * or empty
+% #4 xref or xref1:xref2 or empty
+
+\def\caplineB#1#2#3#4{%
+ \ifempty {#4}\temptrue\else\tempfalse\fi
+ % \iftemp needed to avoid \if ... \else ... \fi nesting problems
+ \ifcs
+ \toks0 = {\caplineout{\\#1}{#2}{#3}}%
+ \iftemp
+ \toks1 = \expandafter{\csname #1\endcsname}%
+ \else
+ \toks1 = {#4}%
+ \fi
+ \edef\nextaction{\the\toks0 {\the\toks1}}%
+ \nextaction
+ \ctsidxref {#1}%
+ \else
+ % The \space makes one-character entries line up nicely.
+ \caplineout{\space #1}{#2}{#3}{#4}%
+ \ttidxref {#1}%
+ \fi
+ \endgroup
+}
+
+\newif\iftemp
+
+
+% In a few cases we have two cross-references for a single control
+% sequence.
+%
+\newif\ifcstwo
+
+\def\capac{\cstwofalse\csfalse\capline}
+\def\capactwo{\cstwotrue\csfalse\capline}
+\def\capcs{\cstwofalse\cstrue\capline}
+\def\capcstwo{\cstwotrue\cstrue\capline}
+
+% \caplineout produces an output line (or several lines) for the capsule
+% summary. #1 is the command text, #2 is the description, #3 is either * or
+% empty, and #4 is the cross-reference label.
+%
+\def\caplineout#1#2#3#4{%
+ \setbox0 = \ifempty {#3}\box\voidb@x \else \copy\@primitivebox\fi
+ \vskip\intercapsuleskip
+ % If we use \vbox here, a multi-line summary at the top of a page
+ % will cause \topskip to disappear.
+ %
+ \vtop{\noindent \hangindent = \capsulehangindent
+ \spaceskip = 3.33pt plus 2pt minus 1.5pt
+ \rightskip = 0pt plus 4em % a little more stretch
+ \parfillskip = 0pt plus 1fil
+ \llap{\box0}{\bt #1}% Bold typewriter for the cs name.
+ \quad \hskip 0pt plus 1pt minus 1pt
+ #2\unskip\
+ (\ifcstwo \tworefs #4:\else \xref{#4}\fi)%
+ }%
+ \par
+}
+
+\def\tworefs#1:#2:{\xref{#1}, \xref{#2}}
+
+
+
+% Macros for printing the index.
+%
+% Set up to print it.
+%
+\def\beginindex{%
+ \doublecolumns
+ \beginit{THE INDEX}
+ \markinfo{\chaptername}%
+ \indexfonts
+ \parindent = 0pt
+ \def\pp##1{{\it ##1}} % Principal entry.
+ \def\c{,\thinspace\allowbreak}%
+% \def\ic{,\quad}
+ \def\ic{\quad}
+ \def\see##1{.\quad{\it Voir} ##1 }
+ \def\seealso##1{\hfil\break{\it Voir aussi} ##1 }
+ \let\r = \romannumeral
+
+ \raggedright
+}
+
+\def\endindex{\endit{THE INDEX}\singlecolumn}
+
+
+% #1 is the level of this index entry minus 1 (i.e., 0 for a main
+% entry), #2 is the index term, #3 is the kind of term
+% (T for ttfont, C for control sequence, N for normal), and
+% #4 is the list of pages. The page list can have \pp (principal
+% entry)in it, and each page is separated by \c.
+%
+\def\indexentry#1#2#3#4{%
+ \beginit{INDEX ENTRY}%
+ \leftskip = #1\indexpageindent
+ \par
+ \leavevmode
+ \hangindent = \indexlevelindent
+ \ifx #3T%
+ {\tt #2}% Typewriter.
+ \else \ifx #3C%
+ {\tt \llap{\\}#2}% Control sequence.
+ \else
+ % in normal entries, \b and \e enclose a group. ({ and } don't work.)
+ {\let \b = \bgroup \let \e = \egroup #2}%
+ \fi\fi
+ #4% The list of pages.
+ \par
+ \endit{INDEX ENTRY}%
+}
+
+% Nah, let's forget printing the initial.
+%
+\def\indexgroup#1{%
+ \bigskip
+}
+
+
+
+% Code formatting.
+%
+%
+% Turn off normally special characters.
+%
+\def\deactivate{%
+ \catcode`\\ = \other \catcode`\{ = \other \catcode`\} = \other
+ \catcode`\$ = \other \catcode`\& = \other \catcode`\# = \other
+ \catcode`\% = \other \catcode`\~ = \other \catcode`\^ = \other
+ \catcode`\_ = \other
+}
+
+% It is convenient to have |...| mean print the ... verbatim, except for !.
+% (But | should just be a vertical bar in math mode.) This should be
+% used only for inline code; returns inside |...| become spaces.
+%
+\catcode`\| = \active
+\def|{%
+ \ifmmode
+ \vert
+ \else
+ \begingroup
+ \obeyspaces
+ \begincs
+ \let| = \endgroup
+ \fi
+}
+
+% \csdisplay is similar, but it inserts glue before and after.
+% It also is ended by |, so we have to redefine that.
+%
+\def\csdisplay{%
+ \par
+ \nobreak % don't break above displays
+ \vskip\abovedisplayskip
+ \begingroup
+ \interlinepenalty = 10000
+ \obeywhitespace
+ \begincs
+ \def|{\endgroup\vskip\belowdisplayskip \noindent\ignorespaces}%
+}
+
+% \begincs does the setup for verbatim printing. It does not confine
+% its effects to a group.
+%
+\def\begincs{%
+ \hfuzz = \codefuzz
+ \parfillskip = 0pt plus 1fil
+ \parskip = 0pt % don't stretch interparagraph space within code displays
+ \catcode`\! = 0
+ \let\! = \exclam
+ \let\| = \verticalbar
+ \let\$ = $%
+ \let\. = \empty % Use !. to end a control sequence to be executed.
+ \def\-{\discretionary{-}{}{}}% but allow explicit discretionary hyphens
+ \tt \deactivate
+}
+
+
+\chardef\exclam = `\!
+\chardef\verticalbar = `\|
+
+% In math mode we want vertical bars and exclamation points to be
+% regular characters again.
+%
+\everymath = {\setmathchars}
+\everydisplay = {\setmathchars}
+\leftdisplays
+
+\def\setmathchars{%
+ \catcode`\| = \other \catcode`\! = \other
+ \let\{ = \lbrace \let\} = \rbrace
+}
+
+
+
+
+% Some miscellanous macros.
+%
+\def\anatomy{Anato\-mie de \TeX}
+\def\ascii{{\ninerm ASCII}}
+\def\asciichar#1{$\langle \rm #1\rangle$}
+\def\bblfile{fichier~{\tt .bbl}}
+\def\bblfiles{fichiers~{\tt .bbl}}
+\def\bibfile{fichier~{\tt .bib}}
+\def\bibfiles{fichiers~{\tt .bib}}
+\def\boite{bo\^\i te}
+\def\boites{bo\^\i tes}
+\def\bstfile{fichier~{\tt .bst}}
+\def\bstfiles{fichiers~{\tt .bst}}
+\def\didotpt{point did\^ot}
+\def\dvifile{fi\-chier~{\tt .dvi}}
+\def\dvifiles{fi\-chiers~{\tt .dvi}}
+\def\ecrire{\'ecrire} % pour le tri de l'index
+\def\editeur{\'editeur de texte} % pour le tri de l'index
+\def\elements{\'el\'ements} % pour le tri de l'index
+\def\elementextra{\'el\'ement extraordinaire} % pour le tri de l'index
+\def\enumerations{\'enum\'erations} % pour le tri de l'index
+\def\equations{\'equations} % pour le tri de l'index
+\def\etirement{\'etirement} % pour le tri de l'index
+\def\em{\thinspace {\rm em}}
+\def\emph#1{{\it #1}\itcorr} % Emphasize.
+\def\ftp{{\tt ftp}}
+\def\gffile{fichier~{\tt .gf}}
+\def\gffiles{fichiers~{\tt .gf}}
+\def\hand{{\handfont +}}
+\def\ifatest{{\tt \\if} test}
+\chardef\inches = "7D
+\def\knuth#1#2{#1 de \texbook\ et
+\def\tempa{#2}% Merci Joss !
+\ifx\tempa\empty\else
+#2
+\fi
+de la tra\-duc\-tion fran\-\c caise}
+\def\logfile{fichier~{\tt .log}}
+\let\Metafont = \MF
+\def\Mperiod.{$M$\kern-1.6pt.}
+\def\Mprimecomma,{$M'$\kern-3.5pt,}
+\def\Mprimeperiod.{$M'$\kern-2.5pt.}
+\def\mud{\thinspace {\rm mu}} % can't use \mu; it'a a Greek letter!
+\def\newTeX{nou\-veau \TeX}
+\def\oesophage{\oe sophage}
+\def\p{p.\thinspace}
+\def\pkfile{fichier~{\tt .pk}}
+\def\pkfiles{fichiers~{\tt .pk}}
+\def\plainTeX{plain \TeX}
+\def\PlainTeX{Plain \TeX}
+\def\pp{p\p}
+\def\pt{\thinspace {\rm pt}}
+\def\pxlfile{fichier~{\tt .pxl}}
+\def\pxlfiles{fichiers~{\tt .pxl}}
+\def\tequiv{\unskip $\>\equiv\>$} % equivalence in text
+\def\texbook{{\sl The \TeX book}\itcorr}
+\let\tex@ = \TeX
+\def\TeX{\tex@\null}
+\def\TeXMeX{\TeX\ M\kern-.11em\lower .5ex\hbox{E}\kern-.125em X\null}%
+\def\tfmfile{fichier~{\tt .tfm}}
+\def\tfmfiles{fichiers~{\tt .tfm}}
+\def\thisbook{{\sl\TeX\ pour l'Impatient\/}}
+\let\ths = \thinspace
+\def\tminus{\unskip\allowbreak $\>-\>$\allowbreak} % minus in text
+\def\tplus{\unskip\allowbreak $\>+\>$\allowbreak} % plus in text
+\def\TUG{\TeX{} Users Group}
+\def\Vcomma,{$V$\kern-2pt,}
+\def\visiblespace{{\tentt \char'040}}
+\def\Vperiod.{$V$\kern-2pt.}
+\let\vs=\visiblespace
+\def\xrefpg#1{page~\xrefn{#1}}
+
+% \tighten attempts to shorten the number of lines occupied by a paragraph.
+\def\tighten{\looseness=-1
+ \spaceskip = .9\fontdimen2\font plus \fontdimen3\font
+ minus 1.1\fontdimen4\font
+}
+
+% \itcorr can be used at the end of a macro that puts its argument in
+% italics in order to produce an italic correction just when it's needed.
+% It won't look inside a following macro call, however.
+
+\def\itcorr{\futurelet\next\itcorrA}
+\def\itcorrA{\ifx.\next\else\ifx,\next\else\/\fi\fi}
+
+
+% Arrange N items in three columns.
+% A right brace is needed at the end of the list to match the \bgroup.
+%
+\def\threecolumns{\nobreak\vskip\abovedisplayskip\dothreecolumns}
+
+\def\dothreecolumns#1 {\bgroup
+ \parindent = 0pt
+ \makecolumns #1/3:
+}
+
+% We don't want to make < an active character because then it cannot be used
+% in \ifnum tests. So, \<foo> denotes a nonterminal `foo'.
+%
+\def\<#1>{$\langle${\rm\it \kern-.2pt #1\kern.65pt}$\rangle$}
+
+\let\beginit = \environment
+\let\endit = \endenvironment
+
+\def\eatpar#1\par{}
+
+% \needspace breaks out the page if there's less than #1 left on it.
+
+\def\needspace#1{%
+ \saveskip = \lastskip
+ \par % force vertical mode
+ \vfil
+ \penalty 1000
+ \vskip #1
+ \penalty9999
+ \par % exercise the page builder
+ \vskip -#1 plus -1fil
+ \vskip -\saveskip \vskip \saveskip % to restore \lastskip
+}
+
+
+
+
+% Expanded cross-referencing for various parts of the books.
+%
+
+% Sometimes it is clearer to refer to a cross-reference as a control
+% sequence.
+%
+\def\ctsref{\begingroup \catcode`\@ = \letter \@ctsref}
+\def\@ctsref#1{(\xref{#1})\endgroup}
+
+\def\xrefdelim[#1]{page~\xrefn{#1}} % this form doesn't need braces
+
+% This command comes at the beginning of chapters, after the \chapter
+% command and before the text. Hence the \par in the template
+% and the \noindent
+%
+\def\chapterdef#1#2\par{%
+ \@writeaux{%
+ \string\gdef\expandafter\string
+ \csname#1_C\endcsname{\the\chapterno}}%
+ \noindent
+}
+
+\def\chapternum#1{%
+ \def\csn{#1_C}%
+ \expandafter\ifx\csname\csn\endcsname \relax
+ \expandafter\def\csname\csn\endcsname{`#1'}%
+ \ifxrefwarning
+ \message{Chapitre `#1' indéfini.}%
+ \fi
+ \fi
+ \csname\csn\endcsname
+}
+
+\def\chapterref#1{section~\chapternum{#1}}
+
+\def\headcit#1#2{``{\rm #1}'' (\xref{#2})}
+
+\def\conceptcit#1{\headcit{#1}{#1}}
+
+\def\seeconcept#1{(voir ``{\rm #1}'', \xref{#1})}
+
+%\def\seeheadcon#1#2{(voir ``{\rm #1}'', \xref{#2})}
+
+
+
+
+% Special types of pictures.
+%
+% Glue pictures:
+%
+\newdimen\glueboxwidth
+\newdimen\boxdepth \boxdepth = 3.5pc
+\newskip\underlabel \underlabel= .1\boxdepth % space under `width n'.
+\def\squeezeglue{\glueboxwidth = .725\glueboxwidth}
+
+\def\labelledbox#1 #2 #3{\vtop{%
+ \hrule
+ \hbox{%
+ \vrule
+ \hbox to #1{\hfil \vbox to #2{\vfil#3\vskip\underlabel}\hfil}%
+ \vrule
+ }%
+ \hrule
+}}%
+
+% Make a picture of a box.
+%
+\def\picbox#1 {%
+ \glueboxwidth = #1pc \squeezeglue
+ \vtop{%
+ \hbox to \glueboxwidth{\strut \hfil {\it box}\hfil}%
+ \labelledbox % Have to have spaces after the arguments.
+ {\glueboxwidth}
+ {\boxdepth}
+ {\halign{\hfil##\hfil\cr width #1\cr}}%
+ }%
+}
+
+% And of glue.
+%
+\def\gluebox#1 #2 #3 #4 {\vtop{%
+ \glueboxwidth = #4pc \squeezeglue
+ \hbox to \glueboxwidth{\strut \hfil {\it glue}\hfil}%
+ \nointerlineskip
+ \kern2pt % to move the brace down a bit
+ \hbox{$\overbrace{\hbox{\hskip\glueboxwidth}}$}%
+ \kern-3pt % The \overbrace puts in 3pt below itself.
+ \nointerlineskip
+ \vbox to \boxdepth{%
+ \hsize = \glueboxwidth
+ \vskip 2pt
+ \advance\baselineskip by -2pt
+ \centerline{\strut size #1}%
+ \centerline{stretch #2}%
+ \centerline{shrink #3}%
+ \centerline{width #4}%
+ \vss
+ }%
+ \kern 1.5pt % I don't know why this is needed.
+ \nointerlineskip
+ \hbox{$\underbrace{\hbox{\hskip\glueboxwidth}}$}%
+}}
+
+\def\gluepicture#1 #2{{\ninerm
+ \medskip
+ \vtop{%
+ \setbox0 = \hbox{#2}% The glue and box pictures.
+ \glueboxwidth = \wd0
+ \leftline{\box0}%
+ \kern 6pt
+ \hbox to \glueboxwidth{\leftarrowfill{ width #1 }\rightarrowfill}%
+ }%
+ \medskip
+}}
+
+% Box pictures.
+%
+% Set up a `reference point' and the macro for a labelled height, for use
+% in forming pictures of boxes.
+%
+\newbox\refpoint
+
+\setbox\refpoint = \vbox to 0pt{%
+ \kern-2.6pt
+ \hbox to 0pt{\kern-2.2pt $\bullet$\hss}
+ \vss
+}%
+
+\def\labelledheight#1#2{%
+\vtop to #1{\offinterlineskip
+ \setbox0=\hbox{#2}\skip0=\wd0
+ \hbox to \skip0{\hss\tenex\char"78\hss}\kern-4pt
+ {\cleaders\hbox to \skip0{\hss\tenex\char"3F\hss}\vfil}%
+ \vskip1pt\box0\vskip1pt
+ {\cleaders\hbox to \skip0{\hss\tenex\char"3F\hss}\vfil}%
+ \kern -6pt\boxmaxdepth 0pt\hbox to \skip0{\hss\tenex\char"79\hss}}}
+
+
+
+% Paul's updates -- no longer needed; we have converged.
+%
+%\input paulmacs
+
+% Read the cross-reference definitions.
+%
+\readauxfile
+
+\catcode`\@ = \other % Make @ an `other' character again.
+\catcode`\^ = \active % Make ^'s do indexing outside of math mode.
+\def\np{\vfill\eject} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/fmath.tex b/Master/texmf-dist/doc/plain/impatient-fr/fmath.tex
new file mode 100644
index 00000000000..b2be1b8a487
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/fmath.tex
@@ -0,0 +1,2176 @@
+% 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 composer des \linebreak formules math\'ematiques}
+
+\bix^^{math\'ematiques}
+\chapterdef{math}
+
+Cette section couvre les commandes pour construire des formules math\'e\-matiques.
+Pour une explication des conventions utilis\'ees dans cette section,
+voir \headcit{Description des commandes}{cmddesc}.
+
+\begindescriptions
+%==========================================================================
+\section {Parties simples de formules}
+
+%==========================================================================
+\subsection {Lettres grecques}
+
+\begindesc
+\bix^^{lettres grecques}
+\dothreecolumns 40
+\easy\ctsdisplay alpha {}
+\ctsdisplay beta {}
+\ctsdisplay chi {}
+\ctsdisplay delta {}
+\ctsdisplay Delta {}
+\ctsdisplay epsilon {}
+\ctsdisplay varepsilon {}
+\ctsdisplay eta {}
+\ctsdisplay gamma {}
+\ctsdisplay Gamma {}
+\ctsdisplay iota {}
+\ctsdisplay kappa {}
+\ctsdisplay lambda {}
+\ctsdisplay Lambda {}
+\ctsdisplay mu {}
+\ctsdisplay nu {}
+\ctsdisplay omega {}
+\ctsdisplay Omega {}
+\ctsdisplay phi {}
+\ctsdisplay varphi {}
+\ctsdisplay Phi {}
+\ctsdisplay pi {}
+\ctsdisplay varpi {}
+\ctsdisplay Pi {}
+\ctsdisplay psi {}
+\ctsdisplay Psi {}
+\ctsdisplay rho {}
+\ctsdisplay varrho {}
+\ctsdisplay sigma {}
+\ctsdisplay varsigma {}
+\ctsdisplay Sigma {}
+\ctsdisplay tau {}
+\ctsdisplay theta {}
+\ctsdisplay vartheta {}
+\ctsdisplay Theta {}
+\ctsdisplay upsilon {}
+\ctsdisplay Upsilon {}
+\ctsdisplay xi {}
+\ctsdisplay Xi {}
+\ctsdisplay zeta {}
+\egroup
+\explain
+Ces commandes produisent les lettres grecques appropri\'ees aux math\'e\-matiques.
+Vous ne pouvez les utiliser que dans une formule math\'ema\-tique, ainsi si vous
+avez besoin d'une lettre grecque dans du texte ordinaire, vous devez l'englober
+entre des signes dollar (|$|). \TeX\ n'a pas de commandes pour des lettres
+grecques qui ressemblent \`a leurs contre-parties romaines, puisque vous pouvez
+les obtenir en employant ces contre-parties romaines. Par exemple, vous pouvez
+obtenir un ^{omicron} minuscule dans une formule en \'ecrivant la lettre `o',
+c'est-\`a-dire, `|{\rm o}|' ou un ^{beta} majuscule (`B') en \'ecrivant `|{\rm B}|'.
+
+Ne confondez pas les lettres suivantes~:
+\ulist \compact
+\li |\upsilon| (`$\upsilon$'), |{\rm v}| (`v'), et |\nu| (`$\nu$').
+\li |\varsigma| (`$\varsigma$') and |\zeta| (`$\zeta$').
+\endulist
+
+Vous pouvez obtenir des lettres grecques capitales inclin\'ees en utilisant
+la \minref{police} math\'ematique italique (|\mit|).
+
+\TeX \ traite les lettres grecques comme des symboles ordinaires quand
+il calcule combien d'espace mettre autour d'eux.
+
+\example
+If $\rho$ and $\theta$ are both positive, then $f(\theta)
+-{\mit \Gamma}_{\theta} < f(\rho)-{\mit \Gamma}_{\rho}$.
+|
+\produces
+If $\rho$ and $\theta$ are both positive, then
+$f(\theta)-{\mit \Gamma}_{\theta} < f(\rho)-{\mit \Gamma}_{\rho}$.
+\endexample
+\eix^^{lettres grecques}
+\enddesc
+
+%==========================================================================
+\subsection {Divers Symboles math\'ematiques ordinaires}
+
+\begindesc
+\xrdef{specsyms}
+\dothreecolumns 34
+\easy\ctsdisplay infty {}
+\ctsdisplay Re {}
+\ctsdisplay Im {}
+\ctsdisplay angle {}
+\ctsdisplay triangle {}
+\ctsdisplay backslash {}
+\ctsdisplay vert {}
+\ctsydisplay | @bar {}
+\ctsdisplay Vert {}
+\ctsdisplay emptyset {}
+\ctsdisplay bot {}
+\ctsdisplay top {}
+\ctsdisplay exists {}
+\ctsdisplay forall {}
+\ctsdisplay hbar {}
+\ctsdisplay ell {}
+\ctsdisplay aleph {}
+\ctsdisplay imath {}
+\ctsdisplay jmath {}
+\ctsdisplay nabla {}
+\ctsdisplay neg {}
+\ctsdisplay lnot {}
+\actdisplay ' @prime \ (apostrophe)
+\ctsdisplay prime {}
+\ctsdisplay partial {}
+\ctsdisplay surd {}
+\ctsdisplay wp {}
+\ctsdisplay flat {}
+\ctsdisplay sharp {}
+\ctsdisplay natural {}
+\ctsdisplay clubsuit {}
+\ctsdisplay diamondsuit {}
+\ctsdisplay heartsuit {}
+\ctsdisplay spadesuit {}
+\egroup
+\explain
+^^{symboles musicaux} ^^{couleurs de carte \`a jouer}
+Ces commandes produisent des symboles vari\'es. On les appelle
+``^{symboles ordinaires}'' pour les distinguer des autres classes de
+symboles comme les relations. Vous ne pouvez utiliser un
+symbole ordinaire que dans une formule math\'ematique,
+donc si vous avez besoin d'un symbole ordinaire dans du texte ordinaire
+vous devez l'englober entre des signes dollar (|$|).
+
+Les commandes |\imath| et |\jmath| sont utiles quand vous devez mettre un
+accent sur un `$i$' ou un `$j$'.
+
+Une apostrophe (|'|) est un raccourci pour \'ecrire un |\prime| en exposant. (La
+commande |\prime| de son c\^ot\'e, g\'en\`ere un gros prime laid.)
+
+Les commandes |\!|| et ^|\Vert| sont synonymes, comme
+le sont les commandes ^|\neg| et ^|\lnot|.
+\margin{explanation of {\tt\\vert} added}
+La commande |\vert| produit le m\^eme r\'esultat que `|!||'.
+\indexchar |
+
+Les symboles produits par |\backslash|, |\vert| et |\Vert|
+sont des \minref{d\'eli\-mi\-teur}s. ces symboles peuvent \^etre produit en grandes taille
+en utilisant ^|\bigm| etc.\ (\xref \bigm).
+
+\example
+The Knave of $\heartsuit$s, he stole some tarts.
+|
+\produces
+The Knave of $\heartsuit$s, he stole some tarts.
+\nextexample
+If $\hat\imath < \hat\jmath$ then $i' \leq j^\prime$.
+|
+\produces
+If $\hat\imath < \hat\jmath$ then $i' \leq j^\prime$.
+\nextexample
+$${{x-a}\over{x+a}}\biggm\backslash{{y-b}\over{y+b}}$$
+|
+\dproduces
+$${{x-a}\over{x+a}}\biggm\backslash{{y-b}\over{y+b}}$$
+\endexample
+\enddesc
+
+%==========================================================================
+\subsection {Op\'erations binaires}
+
+\begindesc
+\bix^^{op\'erations}
+\xrdef{binops}
+\dothreecolumns 34
+\easy\ctsdisplay vee {}
+\ctsdisplay wedge {}
+\ctsdisplay amalg {}
+\ctsdisplay cap {}
+\ctsdisplay cup {}
+\ctsdisplay uplus {}
+\ctsdisplay sqcap {}
+\ctsdisplay sqcup {}
+\ctsdisplay dagger {}
+\ctsdisplay ddagger {}
+\ctsdisplay land {}
+\ctsdisplay lor {}
+\ctsdisplay cdot {}
+\ctsdisplay diamond {}
+\ctsdisplay bullet {}
+\ctsdisplay circ {}
+\ctsdisplay bigcirc {}
+\ctsdisplay odot {}
+\ctsdisplay ominus {}
+\ctsdisplay oplus {}
+\ctsdisplay oslash {}
+\ctsdisplay otimes {}
+\ctsdisplay pm {}
+\ctsdisplay mp {}
+\ctsdisplay triangleleft {}
+\ctsdisplay triangleright {}
+\ctsdisplay bigtriangledown {}
+\ctsdisplay bigtriangleup {}
+\ctsdisplay ast {}
+\ctsdisplay star {}
+\ctsdisplay times {}
+\ctsdisplay div {}
+\ctsdisplay setminus {}
+\ctsdisplay wr {}
+\egroup
+\explain
+Ces commandes produisent les symboles pour diff\'erentes op\'erations binaires.
+Les op\'erations binaires sont une des \minref{classe}s des symboles math\'e\-matiques de \TeX.
+\TeX\ met diff\'erents montants d'espace autour de dif\-f\'e\-rentes classes de symboles
+math\'ematiques. Quand \TeX\ a besoin de couper une ligne de texte dans une formule math\'ematique,
+\minrefs{line break} il devra placer la coupure apr\`es une op\'eration binaire---mais seulement si
+l'op\'eration est \`a un niveau sup\'erieur \`a la formule, c'est-\`a-dire, non incluse dans un groupe.
+
+En plus de ces commandes, \TeX\ traite \'egalement `|+|' et `|-|'
+en tant qu'op\'erations binaires. Il consid\`ere `|/|' comme un symbole ordinaire,
+en d\'epit du fait que, math\'ematiquement, ce soit une op\'eration binaire,
+parce qu'il semble mieux avec moins d'espace autour de lui.
+
+\example
+$$z = x \div y \quad \hbox{if and only if} \quad
+z \times y = x \;\hbox{and}\; y \neq 0$$
+|
+\dproduces
+$$z = x \div y \quad \hbox{if and only if} \quad
+z \times y = x \;\hbox{and}\; y \neq 0$$
+\endexample
+\enddesc
+
+\begindesc
+\ctspecial * \ctsxrdef{@star}
+\explain
+La commande |\*| indique un symbole de multiplication optionnel
+($\times$), qui est une op\'eration binaire. Ce symbole de multiplication
+agit comme une c\'esure optionnelle quand il appara\^\i t dans une formule dans un
+texte\minrefs{texte math\'ematique}. Cela \'etant, \TeX\ ne composera le symbole |\times|
+\emph{que} si la formule doit \^etre coup\'ee en ce point.
+Il n'y a aucun point en utilisant |\*| dans des formules affich\'ees \minrefs{math\'ematique
+affich\'ee} car \TeX\ ne coupe jamais de formules affich\'ees de lui-m\^eme.
+
+\example
+Let $c = a\*b$. In the case that $c=0$ or $c=1$, let
+$\Delta$ be $(\hbox{the smallest $q$})\*(\hbox{the
+largest $q$})$ in the set of approximate $\tau$-values.
+|
+\produces
+Let $c = a\*b$. In the case that $c=0$ or $c=1$, let
+$\Delta$ be $(\hbox{the smallest $q$})\*(\hbox{the
+largest $q$})$ in the set of approximate $\tau$-values.
+
+\eix^^{op\'erations}
+\endexample
+\enddesc
+
+%==========================================================================
+\subsection {Relations}
+
+\begindesc
+\xrdef {relations}
+\bix^^{relations}
+\dothreecolumns 39
+\easy\ctsdisplay asymp {}
+\ctsdisplay cong {}
+\ctsdisplay dashv {}
+\ctsdisplay vdash {}
+\ctsdisplay perp {}
+\ctsdisplay mid {}
+\ctsdisplay parallel {}
+\ctsdisplay doteq {}
+\ctsdisplay equiv {}
+\ctsdisplay ge {}
+\ctsdisplay geq {}
+\ctsdisplay le {}
+\ctsdisplay leq {}
+\ctsdisplay gg {}
+\ctsdisplay ll {}
+\ctsdisplay models {}
+\ctsdisplay ne {}
+\ctsdisplay neq {}
+\ctsdisplay notin {}
+\ctsdisplay in {}
+\ctsdisplay ni {}
+\ctsdisplay owns {}
+\ctsdisplay prec {}
+\ctsdisplay preceq {}
+\ctsdisplay succ {}
+\ctsdisplay succeq {}
+\ctsdisplay bowtie {}
+\ctsdisplay propto {}
+\ctsdisplay approx {}
+\ctsdisplay sim {}
+\ctsdisplay simeq {}
+\ctsdisplay frown {}
+\ctsdisplay smile {}
+\ctsdisplay subset {}
+\ctsdisplay subseteq {}
+\ctsdisplay supset {}
+\ctsdisplay supseteq {}
+\ctsdisplay sqsubseteq {}
+\ctsdisplay sqsupseteq {}
+\egroup
+\explain
+Ces commandes produisent des symboles pour diff\'erentes relations.
+Les relations sont une des \minref{classe}s des symboles math\'ematiques.
+\TeX\ met diff\'erents montants d'espace autour de diff\'erentes classes de symboles
+math\'ematiques.
+Quand \TeX\ a besoin de couper une ligne de texte dans une formule math\'ematique,
+\minrefs{line break} il devra placer la coupure apr\`es une relation---mais seulement si
+l'op\'eration est \`a un niveau sup\'erieur \`a la formule, c'est-\`a-dire, non incluse dans un groupe.
+
+En plus des commandes list\'ees ici, \TeX\ traite `^|=|' et les
+commandes ``fl\`eche'' (\xref{arrows}) comme des relations.
+
+Certaines relations ont plus d'une commande que vous pouvez utiliser
+pour les produire~:
+\ulist \compact
+\li `$\ge$' (|\ge| et |\geq|).
+\li `$\le$' (|\le| et |\leq|).
+\li `$\ne$' (|\ne|, |\neq| et |\not=|).
+\li `$\ni$' (|\ni| et |\owns|).
+\endulist
+
+\xrdef{\not}
+Vous pouvez produire des relations n\'egatives en les pr\'efixant avec |\not|, comme cela~:
+
+\nobreak
+\threecolumns 21
+\basicdisplay {$\not\asymp$}{\\not\\asymp}\ctsidxref{asymp}
+\basicdisplay {$\not\cong$}{\\not\\cong}\ctsidxref{cong}
+\basicdisplay {$\not\equiv$}{\\not\\equiv}\ctsidxref{equiv}
+\basicdisplay {$\not=$}{\\not=}\ttidxref{=}
+\basicdisplay {$\not\ge$}{\\not\\ge}\ctsidxref{ge}
+\basicdisplay {$\not\geq$}{\\not\\geq}\ctsidxref{geq}
+\basicdisplay {$\not\le$}{\\not\\le}\ctsidxref{le}
+\basicdisplay {$\not\leq$}{\\not\\leq}\ctsidxref{leq}
+\basicdisplay {$\not\prec$}{\\not\\prec}\ctsidxref{prec}
+\basicdisplay {$\not\preceq$}{\\not\\preceq}\ctsidxref{preceq}
+\basicdisplay {$\not\succ$}{\\not\\succ}\ctsidxref{succ}
+\basicdisplay {$\not\succeq$}{\\not\\succeq}\ctsidxref{succeq}
+\basicdisplay {$\not\approx$}{\\not\\approx}\ctsidxref{approx}
+\basicdisplay {$\not\sim$}{\\not\\sim}\ctsidxref{sim}
+\basicdisplay {$\not\simeq$}{\\not\\simeq}\ctsidxref{simeq}
+\basicdisplay {$\not\subset$}{\\not\\subset}\ctsidxref{subset}
+\basicdisplay {$\not\subseteq$}{\\not\\subseteq}\ctsidxref{subseteq}
+\basicdisplay {$\not\supset$}{\\not\\supset}\ctsidxref{supset}
+\basicdisplay {$\not\supseteq$}{\\not\\supseteq}\ctsidxref{supseteq}
+\basicdisplay {$\not\sqsubseteq$}{\\not\\sqsubseteq}%
+ \ctsidxref{sqsubseteq}
+\basicdisplay {$\not\sqsupseteq$}{\\not\\sqsupseteq}%
+ \ctsidxref{sqsupseteq}
+\egroup
+
+\example
+We can show that $AB \perp AC$, and that
+$\triangle ABF \not\sim \triangle ACF$.
+|
+\produces
+We can show that $AB \perp AC$, and that
+$\triangle ABF \not\sim \triangle ACF$.
+
+\eix^^{relations}
+\endexample
+\enddesc
+
+%==========================================================================
+\subsection {D\'elimiteurs gauches et droits}
+
+\begindesc
+\bix^^{d\'elimiteurs}
+%
+\dothreecolumns 12
+\easy\ctsdisplay lbrace {}
+\ctsydisplay { @lbrace {}
+\ctsdisplay rbrace {}
+\ctsydisplay } @rbrace {}
+\ctsdisplay lbrack {}
+\ctsdisplay rbrack {}
+\ctsdisplay langle {}
+\ctsdisplay rangle {}
+\ctsdisplay lceil {}
+\ctsdisplay rceil {}
+\ctsdisplay lfloor {}
+\ctsdisplay rfloor {}
+\egroup
+\explain
+Ces commandes produisent des \minref{d\'elimiteur}s gauches et droits.
+Les math\'e\-maticiens utilisent les d\'elimiteurs pour indiquer les fronti\`eres entre les parties
+d'une formule. Les d\'elimiteurs gauches sont aussi appel\'es ``^{ouvrant}s'' et
+les d\'elimiteurs droits sont aussi appel\'es ``^{fermant}s''. Ouvrants et Fermants
+sont deux des \minref{classe}s de symboles math\'ematiques de \TeX. \TeX\ met
+diff\'erents montants d'espace autour des diff\'erentes \minref{classe}s de symboles math\'ematiques.
+Vous devriez vous attendre \`a ce que l'espacement que \TeX\ met autour des ouvrants et
+des fermants soit sym\'etrique, mais en fait, il ne l'est pas.
+
+Certains d\'elimiteurs gauches et droits ont plus d'une commande utilisable pour les produire~:
+
+\ulist\compact
+\li `$\{$' (|\lbrace| and |\{|)
+\li `$\}$' (|\rbrace| and |\}|)
+\li `$[$' (|\lbrack| and `|[|')
+\li `$]$' (|\rbrack| and `|]|')
+\endulist
+\noindent vous pouvez aussi utiliser les caract\`eres crochets gauches et droits
+(sous toutes ses formes) en dehors du mode math\'ematique.
+
+En plus de ces commandes, \TeX\ traite `|(|' comme un d\'elimiteur gauche
+et `|)|' comme un d\'elimiteur droit.
+
+Vous pouvez laisser \TeX\
+choisir la taille d'un d\'elimiteur en utilisant |\left| et |\right| (\xref\left).
+Alternativement,
+vous pouvez obtenir un d\'eli\-miteur d'une taille sp\'ecifique en utilisant une des commandes |\big|$x$
+(voir |\big| et al., \xref{\big}).
+
+\example
+The set $\{\,x \mid x>0\,\}$ is empty.
+|
+\produces
+The set $\{\,x \mid x>0\,\}$ is empty.
+
+\eix^^{d\'elimiteurs}
+\endexample
+\enddesc
+
+%==========================================================================
+\subsection {Fl\`eches}
+
+\begindesc
+\bix^^{fl\`eches}
+\xrdef{arrows}
+%
+{\symbolspace=24pt \makecolumns 34/2:
+\easy%
+\ctsdisplay leftarrow {}
+\ctsdisplay gets {}
+\ctsdisplay Leftarrow {}
+\ctsdisplay rightarrow {}
+\ctsdisplay to {}
+\ctsdisplay Rightarrow {}
+\ctsdisplay leftrightarrow {}
+\ctsdisplay Leftrightarrow {}
+\ctsdisplay longleftarrow {}
+\ctsdisplay Longleftarrow {}
+\ctsdisplay longrightarrow {}
+\ctsdisplay Longrightarrow {}
+\ctsdisplay longleftrightarrow {}
+\ctsdisplay Longleftrightarrow {}
+\basicdisplay {$\Longleftrightarrow$}{\\iff}\pix\ctsidxref{iff}\xrdef{\iff}
+\ctsdisplay hookleftarrow {}
+\ctsdisplay hookrightarrow {}
+\ctsdisplay leftharpoondown {}
+\ctsdisplay rightharpoondown {}
+\ctsdisplay leftharpoonup {}
+\ctsdisplay rightharpoonup {}
+\ctsdisplay rightleftharpoons {}
+\ctsdisplay mapsto {}
+\ctsdisplay longmapsto {}
+\ctsdisplay downarrow {}
+\ctsdisplay Downarrow {}
+\ctsdisplay uparrow {}
+\ctsdisplay Uparrow {}
+\ctsdisplay updownarrow {}
+\ctsdisplay Updownarrow {}
+\ctsdisplay nearrow {}
+\ctsdisplay searrow {}
+\ctsdisplay nwarrow {}
+\ctsdisplay swarrow {}
+}
+\explain
+Ces commandes procurent des fl\`eches de diff\'erentes sortes. Elles
+sont class\'ees parmi les relations (\xref{relations}).
+Les fl\`eches verticales de la liste sont aussi des \minref{d\'elimiteur}s, donc vous pouvez les rendre
+plus grandes en utilisant |\big| et al.\ (\xref \big).
+
+La commande |\iff| diff\`ere de |\Longleftrightarrow| parce qu'elle
+produit un espace suppl\'ementaire \`a gauche et \`a droite de la fl\`eche.
+
+Vous pouvez placer des symboles ou d'autres l\'egendes au dessus des fl\`eche gauches et droite
+avec |\buildrel| (\xref \buildrel).
+
+\example
+$$f(x)\mapsto f(y) \iff x \mapsto y$$
+|
+\dproduces
+$$f(x)\mapsto f(y) \iff x \mapsto y$$
+
+\eix^^{fl\`eches}
+\endexample
+\enddesc
+
+%==========================================================================
+\subsection {Fonctions math\'ematiques nomm\'ees}
+
+\begindesc
+\xrdef{namedfns}
+\bix^^{fonctions, noms de}
+{\symbolspace = 36pt
+\threecolumns 32
+\easy\ctsdisplay cos {}
+\ctsdisplay sin {}
+\ctsdisplay tan {}
+\ctsdisplay cot {}
+\ctsdisplay csc {}
+\ctsdisplay sec {}
+\ctsdisplay arccos {}
+\ctsdisplay arcsin {}
+\ctsdisplay arctan {}
+\ctsdisplay cosh {}
+\ctsdisplay coth {}
+\ctsdisplay sinh {}
+\ctsdisplay tanh {}
+\ctsdisplay det {}
+\ctsdisplay dim {}
+\ctsdisplay exp {}
+\ctsdisplay ln {}
+\ctsdisplay log {}
+\ctsdisplay lg {}
+\ctsdisplay arg {}
+\ctsdisplay deg {}
+\ctsdisplay gcd {}
+\ctsdisplay hom {}
+\ctsdisplay ker {}
+\ctsdisplay inf {}
+\ctsdisplay sup {}
+\ctsdisplay lim {}
+\ctsdisplay liminf {}
+\ctsdisplay limsup {}
+\ctsdisplay max {}
+\ctsdisplay min {}
+\ctsdisplay Pr {}
+\egroup}
+\explain
+Ces commandes mettent les noms de diff\'erentes fonctions math\'ematiques
+en type romain, comme \`a l'accoutum\'ee.
+Si vous appliquez un exposant ou un indice sur une de ces commandes,
+\TeX\ le composera dans la plupart des cas \`a l'endroit usuel.
+En style d'affichage, \TeX\ compose les exposants et les indices
+de |\det|, |\gcd|, |\inf|, |\lim|, |\liminf|,
+|\limsup|, |\max|, |\min|, |\Pr| et |\sup|
+comme s'ils \'etaient des limites,
+c'est-\`a-dire, directement au-dessus ou directement au-dessous du nom de la fonction.
+
+\example
+$\cos^2 x + \sin^2 x = 1\qquad\max_{a \in A} g(a) = 1$
+|
+\produces
+$\cos^2 x + \sin^2 x = 1\qquad\max_{a \in A} g(a) = 1$
+\endexample
+\enddesc
+
+\begindesc
+\cts bmod {}
+\explain
+Cette commande produit une op\'eration binaire pour indiquer un ^{modulo}
+dans une formule.
+\example
+$$x = (y+1) \bmod 2$$
+|
+\dproduces
+$$x = (y+1) \bmod 2$$
+\endexample
+\enddesc
+
+\begindesc
+\cts pmod {}
+\explain
+Cette commande procure une notation pour indiquer un ^{modulo} entre parenth\`eses
+\`a la fin d'une formule.
+\example
+$$x \equiv y+1 \pmod 2$$
+|
+\dproduces
+$$x \equiv y+1 \pmod 2$$
+
+\eix^^{fonctions, noms de}
+\endexample
+\enddesc
+
+%==========================================================================
+\subsection {Grands op\'erateurs}
+
+\begindesc
+\bix^^{op\'erateurs//grands}
+\threecolumns 15
+\easy\ctsdoubledisplay bigcap {}
+\ctsdoubledisplay bigcup {}
+\ctsdoubledisplay bigodot {}
+\ctsdoubledisplay bigoplus {}
+\ctsdoubledisplay bigotimes {}
+\ctsdoubledisplay bigsqcup {}
+\ctsdoubledisplay biguplus {}
+\ctsdoubledisplay bigvee {}
+\ctsdoubledisplay bigwedge {}
+\ctsdoubledisplay coprod {}
+{\symbolspace = 42pt\basicdisplay {\hskip 26pt$\smallint$}%
+ {\\smallint}\ddstrut}%
+ \xrdef{\smallint} \pix\ctsidxref{smallint}
+\ctsdoubledisplay int {}
+\ctsdoubledisplay oint {}
+\ctsdoubledisplay prod {}
+\ctsdoubledisplay sum {}
+}
+\explain
+Ces commandes produisent diff\'erents grands symboles d'op\'erateur.
+\TeX\ produit la plus petite taille quand il est en \minrefs{mode math\'ematique}
+^{style texte} et les plus grandes tailles quand il est en ^{style d'affichage}.
+Les Op\'erateurs sont une des \minref{classe}s de symboles math\'ematiques de \TeX.
+\TeX\ met diff\'erents montants d'espace
+autour des diff\'erentes classes de symboles math\'ematiques.
+
+Les grands symboles d'op\'erateur avec `|big|' dans leurs noms sont diff\'e\-rents
+des op\'erations binaires correspondantes (voir \xref{binops}) comme
+|\cap| ($\cap$) puisqu'ils apparaissent habituellement au d\'ebut
+d'une formule. \TeX\ utilise des espacements diff\'erents pour un grand op\'erateur
+et pour une op\'eration binaire.
+
+Ne confondez pas `$\sum$' (|\sum|) avec `$\Sigma$'^^|\Sigma| (|\Sigma|)
+ou `$\prod$' (|\prod|) avec `$\Pi$' ^^|\Pi| (|\Pi|).
+|\Sigma| et |\Pi| produisent les lettres grecques capitales, qui sont plus petites et
+ont une apparence diff\'erente.
+
+Un grand op\'erateur peut avoir des ^{limites}. La limite la plus basse est sp\'ecifi\'ee comme un indice
+et la plus haute comme un exposant.
+
+\example
+$$\bigcap_{k=1}^r (a_k \cup b_k)$$
+|
+\dproduces
+$$\bigcap_{k=1}^r (a_k \cup b_k)$$
+\endexample
+\interexampleskip
+\example
+$${\int_0^\pi \sin^2 ax\,dx} = {\pi \over 2}$$
+|
+\dproduces
+$${\int_0^\pi \sin^2 ax\,dx} = {\pi \over 2}$$
+\endexample
+\enddesc
+
+\begindesc
+\cts limits {}
+\explain
+Quand il est en style texte, \TeX\ place normalement les limites apr\`es un grand op\'erateur.
+Cette commande demande \`a \TeX\ de placer
+les limites sur et sous un grand op\'erateur plut\^ot qu'apr\`es lui.
+
+Si vous sp\'ecifiez plusieurs commandes |\limits|, |\nolimits|,
+et |\dis!-play!-limits|, seule la derni\`ere sera prise en compte.
+
+\example
+Suppose that $\bigcap\limits_{i=1}^Nq_i$ contains at least
+two elements.
+|
+\produces
+Suppose that $\bigcap\limits_{i=1}^Nq_i$ contains at least
+two elements.
+\endexample
+\enddesc
+
+\begindesc
+\cts nolimits {}
+\explain
+Quand il est en style d'affichage, \TeX\ place normalement les limites sur et sous un grand op\'erateur.
+(L'op\'erateur |\int| est une exception---\TeX\
+place les limites pour |\int| apr\`es l'op\'erateur dans tous les cas.)
+^^|\int//limites apr\`es|
+Cette commande demande \`a \TeX\ de placer
+les limites apr\`es un grand op\'erateur plut\^ot que sur et sous lui.
+
+Si vous sp\'ecifiez plusieurs commandes |\limits|, |\nolimits|,
+et |\dis!-play!-limits|, seule la derni\`ere sera prise en compte.
+
+\example
+$$\bigcap\nolimits_{i=1}^Nq_i$$
+|
+\dproduces
+$$\bigcap\nolimits_{i=1}^Nq_i$$
+\endexample
+\enddesc
+
+\begindesc
+\cts displaylimits {}
+\explain
+Cette commande demande \`a \TeX\ de
+suivre ses r\`egles normales pour le placement des limites~:
+\olist\compact
+\li Les limites de ^|\int| sont plac\'ees apr\`es l'op\'erateur.
+\li Les limites des autres grands op\'erateurs sont plac\'ees apr\`es
+l'op\'era\-teur en style texte.
+\li Les limites des autres grands op\'erateurs sont plac\'ees sur et sous
+l'op\'erateur en style d'affichage.
+\endolist
+Il est habituellement plus simple d'utiliser |\limits| ou |\nolimits|
+pour produire un effet sp\'ecifique, mais |\display!-limits| est parfois
+utile dans les d\'efinitions de \minref{macro}.
+
+Notez que \plainTeX\ d\'efinit ^|\int| comme une macro qui comprend |\no!-limits|,
+donc |\int\displaylimits| en style de texte restaure la convention de |\limits|.
+
+Si vous sp\'ecifiez plusieurs commandes |\limits|, |\nolimits|,
+et |\dis!-play!-limits|, seule la derni\`ere sera prise en compte.
+
+\example
+$$a(\lambda) = {1 \over {2\pi}} \int\displaylimits
+_{-\infty}^{+\infty} f(x)e^{-i\lambda x}\,dx$$
+|
+\dproduces
+$$a(\lambda) = {1 \over {2\pi}} \int\displaylimits
+_{-\infty}^{+\infty} f(x)e^{-i\lambda x}\,dx$$
+
+\eix^^{op\'erateurs//grands}
+\endexample
+\enddesc
+
+
+%==========================================================================
+\subsection {Ponctuation}
+
+\begindesc
+\bix^^{ponctuation et formules de math.}
+\cts cdotp {}
+\cts ldotp {}
+\explain
+Ces deux commandes produisent respectivement un point centr\'e et un point
+positionn\'e sur la \minref{ligne de base}. Elles ne sont valides qu'en
+\minref{mode} math\'ematique. \TeX\ les traite comme de la ponctuation, ne mettant aucun espace suppl\'ementaire devant
+elles mais en ajoutant un petit en plus apr\`es elles.
+En contrepartie, \TeX\ met un montant d'espace \'egal des deux cot\'es
+d'un point centr\'e g\'en\'er\'e par la commande ^|\cdot| (\xref \cdot).
+\example
+$x \cdotp y \quad x \ldotp y \quad x \cdot y$
+|
+\produces
+$x \cdotp y \quad x \ldotp y \quad x \cdot y$
+\endexample
+\enddesc
+
+\begindesc
+\cts colon {}
+\explain
+Cette commande produit une symbole de ponctuation deux-points.
+Elle n'est valide qu'en mode math\'ematique.
+La diff\'erence entre |\colon| et le caract\`ere deux-points (|:|) est que
+`|:|' est un op\'erateur, donc \TeX\ met une espace suppl\'ementaire \`a sa gauche tandis qu'il
+ne met pas d'espace suppl\'ementaire \`a la gauche de |\colon|.
+\example
+$f \colon t \quad f : t$
+|
+\produces
+$f \colon t \quad f : t$
+
+\eix^^{ponctuation et formules de math.}
+\endexample
+\enddesc
+
+
+%==========================================================================
+%\secondprinting{\vfill\eject\null\vglue-30pt\vskip0pt}
+\section {Puissances et indices}
+
+\begindesc
+\margin{Two groups of commands have been combined here.}
+\bix^^{exposants}
+\bix^^{indices}
+%\secondprinting{\vglue-12pt}
+\makecolumns 4/2:
+\easy\ctsact _ \xrdef{@underscore} {\<argument>}
+\cts sb {\<argument>}
+\ctsact ^ \xrdef{@hat} {\<argument>}
+\cts sp {\<argument>}
+%\secondprinting{\vglue-4pt}
+\explain
+Les commandes de chaque colonne sont \'equivalentes. Les commandes de la premi\`ere
+colonne composent \<argument> comme un indice et celle de la seconde
+colonne composent \<argument> comme une puissance. Les commandes |\sb| et |\sp|
+sont principalement utiles si vous travaillez sur un terminal sur lequel manque un
+signe soulign\'e ou de puissance ou si vous avez red\'efini `|_|' or `|^|' et avez besoin
+d'acc\'eder \`a sa d\'efinition originale. Ces commandes sont aussi utilis\'ees pour
+mettre des limites inf\'erieures ou sup\'erieures sur des sommes ou des int\'egrales. ^^{limites
+inf\'erieures} ^^{limites sup\'erieures}
+
+Si une puissance ou un indice n'est pas un \minref{token} seul, vous devez
+l'englober dans un \minref{groupe}. \TeX\ ne met pas de priorit\'e aux puissances
+ou aux indices, donc il rejettera des formules telles que |a_i_j|, |a^i^j| ou
+|a^i_j|.
+
+Les puissances et les indices sont normalement compos\'es en ^{style script} ou
+en ^{style scriptscript} s'il sont de second ordre, c'est-\`a-dire, un indice d'un
+indice ou une puissance d'une puissance. Vous pouvez mettre \emph{tout}
+texte d'une formule math\'ematique en \minref{style}script ou scriptscript avec
+les commandes ^|\scriptstyle| et ^|\scriptscriptstyle| (\xref
+\scriptscriptstyle).
+
+Vous pouvez appliquer une puissance ou un indice \`a toutes les commandes qui
+produisent des fonctions math\'ematiques nomm\'ees en caract\`ere romain (voir
+\xref{namedfns}). Dans certain cas (voyez encore \xref{namedfns}) la
+puissance ou l'indice appara\^\i t directement sur ou sous la fonction
+nomm\'ee comme montr\'e dans les exemples de ^|\lim| et de ^|\det| ci-dessous.
+
+\example
+$x_3 \quad t_{\max} \quad a_{i_k} \quad \sum_{i=1}^n{q_i}
+ \quad x^3\quad e^{t \cos\theta}\quad r^{x^2}\quad
+ \int_0^\infty{f(x)\,dx}$
+$$\lim_{x\leftarrow0}f(x)\qquad\det^{z\in A}\qquad\sin^2t$$
+|
+\produces
+%\secondprinting{\divide\abovedisplayskip by 2}
+$x_3 \quad t_{\max} \quad a_{i_k} \quad \sum_{i=1}^n{q_i}
+ \quad x^3\quad e^{t \cos\theta}\quad r^{x^2}\quad
+ \int_0^\infty{f(x)\,dx}$
+$$\lim_{x \leftarrow 0} f(x)\qquad
+ \det^{z \in A}\qquad \sin^2 t$$
+
+\eix^^{exposants}
+\eix^^{indices}
+\endexample
+\enddesc
+
+%\secondprinting{\vfill\eject}
+
+%==========================================================================
+\subsection {Choisir et utiliser des mod\`eles}
+
+\begindesc
+\bix^^{styles}
+\cts textstyle {}
+\cts scriptstyle {}
+\cts scriptscriptstyle {}
+\cts displaystyle {}
+\explain
+^^{style texte} ^^{style script} ^^{style scriptscript} ^^{style d'affichage}
+Ces commandes forcent le \minref{style} normal et par cons\'equent la
+police que \TeX\ utilise pour composer une formule. Comme les
+commandes de choix de police telles que |\it|, elles sont effectives
+jusqu'\`a la fin du groupe les contenant.
+Elles sont utiles quand le choix de style de \TeX\ est inappropri\'e pour la formule
+que vous essayez de composer.
+\example
+$t+{\scriptstyle t + {\scriptscriptstyle t}}$
+|
+\produces
+$t+{\scriptstyle t + {\scriptscriptstyle t}}$
+\endexample
+\enddesc
+
+
+\begindesc
+\cts mathchoice {%
+ \rqbraces{\<math$_1$>}
+ \rqbraces{\<math$_2$>}
+ \rqbraces{\<math$_3$>}
+ \rqbraces{\<math$_4$>}}
+\explain
+Cette commande demande \`a \TeX\ de composer une des sous-formules
+\<math$_1$>, \<math$_2$>, \<math$_3$> ou \<math$_4$>, en faisant son choix
+selon le \minref{style} courant.
+Ainsi, si \TeX\ est en
+style d'affichage il compose |\math!-choice| comme \<math$_1$>~; en style texte il la compose
+comme \<math$_2$>~; en style script il la compose comme \<math$_3$>~;
+et en style scriptscript il la compose comme \<math$_4$>.
+\example
+\def\mc{{\mathchoice{D}{T}{S}{SS}}}
+The strange formula $\mc_{\mc_\mc}$ illustrates a
+mathchoice.
+|
+\produces
+\def\mc{{\mathchoice{D}{T}{S}{SS}}}
+The strange formula $\mc_{\mc_\mc}$ illustrates a
+mathchoice.
+\endexample
+\enddesc
+
+\begindesc
+\cts mathpalette {\<argument$_1$> \<argument$_2$>}
+\explain
+^^{symboles math\'ematiques}
+Cette commande procure un moyen simple de
+produire une construction math\'ematique qui marche dans les quatre \minref{style}s.
+Pour l'utiliser, vous devrez normalement d\'efinir une macro suppl\'ementaire,
+que nous appellerons |\build|.
+L'appel de |\math!-palette| pourra alors avoir la forme
+|\mathpalette|\allowbreak|\build|\<argument>.
+
+|\build| teste dans quel style est \TeX\ et compose \<argu\-ment> en cons\'e\-quence.
+Il peut \^etre d\'efini pour avoir deux param\`etres.
+Quand vous appelez |\math!-palette|, il appellera \`a son tout |\build|,
+avec |#1| une
+commande qui s\'electionne le style courant et |#2| un \<argument>.
+Ainsi, dans la d\'efinition de |\build| vous pouvez composer quelque chose
+dans le style courant en le faisant pr\'ec\'eder de `|#1|'.
+Voir la \knuth{page~360}{417--418} pour des exemples d'utilisation de |\mathpalette|
+et la \knuth{page~151}{177} pour plus d'explication sur son fonctionnement.
+
+\eix^^{styles}
+\enddesc
+
+%==========================================================================
+\section {Symboles compos\'es}
+
+%==========================================================================
+\subsection {Accents math\'ematiques}
+
+\begindesc
+\xrdef{mathaccent}
+^^{accents}
+^^{math\'ematiques//accents}
+%
+\easy\ctsx acute {^{accent aigu} comme dans $\acute x$}
+\ctsx b {^{accent barre dessous} comme dans $\b x$}
+\ctsx bar {^{accent barre} comme dans $\bar x$}
+\ctsx breve {^{accent bref} comme dans $\breve x$}
+\ctsx check {^{accent tch\`eque} comme dans $\check x$}
+\ctsx ddot {^{accent double point} comme dans $\ddot x$}
+\ctsx dot {^{accent point} comme dans $\dot x$}
+\ctsx grave {^{accent grave} comme dans $\grave x$}
+\ctsx hat {^{accent circonflexe} comme dans $\hat x$}
+\ctsx widehat {^{accent circonflexe large} comme dans $\widehat {x+y}$}
+\ctsx tilde {^{accent tilde} comme dans $\tilde x$}
+\ctsx widetilde {^{accent tilde large} comme dans $\widetilde {z+a}$}
+\ctsx vec {^{accent vecteur} comme dans $\vec x$}
+\explain
+Ces commandes produisent des accents dans les formules math\'e\-matiques.
+Vous devrez normalement laisser un espace apr\`es chacune d'entre elles.
+Un accent large peut s'appliquer \`a une sous-formule comportant plusieurs caract\`eres~;
+\TeX\ centrera l'accent sur la sous-formule.
+Les autres accents ne sont applicables qu'a des caract\`eres simples.
+
+\example
+$\dot t^n \qquad \widetilde{v_1 + v_2}$
+|
+\produces
+$\dot t^n \qquad \widetilde{v_1 + v_2}$
+\endexample
+
+\begindesc
+\cts mathaccent {\<mathcode>}
+\explain
+Cette commande demande \`a \TeX\ de composer un accent math\'ematique
+dont la famille et le code de caract\`ere sont donn\'es par \<mathcode>. (\TeX\ ignore
+la classe du \minref{mathcode}.)
+Voir l'\knuth{annexe~G}{} pour les d\'etails sur la mani\`ere dont \TeX\ positionne de tels accents.
+La fa\c con usuelle d'utiliser |\mathaccent| est de le mettre dans une d\'efinition de macro
+que donne un nom \`a l'accent math\'ematique.
+\example
+\def\acute{\mathaccent "7013}
+|
+\endexample
+\enddesc
+
+\see ``Accents'' (\xref {accents}).
+\enddesc
+
+%==========================================================================
+\subsection {Fractions et autres op\'erations empil\'ees}
+
+\begindesc
+\bix^^{fractions}
+\bix^^{sous-formules empil\'ees}
+\easy\cts over {}
+\cts atop {}
+\cts above {\<dimension>}
+\cts choose {}
+\cts brace {}
+\cts brack {}
+\explain
+{\def\fri{\<formula$_1$>}%
+\def\frii{\<formula$_2$>}%
+Ces commandes empilent une sous-formule sur une autre. Nous expliquerons comment
+marche |\over| et lui relierons ensuite les autres commandes.
+
+|\over| est la commande que vous utilisez normalement pour produire une fraction.
+^^{fractions//produites par \b\tt\\over\e}
+Si vous \'ecrivez quelque chose sous une des formes suivantes~:
+\csdisplay
+$$!fri\over!frii$$
+$!fri\over!frii$
+\left!<delim>!fri\over!frii\right!<delim>
+{!fri\over!frii}
+|
+vous obtiendrez une fraction avec un num\'erateur \fri\ et un d\'eno\-minateur \<for\-mu\-la$_2$>,
+c'est-\`a-dire, \fri\ sur \frii.
+Dans la premi\`ere de ces trois
+formes, le |\over| n'est pas implicitement contenu dans un groupe~;
+il absorbe
+tout ce qui est \`a sa gauche et \`a sa droite jusqu'a ce qu'il trouve une fronti\`ere,
+\`a savoir, le d\'ebut ou la fin d'un groupe.
+
+Vous ne pouvez pas utiliser |\over| ou une autre de ces commandes de ce groupe
+plus d'une fois dans une formule.
+Ainsi une formule telle que~:
+\csdisplay
+$$a \over n \choose k$$
+|
+n'est pas l\'egale.
+Ce n'est pas une s\'ev\`ere restriction parce que
+vous pouvez toujours englober une de ces commandes entre accolades.
+La raison de cette restriction est que si vous avez deux de ces commandes
+dans une seule formule, \TeX\ ne saura pas comment les grouper.
+
+Les autres commandes sont similaires \`a |\over|, avec les exceptions suivantes~:
+\ulist\compact
+\li |\atop| omet la barre de fraction.
+\li |\above| procure une barre de fraction d'\'epaisseur \<dimension>.
+\li |\choose|
+omet la barre de fraction et englobe la construction entre parenth\`eses.
+(Elle est appel\'ee ``choose'' parce que $n \choose k$ est la notation pour le
+nombre de fa\c cons de choisir $k$ choses parmi $n$.)
+\li |\brace| omet la barre de fraction et englobe la construction entre accolades.
+\li |\brack|
+omet la barre de fraction et englobe la construction entre crochets.
+\endulist
+}%
+\example
+$${n+1 \over n-1} \qquad {n+1 \atop n-1} \qquad
+ {n+1 \above 2pt n-1} \qquad {n+1 \choose n-1} \qquad
+ {n+1 \brace n-1} \qquad {n+1 \brack n-1}$$
+|
+\dproduces
+$${n+1 \over n-1} \qquad {n+1 \atop n-1} \qquad
+ {n+1 \above 2pt n-1} \qquad {n+1 \choose n-1} \qquad
+ {n+1 \brace n-1} \qquad {n+1 \brack n-1}$$
+\endexample
+\enddesc
+
+\begindesc
+\cts overwithdelims {\<delim$_1$> \<delim$_2$>}
+\cts atopwithdelims {\<delim$_1$> \<delim$_2$>}
+\cts abovewithdelims {\<delim$_1$> \<delim$_2$> \<dimension>}
+\explain
+Chacune de ces commandes superpose une sous-formule sur une autre et
+entoure le r\'esultat avec \<delim$_1$> \`a gauche et
+\<delim$_2$> \`a droite. Ces commandes suivent les m\^eme r\`egles que
+|\over|, |\atop| et |\above|. Le \<dimension> dans |\abovewithdelims|
+sp\'ecifie l'\'epaisseur de la barre de fraction.
+\example
+$${m \overwithdelims () n}\qquad
+ {m \atopwithdelims !|!| n}\qquad
+ {m \abovewithdelims \{\} 2pt n}$$
+|
+\dproduces
+$${m \overwithdelims () n}\qquad
+ {m \atopwithdelims || n}\qquad
+ {m \abovewithdelims \{\} 2pt n}$$
+\endexample
+\enddesc
+
+\begindesc
+\cts cases {}
+\explain
+^^{combinaisons, notation pour des}
+Cette commande produit la forme math\'ematique qui d\'ecrit un choix entre
+plusieurs cas.
+Chaque cas a deux parties, s\'epar\'ees par `|&|'.
+\TeX\ traite la premi\`ere partie comme une formule math\'ematique
+et la seconde partie comme du texte ordinaire. Chaque
+cas doit \^etre suivi par |\cr|.
+
+\example
+$$g(x,y) = \cases{f(x,y),&if $x<y$\cr
+ f(y,x),&if $x>y$\cr
+ 0,&otherwise.\cr}$$
+|
+\dproduces
+$$g(x,y) = \cases{f(x,y),&if $x<y$\cr
+ f(y,x),&if $x>y$\cr
+ 0,&otherwise.\cr}$$
+\endexample
+\enddesc
+
+\begindesc
+\cts underbrace {\<argument>}
+\cts overbrace {\<argument>}
+\cts underline {\<argument>}
+\cts overline {\<argument>}
+\cts overleftarrow {\<argument>}
+\cts overrightarrow {\<argument>}
+\explain
+Ces commandes placent des ^{accolades}, des lignes ou des ^{fl\`eches} extensibles
+sur ou sous la sous-formule donn\'ee par \<argument>.
+\TeX\ fera cette construction aussi large que n\'ecessaire pour
+le contexte.
+Quand \TeX\ produit les accolades, lignes ou fl\`eches \'etendues, il ne consid\`ere
+que les dimensions de la \minref{bo\^\i te} contenant \<argument>.
+Si vous utilisez plus d'une de ces commandes dans une seule formule, les
+accolades, lignes ou fl\`eches qu'elle produira
+pourront ne pas s'aligner proprement les unes avec les autres.
+Vous pouvez utiliser la commande |\mathstrut| (\xref \mathstrut)
+pour contourner cette difficult\'e.
+\example
+$$\displaylines{
+\underbrace{x \circ y}\qquad \overbrace{x \circ y}\qquad
+\underline{x \circ y}\qquad \overline{x \circ y}\qquad
+\overleftarrow{x \circ y}\qquad
+\overrightarrow{x \circ y}\cr
+{\overline r + \overline t}\qquad
+{\overline {r \mathstrut} + \overline {t \mathstrut}}\cr
+}$$
+|
+\dproduces
+$$\displaylines{
+\underbrace{x \circ y}\qquad \overbrace{x \circ y}\qquad
+\underline{x \circ y}\qquad \overline{x \circ y}\qquad
+\overleftarrow{x \circ y}\qquad
+\overrightarrow{x \circ y}\cr
+{\overline r + \overline t}\qquad
+{\overline {r \mathstrut} + \overline {t \mathstrut}}\cr
+}$$
+\endexample
+\enddesc
+
+\begindesc%\secondprinting{\vglue-.5\baselineskip\vskip0pt}
+\cts buildrel {\<formule> {\bt \\over} \<relation>}
+\explain
+^^{relations//mettre des formules sur des}
+Cette commande produit une \minref{bo\^\i te} dans laquelle \<formula>
+est plac\'e sur \<relation>. \TeX\ traite le r\'esultat comme une relation
+en ce qui concerne l'espacement \seeconcept{classe}.
+\example
+$\buildrel \rm def \over \equiv$
+|
+\produces
+$\buildrel \rm def \over \equiv$
+
+\eix^^{fractions}
+\eix^^{sous-formules empil\'ees}
+\endexample
+\enddesc
+
+%\secondprinting{\vfill\eject}
+
+
+%==========================================================================
+\subsection {Points}
+
+\begindesc
+\bix^^{points}
+\easy\cts ldots {}
+\cts cdots {}
+\explain
+Ces commandes produisent trois ^{points} align\'es. Pour |\ldots|, les points
+sont sur la ligne de base~; pour |\cdots|, les points sont centr\'es en respectant
+les axes (voir l'explication de |\vcenter|, \xref\vcenter).
+
+\example
+$t_1 + t_2 + \cdots + t_n \qquad x_1,x_2, \ldots\,, x_r$
+|
+\produces
+$t_1 + t_2 + \cdots + t_n \qquad x_1,x_2, \ldots\,, x_r$
+\endexample
+\enddesc
+
+\begindesc
+\easy\cts vdots {}
+\explain
+Cette commande produit trois points verticaux.
+\example
+$$\eqalign{f(\alpha_1)& = f(\beta_1)\cr
+ \noalign{\kern -4pt}%
+ &\phantom{a}\vdots\cr % moves the dots right a bit
+ f(\alpha_k)& = f(\beta_k)\cr}$$
+|
+\dproduces
+$$\eqalign{f(\alpha_1)& = f(\beta_1)\cr
+ \noalign{\kern -4pt}%
+ &\phantom{a}\vdots\cr
+ f(\alpha_k)& = f(\beta_k)\cr}$$
+\endexample
+\enddesc
+
+\begindesc
+\cts ddots {}
+\explain
+Cette commande produit trois points sur une diagonale.
+Son usage le plus commun est d'indiquer une r\'ep\'etition le long de la diagonale d'une matrice.
+\example
+$$\pmatrix{0&\ldots&0\cr
+ \vdots&\ddots&\vdots\cr
+ 0&\ldots&0\cr}$$
+|
+\dproduces
+$$\pmatrix{0&\ldots&0\cr
+ \vdots&\ddots&\vdots\cr
+ 0&\ldots&0\cr}$$
+
+\eix^^{points}
+\endexample
+\enddesc
+
+\see |\dots| \ctsref\dots.
+
+%==========================================================================
+\subsection {D\'elimiteurs}
+
+\begindesc
+\bix^^{d\'elimiteurs}
+%
+\cts lgroup {}
+\cts rgroup {}
+\explain
+Ces commandes produisent de grandes ^{parenth\`eses} gauches et droites
+qui sont d\'efinies comme des \minref{d\'elimiteur}s ouvrants et fermants.
+La plus grande taille disponible pour ces d\'elimiteurs est |\Big|.
+Si vous utilisez des tailles plus petites, vous obtiendrez des caract\`eres \'etranges.
+\example
+$$\lgroup\dots\rgroup\qquad\bigg\lgroup\dots\bigg\rgroup$$
+|
+\dproduces
+$$\lgroup\dots\rgroup\qquad\bigg\lgroup\dots\bigg\rgroup$$
+\endexample
+\enddesc
+
+\begindesc
+\margin{{\tt\\vert} and {\tt\\Vert} were explained elsewhere.}
+\easy\cts left {}
+\cts right {}
+\explain
+Ces commandes doivent \^etre employ\'ees ensemble selon le mod\`ele~:
+\display
+{{\bt \\left} \<delim$_1$> \<subformula> {\bt \\right} \<delim$_2$>}
+Cette construction demande \`a \TeX\ de produire \<subformula>,
+entour\'ee des \minref{d\'elimiteur}s \<delim$_1$> et \<delim$_2$>.
+La taille verticale des d\'elimiteurs est ajust\'ee pour correspondre \`a la
+taille verticale (hauteur plus profondeur) de \<subformula>. \<delim$_1$> et
+\<delim$_2$> n'ont pas besoin de correspondre.
+Par exemple, vous pouvez utiliser `|]|' comme d\'elimiteur gauche
+et `|(|' comme d\'elimiteur droite dans une utilisation simple de |\left|
+et |\right|.
+
+|\left| et |\right| ont la propri\'et\'e importante de d\'efinir un
+groupe, c'est-\`a-dire, qu'ils agissent comme des accolades gauches et droite. cette propri\'et\'e de
+groupement est particuli\`erement utile quand vous mettez ^|\over| (\xref{\over}) ou
+une commande similaire entre |\left| et |\right|, car vous n'avez pas besoin
+de mettre d'accolades autour de la fraction construite par |\over|.
+
+Si vous voulez un d\'elimiteur gauche mais pas le droit, vous pouvez utiliser `|.|' \`a
+la place du d\'elimiteur que vous ne voulez pas et il se transformera en espace blanc
+(de largeur ^|\nulldelimiterspace|).
+\example
+$$\left\Vert\matrix{a&b\cr c&d\cr}\right\Vert
+ \qquad \left\uparrow q_1\atop q_2\right.$$
+|
+\dproduces
+$$\left\Vert\matrix{a&b\cr c&d\cr}\right\Vert
+ \qquad \left\uparrow q_1\atop q_2\right.$$
+\endexample
+\enddesc
+
+\begindesc
+\cts delimiter {\<nombre>}
+\explain
+Cette commande produit un d\'elimiteur dont les caract\'eristiques sont donn\'ees par
+\<number>. \<number> est normalement \'ecrit en notation hexa\-d\'ecimale.
+Vous pouvez utiliser la commande |\delimiter| \`a la place d'un caract\`ere dans tout contexte
+o\`u \TeX\ attend un d\'elimiteur (bien que la commande soit rarement
+employ\'ee en dehors d'une d\'efinition de macro).
+Supposez que \<number> soit le nombre hexad\'ecimal $cs_1s_2s_3
+l_1l_2l_3$. Alors \TeX\ prendra le d\'elimiteur ayant
+la \minref{classs} $c$, la petite variante
+$s_1s_2s_3$ et la grande variante $l_1l_2l_3$. Ici $s_1s_2s_3$ indique
+le caract\`ere math\'ematique trouv\'e en position $s_2s_3$ de la famille $s_1$ et
+de m\^eme pour $l_1l_2l_3$. C'est la m\^eme convention que celle
+utilis\'ee pour ^|\mathcode| (\xref\mathcode).
+\example
+\def\vert{\delimiter "026A30C} % As in plain TeX.
+|
+\endexample
+\enddesc
+
+
+\begindesc
+\margin{{\tt\\delcode} was explained in two places. The
+combined explanation is now in `General operations'.}
+\cts delimiterfactor {\param{nombre}}
+\cts delimitershortfall {\param{nombre}}
+\explain
+^^{d\'elimiteurs//hauteur des}
+Ces deux param\`etres signalent \`a \TeX\ comment la hauteur d'un \minref{d\'elimiteur}
+doit \^etre reli\'ee \`a la taille verticale de la sous-formule
+\`a laquelle le d\'elimi\-teur est associ\'e.
+|\delimiterfactor| donne le ratio minimum
+de la taille du d\'elimiteur par rapport \`a la taille verticale de la sous-formule et
+|\deli!-mitershortfall| donne le maximum par lequel la hauteur du
+d\'elimiteur sera r\'eduite pour correspondre \`a la taille verticale de la sous-formule.
+
+Supposez que la \minref{bo\^\i te} contenant la sous-formule
+ait une hauteur $h$ et une profondeur $d$ et $y=2\,\max(h,d)$.
+soit la valeur de |\delimiterfactor| $f$ et la valeur de
+|\delimitershortfall| $\delta$.
+Alors \TeX\ prend la taille de d\'elimiteur minimum \'etant au moins $y \cdot
+f/1000$ et au moins $y-\delta$. En particulier, si |\delimiterfactor|
+est exactement \`a $1000$ alors \TeX\ essayera de faire un d\'elimiteur au moins aussi grand
+que la formule \`a laquelle il est attach\'e.
+Voir les \knuth{pages~152 et~446 (R\`egle 19)}{pages~178 et~511 (R\`egle 19)}
+pour les d\'etail exacts sur la fa\c con dont \TeX\ utilise ces param\`etres.
+\PlainTeX\ met |\delimiter!-factor| \`a $901$ et
+|\delimiter!-shortfall| \`a |5pt|.
+\enddesc
+
+\see |\delcode| (\xref\delcode), |\vert|, |\Vert|
+et |\backslash| (\xref\vert).
+\eix^^{d\'elimiteurs}
+
+%==========================================================================
+\subsection {Matrices}
+
+\begindesc
+\cts matrix
+ {{\bt \rqbraces{\<ligne> \\cr $\ldots$ \<ligne> \\cr}}}
+\cts pmatrix
+ {{\bt \rqbraces{\<ligne> \\cr $\ldots$ \<ligne> \\cr}}}
+\cts bordermatrix
+ {{\bt \rqbraces{\<ligne> \\cr $\ldots$ \<ligne> \\cr}}}
+\explain
+Chacune de ces trois commandes produit une ^{matrice}.
+Les \'el\'ements de chaque rang\'e de la matrice entr\'ee
+sont s\'epar\'es par `|&|' et chaque rang\'e est \`a son tour termin\'ee
+par |\cr|.
+(C'est la m\^eme forme que celle utilis\'ee pour un
+\minref{alignement}.)
+Les commandes diff\`erent de la mani\`ere suivante~:
+\ulist\compact
+\li |\matrix| produit une matrice sans aucun entourage ou \minref{d\'elimiteur}s ins\'er\'es.
+\li |\pmatrix| produit une matrice entour\'ee par des parenth\`eses.
+\li |\bordermatrix| produit une matrice dans laquelle la premi\`ere rang\'ee et la premi\`ere
+colonne sont trait\'ees comme des labels. (Le premier \'el\'ement de la premi\`ere rang\'ee est
+habituellement laiss\'e \`a blanc.) Le reste de la matrice est englob\'ee dans
+des parenth\`eses.
+\endulist
+\TeX\ peut rendre les parenth\`eses de |\pmatrix| et de |\bordermatrix| aussi larges que
+n\'ecessaire en ins\'erant des extensions verticales. Si vous voulez une matrice
+entour\'ee par des d\'elimiteurs autres que des paren\-th\`eses, vous devez utiliser
+|\matrix| en conjugaison avec |\left| et |\right| (\xref \left).
+
+\example
+$$\displaylines{
+ \matrix{t_{11}&t_{12}&t_{13}\cr
+ t_{21}&t_{22}&t_{23}\cr
+ t_{31}&t_{32}&t_{33}\cr}\qquad
+\left\{\matrix{t_{11}&t_{12}&t_{13}\cr
+ t_{21}&t_{22}&t_{23}\cr
+ t_{31}&t_{32}&t_{33}\cr}\right\}\cr
+\pmatrix{t_{11}&t_{12}&t_{13}\cr
+ t_{21}&t_{22}&t_{23}\cr
+ t_{31}&t_{32}&t_{33}\cr}\qquad
+\bordermatrix{&c_1&c_2&c_3\cr
+ r_1&t_{11}&t_{12}&t_{13}\cr
+ r_2&t_{21}&t_{22}&t_{23}\cr
+ r_3&t_{31}&t_{32}&t_{33}\cr}\cr}$$
+|
+\dproduces
+$$\displaylines{
+ \matrix{t_{11}&t_{12}&t_{13}\cr
+ t_{21}&t_{22}&t_{23}\cr
+ t_{31}&t_{32}&t_{33}\cr}\qquad
+\left\{\matrix{t_{11}&t_{12}&t_{13}\cr
+ t_{21}&t_{22}&t_{23}\cr
+ t_{31}&t_{32}&t_{33}\cr}\right\}\cr
+\pmatrix{t_{11}&t_{12}&t_{13}\cr
+ t_{21}&t_{22}&t_{23}\cr
+ t_{31}&t_{32}&t_{33}\cr}\qquad
+\bordermatrix{&c_1&c_2&c_3\cr
+ r_1&t_{11}&t_{12}&t_{13}\cr
+ r_2&t_{21}&t_{22}&t_{23}\cr
+ r_3&t_{31}&t_{32}&t_{33}\cr}\cr}$$
+\endexample
+\enddesc
+
+%==========================================================================
+\subsection {Racines et radicaux}
+
+\begindesc
+\easy\cts sqrt {\<argument>}
+\explain
+Cette commande produit la notation pour la racine carr\'ee de \<argument>.
+\example
+$$x = {-b\pm\sqrt{b^2-4ac} \over 2a}$$
+|
+\dproduces
+$$x = {-b\pm\sqrt{b^2-4ac} \over 2a}$$
+\endexample
+\enddesc
+
+\begindesc
+\easy\cts root {\<argument$_1$> {\bt \\of} \<argument$_2$>}
+\explain
+Cette commande produit la notation pour une racine de \<argument$_2$> o\`u l'ordre
+est donn\'e par \<argument$_1$>.
+\example
+$\root \alpha \of {r \cos \theta}$
+|
+\produces
+$\root \alpha \of {r \cos \theta}$
+\endexample
+\enddesc
+
+\begindesc
+\cts radical {\<nombre>}
+\explain
+Cette commande produit un signe radical
+dont les caract\'eristiques sont donn\'ees par
+\<nombre>. Elle utilise la m\^eme repr\'esentation que le code d\'elimiteur
+^^{codes d\'elimiteurs}
+dans la commande ^|\delcode| (\xref \delcode).
+
+\example
+\def\sqrt{\radical "270370} % as in plain TeX
+|
+\endexample
+\enddesc
+
+%==========================================================================
+\section {Num\'eros d'\'equation}
+
+\begindesc
+\easy\cts eqno {}
+\cts leqno {}
+\explain
+Ces commandes attachent un num\'ero d'\'equation \`a une formule affich\'ee.
+|\eqno| met le num\'ero d'\'equation \`a droite et |\leqno| le met \`a gauche.
+Les commandes doivent \^etre mises \`a la fin de la formule.
+Si vous avez un affichage multi-ligne et voulez num\'eroter plus d'une ligne,
+utilisez les commandes |\eq!-alignno| ou |\leq!-alignno|
+(\xref \eqalignno).
+
+Ces commandes ne sont valides qu'en mode math\'ematique affich\'e.
+
+\example
+$$e^{i\theta} = \cos \theta + i \sin \theta\eqno{(11)}$$
+|
+\produces
+$$e^{i\theta} = \cos \theta + i \sin \theta\eqno{(11)}$$
+\endexample
+\example
+$$\cos^2 \theta + \sin^2 \theta = 1\leqno{(12)}$$
+|
+\produces
+\abovedisplayskip = -\baselineskip
+$$\cos^2 \theta + \sin^2 \theta = 1\leqno{(12)}$$
+\endexample
+\enddesc
+
+
+%==========================================================================
+\section {Affichages multi-ligne}
+
+\begindesc
+\bix^^{affichages//multi-ligne}
+\cts displaylines
+ {{\bt \rqbraces{\<ligne>\ths\\cr$\ldots$\<ligne>\ths\\cr}}}
+\explain
+Cette commande produit un affichage math\'ematique multi-ligne dans lequel chaque ligne est
+centr\'ee ind\'ependamment des autres lignes.
+Vous pouvez utiliser la commande |\noalign| (\xref \noalign) pour changer le montant
+d'espace entre deux lignes d'un affichage multi-ligne.
+
+Si vous voulez attacher des num\'eros d'\'equation \`a certaines ou toutes les \'equations
+dans un affichage math\'ematique multi-ligne, vous devez utiliser |\eqalignno| ou
+|\leqalignno|.
+\example
+$$\displaylines{(x+a)^2 = x^2+2ax+a^2\cr
+ (x+a)(x-a) = x^2-a^2\cr}$$
+|
+\dproduces\centereddisplays
+$$\displaylines{
+(x+a)^2 = x^2+2ax+a^2\cr
+(x+a)(x-a) = x^2-a^2\cr
+}$$
+\endexample
+\enddesc
+
+\begindesc
+\cts eqalign {}
+ {{\bt \rqbraces{\<ligne> \\cr $\ldots$ \<ligne> \\cr}}}
+\cts eqalignno {}
+ {{\bt \rqbraces{\<ligne> \\cr $\ldots$ \<ligne> \\cr}}}
+\cts leqalignno {}
+ {{\bt \rqbraces{\<ligne> \\cr $\ldots$ \<ligne> \\cr}}}
+\explain
+^^{num\'eros d'\'equation}
+Ces commandes produisent un affichage math\'ematique multi-ligne
+dans lequel certaines parties correspondantes des lignes sont align\'ees verticalement.
+Les commandes |\eqalignno| et |\leqalignno| vous laissent aussi
+apporter des num\'eros d'\'equation pour certaines ou toutes les lignes.
+|\eqalignno| met les num\'eros d'\'equation \`a droite et
+|\leqalignno| les met \`a gauche.
+
+Chaque ligne dans l'affichage est termin\'ee par |\cr|. Chacune des parties devant \^etre align\'ee
+(le plus souvent un signe \'egal) est pr\'ec\'ed\'ee par
+`|&|'. Un `|&|' pr\'ec\`ede aussi chaque num\'ero d'\'equation, qui est donn\'e \`a la fin d'une ligne.
+Vous pouvez mettre plus d'une de ces commandes dans un seul affichage pour
+produire plusieurs groupes d'\'equation. Dans ce cas, seuls les groupes les plus \`a droite
+ou les plus \`a gauche peuvent \^etre produits avec |\eqalignno| ou |\leqalignno|.
+
+Vous pouvez utiliser la commande |\noalign| (\xref \noalign) pour changer le montant
+d'espace entre deux lignes d'un affichage multi-ligne.
+\example
+$$\left\{\eqalign{f_1(t) &= 2t\cr f_2(t) &= t^3\cr
+ f_3(t) &= t^2-1\cr}\right\}
+ \left\{\eqalign{g_1(t) &= t\cr g_2(t) &= 1}\right\}$$
+|
+\dproduces
+$$\left\{\eqalign{f_1(t) &= 2t\cr f_2(t) &= t^3\cr
+ f_3(t) &= t^2-1\cr}\right\}
+\left\{\eqalign{g_1(t) &= t\cr g_2(t) &= 1}\right\}$$
+\nextexample
+$$\eqalignno{
+\sigma^2&=E(x-\mu)^2&(12)\cr
+ &={1 \over n}\sum_{i=0}^n (x_i - \mu)^2&\cr
+ &=E(x^2)-\mu^2\cr}$$
+|
+\produces
+\abovedisplayskip = -\baselineskip
+$$\eqalignno{
+\sigma^2&=E(x-\mu)^2&(12)\cr
+ &={1 \over n}\sum_{i=0}^n (x_i - \mu)^2&\cr
+ &=E(x^2)-\mu^2\cr}$$
+\nextexample
+$$\leqalignno{
+\sigma^2&=E(x-\mu)^2&(6)\cr
+ &=E(x^2)-\mu^2&(7)\cr}$$
+|
+\produces
+\abovedisplayskip = -\baselineskip
+$$\leqalignno{
+\sigma^2&=E(x-\mu)^2&(6)\cr
+ &=E(x^2)-\mu^2&(7)\cr}$$
+\nextexample
+$$\eqalignno{
+ &(x+a)^2 = x^2+2ax+a^2&(19)\cr
+ &(x+a)(x-a) = x^2-a^2\cr}$$
+% same effect as \displaylines but with an equation number
+|
+\dproduces
+$$\eqalignno{
+&(x+a)^2 = x^2+2ax+a^2&(19)\cr
+&(x+a)(x-a) = x^2-a^2\cr
+}$$
+% same effect as \displaylines but with an equation number
+
+\eix^^{affichages//multi-ligne}
+\endexample
+\enddesc
+
+%==========================================================================
+\section {Polices dans des formules math\'ematiques}
+
+\begindesc
+^^{polices}
+\xrdef{mathfonts}
+%
+\easy\ctsx cal {utilise une police calligraphique majuscule}
+\ctsx mit {utilise une police math\'ematique italique}
+\ctsx oldstyle {utilise une police de chiffres elz\'eviriens}
+\explain
+Ces commandes demandent \`a \TeX\ de composer le texte suivant dans la police
+sp\'ecifi\'ee. Vous ne pouvez les utiliser qu'en \minref{mode math\'ematique}.
+La commande |\mit| est utile pour produire des ^{lettres grecques} capitales pench\'ees.
+Vous pouvez aussi utiliser les commandes donn\'ees dans
+\headcit{S\'electionner des polices}{selfont} pour changer des polices en mode math\'ematique.
+\example
+${\cal XYZ} \quad
+{\mit AaBb\Gamma \Delta \Sigma} \quad
+{\oldstyle 0123456789}$
+|
+\produces
+${\cal XYZ} \quad
+{\mit AaBb\Gamma \Delta \Sigma} \quad
+{\oldstyle 0123456789}$
+\endexample
+\enddesc
+
+^^{styles de caract\`ere}
+\begindesc
+\ctsx itfam {famille de type italique}
+\ctsx bffam {famille de type grasse}
+\ctsx slfam {famille de type pench\'ee}
+\ctsx ttfam {famille de type machine \`a \'ecrire}
+\explain
+Ces commandes d\'efinissent des familles de type \minrefs{family} devant \^etre utilis\'ees en
+\minref{mode math\'ematique}. Leur principale utilisation est dans la d\'efinition des commandes
+|\it|, |\bf|, |\sl| et |\tt| pour qu'elles puissent fonctionner en mode math\'ematique.
+\enddesc
+
+\begindesc
+\cts fam {\param{nombre}}
+\explain
+Quand \TeX\ est en \minref{mode math\'ematique}, il compose normalement un caract\`ere
+en utilisant la ^^{classe} de famille de police donn\'ee dans son \minref{mathcode}.
+^^{famille//donn\'ee par \b\tt\\fam\e}
+Cependant, quand \TeX\ est en mode math\'ematique et rencontre un caract\`ere dont
+la \minref{classe} est $7$ (Variable), il compose ce caract\`ere en utilisant
+la \minref{famille} de police donn\'ee par la valeur de |\fam|, \`a condition que la
+valeur de |\fam| soit entre $0$ et $15$.
+Si la valeur de |\fam| n'est pas dans cette intervalle, \TeX\ utilise la famille du
+mathcode du caract\`ere comme dans le cas ordinaire.
+\TeX\ met |\fam| \`a $-1$ \`a chaque fois qu'il entre en mode math\'ematique.
+En dehors du mode math\'ematique, |\fam| n'a pas d'effet.
+
+En assignant une valeur \`a
+|\fam| vous pouvez changer la fa\c con dont \TeX\ compose des caract\`eres ordinaires
+tels que des variables.
+Par exemple, en mettant |\fam| \`a |\ttfam|, vous demandez \`a \TeX\ de composer
+des variables en utilisant une police de machine \`a \'ecrire.
+\PlainTeX\ d\'efinit |\tt| comme une \minref{macro} qui, entre autres choses,
+met |\fam| \`a |\ttfam|.
+\example
+\def\bf{\fam\bffam\tenbf} % As in plain TeX.
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts textfont {\<family>\param{fontname}}
+\cts scriptfont {\<family>\param{fontname}}
+\cts scriptscriptfont {\<family>\param{fontname}}
+\explain
+^^{style texte}
+^^{style script}
+^^{style scriptscript}
+Chacun de ces param\`etres sp\'ecifie la police que \TeX\ utilise pour
+composer le \minref{style} indiqu\'e dans la \minref{famille} indiqu\'ee.
+Ces choix n'ont aucun effet en dehors du \minref{mode math\'ematique}.
+\example
+\scriptfont2 = \sevensy % As in plain TeX.
+|
+\endexample
+\enddesc
+
+\see ``Type styles'' (\xref{seltype}).
+%==========================================================================
+\section {Construire des symboles math\'ematiques}
+
+%==========================================================================
+\subsection {Rendre des d\'elimiteurs plus grands}
+
+\begindesc
+\makecolumns 16/4:
+\easy\cts big {}
+\cts bigl {}
+\cts bigm {}
+\cts bigr {}
+\cts Big {}
+\cts Bigl {}
+\cts Bigm {}
+\cts Bigr {}
+\cts bigg {}
+\cts biggl {}
+\cts biggm {}
+\cts biggr {}
+\cts Bigg {}
+\cts Biggl {}
+\cts Biggm {}
+\cts Biggr {}
+\explain
+^^{d\'elimiteurs//\'elargis}
+Ces commandes rendent des \minref{d\'elimiteur}s plus grands que leur taille normale.
+Les commandes dans les quatre colonnes
+produisent successivement de plus grandes tailles. La diff\'erence entre |\big|,
+|\bigl|, |\bigr| et |\bigm| est en relation avec la \minref{classe} du
+d\'elimiteur agrandi~:
+\ulist\compact
+\li |\big| produit un symbole ordinaire.
+\li |\bigl| produit un symbole ouvrant.
+\li |\bigr| produit un symbole fermant.
+\li |\bigm| produit un symbole de relation.
+\endulist
+\noindent
+\TeX\ utilise la classe d'un symbole pour d\'ecider combien d'espace mettre
+autour de ce symbole.
+
+Ces commandes, contrairement \`a |\left| et |\right|,
+ne d\'efinissent \emph{pas} un groupe.
+
+\example
+$$(x) \quad \bigl(x\bigr) \quad \Bigl(x\Bigr) \quad
+ \biggl(x\biggr) \quad \Biggl(x\Biggr)\qquad
+[x] \quad \bigl[x\bigr] \quad \Bigl[x\Bigr] \quad
+ \biggl[x\biggr] \quad \Biggl[x\Biggr]$$
+|
+\dproduces
+$$(x) \quad \bigl(x\bigr) \quad \Bigl(x\Bigr) \quad
+\biggl(x\biggr) \quad \Biggl(x\Biggr)\qquad
+[x] \quad \bigl[x\bigr] \quad \Bigl[x\Bigr] \quad
+\biggl[x\biggr] \quad \Biggl[x\Biggr]$$
+\endexample
+\enddesc
+
+%==========================================================================
+\subsection {Parties de grands symboles}
+
+\begindesc
+\cts downbracefill {}
+\cts upbracefill {}
+\explain
+Ces commandes produisent respectivement des ^{accolades horizontales}
+et extensibles dirig\'ees vers le haut et vers le bas. ^^{accolades}
+\TeX \ rendra les accolades aussi larges que n\'ecessaire.
+Ces commandes
+sont utilis\'ees dans les d\'efinitions de ^|\overbrace| et de ^|\underbrace|
+(\xref \overbrace).
+\example
+$$\hbox to 1in{\downbracefill} \quad
+ \hbox to 1in{\upbracefill}$$
+|
+\dproduces
+$$\hbox to 1in{\downbracefill} \quad
+ \hbox to 1in{\upbracefill}$$
+\endexample
+\enddesc
+
+\begindesc
+\cts arrowvert {}
+\cts Arrowvert {}
+\cts lmoustache {}
+\cts rmoustache {}
+\cts bracevert {}
+\explain
+Ces commandes produisent des portions de certains grands
+d\'elimiteurs
+^^{d\'elimiteurs//parties de}
+qui peuvent eux-m\^eme \^etre utilis\'es comme d\'elimiteurs.
+Elles font r\'ef\'e\-rence aux caract\`eres de la police math\'ematique ^|cmex10|.
+\example
+$$\cdots \Big\arrowvert \cdots \Big\Arrowvert \cdots
+ \Big\lmoustache \cdots \Big\rmoustache \cdots
+ \Big\bracevert \cdots$$
+|
+\dproduces
+$$\cdots \Big\arrowvert \cdots \Big\Arrowvert \cdots
+ \Big\lmoustache \cdots \Big\rmoustache \cdots
+ \Big\bracevert \cdots$$
+\endexample
+\enddesc
+
+
+%==========================================================================
+\section {Aligner des parties d'une formule}
+
+%==========================================================================
+\subsection {Aligner des accents}
+
+\begindesc
+\bix^^{accents//aligner des}
+\cts skew {\<nombre> \<argument$_1$> \<argument$_2$>}
+\explain
+Cette commande d\'eplace l'accent \<argument$_1$> de
+\<number> \minref{unit\'es math\'e\-matiques} vers la droite de sa position normale
+en respectant \<argu\-ment$_2$>.
+L'utilisation la plus commune de cette commande est pour
+modifier la position d'un accent qui se trouve plac\'e sur
+un autre accent.
+\example
+$$\skew 2\bar{\bar z}\quad\skew 3\tilde{\tilde y}\quad
+ \skew 4\tilde{\hat x}$$
+|
+\dproduces
+$$\skew 2\bar{\bar z}\quad\skew 3\tilde{\tilde y}\quad
+ \skew 4\tilde{\hat x}$$
+\endexample
+\enddesc
+
+\begindesc
+\cts skewchar {\<font>\param{number}}
+\explain
+Le |\skewchar| d'une police
+est le caract\`ere dans la police dont les cr\'enages,
+d\'efinis dans le fichier de m\'etrique de la police, d\'eterminent les positions
+des accents math\'ematiques. Cela dit, supposez que \TeX\ applique un accent math\'ematique
+au caract\`ere `|x|'. \TeX\ regarde si la paire de caract\`eres
+`|x\skewchar|' a un cr\'enage~; si oui, il d\'eplace l'accent d'un montant de
+ce cr\'enage. L'algorithme complet que \TeX\ utilise pour positionner les accents
+math\'ematiques (qui d\'eterminent beaucoup d'autres choses) se trouve dans l'\knuth{annexe~G}{}.
+
+Si la valeur de |\skewchar| n'est pas dans l'intervalle $0$--$255$,
+\TeX\ prend une valeur de cr\'enage \`a z\'ero.
+
+Notez que \<font> est une s\'equence de contr\^ole
+qui nomme une police, pas un \<nom de police> qui nomme des fichiers de police.
+Attention~:
+un assignement de |\skewchar| n'est \emph{pas} enlev\'e \`a la fin d'un groupe.
+Si vous voulez changer |\skewchar| localement, vous devrez sauvegarder et
+restaurer sa valeur originale explicitement.
+\enddesc
+
+\begindesc
+\cts defaultskewchar {\param{number}}
+\explain
+Quand \TeX\ lit le fichier de m\'etriques
+^^{fichier de m\'etriques//caract\`ere oblique par d\'efaut dans le}
+pour une police en r\'eponse \`a une
+commande ^|\font|, il met le ^|\skewchar| de la police
+dans |\default!-skewchar|.
+Si la valeur de |\default!-skewchar| n'est
+pas dans l'intervalle $0$--$255$, \TeX\ n'assigne aucun caract\`ere oblique
+par d\'efaut.
+\PlainTeX\ met |\defaultskewchar| \`a $-1$, et il est normalement pr\'ef\'erable
+de le laisser ainsi.
+\margin{Misleading example deleted.}
+\eix^^{accents//aligner des}
+\enddesc
+
+%==========================================================================
+\subsection {Aligner du mat\'eriel verticalement}
+
+\begindesc
+\cts vcenter {\rqbraces{\<mat\'eriel en mode vertical>}}
+\ctsbasic {\\vcenter to \<dimension> \rqbraces{\<mat\'eriel en mode vertical>}}{}
+\ctsbasic {\\vcenter spread \<dimension> \rqbraces{\<mat\'eriel en mode vertical>}}{}
+\explain
+Toutes les formules math\'ematiques ont un
+``^{axe}'' invisible que \TeX\ traite comme une sorte de
+ligne de centrage horizontale pour cette formule.
+Par exemple, l'axe d'une formule constitu\'ee d'une
+fraction est au centre de la barre de fraction.
+La commande |\vcenter| demande \`a \TeX\ de placer le \<mat\'eriel en mode vertical>
+dans une \minref{vbox} et de centrer la vbox
+en respectant l'axe de la formule qu'il est en train de construire.
+
+La premi\`ere forme de la commande
+centre le mat\'eriel comme donn\'e. Les deuxi\`emes et troisi\`emes
+formes \'elargissent ou r\'etr\'ecissent le mat\'eriel verticalement comme dans la
+commande |\vbox| (\xref \vbox).
+
+\example
+$${n \choose k} \buildrel \rm def \over \equiv \>
+\vcenter{\hsize 1.5 in \noindent the number of
+combinations of $n$ things taken $k$ at a time}$$
+|
+\dproduces
+$${n \choose k} \buildrel \rm def \over \equiv \>
+\vcenter{\hsize 1.5 in \noindent the number of
+combinations of $n$ things taken $k$ at a time}$$
+\endexample
+\enddesc
+
+%==========================================================================
+\section {Produire des espaces}
+
+%==========================================================================
+\subsection {Espaces math\'ematiques de largeur fixe}
+
+\begindesc
+\bix^^{espace//dans des formules math\'ematiques}
+\ctspecial ! \ctsxrdef{@shriek}
+\ctspecial , \ctsxrdef{@comma}
+\ctspecial > \ctsxrdef{@greater}
+\ctspecial ; \ctsxrdef{@semi}
+\explain
+Ces commandes produisent des montants vari\'es d'^{espace suppl\'ementaire} dans des formules. Elles
+sont d\'efinies en termes d'\minref{unit\'es math\'ematiques}, donc \TeX\ ajuste
+le montant d'espace en accord avec le \minref{style} courant.
+\ulist
+\li |\!!| produit un espace fin n\'egatif, c'est-\`a-dire, qu'il r\'eduit l'espace
+entre ses sous-formules voisines du montant d'un espace fin.
+\li |\,| produit un espace fin.
+\li |\>| produit un espace moyen.
+\li |\;| produit un espace large.
+\endulist
+\example
+$$00\quad0\!!0\quad0\,0\quad0\>0\quad0\;0\quad
+{\scriptstyle 00\quad0\!!0\quad0\,0\quad0\>0\quad0\;0}$$
+|
+\dproduces
+$$00\quad0\!0\quad0\,0\quad0\>0\quad0\;0\quad
+{\scriptstyle 00\quad0\!0\quad0\,0\quad0\>0\quad0\;0}$$
+\endexample
+\enddesc
+
+\begindesc
+\cts thinmuskip {\param{muglue}}
+\cts medmuskip {\param{muglue}}
+\cts thickmuskip {\param{muglue}}
+\explain
+Ces param\`etres d\'efinissent des espaces fins, moyens et larges en
+mode math\'ematique.
+\example
+$00\quad0\mskip\thinmuskip0\quad0\mskip\medmuskip0
+ \quad0\mskip\thickmuskip0$
+|
+\produces
+$00\quad0\mskip\thinmuskip0\quad0\mskip\medmuskip0
+ \quad0\mskip\thickmuskip0$
+\endexample
+\enddesc
+
+\begindesc
+\cts jot {\param{dimension}}
+\explain
+Ce param\`etre d\'efinit une distance \'egale \`a trois points (\`a moins que
+vous le changiez).
+Le |\jot| est une unit\'e de mesure pratique pour ouvrir des affichages math\'ematiques.
+\enddesc
+
+%==========================================================================
+\subsection {Espaces math\'ematiques de largeur variable}
+
+\begindesc
+\cts mkern {\<mudimen>}
+\explain
+^^{cr\'enages//dans des formules math\'ematiques}
+Cette commande
+produit un \minref{cr\'enage}, c'est-\`a-dire, un espace blanc, de largeur \<mudimen>.
+Le cr\'enage est mesur\'e
+en \minref{unit\'es math\'ematiques}, qui varie en fonction du style.
+Hormis son unit\'e de la mesure, cette commande se comporte comme
+|\kern| (\xref \kern) le fait en mode horizontal.
+
+\example
+$0\mkern13mu 0 \qquad {\scriptscriptstyle 0 \mkern13mu 0}$
+|
+\produces
+$0\mkern13mu 0 \qquad {\scriptscriptstyle 0 \mkern13mu 0}$
+\endexample
+\enddesc
+
+\begindesc
+\cts mskip {\<mudimen$_1$> {\bt plus} \<mudimen$_2$> {\bt minus}
+ \<mudimen$_3$>}
+\explain
+^^{ressort}
+Cette commande produit un \minref{ressort} horizontal
+qui a une largeur naturelle \<mu\-dimen$_1$>, s'\'etire de \<mudimen$_2$>
+et se r\'etr\'ecit de \<mudimen$_3$>.
+Le ressort est mesur\'e en \minref{unit\'es math\'ematiques}, qui varie en fonction
+du style. Hormis son unit\'e de mesure, cette commande se comporte
+comme |\hskip| (\xref \hskip).
+
+\example
+$0\mskip 13mu 0 \quad {\scriptscriptstyle 0 \mskip 13mu 0}$
+|
+\produces
+$0\mskip 13mu 0 \quad {\scriptscriptstyle 0 \mskip 13mu 0}$
+\endexample
+\enddesc
+
+\begindesc
+\cts nonscript {}
+\explain
+Quand \TeX\ est en train de composer en \minref{style} script ou
+scriptscript et rencontre cette commande
+imm\'ediatement devant d'un ressort ou d'un cr\'enage,
+il supprime le ressort ou le cr\'enage.
+|\nonscript| n'a pas d'effet dans les autres styles.
+
+Cette commande fournit une mani\`ere de ``resserrer'' l'espacement dans
+les styles script et scriptscript, qui sont g\'en\'eralement faits dans une
+police plus petite. Elle est peu utile en dehors des d\'efinitions de macro.
+\example
+\def\ab{a\nonscript\; b}
+$\ab^{\ab}$
+|
+\produces
+\def\ab{a\nonscript\; b}
+$\ab^{\ab}$
+\endexample
+\enddesc
+
+\see |\kern| (\xref\kern), |\hskip| (\xref\hskip).
+\eix^^{espace//dans des formules math\'ematiques}
+
+
+%==========================================================================
+\subsection {param\`etres d'espacement pour les affichages}
+
+\begindesc
+\bix^^{affichages//param\`etres d'espacement pour}
+\cts displaywidth {\param{dimension}}
+\explain
+Ce param\`etre sp\'ecifie la largeur maximum que
+\TeX\ alloue pour un affichage math\'ematique. Si \TeX\ ne peut pas mettre l'affichage
+dans un espace de cette largeur, il fait un ``overfull \minref{hbox}''
+et se plaint.
+\TeX\ met la valeur de |\displaywidth| quand il rencontre le `|$$|'
+qui d\'ebute l'affichage. Cette valeur initiale est
+|\hsize| (\xref \hsize) \`a moins qu'elle soit modifi\'ee par des
+changements de la forme du paragraphe.
+Voir les \knuth{pages~188--189}{220--222} pour une explication plus d\'etaill\'ee de ce param\`etre.
+\enddesc
+
+\begindesc
+\cts displayindent {\param{dimension}}
+\explain
+Ce param\`etre sp\'ecifie l'espace par lequel \TeX\ indente un
+affichage math\'e\-matique.
+\TeX\ met la valeur de |\displayindent| quand il rencontre le `|$$|'
+qui d\'ebute l'affichage. Normalement la valeur initiale est z\'ero,
+mais si la forme du paragraphe indique que l'affichage doit \^etre
+d\'ecal\'e d'un montant $s$,
+\TeX\ mettra |\displayindent| \`a $s$.
+Voir les \knuth{pages~188--189}{220--222} pour une explication plus d\'etaill\'ee de ce param\`etre.
+\enddesc
+
+\begindesc
+\cts predisplaysize {\param{dimension}}
+\explain
+\TeX\ met ce param\`etre \`a la largeur de la ligne pr\'ec\'edant
+un affichage math\'ematique.
+\TeX\ utilise |\predisplaysize| pour d\'eterminer si l'affi\-chage
+d\'ebute ou non \`a
+gauche d'o\`u la ligne pr\'ec\'edente se termine, c'est-\`a-dire, s'il
+recouvre visuellement ou non la ligne pr\'ec\'edente.
+S'il la recouvre, il utilise les ressorts |\abovedisplayskip| et
+|\belowdisplayskip| en mettant l'affichage~;
+autrement il utilise les ressorts |\abovedisplay!-shortskip| et
+|\belowdisplay!-shortskip|.
+Voir les \knuth{pages~188--189}{220--222} pour une explication plus d\'etaill\'ee de ce param\`etre.
+\enddesc
+
+\begindesc
+\cts abovedisplayskip {\param{ressort}}
+\explain
+Ce param\`etre sp\'ecifie le montant de ressort vertical que
+\TeX\ ins\`ere avant un affichage quand l'affichage d\'ebute
+\`a gauche d'o\`u la ligne pr\'ec\'edente se termine, c'est-\`a-dire, quand il recouvre
+visuellement la ligne pr\'ec\'edente.
+\PlainTeX\ met |\abovedisplayskip| \`a |12pt plus3pt minus9pt|.
+Voir les \knuth{pages~188--189}{220--222} pour une explication plus d\'etaill\'ee de ce param\`etre.
+\enddesc
+
+\begindesc
+\cts belowdisplayskip {\param{ressort}}
+\explain
+Ce param\`etre sp\'ecifie le montant de ressort vertical que
+\TeX\ ins\`ere apr\`es un affichage quand l'affichage d\'ebute
+\`a gauche d'o\`u la ligne pr\'ec\'edente se termine, c'est-\`a-dire, quand il recouvre
+visuellement la ligne pr\'ec\'edente.
+\PlainTeX\ met |\belowdisplay!-skip| \`a |12pt plus3pt minus9pt|.
+Voir les \knuth{pages~188--189}{220--222} pour une explication plus d\'etaill\'ee de ce param\`etre.
+\enddesc
+
+\begindesc
+\cts abovedisplayshortskip {\param{ressort}}
+\explain
+Ce param\`etre sp\'ecifie le montant de ressort vertical que
+\TeX\ ins\`ere avant un affichage quand l'affichage d\'ebute
+\`a droite d'o\`u la ligne pr\'ec\'edente se termine, c'est-\`a-dire, quand il ne recouvre
+pas visuellement la ligne pr\'ec\'edente.
+\PlainTeX\ met |\abovedisplay!-shortskip| \`a |0pt plus3pt|.
+Voir les \knuth{pages~188--189}{220--222} pour une explication plus d\'etail\-l\'ee de ce param\`etre.
+\enddesc
+
+\begindesc
+\cts belowdisplayshortskip {\param{ressort}}
+\explain
+Ce param\`etre sp\'ecifie le montant de ressort vertical que
+\TeX\ ins\`ere apr\`es un affichage quand l'affichage d\'ebute
+\`a droite d'o\`u la ligne pr\'ec\'edente se termine, c'est-\`a-dire, quand il ne recouvre
+pas visuellement la ligne pr\'ec\'edente.
+\PlainTeX\ met |\belowdisplay!-shortskip| \`a |7pt plus3pt minus4pt|.
+Voir les \knuth{pages~188--189}{220--222} pour une explication plus d\'etaill\'ee de ce param\`etre.
+\eix^^{affichages//param\`etres d'espacement pour}
+\enddesc
+
+
+%==========================================================================
+\subsection {autres param\`etres d'espacement pour les math\'ematiques}
+
+\begindesc
+\cts mathsurround {\param{dimension}}
+\explain
+Ce param\`etre sp\'ecifie le montant d'espace que \TeX\
+ins\`ere avant et apr\`es une formule math\'ematique en mode texte (c'est-\`a-dire, une formule
+entour\'ee de |$| simples). Voir la \knuth{page~162}{190} pour plus de d\'etails sur
+son comportement.
+\PlainTeX\ laisse |\mathsurround| \`a |0pt|.
+\enddesc
+
+\begindesc
+\cts nulldelimiterspace {\param{dimension}}
+\explain
+^^{d\'elimiteurs//nuls, espace pour}
+Ce param\`etre sp\'ecifie la largeur de
+l'espace produit par un \minref{d\'elimiteur} nul.
+\PlainTeX\ met |\nulldelimiterspace| \`a |1.2pt|.
+\enddesc
+
+\begindesc
+\cts scriptspace {\param{dimension}}
+\explain
+Ce param\`etre sp\'ecifie le montant d'espace que \TeX\
+ins\`ere avant et apr\`es un exposant ou un indice.
+La commande |\nonscript| (\xref\nonscript) ^^|\nonscript|
+apr\`es un exposant ou un indice annule cet espace.
+\PlainTeX\ met |\script!-space| \`a |0.5pt|.
+\enddesc
+
+%==========================================================================
+\section {Cat\'egoriser des constructions math\'ematiques}
+
+\begindesc
+\makecolumns 7/2:
+\cts mathord {}
+\cts mathop {}
+\cts mathbin {}
+\cts mathrel {}
+\cts mathopen {}
+\cts mathclose {}
+\cts mathpunct {}
+\explain
+Ces commandes demandent \`a \TeX\ de traiter la construction qui suit comme appartenant
+\`a une ^{classe} particuli\`ere (voir la \knuth{page~154}{179--180} pour la d\'efinition
+des classes). Elles sont list\'ees ici dans l'ordre des num\'eros de classe,
+de $0$ \`a $6$.
+Leur effet primaire est d'ajuster l'espace\-ment autour de la construction
+comme \'etant celui de la classe indiqu\'ee.
+
+\example
+$\mathop{\rm minmax}\limits_{t \in A \cup B}\,t$
+% By treating minmax as a math operator, we can get TeX to
+% put something underneath it.
+|
+\produces
+$\mathop{\rm minmax}\limits_{t \in A \cup B}\,t$
+\endexample
+\enddesc
+
+\begindesc
+\cts mathinner {}
+\explain
+Cette command demande \`a \TeX\ de traiter la construction qui suit
+comme un ``formule interne'', c'est-\`a-dire, une fraction, pour l'espacement.
+Elle ressemble aux commandes de classe donn\'ees ci-dessus.
+\enddesc
+
+%==========================================================================
+\section {Actions sp\'eciales pour des formules math\'ematiques}
+
+\begindesc
+\cts everymath {\param{liste de token}}
+\cts everydisplay {\param{liste de token}}
+\explain
+^^{affichages//actions pour chaque affichage}
+Ces param\`etres sp\'ecifient des listes de \minref{token} que \TeX\ ins\`ere
+au d\'ebut de toute formule math\'ematique d'affichage ou de texte, respectivement.
+Vous pouvez prendre des mesures sp\'eciales au d\'ebut de chaque formule math\'ematique
+en assignant ces actions \`a |\everymath| ou \`a |\everydis!-play|. N'oubliez pas que
+si vous voulez que les deux genres de formules soient affect\'es, vous devez mettre
+les \emph{deux} param\`etres.
+\example
+\everydisplay={\heartsuit\quad}
+\everymath = {\clubsuit}
+$3$ is greater than $2$ for large values of $3$.
+$$4>3$$
+|
+\produces
+\everydisplay={\heartsuit\quad}
+\everymath = {\clubsuit}
+$3$ is greater than $2$ for large values of $3$.
+$$4>3$$
+\endexample
+\enddesc
+
+\enddescriptions
+\eix^^{math\'ematiques}
+\endchapter
+\byebye
+
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/fmodes.tex b/Master/texmf-dist/doc/plain/impatient-fr/fmodes.tex
new file mode 100644
index 00000000000..e380efc9930
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/fmodes.tex
@@ -0,0 +1,2077 @@
+% 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
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/fonts.tex b/Master/texmf-dist/doc/plain/impatient-fr/fonts.tex
new file mode 100644
index 00000000000..640278d454d
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/fonts.tex
@@ -0,0 +1,242 @@
+% 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.
+
+% Fonts for TeX for the Impatient.
+
+% This file is being distributed with the macros because the macro file
+% refers to it. We used a combination of Bitstream and standard TeX
+% fonts for the original printed book, but for the free edition, we
+% stick to Computer Modern.
+% -----------------------------------------------------------------------
+%
+% We used Computer Modern for the main text and math, and Zapf Humanist
+% (i.e., Optima) for heads. (bs00015 is Optima Roman, 16 italic, 17
+% bold, 18 bold italic.)
+%
+% First we define all of the fonts we use for any purpose, in terms of the
+% font files. Later we define fonts functionally, using \let or \def.
+
+% Computer Modern fonts.
+%
+\font\fiverm = cmr5
+\font\eightrm = cmr8
+\font\ninerm = cmr9 % Glue pictures, small caps for ASCII.
+%\font\tenrm = xcmr10 % with our kerning
+\font\tenrm = cmr10 % don't have the xcmr10 source any more
+\font\oldtenrm = cmr10 % straight CM
+\font\twelverm = cmr12
+\font\twentysixrm = cmr10 at 26pt
+%
+\font\eightit = cmti8
+\font\nineit = cmti9
+\font\tenit = cmti10
+%
+\font\eighttt = cmtt8
+\font\eleventt = cmtt10 at 11pt
+\font\twelvett = cmtt10 scaled \magstep2
+%
+\font\tenbt = cmtt10
+%
+\font\elevensf = cmss10 scaled\magstephalf
+\font\fourteensf = cmss10 scaled\magstep2
+%
+\font\eightbf = cmbx8
+\font\tenbf = cmbx10
+\font\elevenbf = cmbx10 scaled \magstephalf
+\font\twelvebf = cmbx12
+\font\thirtysixbf = cmbx10 at 36pt
+%
+\font\tenbi = cmbxti10
+\font\elevenbi= cmbxti10 scaled \magstephalf
+\font\fourteenbi= cmbxti10 scaled \magstep2
+%
+\font\tensc = cmcsc10
+\font\eightsl = cmsl8
+\font\eighti = cmmi8
+\font\eightsy = cmsy8
+
+% % Optima fonts.
+% %
+% \font\eightopt = bs0015 at 8pt
+% \font\nineopt = bs0015 at 9pt
+% \font\twelveopt = bs0015 at 12pt
+% \font\twentysixopt = bs0015 at 26pt
+% \font\nineoptit = bs0016 at 9pt
+% \font\tenoptit = bs0016 at 10pt
+% \font\tenoptbf = bs0017 at 10pt
+% \font\thirtysixoptbf = bs0017 at 36pt
+% \font\tenbt = bs00175 at 10pt
+% \font\tenoptbi = bs0018 at 10pt
+% \font\elevenoptbi = bs0018 at 11pt
+% \font\fourteenoptbi = bs0018 at 14pt
+
+% Palatino fonts.
+%
+\font\tenpal = pplr
+%\font\tenpal = bs0023
+%\font\tenpalit = bs0024
+%\font\tenpalbf = bs0025
+%\font\tenpalbi = bs0026
+
+% Logo and picture fonts.
+%
+\font\eightlogo = logo8
+\font\logosl = logosl10
+\font\handfont = pzdr
+
+% The following changes are to avoid driver overflow
+\ifmsdos
+ \font\cnum = cnum % 36-pt bold Optima, numbers only (just for MS-DOS)
+ \let\chapternumeralfont = \cnum
+ %\let\thirtysixoptbf = \twentysixopt
+ %\font\sevensy = cmsy8
+ %\font\seveni = cmmi8
+\fi
+
+\def\undefinedfont{\errmessage{Undefined font}}
+
+% This should only be called when \rm et al. are going to be defined
+% directly.
+%
+\def\clearfonts{\let\rm = \undefinedfont \let\bf = \undefinedfont
+ \let\it = \undefinedfont \let\bi = \undefinedfont
+ \let\tt = \undefinedfont \let\bt = \undefinedfont
+ \let\sc = \undefinedfont
+ \let\ss = \undefinedfont
+}
+
+% We only need to assign to \fam if the font is going to be used in math
+% mode, which isn't the case with any of these. \rm, \it, \sl, \bf, and
+% \tt are defined in plain.
+%
+\def\bi{\tenbi}
+
+\def\mapquotes{\catcode`` = \active \catcode`' = \active}
+{\mapquotes
+ \gdef\bt{% The font change also draws \ ` ' from a different font.
+ \tenbt
+ \def\\{{\tentt \char92}}%
+ \def`{{\tentt \char96}}\def'{{\tentt \char39}}%
+ }
+}
+
+\def\bti{\tenbi}
+\def\sc{\tensc}
+
+% Text fonts.
+%
+\def\textfonts{%
+ \def\rm{\fam0\tenrm}%
+ \textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm
+ \textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei
+ \textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
+ \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+ \def\it{\fam\itfam\tenit}\textfont\itfam=\tenit
+ \def\sl{\fam\slfam\tensl}\textfont\slfam=\tensl
+ \def\bf{\fam\bffam\tenbf}\textfont\bffam=\tenbf
+ \scriptfont\bffam=\sevenbf \scriptscriptfont\bffam=\fivebf
+ \def\tt{\fam\ttfam\tentt}\textfont\ttfam=\tentt
+ \let\sc = \tensc
+ \setbox\strutbox=\hbox{\vrule height8.5pt depth3.5pt width\z@}%
+ \normalbaselineskip=12pt
+ \normalbaselines \rm
+}
+
+
+% Footnote fonts. We generally use eight point.
+%
+\def\footnotefonts{%
+ \def\rm{\fam0\eightrm}%
+ \textfont0=\eightrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm
+ \textfont1=\eighti \scriptfont1=\seveni \scriptscriptfont1=\fivei
+ \textfont2=\eightsy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
+ \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+ \def\it{\fam\itfam\eightit}\textfont\itfam=\eightit
+ \def\sl{\fam\slfam\eightsl}\textfont\slfam=\eightsl
+ \def\bf{\fam\bffam\eightbf}\textfont\bffam=\eightbf
+ \scriptfont\bffam=\sevenbf \scriptscriptfont\bffam=\fivebf
+ \def\tt{\fam\ttfam\eighttt}\textfont\ttfam=\eighttt
+ \let\sc = \eightsc
+ \setbox\strutbox=\hbox{\vrule height7pt depth2pt width\z@}%
+ \normalbaselineskip=9pt
+ \normalbaselines \rm
+}
+
+% Fonts for the example titles. They are defined in the first example,
+% also.
+%
+
+\def\exampletitlefonts{\clearfonts
+ \let\bf = \elevenbf
+ \let\bi = \elevenbi
+ \baselineskip = 13pt \bf
+}
+
+% Fonts for the subsection titles.
+%
+\def\subsectionfonts{\clearfonts \let\sf = \elevensf
+ \baselineskip = 12pt \sf
+}
+
+
+% Fonts for the section titles.
+%
+\def\sectionfonts{\clearfonts \let\sf = \fourteensf
+ \baselineskip = 16pt \sf
+}
+
+% Fonts for the chapter titles.
+%
+\let\chapternumeralfont = \thirtysixbf
+
+\def\chapterfonts{\clearfonts \let\bf = \twentysixrm
+ \baselineskip = 32pt \bf
+}
+
+% Fonts for the table of contents.
+%
+\def\shorttocfonts{\clearfonts \let\rm = \twelverm
+ \baselineskip = 20pt \rm
+}
+
+\def\tocfonts{\clearfonts \let\rm = \ninerm
+ \let\it = \tenit \let\bf = \tenbf
+ \baselineskip = 12pt \rm
+}
+
+% Fonts for the index.
+%
+
+\def\indexfonts{\clearfonts
+ \let\rm = \eightrm
+ \let\it = \eightit
+ \let\tt = \eighttt
+ \let\sc = \tensc
+ \let\sl = \eightsl
+ \textfont2 = \eightsy % For \AMSTeX.
+ \let\mflogo = \eightlogo % For \Metafont.
+ \normalbaselineskip = 10pt \normallineskip = 1.5pt \normalbaselines
+ \setbox\strutbox=\hbox{\vrule height 7.5pt depth2.5pt width0pt}%
+ \rm
+}
+
+% Fonts for the inside back cover.
+%
+\def\conceptpagefonts{\clearfonts
+ \let\rm = \eightrm
+ \let\sc = \eightrm
+ \let\sl = \nineit
+ \baselineskip = 12pt
+ \rm
+}
+
+% We don't want any automatic hyphenation within the code font
+
+\hyphenchar\tentt = -1
+\hyphenchar\eighttt = -1
+
+
+
+\textfonts
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/fpages.tex b/Master/texmf-dist/doc/plain/impatient-fr/fpages.tex
new file mode 100644
index 00000000000..4748c032ae0
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/fpages.tex
@@ -0,0 +1,1153 @@
+% 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 composer des pages}
+
+\chapterdef{pages}
+
+Cette section couvre des commandes qui concernent les
+pages, leurs composants et la routine de sortie.
+Pour une explication des conventions utilis\'ees dans cette section,
+voir \headcit{Descriptions des commandes}{cmddesc}.
+
+\begindescriptions
+
+%==========================================================================
+\section {Espaces inter-ligne et inter-paragraphe}
+
+\begindesc
+\cts baselineskip {\param{ressort}}
+\cts lineskiplimit {\param{dimension}}
+\cts lineskip {\param{ressort}}
+\explain
+^^{espacement de ligne}
+\bix^^{ressort inter-ligne}
+\bix^^|\baselineskip|
+\bix^^|\lineskip|
+\bix^^|\lineskiplimit|
+Ces trois param\`etres d\'eterminent ensemble combien d'espace \TeX\ laisse entre
+des \minref{bo\^\i te}s cons\'ecutives d'une \minref{liste verticale} ordinaire,
+c'est-\`a-dire, les lignes d'un paragraphe.
+Cet espace est appel\'e ``\minref{ressort inter-ligne}''.
+Il est aussi ins\'er\'e entre les bo\^\i tes composant une vbox construite en
+mode vertical interne.
+^^{vbox//ressort inter-ligne pour}
+
+Dans le cas courant, quand les bo\^\i tes ne sont pas anormalement hautes ou profondes, \TeX\
+rend la distance de la ligne de base d'une bo\^\i te \`a la ligne de base de la
+suivante \'egale \`a |\baselineskip|. Il fait cela en ins\'erant un ressort inter-ligne
+\'egal \`a |\baselineskip| moins la profondeur de la bo\^\i te sup\'erieure (ainsi donn\'e
+par ^|\prevdepth|) et la hauteur de la bo\^\i te du dessous. Mais si ce ressort
+inter-ligne doit \^etre inf\'erieur \`a |\lineskiplimit|, indiquant que les deux
+bo\^\i tes sont trop rapproch\'ees, \TeX\ ins\`ere le ressort |\lineskip| \`a la
+place.\footnote
+{\TeX\ d\'ebute normalement le d\'ebut d'une liste verticale en mettant
+|\prevdepth| \`a $-1000$\pt\ et en testant
+|\prevdepth| avant \emph{toutes} les bo\^\i tes. Si |\prevdepth|$\>\le-1000$\pt\
+il ne doit ins\'erer aucun ressort inter-ligne.} Voir les \knuth{pages~79--80}{93} pour une
+description pr\'ecise.
+
+Notez que |\baselineskip| et |\lineskip| mesurent des \emph{choses diff\'e\-rentes}~:
+La distance entre des lignes de base d'un cot\'e et la distance
+entre le bas d'une bo\^\i te et le haut de la bo\^\i te suivante d'un autre
+cot\'e. Voir la \knuth{page~78}{91--92} pour d'autres d\'etails. Le premier exemple ci-dessous
+montre les effets de |\lineskiplimit|.
+
+Vous pouvez obtenir l'effet d'un ^{double espacement} en doublant la valeur
+de |\baselineskip| comme illustr\'e dans le second exemple ci-des\-sous.
+Une modification de |\baselineskip| \`a n'importe quel endroit pr\'ec\'e\-dent la fin
+d'un paragraphe affecte le paragraphe entier.
+
+\example
+\baselineskip = 11pt \lineskiplimit = 1pt
+\lineskip = 2pt plus .5pt
+Sometimes you'll need to typeset a paragraph that has
+tall material, such as a mathematical formula, embedded
+within it. An example of such a formula is $n \choose k$.
+Note the extra space above and below this line as
+compared with the other lines.
+(If the formula didn't project below the line,
+we'd only get extra space above the line.)
+|
+\produces
+\baselineskip = 11pt \lineskiplimit = 1pt
+\lineskip = 2pt plus .5pt
+Sometimes you'll need to typeset a paragraph that has
+tall material, such as a mathematical formula, embedded
+within it. An example of such a formula is $n \choose k$.
+Note the extra space above and below this line as
+compared with the other lines.
+(If the formula didn't project below the line,
+we'd only get extra space above the line.)
+\endexample
+
+\example
+\baselineskip = 2\baselineskip % Start double spacing.
+|
+\endexample
+
+\eix^^{ressort inter-ligne}
+\eix^^|\baselineskip|
+\eix^^|\lineskip|
+\eix^^|\lineskiplimit|
+\enddesc
+
+\begindesc
+\cts prevdepth {\param{dimension}}
+\explain
+Quand \TeX\ ajoute une bo\^\i te \`a une liste verticale, il r\`egle |\prevdepth| \`a la
+hauteur de cette bo\^\i te. \TeX\ met |\prevdepth| \`a $-10000$\pt\ au d\'ebut d'une
+liste verticale, indiquant que le ressort inter-ligne normal doit \^etre supprim\'e.
+\enddesc
+
+\begindesc
+\cts normalbaselineskip {\param{ressort}}
+\cts normallineskiplimit {\param{dimension}}
+\cts normallineskip {\param{ressort}}
+\cts normalbaselines {}
+\explain
+Ces trois param\`etres contiennent des valeurs pour |\base!-line!-skip|,
+|\li!-neskip| et |\line!-skip!-limit| respectivement.
+^^|\baselineskip| ^^|\lineskip| ^^|\lineskiplimit|
+La commande |\normal!-base!-lines| met |\base!-line!-skip|,
+|\line!-skip| et |\line!-skip!-limit| aux va\-leurs contenues dans les
+trois param\`etres.
+\enddesc
+
+\begindesc
+\cts offinterlineskip {}
+\explain
+Cette commande demande \`a \TeX\ d'arr\^eter d'ins\'erer des ressorts inter-ligne \`a partir
+de maintenant. \`A moins que vous vouliez qu'il soit effectif pour le reste du document
+(ce que vous ne voulez probablement pas), vous devez l'englober dans un groupe
+avec le texte que vous voulez qu'il affecte.
+Son principal usage est de vous laisser faire l'espacement inter-ligne vous-m\^eme,
+c'est-\`a-dire, en utilisant ^{struts},
+sans interf\'erence du ressort inter-ligne normal de \TeX.
+|\offinterlineskip| est souvent utile quand
+vous construisez un \minref{alignement} horizontal.
+^^{alignements//utiliser \b\tt\\offinterlineskip\e\ dans des}
+\example
+\def\entry#1:#2 {\strut\quad#1\quad&\quad#2\quad\cr}
+\offinterlineskip \tabskip = 0pt \halign{%
+\vrule\quad\hfil#\hfil\quad\vrule&
+ \quad\hfil#\hfil\quad\vrule\cr
+\noalign{\hrule}
+\vphantom{\vrule height 2pt}&\cr \noalign{\hrule}
+\entry \it Opera:\it Composer
+\vphantom{\vrule height 2pt}&\cr \noalign{\hrule}
+\vphantom{\vrule height 2pt}&\cr
+\entry Fidelio:Beethoven
+\entry Peter Grimes:Britten
+\entry Don Giovanni:Mozart
+\vphantom{\vrule height 2pt}&\cr \noalign{\hrule}}
+|
+\produces
+\medskip
+\def\entry#1:#2 {\strut\quad#1\quad&\quad#2\quad\cr}
+\offinterlineskip \tabskip = 0pt \halign{%
+\vrule\quad\hfil#\hfil\quad\vrule&
+ \quad\hfil#\hfil\quad\vrule\cr
+\noalign{\hrule}
+\vphantom{\vrule height 2pt}&\cr \noalign{\hrule}
+\entry \it Opera:\it Composer
+\vphantom{\vrule height 2pt}&\cr \noalign{\hrule}
+\vphantom{\vrule height 2pt}&\cr
+\entry Fidelio:Beethoven
+\entry Peter Grimes:Britten
+\entry Don Giovanni:Mozart
+\vphantom{\vrule height 2pt}&\cr \noalign{\hrule}}
+\endexample
+\enddesc
+
+\begindesc
+\cts nointerlineskip {}
+\explain
+Cette commande demande \`a \TeX\ de ne pas ins\'erer de ressort inter-ligne devant la
+prochaine ligne.
+Elle n'a aucun effet sur les lignes suivantes.
+\enddesc
+
+\begindesc
+\cts openup {\<dimension>}
+\explain
+Cette commande augmente ^|\baselineskip| de \<dimension>.
+Une commande |\openup| avant la fin d'un paragraphe affecte
+tout le paragraphe, donc vous ne devez pas utiliser |\openup| pour
+changer |\baseline!-skip| dans un paragraphe. |\openup| est
+plus utile pour composer des tables et des affichages math\'ematiques---un
+petit espace suppl\'ementaire entre des rang\'ees les rend souvent plus lisibles.
+^^{alignements//espace entre rang\'ees d'}
+\example
+Alice picked up the White King very gently, and lifted him
+across more slowly than she had lifted the Queen; but before
+she put him on the table, she thought she might well dust
+him a little, he was so covered with ashes.
+\openup .5\baselineskip % 1.5 linespacing.
+|
+\produces
+Alice picked up the White King very gently, and lifted him
+across more slowly than she had lifted the Queen; but before
+she put him on the table, she thought she might well dust
+him a little, he was so covered with ashes.
+\openup .5\baselineskip %1.5 linespacing
+\endexample\enddesc
+
+%==========================================================================
+\section {Coupures de page}
+
+%==========================================================================
+\subsection {Encourager ou d\'ecourager des coupures de page}
+
+\begindesc
+\bix^^{coupures de page}
+\bix^^{coupures de page//encourager ou d\'ecourager}
+\ctspecial break {} \xrdef{vbreak}
+\explain
+%
+\margin{Four commands identical to ones for line breaks (\xref{hbreak})
+have been added to correct an omission. The descriptions are exactly parallel.}
+%
+Cette commande force une coupure de page.
+\`a moins que vous ne fassiez quelque chose pour compl\'eter la page,
+Vous obtiendrez s\^urement un ``underfull vbox''.
+|\break| peut aussi \^etre utilis\'e en mode horizontal.
+\enddesc
+
+\begindesc
+\ctspecial nobreak {} \xrdef{vnobreak}
+\explain
+Cette commande emp\^eche une coupure de page l\`a o\`u elle
+aurait du arriver autrement.
+|\nobreak| peut aussi \^etre utilis\'e en mode horizontal.
+\enddesc
+
+\begindesc
+\ctspecial allowbreak {} \xrdef{vallowbreak}
+\explain
+Cette commande demande \`a \TeX\ d'autoriser
+une coupure de page l\`a o\`u elle ne pourrait normalement pas arriver.
+|\allowbreak| peut aussi \^etre utilis\'e en mode horizontal.
+\enddesc
+
+\begindesc
+\ctspecial penalty {\<nombre>} \xrdef{vpenalty}
+\explain
+Cette commande produit un \'el\'ement de \minref{p\'enalit\'e}.
+L'\'el\'ement de p\'enalit\'e rend \TeX\ plus ou moins d\'esireux de couper une page
+\`a l'endroit o\`u cet \'el\'ement arrive.
+Une p\'enalit\'e n\'egative, c'est-\`a-dire, un bonus, encourage une coupure de page~;
+Une p\'enalit\'e positive d\'ecourage une coupure de page.
+Une p\'enalit\'e de $10000$ ou plus emp\^eche toute coupure,
+tandis qu'une p\'enalit\'e de $-10000$ ou moins force une coupure.
+|\penalty| peut aussi \^etre utilis\'e en mode horizontal.
+\example
+\def\break{\penalty-10000 } % as in plain TeX
+\def\nobreak{\penalty10000 } % as in plain TeX
+\def\allowbreak{\penalty0 } % as in plain TeX
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts goodbreak {}
+\explain
+Cette commande termine un paragraphe et indique aussi \`a \TeX\ que
+c'est un bon endroit pour couper la page.
+\enddesc
+
+\begindesc
+\cts smallbreak {}
+\cts medbreak {}
+\cts bigbreak {}
+\explain
+Ces commandes indiquent des endroits de plus en plus d\'esirables pour \TeX\ de
+couper une page. Elles demande aussi \`a \TeX\
+d'ins\'erer respectivement un ^|\smallskip|, ^|\medskip| ou
+^|\bigskip| (\xref \smallskip) si la coupure de page ne se produit pas l\`a.
+\TeX\ supprime ce saut s'il se produit juste apr\`es un saut \'egal ou plus grand.
+\enddesc
+
+\begindesc
+\easy\cts eject {}
+\cts supereject {}
+\explain
+Ces commandes forcent une coupure de page \`a la position courante
+et terminent le paragraphe courant.
+Si vous ne les pr\'ec\'edez pas de |\vfil| (\xref \vfil),
+^^|\vfil//n\'ecessaire avec {\tt\\eject}|
+\TeX\ essayera d'\'etirer le contenu de la page
+(et se plaindra probablement d'un ``underfull vbox'').
+La commande |\supereject|, en plus,
+enclenche la routine de sortie de \plainTeX\ pour
+faire sortir toutes insertions en surplus,
+^^{insertions//forc\'es par \b\tt\\supereject\e}
+telles que de longues notes de pied de page,
+ainsi elle sont produites avant que toute autre entr\'ee soit ex\'ecut\'ee.
+Donc |\supereject| est un bonne commande \`a utiliser \`a la fin de chaque
+chapitre ou autre division majeure de votre document.
+\enddesc
+
+\begindesc
+\cts filbreak {}
+\explain
+Cette commande procure une sorte de coupure de page conditionnelle.
+Elle demande \`a \TeX\ de
+couper la page---sauf si le texte d'une autre |\filbreak| se trouve
+aussi sur la m\^eme page.
+En englobant un paragraphe dans une paire de |\filbreak|,
+vous pouvez vous assurer que \TeX\ gardera un paragraphe sur une seule page s'il le peut.
+Vous ne devez pas utiliser |\filbreak| dans un paragraphe, car il
+force \TeX\ en mode vertical et ainsi termine la paragraphe.
+Voir \xrefpg{filbreak} pour plus de conseil sur ce sujet.
+\enddesc
+
+\begindesc
+\cts raggedbottom {}
+\cts normalbottom {}
+\explain
+Normalement \TeX\ essaye fortement de s'assurer que toutes les pages
+aient la m\^eme profondeur, c'est-\`a-dire, que leurs marges du bas soient \'egales.
+La commande |\raggedbottom| demande \`a \TeX\ d'autoriser
+quelques variations parmi les marges du bas sur diff\'erentes pages.
+Il est souvent appropri\'e d'utiliser |\raggedbottom| quand vous avez du mat\'eriel
+qui contient de larges blocs de mat\'eriel qui ne doivent pas \^etre s\'epar\'es sur deux pages.
+La commande |\normalbottom| efface l'effet de |\raggedbottom|.
+
+\eix^^{coupures de page//encourager ou d\'ecourager}
+\enddesc
+
+%==========================================================================
+\subsection {Param\`etres de coupure de page}
+
+\bix^^{coupures de page//param\`etres de}
+\begindesc
+\cts interlinepenalty {\param{nombre}}
+\explain
+Ce param\`etre sp\'ecifie la \minref{p\'enalit\'e} pour une
+coupure de page entre les lignes d'un paragraphe.
+En le mettant \`a $10000$ vous pouvez forcer toutes les coupures de page \`a se faire
+entre les paragraphes, en esp\'erant que les pages aient assez d'\'etirement pour
+que \TeX\ puisse les composer d\'ecemment.
+\PlainTeX\ laisse |\inter!-linepenalty| \`a~$0$.
+\enddesc
+
+\begindesc
+\cts clubpenalty {\param{nombre}}
+\explain
+^^{ligne orpheline}
+Ce param\`etre sp\'ecifie la \minref{p\'enalit\'e} pour une
+coupure de page juste apr\`es la premi\`ere ligne d'un paragraphe.
+Une ligne seule en bas d'une page est appel\'ee une ``ligne orpheline''.
+\PlainTeX\ met |\clubpenalty| \`a $150$.
+\enddesc
+
+\begindesc
+\cts widowpenalty {\param{nombre}}
+\explain
+^^{ligne veuve}
+Ce param\`etre sp\'ecifie la \minref{p\'enalit\'e} pour une
+coupure de page juste avant la derni\`ere ligne d'un paragraphe.
+Une ligne seule en haut d'une page est appel\'ee une ``ligne veuve''.
+\PlainTeX\ met |\widowpenalty| \`a $150$.
+\enddesc
+
+\begindesc
+\cts displaywidowpenalty {\param{nombre}}
+\explain
+^^{ligne veuve}^^{math\'ematiques affich\'ees}
+Ce param\`etre sp\'ecifie la \minref{p\'enalit\'e} pour une
+coupure de page juste avant la derni\`ere ligne d'un paragraphe partiel
+qui pr\'ec\`ede imm\'ediatement un affichage math\'ematique.
+\PlainTeX\ met |\displaywidowpenalty| \`a $50$.
+
+\enddesc
+
+\begindesc
+\cts predisplaypenalty {\param{nombre}}
+\explain
+^^{math\'ematiques affich\'ees}
+Ce param\`etre sp\'ecifie la \minref{p\'enalit\'e} pour une
+coupure de page juste avant un affichage math\'ematique.
+\PlainTeX\ met |\predisplaypenalty| \`a $10000$.
+\enddesc
+
+\begindesc
+\cts postdisplaypenalty {\param{nombre}}
+\explain
+^^{math\'ematiques affich\'ees}
+Ce param\`etre sp\'ecifie la \minref{p\'enalit\'e} pour une
+coupure de page juste apr\`es un affichage math\'ematique.
+\PlainTeX\ laisse |\postdisplaypenalty| \`a $0$.
+\enddesc
+
+\begindesc
+\cts brokenpenalty {\param{nombre}}
+\explain
+Ce param\`etre sp\'ecifie la \minref{p\'enalit\'e} pour une
+coupure de page juste apr\`es une ligne se terminant par
+une \'el\'ement optionnel (habituellement une c\'esure).
+^^{c\'esure}
+|\brokenpenalty| s'applique aux coupure de page, tandis que
+^|\hyphenpenalty| \ctsref{\hyphenpenalty} s'applique aux coupure de ligne.
+\PlainTeX\ met |\brokenpenalty| \`a $100$.
+\enddesc
+
+\begindesc
+\cts insertpenalties {\param{nombre}}
+\explain
+\bix^^{insertions//p\'enalit\'es pour}
+\bix^^{mat\'eriel flottant}
+Ce param\`etre contient la somme de certaines p\'enalit\'es \minrefs{p\'enalit\'e}
+que \TeX\ accumule quand il place des insertions sur la page courante.
+Ces p\'enalit\'es encourent une plainte quand \TeX\ ex\'ecute une commande
+|\insert|
+et d\'ecouvre qu'une insertion pr\'ec\'edente du m\^eme type sur cette page a
+\'et\'e s\'epar\'ee, laissant une partie pour les page suivantes.
+Voir les \knuth{pages~123--125}{143--146} pour les d\'etails de ce
+calcul.
+
+\margin{Material moved from a footnote to the main text.}
+|\insertpenalties| a une signification enti\`erement diff\'erente pendant une
+^^{routine de sortie//signification de \b\tt\\insertpenalties\e\ dans la}
+routine de sortie---c'est le nombre d'insertions qui ont \'et\'e vues
+mais qui ne tiennent pas sur la page courante (voir la \knuth{page~125}{146}).
+\enddesc
+
+\begindesc
+\cts floatingpenalty {\param{nombre}}
+\explain
+Ce param\`etre sp\'ecifie la \minref{p\'enalit\'e} que
+\TeX\ ajoute \`a |\insertpenalties|
+^^|\insertpenalties|
+quand le constructeur de page ajoute une insertion \`a la page courante
+et d\'ecouvre qu'une insertion pr\'ec\'edente du m\^eme type sur cette page a
+\'et\'e coup\'ee, en laissant une partie d'elle pour des pages suivantes.
+\PlainTeX\ laisse |\floatingpenalty| \`a~$0$.
+\eix^^{insertions//p\'enalit\'es pour}
+\eix^^{mat\'eriel flottant}
+
+\enddesc
+
+\begindesc
+\cts pagegoal {\param{dimension}}
+\explain
+Ce param\`etre sp\'ecifie la hauteur d\'esir\'ee pour la page courante.
+\TeX\ met
+|\pagegoal| \`a la valeur courante de |\vsize|
+quand il met en premier une bo\^\i te ou une insertion sur la page courante.
+Vous pouvez raccourcir une page tant que \TeX\ travaille sur elle en
+changeant la valeur de |\pagegoal|---m\^eme si la nouvelle valeur est
+inf\'erieure \`a la hauteur du mat\'eriel d\'ej\`a sur cette page.
+\TeX\ mettra juste le mat\'eriel en plus sur la page suivante.
+Mais souvenez-vous---|\pagegoal| est remis \`a |\vsize| quand \TeX\
+commence la page suivante.
+\enddesc
+
+\begindesc
+\cts pagetotal {\param{dimension}}
+\explain
+Ce param\`etre sp\'ecifie la hauteur naturelle accumul\'ee sur la page courante.
+\TeX\ met \`a jour |\pagetotal| quand il ajoute des \'el\'ements \`a la
+\minref{liste verticale} principale.
+
+
+\enddesc
+
+\begindesc
+\cts pagedepth {\param{dimension}}
+\explain
+Ce param\`etre sp\'ecifie la profondeur de la page courante.
+\TeX\ met \`a jour |\pagedepth| quand il ajoute des
+\'el\'ements \`a la \minref{liste verticale} principale.
+\enddesc
+
+\begindesc
+\cts pageshrink {\param{dimension}}
+\explain
+Ce param\`etre sp\'ecifie le montant de \minref{r\'etr\'ecissement}
+dans les \minref{ressort} accumul\'es sur la page courante.
+\TeX\ met \`a jour |\pageshrink| quand il ajoute des \'el\'ements
+\`a la \minref{liste verticale} principale.
+\enddesc
+
+\begindesc
+\cts pagestretch {\param{dimension}}
+\cts pagefilstretch {\param{dimension}}
+\cts pagefillstretch {\param{dimension}}
+\cts pagefilllstretch {\param{dimension}}
+\explain
+Ces quatre param\`etres sp\'ecifient ensemble le montant d'\minref{\'etirement}
+dans les \minref{ressort}s de la page courante. Le montant d'\'etirement a
+la forme
+{\def\f#1{\hbox{\tt fi#1}}%
+$n_0 + n_1\f{l} + n_2\f{ll} + n_3\f{lll}$}, avec les quatre param\`etres
+donnant les valeurs des quatre $n_i$.
+\TeX\ met \`a jour ces param\`etres quand il ajoute des
+\'el\'ements \`a la \minref{liste verticale} principale.
+
+\eix^^{coupures de page//param\`etres de}
+\eix^^{coupures de page}
+\enddesc
+
+%==========================================================================
+\section{Gabarit de page}
+
+\subsection {Param\`etres de description de page}
+
+\begindesc
+\bix^^{dimensions de page}
+\margin{This command was also described in the `Paragraphs' section.
+The combined description now appears there.}
+\aux\cts hsize {\param{dimension}}
+\explain
+Ce param\`etre sp\'ecifie la longueur de la ligne courante.
+Voir \xrefpg{\hsize} pour une plus compl\`ete explication.
+\enddesc
+
+\begindesc
+\cts vsize {\param{dimension}}
+\explain
+Ce param\`etre sp\'ecifie l'extension verticale courante d'une page.
+\TeX\ ne l'examine qu'en commen\c cant une page. Donc si vous changez
+|\vsize| dans le
+milieu d'une page, votre changement n'affectera rien avant la page suivante.
+Si vous voulez changer l'extension verticale d'une page quand
+vous en \^etes au milieu, vous pouvez assigner la nouvelle hauteur
+\`a ^|\pagegoal| (\xref \pagegoal) \`a la place. (Si vous
+voulez que le changement affecte aussi les pages suivantes, vous devez
+changer \emph{ensemble} |\vsize| et |\pagegoal|.)
+\PlainTeX\ met |\vsize| \`a |8.9in|.
+\eix^^{dimensions de page}
+\enddesc
+
+\begindesc
+\cts hoffset {\param{dimension}}
+\cts voffset {\param{dimension}}
+\margin{These commands were moved up from later in the subsection.}
+^^{origine de la page}
+\idxsee{origine}{origine de la page}
+\explain
+\TeX\ prend normalement l'``origine'' d'une page, qui est le point o\`u
+il d\'ebute l'impression, comme \'etant \`a un pouce sous le haut de la page et \`a un
+pouce \`a droite du bord gauche de la page.\footnote{
+\TeX\ lui-m\^eme est indiff\'erent d'o\`u est l'origine de la page,
+mais cette information doit \^etre inscrite pour les drivers du syst\`eme
+^^{drivers de p\'eriph\'erique//origine de la page connu des}
+qui convertissent les \dvifile\ en forme imprimable, ainsi ces diff\'erents syst\`emes
+donneront les m\^eme r\'esultats.}
+Les valeurs de |\hoffset| et
+|\voffset| donnent l'offset horizontal et vertical de l'origine actuelle
+\`a partir de ce point. Ainsi si |\hoffset| et |\voffset| sont tous les deux
+\`a z\'ero, \TeX\ utilise son origine normale.
+\example
+\hoffset = -.3in
+ % Start printing .7 inches from left edge of paper.
+\voffset = 1in
+ % Start printing 2 inches from top edge of paper.
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts topskip {\param{ressort}}
+\explain
+\TeX\ ins\`ere un ressort en haut de chaque
+page pour s'assurer que la ligne de base de la premi\`ere bo\^\i te de la page
+soit toujours \`a la m\^eme distance $d$ du haut de la page.
+|\topskip| d\'etermine le montant de ce ressort,
+appel\'e le ``ressort |\topskip|'', en sp\'ecifiant
+ce que $d$ doit \^etre (pr\'evoyez que la premi\`ere bo\^\i te
+de la page ne soit pas trop haute).
+$d$ est donn\'e par la taille naturelle du ressort |\topskip|.
+Si la hauteur de la premi\`ere bo\^\i te sur la page d\'epasse $d$,
+et que le ressort devrait \^etre n\'egatif, \TeX\ n'ins\`ere simplement pas
+de ressort |\topskip| du tout sur cette page.
+
+Pour mieux comprendre l'effet de ces r\`egles, supposez que |\topskip|
+n'a ni \'etirement ni r\'etr\'ecissement et que le premier \'el\'ement sur la page
+soit vraiment une bo\^\i te. Alors si la hauteur de cette bo\^\i te n'est pas plus
+grande que |\topskip|, sa ligne de base sera \`a |\topskip| du haut de la page
+ind\'ependamment de sa hauteur. D'un autre cot\'e,
+si la hauteur de la bo\^\i te est $e$, plus grande que |\topskip|, sa ligne de base
+sera \`a |\topskip|\tplus$e$ du haut de la page.
+Voir les \knuth{pages~113--114}{132} pour les autres d\'etails sur le
+fonctionnement de |\topskip|.
+\PlainTeX\ met |\topskip| \`a |10pt|.
+\enddesc
+
+
+\begindesc
+\cts parskip {\param{ressort}}
+\explain
+Ce param\`etre sp\'ecifie le ``^{saut de paragraphe}'', c'est-\`a-dire, le
+ressort vertical que \TeX\ ins\`ere au d\'ebut d'un paragraphe.
+^^{paragraphes//ressort entre}
+Voir |\par| (\xref{\@par}) pour plus d'information sur ce qui se passe
+quand \TeX\ d\'ebute un paragraphe.
+\PlainTeX\ met |\parskip| \`a |0pt plus 0.1pt|.
+\enddesc
+
+\begindesc
+\cts maxdepth {\param{dimension}}
+\explain
+Ce param\`etre sp\'ecifie la profondeur maximum de la \minref{bo\^\i te} du bas
+d'une page. Il est reli\'e \`a |\boxmaxdepth| (\xref \boxmaxdepth). Si la
+profondeur de la bo\^\i te du bas d'une page d\'epasse |\maxdepth|, \TeX\
+descend le point de r\'ef\'erence de la bo\^\i te pour qu'il soit \`a
+|\maxdepth| du bas de cette bo\^\i te.
+Sans cet ajustement, la bo\^\i te du bas d'une
+page pourrait bien s'\'etendre dans la marge du bas ou m\^eme recouvrir
+la page enti\`erement. \PlainTeX\ met |\maxdepth| \`a |4pt|.
+\enddesc
+
+%==========================================================================
+\subsection{Num\'eros de page}
+
+\begindesc
+\bix^^{num\'erotation de page}
+\cts pageno {\param{nombre}}
+\explain
+Ce param\`etre contient le num\'ero de page courant sous la forme d'un entier.
+Le num\'ero de page est normalement n\'egatif pour les pages d'intro\-duction
+qui sont num\'erot\'ees avec des petits chiffres romains au lieu des nombres
+arabes. Si vous changez le num\'ero de page dans une page, le num\'ero modifi\'e
+sera utilis\'e dans tous les ent\^etes ou pieds de page qui apparaissent sur
+cette page. L'impression actuelle des num\'eros de page est prise en main par
+la \minref{routine de sortie} de \TeX, que vous pouvez modifier.
+
+\PlainTeX\ garde le num\'ero de page dans le \minref{registre} ^|\count0|.
+(|\pageno| est, en fait, un synonyme de |\count0|.)
+\`a chaque fois qu'il envoie une page vers le \dvifile,
+^^|\shipout//registres {\tt\\count} affich\'es avec|
+\TeX\ affiche la valeur courante de |\count0| sur votre
+terminal pour que vous puissiez dire sur quelle page il est en train de
+travailler. Il est possible d'utiliser des registres |\count1|--|\count9|
+pour embo\^\i ter des niveaux de num\'eros de page (vous devez programmer cela vous-m\^eme).
+Si un de ces registres est diff\'erent de z\'ero, \TeX\ l'affiche aussi sur votre
+terminal.\footnote{
+Plus pr\'ecis\'ement, il affiche tous les registres en s\'equence de
+|\count0| \`a |\count9|, mais omet les registres restants \`a z\'ero.
+Par exemple, si les valeurs de |\count0|--|\count3|
+sont $(17, 0 , 0, 7)$ et que les autres sont \`a $0$,
+\TeX\ affiche le num\'ero de page ainsi {\tt [17.0.0.7]}.}
+\example
+This explanation appears on page \number\pageno\
+of our book.
+|
+\produces
+This explanation appears on page \number\pageno\
+of our book.
+
+\nextexample
+\pageno = 30 % Number the next page as 30.
+Don't look for this explanation on page \number\pageno.
+|
+\produces
+Don't look for this explanation on page 30.
+\endexample
+\enddesc
+
+\begindesc
+\cts advancepageno {}
+\explain
+Cette commande ajoute $1$ au num\'ero de page
+$n$ dans |\pageno| si $n\ge0$
+et lui soustrait $1$ si $n<0$.
+\enddesc
+
+\begindesc
+\easy\cts nopagenumbers {}
+\explain
+Par d\'efaut, \plainTeX\ produit un pied de page contenant un num\'ero de page
+centr\'e.
+Cette commande demande \`a \TeX\ de produire un pied de page blanc \`a la place.
+\enddesc
+
+\begindesc
+\cts folio {}
+\explain
+Cette commande produit le num\'ero de page courant, dont la valeur est le num\'ero
+$n$ contenu dans ^|\pageno|.
+Si $n\ge0$,
+\TeX\ produit $n$ comme un nombre d\'ecimal,
+tandis que si $n<0$,
+\TeX\ produit $-n$ en chiffre romain minuscule.
+\example
+This explanation appears on page \folio\ of the book.
+|
+\produces
+This explanation appears on page \folio\ of the book.
+\endexample
+
+\eix^^{num\'erotation de page}
+\enddesc
+
+
+%==========================================================================
+\subsection{Lignes d'ent\^ete et de pied de page}
+
+\begindesc%\secondprinting{\vglue-.75\baselineskip\vskip0pt}
+\cts headline {\param{liste de token}}
+\cts footline {\param{liste de token}}
+\explain
+Ces param\`etres
+contiennent, respectivement, la ligne de t\^ete courante (ent\^ete) et la ligne de
+pied de page courante (pied de page).
+La routine de sortie de \plainTeX\
+place la ligne de t\^ete en haut de chaque page et ligne de pied de page
+en bas de chaque page.
+La ligne de t\^ete par d\'efaut est vide et la ligne de pied de page par d\'efaut
+est un num\'ero de page centr\'e.
+
+Les lignes de t\^ete et de pied de page doivent \^etre toutes les deux
+aussi large que |\hsize| (utilisez |\hfil|, \xref{\hfil}, pour cela
+si n\'ecessaire).
+Vous devez toujours inclure une commande de s\'election de police dans ces lignes,
+sinon la police courante est impr\'evisible quand \TeX\ appelle la routine de
+sortie. Si vous ne s\'electionnez la police explicitement,
+vous obtiendrez n'importe quelle police que \TeX\ utilisait quand il a coup\'e
+la page.
+
+N'essayez pas d'utiliser |\headline| ou |\footline|
+pour produire des ent\^etes ou des pieds de page multi-lignes.
+Bien que \TeX\ ne se plaindra pas, cela vous donnera quelque chose de tr\`es laid.
+Voir \xrefpg{bighead} pour une m\'ethode de cr\'eation d'ent\^ete ou de pied de
+page multi-ligne.
+\example
+\headline = {\tenrm My First Reader\hfil Page \folio}
+|
+\produces
+\pageno = 10
+\line{\tenrm \noindent My First Reader\hfil Page \folio}
+\par ({\it at the top of page \folio}\/)
+\nextexample
+\footline = {\tenit\ifodd\pageno\hfil\folio
+ \else\folio\hfil\fi}
+% Produce the page number in ten-point italic at
+% the outside bottom corner of each page.
+|
+\endexample\enddesc
+
+%\secondprinting{\vfill\eject}
+
+
+%==========================================================================
+\subsection {Marques}
+
+\begindesc
+\cts mark {\rqbraces{\<texte>}}
+\explain
+\bix^^{marques}
+Cette commande fait que \TeX\ attache une marque
+contenant \<mark text>
+\`a toute liste qu'il est en train de construire.
+G\'en\'eralement vous ne devez pas utiliser |\mark| dans une
+construction ``interne'' comme une formule math\'ematique ou une \minref{bo\^\i te}
+que vous avez construit avec une commande |\hbox|, |\vbox| ou |\vtop|, parce
+que \TeX\ ne verra pas la marque quand il construira la bo\^\i te principale
+de la page. Mais si vous utilisez |\mark| en \minref{mode} horizontal ordinaire
+ou directement dans une hbox qui fait partie de la liste verticale principale,
+la marque migrera vers la \minref{liste verticale} principale.
+Voir les \knuth{pages~259--260}{304--305} pour des exemples montrant comment |\mark|
+peut \^etre utilis\'e.
+\enddesc
+
+\begindesc
+\cts firstmark {}
+\cts botmark {}
+\cts topmark {}
+\explain
+Ces commandes d\'eveloppent le texte de la marque dans un \'el\'ement g\'en\'er\'e par une
+pr\'ec\'edente commande ^|\mark|.
+Le texte de la marque a la forme d'une liste de token.
+\TeX\ met la valeur de ces commandes quand il
+termine le placement du contenu d'une page dans ^|\box255|,
+juste avant d'appeler la \minref{routine de sortie}
+comme une partie de son action de \minref{coupure de page}. \TeX\ d\'etermine
+ces valeurs comme suit~:
+\ulist\compact
+\li |\firstmark| contient les tokens de la premi\`ere marque de la page.
+\li |\botmark| contient les tokens de la derni\`ere marque de la page.
+\li |\topmark| contient les tokens de la marque qui est effective tout
+en haut de la page.
+Cette marque est la derni\`ere marque
+qui \emph{pr\'ec\`ede} la page,
+c'est-\`a-dire, le |\botmark| de la page pr\'ec\'edente.
+Il est vide si aucune page ne pr\'ec\`ede la page.
+\endulist
+\noindent
+Si une page n'a aucune marque sur elle, \TeX\ mettra |\firstmark| et |\botmark|
+avec la m\^eme marque que |\topmark|, c'est-\`a-dire, la plus r\'ecente marque pr\'ec\'edente.
+La table en bas de la \knuth{page~258}{303} illustre la relation entre
+|\firstmark|, |\botmark| et |\topmark|.
+\enddesc
+
+\begindesc
+\cts splitfirstmark {}
+\cts splitbotmark {}
+\explain
+^^{marques//pour listes d\'edoubl\'ees}
+Ces commandes d\'eveloppent le ^{texte de marque} g\'en\'er\'e par une commande
+^|\mark| pr\'ec\'edente qui produisent un \'el\'ement dans la liste d'\'el\'ement d'une vbox $V$.
+Le texte de marque a la forme d'une liste de token.
+Quand \TeX\
+s\'epare $V$ en r\'eponse \`a une commande ^|\vsplit| (\xref \vsplit),
+il met les valeurs de ces commandes comme suit~:
+\ulist\compact
+\li |\splitfirstmark| contient les tokens de la premi\`ere marque dans
+la liste d'\'el\'ement de $V$.
+\li |\splitbotmark| contient les tokens de la derni\`ere marque dans
+la liste d'\'el\'ement de $V$.
+\endulist
+Ces commandes ne produisent aucun token s'il n'y a pas de |\vsplit| pr\'ec\'edent
+ou si le plus r\'ecent |\vsplit| pr\'ec\'edent ne contient aucune marque.
+\eix^^{marques}
+\enddesc
+
+%==========================================================================
+\section {Insertions}
+
+\subsection {Pieds de page}
+
+\begindesc
+\easy\cts footnote {\<argument$_1$> \<argument$_2$>}
+\cts vfootnote {\<argument$_1$> \<argument$_2$>}
+\explain
+Ces commandes produisent des notes de pied de page.
+\<argument$_1$> est la ``^{marque de r\'ef\'erence}''
+pour la note de pied de page et \<argument$_2$> est son texte.
+Le texte peut faire plusieurs paragraphes de long si n\'ecessaire et peut contenir
+des constructions comme des affichages math\'ematiques, mais ne peut contenir
+aucune
+\minref{insertion} (comme d'autres notes de pied de page).
+
+Vous ne pouvez pas utiliser ces commandes \`a l'int\'erieur d'une sous-formule d'une
+formule math\'ematique,
+dans une bo\^\i te \`a l'int\'erieur d'une bo\^\i te contribuant \`a une page
+ou dans une insertion de toute sorte.
+Si vous n'\^etes pas s\^ur de la mani\`ere dont ces restrictions s'appliquent, il
+peut \^etre sage de n'utiliser
+|\footnote| et |\vfootnote| que directement dans un paragraphe ou
+entre des paragraphes.
+
+Ces restrictions ne sont pas aussi s\'ev\`eres qu'elles ne le semblent parce que
+vous pouvez utiliser
+|\vfootnote| pour mettre en note de pied de page la plupart des choses.
+|\foot!-note| et |\vfoot!-note| ins\`erent tous les deux des marques de r\'ef\'erence
+en t\^ete de la note de pied de page elle-m\^eme, mais |\vfoot!-note| n'ins\`ere
+pas la marque de r\'ef\'erence dans le texte.
+Ainsi, quand vous utilisez |\vfoot!-note| vous pouvez
+ins\'erer explicitement la marque de r\'ef\'erence
+n'importe o\`u, sans que cela concerne le contexte
+et placer le |\vfootnote| dans le paragraphe suivant.
+Si vous trouvez que la note de bas de page atterrit sur
+la page suivant celle o\`u elle devrait, d\'eplacez le |\vfootnote|
+vers le paragraphe pr\'ec\'edent.
+Il y a de rares circonstances o\`u vous devez alt\'erer
+le texte de votre document pour qu'une note de bas de page apparaisse sur
+la m\^eme page que sa marque de r\'ef\'erence.
+\example
+To quote the mathematician P\'olya is a ploy.\footnote
+*{This is an example of an anagram, but not a strict one.}
+|
+\produces
+To quote the mathematician P\'olya is a ploy.*
+\par\line{\hskip .5in \vdots\hfil}
+\nointerlineskip \bigskip
+\footnoterule\par\parindent = 12pt
+\textindent{*}This is
+an example of an anagram, but not a strict one.
+\endexample
+\example
+$$f(t)=\sigma\sigma t\;\raise 1ex \hbox{\dag}$$
+\vfootnote \dag{The $\sigma\sigma$ notation was explained in
+the previous section.}
+|
+\produces
+$$f(t)=\sigma\sigma t\>\raise 1ex \hbox{\dag}$$
+\par\line{\hskip .5in \vdots\hfil}
+\nointerlineskip \bigskip
+\footnoterule\par\parindent = 12pt
+\textindent{\dag}{The $\sigma\sigma$ notation was explained in
+the previous section.}
+\endexample
+\enddesc
+
+%==========================================================================
+\subsection {Insertions g\'en\'erales}
+
+\begindesc
+\bix^^{insertions//commandes pour}
+\cts topinsert {\<mat\'eriel en mode vertical> {\bt \\endinsert}}
+\cts midinsert {\<mat\'eriel en mode vertical> {\bt \\endinsert}}
+\cts pageinsert {\<mat\'eriel en mode vertical> {\bt \\endinsert}}
+\explain
+Ces commandes produisent diff\'erentes formes d'insertions qui
+informent
+(ou autorisent) \TeX\ \`a d\'elocaliser le \<mat\'eriel en mode vertical>~:
+\ulist
+\li |\topinsert| essaye de mettre le mat\'eriel en haut de la page courante.
+S'il ne peut pas s'y ajuster, |\topinsert|
+d\'eplacera le mat\'eriel vers le prochain haut de page possible.
+\li |\midinsert| essaye de mettre le mat\'eriel \`a la position courante.
+S'il ne peut pas s'y ajuster, |\midinsert|
+d\'eplacera le mat\'eriel vers le prochain haut de page possible.
+\li |\pageinsert| met le mat\'eriel lui-m\^eme sur la page suivante.
+Pour \'eviter une page pas assez pleine, assurez vous de terminer le mat\'eriel ins\'er\'e avec
+|\vfil| ou remplissez l'espace excessif d'une autre mani\`ere.
+% Knuth doesn't say this, but I tried an experiment that verified it.
+% Nor does he say explicitly that an insertion does a \par.
+\endulist
+\noindent
+Le \<mat\'eriel en mode vertical>
+est dit \^etre ``flottant'' ^^{mat\'eriel flottant} parce que \TeX\
+peut le d\'eplacer d'une place \`a une autre.
+Des insertions sont tr\`es pratiques pour du mat\'eriel tel que des figures et des
+tables parce que vous pouvez positionner ce mat\'eriel o\`u vous voulez sans
+savoir o\`u les coupures de page tomberont.
+
+Chacune de ces commandes termine implicitement le paragraphe cou\-rant, donc
+vous ne devez les utiliser qu'entre des paragraphes.
+Vous ne devez pas les utiliser dans une bo\^\i te ou dans d'autres insertions.
+Si vous avez plusieurs insertions en comp\'etition pour
+le m\^eme espace, \TeX\ conservera leur ordre relatif.
+\example
+\pageinsert
+% This text will appear on the following page, by itself.
+This page is reserved for a picture of the Queen of Hearts
+sharing a plate of oysters with the Walrus and
+the Carpenter.
+\endinsert
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts endinsert {}
+\explain
+Cette commande termine une insertion d\'ebut\'ee par
+|\topinsert|, |\mid!-insert| ou |\pageinsert|.
+\enddesc
+
+\begindesc
+\cts insert {\<nombre> \rqbraces{\<mat\'eriel en mode vertical>}}
+\explain
+\minrefs{insertion}
+Cette commande primitive fournit le m\'ecanisme sous-jacent la construction
+des insertions, mais
+elle n'est presque jamais utilis\'ee en dehors d'un d\'efinition de \minref{macro}.
+Les d\'efinitions des commandes
+|\foot!-note|, |\vfoot!-note|,
+|\top!-insert|, |\mid!-insert| et |\page!-insert| sont
+toutes construites autour d'|\insert|.
+^^|\topinsert|
+^^|\midinsert| ^^|\pageinsert| ^^|\footnote| ^^|\vfootnote|
+
+Quand vous concevez des insertions pour un document, vous devez assigner un
+code entier diff\'erent\footnote
+{\texbook{} utilise le terme ``classe'' pour un code.
+Nous pr\'ef\'erons un terme diff\'erent pour \'eviter toute confusion avec l'autre signification
+de ``classe'' (\xref{classe}).}
+$n$ pour chaque type d'insertion,
+utilisez la commande ^|\newinsert| (\xref{\@newinsert}) pour obtenir les
+codes entiers.
+La commande |\insert| elle-m\^eme annexe le \<mat\'eriel en mode vertical>
+\`a la \minref{liste verticale} ou horizontale courante.
+Notre \minref{routine de sortie} est responsable de
+d\'eplacer le mat\'eriel ins\'er\'e d'o\`u il r\'eside dans la |\box|$\,n$
+vers la page de sortie.
+^^{routine de sortie}
+
+\TeX\ regroupe ensemble toutes les insertions ayant le m\^eme num\'ero de code.
+Chaque code d'insertion $n$ a quatre \minref{registre}s qui lui sont associ\'es~:
+\ulist
+\li |\box|$\,n$ est l'endroit o\`u \TeX\ accumule le mat\'eriel pour des insertions
+avec le code $n$. Quand \TeX\ coupe une page, il met dans |\box|$\,n$
+autant de mat\'eriel d'insertion $n$ qu'il pourra sur la page.
+Notre routine de sortie devra alors d\'eplacer ce mat\'eriel vers la page actuelle.
+Vous pouvez utiliser ^|\ifvoid| \ctsref{\@ifvoid}
+pour tester s'il y a du mat\'eriel dans |\box|$\,n$.
+Si tout le mat\'eriel ne rentre pas, \TeX\ sauve le surplus pour la page suivante.
+\li |\count|$\,n$ est un facteur de magnification $f$. Quand \TeX\ doit traiter
+l'espace vertical occup\'e sur la page
+dans le mat\'eriel d'insertion $n$, il multiplie l'extension
+verticale de ce mat\'eriel par $f/1000$.
+Ainsi vous mettrez normalement $f$ \`a $500$ pour une insertion en double-colonne
+et \`a $0$ pour une note~marginale.
+\li |\dimen|$\,n$ sp\'ecifie le montant maximum
+de mat\'eriel d'insertion $n$ que \TeX\ mettra sur une seule page.
+\li |\skip|$\,n$ sp\'ecifie un espace suppl\'ementaire que \TeX\ alloue sur la page
+si la page contient du mat\'eriel d'insertion $n$.
+Cet espace est en plus de l'espace occup\'e par l'insertion elle-m\^eme.
+Par exemple, il justifiera l'espace sur la page au-dessus des notes de pied de page
+(s'il y en a).
+\endulist
+\noindent
+\TeX\ d\'eclare |\box|$\,n$ et vous devez d\'eclarer les trois autres registres
+pour que \TeX\ puisse calculer correctement l'espace vertical requis par
+l'inser\-tion.
+Voir les \knuth{pages~122--125}{142--146} Pour d'autres d\'etails sur la fa\c con dont \TeX\
+ex\'ecute ces commandes et comment des insertions interagissent avec les coupures de page.
+\xrdef{endofinsert}
+\enddesc
+
+\see |\floatingpenalty| (\xref \floatingpenalty).
+\eix^^{insertions//commandes pour}
+
+
+%==========================================================================
+\section{Modifier la routine de sortie}
+
+\bix^^{routine de sortie}
+\begindesc
+\cts output {\param{liste de token}}
+\explain
+Ce param\`etre contient la \minref{routine de sortie} courante, c'est-\`a-dire,
+La liste de token que \TeX\ d\'eveloppe quand il trouve une coupure de page.
+\TeX\ met la page dans la ^|\box255|, ainsi |\output| est responsable
+de faire quelque chose avec la |\box255|---soit la sortir, soit
+la mettre ailleurs.
+La routine de sortie est aussi responsable d'attacher des choses comme des
+ent\^etes ou des pieds de page.
+\enddesc
+
+\begindesc
+\cts plainoutput {}
+\explain
+Cette commande invoque la routine de sortie de \plainTeX.
+^^{routine de sortie//par d\'efaut dans \plainTeX}
+\PlainTeX\ d\'efinit ^|\output| comme
+une liste de token contenant le seul et unique token |\plainoutput|.
+\enddesc
+
+\begindesc
+\cts shipout {\<bo\^\i te>}
+\explain
+Cette commande charge \TeX\ d'envoyer \<bo\^\i te> vers le \dvifile.
+^^{\dvifile//r\'eception de \boites\ de \b\tt\\shipout\e}
+\TeX\ d\'eveloppe toute commande |\write| dans \<bo\^\i te> comme une partie de |\shipout|.
+^^|\write//d\'evelopp\'e durant {\tt\\shipout}|
+Le principal usage de |\shipout| est dans la routine de sortie, mais vous pouvez
+l'utiliser n'importe o\`u.
+\enddesc
+
+\begindesc
+\cts deadcycles {\param{nombre}}
+\explain
+Ce param\`etre contient le nombre de fois que \TeX\ a lanc\'e
+la \minref{routine de sortie} depuis la derni\`ere fois qu'il a fait un
+^^|\shipout| |\ship!-out|.\footnote{
+Plus pr\'ecis\'ement, \TeX\ met |\dead!-cyles| \`a $0$ \`a chaque fois qu'il ex\'ecute
+|\ship!-out|
+et l'incr\'emente de $1$ \`a chaque fois qu'il ex\'ecute |\output|.}
+Si |\deadcycles| devient trop grand, \TeX\ est probablement entr\'e dans une
+boucle, par exemple, une o\`u le constructeur de page essaye la m\^eme coupure de
+page \`a n'en plus finir.
+\enddesc
+
+\begindesc
+\cts maxdeadcycles {\param{nombre}}
+\explain
+Si la valeur de |\deadcycles| d\'epasse la valeur de |\maxdeadcycles|,
+\TeX\ pr\'esume que la routine de sortie est entr\'ee dans une boucle.
+\TeX\ se plaint alors et effectue sa propre et simple routine de sortie,
+\'equivalente \`a |\shipout!allowbreak\box255|,
+Ce qui brisera vraisemblablement la boucle.
+\PlainTeX\ met |\maxdeadcycles| \hbox{\`a $25$}.
+\enddesc
+
+\begindesc
+\cts outputpenalty {\param{nombre}}
+\explain
+\TeX\ met ce param\`etre quand il coupe une page. Si le point de coupure \'etait sur un
+\'el\'ement de \minref{p\'enalit\'e}, \TeX\ enl\`eve l'\'el\'ement de p\'enalit\'e et
+met |\outputpenalty| \`a la valeur de la p\'enalit\'e au point de coupure~;
+autrement, il met |\outputpenalty| \hbox{\`a $0$}.
+
+Supposez que vous d\'efaites une coupure de page
+pour couper la page \`a un endroit diff\'erent que celui que \TeX\
+a choisi. Pour reconstruire la page, vous devez recr\'eer
+la p\'enalit\'e au point de coupure choisi par \TeX.
+Vous pouvez accomplir ceci avec la commande
+|\penalty!allowbreak\outputpenalty|.
+\enddesc
+
+\begindesc
+\cts holdinginserts {\param{nombre}}
+\explain
+Si ce param\`etre est plus grand que $0$ quand \TeX\
+ex\'ecute une coupure de page, \TeX\ s'abstiendra \`a ex\'ecuter des insertions.
+Mettre ce param\`etre \`a $1$
+peut \^etre utile quand vous \'ecrivez une routine de sortie
+qui \`a besoin de refaire le contenu de la page, par exemple,
+une routine de sortie qui utilise une valeur de |\vsize| (\xref \vsize) diff\'erente de
+celle utilis\'ee par le constructeur de page.
+
+\eix^^{routine de sortie}
+\enddesc
+
+%==========================================================================
+\section {S\'eparer des listes verticales}
+
+\begindesc
+\cts vsplit {\<nombre> {\bt to} \<dimension>}
+\explain
+Cette commande fait que \TeX\ s\'epare la \minref{bo\^\i te} num\'ero
+\<number>, que nous appellerons $B_2$, en deux parties.
+Il utilise le m\^eme algorithme que celui qu'il utiliserait si $B_2$ \'etait une page
+et qu'il coupait cette page.
+Le point de division correspond alors \`a la coupure de page qu'il trouverait.
+La bo\^\i te $B_2$ doit \^etre une vbox, pas une hbox.
+% we avoid starting the previous sentence with a symbol, a copyediting no-no.
+\TeX\ met le mat\'eriel pr\'ec\'edant le point de division dans
+un autre bo\^\i te $B_1$ et laisse le mat\'eriel apr\`es le point de division dans $B_2$.
+La commande |\vsplit| alors produit $B_1$.
+Normalement vous assignerez $B_1$ \`a un registre de bo\^\i te diff\'erent,
+comme dans l'exemple ci-dessous.
+Si le point de division est \`a la fin de $B_2$,
+$B_2$ sera vide apr\`es le |\vsplit|.
+
+\TeX\ emploie son algorithme de coupure de page habituel
+^^{coupures de page//en liste d\'edoubl\'ees}
+pour la division.
+Il utilise \<dimension> pour ^|\pagegoal|, la hauteur d\'esir\'ee de $B_1$.
+L'extension verticale de $B_1$ peut ne pas \^etre exactement \'egale \`a
+\<dimension> parce que \TeX\ peut ne pas \^etre capable d\'~ achever son but de page parfaitement.
+\TeX\ ne prend pas en compte les insertions dans le calcul de la division,
+donc des insertions dans la liste verticale originale de $B_2$
+seront maintenues mais n'affecteront pas le point de division.
+
+\example
+\setbox 20 = \vsplit 30 to 7in
+% Split off the first seven inches or so of material from
+% box 30 and place that material in box 20.
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts splitmaxdepth {\param{dimension}}
+\explain
+Ce param\`etre sp\'ecifie la profondeur
+maximum autoris\'ee pour une bo\^\i te r\'esultant d'un |\vsplit|.
+|\splitmaxdepth| joue le
+m\^eme r\^ole que celui de ^|\maxdepth| (\xref \maxdepth) pour une page.
+\enddesc
+
+\begindesc
+\cts splittopskip {\param{ressort}}
+\explain
+Ce param\`etre sp\'ecifie le ressort que \TeX\ ins\`ere en haut d'une
+bo\^\i te r\'esultant d'un |\vsplit|.
+|\splittopskip| joue le
+m\^eme r\^ole que ^|\topskip| (\xref \topskip) joue pour une page.
+\enddesc
+
+\see |\splitbotmark|, |\splitfirstmark| (\xref \splitfirstmark).
+
+\enddescriptions \endchapter \byebye
+
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/fparas.tex b/Master/texmf-dist/doc/plain/impatient-fr/fparas.tex
new file mode 100644
index 00000000000..45557c56aef
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/fparas.tex
@@ -0,0 +1,2152 @@
+% 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 \linebreak pour composer \linebreak des paragraphes}
+
+\chapterdef{paras}
+
+Cette section couvre les commandes qui traitent des caract\`eres, des mots, des
+lignes et des paragraphes entiers. Pour une explication des conventions
+utilis\'ees dans cette section, voir les \headcit{Descriptions de
+commandes}{cmddesc}.
+
+\begindescriptions
+
+\section {Caract\`eres et accents}
+
+%==========================================================================
+\subsection {Lettres et ligatures pour alphabets Europ\'eens}
+
+\begindesc
+\xrdef{fornlets}
+\bix^^{ligatures}
+^^{symboles sp\'eciaux}
+^^{alphabets europ\'eens}
+%
+\ctsx AA {Lettre scandinave \AA}
+\ctsx aa {Lettre scandinave \aa}
+\ctsx AE {Ligature \AE}
+\ctsx ae {Ligature \ae}
+\ctsx L {Lettre Polonaise \L}
+\ctsx l {Lettre Polonaise \l}
+\ctsx O {Lettre Danoise/Norv\'egienne \O}
+\ctsx o {Lettre Danoise/Norv\'egienne \o}
+\ctsx OE {Ligature \OE}
+\ctsx oe {Ligature \oe}
+\ctsx ss {Lettre Allemande \ss}
+\explain
+Ces commandes produisent diverses lettres et ligatures des alphabets
+europ\'eens. Elles sont utiles pour des mots et expressions occasionnels
+dans ces langues---mais si vous devez composer une grande quantit\'e de
+texte dans une langue europ\'eenne, vous feriez probablement mieux
+d'utiliser une version de \TeX\ adapt\'ee \`a cette langue.\footnote{Le \TeX\
+Users Group (\xref{ressources}) peut vous fournir des informations sur les
+versions europ\'eennes de \TeX.}
+
+Vous aurez besoin d'un espace apr\`es ces commandes quand vous les
+utiliserez dans un mot pour que \TeX\ traite les lettres suivantes comme
+\'el\'ement du mot et non en tant qu'\'el\'ement de la commande. Vous
+n'avez pas besoin d'\^etre en \minref{mode math\'ematique} pour utiliser
+ces commandes.
+
+\example
+{\it les \oe uvres de Moli\`ere}
+|
+\produces
+{\it les \oe uvres de Moli\`ere}
+\endexample
+\eix^^{ligatures}
+\enddesc
+
+%==========================================================================
+\subsection {Symboles sp\'eciaux}
+
+\begindesc
+^^{caract\`eres sp\'eciaux}
+%
+\easy\ctspecialx # \ctsxrdef{@pound} {signe di\`ese \#}
+\ctspecialx $ \ctsxrdef{@bucks} {signe dollar \$}
+\ctspecialx % \ctsxrdef{@percent} {signe pourcentage \%}
+\ctspecialx & \ctsxrdef{@and} {esperluette \&}
+\ctspecialx _ \ctsxrdef{@underscore} {soulign\'e \_}
+\ctsx lq {quote gauche \lq}
+\ctsx rq {quote droite \rq}
+\aux\ctsx lbrack crochet gauche [
+\aux\ctsx rbrack crochet droit ]
+\ctsx dag {symbole dague \dag}
+\ctsx ddag {symbole double dague \ddag}
+\ctsx copyright {symbole copyright \copyright}
+\ctsx P {symbole paragraphe \P}
+\ctsx S {symbole section \S}
+\explain
+
+Ces commandes produisent diverses marques et caract\`eres sp\'eciaux. Les
+cinq premi\`eres commandes sont n\'ecessaires parce que \TeX\ attache par
+d\'efaut des significations sp\'eciales aux caract\`eres (|#|, |$|, |%|,
+|&|, |_|). vous n'avez pas besoin d'\^etre en \minref{mode math\'ematique}
+pour employer ces commandes.
+
+Vous pouvez utiliser le signe dollar de la police Computer Modern italique
+pour obtenir le symbole ^{livre sterling}, comme montr\'e dans l'exem\-ple
+ci-dessous.
+
+\example
+\dag It'll only cost you \$9.98 over here, but in England
+it's {\it \$}24.98.
+|
+\produces
+\dag It'll only cost you \$9.98 over here, but in England
+it's {\it \$}24.98.
+\endexample
+\enddesc
+
+\begindesc
+\cts TeX {}
+\explain
+Cette commande produit le logo \TeX. souvenez vous de la faire suivre par
+|\!vs| ou de l'inclure dans un \minref{groupe} quand vous voulez un espace
+apr\`es lui.
+
+\example
+A book about \TeX\ is in your hands.
+|
+\produces
+A book about \TeX\ is in your hands.
+\endexample
+\enddesc
+
+\begindesc
+\cts dots {}
+\explain
+^^{points}
+Cette commande produit des ^{points de suspension}, c'est-\`a-dire, trois
+points, dans du texte ordinaire. Elle est pr\'evue pour \^etre utilis\'ee
+en \'ecriture math\'ematique, pour des points de suspension entre des mots
+ordinaires, vous devez utiliser |$\ldot$| \ctsref{\ldots} \`a la place.
+Puisque |\dots| inclut son propre espace, vous ne devez pas le faire suivre
+de |\!vs|.
+\example
+The sequence $x_1$, $x_2$, \dots, $x_\infty$
+does not terminate.
+|
+\produces
+The sequence $x_1$, $x_2$, \dots, $x_\infty$
+does not terminate.
+\endexample
+\enddesc
+
+\see ``Divers symboles math\'ematiques ordinaires'' (\xref{specsyms}).
+%==========================================================================
+\subsection {Caract\`eres Arbitraires}
+
+\begindesc
+\bix^^{caract\`eres}
+\cts char {\<charcode>}
+\explain
+Cette commande produit le caract\`ere situ\'e \`a la position \<charcode>
+de la police courante.
+\example
+{\char65} {\char `A} {\char `\A}
+|
+\produces
+{\char65} {\char `A} {\char `\A}
+\endexample
+\enddesc
+
+\begindesc
+\cts mathchar {\<mathcode>}
+\explain
+Cette commande produit le caract\`ere math\'ematique dont la classe, la
+famille et la position dans la police sont donn\'ees par \<mathcode>. Elle
+n'est l\'egale qu'en mode math\'ematique.
+\example
+\def\digger{\mathchar "027F} % Like \spadesuit in plain TeX.
+% Class 0, family 2, font position "7F.
+$\digger$
+|
+\produces
+\def\digger{\mathchar "027F}
+% class 0, family 2, font position "7F
+$\digger$
+\endexample
+\enddesc
+
+\see |\delimiter| (\xref\delimiter).
+\eix^^{caract\`eres}
+
+%==========================================================================
+\subsection {Accents}
+
+\begindesc
+^^{accents}
+\xrdef{accents}
+%
+\ctspecialx ' \ctsxrdef{@prime} {^{accent aigu} comme dans \'e}
+\ctspecialx . \ctsxrdef{@dot} {^{accent point} comme dans \.n}
+\ctspecialx = \ctsxrdef{@equal} {^{accent macron} comme dans \=r}
+\ctspecialx ^ \ctsxrdef{@hat} {^{accent circonflexe} comme dans \^a}
+\ctspecialx ` \ctsxrdef{@lquote} {^{accent grave} comme dans \`e}
+\ctspecialx " \ctsxrdef{@quote} {^{accent tr\'ema} comme dans \"o}
+\ctspecialx ~ \ctsxrdef{@not} {^{accent tilde} comme dans \~a}
+\ctsx c {^{accent c\'edille} comme dans \c c}
+\ctsx d {^{accent point en dessous} comme dans \d r}
+\ctsx H {^{accent tr\'ema Hongrois} comme dans \H o}
+\ctsx t {^{accent tie-after} comme dans \t uu}
+\ctsx u {^{accent bref} comme dans \u r}
+\ctsx v {^{accent circonflexe invers\'e} comme dans \v o}
+\explain
+Ces commandes produisent des accents en texte ordinaire. Vous devez
+normalement laisser un espace apr\`es ceux not\'es par une simple lettre.
+(see ``Espaces'', \xref{espaces}).
+
+\example
+Add a soup\c con of \'elan to my pin\~a colada.
+|
+\produces
+Add a soup\c con of \'elan to my pin\~a colada.
+\endexample
+
+\margin{`See also' moved to end of group, replacing the one there.}
+\enddesc
+
+\begindesc
+\cts i {}
+\cts j {}
+\explain
+Ces commandes produisent des versions sans point des lettres `i' et `j'.
+Vous devez les utiliser au lieu des `i' et `j' ordinaires quand vous mettez
+un accent sur ces lettres dans du texte ordinaire.
+^^{lettres sans points}
+Utilisez les commandes ^|\imath| et ^|\jmath| (\xref\imath) pour des `i' et
+`j' sans point dans des formules math\'ematiques.
+\example
+long `i' as in l\=\i fe \quad \v\j
+|
+\produces
+long `i' as in l\=\i fe \quad \v\j
+\endexample
+\enddesc
+
+\begindesc
+\cts accent {\<charcode>}
+\explain
+^^{accents}
+Cette commande met un accent au-dessus du caract\`ere suivant cette
+commande. L'accent est le caract\`ere de position \<charcode> dans la
+police courante. \TeX\ suppose que l'accent a \'et\'e con\c cu pour
+s'adapter sur un caract\`ere d'une hauteur de $1$\thinspace ex dans la
+m\^eme police que l'accent. Si le caract\`ere \`a accentuer est plus haut
+ou plus petit, \TeX\ ajuste la position en cons\'equence. Vous pouvez
+changer de \minref{police} entre l'accent et le caract\`ere suivant, cela
+dessine le caract\`ere accent et le caract\`ere \`a accentuer venant de
+diff\'erentes polices. Si le caract\`ere accent n'est pas vraiment pr\'evu
+pour \^etre un accent, \TeX\ ne se plaindra pas~; il composera juste quelque
+chose de ridicule.
+\example
+l'H\accent94 otel des Invalides
+% Position 94 of font cmr10 has a circumflex accent.
+|
+\produces
+l'H\accent94 otel des Invalides
+% Position 94 of font cmr10 has a circumflex accent.
+\endexample
+\see Accents math\'ematiques (\xref{mathaccent}).
+\enddesc
+%==========================================================================
+\subsection {Ligatures aux limites}
+
+\begindesc
+\bix^^{ligatures}
+\cts noboundary {}
+\explain
+Vous pouvez d\'efaire une ligature ou un cr\'enage que \TeX\ applique au
+premier ou au dernier caract\`ere d'un mot en mettant |\noboundary| juste
+avant ou apr\`es ce mot. Certaines polices pr\'evues pour des langues
+autres que l'anglais contiennent un caract\`ere sp\'ecial de fronti\`ere
+que \TeX\ met au commencement et \`a la fin de chaque mot. Le caract\`ere
+de fronti\`ere n'occupe aucun espace et est invisible une fois imprim\'e.
+Il permet \`a \TeX\ de fournir un traitement typographique diff\'erent aux
+caract\`eres de d\'ebut ou de fin de mot, puisque le caract\`ere de
+fronti\`ere peut faire partie d'une s\'equence de caract\`eres devant
+\^etre cr\'enel\'ee ou remplac\'ee par une ligature (aucune police
+standard de \TeX\ ne contient ce caract\`ere de fronti\`ere). L'effet de
+|\noboundary| est de supprimer le caract\`ere de fronti\`ere s'il est l\`a,
+et de ce fait d'emp\^echer \TeX\ d'identifier la ligature ou le cr\'enage.
+\eix^^{ligatures}
+\enddesc
+
+%==========================================================================
+\section {S\'electionner des polices}
+
+\xrdef{selfont}
+
+%==========================================================================
+\subsection {Polices particuli\`eres}
+
+\begindesc
+^^{polices}
+%
+\ctsx fivebf {utilise une police grasse de $5$ points}
+\ctsx fivei {utilise une police math\'ematique italique de $5$ points}
+\ctsx fiverm {utilise une police romaine de $5$ points}
+\ctsx fivesy {utilise une police de symbole math\'ematique de $5$ points}
+\ctsx sevenbf {utilise une police grasse de $7$ points}
+\ctsx seveni {utilise une police math\'ematique italique de $7$ points}
+\ctsx sevenrm {utilise une police romaine de $7$ points}
+\ctsx sevensy {utilise une police de symbole math\'ematique de $7$ points}
+\ctsx tenbf {utilise une police grasse de texte de $10$ points}
+\ctsx tenex {utilise une police d'extension math\'ematique de $10$ points}
+\ctsx teni {utilise une police math\'ematique italique de $10$ points}
+\ctsx tenrm {utilise une police romaine de texte de $10$ points}
+\ctsx tensl {utilise une police romaine pench\'ee de $10$ points}
+\ctsx tensy {utilise une police de symbole math\'ematique de $10$ points}
+\ctsx tenit {utilise une police italique de $10$ points}
+\ctsx tentt {utilise une police de type machine \`a \'ecrire de $10$ points}
+\explain
+Le texte suivant ces commandes est compos\'e par \TeX\ dans la police
+indiqu\'ee. Normalement vous devriez enfermer une de ces commandes de choix
+de police dans un groupe avec le texte devant \^etre compos\'e dans la
+police choisie. En dehors d'un groupe une commande de choix de police est
+efficace jusqu'\`a la fin du document (\`a moins que vous ne l'annuliez
+avec une autre commande de ce genre).
+\example
+See how I've reduced my weight---from
+120 lbs.\ to {\sevenrm 140 lbs}.
+|
+\produces
+See how I've reduced my weight---from
+120 lbs.\ to {\sevenrm 140 lbs}.
+\endexample
+\enddesc
+
+\begindesc
+\cts nullfont {}
+\explain
+Cette commande s\'electionne une police, construite dans \TeX, qui ne
+comporte aucun caract\`ere. \TeX\ l'utilise en remplacement d'une police
+non d\'efinie dans une famille des polices math\'ematiques.
+\enddesc
+
+%==========================================================================
+\subsection {Styles de caract\`ere}
+
+\xrdef{seltype}
+\begindesc
+^^{styles de caract\`ere}
+\easy\ctsx bf {utilise un style gras}
+\ctsx it {utilise un style italique}
+\ctsx rm {utilise un style romain}
+\ctsx sl {utilise un style pench\'e}
+\ctsx tt {utilise un style machine \`a \'ecrire}
+\explain
+Ces commandes choisissent un style de caract\`ere sans changer l'oeil ou
+la taille du caract\`ere.\footnote{\TeX\ ne fournit pas de commandes
+pr\'ed\'efinies pour ne changer que la taille, par exemple, |\eightpoint|.
+La fourniture de telles commandes exigerait un grand nombre de
+polices, lesquelles ne seraient jamais utilis\'ees. De telles commandes
+ont \'et\'e cependant employ\'ees dans la composition de \texbook.}
+Normalement vous enfermeriez une de ces commandes de s\'election de
+style de caract\`ere dans un groupe, avec le texte devant \^etre compos\'e
+dans la police choisie. En dehors d'un groupe une commande de
+s\'election de style est efficace jusqu'\`a la fin du document (\`a moins
+que vous l'effaciez avec une autre commande de ce genre).
+\example
+The Dormouse was {\it not} amused.
+|
+\produces
+The Dormouse was {\it not} amused.
+\endexample
+\enddesc
+
+\see ``Polices dans des formules math\'ematiques'' (\xref{mathfonts}).
+%==========================================================================
+\section {Majuscule et minuscule}
+
+\begindesc
+\bix^^{conversion de casse}
+\bix^^{majuscules//conversion en}
+\bix^^{minuscules//conversion en}
+\cts lccode {\<charcode> \tblentry{nombre}}
+\cts uccode {\<charcode> \tblentry{nombre}}
+\explain
+Les valeurs |\lccode| et |\uccode| pour les $256$ caract\`eres possibles
+indiquent la correspondance entre les formes minuscules et majuscules
+des lettres. Ces valeurs sont utilis\'ees par les commandes |\lowercase|
+et |\uppercase| respectivement et par l'algorithme de c\'esure de \TeX.
+
+\TeX\ initialise les valeurs de |\lccode| et |\uccode| comme suit~:
+
+\ulist\compact
+\li Le |\lccode| d'une lettre minuscule est le code {\ascii} de cette lettre.
+\li Le |\lccode| d'une lettre majuscule est le code {\ascii} de la lettre minuscule
+correspondante.
+\li Le |\uccode| d'une lettre majuscule est le code {\ascii} de cette lettre.
+\li Le |\uccode| d'une lettre minuscule est le code {\ascii} de la lettre majuscule
+correspondante.
+\li Les |\lccode| et |\uccode| d'un caract\`ere qui n'est pas une lettre sont \`a z\'ero.
+\endulist
+
+La majeure partie du temps, il n'y a aucune raison de changer ces valeurs,
+mais vous pourriez devoir les changer si vous vous servez d'une langue qui
+a plus de lettres que l'anglais.
+\example
+\char\uccode`s \char\lccode`a \char\lccode`M
+|
+\produces
+\char\uccode`s \char\lccode`a \char\lccode`M
+\endexample
+\enddesc
+
+\begindesc
+\cts lowercase {\rqbraces{\<liste de token>}}
+\cts uppercase {\rqbraces{\<liste de token>}}
+\explain ^^{conversion de casse}
+Ces commandes convertissent les lettres de la \<token list>, c'est-\`a-dire,
+les tokens avec le code de cat\'egorie $11$, dans leurs formes minuscules
+et majuscules. La conversion d'une lettre est d\'efinie par sa valeur de
+table |\lccode| (pour une minuscule) ou |\uccode| (pour une majuscule). Les
+tokens de la liste qui ne sont pas des lettres ne sont pas affect\'ees---m\^eme
+si les tokens sont des appels de \minref{macro} ou d'autres commandes qui
+se d\'eveloppent en lettres.
+\example
+\def\x{Cd} \lowercase{Ab\x} \uppercase{Ab\x}
+|
+\produces
+\def\x{Cd} \lowercase{Ab\x} \uppercase{Ab\x}
+
+\eix^^{conversion de casse}
+\eix^^{majuscules//conversion en}
+\eix^^{minuscules//conversion en}
+\endexample
+\enddesc
+
+%==========================================================================
+\section {Espace inter-mot}
+
+\begindesc
+\bix^^{espace//inter-mots}
+\easy\ctsbasic {\\\vs}{}
+\blankidxref\ctsxrdef{@space}
+\explain
+Cette commande produit explicitement un espace entre les mots appel\'e
+``^{espace contr\^ol\'e}''. un espace contr\^ol\'e est utile quand une lettre
+appara\^\i t juste apr\`es une commande, ou dans n'importe quelle autre
+circonstance o\`u vous ne voulez pas que deux tokens soient reli\'es dans
+la sortie. La place produite par |\!vs| est ind\'ependante de la
+ponctuation pr\'ec\'edente, c'est-\`a-dire, que son facteur d'espace
+(\xref\spacefactor) est $1000$.
+
+Par ailleurs, si vous voulez imprimer le caract\`ere `\vs' ^^{espace
+visible} que nous avons utilis\'e ici pour noter un espace, vous pouvez
+l'obtenir en saisissant |{\tt \char `\ }|.
+
+\example
+The Dormouse was a \TeX\ expert, but he never let on.
+|
+\produces
+The Dormouse was a \TeX\ expert, but he never let on.
+\endexample
+\enddesc
+
+\begindesc
+\cts space {}
+\explain
+Cette commande est \'equivalente \`a la saisie d'un caract\`ere espace. Elle
+diff\`ere de ^|\ | du fait que sa largeur \emph{peut} \^etre affect\'e par
+la ponctuation pr\'ec\'edente.
+\example
+Yes.\space No.\space Maybe.\par
+Yes.\!vs!.No.\!vs!.Maybe.
+
+|
+\produces
+Yes.\space No.\space Maybe.\par
+Yes.\ No.\ Maybe.
+\endexample
+\enddesc
+
+\begindesc
+\ctsact ^^M \xrdef{@newline}
+\explain
+Cette construction produit le caract\`ere ^{fin de ligne}. Elle a
+normalement deux effets quand \TeX\ la rencontre dans votre source~:
+\olist
+\li Elle agit en tant que commande, en introduisant un espace (si elle
+appara\^\i t \`a l'extr\'emit\'e d'une ligne non vide) ou un
+token |\par| (si elle appara\^\i t \`a l'extr\'emit\'e d'une ligne vide).
+^^|\par//d'une ligne vide|
+\li Elle termine la ligne du source, faisant que \TeX\ ignore les
+caract\`eres restants sur la ligne.
+\endolist
+\noindent
+Cependant, |^^M| \emph{ne} fait \emph{pas} terminer la ligne quand il
+appara\^\i t dans le contexte |`\^^M|, d\'enotant le code ASCII du control-M
+(le nombre $13$). Vous pouvez changer la signification du |^^M| en lui
+donnant un \minref{code de cat\'egorie} diff\'erent. Voir
+\xrefpg{twocarets} pour une explication plus g\'en\'erale de la notation
+|^^|.
+\example
+Hello.^^MGoodbye.
+Goodbye again.\par
+The \char `\^^M\ character.\par
+% The fl ligature is at position 13 of font cmr10
+\number `\^^M\ is the end of line code.\par
+Again, \number `^^M is the end of line code,
+isn't it? % 32 is the ASCII code for a space
+|
+\produces
+{\catcode `\^ = 7 % disable indexing use within this display
+Hello.^^MGoodbye
+Goodbye again.\par
+The \char `\^^M\ character.\par
+\number `\^^M\ is the end of line code.\par
+Again, \number `^^M is the end of line code,
+isn't it?}
+\endexample
+\enddesc
+
+\begindesc
+\easy\ctsact ~ \xrdef{@not}
+\explain
+Le caract\`ere \minref{actif} `|~|' appel\'e un ``^{tilde}'', produit
+une espace normale entre deux mots et lie ces mots pour
+qu'une coupure de ligne ne se produise pas entre eux. Vous devez
+employer un tilde dans n'importe quel contexte o\`u une coupure de
+ligne serait embrouillante, par exemple, avant une initiale moyenne,
+apr\`es une abr\'eviation telle que ``Dr'' ou apr\`es ``Fig.'' dans ``Fig.~8''.
+
+\example
+P.D.Q.~Bach (1807--1742), the youngest and most
+imitative son of Johann~S. Bach, composed the
+{\sl Concerto for Horn and Hardart}.
+|
+\produces
+\margin{The inversion of dates is deliberate---cf. Peter Schickele.}
+P.D.Q.~Bach (1807--1742), the youngest and most
+imitative son of Johann~S. Bach, composed the
+{\sl Concerto for Horn and Hardart}.
+\endexample\enddesc
+
+\begindesc
+\easy\ctspecial / \ctsxrdef{@slash}
+\explain
+Chaque caract\`ere d'une \minref{fonte} \TeX\ a une correction d'``^{italique}''
+li\'ee \`a lui, bien que la correction d'italique soit
+normalement \`a z\'ero pour un caract\`ere d'une police non pench\'ee (montante).
+La correction d'italique indique l'espace suppl\'ementaire qui
+est n\'ecessaire quand vous passez d'une police inclin\'ee (pas
+n\'ecessairement une police italique) \`a une police non pench\'ee.
+L'espace suppl\'ementaire est n\'ecessaire parce qu'un caract\`ere inclin\'e
+d\'epasse dans l'espace qui le suit, r\'eduisant l'espace quand le caract\`ere
+suivant est non pench\'e. Le dossier de
+m\'etriques d'une police inclut la correction d'italique de chaque
+caract\`ere dans la police.
+^^{fichiers de m\'etriques//correction italique dans}
+
+La commande |\/|
+produit une correction d'^{italique} pour le caract\`ere pr\'ec\'edent. Vous
+devez ins\'erer une correction d'italique quand vous passez d'une
+police inclin\'ee vers une police droite, sauf quand le caract\`ere suivant
+est un point ou une virgule.
+\example
+However, {\it somebody} ate {\it something}: that's clear.
+
+However, {\it somebody\/} ate {\it something\/}:
+that's clear.
+|
+\produces
+However, {\it somebody} ate {\it something}: that's clear.
+
+However, {\it somebody\/} ate {\it something\/}:
+that's clear.
+\endexample
+\enddesc
+
+\begindesc
+\cts frenchspacing {}
+\cts nonfrenchspacing {}
+\explain
+^^{espacement inter-mots}
+\TeX\ ajuste normalement l'espacement entre les mots en
+accord avec les signes de ponctuation. Par exemple, il ins\`ere de l'espace
+suppl\'ementaire \`a la fin d'une phrase et ajoute un certain \'etirement
+au \minref{ressort} apr\`es n'importe quel signe de ponctuation. La
+commande |\frenchspacing| indique \`a \TeX\ de rendre l'espacement
+entre les mots ind\'ependant de la ponctuation, alors que la commande
+|\nonfrenchspacing| indique \`a \TeX\ d'utiliser les r\`egles normales
+d'espacement. Si vous n'indiquez pas |\frenchspacing|, vous
+obtiendrez l'espacement normal de \TeX.
+
+Voyez \xrefpg{periodspacing} pour des conseils sur la fa\c con de
+contr\^oler le traitement de la ponctuation de \TeX\ \`a la fin des
+phrases.
+
+\example
+{\frenchspacing An example: two sentences. Right? No.\par}
+{An example: two sentences. Right? No. \par}%
+|
+\produces
+{\frenchspacing An example: two sentences. Right? No.\par}
+{An example: two sentences. Right? No. \par}%
+\endexample
+
+\enddesc
+
+\begindesc
+\cts obeyspaces {}
+\explain
+\TeX\ condense normalement une suite de plusieurs espaces en un
+espace simple. |\obeyspaces| demande \`a \TeX\ de produire un
+espace dans le r\'esultat pour chaque espace dans le source.
+Cependant,|\obeyspaces| ne met pas d'espace au d\'ebut d'une ligne~;
+pour cela nous vous recommandons la commande de
+|\obey!-white!-space| d\'efinie dans |eplain.tex|
+(\xref{ewhitesp}).
+^^|\obeywhitespace|
+|\obeyspaces| est souvent utile quand vous composez quelque chose,
+un source informatique par exemple, dans une police \`a espacement fixe (une police dans
+laquelle chaque caract\`ere a le m\^eme espacement) et que vous voulez montrer
+exactement \`a quoi ressemble chaque ligne du source.
+
+Vous pouvez utiliser la commande |\obeylines| (\xref{\obeylines})
+pour obtenir que \TeX\ suive les bords de ligne de votre source.
+|\obeylines| est souvent utilis\'e en combinaison avec |\obeyspaces|.
+
+\example
+These spaces are closed up
+{\obeyspaces but these are not }.
+|
+\produces
+These spaces are closed up
+{\obeyspaces but these are not }.
+\endexample
+\enddesc
+
+\begindesc
+\cts spacefactor {\param{nombre}}
+\cts spaceskip {\param{ressort}}
+\cts xspaceskip {\param{ressort}}
+\cts sfcode {\<charcode> \tblentry{nombre}}
+\explain
+Ces \minref{param\`etres} primitifs affectent combien d'espace \TeX\ met
+entre deux mots adjacents, c'est-\`a-dire, l'^{espacement inter-mots}.
+L'espacement normal entre les mots est assur\'e par la police courante.
+Pendant que \TeX\ traite une \minref{liste horizontale}, il garde trace
+du facteur d'^{espacement} $f$ dans |\spacefactor|. pendant qu'il
+traite chaque caract\`ere du source $c$, il met \`a jour $f$ selon la
+valeur de $f_c$, le code de facteur d'espacement de $c$ (voir ci-
+dessous). Pour la plupart des caract\`eres, $f_c$ est \`a $1000$ et \TeX\
+met $f$ \`a $1000$. (la valeur initiale de $f$ est \'egalement $1000$.)
+Quand \TeX\ voit un espace entre les mots, il ajuste la taille de cet
+espace en multipliant l'\'etirement et le r\'etr\'ecissement de cet espace
+par $f/1000$ et $1000/f$ respectivement. d'o\`u~:
+\olist\compact
+\li Si $f=1000$, l'espace inter-mots garde sa valeur normale.
+\li If $f<1000$, l'espace inter-mots prend moins d'\minref{\'etirement}
+et plus de \minref{r\'etr\'ecissement}.
+\li If $f>1000$, l'espace inter-mots prend plus d'\minref{\'etirement}
+et moins de \minref{r\'etr\'ecissement}.
+\endolist
+En outre, si $f\ge2000$ l'espace inter-mots est encore augment\'e par le
+param\`etre ``d'espace suppl\'ementaire'' li\'e \`a la police courante.
+
+Chaque caract\`ere saisi $c$ a une adresse dans la table de |\sfcode|
+(code de facteur d'espacement). L'adresse de la table |\sfcode| est
+ind\'ependante de la police. Normalement \TeX\ met simplement $f$ \`a
+$f_c$ apr\`es avoir trait\'e $c$. De toute mani\`ere~:
+\ulist
+\li Si $f_c$ est \`a z\'ero, \TeX\ laisse $f$ sans changement. Ainsi, un
+caract\`ere tel que `|)|' dans \plainTeX, pour lequel $f_c$ est \`a z\'ero,
+est essentiellement transparent pour le calcul de l'espacement entre
+les mots.
+\li Si $f<1000<f_c$, \TeX\ met $f$ \`a $1000$ plut\^ot que $f_c$, c'est-\`a-
+dire, qu'il refuse d'augmenter $f$ tr\`es rapidement.
+\endulist
+La valeur de |\sfcode| pour un point est normalement de $3000$, c'est
+pourquoi \TeX\ met habituellement un espace suppl\'ementaire apr\`es un
+point
+% > to \ge here, too, as above.
+(voir la r\`egle ci-dessus pour le cas $f\ge2000$). Les caract\`eres non
+lettre d'une liste horizontale, par exemple, les traits verticaux,
+agissent g\'en\'eralement comme des caract\`eres avec un facteur d'espace de
+$1000$.
+
+Vous pouvez changer le facteur d'espace explicitement en donnant une
+valeur num\'erique diff\'erente \`a |\spacefactor|. Vous pouvez \'egalement
+augmenter l'espacement normal entre les mots en donnant une valeur
+num\'erique diff\'erente \`a |\xspaceskip| ou \`a |\spaceskip|~:
+\ulist
+\li |\xspaceskip| sp\'ecifie le ressort utilis\'e quand $f\ge2000$~;
+dans le cas o\`u
+|\xspaceskip| est \`a z\'ero, les r\`egles normales s'appliquent.
+\li |\spaceskip| sp\'ecifie le ressort utilis\'e quand $f<2000$ ou bien
+quand \hbox{|\xspaceskip|} est \`a z\'ero~; si |\spaceskip| est \`a z\'ero, les
+r\`egles normales s'appliquent. L'\'etirement et le r\'etr\'ecissement du
+ressort |\spaceskip|, comme le ressort ordinaire entre les mots, est
+modifi\'e selon la valeur de $f$.
+\endulist
+Voir \knuth{page~76}{88--89} pour les r\`egles pr\'ecises que \TeX\ utilise pour
+calculer le \minref{ressort} entre les mots et \knuth{pages~285--287}{331--334}
+pour les ajustements faits \`a |\spacefactor| apr\`es diff\'erents items dans
+une liste horizontale.
+\eix^^{espace//inter-mots}
+\enddesc
+
+%==========================================================================
+\section {Centrer et justifier les lignes}
+
+\begindesc
+\bix^^{centrage}
+\bix^^{cadr\'e \`a gauche}
+\bix^^{cadr\'e \`a droite}
+\bix^^{justification}
+\easy\cts centerline {\<argument>}
+\cts leftline {\<argument>}
+\cts rightline {\<argument>}
+\explain
+La commande |\centerline| produit un \minref{hbox} aussi large que
+la ligne courante et place \<argument> au centre de la bo\^\i te. Les
+commandes |\leftline| et |\rightline| sont analogues~; elles placent
+\<argument> au bord gauche ou droite de la bo\^\i te. Si vous voulez
+appliquer une de ces commandes \`a plusieurs lignes cons\'ecutives, vous
+devez l'appliquer \`a chacune individuellement. Voir
+\xrefpg{eplaincenter} pour une autre approche.
+
+N'utilisez pas ces commandes dans un paragraphe---si vous le faites,
+\TeX\ ne pourra probablement pas couper le paragraphe en lignes et se
+plaindra au sujet d'un overfull hbox.
+\example
+\centerline{Grand Central Station}
+\leftline{left of Karl Marx}
+\rightline{right of Genghis Khan}
+|
+\produces
+\centerline{Grand Central Station}
+\leftline{left of Karl Marx}
+\rightline{right of Genghis Khan}
+
+\eix^^{centrage}
+\eix^^{cadr\'e \`a gauche}
+\eix^^{cadr\'e \`a droite}
+\eix^^{justification}
+
+\endexample
+\enddesc
+
+\begindesc
+\easy\cts line {\<argument>}
+\explain
+Cette commande produit une \minref{hbox} contenant l'\<argument>. Cette
+hbox est exactement aussi large que la ligne courante, c'est-\`a-dire,
+qu'elle s'\'e\-tend de la marge droite \`a la gauche.
+\example
+\line{ugly \hfil suburban \hfil sprawl}
+% Without \hfil you'd get an `underfull box' from this.
+|
+\produces
+\line{ugly \hfil suburban \hfil sprawl}%
+\endexample
+
+\enddesc
+
+\begindesc
+^^{texte recouvrant}
+\cts llap {\<argument>}
+\cts rlap {\<argument>}
+\explain
+Ces commandes vous permettent de produire un texte qui recouvre celui
+qui est \`a gauche ou \`a droite de la position actuelle. |\llap| recule
+par la largeur de l'\<argument> et puis compose l'\<argument>. Le
+|\rlap| est semblable, sauf qu'il compose l'\<argument> d'abord et
+recule. |\llap| et |\rlap| sont utiles pour placer du texte en dehors
+des marges courantes. |\llap| et |\rlap| effectuent leur travail en
+cr\'eant une \minref{box} de largeur z\'ero.
+
+Vous pouvez \'egalement utiliser |\llap| ou |\rlap| pour construire des
+caract\`eres sp\'eciaux par ^{surimpression}, mais ne l'essayez pas \`a
+moins d'\^etre s\^ur que les caract\`eres que vous utilisez aient la m\^eme
+largeur (ce qui est le cas pour une police \`a espacement fixe telle que
+^|cmtt10|, la Computer Modern $10$-points ^{police de type machine \`a
+\'ecrire})..
+^^{police Computer Modern}
+\example
+\noindent\llap{off left }\line{\vrule $\Leftarrow$
+left margin of examples\hfil right margin of examples
+$\Rightarrow$\vrule}\rlap{ off right}
+|
+\produces
+\noindent\llap{off left }\line{\vrule $\Leftarrow$
+left margin of examples\hfil right margin of examples
+$\Rightarrow$\vrule}\rlap{ off right}
+\endexample
+
+%\example
+%{\tt O\llap{!|}}
+%|
+%\produces
+%{\cm \tt O\llap{\char `|}}
+%\endexample
+
+\nobreak % don't lose the \see
+\enddesc
+
+\see |\hsize| (\xref{\hsize}).
+
+%==========================================================================
+\section {Formation des paragraphes}
+
+\subsection {d\'ebuter, finir et indenter des paragraphes}
+
+\begindesc
+\bix^^{paragraphes//formation}
+\ctspecial par \ctsxrdef{@par}
+\explain
+Cette commande termine un paragraphe et met \TeX\ dans le mode
+\minref{vertical}, pr\^et \`a ajouter plus d'articles sur la page.
+Puisque \TeX\ convertit une ligne blanche dans votre fichier source
+en un \minref{token} |\par|, vous n'avez normalement pas besoin de
+saisir |\par| explicitement pour finir un paragraphe.
+
+Un point important est que |\par| n'indique pas \`a \TeX\ de commencer
+un paragraphe~; il ne lui dit que de le finir. \TeX\ d\'ebute un
+paragraphe quand il est en mode vertical ordinaire (tel qu'il est
+apr\`es un |\par|) et rencontre un article en soi horizontal tel qu'une
+lettre. En tant qu'\'el\'ement du c\'er\'emonial de d\'ebut de paragraphe, \TeX\
+^^{paragraphes//d\'ebuter des}
+ins\`ere une quantit\'e d'espace vertical donn\'ee par le param\`etre
+|\parskip| (\xref{\parskip }) et indente le paragraphe par un espace
+horizontal donn\'e par |\parindent| (\xref{\parindent }).
+
+Vous pouvez normalement effacer tout l'espace inter-paragraphe
+produit avec |\par| en mettant la commande |\vskip -\lastskip|. Ceci
+peut \^etre utile quand vous \'ecrivez une \minref{macro} cens\'e travailler
+de la m\^eme mani\`ere si elle est pr\'ec\'ed\'ee ou non par une ligne blanche.
+
+Vous pouvez obtenir que \TeX\ prenne certaines mesures sp\'eciales au
+d\'ebut de chaque paragraphe en pla\c cant des instructions dans
+^|\everypar| (\xref\everypar).
+
+Voir \knuth{pages~283 et 286}{328 et 332} pour les effets pr\'ecis de |\par|.
+
+\example
+\parindent = 2em
+``Can you row?'' the Sheep asked, handing Alice a pair of
+knitting-needles as she was speaking.\par ``Yes, a little%
+---but not on land---and not with needles---'' Alice was
+starting to say, when suddenly the needles turned into oars.
+|
+\produces
+\parindent = 2em
+``Can you row?'' the Sheep asked, handing Alice a pair of
+knitting-needles as she was speaking.\par ``Yes, a little%
+---but not on land---and not with needles---'' Alice was
+starting to say, when suddenly the needles turned into oars.
+\endexample
+\enddesc
+
+\begindesc
+\cts endgraf {}
+\explain
+Cette commande est un synonyme de la commande primitive
+^|\par|. Elle est utile quand vous avez red\'efini ^|\par| mais voulez
+toujours avoir acc\`es \`a la d\'efinition originale de |\par|.
+\enddesc
+
+\begindesc
+\cts parfillskip {\param{ressort}}
+\explain
+^^{paragraphes//ressort \`a la fin des}
+Ce param\`etre d\'esigne le ressort horizontal que \TeX\ insert \`a la fin
+d'un paragraphe. La valeur par d\'efaut de |\parfillskip| est |0pt plus
+1fil|, qui fait que la derni\`ere ligne d'un paragraphe soit compl\'et\'ee
+de l'espace vide. Une valeur de |0pt| force \TeX\ \`a finir la derni\`ere
+ligne d'un paragraphe sur la marge gauche.
+\enddesc
+
+\bix^^{indentation}
+\begindesc
+\easy\cts indent {}
+\explain
+Si \TeX\ est en mode vertical, comme il l'est apr\`es avoir fini un
+paragraphe, cette commande ins\`ert le ressort inter-paragraphe
+^|\parskip|, met \TeX\ en mode horizontal, d\'ebute un paragraphe et
+indente ce paragraphe de |\parindent|. Si \TeX\ est d\'ej\`a en mode
+horizontal, cette commande produit simplement un espace blanc de
+largeur |\parindent|. Deux |\indent| \`a la suite produisent deux
+indentations.
+^^{indentation}
+
+Comme dans l'exemple ci-dessous, un |\indent| \`a un endroit o\`u \TeX\
+commencerait de toute fa\c con un paragraphe est superflu. Quand \TeX\
+est en mode vertical et voit une lettre ou une autre commande en soi
+horizontale, il commence un paragraphe en commutant vers le mode
+horizontal, fait un |\indent| et traite la commande horizontale.
+
+\example
+\parindent = 2em This is the first in a series of three
+paragraphs that show how you can control indentation. Note
+that it has the same indentation as the next paragraph.\par
+\indent This is the second in a series of three paragraphs.
+It has \indent an embedded indentation.\par
+\indent\indent This doubly indented paragraph
+is the third in the series.
+|
+\produces
+\parindent = 2em This is the first in a series of three
+paragraphs that show how you can control indentation. Note
+that it has the same indentation as the next paragraph.\par
+\indent This is the second in a series of three paragraphs.
+It has \indent an embedded indentation.\par
+\indent\indent This doubly indented paragraph
+is the third in the series.
+\endexample
+\enddesc
+
+
+\begindesc
+\easy\cts noindent {}
+\explain
+Si le \TeX\ est en mode vertical, comme il l'est apr\`es la fin d'un
+paragraphe, cette commande ins\`ert le ressort inter-paragraphe
+^|\parskip|, met \TeX\ dans le mode horizontal, et commence
+un paragraphe non indent\'e. Elle n'a aucun effet dans le mode horizontal,
+c'est-\`a-dire, dans un paragraphe. Commencer un paragraphe avec
+|\noindent| d\'ecommande ainsi l'indentation de |\parindent| qui se
+produirait normalement.
+
+^^{indentation}
+
+Une utilisation commune de |\noindent| est d'interdire l'indentation
+de la premi\`ere ligne d'un paragraphe quand le paragraphe suit un
+certain mat\'eriel affich\'e.
+
+\example
+\parindent = 1em
+Tied round the neck of the bottle was a label with the
+words \smallskip \centerline{EAT ME}\smallskip
+\noindent beautifully printed on it in large letters.
+|
+\produces
+\parindent = 1em
+Tied round the neck of the bottle was a label with the
+words \smallskip \centerline{EAT ME}\smallskip
+\noindent beautifully printed on it in large letters.
+\endexample
+\enddesc
+
+\margin{{\tt\\textindent} moved here from later in the section.}
+\begindesc
+\cts textindent {\<argument>}
+
+\explain
+^^{indentation}
+Cette commande indique \`a \TeX\ de commencer un paragraphe et de l'indenter
+de |\par!-indent|, comme d'habitude. \TeX\ alors justifie \`a droite
+l'\<argument> de l'indentation et le fait suivre d'un espace demi-cadratin
+(moiti\'e d'un cadratin). \PlainTeX\ utilise cette commande pour composer les
+notes de pied de page. (\xref\footnote) ^^{notes de pied de page//utiliser
+\b\tt\\textindent\e\ avec} et les articles dans les listes (voir |\item|,
+\xref\item).
+
+\example
+\parindent = 20pt \textindent{\raise 1pt\hbox{$\bullet$}}%
+You are allowed to use bullets in \TeX\ even if
+you don't join the militia, and many peace-loving
+typographers do so.
+|
+\produces
+\parindent = 20pt \textindent{\raise 1pt\hbox{$\bullet$}}%
+You are allowed to use bullets in \TeX\ even if
+you don't join the militia, and many peace-loving
+typographers do so.
+\endexample\enddesc
+
+\begindesc
+\cts parindent {\param{dimension}}
+
+\explain
+Ce \minref{param\`etre} indique la quantit\'e par laquelle la premi\`ere
+ligne de chaque paragraphe doit \^etre indent\'ee. ^^{indentation} Comme
+montr\'e dans l'exemple ci-dessous, placer |\parindent| et ^|\parskip| \`a
+z\'ero est une mauvaise id\'ee puisque alors les coupures de paragraphe ne
+sont plus \'evidentes.
+\example
+\parindent = 2em This paragraph is indented by 2 ems.
+\par \parindent=0pt This paragraph is not indented at all.
+\par Since we haven't reset the paragraph indentation,
+this paragraph isn't indented either.
+|
+\produces
+\parindent = 2em This paragraph is indented by 2 ems.
+\par \parindent=0pt This paragraph is not indented at all.
+\par Since we haven't reset the paragraph indentation,
+this paragraph isn't indented either.
+\endexample\enddesc
+
+\begindesc
+\cts everypar {\param{liste de token}}
+
+\explain
+\TeX\ ex\'ecute les commandes des \<token list> toutes les fois qu'il entre dans le mode
+horizontal, par exemple, quand il commence un paragraphe. Par d\'efaut
+|\everypar| est vide, mais vous pouvez prendre des mesures
+suppl\'ementaires au d\'ebut de chaque paragraphe en mettant des commandes
+pour ces actions dans un token list
+%
+% This \vglue makes the example overwrite the example, but since we are
+% not reprinting this page, it doesn't matter. For reasons I did not
+% attempt to track down, a page break happened before the example,
+% unlike in the first printing.
+%
+%\secondprinting{\vglue-48pt}
+et assigner ce token list \`a |\everypar|.
+\example
+\everypar = {$\Longrightarrow$\enspace}
+Now pay attention!!\par
+I said, ``Pay attention!!''.\par
+I'll say it again!! Pay attention!!
+|
+\produces
+\everypar = {$\Longrightarrow$\enspace}
+Now pay attention!\par
+I said, ``Pay attention!''.\par
+I'll say it again! Pay attention!
+\endexample
+\enddesc
+%\secondprinting{\vfill\eject}
+
+%==========================================================================
+\subsection {Formation de paragraphes entiers}
+
+\begindesc
+\margin{Cette commande \'etait aussi d\'ecrite dans le chapitre `Pages'. La
+description actuelle combine les deux anciennes descriptions.}
+\bix^^{coupures de ligne//et formation de paragraphe}
+\easy\cts hsize {\param{dimension}}
+
+\explain
+Ce \minref{param\`etre} indique la longueur courante de la ^{ligne}, c'est-\`a-dire,
+la largeur habituelle des lignes dans un paragraphe commen\c cant \`a la
+marge gauche. Beaucoup de commandes \TeX emploient
+implicitement la valeur de |\hsize|, comme par exemple,
+|\center!-line| (\xref{\centerline}) et |\hrule| (\xref{\hrule}). En changeant le |\hsize| dans un
+groupe vous pouvez changer la largeur des constructions produites par de
+telles commandes.
+
+Si vous placez |\hsize| dans un \minref{vbox} qui contient du texte, le
+vbox aura la largeur que vous aurez donn\'ee au |\hsize|.
+^^{vbox//largeur d\'etermin\'ee par \b\tt\\hsize\e}
+
+\PlainTeX\ fixe |\hsize| \`a |6.5in|.
+
+\example
+{\hsize = 3.5in % Set this paragraph 3.5 inches wide.
+The hedgehog was engaged in a fight with another hedgehog,
+which seemed to Alice an excellent opportunity for
+croqueting one of them with the other.\par}%
+|
+\produces
+{\hsize = 3.5in
+The hedgehog was engaged in a fight with another hedgehog,
+which seemed to Alice an excellent opportunity for croqueting
+one of them with the other.\par}%
+
+\doruler{\8\8\8\tick\1\tick\2\tick\1\tick\3}{3.5}{in}
+\nextexample
+\leftline{\raggedright\vtop{\hsize = 1.5in
+Here is some text that we put into a paragraph that is
+an inch and a half wide.}\qquad
+\vtop{\hsize = 1.5in Here is some more text that
+we put into another paragraph that is an inch and a
+half wide.}}
+|
+\produces
+\leftline{\raggedright\vtop{\hsize = 1.5in
+Here is some text that we put into a paragraph that is
+an inch and a half wide.}\qquad
+\vtop{\hsize = 1.5in Here is some more text that
+we put into another paragraph that is an inch and a
+half wide.}}
+\endexample
+\enddesc
+
+\begindesc
+\easy\cts narrower {}
+
+\explain
+^^{paragraphes//\'etroit}
+Cette commande donne des paragraphes plus \'etroits, en augmentant les marges
+gauches et droites de |\parindent|, l'^{indentation} de paragraphe
+courante. Elle r\'ealise ceci en augmentant |\leftskip| et |\rightskip| de
+|\parindent|. Normalement vous placez |\narrower| au d\'ebut d'un
+\minref{groupe} contenant les paragraphes que vous voulez rendre plus
+\'etroits. Si vous oubliez d'enfermer |\narrower| dans un groupe, vous
+constaterez que tout le reste de votre document aura des paragraphes
+\'etroits.
+
+|\narrower| n'affecte que les paragraphes qui terminent apr\`es que vous
+l'ayez appel\'e. Si vous terminez un groupe |\narrower| avant d'avoir fini un
+paragraphe, \TeX\ ne rendra pas ce paragraphe plus \'etroit.
+
+\example
+{\parindent = 12pt \narrower\narrower\narrower
+This is a short paragraph. Its margins are indented
+three times as much as they would be
+had we used just one ``narrower'' command.\par}
+|
+\produces
+{\parindent = 12pt \narrower\narrower\narrower
+This is a short paragraph. Its margins are indented
+three times as much as they would be
+had we used just one ``narrower'' command.\par}
+\endexample\enddesc
+
+\begindesc
+\cts leftskip {\param{ressort}}
+\cts rightskip {\param{ressort}}
+
+\explain
+Ces param\`etres indiquent \`a \TeX\ combien de ressort placer aux extr\'emit\'es
+gauches et droites de chaque ligne du paragraphe courant. Nous n'expli\-%
+querons que le fonctionnement de |\leftskip| puisque |\rightskip| est
+similaire.
+
+^^{indentation} Vous pouvez augmenter la marge gauche en pla\c cant
+|\leftskip| \`a une \minref{dimension} diff\'erente de z\'ero. Si vous donnez \`a
+|\leftskip| un certain \'etirement, vous pouvez produire du texte ^{cadr\'e \`a
+droite}, c'est-\`a-dire, du texte qui a une marge gauche in\'egale.
+
+Normalement, vous devriez enfermer tout \minref{assignement} \`a |\leftskip|
+dans un \minref{groupe} avec le texte affect\'e afin d'emp\^echer son effet de
+continuer jusqu'\`a la fin de votre document. Cependant, il est injustifi\'e de
+changer la valeur de |\leftskip| \`a l'int\'erieur d'un groupe qui est, lui
+aussi, contenu dans un paragraphe---la valeur de |\leftskip| \`a la
+\emph{fin} d'un paragraphe est celle qui d\'etermine comment \TeX\ coupera le
+paragraphe en lignes. \minrefs{line break}
+
+\example
+{\leftskip = 1in The White Rabbit trotted slowly back
+again, looking anxiously about as it went, as if it had
+lost something. {\leftskip = 10in % has no effect
+It muttered to itself, ``The Duchess!! The Duchess!! She'll
+get me executed as sure as ferrets are ferrets!!''}\par}%
+|
+\produces
+{\leftskip = 1in The White Rabbit trotted slowly back
+again, looking anxiously about as it went, as if it had
+lost something. {\leftskip = 10in % has no effect
+It muttered to itself, ``The Duchess! The Duchess!
+She'll get me executed as sure as ferrets are ferrets!''}\par}%
+\nextexample
+\pretolerance = 10000 % Don't hyphenate.
+\rightskip = .5in plus 2em
+The White Rabbit trotted slowly back again, looking
+anxiously about as it went, as if it had lost something.
+It muttered to itself, ``The Duchess!! The Duchess!! She'll
+get me executed as sure as ferrets are ferrets!!''
+|
+\produces
+\pretolerance = 10000 % Don't hyphenate.
+\rightskip = .5in plus 2em
+The White Rabbit trotted slowly back again, looking
+anxiously about as it went, as if it had lost something.
+It muttered to itself, ``The Duchess! The Duchess! She'll
+get me executed as sure as ferrets are ferrets!''
+\endexample
+\enddesc
+
+\begindesc
+\easy\cts raggedright {}
+\cts ttraggedright {}
+
+\explain
+Ces commandes font que \TeX\ compose votre document
+``^{cadr\'e \`a gauche}''. Les espaces inter-mots ont tous
+leur taille naturelle, c'est-\`a-dire, ils ont tous la m\^eme largeur et
+ne s'\'etirent ni se r\'etr\'ecissent.
+En cons\'equence, leur marge droite n'est g\'en\'eralement pas la m\^eme.
+L'alternative, qui est le comportement par d\'efaut de \TeX, est de composer
+votre document justifi\'e,
+^^{justification}
+c'est-\`a-dire, avec des marges gauches et droites uniformes.
+Dans du texte justifi\'e, les espaces inter-mots sont \'etir\'es pour
+aligner des marges de droite.
+Certains typographes pr\'ef\`erent cadrer \`a gauche parce que
+cela \'evite des ``rivi\`eres'' distractives d'espace sur la page imprim\'ee.
+\minrefs{justified text}
+
+Vous devez utiliser la commande |\ttraggedright| pour composer du texte dans
+une police non proportionnelle et la commande |\raggedright| command pour
+composer de texte dans toutes les autres polices.
+
+La plupart du temps vous voudrez appliquer ces commandes \`a un document entier,
+mais vous pouvez limiter leurs effets en les englobant
+dans un \minref{groupe}.
+\example
+\raggedright ``You couldn't have it if you {\it did\/}
+want it,'' the Queen said. ``The rule is, jam tomorrow
+and jam yesterday---but never jam {\it today\/}.''
+``It {\it must\/} come sometimes to `jam today,%
+thinspace'' Alice objected. ``No, it can't'', said the
+Queen. ``It's jam every {\it other\/} day: today isn't
+any {\it other\/} day.''
+|
+\produces
+\raggedright ``You couldn't have it if you {\it did\/}
+want it,'' the Queen said. ``The rule is, jam tomorrow
+and jam yesterday---but never jam {\it today\/}.''
+``It {\it must\/} come sometimes to `jam today,%
+'\thinspace'' Alice objected. ``No, it can't'', said the
+Queen. ``It's jam every {\it other\/} day: today isn't
+any {\it other\/} day.''
+\endexample
+\enddesc
+
+\begindesc
+\cts hang {}
+\explain
+Cette commande indente la seconde ligne et les suivantes d'un paragraphe
+de |\parindent|, l'^{indentation} du paragraphe.
+(\xref{\parindent}).
+Puisque la premi\`ere ligne est d\'ej\`a indent\'ee par |\parindent|
+(\`a moins que vous ayez supprim\'e l'indentation avec |\noindent|), le
+paragraphe entier appara\^\i t \^etre indent\'e de |\parindent|.
+
+\example
+\parindent=24pt \hang ``I said you {\it looked} like an
+egg, Sir,'' Alice gently explained to Humpty Dumpty. ``And
+some eggs are very pretty, you know,'' she added.
+|
+\produces
+\parindent=24pt \hang ``I said you {\it looked} like an
+egg, Sir,'' Alice gently explained to Humpty Dumpty. ``And
+some eggs are very pretty, you know,'' she added.
+\endexample
+\enddesc
+
+\begindesc
+\cts hangafter {\param{nombre}}
+\cts hangindent {\param{dimension}}
+
+\explain
+Ces deux \minref{param\`etre}s associ\'es
+sp\'ecifient l'``^{indentation r\'emanente}'' pour un paragraphe.
+L'indentation r\'emanente indique \`a \TeX\ que certaines lignes
+du paragraphe doivent
+\^etre indent\'ees et que les lignes restantes doivent avoir leur largeur normale
+^^{indentation}
+|\hangafter| d\'etermine quelles lignes
+sont indent\'ees, tandis que |\hangindent| d\'etermine le montant d'inden\-tation
+et si elle appara\^\i t sur la gauche ou sur la droite~:
+
+\ulist
+\li Soit $n$ la valeur de |\hangafter|. Si $n < 0$,
+Les $-n$ premi\`eres lignes du paragraphe seront indent\'ees.
+Si $n\ge0$, toutes sauf les $n$ premi\`eres lignes du paragraphe seront
+indent\'ees.
+
+\li Soit $x$ la valeur de |\hangindent|.
+Si $x\ge0$, les lignes seront indent\'ees
+de $x$ \`a gauche. Si $x<0$, les lignes seront indent\'ees de $-x$ sur
+la droite.
+\endulist
+
+Quand vous sp\'ecifiez de l'indentation r\'emanente, elle ne s'applique
+qu'au paragraphe suivant (si vous \^etes en mode vertical) ou au
+paragraphe courant (si vous \^etes en mode horizontal).
+\TeX\ utilise les valeurs de |\hangafter| et |\hangindent| \`a la fin d'un
+paragraphe, quand il coupe ce paragraphe en lignes.\minrefs{line
+break}
+
+\`A la diff\'erence de la plupart des autres param\`etres de mise en forme de paragraphe,
+|\hangafter| et |\hangindent| sont r\'einitialis\'es
+au d\'ebut de chaque paragraphe, soit,
+$1$ pour |\hangafter| et $0$ pour |\hangindent|.
+Si vous voulez composer une suite de paragraphes avec de l'indentation r\'emanente,
+utilisez |\everypar| (\xref{\everypar}).
+^^|\everypar//pour indentation r\'emanente|
+Si vous sp\'ecifiez |\hangafter| et |\hangindent| de m\^eme que ^|\parshape|,
+\TeX\ ignorera |\hangafter| et |\hangindent|.
+
+\example
+\hangindent=6pc \hangafter=-2
+This is an example of a paragraph with hanging indentation.
+In this case, the first two lines are indented on the left,
+but after that we return to unindented text.
+|
+\produces
+\hangindent=6pc \hangafter=-2
+This is an example of a paragraph with hanging indentation.
+In this case, the first two lines are indented on the left,
+but after that we return to unindented text.
+\nextexample
+\hangindent=-6pc \hangafter=1
+This is another example of a paragraph with hanging
+indentation. Here, all lines after the first have been
+indented on the right. The first line, on the other
+hand, has been left unindented.
+|
+\produces
+\hangindent=-6pc \hangafter=1
+This is another example of a paragraph with hanging
+indentation. Here, all lines after the first have been
+indented on the right. The first line, on the other
+hand, has been left unindented.
+\endexample
+\enddesc
+
+\margin{{\tt\\textindent} has been moved to earlier in this section.}
+
+\begindesc
+\cts parshape {$n\; i_1 l_1\; i_2 l_2\; \ldots \;i_n l_n$}
+\explain
+Cette commande sp\'ecifie le gabarit des $n$ premi\`eres lignes d'un para\-graphe.
+Le prochain si vous \^etes en mode vertical et le paragraphe courant si vous
+\^etes en mode horizontal.
+Les $i$ et les $l$ sont toutes des dimensions. La premi\`ere ligne est indent\'ee de
+$i_1$ et a une longueur de $l_1$, la seconde ligne est indent\'ee de $i_2$ et a
+une longueur de $l_2$, et ainsi de suite.
+si le paragraphe a plus de $n$ lignes, la derni\`ere paire indentation\slash
+longueur est utilis\'ee pour les autres lignes.
+Pour parachever des effets sp\'eciaux comme celui montr\'e ici, vous devrez
+normalement faire beaucoup d'essais, ins\'erer des cr\'enages ici et l\`a et
+choisir votre mot pour remplir le gabarit.
+
+|\parshape|, comme ^|\hangafter| et ^|\hangindent|, n'est effectif que pour
+un paragraphe.
+Si vous sp\'ecifiez |\hangafter| et |\hangindent| de m\^eme que |\par!-shape|,
+\TeX\ ignorera ^|\hangafter| et ^|\hangindent|.
+\ifodd\pageno\vfill\eject\fi % so the wineglass is on a single page.
+
+\example
+% A small font and close interline spacing make this work
+\smallskip\font\sixrm=cmr6 \sixrm \baselineskip=7pt
+\fontdimen3\font = 1.8pt \fontdimen4\font = 0.9pt
+\noindent \hfuzz 0.1pt
+\parshape 30 0pt 120pt 1pt 118pt 2pt 116pt 4pt 112pt 6pt
+108pt 9pt 102pt 12pt 96pt 15pt 90pt 19pt 84pt 23pt 77pt
+27pt 68pt 30.5pt 60pt 35pt 52pt 39pt 45pt 43pt 36pt 48pt
+27pt 51.5pt 21pt 53pt 16.75pt 53pt 16.75pt 53pt 16.75pt 53pt
+16.75pt 53pt 16.75pt 53pt 16.75pt 53pt 16.75pt 53pt 16.75pt
+53pt 14.6pt 48pt 24pt 45pt 30.67pt 36.5pt 51pt 23pt 76.3pt
+Les vins de France et de Californie semblent \^etre
+les plus connus, mais ne sont pas les seuls bons vins.
+Les vins espagnols sont souvent sous-estim\'es,
+et des assez vieux peu\-vent \^etre disponibles \`a des
+prix raisonnables. Pour les vins espagnols, le mill\'esime
+n'est pas important, mais le climat de la r\'egion de
+Bordeaux varie selon les ann\'ees. Seuls certains sont
+bons. Ceux que
+vo\kern -.1pt us de\kern -.1pt v\kern -.1pt ez
+noter tr\`es tr\`es bons~:
+1962, 1964, 1966. 1958, 1959, 1960, 1961, 1964, 1966 sont de bons crus
+californiens. \`A boire avec mod\'eration~!
+|
+%\margin{Wineglass text replaced because of permissions problem.}
+\produces
+% A small font and close interline spacing make this work
+\smallskip\font\sixrm=cmr6 \sixrm \baselineskip=7pt
+\fontdimen3\font = 1.8pt \fontdimen4\font = 0.9pt
+\noindent \hfuzz 0.1pt
+\parshape 30 0pt 120pt 1pt 118pt 2pt 116pt 4pt 112pt 6pt 108pt 9pt 102pt
+12pt 96pt 15pt 90pt 19pt 84pt 23pt 77pt 27pt 68pt 30.5pt 60pt 35pt 52pt
+39pt 45pt 43pt 36pt 48pt 27pt 51.5pt 21pt 53pt 16.75pt 53pt 16.75pt
+53pt 16.75pt 53pt 16.75pt 53pt 16.75pt 53pt 16.75pt 53pt 16.75pt
+53pt 16.75pt 53pt 14.6pt 48pt 24pt 45pt 30.67pt 36.5pt 51pt 23pt 76.3pt
+Les vins de France et de Californie semblent \^etre
+les plus connus, mais ne sont pas les seuls bons vins.
+Les vins espagnols sont souvent sous-estim\'es,
+et des assez vieux peu\-vent \^etre disponibles \`a des
+prix raisonnables. Pour les vins espagnols, le mill\'esime
+n'est pas important, mais le climat de la r\'egion de
+Bordeaux varie selon les ann\'ees. Seuls certains sont
+bons. Ceux que
+vo\kern -.1pt us de\kern -.1pt v\kern -.1pt ez
+noter tr\`es tr\`es bons~:
+1962, 1964, 1966. 1958, 1959, 1960, 1961, 1964, 1966 sont de bons crus
+californiens. \`A boire avec mod\'eration~! \endexample
+\eix^^{indentation}
+\enddesc
+
+\begindesc
+\cts prevgraf {\param{nombre}}
+\explain
+En mode horizontal, ce param\`etre sp\'ecifie le
+nombre de lignes dans le paragraphe en cours~; en mode vertical,
+il sp\'ecifie le nombre de lignes dans le paragraphe pr\'ec\'edent.
+\TeX\ ne prend en compte |\prevgraf| qu'apr\`es avoir fini de couper du texte
+en ligne, c'est-\`a-dire, sur un affichage math\'ematique ou \`a la fin d'un
+paragraphe.
+Voir la \knuth{page~103}{121} pour plus de d\'etails \`a son propos.
+\enddesc
+
+\begindesc
+\cts vadjust {\rqbraces{\<mat\'eriel en mode vertical>}}
+\explain
+Cette commande ins\`ere le \<mat\'eriel en mode vertical> sp\'ecifi\'e juste apr\`es
+la ligne de sortie contenant la position o\`u la commande se trouve.
+^^{listes verticales//ins\'erer dans des paragraphes}
+Vous pouvez l'utiliser, par exemple, pour provoquer un saut de page ou
+ins\'erer de l'espace suppl\'ementaire apr\`es une certaine ligne.
+
+\example
+Some of these words are \vadjust{\kern8pt\hrule} to be
+found above the line and others are to be found below it.
+|
+\produces
+Some of these words are \vadjust{\kern8pt
+\hbox to \hsize{\hfil\vbox{\advance\hsize by -\parindent
+\hrule width \hsize}}}
+to be found above the line and others are to be found below it.
+\endexample
+\enddesc
+
+\see |\parindent| (\xref\parindent),
+|\parskip| (\xref\parskip) ainsi que |\every!-par| (\xref\everypar).
+\eix^^{coupures de ligne//et formation de paragraphe}
+\eix^^{paragraphes//formation}
+
+%==========================================================================
+\section {coupures de lignes}
+
+%==========================================================================
+\subsection {Encourager ou d\'ecourager les coupures de ligne}
+
+\begindesc
+\bix^^{coupures de ligne}
+\bix^^{coupures de ligne//encouragement ou d\'ecouragement}
+\ctspecial break {} \xrdef{hbreak}
+\explain
+Cette commande force une coupure de ligne,
+\`a moins que vous fassiez quelque chose pour remplir la ligne,
+Vous recevrez vraisemblablement une plainte ``underfull hbox''.
+|\break| peut aussi \^etre utilis\'e en mode vertical.
+\example
+Fill out this line\hfil\break and start another one.\par
+% Use \hfil here to fill out the line.
+This line is underfull---we ended it\break prematurely.
+% This line causes an `underfull hbox' complaint.
+|
+\produces
+\hbadness = 10000 % avoid hbadness message
+Fill out this line\hfil\break and start another one.\par
+% Use \hfil here to fill out the line.
+This line is underfull---we ended it\break prematurely.
+% This line causes an `underfull hbox' complaint.
+\endexample\enddesc
+
+\begindesc
+\ctspecial nobreak {} \xrdef{hnobreak}
+\explain
+Cette commande emp\^eche une coupure de ligne l\`a o\`u elle
+devrait se faire normalement.
+|\nobreak| peut aussi \^etre utilis\'ee en mode vertical.
+\example
+Sometimes you'll encounter a situation where
+a certain space\nobreak\qquad must not get lost.
+|
+\produces
+Sometimes you'll encounter a situation where
+a certain space\nobreak\qquad must not get lost.
+\endexample
+\enddesc
+
+\begindesc
+\ctspecial allowbreak {} \xrdef{hallowbreak}
+\explain
+Cette commande demande \`a \TeX\ d'autoriser une coupure de ligne l\`a o\`u elle
+n'arriverait pas normalement.
+Elle est plus souvent utile dans une formule math\'ematique, car \TeX\ est
+r\'eticent \`a couper de telles lignes. ^^{coupures de ligne//dans des formules math\'ematiques}
+|\allowbreak| peut aussi \^etre utilis\'ee en mode vertical.
+\example
+Under most circumstances we can state with some confidence
+that $2+2\allowbreak=4$, but skeptics may disagree.
+\par For such moronic automata, it is not difficult to
+analyze the input/\allowbreak output behavior in the limit.
+|
+\produces
+Under most circumstances we can state with some confidence
+that $2+2\allowbreak=4$, but skeptics may disagree.
+\par For such moronic automata, it is not difficult to
+analyze the input/\allowbreak output behavior in the limit.
+\endexample\enddesc
+
+\begindesc
+\ctspecial penalty {\<nombre>} \xrdef{hpenalty}
+\explain
+Cette commande produit un \'el\'ement de \minref{p\'enalit\'e}.
+L'\'el\'ement de p\'enalit\'e rend \TeX\ plus ou moins d\'esireux de couper une ligne
+\`a l'endroit o\`u cet \'el\'ement est plac\'e.
+Une p\'enalit\'e n\'egative, c'est-\`a-dire, un bonus, encourage une coupure de ligne~;
+une p\'enalit\'e positive d\'ecourage une coupure de ligne.
+Une p\'enalit\'e de $10000$ ou plus emp\^eche une coupure quelle qu'elle soit,
+tandis qu'une p\'enalit\'e de $-10000$ ou moins force une coupure.
+|\penalty| peut aussi \^etre utilis\'ee en mode vertical.
+%\secondprinting{\vfill\eject}
+\example
+\def\break{\penalty -10000 } % as in plain TeX
+\def\nobreak{\penalty 10000 } % as in plain TeX
+\def\allowbreak{\penalty 0 } % as in plain TeX
+|
+\endexample
+\enddesc
+
+{\vglue-\baselineskip\vskip0pt}
+\begindesc
+\cts obeylines {}
+\explain
+\TeX\ normalement traite une fin de ligne comme un espace.
+|\obeylines| demande \`a \TeX\ de traiter chaque fin de ligne comme
+une fin de paragraphe, for\c cant ainsi une coupure de ligne.
+|\obeylines| est souvent utile quand vous composez un po\`eme ou
+un programme informatique.
+^^{vers, composer des}^^{po\'esie, composer de la}^^{programmes informatiques, composer des}
+Si quelques lignes sont plus longues que la longueur de ligne r\'eelle
+(|\hsize|\tminus|\parindent|),
+sinon,
+vous aurez une coupure de ligne suppl\'ementaire dans ces lignes.
+
+Parce que \TeX\ ins\`ere le ressort |\parskip| (\xref\parskip)
+entre des lignes contr\^ol\'ees par |\obeylines| (puisqu'il pense que chaque
+ligne est un paragraphe), vous devrez normalement mettre |\parskip| \`a z\'ero
+quand vous utiliserez |\obeylines|.
+
+Vous pouvez utiliser la commande ^|\obeyspaces| (\xref{\obeyspaces}) pour que
+\TeX\ prenne en compte tous les espaces d'une ligne. |\obeylines| et |\obey!-spaces|
+sont souvent utilis\'ees ensemble.
+\example
+\obeylines
+``Beware the Jabberwock, my son!!
+\quad The jaws that bite, the claws that catch!!
+Beware the Jubjub bird, and shun
+\quad The frumious Bandersnatch!!''
+|
+\produces
+\obeylines
+``Beware the Jabberwock, my son!
+\quad The jaws that bite, the claws that catch!
+Beware the Jubjub bird, and shun
+\quad The frumious Bandersnatch!''
+\endexample
+\enddesc
+
+%\secondprinting{\vglue-\baselineskip\vskip0pt}
+
+\begindesc
+\easy\cts slash {}
+\explain
+Cette commande produit un ^{slash} (/) et pr\'evient aussi \TeX\ qu'il peut
+couper la ligne apr\`es le slash, si n\'ecessaire.
+\example
+Her oldest cat, while apparently friendly to most people,
+had a Jekyll\slash Hyde personality when it came to mice.
+|
+\produces
+Her oldest cat, while apparently friendly to most people,
+had a Jekyll\slash Hyde personality when it came to mice.
+\endexample
+\eix^^{coupures de ligne//encouragement ou d\'ecouragement}
+\enddesc
+
+%\secondprinting{\vfill\eject}
+
+
+%==========================================================================
+\subsection {param\`etres de coupure de lignes}
+
+\begindesc
+\bix^^{coupures de ligne//param\`etres affectant les}
+%
+\cts pretolerance {\param{nombre}}
+\cts tolerance {\param{nombre}}
+\explain
+Ces param\`etres d\'eterminent la \minref{m\'ediocrit\'e} que \TeX\ tol\`erera
+sur chaque ligne quand il choisit des coupures de ligne
+pour un paragraphe.
+La m\'ediocrit\'e est une mesure de combien l'espacement inter-mot d\'evie de
+l'id\'eal.
+|\pretolerance| sp\'ecifie la m\'ediocrit\'e tol\'erable pour
+des coupures de ligne sans c\'esure~;
+|\tolerance| sp\'ecifie la m\'ediocrit\'e tol\'erable pour des coupures de ligne
+avec c\'esure.
+La m\'ediocrit\'e tol\'erable peut \^etre d\'epass\'ee de deux fa\c cons~:
+un ligne est trop serr\'ee (les espaces inter-mots sont trop
+petits) ou trop l\^ache (les espaces inter-mots sont trop grands).
+
+\ulist
+\li Si \TeX\ doit faire une ligne trop rel\^ach\'ee, il
+se plaint d'un ``underfull hbox''.
+\li Si \TeX\ doit faire une ligne trop resserr\'ee,
+il laisse la ligne d\'epasser dans la marge droite et
+se plaint d'un ``overfull \minref{hbox}''.
+\endulist
+
+\noindent \TeX\ choisit des coupures de ligne selon les \'etapes suivantes~:
+\olist
+\li Il essaye de choisir des coupures de ligne sans c\'esures.
+Si aucune des lignes r\'esultantes n'a de m\'edio\-crit\'e d\'epassant |\pretolerance|,
+les coupures de ligne sont accept\'ees et le paragraphe peut \^etre fait.
+\li Sinon, il essaye un autre jeu de coupures de ligne, cette fois
+en autorisant les c\'esures. Si aucune des lignes r\'esultantes n'a une m\'edio\-crit\'e
+d\'epassant |\tolerance|, le nouveau jeu de coupures de ligne est
+acceptable et le paragraphe peut maintenant \^etre fait.
+\li Autrement, il ajoute ^|\emergencystretch| (voir plus bas) \`a l'\'etire\-ment
+de chaque ligne et essaye encore.
+\li Si aucun de ces essais n'a produit de jeu de coupures de ligne acceptable,
+il fait le paragraphe avec un ou plusieurs ``overfull hbox''
+et s'en plaint.
+\endolist
+
+\PlainTeX\ initialise |\tolerance| \`a $200$ et |\pretolerance| \`a $100$.
+Si vous mettez |\tolerance| \`a $10000$, \TeX\
+devient infiniment tol\'erant et accepte tout espacement, quelque soit sa laideur
+(\`a moins qu'il rencontre un mot qui ne tienne pas sur une ligne, m\^eme avec
+c\'esure). Ainsi en changeant |\tolerance| vous pouvez \'eviter des
+``overfull hbox'' et ``underfull hbox'', mais au prix de mauvais espacements.
+En rendant |\pretolerance| plus grand vous pouvez faire que \TeX\ \'evite les
+c\'esure et s'ex\'ecute aussi plus rapidement,
+mais, encore, au prix d'\'eventuels mauvais espacements.
+Si vous mettez |\pretolerance| \`a $-1$,
+\TeX\ n'essayera m\^eme pas de faire le paragraphe sans c\'esure.
+
+Le param\`etre ^|\hbadness| (\xref \hbadness) d\'etermine le niveau de m\'ediocrit\'e
+que \TeX\ tol\`erera avant de se plaindre, mais |\hbadness| n'affecte pas
+la mani\`ere dont \TeX\ compose votre document.
+Le param\`etre ^|\hfuzz| (\xref \hfuzz) d\'etermine le montant dont
+une hbox peut d\'epasser sa largeur sp\'ecifi\'ee avant que \TeX\ la consid\`ere
+erron\'ee.
+\enddesc
+
+\begindesc
+\cts emergencystretch {\param{dimension}}
+\explain
+En mettant ce param\`etre sup\'erieur \`a z\'ero,
+vous pouvez rendre plus facile \`a \TeX\ la
+composition de votre document sans g\'en\'erer d'``overfull hbox''.
+^^{overfull boxes}
+C'est une meilleur alternative \`a |\tolerance=10000|,
+car cela tend \`a produire des lignes r\'eellement laides.
+Si \TeX\ ne peut pas composer un paragraphe sans d\'epasser ^|\tolerance|,
+il tentera encore, en ajoutant |\emergencystretch| \`a l'\'etirement de chaque
+ligne.
+L'effet du changement est de r\'eduire la m\'ediocrit\'e de chaque ligne,
+autorisant \TeX\ \`a faire des espaces plus larges qu'ils auraient \'et\'e autrement
+et ainsi de choisir des coupures de ligne qui seront aussi
+bons que possible selon les circonstances.
+\enddesc
+
+\begindesc
+\cts looseness {\param{nombre}}
+\explain
+\minrefs{line break}
+Ce param\`etre vous donne un moyen
+de changer le nombre total de lignes dans un paragraphe par rapport \`a celui
+qu'il aurait \'et\'e de mani\`ere optimale.
+|\looseness| est ainsi nomm\'e parce que c'est une mesure de combien perd le
+paragraphe, c'est-\`a-dire, combien d'espace suppl\'ementaire il contient.
+
+Normalement, |\looseness| est \`a $0$ et
+\TeX\ choisit des coupures de ligne selon sa mani\`ere habituelle. Mais si
+|\looseness| est \`a, disons, $3$, \TeX\ fait ainsi~:
+\olist
+\li Il choisit des coupures de ligne normalement, obtenant un paragraphe de $n$ lignes.
+\li Il \'ecarte ces coupures de ligne et
+tente de trouver un nouveau jeu de coupure de ligne
+qui donne le paragraphe en $n+3$ lignes.
+(Sans l'\'etape pr\'ec\'edente, \TeX\ ne saurait pas la valeur de $n$.)
+\li Si l'essai pr\'ec\'edent donne des lignes dont la m\'ediocrit\'e d\'epasse
+|\tol!-er!-ance|,
+^^|\tolerance|
+il tente d'obtenir $n+2$ lignes---et si cela \'echoue aussi,
+$n+1$ lignes, et finalement $n$ lignes encore.
+\endolist
+\noindent
+De m\^eme, si |\looseness| est \`a $-n$,
+\TeX\ tente de faire le paragraphe avec $n$ lignes de moins que la normale.
+Le moyen le plus simple pour \TeX\ de faire un paragraphe plus long d'une ligne est de mettre
+un seul mot sur la ligne en plus. vous pouvez emp\^echer cela en
+mettant un tilde (\xref{@not}) entre les deux derniers mots du paragraphe.
+
+Mettre |\looseness| est le meilleur moyen de forcer un paragraphe
+\`a occuper un nombre de lignes donn\'e.
+Le mettre \`a une valeur n\'egative est pratique quand vous essayez
+d'augmenter la quantit\'e de texte que vous pouvez placer sur une page.
+Similairement, le mettre \`a une valeur positive
+est pratique quand vous essayez de diminuer la quantit\'e de texte sur
+une page.
+
+\TeX\ remet |\looseness| \`a $0$ quand il termine un paragraphe, apr\`es avoir
+coup\'e le paragraphe en lignes.
+Si vous voulez changer le rel\^achement de plusieurs paragraphes, vous devez
+le faire individuellement pour chacun ou mettre le changement dans |\everypar|
+\ctsref\everypar.
+^^|\everypar//pour fixer \b\tt\\looseness\e|
+\enddesc
+
+\begindesc
+\cts linepenalty {\param{nombre}}
+\explain
+\minrefs{line break}
+Ce param\`etre sp\'ecifie les \minref{d\'em\'erites} que \TeX\ r\'epartit pour chaque coupure de ligne
+quand il coupe un paragraphe en lignes.
+La p\'enalit\'e est ind\'epen\-dante d'o\`u la coupure de ligne a lieu.
+Augmenter la valeur
+de ce param\`etre demande \`a \TeX\ d'essayer plus fortement de mettre un paragraphe avec
+un nombre minimum de lignes, m\^eme au co\^ut d'autres consid\'erations esth\'etiques
+comme \'eviter des espacements inter-mots excessivement res\-serr\'es.
+Les d\'em\'erites sont en unit\'es de \minref{m\'ediocrit\'e} au carr\'e, donc
+vous devez assigner une valeur plut\^ot large \`a ce param\`etre (dans les
+milliers) pour qu'elle ait un quelconque effet.
+\PlainTeX\ met |\linepenalty| \`a $10$.
+\enddesc
+
+\begindesc
+\cts adjdemerits {\param{nombre}}
+\explain
+\minrefs{line break}
+^^{c\'esure//p\'enalit\'es pour}
+{\tighten
+Ce param\`etre sp\'ecifie des \minref{d\'em\'erites} additionnels que \TeX\ attache au
+point de coupure entre deux lignes adjacentes qui sont
+``incompatibles visuellement''.
+De telles paires de lignes font qu'un paragraphe appara\^\i t in\'egal.
+Les incompatibilit\'es sont \'evalu\'ees en termes d'\'etroitesse ou de rel\^achement
+de lignes~:
+}
+\olist\compact
+\li Une ligne est resserr\'ee si son \minref{ressort} doit se r\'etr\'ecir d'au moins $50\%$.
+\li Une ligne est d\'ecente si sa m\'ediocrit\'e est de $12$ ou moins.
+\li Une ligne est rel\^ach\'ee si son \minref{ressort} doit s'\'etirer d'au moins $50\%$.
+\li Une ligne est tr\`es rel\^ach\'ee si son ressort doit tellement s'\'etirer
+que sa m\'ediocrit\'e d\'epasse $100$.
+\endolist
+Deux lignes adjacentes sont visuellement incompatibles
+si leurs cat\'ego\-ries ne sont pas adjacentes, c'est-\`a-dire, une ligne resserr\'ee
+est apr\`es une rel\^ach\'ee ou une ligne d\'ecente apr\`es une tr\`es rel\^ach\'ee.
+
+Les d\'em\'erites sont en unit\'es de \minref{m\'ediocrit\'e} au carr\'ee, donc
+vous devez assigner une valeur plut\^ot large \`a ce param\`etre (dans les
+milliers) pour qu'elle ait un quelconque effet.
+\PlainTeX\ met |\adjdemerits| \`a~$10000$.
+\enddesc
+
+\begindesc
+\bix^^{c\'esure//p\'enalit\'es pour}
+\cts exhyphenpenalty {\param{nombre}}
+\explain
+\minrefs{line break}
+Ce param\`etre sp\'ecifie la \minref{p\'enalit\'e} que \TeX\ attache \`a un
+point de coupure sur une c\'esure explicite comme celle de
+``helter-skelter''. Augmenter ce param\`etre a l'effet de d\'ecourager
+\TeX\ de finir une ligne sur une c\'esure explicite.
+\PlainTeX\ met |\exhyphenpenalty| \`a $50$.
+\enddesc
+
+\begindesc
+\cts hyphenpenalty {\param{nombre}}
+\explain
+\minrefs{line break}
+Ce param\`etre sp\'ecifie la \minref{p\'enalit\'e} que \TeX\ attache \`a un
+point de coupure sur une c\'esure implicite.
+Des c\'esures implicites peuvent survenir du dictionnaire de c\'esure de \TeX\ ou
+de ^{c\'esures optionnelles} que vous avez ins\'er\'e avec |\-|~(\xref{\@minus}).
+^^|-//m\`ene \`a {\tt\\hyphenpenalty}|
+Augmenter ce param\`etre a l'effet de d\'ecourager
+\TeX\ de couper des mots.
+\PlainTeX\ met |\hyphenpenalty| \`a $50$.
+\enddesc
+
+\begindesc
+\cts doublehyphendemerits {\param{nombre}}
+\explain
+\minrefs{line break}
+{\tighten
+Ce param\`etre sp\'ecifie les \minref{d\'em\'erites} additionnels que \TeX\
+attache \`a un point de coupure quand ce point de coupure arrive \`a
+deux lignes cons\'ecu\-tives qui se terminent sur une c\'esure.
+Augmenter la valeur de ce param\`etre d\'ecourage
+\TeX\ de c\'esurer deux lignes \`a suivre.
+Les d\'em\'erites sont en unit\'es de \minref{m\'ediocrit\'e} au carr\'e, donc
+vous devez assigner une valeur plut\^ot large \`a ce param\`etre (dans les
+milliers) pour qu'elle ait un quelconque effet.
+\PlainTeX\ met |\doublehyphendemerits| \`a $10000$.
+}
+\enddesc
+
+\begindesc
+\cts finalhyphendemerits {\param{nombre}}
+\explain
+\minrefs{line break}
+{\tighten
+Ce param\`etre sp\'ecifie les \minref{d\'em\'erites} additionnels que \TeX\
+attache \`a un point de coupure qui fait que l'avant derni\`ere ligne d'un
+paragraphe se termine avec une c\'esure.
+Une telle c\'esure est g\'en\'eralement consid\'er\'ee inesth\'etique
+parce que l'espace blanc \'eventuel provoqu\'e par une derni\`ere ligne courte
+la rend m\'eprisable.
+Augmenter la valeur de ce param\`etre d\'ecourage
+\TeX\ de finir l'avant derni\`ere ligne avec une c\'esure.
+Les d\'em\'erites sont en unit\'es de \minref{m\'ediocrit\'e} au carr\'e, donc
+vous devez assigner une valeur plut\^ot large \`a ce param\`etre (dans les
+milliers) pour qu'elle ait un quelconque effet.
+\PlainTeX\ met |\finalhyphendemerits| \`a $5000$.
+}
+\eix^^{c\'esure//p\'enalit\'es pour}
+\enddesc
+
+\begindesc
+\cts binoppenalty {\param{nombre}}
+\explain
+^^{op\'erateurs}
+Ce param\`etre sp\'ecifie la p\'enalit\'e d'une coupure d'une formule math\'e\-ma\-tique
+apr\`es un op\'erateur binaire quand la formule appara\^\i t dans un paragraphe.
+\PlainTeX\ met |\binoppenalty| \`a $700$.
+\enddesc
+
+\begindesc
+\cts relpenalty {\param{nombre}}
+\explain
+^^{relations}
+Ce param\`etre sp\'ecifie la p\'enalit\'e pour une coupure d'une formule math\'e\-ma\-tique
+apr\`es une relation quand la formule appara\^\i t dans un paragraphe.
+\PlainTeX\ met |\rel!-penal!-ty| \`a~$500$.
+
+\eix^^{coupures de ligne//param\`etres affectant les}
+\enddesc
+
+%==========================================================================
+\subsection {C\'esure}
+
+\begindesc
+\bix^^{c\'esure}
+%
+\easy\ctspecial - \ctsxrdef{@minus}
+\explain
+La commande |\-| ins\`ere une ``c\'esure optionnelle''
+^^{c\'esures optionnelles}
+dans un mot.
+La c\'esure optionnelle autorise \TeX\ de couper le mot \`a cet
+endroit. \TeX\ n'est pas oblig\'e de couper l\`a---il ne le fera
+que s'il le faut. Cette commande est utile quand un mot
+qui appara\^\i t une ou deux fois dans votre document
+doit \^etre coup\'e,
+mais que \TeX\ ne peut pas trouver de point de coupure appropri\'ee de lui-m\^eme.
+\example
+Alice was exceedingly reluctant to shake hands first
+with either Twee\-dle\-dum or Twee\-dle\-dee, for
+fear of hurting the other one's feelings.
+|
+\produces
+Alice was exceedingly reluctant to shake hands first
+with either Twee\-dle\-dum or Twee\-dle\-dee, for
+fear of hurting the other one's feelings.
+\endexample
+\enddesc
+
+\begindesc
+\cts discretionary {\rqbraces{\<pre-break text>}
+ \rqbraces{\<post-break text>}
+ \rqbraces{\<no-break text>}}
+\explain
+\minrefs{line break}
+^^{c\'esure}
+Cette commande sp\'ecifie une ``coupure optionnelle'', autrement dit,
+un endroit o\`u \TeX\ peut couper une ligne.
+Elle dit aussi \`a \TeX\ quel texte mettre de chaque cot\'e de la coupure.
+\ulist
+\li Si \TeX\ ne doit pas couper l\`a, il utilise le \<no-break text>.
+\li Si \TeX\ doit couper l\`a, il met le \<pre-break text> juste avant
+la coupure et le \<post-break text> juste apr\`es la coupure.
+\endulist
+\noindent
+Comme avec |\-|,
+\TeX\ n'est pas oblig\'e de couper une ligne sur une coupure optionnelle.
+En fait, |\-| est normalement \'equivalent \`a |\discretionary!allowbreak{-}{}{}|.
+
+Parfois, \TeX\ ins\`ere des coupures optionnelles de lui-m\^eme.
+Par ex\-emple, il ins\`ere |\discretionary!allowbreak{}{}{}| apr\`es
+une c\'esure explicite ou un tiret.
+
+{\hyphenchar\tentt=-1 % needed to avoid weirdnesses
+\example
+% An ordinary discretionary hyphen (equivalent to \-):
+\discretionary{-}{}{}
+% A place where TeX can break a line, but should not
+% insert a space if the line isn't broken there, e.g.,
+% after a dash:
+\discretionary{}{}{}
+% Accounts for German usage: `flicken', but `flik-
+% ken':
+German ``fli\discretionary{k-}{k}{ck}en''
+|
+^^{c\'esure//allemande}
+\endexample}
+
+\enddesc
+
+\begindesc
+\cts hyphenation {\rqbraces{\<mot>\thinspace\vs\ $\ldots$\ \vs
+ \thinspace\<mot>}}
+\explain
+\TeX\ garde un dictionnaire des exceptions de ses r\`egles de ^{c\'esure}.
+Chaque entr\'ee du dictionnaire indique comment un mot particulier doit
+\^etre coup\'e.
+La commande |\hyphenation| ajoute des mots au dictionnaire.
+Son argument est une suite de mots s\'epar\'ee par des blancs.
+Les lettres majuscules et minuscules sont \'equivalentes.
+Les c\'esures dans chaque mot indiquent les endroits
+o\`u \TeX\ peut couper ce mot.
+Un mot sans c\'esure ne sera jamais coup\'e.
+Dans tous les cas, vous pouvez outrepasser le dictionnaire de c\'esure en
+utilisant |\-| pour une occurrence particuli\`ere d'un mot.
+Vous devez produire toutes les formes grammaticales d'un mot
+que vous voulez que \TeX\ coupe, c'est-\`a-dire, le singulier et le pluriel.
+
+\example
+\hyphenation{Gry-phon my-co-phagy}
+\hyphenation{man-u-script man-u-scripts piz-za}
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts uchyph {\param{nombre}}
+\explain
+Une valeur positive de |\uchyph| (c\'esure majuscule)
+permet d\'ecouper des mots, comme des noms propres,
+qui commencent par une lettre capitale.
+Une valeur \`a z\'ero ou n\'egative
+inhibe de telle coupure. \PlainTeX\ met |\uchyph| \`a $1$,
+donc \TeX\ essaye normalement de couper les mots qui commencent par une lettre capital.
+\enddesc
+
+\begindesc
+\cts showhyphens {\rqbraces{\<mot>\thinspace\vs\ $\ldots$\ \vs
+ \thinspace\<mot>}}
+\explain
+Cette commande n'est habituellement pas utilis\'ee dans des documents,
+mais vous pouvez l'utiliser sur votre terminal pour voir comment \TeX\
+couperait certains jeux de mots al\'eatoires.
+Les mots, avec les coupures visibles, apparaissent dans le log et sur
+votre terminal. Vous obtiendrez une plainte \`a propos d'une ``underfull
+hbox''---ignorez la.
+\example
+\showhyphens{threshold quizzical draughts argumentative}
+|
+\logproduces
+Underfull \hbox (badness 10000) detected at line 0
+[] \tenrm thresh-old quizzi-cal draughts ar-gu-men-ta-tive
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts language {\param{number}}
+\explain
+Des langages diff\'erents ont diff\'erents jeux de r\`egles de c\'esure.
+Ce para\-m\`etre d\'etermine le jeu de ^{r\`egles de c\'esure} que \TeX\ utilise.
+En changeant |\language| vous pouvez obtenir que \TeX\
+coupe des portions de texte ou des documents entiers en accord avec les
+r\`egles de c\'esure appropri\'ees \`a un langage particulier.
+^^{langues europ\'eennes}
+Votre ^{support local} sur \TeX\ vous dira si des
+jeux additionnels de r\`egles de c\'esure sont accessibles (derri\`ere celui
+pour l'anglais)
+et quelles sont les valeurs appropri\'ees de |\language|.
+La valeur par d\'efaut de |\language| est $0$.
+
+\TeX\ met le langage courant \`a $0$ au d\'ebut de tous les paragraphes,
+et compare |\language| au langage courant \`a chaque fois qu'il ajoute
+un caract\`ere au paragraphe courant.
+Si ce n'est pas le m\^eme, \TeX\ ajoute un ^{\elementextra} indiquant
+que le langage change.
+Cet \'el\'ement extraordinaire est la preuve pour les prochaines ex\'ecutions que les r\`egles de langage
+peuvent changer.
+\enddesc
+
+\begindesc
+\cts setlanguage {\<nombre>}
+\explain
+Cette commande met le langage courant \`a \<nombre>
+en ins\'erant le m\^eme \'el\'ement extraordinaire que vous obtiendrez en changeant
+^|\language|.
+En outre, elle ne change pas la valeur de |\language|.
+\enddesc
+
+\begindesc
+\cts lefthyphenmin {\param{nombre}}
+\cts righthyphenmin {\param{nombre}}
+\explain
+Ces param\`etres sp\'ecifient les plus petits fragments de mots que \TeX\ autorise
+\`a gauche et \`a droite d'un mot coup\'e.
+\PlainTeX\ les initialise par d\'efaut \`a $2$ et $3$ respectivement~;
+ce sont les valeurs recommand\'ees pour l'anglais.
+\enddesc
+
+\begindesc
+\bix^^{polices//caract\`eres de c\'esure pour}
+\cts hyphenchar {\<police>\param{nombre}}
+\explain
+\TeX\ n'utilise pas n\'ecessairement le caract\`ere `-' aux points de c\'esure.
+A la place, il utilise le |\hyphenchar| de la police courante, qui est
+habituellement `-' mais pas n\'ecessairement. Si une police a une valeur
+ |\hyphenchar| n\'egative,
+\TeX\ ne coupe pas de mots dans cette police.
+
+Notez que \<police> est une s\'equence de contr\^ole
+qui nomme une police, pas un \<nom de police> qui nomme des fichiers de
+police.
+Attention~:
+un assignement \`a |\hyphenchar| n'est \emph{pas} r\'einitialis\'e \`a la fin
+d'un groupe.
+Si vous voulez changer |\hyphenchar| localement, vous devrez
+sauvegarder et restaurer sa valeur originale explicitement.
+
+\example
+\hyphenchar\tenrm = `-
+ % Set hyphenation for tenrm font to `-'.
+\hyphenchar\tentt = -1
+ % Don't hyphenate words in font tentt.
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts defaulthyphenchar {\param{nombre}}
+\explain
+Quand \TeX\ lit le fichier de m\'etriques
+^^{fichiers de m\'etriques//tiret de c\'esure par d\'efaut dans}
+pour une police en r\'eponse \`a une commande
+^|\font|, il met le ^|\hyphenchar| de la police dans
+|\default!-hyphen!-char|.
+Si la valeur de |\default!-hyphen!-char| n'est
+pas dans la fourchette $0$--$255$ quand vous chargez une police,
+\TeX\ ne coupera aucun mot dans cette police \`a moins que vous
+outrepassiez la d\'ecision en mettant le |\hyphenchar| de la police apr\`es.
+\PlainTeX\ met |\default!-hyphen!-char| \`a $45$, le code \ascii\
+pour `|-|'.
+\example
+\defaulthyphenchar = `-
+ % Assume `-' is the hyphen, unless overridden.
+\defaulthyphenchar = -1
+ % Don't hyphenate, unless overridden.
+|
+\endexample
+
+\eix^^{polices//caract\`eres de c\'esure pour}
+\enddesc
+
+\see |\pretolerance| (\xref \pretolerance).
+\eix^^{c\'esure}
+\eix^^{coupures de ligne}
+
+%==========================================================================
+\section {Ent\^etes de section, listes et th\'eor\`emes}
+
+\begindesc
+^^{ent\^etes de section}
+\easy\ctspecial beginsection {\<argument>\thinspace{\bt\\par}}
+ \ctsxrdef{@beginsection}
+\explain
+Vous pouvez utiliser cette commande pour d\'ebuter une subdivision majeure de votre document.
+\<argument> est pr\'evu pour servir de titre de section.
+|\beginsection| amplifie \<argument>
+par de l'espace vertical suppl\'ementaire et le met en
+police grasse, justifi\'e \`a gauche.
+Vous pouvez produire le |\par| qui termine \<argument> avec une ligne blanche.
+\let\message = \gobble % Don't bother to tell us about Pig and Pepper.
+\example
+$\ldots$ till she had brought herself down to nine
+inches high.
+
+\beginsection Section 6. Pig and Pepper
+
+For a minute or two she stood looking at the house $\ldots$
+|
+\produces
+$\ldots$ till she had brought herself down to nine
+inches high.
+
+\beginsection Section 6. Pig and Pepper
+
+For a minute or two she stood looking at the house $\ldots$
+\endexample
+\enddesc
+
+\begindesc
+\cts item {\<argument>}
+\cts itemitem {\<argument>}
+\explain
+^^{listes d'\'el\'ements}
+Cette commande est utile pour cr\'eer des ^{listes d'\'el\'ements}. Tout le paragraphe
+suivant \<argument> est indent\'e de |\parindent|
+^^|\parindent//indentation pour listes d'\'el\'ements|
+(pour |\item|) ou par |2\parindent| (pour |\itemitem|).
+(Voir \xrefpg{\parindent} pour une explication de |\parindent|.)
+Ensuite \<argument>,
+suivi par un espace demi-cadratin, est plac\'e juste \`a
+la gauche du texte de la
+premi\`ere ligne du paragraphe pour qu'il tombe avec l'indentation du paragraphe
+comme sp\'ecifi\'e par |\parindent|.
+
+Si vous voulez inclure plus d'un
+paragraphe dans un \'el\'ement, mettez |\item{}| devant les paragraphes additionnels.
+\example
+{\parindent = 18pt
+\noindent Here is what we require:
+\item{1.}Three eggs in their shells,
+but with the yolks removed.
+\item{2.}Two separate glass cups containing:
+\itemitem{(a)}One-half cup {\it used} motor oil.
+\itemitem{(b)}One cup port wine, preferably French.
+\item{3.}Juice and skin of one turnip.}
+|
+\produces
+{\parindent = 18pt
+\noindent Here is what we require:
+\item{1.}Three eggs in their shells,
+but with the yolks removed.
+\item{2.}Two separate glass cups containing:
+\itemitem{(a)}One-half cup {\it used} motor oil.
+\itemitem{(b)}One cup port wine, preferably French.
+\item{3.}Juice and skin of one turnip.}
+\endexample
+\enddesc
+
+\begindesc
+\easy\ctspecial proclaim {\<argument>{\tt.}\vs\thinspace
+ \<texte g\'en\'eral>\thinspace{\bt\\par}}
+ \ctsxrdef{@proclaim}
+\explain
+^^{th\'eor\`emes}
+^^{lemmes}
+^^{hypoth\`eses}
+Cette commande ``proclame'' un th\'eor\`eme, un lemme, une hypoth\`ese, etc.
+Elle met \<argument> en police grasse et le paragraphe suivant en
+italique. \<arg\-u\-ment> doit \^etre suivi par un point et un token espace,
+qui servent \`a s\'eparer \<argument> du \<texte g\'en\'eral>.
+\<texte g\'en\'eral> est constitu\'e du texte jusqu'\`a la fronti\`ere du paragraphe suivant,
+sauf que vous pouvez inclure des paragraphes multiples en les mettant
+entre accolades et terminer un paragraphe apr\`es l'accolade droite fermante.
+\example
+\proclaim Theorem 1.
+What I say is not to be believed.
+
+\proclaim Corollary 1. Theorem 1 is false.\par
+|
+\produces
+\proclaim Theorem 1.
+What I say is not to be believed.
+
+\proclaim Corollary 1. Theorem 1 is false.\par
+\endexample
+\enddesc
+
+\enddescriptions
+\endchapter
+\byebye
+
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/fpreface.tex b/Master/texmf-dist/doc/plain/impatient-fr/fpreface.tex
new file mode 100644
index 00000000000..bf7f089f9bd
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/fpreface.tex
@@ -0,0 +1,158 @@
+% 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
+\frontchapter{Pr\'eface}
+
+\TeX\ de Donald Knuth, un syst\`eme de composition automatis\'e,
+fournit presque tout ce qui est requis pour la composition de haute qualit\'e,
+aussi bien des math\'ematiques que du texte ordinaire. Il est particu\-li\`erement
+reconnu pour sa flexibilit\'e, ses c\'esures superbes et sa capacit\'e de choisir
+des coupures de ligne esth\'etiquement satisfaisantes. En raison de ses
+possibilit\'es extraordinaires, \TeX\ est devenu le syst\`eme de composition
+principal pour les math\'ematiques, les sciences et techniques et a \'et\'e
+adopt\'e comme norme par la soci\'et\'e math\'ematique am\'ericaine. Un
+programme compagnon, ^{\Metafont}, peut construire les lettres arbitraires
+comprenant, en particulier, tous les symboles qui pourraient \^etre
+n\'ecessaires dans les math\'ematiques. \TeX\ et \Metafont\ sont largement
+disponibles au sein de la communaut\'e scientifique et technologique et ont
+\'et\'e mis en application sur une vari\'et\'e d'ordinateurs. \TeX\ n'est pas
+parfait---il lui manque un support int\'egr\'e des graphiques et certains effets
+tels que les barres de ^{r\'evision} sont tr\`es difficiles \`a produire---%
+mais ces inconv\'enients sont loin d'\^etre sup\'erieurs \`a ses avantages.
+
+\thisbook\/ est pr\'evu pour servir aux scientifiques, math\'e\-ma\-ticiens,
+et typographes pour lesquels \TeX\ est un outil utile plut\^ot que d'un
+int\'er\^et primaire, aussi bien que pour les informaticiens qui ont un vif
+int\'er\^et pour \TeX\ dans son propre int\'er\^et. Nous avons l'intention
+\'egalement de servir aussi bien les nouveaux venus que ceux qui sont d\'ej\`a
+familiaris\'eavec \TeX. Nous supposons que nos lecteurs sont habitu\'es au
+fonctionnement des ordinateurs et qu'ils veulent obtenir l'information dont ils
+ont besoin aussi rapidement que possible. Notre but est de fournir ces
+informations clairement, avec concision, et de mani\`ere accessible.
+
+Ce livre fournit donc un \'eclairage lumineux, un guide vaillant et
+donne des cartes d\'etaill\'ees pour explorer et utiliser \TeX. Il vous
+permettra de ma\^\i triser \TeX\ rapidement par l'enqu\^ete et l'exp\'erience,
+mais il ne vous m\`enera pas par la main dans le syst\`eme \TeX\ en entier.
+Notre approche est de vous fournir un manuel de \TeX\ qui vous facilite la
+recherche des quelques informations dont vous avez besoin. Nous expliquons tout
+le r\'epertoire des commandes de \TeX\ et des concepts dont elles d\'ependent.
+Vous ne perdrez pas de temps \`a explorer des sujets que vous ne voulez pas voir
+ni avoir besoin.
+
+Dans les premi\`eres sections, nous vous fournissons \'egalement assez
+d'in\-dications pour que vous puissiez commencer si vous n'avez jamais utilis\'e
+\TeX\ avant. Nous supposons que vous avez acc\`es \`a un ex\'ecutable \TeX\ et
+que vous savez utiliser un \'editeur de texte, mais nous ne supposons pas
+beaucoup plus au sujet de vos connaissances. Puisque ce livre est organis\'e
+pour la r\'ef\'erence, vous continuerez toujours \`a le trouver utile quand vous
+vous familiariserez avec \TeX. Si vous pr\'ef\'erez commencer par une excursion
+soigneusement guid\'ee, nous vous recommandons d'avoir lu une premi\`ere fois
+^{\texbook} de Knuth (voir la \xrefpg{ressources} pour une citation), en
+passant au-dessus des ``sections dangereuses'', puis de revenir \`a ce livre
+pour de l'information additionnelle et des r\'ef\'erences pendant que vous
+commencez \`a utiliser \TeX (les sections dangereuses recouvrent des sujets
+avanc\'es de \texbook).
+
+La structure de \TeX\ est vraiment tr\`es simple~: un document \TeX\ se compose
+du texte ordinaire entrem\^el\'e avec des commandes qui donnent \`a \TeX\ des
+instructions compl\'ementaires sur la fa\c con de composer votre document. Les
+choses comme des formules de math\'ematique contiennent beaucoup de commandes, alors que
+le texte d'explication en contient rela\-tivement peu.
+
+La partie fastidieuse de l'\'etude de \TeX\ est d'apprendre les commandes et les
+concepts sous-entendus dans leurs descriptions. Ainsi nous avons consacr\'e la
+majeure partie du livre \`a d\'efinir et \`a expliquer les commandes et les
+concepts. Nous avons \'egalement fourni des exemples en montrant le r\'esultat
+compos\'e avec \TeX\ et la source correspondante, des conseils pour r\'esoudre
+des probl\`emes communs, des informations sur les messages d'erreur et ainsi de
+suite. Nous avons fourni des r\'ef\'erences crois\'ees par num\'ero de page et
+un index complet.
+
+Nous avons class\'e les descriptions de commandes pour que vous puissiez les
+rechercher par fonction ou alphab\'etiquement. Le classement fonctionnel est ce
+dont vous avez besoin quand vous savez ce que vous voulez faire mais que vous ne
+savez pas quelle commande peut le faire pour vous. Le classement alphab\'etique
+est ce dont vous avez besoin quand vous connaissez le nom d'une commande mais
+pas exactement ce qu'elle fait.
+
+Nous devons vous avertir que nous n'avons pas essay\'e de fournir une
+d\'efinition compl\`ete de \TeX. Pour cela vous aurez besoin de ^{\texbook}, qui
+est la source originale d'information sur \TeX. \texbook\ contient \'egalement
+beaucoup d'informations sur les d\'etails d'utilisation de \TeX, en particulier
+sur la composition des formules math\'ematiques. Nous vous le recommandons
+fortement.
+
+En 1989, Knuth a fait une r\'evision importante de \TeX\ afin de l'adapter aux
+jeux de caract\`eres $8$ bits requis pour effectuer des compositions dans des
+langues autres que l'anglais. La description de \TeX\ dans ce livre tient compte
+de cette r\'evision (voir \xref{newtex}).
+
+{\tighten Vous pouvez utiliser une forme sp\'ecialis\'ee de \TeX\ comme
+^{\LaTeX} ou ^{\AMSTeX} (voir \xref{ressources}). Bien que ces formes
+sp\'ecialis\'ees soient d'un seul bloc, vous pouvez vouloir juste utiliser
+certaines des facilit\'es de \TeX\ lui-m\^eme, afin d'employer la commande la
+plus fine que seul \TeX\ peut fournir. Ce livre peut vous aider \`a apprendre ce
+que vous devez conna\^\i tre \`a propos de ces facilit\'es sans devoir vous
+renseigner sur beaucoup d'autres choses qui ne vous int\'eressent pas. \par}
+
+Deux d'entre nous (K.A.H. et K.B.) ont \'et\'e g\'en\'ereusement soutenus par
+l'universit\'e du Massachusetts \`a Boston pendant la pr\'eparation de ce livre.
+En particulier, Rick Martin a permis aux machines de fonctionner et Robert~A.
+Morris et Betty O'Neil les ont rendus disponibles. Paul English d'Interleaf nous
+a aid\'es \`a produire les \'epreuves d'un dessin de couverture.
+
+Nous souhaitons remercier les relecteurs de notre livre~: Richard Furuta de
+l'universit\'e du Maryland, John Gourlay d'Arbortext, Inc., Jill Carter Knuth et
+Richard Rubinstein de la Digital Equipment Corporation. Nous avons pris \`a
+c\oe ur leurs critiques constructives et sans compter du manuscrit original, et le
+livre a consid\'erablement b\'en\'efici\'e de leurs perspicacit\'es.
+
+Nous sommes particuli\`erement reconnaissant \`a notre r\'edacteur, Peter
+Gordon d'Addison-Wesley. Ce livre \'etait vraiment son id\'ee et dans tout son
+d\'eveloppement il a \'et\'e une source d'encouragement et de conseil valable. Nous
+remercions son aide chez Addison-Wesley, Helen Goldstein, qui nous a aid\'es de
+tant de mani\`eres, et de Loren Stevens d'Addison-Wesley de sa comp\'etence et
+de son \'energie dans le cheminement de ce livre dans le processus de
+production. Sans oublier notre r\'edactrice de copie, Janice Byer, sans qui un
+certain nombre de petites mais irritantes erreurs seraient demeur\'ees dans ce
+livre. Nous appr\'ecions sa sensibilit\'e et go\^utions en corrigeant ce qui
+nous \'etait n\'ecessaire de corriger tout en lui laissant ce que nous n'avions
+pas eu besoin de corriger. En conclusion, nous souhaitons remercier Jim Byrnes
+de Prometheus Inc. d'avoir rendu cette collaboration possible en nous
+pr\'esentant.
+\vskip1.5\baselineskip
+
+\line{\it Deerfield, Massachusetts\hfil\rm P.\thinspace W.\thinspace A.}
+\line{\it Manomet, Massachusetts\hfil\rm K.\thinspace A.\thinspace H.,
+ K.\thinspace B.}
+
+\vskip2\baselineskip
+
+\noindent {\bf Pr\'eface \`a l'\'edition libre~:} Ce livre a \'et\'e \`a
+l'origine \'edit\'e en 1990 par Addison-Wesley. En 2003, il a d\'eclar\'e
+\'epuis\'e et Addison-Wesley a g\'en\'ereusement rendu tous les droits \`a nous,
+les auteurs. Nous avons d\'ecid\'e de rendre le livre disponible sous forme de
+source, sous la licence de documentation libre de GNU, ceci \'etant notre
+mani\`ere de soutenir la communaut\'e qui a soutenu le livre en premier lieu.
+Voyez la page de copyright pour plus d'information sur l'autorisation.
+
+Les illustrations qui faisaient partie du livre original ne sont pas incluses
+ici. Certaines des polices ont \'egalement \'et\'e chang\'ees~; maintenant, seules
+des polices librement disponibles sont utilis\'ees. Nous avons laiss\'e les
+hirondelles et l'information de gal\'ee sur les pages, pour identification. Une
+vieille version d'Eplain a \'et\'e employ\'ee pour la produire~; voyez le dossier
+{\tt eplain.tex} pour des d\'etails.
+
+Nous ne projetons pas de faire de changements ou additions au livre
+nous-m\^emes, except\'e la correction d'erreurs qui nous seront rappor\-t\'ees et
+peut-\^etre, l'inclusion des illustrations.
+
+Notre distribution du livre est \`a {\tt ftp://tug.org/tex/impatient}. Vous
+pouvez nous atteindre par courriel \`a {\tt impatient@tug.org}.
+
+\pagebreak
+\byebye
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/fread1st.tex b/Master/texmf-dist/doc/plain/impatient-fr/fread1st.tex
new file mode 100644
index 00000000000..c1293b12da9
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/fread1st.tex
@@ -0,0 +1,46 @@
+% 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
+\frontchapter{lisez ceci d'abord}
+
+% We don't need anything but \rm here.
+{\font\rm = cmr10 scaled \magstephalf \baselineskip = 1.1\baselineskip
+Si vous d\'ebutez en \TeX:
+\ulist
+\li Lisez en premier les sections \chapternum{usebook}--%
+\chapternum{usingtex}.
+\li Recherchez dans les exemples de la \chapterref{examples} les
+choses qui ressemblent \`a ce que vous voulez faire. Recherchez toutes
+les commandes en relation dans le ``sommaire des commandes'',
+\chapterref{capsule}. Utilisez les r\'ef\'erences de page pour trouver
+les descriptions les plus compl\`etes sur ces commandes et d'autres
+qui leur sont similaires.
+\li Recherchez les mots inconnus dans ``Concepts'',
+\chapterref{concepts}, en utilisant la liste \`a la fin
+du livre pour trouver l'explication rapidement.
+\li Exp\'erimentez et explorez.
+\endulist
+\bigskip
+\noindent
+
+Si vous connaissez d\'ej\`a \TeX\ ou si vous \'editez ou modifiez un
+document \TeX\ que quelqu'un d'autre a cr\'e\'e:
+\ulist
+\li Pour un rappel rapide de ce que fait telle ou telle commande,
+regardez dans la \chapterref{capsule}, ``r\'esum\'e des commandes''.
+Il est alphab\'etique et comprend des r\'ef\'erences de page pour de
+plus compl\`etes descriptions des commandes.
+\li Utilisez les groupements fonctionnels de descriptions de commande
+pour trouver celles li\'ees \`a une commande particuli\`ere que vous
+con\-naissez d\'ej\`a, ou pour trouver une commande qui atteint un
+objectif particulier.
+\li Utilisez la \chapterref{concepts}, ``concepts'', pour avoir
+l'explication de n'importe quel concept que vous ne comprenez pas,
+voulez comprendre avec plus de pr\'ecision ou avez oubli\'e. Utilisez
+la liste \`a la fin du livre pour trouver un
+concept rapidement. \endulist } \pagebreak
+
+\byebye
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/ftips.tex b/Master/texmf-dist/doc/plain/impatient-fr/ftips.tex
new file mode 100644
index 00000000000..3ac05807cb9
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/ftips.tex
@@ -0,0 +1,1004 @@
+% 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{Trucs et astuces}
+
+\chapterdef{tips}
+
+\TeX\ est un programme complexe qui travaille parfois de fa\c con
+myst\'e\-rieuse. Dans cette section nous vous offrons quelques trucs
+pour r\'esoudre les probl\`emes que vous pourrez rencontrer et expliquer
+quelques techniques pratiques.
+
+
+\section Corriger de mauvaises coupures de page
+
+\bix^^{coupures de page//mauvaises}
+Parfois \TeX\ coupe une page juste au milieu du mat\'eriel que vous voulez
+garder ensemble.---par exemple, une ent\^ete de section et le texte qui la
+suit ou une courte suite d'items li\'es. Il y a deux moyens de corriger la
+situation~:
+\ulist\compact
+\li Vous pouvez forcer le mat\'eriel \`a rester ensemble.
+\li Vous pouvez forcer une coupure de page \`a un endroit diff\'erent.
+\endulist
+
+La plus simple fa\c con de forcer \TeX\ a garder le mat\'eriel ensemble sur une
+page est de l'englober dans un vbox en utilisant la commande |\vbox|
+\ctsref{\vbox}.
+^^|\vbox//emp\^echer des coupures de page avec|
+Une vbox est normalement meilleure qu'une hbox pour faire cela parce que le
+plus souvent, le mat\'eriel \`a garder ensemble, par exemple, une suite de
+paragraphes, sera du mat\'eriel en mode vertical. Vous pouvez faire pr\'ec\'eder et
+suivre la vbox par une commande de paragraphe implicite ou explicite (soit
+une ligne blanche, soit un |\par|)~; autrement \TeX\ pourrait essayer de
+faire la partie vbox sur un paragraphe adjacent. La m\'ethode vbox a une
+limitation importante~: vous ne pouvez pas l'appliquer \`a une portion de
+texte inf\'erieure a un paragraphe.
+
+Vous pouvez parfois garder les lignes d'un paragraphe ensemble en
+l'englobant dans un groupe et en donnant \`a |\interlinepenalty|
+\ctsref{\interlinepenalty}
+la valeur $10000$ au d\'ebut du groupe (ou n'importe o\`u avant la fin du
+paragraphe).
+Cette m\'ethode demandera \`a \TeX\ de consid\'erer les coupures de page dans ce
+paragraphe comme \'etant infiniment ind\'esirables.
+N\'eanmoins~; si toutes les coupures de page que \TeX\ peut trouver sont
+infiniment ind\'esirables, il coupera la page dans le paragraphe quand m\^eme.
+
+Une commande ^|\nobreak| (\xref{vnobreak})
+apr\`es la fin d'un paragraphe emp\`eche \TeX\
+de couper la page sur l'item suivant
+(a moins que cet item provoque un penalty inf\'erieur \`a $10000$).
+C' est aussi la meilleure fa\c con d'emp\^echer une coupure de page apr\`es une ent\^ete,
+puisque une ent\^ete r\'eagit normalement comme un paragraphe.
+Le |\nobreak| doit suivre la ligne blanche ou le |\par| qui termine
+la paragraphe pour que \TeX\ ne traite pas le |\nobreak| comme faisant partie
+du paragraphe.
+Pour que le |\nobreak| soit effectif, il doit aussi \^etre plac\'e avant
+tout point de coupure l\'egal \`a la fin du paragraphe.
+Le ressort que \TeX\ ins\`ere avant le paragraphe suivant est comme un point
+de coupure,
+et ainsi pour tout ressort vertical que vous ins\'erez explicitement apr\`es un
+paragraphe.
+Ainsi, le |\nobreak| doit normalement \^etre la toute premi\`ere chose apr\`es
+la fin du paragraphe ou de l'ent\^ete.
+
+Vous pouvez utiliser la commande ^|\eject| \ctsref{\eject}
+pour forcer \TeX\ \`a couper une page \`a un endroit
+particulier. Dans un paragraphe, vous pouvez utiliser la combinaison
+`|\vadjust{\vfill\eject}|'
+\ctsref{\vadjust}
+^^|\vadjust|
+pour forcer une coupure apr\`es la prochaine ligne de sortie compl\`ete.
+La raison de faire pr\'ec\'eder |\eject| par ^|\vfill|
+\ctsref{\vfill} est d'obliger
+\TeX\ \`a remplir la page avec un espace blanc.
+De toute fa\c con, utiliser |\eject| pour r\'esoudre des probl\`emes de coupure de page
+a un d\'esavantage majeur~:
+si les fronti\`eres de page de votre document changent,
+les coupures de page que vous avez ins\'er\'ees peuvent ne plus \^etre l\`a o\`u vous
+les voulez.
+
+Si vous ne procurez pas \`a \TeX\ une commande |\vfill| pour remplir la page
+apr\`es un |\eject|,
+\TeX\ redistribue l'espace blanc exc\'edentaire le mieux qu'il peut et alors
+se plaint g\'en\'eralement d'un
+``underfull |\vbox| (badness $10000$) has occurred while |\output| is active.''
+Vous pouvez rencontrer un probl\`eme similaire avec
+toutes les m\'ethodes mentionn\'ees ci-dessus pour englober du
+mat\'eriel que vous voulez garder li\'e.
+
+La commande ^|\filbreak| \ctsref\filbreak{}
+\xrdef{filbreak}
+procure un moyen de garder les lignes d'un ou plusieurs paragraphes
+(ou autre mat\'eriel de mode vertical) li\'e sur une page.
+Si vous englobez un paragraphe entre |\filbreak|, \TeX\ ignorera effectivement
+les |\filbreak| si le paragraphe d\'ebute sur la page courante et
+coupe la page avant le premier |\filbreak| si le paragraphe ne d\'ebute pas.
+Si vous mettez des |\filbreak| autour de chaque paragraphe dans une s\'equence de paragraphes,
+comme ceci~:
+{\obeylines\display{
+{\tt \\filbreak}
+\<paragraph>
+{\tt \\filbreak}
+\<paragraph>
+{\tt \\filbreak}
+\leavevmode\indent\vdots
+\<paragraph>
+{\tt \\filbreak}
+}}
+%\vfil\eject
+\noindent
+\TeX\ gardera les lignes de chaque paragraphe li\'es sur une page.
+Si \TeX{} coupe une page sur un |\filbreak|, il remplira le bas de la
+page avec un espace blanc.
+
+Parfois vous pourrez demander \`a \TeX\ de modifier la longueur d'une page
+en changeant le param\`etre ^|\looseness| \ctsref\looseness{} pour un ou plusieurs paragraphes.
+Rendre un |\looseness| n\'egatif dans un paragraphe fait que \TeX\ essaye de
+s\'eparer le paragraphe en moins de lignes~; le rendre positif fait que \TeX\ essaye
+d'\'etendre le paragraphe en plus de lignes. Le d\'esavantage de changer |\looseness|
+est que l'espacement inter-mot de la r\'egion affect\'e ne sera pas optimal.
+Vous pouvez obtenir plus d'information sur le fa\c con dont \TeX\ appr\'ehende
+les coupures de ligne en mettant |\tracingpages| (\xref\tracingpages) \`a $1$.
+
+
+\section Pr\'eserver la fin d'une page
+
+Parfois vous avez besoin de modifier quelque chose sur une seule page et vous
+voulez \'eviter de r\'eimprimer tout le document. Si vos modifications ne changent
+pas trop la page, il y a de l'espoir. Vous devez modifier la fin de la page
+pour qu'elle tienne au m\^eme endroit~;
+les m\'ethodes sont similaires \`a celles pour modifier une mauvaise coupure de page.
+
+Si la fin de la page originale se trouve entre des paragraphes, vous pouvez
+forcer une coupure de page au m\^eme endroit en utilisant toutes les m\'ethodes
+que nous avons d\'ecrites plus haut. Autrement, vous devez forcer une coupure de
+ligne \emph{et} une coupure de page \`a un endroit particulier. Si la nouvelle
+page est plus courte que l'ancienne, la s\'equence~:
+\csdisplay
+\vadjust{\vfill\eject}\break
+|
+^^|\vadjust|
+devrait faire l'affaire.
+Mais si la nouvelle page est plus longue,
+le probl\`eme est plus difficile parce que \TeX\ a probablement d\'ej\`a compress\'e
+la page aussi fermement qu'il le peut. Vos seuls espoirs dans ce cas sont
+de mettre ^|\looseness| \ctsref\looseness{} \`a une valeur n\'egative, pour
+raccourcir certains sauts verticaux sur la page, pour ajouter un peu de
+r\'etr\'ecissement ^|\parskip| (\xref\parskip) s'il \'etait diff\'erent de z\'ero, ou,
+en dernier recours, diminuer |\baselineskip| \ctsref{\baselineskip}
+encore plus fermement.
+^^|\baselineskip//et pr\'eservation de fin de page|
+
+\section Garder de l'espace en haut d'une page
+
+\null
+^^{espace vertical//r\'eserver en haut d'une page}
+Vous pouvez utiliser habituellement la commande |\vskip| \ctsref\vskip{}
+pour garder de l'espace vertical sur une page.
+Cela ne marche pas en haut d'une page, toutefois, car
+\TeX\ abandonne le ressort, les cr\'enages et les p\'enalit\'es qui arrivent juste
+apr\`es une coupure de page.
+^^{coupures de page//ressort sur}
+Utilisez la commande ^|\topglue| \ctsref\topglue\ \`a la place~; il produit
+un ressort qui ne dispara\^\i t jamais.
+\eix^^{coupures de page//mauvaises}
+
+
+
+\section Corriger de mauvaise coupure de ligne
+
+\null
+\bix^^{coupures de ligne//mauvaises}
+Si \TeX\ coupe une ligne au milieu du mat\'eriel que vous voulez garder
+sur une seule ligne, il y a plusieurs moyens de corriger la situation~:
+\ulist\compact
+\li Vous pouvez forcer une coupure \`a un endroit proche avec la commande
+|\break| (\xref{hbreak}).
+^^|\break//corriger des coupures de ligne avec|
+\li Vous pouvez ins\'erer un tilde (|~|) entre deux mots
+(see \xref{@not}) pour emp\^echer une coupure entre eux \ttidxref{~}
+\li Vous pouvez signaler \`a \TeX\ des c\'esures qu'il ne consid\`ererait pas
+autrement en ins\'erant une ou plusieurs c\'esures optionnelles dans plusieurs
+mots (voir |\-|, \xref{\@minus}).
+\ctsidxref{-//sur une coupure de ligne}
+^^{c\'esures optionnelles//mauvaises coupures de ligne, corriger avec}
+\li Vous pouvez englober plusieurs mots dans une hbox en utilisant la
+commande ^|\hbox| \ctsref{\hbox}.
+\endulist
+
+Le d\'esavantage de toutes ces m\'ethodes, \`a part l'insertion de c\'esures
+optionnelles, est qu'elles rendent impossible pour \TeX\ de trouver un jeu
+de coupures de ligne satisfaisant. Si cela arrive n\'eanmoins, \TeX\ trouvera
+une ou plusieurs bo\^\i tes trop ou pas assez pleines et s'en plaindra.
+^^{underfull boxes} ^^{overfull boxes}
+La m\'ethode hbox a un d\'esavantage de plus~: parce que \TeX\ voit une hbox
+comme une entit\'e simple sans consid\'erer son contexte, l'espace entre les mots
+dans la hbox peut ne pas \^etre coh\'erent avec celui du reste de la ligne.
+\eix^^{coupures de ligne//mauvaises}
+
+
+\section Corriger des bo\^\i tes trop ou pas assez pleines
+
+\null
+\bix^^{overfull boxes}
+\bix^^{underfull boxes}
+\bix^^{\boites//overfull}
+\bix^^{\boites//underfull}
+Si \TeX\ se plaint d'une bo\^\i te trop pleine, cela signifie que vous avez mis
+plus de mat\'eriel dans une bo\^\i te qu'elle ne peut en contenir.
+Similairement, si \TeX\ se plaint d'une bo\^\i te pas assez pleine, cela signifie
+que vous n'avez pas mis assez de mat\'eriel dans la bo\^\i te. Vous pouvez rencontrer
+ces plaintes dans de nombreuses circonstances diff\'erentes, donc, regardons
+les plus communes~:
+
+\ulist
+\li Une bo\^\i te trop pleine d'une ligne d'un paragraphe indique que la ligne
+\'etait trop longue et que \TeX\ ne peut pas r\'earranger le paragraphe pour
+rendre la ligne plus courte. Si vous mettez ^|\emergencystretch|
+\ctsref{\emergencystretch} \`a une valeur diff\'erente de z\'ero, cela peut
+r\'esoudre le probl\`eme en autorisant \TeX\ \`a mettre plus d'espace entre les
+mots. Une autre solution est de mettre |\tolerance| \ctsref{\tolerance}
+\`a $10000$, mais c'est un peu comme \'emettre des lignes avec beaucoup trop
+d'espace. Sinon, une autre solution est d'ins\'erer une c\'esure optionnelle
+^^{c\'esures optionnelles//overfull boxes, corriger avec}
+dans un mot critique que \TeX\ ne sait pas couper.
+Si tout cela ne suffit pas, vous pourriez essayer de r\'e\'ecrire le paragraphe.
+Une solution qui est rarement satisfaisante est d'augmenter ^|\hfuzz| \ctsref\hfuzz,
+autorisant ainsi \TeX\ de construire des lignes qui d\'epassent dans la marge droite.
+
+\li Une bo\^\i te pas assez pleine d'une ligne d'un paragraphe indique que la ligne
+\'etait trop courte et que \TeX\ ne peut pas r\'earranger le paragraphe pour
+rendre la ligne plus longue.
+\TeX\ formera de telles lignes en \'etirant ses espaces inter-mots au del\`a de leurs
+limites normales. Deux des solutions pour des lignes trop pleines mentionn\'ees ci-dessus
+s'appliquent aussi aux lignes pas assez pleines~:
+ins\'erer des c\'esures optionnelles et r\'e\'ecrire le paragraphe.
+Des lignes pas assez pleines ne vous g\^eneront pas si vous utilisez un
+format justifi\'e \`a gauche, que vous pourrez obtenir avec la commande
+^|\raggedright| \ctsref\raggedright.
+
+\li La plainte~:
+\csdisplay
+Underfull \vbox (badness 10000) has occurred
+ while \output is active
+|
+indique que \TeX\ n'a pas assez de mat\'eriel pour remplir une page. La cause
+probable est que vous avez utilis\'e des vbox pour garder du mat\'eriel ensemble
+et \TeX\ a rencontr\'e une vbox pr\`es du bas d'une page qui ne peut pas rentrer
+sur cette page.
+Il a mis la vbox sur la page suivante, mais en ce faisant a laiss\'e trop
+d'espace vide dans la page courante.
+Dans ce cas vous pouvez soit ins\'erer plus d'espace quelque part sur la page
+courante, soit couper la vbox en plus petites parties.
+
+Une autre cause possible de cette plainte est d'avoir un long paragraphe
+qui occupe une page enti\`ere sans coupure.
+Puisque \TeX\ ne fait pas varier l'espacement entre les lignes,
+il peut \^etre incapable de remplir un trou au bas de la page
+d'un montant d'une fraction de l'espacement de la ligne.
+Cela peut arriver si |\vsize| \ctsref{\vsize}, la longueur de la page,
+n'est pas un multiple de |\baselineskip| \ctsref{\baselineskip}, l'espace
+entre des lignes de bases cons\'ecutive.
+
+Sinon, une autre cause de cette plainte,
+similaire \`a la pr\'ec\'edente, est d'avoir mis ^|\parskip| \ctsref{\parskip},
+le ressort inter-paragraphes \`a une valeur qui n'a pas assez d'\'etirement ou de
+r\'etr\'ecissement. Vous pouvez r\'esoudre ces deux derniers probl\`emes en augmentant
+^|\vfuzz| \ctsref\vfuzz.
+
+\li La plainte
+\csdisplay
+Overfull \vbox (296.30745pt too high) has occurred
+ while \output is active
+|
+indique que vous avez construit une vbox qui est plus longue que la page.
+vous devriez juste la faire plus courte.
+
+\li
+\bix^^|\hbox//overfull box provenant de|
+\bix^^|\vbox//overfull box provenant de|
+Les seules solutions pour une hbox ou une vbox trop pleine que vous avez
+construit avec les commandes |\hbox| or |\vbox|
+(\pp\xrefn\hbox, \xrefn\vbox)
+sont de sortir quelque chose de la bo\^\i te, ins\'erer un ressort n\'egatif avec
+^|\hss| ou ^|\vss| (\xref\hss) ou d'augmenter la taille de la bo\^\i te.
+
+\li Si vous rencontrez une hbox ou une vbox pas assez pleine que vous avez
+construit avec |\hbox| ou |\vbox|, vous feriez mieux normalement de remplir
+la bo\^\i te avec ^|\hfil| ou ^|\vfil| (\xref\hfil).
+\eix^^|\hbox//overfull box provenant de|
+\eix^^|\vbox//overfull box provenant de|
+
+\endulist
+\eix^^{\boites//overfull}
+\eix^^{\boites//underfull}
+\eix^^{overfull boxes}
+\eix^^{underfull boxes}
+
+
+\section Retrouver des espaces entre-mots perdus
+
+\null
+^^{espace//perdu}
+^^{mots trop rapproch\'es}
+Si vous trouvez que \TeX\ a trop rapproch\'e deux mots, la cause courante
+est une s\'equence de contr\^ole qui a absorb\'e l'espace qui la suit. Mettre
+un ^{espace contr\^ol\'e} (|\!visiblespace|) apr\`es la s\'equence de contr\^ole.
+
+
+\section \'Eviter des espaces entre-mots non d\'esir\'es
+
+\null
+\bix^^{espace//non d\'esir\'e}\xrdef{unwantedspace}
+Si vous obtenez un espace dans votre document o\`u vous ne vouliez et ne
+pensiez pas en avoir, la cause la plus courante, d'apr\`es notre exp\'erience,
+est une fin de ligne ou un espace apr\`es une accolade.
+^^{accolades//espace apr\`es}
+(Si vous faites de jolies choses avec les codes de cat\'egories,
+^^{codes de cat\'egorie//cause d'espaces non d\'esir\'es}
+vous avez introduit beaucoup d'autres causes toutes aussi sympathiques.)
+Normalement, \TeX\ traduit une fin de ligne par un espace, et consid\`ere
+un espace apr\`es une accolade ouvrante ou fermante comme significatif.
+
+Si l'espace non d\'esir\'e est caus\'e par un espace apr\`es une accolade dans
+une ligne d'entr\'ee, retirez-le.
+Si l'espace non d\'esir\'e est caus\'e par une accolade \`a la fin d'une ligne
+d'entr\'ee, mettez une `|%|' imm\'ediatement apr\`es l'accolade.
+{\recat!ttidxref[%//pour \'eliminer des espaces non d\'esi\-r\'es]]
+Le `|%|' d\'ebute un commentaire, mais ce commentaire ne n\'ecessite aucun
+texte.
+
+Une d\'efinition de macro peut aussi
+introduire des espaces non d\'esir\'es si vous ne les avez pas \'ecrites
+soigneusement. Si vous obtenez des espaces non d\'esir\'es quand vous appelez
+une macro, v\'erifiez sa d\'efinition pour \^etre s\^ur que vous n'avez pas un
+espace non d\'esir\'e apr\`es une accolade ou que vous n'avez pas termin\'e une ligne
+de la d\'efinition imm\'ediatement apr\`es une accolade.
+On termine souvent une ligne de d\'efinition de macro apr\`es une accolade pour
+rendre la d\'efinition plus lisible.
+Par s\'ecurit\'e, mettez un `|%|' apr\`es toute accolade qui termine une ligne de
+d\'efinition de macro.
+Il n'est peut-\^etre pas n\'ecessaire, mais il ne fera pas de mal.\footnote{
+Il faut reconna\^\i tre qu'il n'y a que de rares cas o\`u vous avez r\'eellement
+besoin d'une fin de ligne apr\`es une accolade.}
+
+Si vous avez du mal \`a localiser la source d'un espace non d\'esir\'e, essayez
+de mettre |\tracingcommands| \ctsref{\tracingcommands} \`a $2$.
+Vous obtiendrez une commande |{blank space}| dans le fichier log pour chaque
+espace que voit \TeX.
+
+Cela aide de conna\^\i tre les r\`egles d'espace de \TeX~:
+
+\olist
+\li Des espaces sont ignor\'es au d\'ebut des lignes d'entr\'ee.
+\li Des espaces en fin de ligne d'entr\'ee sont ignor\'es en \emph{toute}
+circonstance, bien que la fin de ligne elle-m\^eme soit trait\'ee comme un espace.
+(une ligne compl\`etement blanche, n\'eanmoins, g\'en\`ere un token |\par|.)
+\li De multiples espaces sont trait\'es comme un espace simple, mais
+seulement si ils apparaissent ensemble dans votre entr\'ee.
+Ainsi un espace suivant les arguments d'un appel de macro n'est pas combin\'e
+avec l'espace final produit par l'appel de macro. \`A la place, vous
+obtenez deux espaces.
+\li Des espaces sont ignor\'es apr\`es des mots de contr\^ole.
+\li Des espaces sont de fait ignor\'es apr\`es des nombres, des dimensions
+et le `|plus|' et le `|minus|' des sp\'ecifications de ressort.%
+\footnote{En r\'ealit\'e, \TeX\ n'ignore qu'un seul espace \`a cet endroit.
+Puisque des espaces multiples sont habituellement r\'eduits \`a un seul espace,
+pourtant, l'effet est d'ignorer tout nombre d'espaces.}
+\endolist
+\noindent Si vous avez chang\'e le code de cat\'egorie de l'espace ou du caract\`ere
+fin de ligne, oubliez tout cela.
+\eix^^{espace//non d\'esir\'e}
+
+
+\section \'Eviter un exc\`es d'espace autour d'un affichage
+
+\null
+^^{math\'ematiques affich\'ees}
+Si vous obtenez trop d'espace au dessus d'un affichage math\'ematique, c'est peut \^etre
+parce que vous avez laiss\'e une ligne blanche dans votre entr\'ee avant l'affichage.
+La ligne blanche d\'ebute un nouveau paragraphe et met \TeX\ en mode
+vertical. Quand \TeX\ voit un `|$|' en mode vertical, il rebascule vers
+le mode horizontal et ins\`ere le ressort inter-paragraphes (|\parskip|) suivie par
+le ressort inter-lignes (|\baselineskip|).
+Ensuite, quand il d\'ebute l'affichage lui-m\^eme,
+il ins\`ere \emph{plus} de ressort (soit ^|\abovedisplayskip|,
+soit ^|\abovedisplayshortskip|, selon la longueur de la ligne pr\'ec\'edente).
+Ce dernier ressort est le seul que vous d\'esirez.
+Pour \'eviter d'obtenir un ressort inter-paragraphe ainsi, ne laissez pas de
+ligne blanche au dessus des affichages math\'ematiques ou autrement
+terminez un paragraphe (avec |\par|, disons) juste avant un affichage math\'ematique.
+
+Similairement,
+si vous obtenez trop d'espace apr\`es un affichage math\'ematique, c'est peut-\^etre
+parce que vous avez laiss\'e une ligne blanche dans votre entr\'ee apr\`es l'affichage,
+retirez le simplement.
+
+
+\section \'Eviter un exc\`es d'espace apr\`es un paragraphe
+
+Si vous obtenez trop d'espace vertical apr\`es un paragraphe qui a \'et\'e produit
+par une macro, vous devez avoir eu un ressort inter-paragraphe produit par la
+macro, un paragraphe vide, et ensuite encore un ressort inter-paragraphe.
+Vous pouvez d\'ebarrasser du saut du second paragraphe en ins\'erant~:
+\csdisplay
+\vskip -\parskip
+\vskip -\baselineskip
+|
+juste apr\`es l'appel de la macro.
+Si vous avez toujours ce probl\`eme avec une certaine macro, vous pouvez mettre
+ces lignes \`a la fin de la d\'efinition de macro \`a la place.
+Vous pourriez aussi r\'esoudre le probl\`eme en ne laissant jamais de ligne
+blanche apr\`es l'appel de macro---si vous voulez une ligne blanche simplement
+pour rendre votre saisie plus lisible, commencez la par un `|%|'.
+
+
+\section Changer la forme du paragraphe
+
+\null
+\bix^^{paragraphes//forme}
+Plusieurs param\`etres de \TeX---^|\hangindent|, ^|\leftskip|, etc.---%
+affectent la fa\c con dont \TeX\ forme des paragraphes et les coupe en lignes.
+^^{coupures de ligne}
+Ces param\`etres sont utilis\'es indirectement dans des commandes \plainTeX{}
+telles que ^|\narrower| et ^|\hang|~; vous pouvez aussi les assigner directement.
+Si vous avez utilis\'e une de ces commandes (ou chang\'e un de ses param\`etres),
+mais que le changement de commande ou de param\`etre ne semble pas avoir le
+moindre effet sur un paragraphe, le probl\`eme peut \^etre que vous avez termin\'e
+un groupe avant d'avoir termin\'e le paragraphe. Par exemple~:
+\csdisplay
+{\narrower She very soon came to an open field, with
+a wood on the other side of it: it looked much darker
+than the last wood, and Alice felt a little timid
+about going into it.}
+|
+Ce paragraphe ne sera par compos\'e en resserr\'e parce que l'accolade fermante
+termine le groupe |\narrower| avant que \TeX\ ait eu une chance de
+couper le paragraphe en lignes. \`a la place, mettez un |\par| avant
+l'accolade fermante~; ensuite vous obtiendrez l'effet que vous voulez.
+^^|\par//en changeant la forme du paragraphe|
+\eix^^{paragraphes//forme}
+
+
+\section Mettre des paragraphes dans une bo\^\i te
+
+Supposez que vous ayez quelques paragraphes de texte que vous voulez mettre
+\`a un endroit particulier sur la page. La mani\`ere \'evidente de faire cela est
+d'englober les paragraphes dans une hbox d'une taille appropri\'ee et ensuite de
+placer la hbox o\`u vous voulez qu'elle soit. H\'elas, la mani\`ere \'evidente
+ne marche pas parce que \TeX\ ne fait pas de coupure de ligne dans
+le mode horizontal restreint.
+^^{mode restreint//horizontal}
+Si vous l'essayez,
+vous obtiendrez un message d'erreur trompeur vous sugg\'erant que vous
+avez oubli\'e la fin d'un groupe.
+Le moyen de contourner cette restriction est d'\'ecrire~:
+\csdisplay
+\vbox{\hsize = !<dimen> !dots !<paragraphs> !dots}
+|
+o\`u \<dimen> est la longueur de ligne que vous voulez pour les paragraphes.
+C'est ce dont vous avez besoin, en particulier, quand vous voulez englober
+des paragraphes dans une bo\^\i te (une bo\^\i te entour\'ee de traits droits, pas une
+bo\^\i te \TeX).
+
+\section Dessiner des lignes
+
+\null
+\bix^^{filets}
+Vous pouvez utiliser les commandes ^|\hrule| et ^|\vrule| (\xref\hrule)
+pour tracer des lignes, c'est-\`a-dire, des filets. Vous devez
+savoir (a)~o\`u vous pouvez utiliser chaque commandes et
+(b)~comment \TeX\ d\'etermine les longueurs des filets quand
+vous n'avez pas donn\'e les longueurs explicitement.
+\ulist
+\li Vous pouvez utiliser |\hrule| quand \TeX\ est dans un mode vertical et |\vrule|
+quand \TeX\ est dans un mode horizontal.
+Ces r\`egles signifient que
+vous ne pouvez mettre un filet horizontal dans une hbox ou un filet vertical
+dans une vbox.
+Vous pouvez, n\'eanmoins, construire un filet horizontal qui semble vertical en
+sp\'ecifiant les trois dimensions et en le rendant grand et fin.
+De m\^eme, vous pouvez construire un filet vertical qui semble horizontal
+en le rendant court, plat et allong\'e.
+
+\li Un filet horizontal \`a l'int\'erieur d'une vbox
+a la m\^eme largeur que la vbox si vous n'avez pas
+donn\'e la largeur du filet explicitement.
+Des filets verticaux
+\`a l'int\'erieur de hbox r\'eagissent de mani\`ere analogue.
+Si vos filets ressortent trop longs ou trop courts,
+r\'eglez les dimensions de la bo\^\i te englobante.
+\endulist
+
+Comme exemple, supposon que vous voulez produire~:
+\display{%
+\hbox{\vrule
+ \vbox{\hrule\vskip 3pt
+ \hbox{\hskip 3pt
+ \vbox{\hsize .7in\raggedright
+ \noindent Help! Let me out of here!}%
+ \hskip 3pt}
+ \vskip 3pt\hrule}%
+\vrule}}
+L'entr\'ee suivante le fera~:
+\csdisplay
+\hbox{\vrule
+ \vbox{\hrule \vskip 3pt
+ \hbox{\hskip 3pt
+ \vbox{\hsize = .7in \raggedright
+ \noindent Help!! Let me out of here!!}%
+ \hskip 3pt}%
+ \vskip 3pt \hrule}%
+\vrule}
+|
+Nous devons mettre le texte dans un vbox de fa\c con \`a ce que \TeX\
+l'ex\'ecute comme un paragraphe.
+Les quatre niveaux d'embo\^\i tement sont r\'eellement
+n\'ecessaires---si vous en doutez, essayez d'ex\'ecuter cet exemple avec moins de
+niveaux.
+\eix^^{filets}
+
+
+\section Cr\'eer des ent\^etes ou des pieds de page multi-lignes
+
+\null
+\xrdef{bighead}
+\bix^^{ent\^etes//multi-lignes}
+\bix^^{pieds de page//multi-lignes}
+Vous pouvez utiliser les commandes ^|\headline| et ^|\footline|
+(\xref\footline) pour produire des ent\^etes et des pieds de page, mais
+elles ne marchent pas proprement pour des ent\^etes et des pieds de page
+de plus d'une ligne. N\'eanmoins, vous pouvez obtenir des ent\^etes et des pieds
+de page multi-lignes en red\'efinissant certaines des macros subsidiaires dans
+la routine de sortie de \TeX.
+
+Pour un ent\^ete multi-lignes, vous devez faire trois choses~:
+\olist\compact
+\li Red\'efinir la macro ^|\makeheadline| qui est appel\'ee de la routine de
+sortie de \TeX.
+\li Augmenter ^|\voffset| du montant d'espace vertical consomm\'e par les
+lignes en plus.
+\li Diminuer ^|\vsize| du m\^eme montant.
+\endolist
+\noindent L'exemple suivant montre comment vous pourriez faire cela~:
+\csdisplay
+\advance\voffset by 2\baselineskip
+\advance\vsize by -2\baselineskip
+\def\makeheadline{\vbox to 0pt{\vss\noindent
+ Header line 1\hfil Page \folio\break
+ Header line 2\hfil\break
+ Header line 3\hfil}%
+ \vskip\baselineskip}
+|
+Vous pouvez normalement suivre le mod\`ele de cette d\'efinition, substituez
+simplement vos propres lignes d'ent\^ete et choisissez un multiple de
+|\baselineskip| appropri\'e (un de moins que le nombre de lignes dans l'ent\^ete).
+
+Pour un pied de page multi-lignes, la m\'ethode est similaire~:
+\olist
+\li Red\'efinissez la macro ^|\makefootline| qui est appel\'ee
+de la routine de sortie de \TeX.
+\li Diminuez ^|\vsize| du montant d'espace vertical consomm\'e par les
+lignes en plus.
+\endolist
+\noindent L'exemple suivant montre comment vous pouvez faire cela~:
+\csdisplay
+\advance\vsize by -2\baselineskip
+\def\makefootline{%
+ \lineskip = 24pt
+ \vbox{\raggedright\noindent
+ Footer line 1\hfil\break
+ Footer line 2\hfil\break
+ Footer line 3\hfil}}
+|
+Encore une fois, vous pouvez normalement suivre le mod\`ele de cette d\'efinition.
+La valeur de |\lineskip| d\'etermine le montant d'espace entre la ligne de
+base de la derni\`ere ligne du texte principal sur la page et la ligne de
+base de la premi\`ere ligne du pied de page.
+\eix^^{ent\^etes//multi-lignes}
+\eix^^{pieds de page//multi-lignes}
+
+
+\section Trouver des accolades orphelines
+
+\bix^^{accolades//orphelines}
+\xrdef{mismatched}
+La plupart de temps, quand votre entr\'ee \TeX\ souffre d'accolades non concordantes,
+vous obtenez un diagnostic de \TeX\ assez proche de l'endroit o\`u vous avez
+r\'eellement fait l'erreur.
+Mais une des erreurs les plus frustrantes que vous puissiez subir d'une
+ex\'ecution de \TeX,
+juste avant que \TeX\ s'arr\^ete, est
+la suivante~:
+\csdisplay
+(\end occurred inside a group at level 1)
+|
+Cela indique qu'il y a une accolade ouvrante en trop
+ou une accolade fermante manquante quelque part
+dans votre document, mais il ne vous donne aucune indication du tout
+sur l'endroit o\`u le probl\`eme arrive. Donc comment pouvez vous trouver~?
+
+Un truc de d\'ebuggage que nous trouvons pratique est
+d'ins\'erer la ligne suivante ou son \'equivalente
+\`a cinq ou six endroits \'egalement espac\'es dans le document (et pas dans
+un groupe connu)~:
+\csdisplay
+}% une fausse fermante
+|
+supposons que le probl\`eme soit une accolade ouvrante en trop.
+Si elle est, disons entre la troisi\`eme et la quatri\`eme fausse fermante,
+vous obtiendrez des messages d'erreur des trois premi\`eres fausses fermantes
+mais pas de la quatri\`eme. La raison est que \TeX\ ignorera les trois premi\`ere
+fausses fermantes apr\`es s'en \^etre plaint, mais la quatri\`eme fausse fermante
+appariera l'accolade ouvrante en trop. Ainsi vous savez que l'accolade ouvrante
+en trop est quelque part entre la troisi\`eme et la quatri\`eme fausse fermante.
+Si la r\'egion de l'erreur est encore trop large pour que vous la trouviez,
+enlevez simplement le jeu original de fausse fermantes et r\'ep\'etez le
+processus dans cette r\'egion.
+Si le probl\`eme est une accolade fermante manquante plut\^ot qu'une ouvrante en trop,
+vous serez capable de la d\'ecouvrir quand vous aurez trouv\'e sa compagne.
+
+Cette m\'ethode ne marche pas dans toutes les circonstances. En particulier,
+elle ne marche pas si votre document consiste en plusieurs groupes r\'eellement grands.
+Mais souvent vous pourrez trouver des variations de cette m\'ethode qui vous
+m\`eneront vers cette accolade insaisissable.
+
+Si tout le reste \'echoue, essayez de raccourcir votre entr\'ee en retirant
+la derni\`ere moiti\'e du fichier
+(apr\`es sauvegarde de la version originale d'abord~!) ou en ins\'erant une
+commande |\bye| au milieu.
+Si l'erreur persiste, vous saurez qu'elle est dans la premi\`ere moiti\'e~;
+Si \c ca tourne, vous saurez qu'elle est dans la seconde.
+En r\'ep\'etant ce processus vous trouverez \'eventuellement l'erreur.
+\eix^^{accolades//orphelines}
+
+
+\section Fixer des dimensions
+
+\null
+\bix^^{\<dimension>}
+La mani\`ere la plus simple de d\'efinir une dimension est de la sp\'ecifier directement, c'est-\`a-dire~:
+\csdisplay
+\hsize = 6in
+|
+Vous pouvez aussi sp\'ecifier une dimension en terme d'autres dimensions ou comme un m\'elange
+de diff\'erentes unit\'es, mais c'est du boulot. Il y a deux fa\c cons
+de construire une dimension comme une combinaison~:
+\olist\compact
+\li Vous pouvez ajouter une dimension \`a un param\`etre de dimension ou \`a un registre de
+dimension.
+Par exemple~:
+\csdisplay
+\hsize = 6in \advance\hsize by 3pc % 6in + 3pc
+|
+\li Vous pouvez indiquer une dimension comme un multiple d'un param\`etre
+ou un registre de dimension ou de ressort.
+Dans ce cas, \TeX\ convertit le ressort en une dimension en sacrifiant
+l'\'etirement et le r\'etr\'ecissement. Par exemple~:
+\csdisplay
+\parindent = .15\hsize
+\advance\vsize by -2\parskip
+|
+\endolist
+\eix^^{\<dimension>}
+
+
+\section Cr\'eer des polices composites
+
+\null
+\bix^^{polices//composites}
+Il est parfois utile de cr\'eer une ``police composite'',
+nomm\'ee par une s\'equence de contr\^ole $\cal F$, dans laquelle tous les caract\`eres
+sont pris d'une police $f_1$ sauf pour certains qui sont emprunt\'es d'une autre
+police $f_2$.
+Vous pourrez alors mettre du texte dans la police composite en utilisant $\cal F$ juste
+comme vous utilisez toute autre identifiant de police.
+
+Vous pouvez cr\'eer une telle police composite en d\'efinissant $\cal F$ comme une macro.
+Dans la d\'efinition de $\cal F$, vous s\'electionnez d'abord la police $f_1$ et ensuite
+d\'efinissez des s\'equences de contr\^ole qui produisent les caract\`eres emprunt\'es,
+mis dans $f_2$.
+Par exemple, supposons que vous voulez cr\'eer une police composite |\britrm|
+qui a tous les caract\`eres de |cmr10|
+sauf pour le signe dollar, pour lequel vous voulez emprunter
+le symbole de la livre sterling de la police |cmti10|.
+Le symbole de la livre sterling de |cmti10|
+apparait \`a la m\^eme position de police que le signe dollar dans |cmr10|.
+Voici comment faire~:
+\csdisplay
+\def\britrm{%
+ \tenrm % \tenrm names the cmr10 font
+ \def\${{\tenit\char `\$}}% \tenit names the cmti10 font.
+}
+|
+Maintenant \`a chaque fois que vous lancerez la police appel\'ee |\britrm|,
+|\$| produira un symbole de livre sterling.
+
+Vous pouvez aussi avoir le m\^eme effet en changeant les codes de cat\'egorie
+des caract\`eres en question pour rendre ces caract\`eres actifs et ensuite
+procurer une d\'efinition pour le caract\`ere. Par exemple~:
+\csdisplay
+\catcode `* = \active
+\def*{{\tentt \char `\*}}
+|
+Dans ce cas l'ast\'erisque sera pris de la police |\tentt|.
+Si cous saisissez alors la ligne d'entr\'ee~:
+\csdisplay
+Debbie was the * of the show.
+|
+elle sera compos\'ee ainsi~:
+{\font\tentt=cmtt10%
+\catcode `* = \active
+\def*{{\tentt \char `\*}}%
+\display{Debbie was the * of the show.}}
+\noindent
+
+\eix^^{polices//composites}
+
+
+\section Reproduire du texte verbatim
+
+\null
+^^{texte verbatim}\xrdef{verbatim}
+Du texte verbatim est du texte qui est reproduit dans un document
+compos\'e exactement comme il appara\^\i t dans son entr\'ee.
+L'usage le plus commun du texte verbatim est dans la composition
+d'entr\'ee informatique,
+incluant les programmes pour ordinateurs et les entr\'ees de \TeX\ lui-m\^eme.
+^^{programmes informatiques, composer des}
+l'entr\'ee informatique n'est pas simple \`a reproduire pour deux raisons~:
+\olist\compact
+\li Certains caract\`eres (symboles de contr\^ole, caract\`eres d'\'echappement, accolades,
+etc.) ont
+une signification sp\'eciale en \TeX.
+\li Les fins de ligne et les espaces multiples sont traduits en espaces simples.
+\endolist
+\noindent
+Dans le but de produire du texte verbatim, vous devez effacer les significations sp\'eciales
+et d\'ebrancher la traduction. C'est beaucoup mieux fait par des macros.
+
+Pour effacer les signification sp\'eciales, vous devez changer les codes de cat\'egorie
+des caract\`eres qui ont des significations sp\'eciales.
+^^{codes de cat\'egorie//pour texte verbatim}
+La macro suivante illustre comment vous devez le faire~:
+\csdisplay
+\chardef \other = 12
+\def\deactivate{%
+ \catcode`\\ = \other \catcode`\{ = \other
+ \catcode`\} = \other \catcode`\$ = \other
+ \catcode`\& = \other \catcode`\# = \other
+ \catcode`\% = \other \catcode`\~ = \other
+ \catcode`\^ = \other \catcode`\_ = \other
+}
+|
+Mais attention~! Une fois que vous avez chang\'e les codes de cat\'egorie de ce fa\c con, vous perdez
+la facult\'e d'utiliser des s\'equences de contr\^ole puisqu'il n'y a plus de caract\`ere
+d'\'echappement. Vous avez besoin d'un moyen de revenir dans le mode normal
+d'op\'eration. Nous expliquerons comment faire cela dans un moment, apr\`es avoir consid\'er\'e
+l'autre probl\`eme~: d\'ebrancher la traduction des espaces et des fins de ligne.
+
+\PlainTeX\ a deux commandes qui ensemble r\'esolvent en partie le probl\`eme~:
+^|\obeyspaces| \ctsref{\obeyspaces} et ^|\obeylines| \ctsref{\obeylines}.
+Les deux choses qu'elles ne font pas sont de pr\'eserver les espaces au d\'ebut
+d'une ligne
+et de pr\'eserver les lignes blanches.
+Pour cela vous avez besoin de mesures plus fortes---qui sont apport\'ees par
+la macro ^|\obeywhitespace| que nous sommes sur le point de d\'efinir.
+
+\TeX\ normalement insiste pour collecter des lignes par paragraphes.
+Un moyen de le convaincre de prendre litt\'eralement les bords des lignes
+est de transformer les lignes individuelles en paragraphes.\footnote{%
+Un autre moyen est de transformer le caract\`ere de fin de ligne en une commande
+|\break| et d'ajouter un ressort infini \`a la fin de chaque ligne.
+^^|\break//fin de ligne sur|
+}
+Vous pouvez faire cela en red\'efinissant le caract\`ere de fin de ligne pour produire
+la s\'equence de contr\^ole |\par|. Les trois d\'efinitions de macro suivantes
+montrent comment~:
+
+^^{espace blanc, pr\'eserver de l'}
+\xrdef{\obeywhitespace}
+\csdisplay
+\def\makeactive#1{\catcode`#1 = \active \ignorespaces}
+{% The group delimits the text over which ^^M is active.
+ \makeactive\^^M %
+ \gdef\obeywhitespace{%
+ % Use \gdef so the definition survives the group.
+ \makeactive\^^M %
+ \let^^M = \newline %
+ \aftergroup\removebox % Kill extra paragraph at end.
+ \obeyspaces %
+ }%
+}
+\def\newline{\par\indent}
+\def\removebox{\setbox0=\lastbox}
+
+|
+Un point subtil de la d\'efinition de |\obeywhitespace| est que
+|^^M| doit \^etre rendu actif \`a la fois
+quand |\obeywhitespace| est \emph{d\'efinie} et quand
+elle est \emph{utilis\'ee}.
+
+Pour \^etre capable de revenir \`a des op\'erations normales apr\`es du texte verbatim,
+vous devez choisir un caract\`ere qui
+appara\^\i t rarement voire pas du tout dans le texte verbatim. Ce caract\`ere
+sert comme caract\`ere d'\'echappement temporaire.
+La barre verticale (|!||) est parfois un bon choix.
+Avec ce choix, les macros~:
+\csdisplay
+\def\verbatim{\par\begingroup\deactivate\obeywhitespace
+ \catcode `\!| = 0 % Make !| the new escape character.
+}
+
+\def\endverbatim{\endgroup\endpar}
+
+\def\!|{!|}
+|
+fera l'affaire. Dans le texte verbatim, vous pouvez utiliser une double
+barre verticale (|!|!||) pour en faire une, et vous terminez le texte verbatim
+avec |!|endverbatim|.
+
+Il y a plusieurs variations de cette technique~:
+\ulist
+\li Si un langage informatique a des mots-cl\'es, vous pouvez convertir
+chaque mot-cl\'e en une commande qui compose
+ce mot-cl\'e en caract\`ere gras. Chaque mot-cl\'e de l'entr\'ee doit \^etre alors
+pr\'ec\'ed\'e par le caract\`ere d'\'echappement.
+\li Si vous avez un caract\`ere (encore, supposons qu'il s'agisse de la barre verticale)
+qui n'appara\^\i t
+\emph{jamais} dans le texte verbatim, vous pouvez le rendre actif et
+lui faire finir le texte verbatim. Les d\'efinitions de macro ressemblent alors
+\`a cela~:
+\csdisplay
+{\catcode `\!| = \active
+\gdef\verbatim{%
+ \par\begingroup\deactivate\obeywhitespace
+ \catcode `!| = \active
+ \def !|{\endgroup\par}%
+}}
+|
+\endulist
+
+Les id\'ees pr\'esent\'ees ici ne procurent qu'une simple approche de la composition
+de programmes informatiques.
+Le reproduction verbatim n'est souvent pas aussi r\'ev\'elatrice ou lisible
+qu'une version qui utilise des conventions typographiques qui refl\`etent la
+syntaxe et m\^eme les s\'emantiques du programme.
+Si vous d\'esirez poursuivre ce sujet plus loin, nous vous recommandons le livre suivant~:
+
+\smallskip{\narrower\noindent
+Baecker, Ronald M., and Marcus, Aaron, {\sl Human Factors
+and Typography for More Readable Programs}. Reading, Mass.:
+Addison-Wesley, 1990.\par}
+
+
+\section Utiliser des macros externes
+
+\null
+^^{s\'equence de contr\^ole interdite}^^{condition incompl\`ete}
+Si \TeX\ se plaint d'une ``s\'equence de contr\^ole interdite [forbidden control
+sequence]'', vous avez probablement utilis\'e une macro externe dans un contexte
+non-externe \seeconcept{outer}.
+^^{macros//outer}
+Une macro externe est une macro dont la d\'efinition est
+pr\'ec\'ed\'ee par ^|\outer|.
+Une macro externe ne peut pas \^etre utilis\'ee dans un argument de macro, dans une
+d\'efinition de macro,
+dans le pr\'eambule d'un alignement ou dans un texte conditionnel,
+c'est-\`a-dire, un texte qui ne sera d\'evelopp\'e que quand un test conditionnel
+aura un r\'esultat particulier.
+^^{alignements//s\'equence de contr\^ole outer dans des}
+Certaines macros ont \'et\'e d\'efinies comme externes parce qu'elles n'ont pas de
+raison d'\^etre utilis\'ees dans ces contextes et qu'un tel usage est probablement une erreur.
+Le seul moyen de contourner ce probl\`eme est de red\'efinir la
+macro ou de d\'eplacer son utilisation dans un contexte acceptable.
+
+Utiliser une macro externe dans un contexte impropre peut aussi provoquer
+que \TeX\ se plaigne d'un ``runaway situation'' ou d'un ``incomplete conditional''.
+Le probl\`eme peut \^etre difficile \`a diagnostiquer parce que le message d'erreur
+ne donne aucun indice ni ce qui se passe. Si vous obtenez un tel message
+d'erreur, recherchez autour un appel \`a une macro externe.
+Vous ne pouvez pas toujours savoir si une macro particuli\`ere est externe, mais
+la commande `^|\show||\a|' \ctsref{\show}
+vous montrera la d\'efinition de |\a| et vous dira aussi
+si |\a| est externe.
+
+
+\section Changer des codes de cat\'egorie
+
+\null
+\bix^^{codes de cat\'egorie//changement}
+Il est parfois pratique de faire des changements locaux au code de cat\'egorie
+d'un caract\`ere \`a une certaine partie de votre document. Par exemple, vous devez
+composer un programme informatique
+^^{programmes informatiques, composer des}
+ou quelque chose d'autre qui utilise normalement des caract\`eres actifs
+pour un usage sp\'ecial. Vous voudrez alors d\'esactiver ces caract\`eres pour que
+\TeX\ les traite comme tout autre caract\`ere.
+
+Si vous faites un tel changement local au code de cat\'egorie d'un caract\`ere,
+vous serez parfois constern\'e de trouver que \TeX\ semble ne pr\^eter aucune
+attention quelconque a votre changement.
+Deux aspects du comportement de \TeX\ sont vraisemblablement en cause~:
+\olist
+\li \TeX\ d\'etermine le code de cat\'egorie d'un caract\`ere entr\'ee
+^^{caract\`eres entr\'ees}
+et l'attache au caract\`ere quand il le lit.
+Supposons que vous lisiez un tilde (|~|) et qu'ensuite vous
+changiez le code de cat\'egorie des tildes,
+mais fassiez le changement
+avant que l'estomac de \TeX\ ait r\'eellement ex\'ecut\'e de tilde \emph{particulier\/}
+\seeconcept{\anatomy}.
+\TeX\ r\'epondra encore que ce
+tilde utilise le code de cat\'egorie comme il \'etait avant le changement.
+Cette difficult\'e survient typiquement
+quand le tilde fait partie d'un argument d'une macro
+et que la macro elle-m\^eme change le code de cat\'egorie du tilde.
+
+\li Quand \TeX\ assortit un appel d'une macro \`a la d\'efinition de cette macro,
+il n'assortit pas seulement les caract\`eres du mod\`ele de param\`etre mais aussi
+leurs codes de cat\'egorie.
+^^{macros//arguments de}
+^^{macros//param\`etres de}
+Si le code de cat\'egorie d'un mod\`ele caract\`ere n'est pas \'egal au
+code de cat\'egorie du m\^eme caract\`ere dans l'appel, \TeX\ ne consid\`erera pas
+les caract\`eres comme concordants.
+Cet effet peut produire de myst\'erieux r\'esultats parce que il
+\emph{fait} comme si le mod\`ele concorde.
+Par exemple, si vous avez d\'efini une macro~:
+\csdisplay
+\def\eurodate#1/#2/#3{#2.#1.#3}
+|
+alors le caract\`ere slash devra avoir le m\^eme code de cat\'egorie quand vous
+appelez |\eurodate| que quand vous avez d\'efini |\eurodate|.
+\endolist
+Si le probl\`eme surgit parce que le caract\`ere g\^enant est un argument d'une
+macro, alors
+le rem\`ede usuel est de red\'efinir la macro comme une paire
+de macros |\mstart| et |\mfinish|, o\`u
+|\mstart| doit \^etre appel\'ee avant le texte d'argument
+et |\mfinish| doit \^etre appel\'e apr\`es.
+|\mstart| alors initialise les codes de cat\'egorie et |\mfinish|
+d\'efait le changement, peut-\^etre simplement en finissant un groupe.
+\eix^^{codes de cat\'egorie//changement}
+
+
+\section Faire des fichiers de macro plus lisibles
+
+\null
+\bix^^{macros//rendre lisible des}
+Vous pouvez faire un fichier de macros plus lisible en
+mettant les codes de cat\'egories de l'espace \`a $9$ (caract\`ere ignor\'e)
+et ^|\endlinechar| \ctsref{\endlinechar} \`a $-1$ au d\'ebut du fichier.
+Vous pourrez alors utiliser des espaces et des fins de lignes librement dans les
+d\'efinitions de macro sans obtenir d'espaces ind\'esirables quand vous appelez
+les macros.
+Les caract\`eres ignor\'es ne g\'en\`ereront pas d'espaces, mais agiront encore
+comme terminateurs pour des s\'equences de contr\^ole.
+Si vous voulez r\'eellement un espace, vous pouvez encore l'obtenir avec la
+commande ^|\space| \ctsref\space.
+
+Bien s\^ur vous devrez restaurer les codes de cat\'egories de l'espace et de la fin de ligne
+\`a leur valeur normale ($10$ et $5$, respectivement) \`a la fin du fichier.
+Vous pouvez faire cela soit en englobant tout le fichier dans un groupe soit
+en restaurant les valeurs explicitement. Si vous choisissez d'englober le
+fichier dans un groupe, vous devrez alors aussi mettre ^|\globaldefs| \`a $1$
+pour que toutes les d\'efinitions de macro soient globales et donc visibles
+en dehors du groupe.
+
+Un exemple miniature d'un fichier de macro de cette forme est~:
+
+\csdisplay
+\catcode `\ = 9 \endlinechar = -1
+
+\def \makeblankbox #1 #2 {
+ \hbox{\lower \dp0 \vbox{\hidehrule {#1} {#2}
+ \kern -#1 % overlap rules
+ \hbox to \wd0{\hidevrule {#1} {#2}%
+ \raise \ht0 \vbox to #1{} % vrule height
+ \lower \dp0 \vtop to #1{} % vrule depth
+ \hfil \hidevrule {#2} {#1} }
+ \kern -#1 \hidehrule {#2} {#1} } }
+
+\def\hidehrule #1 #2 {
+ \kern -#1 \hrule height#1 depth#2 \kern -#2 }
+\def\hidevrule #1 #2 {
+ \kern -#1 {\dimen0 = #1 \advance \dimen0 by #2
+ \vrule width \dimen0 } \kern -#2 }
+
+\catcode `\ = 10 \endlinechar = `\^^M
+|
+\noindent
+Sans les changement de code de cat\'egorie,
+ces macros auraient \'et\'e \'ecrites de mani\`ere beaucoup plus compacte, utilisant moins
+d'espaces et plus de `|%|' \`a la fin des lignes.
+\eix^^{macros//rendre lisible des}
+
+\endchapter\byebye
+
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/fusebook.tex b/Master/texmf-dist/doc/plain/impatient-fr/fusebook.tex
new file mode 100644
index 00000000000..2e933cf225c
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/fusebook.tex
@@ -0,0 +1,227 @@
+% 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{Utiliser ce livre}
+
+\chapterdef{usebook}
+
+Ce livre est un guide et un manuel de bricolage pour \TeX. Dans cette
+section nous vous pr\'esentons comment utiliser ce livre avec le maximum de
+b\'en\'efice.
+
+Nous vous recommandons de lire ou survoler les sections
+\chapternum{usebook} \`a \chapternum{examples}, qui vous indiquent ce que
+vous devez savoir afin de pouvoir commencer \`a utiliser \TeX. Si vous avez
+d\'ej\`a de l'exp\'erience dans l'utilisation de \TeX, il vous sera
+toujours utile de conna\^\i tre quels types d'information sont dans ces
+sections du livre. Les sections~\chapternum{concepts} -- \chapternum{tips},
+qui occupent la majeure partie du reste du livre, sont con\c cues pour
+\^etre atteintes directement. N\'eanmoins, si vous \^etes le genre de
+personne qui aime lire les manuels de r\'ef\'erence, vous constaterez qu'il
+\emph{est} possible de proc\'eder s\'equentiellement si vous \^etes pr\^et
+\`a prendre beaucoup de d\'etours au d\'ebut.
+
+Dans la \chapterref{usingtex}, ``Utiliser \TeX'', nous expliquons comment
+produire un document \TeX\ \`a partir d'un fichier source \TeX{}. Nous
+d\'ecrivons \'egalement les conventions pour pr\'eparer ce fichier source,
+expliquons un peu la fa\c con dont \TeX{} fonctionne et vous pr\'esentons
+des ressources suppl\'ementaires disponibles. La lecture de cette section
+vous aidera \`a comprendre les exemples dans la section suivante.
+
+La \chapterref{examples}, ``exemples'', contient une suite d'exemples qui
+illustrent l'utilisation de \TeX. Chaque exemple se compose d'une page de
+sortie ainsi que de la source que nous avons utilis\'ee pour la cr\'eer. Ces
+exemples vous orienteront et vous aideront \`a localiser le mat\'eriel le
+plus d\'etaill\'e dont vous aurez besoin pour faire ce que vous voulez. En
+voyant quelles commandes sont utilis\'ees dans la source, vous saurez o\`u
+rechercher des informations plus d\'etaill\'ees sur la fa\c con de
+r\'ealiser les effets montr\'es dans la sortie. Les exemples peuvent
+\'egalement servir de mod\`eles \`a des docu\-ments simples, bien que nous
+devions vous avertir que parce que nous avons essay\'e de compiler une
+vari\'et\'e de commandes \TeX\ dans un nombre de pages restreint, les
+exemples ne sont pas n\'ecessairement de bonnes ou compl\`etes
+illustrations de la cr\'eation d'imprim\'es.
+
+Quand vous lisez l'explication d'une commande, vous pouvez rencontrer
+quelques termes techniques peu familiers. Dans la \chapterref{concepts},
+``concepts'', nous d\'efinissons et expliquons ces termes. Nous discutons
+\'egalement d'autres mati\`eres dont il n'est pas fait mention ailleurs
+dans le livre. L'int\'erieur de la couverture du livre contient une
+liste de tous les concepts et les pages o\`u elles sont d\'ecrites. Nous
+vous proposons de tirer une copie de cette liste et de la maintenir pr\`es
+de vous pour que vous puissiez identifier et rechercher imm\'ediatement un
+concept peu familier.
+
+Les commandes de \TeX\ sont son vocabulaire primaire et la plus grande
+partie de ce livre est consacr\'ee \`a les expliquer. Dans les
+sections~\chapternum{paras} \`a~\chapternum{general} nous d\'ecrivons les
+commandes. Vous trouverez des informations g\'en\'erales au sujet des
+descriptions de commandes sur la \xrefpg{cmddesc}. Les descriptions de
+commande sont arrang\'ees fonctionnellement, plut\^ot comme un thesaurus,
+ainsi si vous savez ce que vous voulez faire mais ne savez pas quelle
+commande le fait pour vous, vous pouvez utiliser la table des mati\`eres
+pour vous guider vers le bon groupe de commandes. Les commandes que nous
+pensons \`a la fois particuli\`erement utiles et faciles \`a comprendre
+sont indiqu\'ees avec un doigt point\'e~(\hand).
+
+la \chapterref{capsule}, ``sommaire des commandes'', est un index
+sp\'ecialis\'e qui compl\`ete les descriptions plus compl\`etes des
+sections~\chapternum{paras} -- \chapternum{general}. Il \'enum\`ere les
+commandes de \TeX\ alphab\'etiquement, avec une br\`eve explication de
+chaque commande et une r\'ef\'erence de la page o\`u il est d\'ecrit plus
+compl\`etement. Le sommaire vous aidera quand vous ne voulez qu'un rappel
+rapide de la fonction d'une commande.
+
+\TeX\ est un programme complexe qui fonctionne parfois selon sa propre
+volont\'e de mani\`ere myst\'erieuse. Dans la \chapterref{tips}, `` trucs
+et astuces'', nous fournissons des conseils pour r\'esoudre une vari\'et\'e
+de probl\`emes sp\'ecifiques que vous pouvez rencontrer de temps en temps.
+Et si vous \^etes d\'erout\'es par les messages d'erreur de \TeX, vous
+trouverez de l'aide dans la \chapterref{errors}, ``comprendre les messages
+d'erreur''.
+
+Les \'etiquettes grises sur le c\^ot\'e du livre vous aideront \`a
+rep\'erer les parties du livre rapidement. Elles divisent le livre dans les
+parties principales suivantes~:
+\olist
+\li explications g\'en\'erales et exemples
+\li concepts
+\li descriptions de commandes (cinq \'etiquettes plus courtes)
+\li conseils, messages d'erreur et macros d'|eplain.tex|
+\li sommaire des commandes
+\li index
+\endolist
+
+Dans beaucoup d'endroits nous avons fourni des r\'ef\'erences de page de
+^{\texbook} (voir la \xrefpg{ressources} pour une citation). Ces
+r\'ef\'erences s'appliquent \`a la dix-septi\`eme \'edition de \texbook.
+Pour d'autres \'editions, quelques r\'ef\'erences peuvent \^etre
+d\'epass\'ees par une ou deux pages.
+
+\section Conventions syntaxiques
+
+Dans n'importe quel livre concernant la pr\'eparation de fichier source pour un
+ordinateur, il est n\'ecessaire d'indiquer clairement les caract\`eres litt\'eraux qui
+doivent \^etre saisis et distinguer ces caract\`eres du texte explicatif. Nous
+employons la police Computer Moderne de machine \`a \'ecrire pour les {\tt sources
+litt\'erales comme ceci} ainsi que pour les noms des commandes \TeX{}. Quand il y a
+possibilit\'e de confusion, nous enfermons le source \TeX\ entre des guillemets
+simples, `{\tt comme ceci}'. Cependant, nous utilisons de temps en temps des
+parenth\`eses quand nous indiquons des caract\`eres simples tels que (|`|) (vous
+pouvez voir pourquoi).
+
+Pour pr\'eserver vos yeux nous ne mettons normalement les espaces que l\`a o\`u vous
+devez mettre les espaces. Cependant, \`a quelques endroits o\`u nous devons
+souligner un espace, nous employons le caract\`ere `\visiblespace'
+{\catcode `\ =\other\pix^^| |}%
+pour l'indiquer. Assez naturellement, ce caract\`ere s'appelle un \emph{espace
+visible}.
+\pix^^{espace//visible}
+
+\section Descriptions des commandes
+
+\xrdef{cmddesc}
+Les sections~\chapternum{paras} -- \chapternum{general} contiennent une
+description de ce que fait presque chaque commande \TeX. ^^{commandes} Les
+commandes primitives ^^{primitive//commande} et celles de ^{\plainTeX} sont
+couvertes. Les commandes primitives sont celles construites dans le
+programme \TeX, alors que les commandes de \plainTeX{} sont d\'efinies dans
+un fichier standard de d\'efinitions auxiliaires (voir \xref\plainTeX). Les
+seules commandes que nous avons omises sont celles qui ne sont employ\'ees
+que localement dans la d\'efinition de \plainTeX\ (\knuth{annexe~B}{}). Les
+commandes sont organis\'ees comme suit~:
+\ulist\compact
+\li ``Commandes pour composer des paragraphes'', \chapterref{paras},
+traite des caract\`eres, des mots, des lignes et des paragraphes entiers.
+\li ``Commandes pour composer des pages'', \chapterref{pages},
+traite des pages, de leurs composants et de la routine de rendu.
+\li ``Commandes pour les modes horizontaux et verticaux'',
+\chapterref{hvmodes}, comprend les formes correspondantes ou identiques des
+modes hori\-zontaux (les paragraphes et les hbox) et des modes verticaux
+(les pages et les vbox). Ces commandes fournissent les bo\^\i tes, les
+espaces, les r\`egles, les leaders et les alignements.
+\li ``Commandes pour composer les formules de math\'ematiques'',
+\chapterref{math}, donne les possibilit\'es de construction de formules
+math\'ema\-tique.
+\li ``Commande pour les op\'erations g\'en\'erales'',
+\chapterref{general}, fournit les dispositifs de programmation de \TeX\ et
+tout ce qui n'entre dans aucune des autres sections.
+\endulist
+Vous devez voir ces cat\'egories comme \'etant suggestives plut\^ot que
+rigoureuses, parce que les commandes n'entrent pas vraiment de mani\`ere
+ordonn\'ee dans ces (ou tout autre) cat\'egories.
+
+Dans chaque section, les descriptions des commandes sont organis\'ees par
+fonction. Quand plusieurs commandes sont \'etroitement li\'ees, elles sont
+d\'ecrites en tant que groupe~; autrement chaque commande a sa propre
+explication. La description de chaque commande inclut un ou plusieurs
+exemples et le rendu produit par chaque exemple quand ils sont appropri\'es
+(pour quelques commandes ils ne sont pas). Quand vous regardez une sous-section
+ contenant des commandes fonctionnellement li\'ees, regardez en fin
+de sous-section l'article ``voir aussi'' pour vous assurer qu'il ne renvoit
+pas \`a des commandes li\'ees qui seraient d\'ecrites ailleurs.
+
+Quelques commandes sont \'etroitement li\'ees \`a certains concepts. Par
+exemple, les commandes |\halign| et |\valign| sont li\'ees \`a
+``alignement'', la commande |\def| est li\'ee \`a ``macro'' et les commandes
+|\hbox| et |\vbox| sont li\'ees \`a ``bo\^\i te''. Dans ce cas nous avons
+habituellement donn\'e un squelette de description des commandes elles-%
+m\^emes et avons expliqu\'e les id\'ees fondamentales dans le concept.
+
+Les exemples associ\'es aux commandes ont \'et\'e compos\'es avec une
+indentation de paragraphe ^|\parindent|, fix\'e \`a z\'ero pour que les
+paragraphes soient normalement non indent\'es. Cette convention facilite la
+lecture des exemples. Dans les exemples o\`u l'indentation de paragraphe
+est essentielle, nous l'avons explicitement plac\'ee \`a une valeur
+diff\'erente de z\'ero.
+
+Le doigt point\'e devant une commande ou un groupe de commandes indique que
+nous jugeons cette commande ou groupe de commandes particuli\`erement
+utiles et faciles \`a comprendre.
+
+Beaucoup de commandes attendent des ^{arguments} d'un type ou d'un autre
+(voir \xref{arg1}). Les arguments d'une commande fournissent \`a \TeX\ une
+information compl\'ementaire dont il a besoin afin d'ex\'ecuter la
+commande. Chaque argument est indiqu\'e par un terme entre chevrons
+imprim\'e en italique qui indique de quel genre d'argument il s'agit~:
+
+\display{%
+\halign{\<#>\quad&#\hfil\cr
+argument&un seul token ou du texte entre accolades\cr
+code de caract\`ere&un entier entre $0$ et $255$\cr
+dimension&une dimension, c'est-\`a-dire, une longueur\cr
+ressort&un ressort (avec \'etirement et r\'etr\'ecissement)\cr
+nombre&un entier \'eventuellement sign\'e (nombre entier)\cr
+registre&un num\'ero de registre entre $0$ et $255$\cr
+}}
+^^{\<dimension>}
+^^{\<argument>}
+^^{\<code de caract\`ere>}
+^^{\<ressort>}
+^^{\<nombre>}
+^^{\<registre>}
+
+\noindent
+Tous ces termes sont expliqu\'es plus en d\'etail dans la
+\chapterref{concepts}. De plus, nous utilisons parfois les termes comme
+\<liste de token> qui sont explicites ou expliqu\'es dans la description de
+la commande. Quelques commandes ont des formats sp\'eciaux qui exigent des
+accolades ou des mots particuliers. Celles-ci sont plac\'ees dans la m\^eme
+police "grasse" que celle utilis\'ee pour les titres de commande.
+
+Quelques commandes sont des param\`etres (\xref{introparms}) ou des
+entr\'ees de table.
+^^{param\`etres//comme commandes}
+Ceci est indiqu\'e dans le listing de la commande. Vous pouvez employer un
+param\`etre comme argument ou lui assigner une valeur. De m\^eme pour des
+entr\'ees de table. Nous utilisons le terme ``param\`etre'' pour faire
+r\'ef\'erence aux entit\'es telles que |\pageno| qui sont en fait des
+registres mais qui se comportent comme des param\`etres.
+^^{registres//param\`etres comme}
+
+
+\endchapter
+\byebye
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/fusermacs.tex b/Master/texmf-dist/doc/plain/impatient-fr/fusermacs.tex
new file mode 100644
index 00000000000..2fca205015a
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/fusermacs.tex
@@ -0,0 +1,1168 @@
+% 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{Un abr\'eg\'e de \linebreak macros utiles}
+
+\chapterdef{eplain}
+
+Cette section d\'ecrit |eplain.tex|, une collection de macros et autres
+d\'efi\-nitions qui prolongent le plain \TeX. \bix^^|eplain.tex| Les
+noms des diverses macros expliquent leurs buts, mais habituellement
+n'expliquent pas comment elles fonctionnent, ou ne fournissent pas de
+d\'etails explicites sur la fa\c con dont les employer. Cette information
+est contenue dans les fichiers source de |eplain.tex| et dans la
+documentation qui l'accompagne. Voir \headcit{Ressources}{ressources}
+pour la fa\c con d'obtenir |eplain.tex|.
+
+\section{Pr\'eliminaires}
+
+Nous commen\c cons par quelques macros pour des codes de cat\'egorie qui
+changent et des d\'efinitions pratiques pour deux macros utilis\'ees
+fr\'equem\-ment.
+^^{codes de cat\'egorie//d\'efinitions pratiques pour}
+
+\pix^^|\makeactive|
+\pix^^|\letter|
+\pix^^|\other|
+\pix^^|\uncatcodespecials|
+
+\csdisplay
+\def\makeactive#1{\catcode`#1 = \active \ignorespaces}%
+\chardef\letter = 11 \chardef\other = 12
+\def\uncatcodespecials{%
+ \def\do##1{\catcode`##1 = \other}%
+ \dospecials}% Defined in plain.
+|
+
+Pour d\'efinir `|^^M|' comme caract\`ere actif, vous devez englober la
+d\'efini\-tion dans un groupe et appeler quelques moyens
+suppl\'ementaires.
+\ttidxref{^^M}
+La macro \pix^|\letreturn| vous permet de d\'efinir `|^^M|' sans ce code
+suppl\'emen\-taire que vous pouvez voir dans la d\'efinition ci-dessous.
+
+\csdisplay
+{\makeactive\^^M \long\gdef\letreturn#1{\let^^M = #1}}%
+|
+
+Ces macros consomment un, deux, ou trois arguments.
+
+\pix^^|\gobble|
+\pix^^|\gobbletwo|
+\pix^^|\gobblethree|
+\csdisplay
+\def\gobble#1{}\def\gobbletwo#1#2{}%
+\def\gobblethree#1#2#3{}%
+|
+
+Maintenant nous \'etablissons quelques conventions pour lire le reste du
+fichier. Dans le fichier nous autorisons des s\'equences de contr\^ole
+``priv\'es'' qui contiennent `|@|' dans leurs noms. Ces s\'equences de
+contr\^ole ne sont pas accessibles de l'ext\'erieur de ce fichier (\`a moins
+que vous rechangez le code de cat\'egorie du `|@|').
+\xrdef{eplainconv}
+
+\csdisplay
+\catcode`@ = \letter % Allow control sequences with @.
+\let\@plainwlog = \wlog % Don't log register allocations.
+\let\wlog = \gobble
+\newlinechar = `^^J
+|
+
+Les deux macros suivantes fournissent une formulation pratique de
+r\'esultat de diagnostic. \pix^|\loggingall| d\'eclenche tout le
+tra\c cage, mais ne provoque le r\'esultat de la trace que dans le \logfile
+et pas sur votre terminal. \pix^|\tracingboxes| montre compl\`etement
+les bo\^\i tes quand elles sont trac\'ees. (\TeX\ ne montre normalement que
+trois niveaux de bo\^\i te et cinq items dans chaque bo\^\i te.)
+
+
+\csdisplay
+\def\loggingall{\tracingcommands\tw@\tracingstats\tw@
+ \tracingpages\@ne\tracingoutput\@ne
+ \tracinglostchars\@ne\tracingmacros\tw@
+ \tracingparagraphs\@ne\tracingrestores\@ne
+ \showboxbreadth\maxdimen\showboxdepth\maxdimen}%
+\def\tracingboxes{\showboxbreadth = \maxdimen
+ \showboxdepth = \maxdimen}%
+|
+
+
+L'\'epaisseur par d\'efaut des traits est de $0.4$\pt. Vous pouvez produire des traits de n'importe quelle \'epaisseur par
+d\'efaut que vous voulez en red\'efinissant |\vruledefaultwidth|, |\hruledefaultheight| et |\hruledefaultdepth| et
+en employant
+\pix^^|\ehrule|
+|\eh!-rule| et
+\pix^|\evrule| au lieu de |\hrule| et |\vrule|. (le `e' repr\'esente
+``eplain''.)
+^^{filets//\'epaisseur de}
+Si vous donnez une dimension explicite (par exemple, |\ehrule height 16pt|), \TeX \ l'utilisera.
+
+\csdisplay
+\newdimen\hruledefaultheight \hruledefaultheight = 0.4pt
+\newdimen\hruledefaultdepth \hruledefaultdepth = 0.0pt
+\newdimen\vruledefaultwidth \vruledefaultwidth = 0.4pt
+\def\ehrule{\hrule height\hruledefaultheight
+ depth\hruledefaultdepth}%
+\def\evrule{\vrule width\vruledefaultwidth}%
+|
+
+La convention |\%| pour \'ecrire un caract\`ere `|%|' ne marche pas quand vous
+voulez inclure ce caract\`ere dans la token liste de |\write|.
+^^|\write//\'ecrire \b\tt\%\e\ avec|
+^^|%//en sortie|
+Vous pouvez utiliser ^|\percentchar| pour r\'ealiser cela.
+Nous red\'efinissons \'egalement ^|^^L| comme \'etant sans effet pour que vous puissiez l'utiliser
+dans une d\'efinition de macro ou un argument.
+
+\csdisplay
+{\catcode`\% = \other \gdef\percentchar{%}}%
+ \def^^L{\par
+}%
+|
+
+\pix^|\tokstostring| convertit son argument en liste de
+^{tokens de caract\`ere}. Il n'emploie que des d\'eveloppements qui sont manipul\'ees
+dans l'\oe sophage de \TeX. Cette propri\'et\'e est lui n\'ecessaire
+pour travailler avec |\edef|. Elle est utilis\'ee par les macros
+de r\'ef\'erences crois\'ees (\xref{xrefs}).
+
+Pour fractionner l'argument sur l'espace, nous devons
+utiliser deux macros subsidiaires. |\@ttsA| trouve les espaces et
+|\@ttsB| manipule une s\'equence de token sans aucun espace. Chaque
+espace est remplac\'e par le d\'eveloppement de \pix^|\spacesub|.
+
+\csdisplay
+\def\tokstostring#1{\@ttsA#1 \ttsmarkA}%
+\def\@ttsA#1 #2\ttsmarkA{\ifempty{#1}\else
+ \@ttsB #1\@ttsmarkB
+ \ifempty{#2}\else
+ \spacesub\@ttsA#2\ttsmarkA\fi\fi}%
+\def\@ttsB#1{\ifx #1\@ttsmarkB\else
+ \string #1%
+ \expandafter\@ttsB\fi}%
+\def\@ttsmarkB{\@ttsmarkB}% should never be expanded
+\def\spacesub{+}%
+|
+
+\noindent
+\pix^|\ifempty| teste si son argument est vide.
+
+\csdisplay
+\def\ifempty#1{\@ifempty #1\@emptymarkA\@emptymarkB}%
+\def\@ifempty#1#2\@emptymarkB{\ifx #1\@emptymarkA}%
+\def\@emptymarkA{\@emptymarkA}%
+|
+
+La macro ^|\for| impl\'emente une version \TeX\ du ``^{for loop}'' des
+langages de programmation traditionnels. Ces macros viennent directement de
+\LaTeX.
+
+\csdisplay
+\def\for#1:=#2\do#3{\edef\@fortmp{#2}%
+ \ifx\@fortmp\empty \else
+ \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}\fi}%
+\def\@nnil{\@nil}%
+\def\@fornoop#1\@@#2#3{}%
+\def\@forloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil
+ \else #5\def#4{#2} ifx #4\@nnil \else
+ #5\@iforloop #3\@@#4{#5}\fi\fi}%
+\def\@iforloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
+ \let\@nextwhile=\@fornoop \else #4\relax
+ \let\@nextwhile=\@iforloop\fi
+ \@nextwhile#2\@@#3{#4}}%
+|
+
+\pix^|\obeywhitespace| est utile pour reproduire des coupures de
+ligne, des interlignes et des espaces dans votre source. Il combine
+les effets de |\obey!-lines| et |\obey!-spaces|, ^^|\obeyspaces|
+^^|\obeylines| et met \'egalement des espaces au d\'ebut d'une ligne
+devant \^etre imprim\'ee. Les caract\`eres ``tabulation'' ne sont pas affect\'es~; ils
+produisent toujours un ressort normal.
+
+\xrdef{ewhitesp}
+^^{caract\`eres espace}
+^^|\fontdimen|
+^^|\font|
+^^|\letreturn|
+
+\csdisplay
+\def\alwaysspace{\hglue\fontdimen2\the\font \relax}%
+{\makeactive\^^M \makeactive\ %
+\gdef\obeywhitespace{%
+\makeactive\^^M\def^^M{\par\indent}%
+\aftergroup\@removebox% Kill extra paragraph at end.
+\makeactive\ \let =\alwaysspace}}%
+\def\@removebox{\setbox0=\lastbox}
+|
+
+\pix^|\frac| est une bonne fa\c con d'afficher des fractions dans du
+texte quand vous ne voulez pas utiliser |\over| et que mettre simplement ``1/2''
+ne semble pas beau. Cette macro est la r\'eponse \`a
+l'exercise~11.6 de \texbook.^^{fractions//en forme de slash}
+
+\csdisplay
+\def\frac#1/#2{\leavevmode
+ \kern.1em \raise .5ex \hbox{\the\scriptfont0 #1}%
+ \kern-.1em $/$%
+ \kern-.15em \lower .25ex \hbox{\the\scriptfont0 #2}}%
+|
+
+Les macros suivantes produisent des logos qui sont utiles dans le monde \TeX.
+Le logo \AMSTeX\ vient de la \knuth{page~420}{483}. Le logo \LaTeX\
+est l\'eg\`erement modifi\'e par rapport \`a celui de |latex.tex| (nous utilisons une
+police diff\'erente pour le `A')~; de m\^eme, le logo \BibTeX\
+emploit |\sevenrm| au lieu d'une v\'eritable police de capitale-et-
+petite-capitale. Le fichier source |.mf| pour le logo \MF\ est
+donn\'e dans le manuel \MF\~:
+
+\smallskip
+{\narrower\noindent
+^{Knuth, Donald E.},{\sl The {\logosl METAFONT}book}.
+ Reading, Mass.: Addison-Wesley, 1986.\par}
+\smallskip
+\pix^^|\LaTeX|
+\pix^^|\AMSTeX|
+\pix^^|\BibTeX|
+\pix^^|\MF|
+
+\csdisplay
+\def\LaTeX{L\kern-.26em \raise.6ex\hbox{\fiverm A}%
+ \kern-.15em TeX}%
+\def\AMSTeX{$\cal A\kern-.1667em \lower.5ex\hbox{$\cal M$}%
+ \kern-.125em S$-\TeX}%
+\def\BibTeX{{\rm B\kern-.05em {\sevenrm I\kern-.025em B}%
+ \kern-.08em T\kern-.1667em \lower.7ex\hbox{E}%
+ \kern-.125emX}}%
+\font\mflogo = logo10
+\def\MF{{\mflogo META}{\tenrm \-}{\mflogo FONT}}%
+|
+
+Les deux macros suivantes produisent des bo\^\i tes. \pix^|\blackbox|
+produit une ``bulle carr\'ee'', utilis\'e dans les macros de liste
+(\xref{listmacs}). \pix^|\makeblankbox| (de \knuth{page~311}{363--364})
+produit un rectangle non rempli, avec l'\'epaisseur des traits de
+bordure donn\'ee par les arguments.
+
+\csdisplay
+\def\blackbox{\vrule height .8ex width .6ex depth -.2ex}%
+\def\makeblankbox#1#2{%
+ \hbox{\lower\dp0\vbox{\hidehrule{#1}{#2}%
+ \kern -#1% overlap rules
+ \hbox to \wd0{\hidevrule{#1}{#2}%
+ \raise\ht0\vbox to #1{}% vrule height
+ \lower\dp0\vtop to #1{}% vrule depth
+ \hfil\hidevrule{#2}{#1}}%
+ \kern-#1\hidehrule{#2}{#1}}}}%
+\def\hidehrule#1#2{\kern-#1\hrule height#1 depth#2
+ \kern-#2}%
+\def\hidevrule#1#2{\kern-#1{\dimen0 = #1
+ \advance\dimen0 by #2 \vrule width\dimen0}\kern-#2}%
+|
+
+\pix^|\numbername| produit la forme en toute lettres d'un nombre. Si
+le nombre est plus grands que dix, la macro ne reproduit que les
+chiffres de son argument.
+
+\csdisplay
+\def\numbername#1{\ifcase#1%
+ zero\or one\or two\or three\or four\or five%
+ \or six\or seven\or eight\or nine\or ten\or #1\fi}%
+|
+
+\pix^|\testfileexistence| d\'etermine si un fichier |\jobname.#1| est
+non\-vide et place |\if!-fileexists| convenablement.
+^^{fichiers//tester l'existence de}
+Le nom de fichier dans l'argument
+n'a pas besoin de finir dans un token d'espace puisque la macro
+fournit la marque d'espace.
+
+\csdisplay
+\newif\iffileexists
+\def\testfileexistence#1{\begingroup
+ \immediate\openin0 = \jobname.#1\space
+ \ifeof 0\global\fileexistsfalse
+ \else \global\fileexiststrue\fi
+ \immediate\closein0
+ \endgroup}%
+|
+
+
+\section Affichages
+
+Par d\'efaut, \TeX\ centre le mat\'eriel affich\'e (le mat\'eriel
+entre |$$|). ^^{affichages, formatage} \pix^|\leftdisplays| provoque
+des affichages justifi\'es \`a gauche par d\'efaut. Vous pouvez
+retourner aux affichages centr\'es avec \pix^|\centereddisplays|.
+
+Les macros ici sont plus g\'en\'eralistes qu'elles doivent l'\^etre pour ne faire
+que des affichages justifi\'es \`a gauche. Pour chaque affichage,
+\pix^|\ifeqno| sera vrai si un |\eqno| appara\^\i t dans l'affichage.
+\pix^|\ifleqno| sera vrai si un |\leqno| appara\^\i t. Si l'une ou l'autre
+sorte d'\'equation num\'erot\'ee appara\^\i t, \pix^|\eqn| produit le texte
+du num\'ero de l'\'equation. \pix^|\eq| produit toujours le texte de
+l'\'equation lui-m\^eme.
+
+Ces macros sont bas\'ees sur le code de la \knuth{page~376}{434}.
+
+\csdisplay
+\newif\ifeqno \newif\ifleqno
+\newtoks\@eqtoks \newtoks\@eqnotoks
+\def\eq{\the\@eqtoks}\def\eqn{\the\@eqnotoks}%
+\def\displaysetup#1$${%
+ \@displaytest#1\eqno\eqno\@displaytest}%
+\def\@displaytest#1\eqno#2\eqno#3\@displaytest{%
+ \if !#3!% No \eqno, check for \leqno:
+ \@ldisplaytest#1\leqno\leqno\@ldisplaytest
+ \else
+ \eqnotrue \leqnofalse % Have \eqno, not \leqno.
+ \@eqnotoks = {#2}\@eqtoks = {#1}%
+ \fi
+ \generaldisplay$$}%
+\def\@ldisplaytest#1\leqno#2\leqno#3\@ldisplaytest{%
+ \@eqtoks = {#1}%
+ \if !#3!%
+ \eqnofalse % No \leqno; we're done.
+ \else
+ \eqnotrue \leqnotrue % Have \leqno.
+ \@eqnotoks = {#2}%
+ \fi}%
+|
+
+Vous pouvez composer des affichages diff\'eremment en d\'efinissant votre
+propre macro analogue \`a \pix^|\leftdisplays|. La d\'efinition de macro doit
+placer l'appel \`a |\display!-setup| dans |\every!-display| ^^|\everydisplay|
+afin de s'assurer que ^^|\displaysetup| |\dis!-play!-setup| soit appel\'e au
+d\'ebut de chaque affichage. La d\'efinition de macro doit \'egalement inclure
+une d\'efinition de ^|\generaldisplay|.
+
+\csdisplay
+\newtoks\previouseverydisplay
+\def\leftdisplays{%
+ \previouseverydisplay = \everydisplay
+ \everydisplay =
+ {\the\previouseverydisplay \displaysetup}%
+ \def\generaldisplay{%
+ \leftline{%
+ \strut \indent \hskip\leftskip
+ \dimen0 = \parindent
+ \advance\dimen0 by \leftskip
+ \advance\displaywidth by -\dimen0
+ \@redefinealignmentdisplays
+ \ifeqno \ifleqno
+ \kern-\dimen0
+ \rlap{$\displaystyle\eqn$}%
+ \kern\dimen0
+ \fi\fi
+ $\displaystyle{\eq}$%
+ \ifeqno \ifleqno\else
+ \hfill $\displaystyle{\eqn}$%
+ \fi\fi}}}%
+\def\centereddisplays{\let\displaysetup = \relax}%
+|
+
+%\filbreak
+\pix^|\leftdisplays| doit travailler dans la douleur pour s'assurer que
+|\dis!-play!-lines|, ^|\eqalignno| ^^|\displaylines| et ^|\leqalignno|
+fonctionnent toujours correctement. |\eq| est compos\'e en mode math\'ematique
+et |\halign| est ill\'egal dans ce mode. ^^|\halign//ill\'egal dans le mode
+math\'ematique| Nous utilisons ^|\vcenter| pour changer le contexte pour que
+|\halign| redevienne l\'egal. Nous enlevons \'egalement les commandes |\hfil| \`a
+gauche du patron pour obtenir la justification \`a droite. \`a part ces
+changements, les macros sont les m\^emes que dans |plain.tex|.
+
+\csdisplay
+\def\@redefinealignmentdisplays{%
+ \def\displaylines##1{\displ@y
+ \vcenter{\halign{\hbox to\displaywidth{$\@lign
+ \displaystyle####\hfil$}\crcr##1\crcr}}}%
+ \def\eqalignno##1{\displ@y
+ \vcenter{\halign to\displaywidth{%
+ $\@lign\displaystyle{####}$\tabskip\z@skip
+ &$\@lign\displaystyle{{}####}$
+ \hfil\tabskip\centering
+ &\llap{$\@lign####$}\tabskip\z@skip\crcr
+ ##1\crcr}}}%
+ \def\leqalignno##1{\displ@y
+ \vcenter{\halign to\displaywidth{%
+ $\@lign\displaystyle{####}$\tabskip\z@skip
+ &$\@lign\displaystyle{{}####}
+ $\hfil\tabskip\centering
+ &\kern-\displaywidth
+ \rlap{\kern-\parindent\kern-\leftskip$
+ \@lign####$}%
+ \tabskip\displaywidth\crcr
+ ##1\crcr}}}}%
+|
+
+
+\section heure du jour
+
+Quand \TeX\ d\'emarre, il d\'etermine les valeurs des param\`etres ^|\time|,
+^|\day|, ^|\month| et ^|\year|.
+^^{heure du jour}^^{date}
+\pix^|\monthname|
+produit le nom du mois, abr\'eg\'e en trois lettres.
+\pix^|\timestring| produit l'heure courante, comme dans ``1:14\thinspace
+p.m.''. \pix^|\timestamp| produit le texte de la date compl\`ete, comme dans
+``23 avr 1964\quad 1:14\thinspace p.m.''.
+
+\csdisplay
+\def\monthname{%
+ \ifcase\month
+ \or Jan\or Feb\or Mar\or Apr\or May\or Jun%
+ \or Jul\or Aug\or Sep\or Oct\or Nov\or Dec%
+ \fi}%
+\def\timestring{\begingroup
+ \count0 = \time \divide\count0 by 60
+ \count2 = \count0 % The hour.
+ \count4 = \time \multiply\count0 by 60
+ \advance\count4 by -\count0 % The minute.
+ \ifnum\count4<10 \toks1 = {0}% Get a leading zero.
+ \else \toks1 = {}%
+ \fi
+ \ifnum\count2<12 \toks0 = {a.m.}%
+ \else \toks0 = {p.m.}%
+ \advance\count2 by -12
+ \fi
+ \ifnum\count2=0 \count2 = 12 \fi % Make midnight `12'.
+ \number\count2:\the\toks1 \number\count4
+ \thinspace \the\toks0
+\endgroup}%
+\def\timestamp{\number\day\space\monthname\space
+ \number\year\quad\timestring}%
+|
+
+
+\section Listes
+
+\null
+\xrdef{listmacs}
+\bix^^{listes d'\'el\'ements}
+\bix^^{\enumerations}
+\pix^|\numberedlist| produit des listes num\'erot\'ees~; |\endnumberedlist| les
+termine.
+\pix^|\unorderedlist| est analogue.
+Pour l'une ou l'autre de ces derni\`eres, les items \`a l'int\'erieur des listes
+commencent par \pix^|\li| (``list item''). Vous pouvez mettre
+\pix^|\listcompact| au d\'ebut d'une liste si vous ne voulez aucun espace
+additionnel entre les \'el\'ements de cette liste. Des listes peuvent \^etre
+imbriqu\'ees arbitrairement.
+
+Vous pouvez contr\^oler plus g\'en\'eralement l'espacement entre les
+\'el\'e\-ments en assignant des valeurs aux registres \'enum\'er\'es
+ci-dessous. Si les \'el\'ements de vos listes tendent \`a \^etre
+longs, vous pourriez vouloir rendre |\interitemskip| diff\'erent de
+z\'ero. L'indentation gauche de chaque \'el\'ement de liste est
+donn\'ee par |\par!-indent| plus |\list!-left!-indent|~; l'indentation
+droite de chaque \'el\'ement de liste est donn\'ee par |\list!-right!|% indent|.
+
+\csdisplay
+\newskip\abovelistskip \abovelistskip = .5\baselineskip
+\newskip\interitemskip \interitemskip = 0pt
+\newskip\belowlistskip \belowlistskip = .5\baselineskip
+\newdimen\listleftindent \listleftindent = \parindent
+\newdimen\listrightindent \listrightindent = 0pt
+\def\listcompact{\interitemskip = 0pt \relax}%
+|
+
+Les listes num\'erot\'ees et non num\'erot\'ees utilisent les macros qui suivent.
+Nous ne changeons pas |\parindent|, puisque beaucoup de macros existantes,
+comme par exemple, |\footnote|, en d\'ependent. Nous devons expliquer la
+possibilit\'e que les \'el\'ements fassent plus d'un paragraphe de long. Dans ce
+cas-ci, tous les paragraphes apr\`es le premier sont indent\'es. Nous
+utilisons |\leftskip| et |\rightskip| pour indenter les \'el\'ements d'une liste.
+L'indentation des affichages est expliqu\'ee par des changements de |\every!-%
+dis!-play|. ^^|\everydisplay|
+
+\csdisplay
+\newdimen\@listindent
+\def\beginlist{%
+ \@listindent = \parindent
+ \advance\@listindent by \listleftindent
+ \everydisplay = \expandafter{\the\everydisplay
+ % Don't lose user's \everydisplay:
+ \advance\displayindent by \@listindent
+ \advance\displaywidth by -\@listindent
+ \advance\displaywidth by -\listrightindent}%
+ \nobreak\vskip\abovelistskip
+ \parskip = 0pt
+ % \leftskip shifts nested lists to the right on the page.
+ \advance\leftskip by \@listindent
+ \advance\rightskip by \listrightindent}%
+\def\printitem{\par\noindent
+ \llap{\hskip-\listleftindent \marker \enspace}}%
+\def\endlist{\vskip\belowlistskip}%
+|
+
+\noindent
+Vous pouvez changer la mani\`ere dont les labels d'\'el\'ements sont compos\'ees en
+red\'efinissant la macro |\numbered!-marker|. \pix^^|\numberedmarker|
+
+\csdisplay
+\newcount\numberedlistdepth \newcount\itemnumber
+\newcount\itemletter
+\def\numberedmarker{%
+ \ifcase\numberedlistdepth
+ (impossible)%
+ \or \itemnumberout)%
+ \or \itemletterout)%
+ \else *%
+ \fi}%
+|
+
+\noindent Voici les d\'efinitions de |\numberedlist| et de
+|\unorderedlist|.
+ces d\'efini\-tions ont la m\^eme structure.
+
+\csdisplay
+\def\numberedlist{\environment{@numbered-list}%
+ \advance\numberedlistdepth by 1
+ \itemnumber = 1 \itemletter = `a
+ \beginlist \let\marker = \numberedmarker
+ \def\li{%
+ \ifnum\itemnumber=1\else \vskip\interitemskip \fi
+ \printitem
+ \advance\itemnumber by 1 \advance\itemletter by 1
+ }}%
+\def\itemnumberout{\number\itemnumber}%
+\def\itemletterout{\char\itemletter}%
+\def\endnumberedlist{\par
+ \endenvironment{@numbered-list}\endlist}%
+!bigskip
+\newcount\unorderedlistdepth
+\def\unorderedmarker{%
+ \ifcase\unorderedlistdepth
+ (impossible)%
+ \or \blackbox
+ \or ---%
+ \else *%
+ \fi}%
+\def\unorderedlist{\environment{@unordered-list}%
+ \advance\unorderedlistdepth by 1
+ \beginlist \itemnumber = 1
+ \let\marker = \unorderedmarker
+ \def\li{%
+ \ifnum\itemnumber=1\else \vskip\interitemskip \fi
+ \printitem \advance\itemnumber by 1
+ }}%
+\def\endunorderedlist{\par
+ \endenvironment{@unordered-list}\endlist}%
+|
+
+\eix^^{listes d'\'el\'ements}
+\eix^^{\enumerations}
+
+
+\section Listing verbatim
+
+La macro \pix^|\listing| produit le listing verbatim d'un fichier sp\'ecifi\'e
+en police |\tt|.
+Elle est bas\'ee sur le code de la \knuth{page~380}{439}.
+Les tabulations produisent un montant d'espace fixe et les sauts de page
+produisent une coupure de page. D'autres caract\`eres de contr\^ole produisent
+ce qui s'av\`ere \^etre \`a cette position dans la police, qui n'est g\'en\'eralement
+pas tr\`es utile. En red\'efinissant |\setup!-listing!-hook|,
+\pix^^|\setuplistinghook| vous pouvez prendre les mesures compl\'ementaires
+qui sont appropri\'ees pour vos polices et\slash ou environnements particuliers
+avant que le fichier ne soit lu.
+
+\csdisplay
+\def\listing#1{%
+ \par \begingroup \@setuplisting \setuplistinghook
+ \input #1 \endgroup}%
+\let\setuplistinghook = \empty
+\def\@setuplisting{%
+ \uncatcodespecials
+ \obeywhitespace \makeactive\` \makeactive\^^I
+ \def^^L{\vfill\eject}\tt}%
+{\makeactive\` \gdef`{\relax\lq}}% Defeat ligatures.
+{\makeactive\^^I\gdef^^I{\hskip8\fontdimen2\tt \relax}}%
+|
+
+
+\section Table des mati\`eres
+
+\null ^^{table des mati\`eres}
+La macro \pix^|\writetocentry| \'ecrit une macro dans le fichier
+|\jobname.toc|. Le premier argument de |\writetocentry|, par exemple,
+``chapitre'', est utilis\'e pour composer le nom de la macro appel\'ee. Le
+deuxi\`eme argument est le texte qui doit appara\^\i tre dans la table des
+mati\`eres. |\writetocentry| appose le num\'ero de la page \`a l'appel de la macro.
+Par exemple~:
+\csdisplay
+\writetocentry{chapter}{Introduction}
+|
+\noindent
+produira la ligne~:
+\csdisplay
+\tocchapterentry{Introduction}{2}
+|
+\noindent dans le fichier |.toc|, ce qui indique que `Introduction' d\'ebute
+en page 2.
+
+Vous pouvez utiliser |\writenumberedtocentry| pour apporter un troisi\`eme
+param\`etre, tel qu'un num\'ero de chapitre. Par exemple~:
+\csdisplay
+\writenumberedtocentry{chapter}{The second chapter}{2}
+|
+\noindent \'ecrira une ligne~:
+\csdisplay
+\tocchapterentry{The second chapter}{2}{14}
+|
+\noindent
+Vous pouvez aussi faire un |\write| vers le |\tocfile| vous-m\^eme.
+
+\csdisplay
+\newwrite\tocfile \newif\iftocfileopened
+\def\opentocfile{\iftocfileopened\else
+ \tocfileopenedtrue
+ \immediate\openout\tocfile = \jobname.toc
+\fi}%
+\def\writenumberedtocentry#1#2#3{\ifrewritetocfile
+ \opentocfile
+ \write\tocfile{%
+ \expandafter\noexpand \csname toc#1entry\endcsname
+ {#2}{#3}{\folio}}%
+\ignorespaces\fi}%
+\def\writenumberedtocentry#1#2#3{\ifrewritetocfile
+ \opentocfile
+ \write\tocfile{%
+ \expandafter\noexpand \csname toc#1entry\endcsname
+ {#2}{#3}{\folio}}%
+\ignorespaces\fi}%
+|
+
+Pour produire une table des mati\`eres, lisez le fichier |.toc| avec
+\pix^|\readtocfile|. Vous devez appeler |\read!-tocfile| avant le premier
+|\write!-toc!-entry|. Quand vous traitez la table des mati\`eres sans la
+r\'eg\'en\'erer, vous ne devriez pas r\'ecrire le fichier |.toc|---si vous le
+faites, son contenu sera perdu. La commande |\rewrite!-tocfile!-false|
+emp\^echera la r\'e\'ecriture.
+
+\csdisplay
+\newif\ifrewritetocfile \rewritetocfiletrue
+\def\readtocfile{\testfileexistence{toc}%
+ \iffileexists
+ \input \jobname.toc
+ \ifrewritetocfile \opentocfile \fi
+ \fi}%
+|
+
+Voici quelques d\'efinitions de macros |\toc|\dots|entry| possibles. Ces
+d\'efinitions ne sont indiqu\'ees que comme exemple---aligner des traits \`a
+travers la ligne n'est normalement pas la meilleure mani\`ere de composer une
+table des mati\`eres.
+
+\csdisplay
+\def\tocchapterentry#1#2{\line{\bf #1 \dotfill\ #2}}%
+\def\tocsectionentry#1#2{%
+ \line{\quad\sl #1 \dotfill\ \rm #2}}%
+\def\tocsubsectionentry#1#2{%
+ \line{\qquad\rm #1 \dotfill\ #2}}%
+|
+
+
+\section R\'ef\'erences crois\'ees
+
+\null ^^{r\'ef\'erences crois\'ees}
+\xrdef{xrefs}
+Les macros qui suivent fournissent des r\'ef\'erences crois\'ees symboliques, pour
+que vous puissiez vous r\'ef\'erer \`a quelque chose dans une autre partie d'un
+document par son nom et non son num\'ero de page r\'eel. \pix^|\xrdef||{foo}|
+d\'efinit une \'etiquette |foo| comme \'etant le num\'ero de page courant et
+\pix^|\xrefn||{foo}| produit ce num\'ero de page, par exemple, $77$. Plus
+fr\'equement, vous voudrez dire quelque chose comme ``voir p.\thinspace77'',
+ainsi \pix^|\xref||{foo}| produit ` p.\thinspace 77''. Si |foo| n'est pas
+d\'efini, un message d'avertissement sera donn\'e. |\xrefwarningfalse| supprime
+l'avertissement.
+
+Ces macros n'assurent aucune protection contre des d\'efinitions dupliqu\'ees.
+Vous pouvez v\'erifier ces d\'efinitions dupliqu\'ees en triant le fichier de
+r\'ef\'erences crois\'ees et en v\'erifiant, m\'ecaniquement ou \emph{de visu}, les
+d\'efinitions adjacentes du m\^eme symbole.
+
+\csdisplay
+\newif\ifxrefwarning \xrefwarningtrue
+\def\xrdef#1{\begingroup
+ \xrlabel{#1}%
+ \edef\@wr{\@writexrdef{\the\@xrlabeltoks}}%
+ \@wr
+ \endgroup \ignorespaces}%
+\def\@writexrdef#1{\write\reffile{%
+ \string\gdef
+ \expandafter\string\csname#1\endcsname
+ {\noexpand\folio}\percentchar}}%
+\def\xrefnumber#1{%
+ \xrlabel{#1}%
+ % \@xrlabeltoks now has the control sequence name.
+ \toks0 =
+ \expandafter{\csname\the\@xrlabeltoks\endcsname}%
+ \expandafter \ifx\the\toks0\relax
+ \ifxrefwarning \message{Undefined label
+ `\tokstostring{#1}'.}\fi
+ {\let\spacesub = \space
+ \expandafter\xdef\the\toks0
+ {`{\tt \tokstostring{#1}}'}}\fi
+ \the\toks0}%
+\def\xref#1{p.\thinspace\xrefnumber{#1}}%
+\def\xrefn#1{\xrefnumber{#1}}%
+|
+
+Cette macro transforme une \'etiquette en liste de tokens de caract\`ere dans le
+registre de tokens |\labeltoks|. Une \'etiquette peut inclure des blancs et
+des s\'equences de contr\^ole aussi bien que les caract\`eres normaux, mais elle
+ne peut pas inclure d'accolades.
+
+\csdisplay
+\newtoks\@xrlabeltoks
+\def\xrlabel#1{\begingroup
+ \escapechar = `\_ \edef\tts{\tokstostring{#1_}}%
+ \global\@xrlabeltoks = \expandafter{\tts}%
+ \endgroup}%
+|
+
+Il faut deux passages pour obtenir des r\'ef\'erences crois\'ees correctes,
+puisque les d\'efinitions sont \'ecrites dans le fichier auxiliaire
+|\jobname.aux|. \pix^|\readreffile| les relit. Si vous ne saisissez pas
+cette commande avant la premi\`ere d\'efinition, vous perdrez toutes les
+d\'efinitions de l'ex\'ecution pr\'ec\'edente.
+
+\csdisplay
+\newwrite\reffile \newif\ifreffileopened
+\def\openreffile{\ifreffileopened\else
+ \reffileopenedtrue
+ \immediate\openout\reffile = \jobname.aux
+ \fi}%
+\def\readreffile{%
+ \testfileexistence{aux}%
+ \iffileexists
+ \begingroup
+ \@setletters
+ \input \jobname.aux
+ \endgroup
+ \else
+ \message{No cross-reference file; I won't give you
+ warnings about undefined labels.}%
+ \xrefwarningfalse
+ \fi
+ \openreffile}%
+\def\@setletters{%
+ \catcode`_ = \letter \catcode`+ = \letter
+ \catcode`- = \letter \catcode`@ = \letter
+ \catcode`0 = \letter \catcode`1 = \letter
+ \catcode`2 = \letter \catcode`3 = \letter
+ \catcode`4 = \letter \catcode`5 = \letter
+ \catcode`6 = \letter \catcode`7 = \letter
+ \catcode`8 = \letter \catcode`9 = \letter
+ \catcode`( = \letter \catcode`) = \letter}%
+|
+
+^^{\equations, labelisation}
+Vous pouvez donnez des noms symboliques aux \'equations de la m\^eme mani\`ere,
+en utilisant \pix^|\eqdef| et \pix^|\eqref|. |\eqdef| ins\`ere sa propre
+commande |\eqno|, donc il doit \^etre appel\'e \`a un endroit o\`u |\eqno| est
+l\'egal.
+
+\csdisplay
+\newcount\eqnumber
+\def\eqdef#1{\global\advance\eqnumber by 1
+ \expandafter\xdef
+ \csname#1eqref\endcsname{\the\eqnumber}%
+ \immediate\write\reffile{\string\def
+ \expandafter\string\csname#1eqref\endcsname
+ {\the\eqnumber}}%
+ \eqno
+ \eqprint{\the\eqnumber}}%
+|
+
+|\eqref| produit le ``(num\'ero de l'\'equation)''. Vous pouvez obtenir un
+formatage plus fantaisiste en red\'efinissant \pix^|\eqprint|. Par exemple,
+vous pourriez la red\'efinir pour que les num\'eros d'\'equation incluent le
+num\'ero du chapitre.
+
+\csdisplay
+\def\eqref#1{%
+ \expandafter \ifx \csname#1eqref\endcsname \relax
+ \ifxrefwarning \message{Undefined equation label
+ `#1'.}\fi
+ \expandafter\def\csname#1eqref\endcsname{00}%
+ \else \eqprint{\csname#1eqref\endcsname}%
+ \fi}%
+\def\eqprint#1{(#1)}%
+|
+
+
+\section Environnements
+
+\null ^^{environnements} Ces macros vous permettent de d\'efinir vos propres
+groupes appel\'es environnements pour des parties de votre manuscrit. Comme
+les groupes de \TeX, ces groupes peuvent \^etre embo\^\i t\'es, et en fait leur
+embo\^\i tement peut \^etre entrelac\'e avec l'embo\^\i tement des groupes de \TeX. Si
+les noms au d\'ebut et \`a la fin d'un environnement ne s'assortissent pas,
+vous recevrez un message d'erreur. Les macros sont con\c cues pour que le
+message que vous recevez quand une telle erreur se produit vous donne une
+bonne chance de localiser la cause de l'erreur facilement.
+
+Vous d\'ebutez un environnement avec
+\pix^^|\environment|
+|\envi!-ron!-ment| |{foo}| et le finissez avec |\endenvironment{foo}|, o\`u
+|foo| est le nom de l'environnement. Nos macros am\'eliorent l\'eg\`erement la
+r\'eponse \`a l'exercice~5.7 du \texbook, en faisant quelques contr\^oles sur les
+paires |\begingroup| et |\endgroup|, et s'assurant aussi que les paires
+|\environment| et |\endenvironment| s'assortissent.
+
+\csdisplay
+\def\environment#1{\ifx\@groupname\undefined\else
+ \errhelp = \@unnamedendgrouphelp
+ \errmessage{`\@groupname' was not closed by
+ \string\endenvironment}\fi
+ \def\@groupname{#1}%
+ \begingroup
+ \let\@groupname = \undefined \ignorespaces}%
+\def\endenvironment#1{\endgroup
+ \def\@thearg{#1}%
+ \ifx\@groupname\@thearg
+ \else
+ \ifx\@groupname\undefined
+ \errhelp = \@isolatedendenvironmenthelp
+ \errmessage{Isolated
+ \string\endenvironment\space for `#1'}%
+ \else
+ \errhelp = \@mismatchedenvironmenthelp
+ \errmessage{Environment `#1' ended,
+ but `\@groupname' started}%
+ \endgroup % Probably a typo in the names.
+ \fi
+ \fi
+ \let\@groupname = \undefined \ignorespaces}%
+|
+
+Nous d\'efinissons \'egalement des messages d'aide pour chacune des erreurs
+ci-dessus. ^^|\newhelp|
+
+\csdisplay
+\newhelp\@unnamedendgrouphelp{%
+ Most likely, you just forgot an^^J%
+ \string\endenvironment.
+ Maybe you should try inserting another^^J%
+ \string\endgroup to recover.}%
+\newhelp\@isolatedendenvironmenthelp{%
+ You ended an environment X, but^^J%
+ no \string\environment\space to start it
+ is anywhere in sight.^^J%
+ You might also be at an
+ \string\endenvironment\space that would match^^J%
+ a \string\begingroup, i.e., you forgot an
+ \string\endgroup.}%
+\newhelp\@mismatchedenvironmenthelp{%
+ You started an environment X, but^^J%
+ you ended it with Y. Maybe you made a typo
+ in one or the other^^J%
+ of the names.}%
+|
+
+Certains environnements ne doivent pas se produire dans d'autres
+environnements. Appelons ces derniers ``environnements externes''
+(outer). |\check!-env| v\'erifie qu'aucun environnement externe n'est
+actuellement effectif, sinon il se plaint. Pour utiliser |\check!-env|,
+vous devez mettre la commande |\environment!-true| au d\'ebut de chaque
+environnement externe.
+
+\csdisplay
+\newif\ifenvironment
+\def\checkenv{%
+ \ifenvironment
+ \errhelp = \@interwovenenvhelp
+ \errmessage{Interwoven environments}%
+ \endgroup
+ \fi}%
+\newhelp\@interwovenenvhelp{%
+ Perhaps you forgot to end the previous^^J%
+ environment? I'm finishing off the current group,^^J%
+ hoping that will fix it.}%
+|
+
+
+\section Justification
+
+\bix^^{cadr\'e \`a gauche}
+\bix^^{cadr\'e \`a droite}
+\bix^^{texte centr\'e}
+Les trois macros \pix^|\flushleft|, \pix^|\flushright| et
+\xrdef{eplaincenter}
+\pix^|\center| justifient le texte des
+lignes suivantes de la mani\`ere indiqu\'ee. La commande doit
+appara\^\i tre seule sur une ligne. La commande et le texte
+doivent \^etre enferm\'es dans un groupe---%
+la fin du groupe
+indique la fin du texte. Le groupe entier est plac\'e comme un paragraphe
+simple, avec des lignes compl\'et\'ees d'un c\^ot\'e ou de l'autre comme
+indiqu\'e. Les lignes blanches sont reproduites.
+
+\csdisplay
+\begingroup
+ \catcode `\^^M = \active
+ \globaldefs = 1 %
+ \def\flushleft{\beforejustify %
+ \aftergroup\@endflushleft %
+ \def^^M{\null\hfil\break}%
+ \def\@eateol^^M{}\@eateol}%
+ \def\flushright{\beforejustify %
+ \aftergroup\@endflushright %
+ \def^^M{\break\null\hfil}%
+ \def\@eateol^^M{\hfil\null}\@eateol}%
+ \def\center {\beforejustify %
+ \aftergroup\@endcenter %
+ \def^^M{\hfil\break\null\hfil}%
+ \def\@eateol^^M{\hfil\null}\@eateol}%
+\endgroup
+|
+
+Les commandes suivantes sont appel\'ees en raison du |\after!-group|
+^^|\aftergroup|
+dans les d\'efinitions de |\flush!-left|, |\flush!- right| et |\center|.
+Elles effectuent les op\'erations de nettoyage n\'ecessaires .
+
+
+\csdisplay
+\def\@endflushleft{\unpenalty
+ {\parfillskip = 0pt plus 1 fil\par}%
+ \ignorespaces}%
+\def\@endflushright{%
+ % Remove the \hfil\null\break we just put on.
+ \unskip \setbox0=\lastbox \unpenalty
+ % We have fil glue at the left of the line;
+ % \parfillskip shouldn't affect that.
+ {\parfillskip = 0pt \par}\ignorespaces}%
+\def\@endcenter{%
+ % Remove the \hfil\null\break we just put on.
+ \unskip \setbox0=\lastbox \unpenalty
+ % We have fil glue at the left of the line;
+ % \parfillskip must balance it.
+ {\parfillskip = 0pt plus 1fil \par}\ignorespaces}%
+\def\beforejustify{%
+ \par\noindent
+ \catcode`\^^M = \active
+ \checkenv \environmenttrue}%
+|
+
+\eix^^{cadr\'e \`a gauche}
+\eix^^{cadr\'e \`a droite}
+\eix^^{texte centr\'e}
+
+
+\section Tables
+
+La macro \pix^|\makecolumns| vous permet de donner toutes les entr\'ees d'une
+table sans vous inqui\'eter de l'endroit o\`u les colonnes se coupent. Par
+exemple, si vous saisissez une longue liste alphab\'etique qui sera compos\'ee
+en plusieurs colonnes, vous ne saurez habituellement pas \`a l'avance o\`u une
+colonne finit et o\`u la suivante commence. Par ailleurs, si un autre \'el\'ement
+est ajout\'e, les coupures de colonne changeront.
+
+|\makecolumns| prend deux arguments (d\'elimit\'es)~: le nombre total de
+rang\'ees et le nombre de colonnes de la table. Par exemple, `|\makecolumns
+37/3:|' d\'esigne une table de trois colonnes dont les rang\'ees sont les $37$
+prochaines lignes. Vous pouvez ajuster le positionnement de la table sur la
+page en changeant |\parindent|, qui d\'etermine l'espace \`a gauche et
+|\hsize|, qui d\'etermine l'espace entre la marge gauche de la page et la
+droite du bloc. Vous pouvez permettre une coupure de page au-dessus du
+|\valign|
+^^|\valign//utilis\'e dans {\tt\\makecolumns}|
+en changeant \pix^|\abovecolumnspenalty|..
+
+\csdisplay
+\newcount\abovecolumnspenalty
+\abovecolumnspenalty = 10000
+\newcount\@linestogo % Lines remaining to process.
+\newcount\@linestogoincolumn % Lines remaining in column.
+\newcount\@columndepth % Number of lines in a column.
+\newdimen\@columnwidth % Width of each column.
+\newtoks\crtok \crtok = {\cr}%
+\def\makecolumns#1/#2: {\par \begingroup
+ \@columndepth = #1 \advance\@columndepth by #2
+ \advance\@columndepth by -1
+ \divide \@columndepth by #2
+ \@linestogoincolumn = \@columndepth \@linestogo = #1
+ \def\@endcolumnactions{%
+ \ifnum \@linestogo<2
+ \the\crtok \egroup \endgroup \par
+ % End \valign and \makecolumns.
+ \else
+ \global\advance\@linestogo by -1
+ \ifnum\@linestogoincolumn<2
+ \global\@linestogoincolumn = \@columndepth
+ \the\crtok
+ \else &\global\advance\@linestogoincolumn by -1
+ \fi
+ \fi}%
+ \makeactive\^^M\letreturn\@endcolumnactions
+ \@columnwidth = \hsize
+ \advance\@columnwidth by -\parindent
+ \divide\@columnwidth by #2
+ \penalty\abovecolumnspenalty
+ \noindent % It's not a paragraph (usually).
+ \valign\bgroup
+ &\hbox to \@columnwidth{\strut ##\hfil}\cr
+}% The next end-of-line starts everything going.
+|
+
+
+\section Notes de pied de page
+
+\null ^^{notes de pied de page}
+Des notes de bas de page sont compos\'ees le plus g\'en\'eralement en utilisant un
+num\'ero incr\'ement\'e comme marque de r\'ef\'erence. Nous d\'efinissons la macro
+\pix^|\numberedfootnote| pour faire cela. Il red\'efinit \'egalement
+^|\vfootnote| pour permettre un formatage l\'eg\`erement plus g\'en\'erique des
+notes de bas de page que ne le fait \plainTeX. Le registre de dimension
+|\foot!-note!-mark!-sepa!-ra!-tion|
+\pix^^|\footnotemarkseparation| contr\^ole
+l'espace entre la marque de la note de bas de page (par exemple, le num\'ero) et le
+d\'ebut du texte. Les tokens \pix^|\everyfootnote| sont
+ins\'er\'es avant de produire la notes de bas de page.
+
+Les d\'efinitions \plainTeX \ de |\footnote| et |\vfootnote| sont pr\'eserv\'es en
+|\@plain!-footnote| et |\@plain!-vfootnote| au cas o\`u vous auriez besoin d'elles.
+\csdisplay
+\newcount\footnotenumber \newtoks\everyfootnote
+\newdimen\footnotemarkseparation
+\footnotemarkseparation = .5em
+\let\@plainfootnote = \footnote
+\let\@plainvfootnote = \vfootnote
+\def\vfootnote#1{\insert\footins\bgroup
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\ht\strutbox \splitmaxdepth\dp\strutbox
+ \floatingpenalty\@MM
+ \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip
+ \xspaceskip\z@skip
+ \everypar = {}%
+ \the\everyfootnote
+ \indent\llap{#1\kern\footnotemarkseparation}\footstrut
+ \futurelet\next\fo@t}%
+\def\numberedfootnote{\global\advance\footnotenumber by 1
+ \@plainfootnote{$^{\number\footnotenumber}$}}%
+|
+
+
+\section Double colonne
+
+\null ^^{double colonnes} La commande |\doublecolumns| commence la
+composition en double colonne, alors que la commande
+\pix^^|\singlecolumn| |\single!-column| remet la composition en
+colonne simple. Vous pouvez commuter dans les deux sens entre elles
+sur la m\^eme page. Le ressort sp\'ecifi\'e par |\above!-double!-column!-%
+skip| et |\below!-double!-column!-skip| est ins\'er\'ee avant et apr\`es la
+composition en double colonne.
+
+L'approche est d\'eriv\'ee de la \knuth{page~417}{480}.
+
+\csdisplay
+\newskip\abovedoublecolumnskip
+\newskip\belowdoublecolumnskip
+\abovedoublecolumnskip = \bigskipamount
+\belowdoublecolumnskip = \bigskipamount
+\newdimen\gutter \gutter = 2pc
+\newdimen\doublecolumnhsize \doublecolumnhsize = \hsize
+\newbox\@partialpage \newdimen\singlecolumnhsize
+\newdimen\singlecolumnvsize \newtoks\previousoutput
+\def\doublecolumns{\par % Don't start in horizontal mode.
+ \previousoutput = \expandafter{\the\output}
+ \advance\doublecolumnhsize by -\gutter
+ \divide\doublecolumnhsize by 2
+ \output = {\global\setbox\@partialpage =
+ \vbox{\unvbox255\vskip\abovedoublecolumnskip}}%
+ \pagegoal = \pagetotal \break % Expands \output above.
+ \output = {\doublecolumnoutput}%
+ \singlecolumnhsize = \hsize
+ \singlecolumnvsize = \vsize
+ \hsize = \doublecolumnhsize \vsize = 2\vsize}%
+|
+
+Le macro |\@double!-column!-split| fait le d\'edoublement r\'eel. On
+suppose que le source est ins\'er\'ee en colonne simple. Si vous ne
+voulez pas que cela soit le cas, vous devrez modifier la routine de
+r\'esultat. Apr\`es que |\@double!-column!-split| ait effectu\'e son
+travail, |\box255| aura le mat\'eriel en double colonne. Le mat\'eriel en
+double colonne sera pr\'ec\'ed\'e par n'importe quel mat\'eriel en colonne simple
+qui aura \'et\'e compos\'e avant que |\doublecolumns| ait \'et\'e appel\'e.
+|\box4| aura le mat\'eriel qui ne s'est pas adapt\'e \`a la page.
+
+\csdisplay
+\def\@doublecolumnsplit{%
+ \splittopskip = \topskip \splitmaxdepth = \maxdepth
+ \dimen0 = \singlecolumnvsize
+ \advance\dimen0 by -\ht\@partialpage
+ \advance\dimen0 by -\ht\footins
+ \advance\dimen0 by -\skip\footins
+ \advance\dimen0 by -\ht\topins
+ \begingroup
+ \vbadness = 10000
+ \global\setbox1=\vsplit255 to \dimen0 \wd1=\hsize
+ \global\setbox3=\vsplit255 to \dimen0 \wd3=\hsize
+ \endgroup
+ \global\setbox4=\vbox{\unvbox255
+ \penalty\outputpenalty}%
+ \global\setbox255=\vbox{\unvbox\@partialpage
+ \hbox to \singlecolumnhsize{\box1\hfil\box3}%
+ \vfill}}%
+|
+\needspace{.5in}
+|\double!-column!-out!-put| est la routine de sortie r\'eelle. Nous appelons
+l'ancienne |\output| pour faire le travail de sortie de la bo\^\i te.
+
+\csdisplay
+\def\doublecolumnoutput{\@doublecolumnsplit
+ \hsize = \singlecolumnhsize \vsize = \singlecolumnvsize
+ \previousoutput \unvbox4}%
+|
+
+|\singlecolumn| reprend la composition en une colonne. Il suppose que
+|\doublecolumns| a \'et\'e appel\'e.
+
+\csdisplay
+\def\singlecolumn{\par % Don't start in horizontal mode.
+ \output = {\global\setbox1 =
+ \vbox{\unvbox255\vskip\abovedoublecolumnskip}}%
+ \pagegoal = \pagetotal \break \setbox255 = \box1
+ {\singlecolumnvsize = \ht255
+ \divide\singlecolumnvsize by 2
+ \advance\singlecolumnvsize by +\ht\@partialpage
+ \advance\singlecolumnvsize by +\ht\footins
+ \advance\singlecolumnvsize by +\skip\footins
+ \advance\singlecolumnvsize by +\ht\topins
+ \@doublecolumnsplit}%
+ \hsize = \singlecolumnhsize
+ \vsize = \singlecolumnvsize
+ \output = \expandafter{\the\previousoutput}%
+ \unvbox255}%
+|
+
+\margin{`Sensible paragraph skips' section deleted}
+
+
+\section Terminer
+
+Nous devons maintenant d\'efaire les changements que nous avons faits
+quand nous avons commenc\'e (voir la \xref{eplainconv}). Nous donnons
+\'egalement un num\'ero de version, qui sera plus tard
+disponible dans |\fmt!-name| et |\fmt!-version|.
+
+\csdisplay
+\let\wlog = \@plainwlog \catcode`@ = \other
+\def\fmtname{eplain}%
+{\edef\plainversion{\fmtversion}%
+ \xdef\fmtversion{1.0: 15 May 1990
+ (and plain \plainversion)}%
+}%
+|
+
+\eix^^|eplain.tex|
+
+\endchapter
+\byebye
+
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/fusingtex.tex b/Master/texmf-dist/doc/plain/impatient-fr/fusingtex.tex
new file mode 100644
index 00000000000..007f3cbbbcb
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/fusingtex.tex
@@ -0,0 +1,860 @@
+% 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{Utiliser \TeX}
+
+\chapterdef{usingtex}
+
+% Avoid underfull box complaint about the empty paragraph
+% that precedes the first section heading.
+%
+\def\par{{\parfillskip = 0pt plus 1fil\endgraf}\let\par=\endgraf}
+\vglue-\abovesectionskip % we've skipped enough already
+\vskip0pt % Make \combineskips work.
+
+\section Transformer la source en encre
+
+\subsection les programmes et fichiers dont vous avez besoin
+
+Afin de produire un document \TeX, vous devrez ex\'ecuter le programme \TeX\
+et ainsi que plusieurs programmes li\'es. Vous aurez \'egalement besoin de
+fichiers d'aide pour \TeX\ et probablement pour ces autres programmes. Dans
+ce livre nous ne pouvons vous renseigner qu'au sujet de \TeX, mais nous ne
+pouvons pas vous guider \`a propos des autres programmes et des fichiers
+d'aide except\'e en des termes tr\`es g\'en\'eraux parce qu'ils d\'ependent de votre
+environnement \TeX\ local. Les personnes qui vous fournissent \TeX\
+devraient pouvoir vous fournir ce que nous appelons de l'\emph{information
+locale}. \pix^^{information locale} L'information locale vous indique
+comment d\'ebuter avec \TeX, comment employer les programmes li\'es et comment
+acc\'eder aux fichiers d'aide.
+
+Le fichier source \TeX\ se compose d'un fichier texte ordinaire que
+vous pouvez pr\'eparer avec un ^{\editeur}. Un fichier source \TeX,
+\`a la diff\'erence d'un dossier source d'un traitement de texte
+ordinaire, ne contient normalement aucun caract\`ere de contr\^ole
+^^{caract\`eres de contr\^ole} invisible. Vous voyez tout ce que \TeX\
+voit si vous regardez le listing du fichier.
+
+Votre fichier source peut s'av\'erer \^etre un peu plus qu'un squelette qui
+appelle d'autres fichiers source. Les utilisateurs de \TeX\ organisent
+souvent de grands documents tels que des livres de cette fa\c con. Vous pouvez
+utiliser la commande ^|\input| (voir \xref\input) pour inclure un fichier source
+dans des autres. En particulier, vous pouvez utiliser |\input| pour inclure
+des fichiers contenant
+des \emph{d\'efinitions de macro}---%
+^^{macros//dans des fichiers auxiliaires }
+d\'efinitions auxiliaires qui augmentent les possibilit\'es de \TeX. Si des
+fichiers de macro sont disponibles sur votre installation \TeX, les
+informations locales sur \TeX\ devraient vous indiquer comment atteindre
+les fichiers de macro et ce qu'elles peuvent faire pour vous. Le format
+standard de \TeX, celui d\'ecrit dans ce livre, inclut une collection de
+macros et d'autres d\'efinitions connus sous le nom de ^{\plainTeX}
+(voir \xref{\plainTeX}).
+
+Quand \TeX\ ex\'ecute votre document, il produit un fichier appel\'e
+^{\dvifile}. L'abr\'evia\-tion ``|dvi|'' repr\'esente ``device independent''.
+L'abr\'e\-viation a \'et\'e choisie parce que l'information dans le \dvifile\ est
+ind\'ependante du dispositif que vous utilisez pour imprimer ou afficher
+votre document.
+
+Pour imprimer votre document ou le regarder avec un \emph{pr\'eviewer},
+^^{pr\'eviewer} vous devrez traiter le ^{\dvifile} avec un programme de
+\emph{driver de p\'eriph\'erique}. ^^{drivers de p\'eriph\'erique} (Un pr\'eviewer
+est un programme qui vous permet de voir sur un \'ecran une approximation de
+ce \`a quoi le r\'esultat compos\'e ressemblera.) Les diff\'erents appareils de
+sortie exigent normalement diff\'erents drivers de p\'eriph\'erique. Apr\`es avoir
+ex\'ecut\'e le driver de p\'eriph\'erique, vous devrez \'egalement transf\'erer le
+r\'esultat du driver de p\'eriph\'erique vers l'impri\-mante ou tout autre
+appareil de sortie. ^^{dispositifs de sortie} ^^{imprimantes} Les
+informations locales sur \TeX\ devraient vous indiquer comment obtenir le
+driver de p\'eriph\'erique correct et l'utiliser.
+
+Puisque \TeX\ n'a aucune connaissance interne des polices particuli\`eres, il
+emploie des \emph{fichiers de polices} ^^{fichiers de polices} pour obtenir
+les informations sur les polices utilis\'ees dans votre document. Les
+fichiers de polices doivent \'egalement faire partie de votre environnement
+\TeX\ local. Chaque police exige normalement deux fichiers~: un premier
+contenant les dimensions des caract\`eres dans la police (le \emph{fichier
+de m\'etriques}) ^^{fichiers de m\'etriques} et un contenant les formes des
+caract\`eres (le \emph{fichier de formes}). ^^{fichier de formes} Les
+versions magni\-fi\'ees d'une police partagent les m\'etriques mais ont
+diff\'erents dossiers de forme. ^^{magnification} Les fichiers de m\'etriques
+sont d\'esign\'es parfois sous le nom de \tfmfiles ^^{\tfmfile}, et les diff\'erentes
+vari\'et\'es de fichiers de forme sous le nom de \pkfiles ^^{\pkfile}, \pxlfiles\ ^^{\pxlfile} et
+\gffiles ^^{\gffile}. Ces noms correspondent aux noms des dossiers que \TeX\ et ses
+programmes compagnons utilisent. Par exemple, |cmr10.tfm| est le dossier de
+m\'etrique pour la police |cmr10| (Computer Modern Romain 10 point).
+
+\TeX\ lui-m\^eme n'utilise que le fichier des m\'etriques, puisqu'il ne g\`ere
+pas le dessin des caract\`eres mais seulement l'espace qu'ils occupent. Le
+driver de p\'eriph\'erique utilise d'habitude le fichier de forme, puisqu'il
+est responsable de la cr\'eation de l'image imprim\'ee de chaque caract\`ere
+compo\-s\'e. Quelques drivers de p\'eriph\'erique doivent aussi utiliser le fichier
+de m\'etrique. Quelques drivers de p\'eriph\'erique peuvent utiliser les polices
+r\'esidentes d'une imprimante et n'ont pas besoin des fichiers de forme pour
+ces polices.
+%\secondprinting{\vfill\eject}
+
+
+\subsection ex\'ecuter {\TeX}
+
+\bix^^{ex\'ecuter \TeX}
+Vous pouvez lancer \TeX\ sur un fichier source |screed.tex| en saisissant
+^^{fichier source} quelque chose comme `|run tex|' ou juste
+`|tex|'(v\'erifiez votre information locale). \TeX \ r\'epondra par quelque
+chose comme~:
+% 4/23/90 is Shakespeare's 426th birthday, and Karl's 26th.
+\csdisplay
+This is TeX, Version 3.0 (preloaded format=plain 90.4.23)
+**
+|
+Le ``format pr\'echarg\'e'' ici correspond \`a une forme pr\'edig\'er\'ee de macros
+^{\plainTeX} livr\'ee avec \TeX. Vous pouvez maintenant saisir `|screed|' pour
+que \TeX\ traite votre dossier. Quand cela est fait, vous verrez quelque
+chose comme~:
+\csdisplay
+(screed.tex [1] [2] [3] )
+Output written on screed.dvi (3 pages, 400 bytes).
+Transcript written on screed.log.
+|
+affich\'e sur votre terminal, ou imprim\'e dans votre \logfile\ si vous ne
+travaillez pas sur un terminal. La majeure partie de ce r\'esultat est
+explicite. Les nombres entre crochets sont des num\'eros de page que \TeX
+\ affiche quand il charge chaque page de votre document dans le \dvifile.
+\TeX\ mettra normalement une extention `|.tex|' \`a un nom de fichier source
+si celui que vous avez donn\'e n'en a pas. Pour quelques formes de \TeX\ vous
+devez pouvoir appeler \TeX\ directement pour un fichier source en
+saisissant~:
+\csdisplay
+tex screed
+|
+ou quelque chose comme \c ca.
+
+Au lieu de fournir votre source \TeX\ \`a partir d'un fichier, vous pouvez le
+saisir directement sur votre terminal. Pour faire ainsi, saisissez
+`^|\relax|' au lieu de `|screed|' au prompt `|**|'. \TeX\ vous incitera
+dor\'enavant avec un `|*|' pour chaque ligne saisie et interpr\'etera chaque
+ligne saisie comme il la verra. Pour terminer la saisie, tapez une commande
+telle que `|\bye|' qui indique \`a \TeX\ que vous avez fini. La saisie
+directe est parfois une mani\`ere pratique d'exp\'erimenter avec \TeX.
+
+Quand votre fichier de saisie contient d'autres fichiers de saisie
+imbri\-qu\'es, les informations affich\'ees indiquent quand \TeX\ commence et finit
+de traiter chaque fichier imbriqu\'e.
+^^{fichiers d'entr\'ee//imbriqu\'e}
+\xrdef{infiles}
+\TeX\ affiche une parenth\`ese gauche et le nom du fichier quand il commence
+\`a travailler sur un fichier et affiche la parenth\`ese droite correspondante
+quand il en a fini avec le fichier. Si vous recevez n'importe quel
+^{message d'erreur} dans la sortie affich\'ee, vous pouvez les associer avec
+un fichier en recherchant la parenth\`ese gauche la plus r\'ecemment ouverte.
+
+Pour une explication plus compl\`ete de la fa\c con de faire marcher \TeX, voir
+le \knuth{chapitre~6}{} et votre ^{assistance informatique locale}.
+\eix^^{ex\'ecuter \TeX}
+
+
+\section Pr\'eparer un fichier source
+
+Dans cette section nous expliquons certaines des conventions que vous devez
+suivre en pr\'eparant le source pour \TeX\null. Une partie de l'information
+fournie ici appara\^\i t \'egalement dans les exemples dans la
+\chapterref{examples} de ce livre.
+^^{source, pr\'eparer}
+
+\subsection Commandes et s\'equences de contr\^ole
+
+\bix^^{commandes}
+\bix^^{s\'equences de contr\^ole}
+Une source \TeX\ se compose d'une s\'equence de commandes qui indique \`a
+\TeX\ comment composer votre document. La plupart des caract\`eres agissent
+en tant que commandes d'un genre particuli\`erement simple~: \break``compose-moi''.
+La lettre `|a|', par exemple, est une commande pour composer un `a'. Mais
+il y a un autre genre de commande---une \emph{s\'equence de contr\^ole}---
+qui donne \`a \TeX\ des instructions plus raffin\'ees. Une s\'equence de
+contr\^ole commence d'habitude par un antislash (|\|), bien que vous
+puissiez changer cette convention si vous en avez besoin.
+\xrdef{@backslash}
+Par exemple, le source~:
+\csdisplay
+She plunged a dagger (\dag) into the villain's heart.
+|
+contient la s\'equence de contr\^ole |\dag|; elle produit la composition~:
+\display{%
+She plunged a dagger (\dag) into the villain's heart.
+}
+\noindent Tout dans cet exemple except\'e le |\dag| et les espaces agissent
+comme une commande ``compose-moi''. Nous en expliquerons plus au sujet des
+espaces \xrefpg{espaces}.
+
+Il y a deux sortes de s\'equences de contr\^ole~: les \emph{mots de contr\^ole}
+^^{mots de contr\^ole}
+et les \emph{symboles de contr\^ole}
+^^{symboles de contr\^ole}
+\ulist\compact
+\li Un mot de contr\^ole se compose d'un antislash suivi d'une ou plusieurs
+lettres, par exemple, `|\dag|'. Le premier caract\`ere qui n'est pas une
+lettre marque la fin du mot de contr\^ole.
+\li Un symbole de contr\^ole se compose d'un antislash suivi d'un caract\`ere
+simple qui n'est pas une lettre, par exemple, `|\$|'. le caract\`ere peut
+\^etre un espace ou m\^eme l'extr\'emit\'e d'une ligne (qui est un caract\`ere
+parfaitement l\'egitime).
+\endulist
+\noindent
+Un mot de contr\^ole (mais pas un symbole de contr\^ole) absorbe tous les
+espaces ou fins de ligne qui le suivent.
+^^{s\'equences de contr\^ole//absorbent les espaces}
+Si vous ne voulez pas perdre d'espace
+apr\`es un mot de contr\^ole, faites suivre la commande par un ^{espace
+contr\^ol\'e} (|\!visiblespace|) ou par `|{}|'. ainsi~:
+\csdisplay
+The wonders of \TeX\!visiblespace!.shall never cease!!
+|
+ou~:\hfil\
+\csdisplay
+The wonders of \TeX{} shall never cease!!
+|
+produisent~:
+\display{%
+The wonders of \TeX{} shall never cease!
+}
+\noindent plut\^ot que~:
+\display{%
+The wonders of \TeX shall never cease!
+}
+\noindent
+qui est ce que vous obtenez si vous enlevez `|\|\visiblespace' ou `|{}|'.
+
+Ne faites pas suivre un mot de contr\^ole par le texte qui le suit---\TeX\ ne
+saura pas o\`u le mot de commande finit. Par exemple, la s\'equence de
+contr\^ole |\c| place une c\'edille sur le caract\`ere qui le suit. Le mot
+fran\c cais {\it gar\c con\/} doit \^etre saisi ainsi
+`|gar\c!visiblespace!.con|', et non `|gar\ccon| '; si vous \'ecrivez cela,
+\TeX\ se plaindra au sujet d'une s\'equence de contr\^ole |\ccon| non d\'efinie.
+
+Un symbole de contr\^ole, par contre, n'absorbe rien de ce qui le suit. Ainsi
+vous devez saisir `\$13.56' ainsi `|\$13.56|', et non `|\$!vs13.56|'; la
+derni\`ere forme produirait `\hbox{\$ 13.56}'. Cependant, ces commandes
+d'accent appel\'ees par des symboles de contr\^ole sont d\'efinies de telle
+fa\c con qu'elles absorbent l'espace suivant. Ainsi, par exemple, vous
+pouvez saisir le mot {\it d\'eshabiller\/} comme `|d\'eshabiller|' ou comme
+`|d\'!visiblespace!.eshabiller|'.
+
+Chaque s\'equence de contr\^ole est \'egalement une commande, mais la proposition inverse
+n'est pas vraie.
+^^{commandes//versus s\'equences de contr\^ole}
+^^{s\'equences de contr\^ole//versus commandes}
+Par exemple, la lettre `|N|' est une commande, mais pas une s\'equence de
+contr\^ole. Dans ce livre nous utilisons normalement ``commande'' plut\^ot que
+``s\'equence de contr\^ole'' quand l'un ou l'autre convient. Nous employons
+``s\'equence de contr\^ole'' quand nous voulons souligner les aspects de la
+syntaxe de \TeX\ qui ne s'appliquent pas aux commandes en g\'en\'eral.
+\eix^^{s\'equences de contr\^ole}
+\eix^^{commandes}
+
+
+\subsection Arguments
+
+\xrdef{arg1}
+Quelques commandes doivent \^etre suivies d'un ou plusieurs
+\emph{arguments} ^^{arguments}
+qui aident \`a d\'eterminer ce que fait la commande. Par exemple, la commande
+|\vskip|, qui indique \`a \TeX\ de sauter vers le bas (ou le haut) de la
+page, s'attend \`a un argument indiquant de combien d'espace sauter. Pour
+sauter en bas de deux pouces, vous saisirez `|\vskip 2in|', o\`u |2in| est
+l'argument de |\vskip|.
+
+Diff\'erentes commandes s'attendent \`a des genres d'arguments diff\'erents.
+Beaucoup de commandes attendent des dimensions, telles que le |2in| dans
+l'exemple ci-dessus. Quelques commandes, en particulier celles d\'efinies par des
+macros, s'attendent \`a des arguments qui sont soit un caract\`ere simple ou un
+texte inclus entre accolades. Pourtant d'autres exigent que leurs arguments
+soient enferm\'es entre accolades, c'est-\`a-dire, qu'elles n'acceptent pas d'arguments
+sous forme de caract\`ere simple. La description de chaque commande de ce livre vous indique
+quels genres d'ar\-guments, le cas \'ech\'eant, la commande attend. Dans certains
+cas, les accolades exig\'ees d\'efinissent un groupe (voir \xref{bracegroup}).
+
+%\secondprinting{\vfill\eject}
+
+
+\subsection Param\`etres
+
+\xrdef{introparms}
+Certaines commandes sont des param\`etres (voir \xref{param\`etre}).
+^^{param\`etres//comme commandes}
+Vous pouvez utiliser un param\`etre de deux fa\c cons~:
+\olist
+\li Vous pouvez utiliser la valeur d'un param\`etre
+comme argument d'une autre commande. Par exemple, la commande
+\hbox{|\vskip\parskip|}
+pro\-voque un saut vertical de la valeur du param\`etre de ressort |\parskip|. (saut de paragraphe)
+\li Vous pouvez changer la valeur du param\`etre en lui assignant
+quelque chose. Par exemple, l'assignation \hbox{|\hbadness=200|}
+met la valeur du nombre du param\`etre |\hbadness| \`a $200$.
+\endolist
+\noindent
+Nous utilisons aussi le terme ``param\`etre'' pour faire r\'ef\'erence aux entit\'es telle que |\pageno|
+qui sont normalement des registres mais se comportent comme des param\`etres.
+^^{registres//param\`etres comme}
+
+Certaines commandes sont des noms des tables. Ces commandes sont employ\'ees comme
+des param\`etres, sauf qu'elles exigent un argument additionnel qui indique une
+entr\'ee particuli\`ere dans la table. Par exemple, |\catcode| appelle une table
+de codes de cat\'egorie (voir \xref{codes de cat\'egorie}). Ainsi la commande
+\hbox{|\catcode`~=13|} place le code de cat\'egorie du caract\`ere `|~|' \`a $13$.
+
+
+\subsection Espaces
+
+\xrdef{espaces}
+\bix^^{espace}
+Vous pouvez librement employer les espaces suppl\'ementaires dans votre
+source. Dans presque toutes les circonstances \TeX\ traite plusieurs
+espaces d'une rang\'ee comme \'etant \'equivalents \`a un espace simple.
+Par exemple, il n'importe pas que vous mettiez un ou deux espaces apr\`es
+un ^{point} dans votre saisie. Quoique vous fassiez, \TeX\ ex\'ecute ses
+man\oe uvres de fin de phrase et laisse (dans la plupart des cas) la place
+appropri\'ee apr\`es le point. \TeX\ traite \'egalement la fin d'une ligne
+de source comme \'equivalente \`a un espace. Ainsi vous pouvez finir vos
+lignes de source partout o\`u cela vous arrange --- %
+\TeX\ transforme des lignes de source en paragraphes de la m\^eme fa\c con
+quelles que soient les coupures de ligne dans votre source.
+
+Une ligne blanche dans votre source marque la fin d'un paragraphe.
+^^{paragraphes//terminer un}
+Plusieurs lignes blanches sont \'equivalentes \`a une seule ligne.
+
+\TeX\ ignore les espaces du source dans les formules math\'ematiques (voir
+ci-dessous). Ainsi vous pouvez inclure ou omettre des espaces n'importe
+o\`u dans une formule math\'ematique --- \TeX\ ne s'en inqui\`ete pas. M\^eme
+dans une formule math\'ematique, cependant, vous ne devez pas relier un mot
+de contr\^ole avec la lettre qui le suit.
+
+Si vous d\'efinissez vos propres macros, vous devez faire
+particuli\`erement attention o\`u vous mettez les fins de ligne dans les
+d\'efinitions. Il est tr\`es facile de d\'efinir une macro qui produit un
+^{espace non d\'esir\'e} en plus de ce qu'elle est cens\'ee produire. Nous
+discuterons de ce probl\`eme ailleurs parce qu'il est quelque peu technique
+(voir \xrefpg{unwantedspace}.
+
+Un espace ou son \'equivalent entre deux mots dans votre source ne se
+transforme pas simplement en caract\`ere d'espace dans votre r\'esultat.
+Quelques-uns de ces espaces du source se transforment en fins des lignes
+dans le r\'esultat, puisque, g\'en\'eralement, les lignes du source ne
+correspondent pas aux lignes du r\'esultat. Les autres se transforment en
+espaces de largeur variable appel\'es ``ressort'' (\xref{ressort}), qui ont une
+taille normale (la taille qu'il ``veut avoir'') mais qui peut s'\'etendre
+ou se r\'etr\'ecir. Quand \TeX\ compose un paragraphe qui est cens\'e avoir
+une marge \`a droite (le cas habituel), il ajuste les largeurs des ressorts de
+chaque ligne pour obtenir que les lignes de terminent sur la marge. (la
+derni\`ere ligne d'un paragraphe est une exception, puisqu'on n'exige pas
+d'habitude qu'elle finisse sur la marge droite.)
+
+Vous pouvez emp\^echer un espace du source de se transformer en fin de
+ligne en employant un ^{tilde} (^|~|). par exemple, vous ne voulez pas que
+\TeX\ mette une coupure de ligne entre le `Fig.' et le `8' du `Fig.~8'. En
+saisissant `|Fig.~8|' vous pouvez emp\^echer une telle coupure de ligne.
+\eix^^{espace}
+\needspace{2in}
+
+\subsection Commentaires
+
+\xrdef{commentaires}
+\pix\bix^^{commentaires}
+Vous pouvez ins\'erer des commentaires dans votre source \TeX. Quand \TeX\
+voit un commentaire il passe simplement au-dessus de lui, ainsi ce qui est dans un
+commentaire n'affecte pas votre document final de quelque fa\c con. Les
+commentaires sont utiles pour fournir des informations suppl\'emen\-taires
+sur le contenu de votre fichier source. Par exemple~:
+\csdisplay
+% ========= Start of Section `Hedgehog' =========
+|
+
+{\indexchar % }%
+Un commentaire commence par un signe de pourcentage (|%|) et se prolonge
+jusqu'\`a la fin de la ligne du source. \TeX\ n'ignore pas simplement le
+commentaire mais aussi la fin de la ligne, ainsi des commentaires ont une
+autre utilisation tr\`es importante~: relier deux lignes de sorte que la
+fin de ligne
+^^{coupures de ligne//effacer une}
+entre elles soit invisible \`a \TeX\ et ne produise pas d'espace dans le
+rendu ou de fin de ligne. Par exemple, si vous saisissez~:
+\csdisplay
+A fool with a spread%
+sheet is still a fool.
+|
+vous obtiendrez~:
+\display{
+A fool with a spread%
+sheet is still a fool.
+}
+\eix^^{commentaires}
+
+
+\subsection Ponctuation
+
+\null
+\xrdef{periodspacing}
+\TeX\ ajoute normalement un espace suppl\'ementaire apr\`es ce qu'il pense
+\^etre une marque de ^{ponctuation} \`a la fin d'une phrase, \`a savoir,
+`^|.|', `^|?|' ou `|!!|' \indexchar !
+^^{point} ^^{point d'interrogation} ^^{point d'exclamation}
+suivi d'un espace saisi. \TeX\ n'ajoute pas d'espace suppl\'ementaire si le
+signe de ponctuation suit une lettre majuscule, parce qu'il pense que la
+majuscule est l'initiale d'un nom quelconque. Vous pouvez forcer un espace
+suppl\'ementaire l\`a o\`u il ne se produirait pas autrement en saisissant
+quelque chose comme~:
+\csdisplay
+A computer from IBM\null?
+|
+|\null| ne produit aucun r\'esultat, mais il emp\^eche \TeX\ d'associer la
+capitale `M' avec le point d'interrogation. D'autre part, vous pouvez effacer
+l'espace suppl\'ementaire l\`a o\`u il ne doit pas appara\^\i tre en saisissant
+un espace command\'e apr\`es le signe de ponctuation, par exemple~:
+\csdisplay
+Proc.\!visiblespace!.Royal Acad.\!visiblespace!.of Twits
+|
+permet d'obtenir~:
+\display{Proc.\ Royal Acad.\ of Twits}
+\noindent plut\^ot que~:
+\display{Proc. Royal Acad. of Twits}
+
+Certains pr\'ef\`erent ne pas laisser plus d'espace apr\`es une ponctuation
+\`a la fin d'une phrase. Vous pouvez obtenir cet effet avec la commande
+^|\frenchspacing| (voir \xref\frenchspacing). |\frenchspacing| est souvent
+recomman\-d\'ee pour les ^{bibliographies}.
+
+Pour les ^{marques de citation} simples, vous devez employer les quotes
+simples gauches et droites (|`| et |'|) sur votre clavier. Pour les
+guillemets doubles gauches et droits, utilisez deux quotes simples gauches
+ou droites (|``| ou |''|) plut\^ot que la double quote (|"|)
+sur votre clavier. La double quote du clavier vous donnera en fait une
+double marque de citation droite dans beaucoup de polices, mais les deux
+simples quotes droites sont le style pr\'ef\'er\'e de \TeX. Par exemple~:
+
+\vbox{%
+\csdisplay
+There is no `q' in this sentence.
+``Talk, child,'' said the Unicorn.
+She said, ``\thinspace`Enough!!', he said.''
+|
+}%
+Ces trois lignes donnent~:
+\display{\par\restoreplainTeX
+There is no `q' in this sentence.
+\par ``Talk, child,'' said the Unicorn.
+\par She said, ``\thinspace`Enough!', he said.''
+}
+\noindent
+|\thinspace| dans la troisi\`eme ligne du source emp\^eche la quote
+simple de venir trop pr\`es du guillemet double. Sans lui, vous verriez juste
+trois guillemets presque \'equidistants \`a suivre.
+
+\TeX\ a trois sortes de ^{tirets}~:
+\ulist\compact
+\li un court (trait d'union) comme ceci ( - ). vous l'obtenez en saisissant~`^|-|'.
+\li un moyen (demi-cadratin) comme ceci ( -- ). vous l'obtenez en saisissant~`^|--|'.
+\li un long (cadratin) comme ceci ( --- ). vous l'obtenez en saisissant~`^|---|'.
+\endulist
+\noindent Typiquement, vous utiliserez les traits d'union pour indiquer les
+mots compos\'es comme ``will-o'-the-wisp'', les demi-cadratins d\'esigneront
+les suites de page telles que ``pages~81--87'', et les cadratins
+d\'esigneront une coupure dans la continuit\'e---comme ceci.
+
+
+\subsection Caract\`eres sp\'eciaux
+
+Certains caract\`eres ont une signification sp\'eciale en
+\TeX, donc vous ne devez pas les utiliser dans du texte ordinaire. Ce sont~:
+
+\csdisplay
+ $ # & % _ ^ ~ { } \
+|
+^^|$//en texte ordinaire|
+^^|#//en texte ordinaire|
+^^|&//en texte ordinaire|
+^^|_//en texte ordinaire|
+^^|^//en texte ordinaire|
+^^|~//en texte ordinaire|
+^^|%//en texte ordinaire|
+^^|{//en texte ordinaire|
+^^|}//en texte ordinaire|
+{\recat!ttidxref[\//en texte ordinaire]]
+\noindent Afin de les produire dans votre document de sortie, vous devez
+utiliser des circumlocutions. Pour les cinq premiers, vous devez saisir \`a
+la place~:
+^^|\$|
+^^|\#|
+^^|\&|
+^^|\%|
+^^|\_|
+\csdisplay
+ \$ \# \& \% \_
+|
+
+\noindent
+Pour les autres, vous avez besoin de quelque chose de plus raffin\'e~:
+
+\csdisplay
+ \^{!visiblespace} \~{!visiblespace} $\{$ $\}$ $\backslash$
+|
+
+
+\subsection Groupes
+
+\bix^^{groupes}
+Un \emph{groupe} se compose de code source inclus entre des accolades
+gauches et droites (|{| et |}|).
+^^|{//d\'ebuter un groupe|
+^^|}//terminer un groupe|
+En pla\c cant une commande dans un groupe, vous pouvez limiter ses effets au
+code source compris dans ce groupe. Par exemple, la commande |\bf| indique \`a \TeX\
+de placer quelque chose en {\bf caract\`eres gras}. Si vous deviez
+mettre |\bf| dans votre source et ne rien faire autrement pour le contrecarrer,
+tout dans votre document suivant le |\bf| serait plac\'e en caract\`eres gras. En
+enfermant le |\bf| dans un groupe, vous limitez son effet au groupe. Par
+exemple, si vous saisissez~:
+\csdisplay
+We have {\bf a few boldface words} in this sentence.
+|
+\noindent vous obtiendrez~:
+\display{We have {\bf a few boldface words} in this sentence.}
+
+\noindent Vous pouvez \'egalement utiliser un groupe pour limiter l'effet
+d'une t\^ache \`a un des param\`etres de \TeX. Ces param\`etres contiennent des
+valeurs qui affectent la fa\c con dont \TeX\ compose votre document. Par
+exemple, la valeur du param\`etre |\parindent| indique l'indentation au d\'ebut
+d'un paragraphe. L'assignation |\parindent = 15pt| place l'indentation \`a
+$15$ points d'imprimeur. En pla\c cant cette assignation au d\'ebut d'un groupe
+contenant plusieurs paragraphes, vous pouvez changer l'impression de ces
+seuls paragraphes. Si vous n'enfermez pas l'assignation dans un groupe, le
+changement d'indentation s'appliquera au reste du document (ou jusqu'\`a la
+prochaine assignation de |\parindent|, s'il y en a une apr\`es).
+
+\xrdef{bracegroup}
+Toutes les paires d'accolades n'indiquent pas un groupe. En particulier,
+les accolades associ\'ees \`a un argument pour lequel elles ne sont
+\emph{pas} exig\'ees n'indiquent pas un groupe---elles ne servent qu'\`a
+d\'elimiter l'argument. De ces commandes qui exigent des accolades pour leurs
+arguments, certaines traitent les accolades pour d\'efinir un groupe et
+d'autres interpr\`etent l'argument d'une mani\`ere sp\'eciale qui d\'epend de la
+commande\footnote{plus pr\'ecis\'ement, pour les commandes primitives, soit
+les accolades d\'efinissent un groupe, soit elles enferment les tokens qui ne
+sont pas trait\'ees dans l'estomac de \TeX. Pour |\halign| et |\valign| le
+groupe a un effet trivial parce que rien de ce qui est entre accolades
+n'atteint l'estomac (parce que c'est dans le mod\`ele) ou est inclus dans un
+nouveau groupe plus profond.
+^^|\halign//grouper pour|
+^^|\valign//grouper pour|
+}.
+\eix^^{groupes}
+
+
+\subsection formules math\'ematiques
+
+\bix^^{math\'ematiques}
+\xrdef{mathform}
+Une formule math\'ematique peut appara\^\i tre dans du \emph{texte math\'ematique}
+^^{texte math\'ematique}
+ou se placer sur une ligne s\'epar\'ee par de l'espace
+vertical suppl\'e\-mentaire autour d'elle (\emph{math\'ematiques affich\'ees}).
+^^{math\'ematiques affich\'ees}
+Vous enfermez le texte d\' une formule entre des signes dollar simples
+(|$|) et une formule affich\'ee entre des signes dollars doubles (|$$|).
+\ttidxref{$}\ttidxref{$$}
+Par exemple~:
+
+\csdisplay
+If $a<b$, then the relation $$e^a < e^b$$ holds.
+|
+\noindent Ce source produit~:
+\display{\centereddisplays
+If $a<b$, then the relation $$e^a < e^b$$ holds.}
+\smallskip
+\noindent la \chapterref{math} d\'ecrit les commandes utiles dans les
+formules math\'ematiques.
+\eix^^{math\'ematiques}
+
+
+\section Comment marche {\TeX}
+
+Afin d'utiliser \TeX\ efficacement, il est utile d'avoir une id\'ee de la
+fa\c con dont \TeX\ organise son activit\'e de transmutation d'entr\'ee en
+r\'esultat. Vous pouvez imaginer \TeX\ comme une sorte d'organisation avec
+des ``yeux'', une ``bouche'', un ``\oe sophage'', un ``estomac'' et un
+``intestin''. Chaque partie de l'organisation transforme son entr\'ee d'une
+certaine fa\c con et passe l'entr\'ee transform\'ee \`a la prochaine \'etape.
+
+Les ^{yeux} transforment un fichier d'entr\'ee en s\'equence de caract\`eres. La
+^{bouche} transforme la s\'equence de caract\`eres en s\'equence de \emph{tokens},
+^^{tokens}
+o\`u chaque token est un caract\`ere simple ou une s\'equence de contr\^ole.
+^^{s\'equences de contr\^ole//comme tokens}
+L'\oe sophage d\'eveloppe les tokens
+s\'equence de \emph{commandes primitives}, qui sont \'egalement des tokens.
+^^{d\'evelopper des tokens}
+L'^{estomac} effectue les op\'erations indiqu\'ees par les
+commandes primitives, produisant une s\'equence de pages.
+Finalement, l'^{intestin} transforme chaque page dans la forme requise
+pour le \dvifile\ et l'y envoit.
+^^{\dvifile//cr\'e\'e par l'intestin de \TeX}
+Ces actions sont d\'ecrites en plus d\'etail dans la \chapterref{concepts} sous
+\conceptcit{\anatomy}.
+^^{\anatomy}
+
+La vraie composition est r\'ealis\'ee dans l'estomac. Les commandes
+demandent \`a \TeX\ de composer tel caract\`ere dans telle
+police, d'ins\'erer de l'espace entre les mots, de finir un paragraphe et
+ainsi de suite. En commen\c cant par des caract\`eres compos\'es individuellement
+et d'autres \'el\'ements typographiques simples, \TeX\ construit une page
+^^{pages} comme un ensemble de ^{\boites} de bo\^\i tes de bo\^\i tes.
+\seeconcept{\boites}. Chaque caract\`ere compos\'e occupe une bo\^\i te, et l'ensemble
+fait une page enti\`ere. Une bo\^\i te peut contenir des bo\^\i tes plus petites
+mais aussi des ^^{ressort} \emph{ressorts} (\xref{ressort}) et autres
+diverses choses. Les ressorts produisent de l'espace entre les cases les plus
+petites. Une propri\'et\'e importante des ressorts est qu'ils peuvent s'\'etendre et
+se r\'etr\'ecir~; ainsi \TeX\ peut rendre une bo\^\i te plus grande ou plus petite
+en \'etirant ou en r\'etr\'ecissant les ressorts.
+
+En g\'en\'eral, une ligne est une bo\^\i te contenant une suite de bo\^\i
+tes de caract\`eres, et une page est une bo\^\i te contenant une suite de
+bo\^\i tes de lignes. Il y a des ressorts entre les mots d'une ligne et
+entre les lignes d'une page. \TeX\ \'etire ou r\'etr\'ecit les ressorts sur
+chaque ligne afin de justifier une marge droite sur la page et les ressorts de
+chaque page afin de faire des marges inf\'erieures des diff\'erentes pages
+\'egales. D'autres genres d'\'el\'ements typographiques peuvent \'egalement
+appara\^\i tre dans une ligne ou sur une page, mais nous ne les traiterons
+pas ici.
+
+En tant que processus d'assemblage de pages, \TeX\ \`a besoin de couper des
+paragraphes en lignes et des lignes en pages. En effet, l'estomac voit
+d'abord un paragraphe comme une longue ligne. Il ins\`ere des
+\emph{coupures de ligne}
+^^{coupures de ligne}
+afin de transformer le paragraphe en s\'equence de lignes de la bonne
+longueur, ex\'ecutant une analyse plut\^ot raffin\'ee afin de choisir
+l'ensemble de coupures qui semble la meilleure pour le paragraphe
+\seeconcept{coupure de ligne}. L'estomac suit un processus semblable mais plus simple
+afin de transformer une s\'equence de lignes en page. Essentiellement
+l'estomac accumule des lignes jusqu'\`a ce que plus aucune ligne ne
+puisse rentrer dans la page. Il choisit alors un endroit simple pour
+couper la page, en mettant les lignes avant la coupure sur la page courante
+et en sauvant les lignes apr\`es la coupure pour la page suivante
+\seeconcept{coupure de page}.
+^^{coupures de page//ins\'er\'ees par l'estomac de \TeX}
+
+Quand \TeX\ assemble un \'el\'ement d'une liste d'articles (bo\^\i tes, ressorts,
+etc.), il est dans un des six \emph{modes} ^^{modes} (\xref{mode}). Le genre
+d'entit\'e qu'il assemble d\'efinit le mode dans lequel il est. Il y a deux modes
+ordinaires~: le mode horizontal ordinaire pour l'assemblage des paragraphes
+(avant qu'ils ne soient coup\'es en lignes) et le mode vertical ordinaire pour
+l'assemblage des pages. Il y a deux modes internes~: le mode horizontal interne
+pour assembler des articles horizontalement pour former une bo\^\i te horizontale et
+un mode vertical interne pour assembler des articles verticalement pour former une
+bo\^\i te verticale (autre qu'une page). Finalement, il y a deux modes math\'ematiques~:
+le mode math\'ematique de texte pour des formules de maths s'assemblant dans un
+paragraphe et le mode math\'ematique d'affichage pour les formules math\'ematiques qui
+sont affich\'ees sur des lignes seules (voir ``formules math\'ematiques'',
+\xref{mathform}).
+
+
+\section Nouveau \TeX\ contre ancien {\TeX}
+
+\xrdef{newtex}
+
+En 1989, Knuth a fait une r\'evision importante de \TeX\ afin de
+l'adapter aux jeux de caract\`eres n\'ecessaires \`a la composition des
+langues autres que l'anglais.\space ^^{langues \'etrang\`eres}
+
+Cette r\'evision inclut quelques fonctions suppl\'ementaires mineures
+qui peuvent \^etre ajout\'ees sans d\'eranger autre chose. Ce livre
+d\'ecrit le ``^{\newTeX}''. Si vous utilisez toujours une version plus
+ancienne de \TeX\ (version $2.991$ ou ant\'erieure), vous devez savoir
+quels dispositifs du {\newTeX} vous ne pouvez utiliser. Les fonctions
+suivantes ne sont pas disponibles dans les versions ant\'erieures~:
+
+\ulist\compact
+\li ^|\badness| (\xref\badness)
+\li ^|\emergencystretch| (\xref\emergencystretch)
+\li ^|\errorcontextlines| (\xref\errorcontextlines)
+\li ^|\holdinginserts| (\xref\holdinginserts)
+\li ^|\language|, ^|\setlanguage| et |\new!-lan!-guage|
+(\pp\xrefn\language, \xrefn{\@newlanguage}) ^^|\newlanguage|
+\li ^|\lefthyphenmin| et ^|\righthyphenmin| (\xref\lefthyphenmin)
+\li ^|\noboundary| (\xref\noboundary)
+\li ^|\topglue| (\xref\topglue)
+\li la notation |^^|$xy$ pour les chiffres hexad\'ecimaux (\xref{hexchars})
+\endulist
+\noindent
+Nous vous recommandons de vous procurer le nouveau \TeX\ si vous le pouvez.
+
+\section Ressources
+
+\xrdef{ressources}
+Un certain nombre de ressources sont disponibles pour vous aider \`a utiliser \TeX.
+\texbook\ est la source d\'efinitive d'information sur \TeX~:
+
+\smallskip
+{\narrower\noindent
+^{Knuth, Donald E.}, \texbook. Reading, Mass.: Addison-Wesley, 1984.\par}
+\smallskip
+\noindent
+Assurez-vous de bien obtenir la dix-septi\`eme \'edition (janvier 1990) ou plus;
+les \'editions pr\'ec\'edentes ne couvrent pas les dispositifs du nouveau \TeX.
+
+^{\LaTeX} est une collection de commandes tr\`es populaire con\c cues pour
+simplifier l'utilisation de \TeX. Il est d\'ecrit dans~:
+\smallskip
+{\narrower\noindent\frenchspacing\spaceskip = 3.33pt plus 2pt minus 1.2pt
+^{Lamport, Leslie}, {\sl The \LaTeX\ Document Preparation System}.
+Reading, Mass.: Addison-Wesley, 1986.\par}
+\smallskip
+\noindent
+^{\AMSTeX} est la collection de commandes adopt\'ees par l'American Mathematical
+Society comme norme pour soumettre de mani\`ere \'electronique des manuscrits math\'ematiques.
+Il est d\'ecrit dans~:
+\smallskip
+{\narrower\noindent
+^{Spivak, Michael~D.}, {\sl The Joy of \TeX}. Providence, R.I.:
+American Mathematical Society, 1986.
+\par}
+\smallskip
+\noindent
+Vous pouvez joindre le ^{\TUG} (TUG), qui \'edite un bulletin appel\'e
+{\it ^{TUGBoat}}. Le TUG est une excellente source d'informations non
+seulement sur \TeX\ mais \'egalement pour des collections de macros,
+y compris \AMSTeX. Son adresse est~:
+\smallskip
+{\obeylines
+^{\TUG}
+c/o American Mathematical Society
+P.O. Box 9506
+Providence, RI 02940
+U.S.A.
+}
+\smallskip
+\noindent
+En conclusion, vous pouvez obtenir des copies des macros ^|eplain.tex|
+d\'ecrites dans la \chapterref{eplain} aussi bien que les macros utilis\'ees en
+composant ce livre. Elles sont disponibles par le r\'eseau Internet par
+\ftp\ anonyme \`a partir des centres serveurs suivants~:
+{\obeylines\display{\tt
+labrea.stanford.edu [36.8.0.47]
+ics.uci.edu [128.195.1.1]
+june.cs.washington.edu [128.95.1.4]}}
+
+La version \'electronique inclut des macros additionnelles qui composent
+le source pour le programme machine ^{\BibTeX}, \'ecrit par Oren
+Patashnik \`a l'universit\'e de Stanford, ^^{Patashnik, Oren} et
+impriment la sortie de ce programme. Si vous trouvez des bogues dans les
+macros ou pensez \`a des am\'eliorations, vous pouvez envoyer un courriel
+\`a Karl \`a {\tt karl@cs.umb.edu}.
+
+Les macros sont \'egalement disponibles pour \$10.00 US sur des disquettes
+$5\frac1/4$\inches\ ou $3\frac1/2$\inches\ format\'ee PC~:
+\smallskip
+{\obeylines
+Paul Abrahams
+214 River Road
+Deerfield, MA 01342
+\vskip\tinyskipamount
+Email: {\tt Abrahams\%Wayne-MTS@um.cc.umich.edu}
+}
+\smallskip
+ \noindent
+Ces adresses sont correctes pour juin 1990; veuillez prendre en compte
+qu'elles peuvent changer apr\`es cela, en particulier les adresses
+\'electro\-niques.
+
+\section Ressources en fran\c cais
+
+[partie sp\'ecifique \`a la version fran\c caise rajout\'ee par le traducteur]
+
+\smallskip
+Toute la documentation de \TeX\ et consort n'a pas \'et\'e traduite en fran\c cais.
+N\'eanmoins, de nombreux ouvrages existent dans la langue de Moli\`ere. Aussi bien sur \TeX\ et
+\LaTeX\ que sur \MF.
+
+\subsection {\TeX}
+
+\smallskip
+{\narrower\noindent
+^{Knuth, Donald E.}, {\sl Le \TeX book}\itcorr. Paris, France : Vuibert, 12/2003.\par}
+\smallskip
+\noindent
+Un grand merci \`a ^{Jean-C\^ome Charpentier} pour cette traduction tant attendue par la
+communau\TeX\ francophone.
+
+\smallskip
+{\narrower\noindent
+^{Seroul, Raymond}, {\sl Le petit livre de \TeX}. Paris, France : Masson, 1996.\par}
+\smallskip
+\noindent
+Pour comprendre \TeX\ et comment le franciser.
+
+\subsection {\LaTeX}
+
+\smallskip
+{\narrower\noindent%\frenchspacing\spaceskip = 3.33pt plus 2pt minus 1.2pt
+^{Bayart, Benjamin}, {\sl Le Joli Manuel Pour \LaTeX}. En t\'el\'echargement libre sur le CTAN.\par}
+\smallskip
+\noindent
+Mon premier livre de chevet sur \LaTeX. Une nouvelle version est en cours d'\'ecriture.
+
+\smallskip
+{\narrower\noindent%\frenchspacing\spaceskip = 3.33pt plus 2pt minus 1.2pt
+^{Desgraupes, Bernard}, {\sl\LaTeX, apprentissage, guide et r\'ef\'erence}. Paris, France : Vuibert, 2000.\par}
+\smallskip
+\noindent
+tr\`es bien fait, un must pour comprendre la gestion des polices sous \LaTeX.
+
+\smallskip
+{\narrower\noindent
+^{Goossens, Michel}, {\sl\LaTeX\ Companion}. Paris, France : CampusPress, 2000.\par}
+\smallskip
+\noindent
+``La'' Bible de \LaTeX, que dire d'autre~? traduction de l'original en anglais, pas tr\`es \`a jour en fran\c cais
+mais une nouvelle version anglaise est sortie.
+
+\smallskip
+{\narrower\noindent
+^{Kluth, Marie-Paule}, {\sl FAQ \LaTeX\ Fran\c caise}. Paris, France : Vui\-bert, 2000.\par}
+\smallskip
+\noindent
+Tr\`es bien fait.
+
+\smallskip
+{\narrower\noindent
+^{Rolland, Christian}, {\sl\LaTeX. Guide pratique}. Paris, France : O'Reilly, 1999.\par}
+\smallskip
+\noindent
+tr\`es bien aussi, avec le CD-ROM \TeX live en prime (peut-\^etre pas la derni\`ere version mais pratique quand m\^eme)
+
+\subsection {\MF}
+
+Pour en apprendre un peu plus sur l'univers de \TeX.
+\smallskip
+{\narrower\noindent
+^{Desgraupes, Bernard}, {\sl\MF\~: guide pratique}. Paris, France : Vuibert, 1999.\par}
+\smallskip
+\noindent
+pas d'\'equivalent, \`a part le \MF book de Knuth (en anglais) .
+
+\subsection {Association}
+
+Vous pouvez joindre l'association ^{GUTenberg} (GUTenberg), qui \'edite un bulletin appel\'e
+{\it ^{La lettre de GUTenberg}}. GUTenberg est une excellente source d'informations sur
+\TeX\ en fran\c cais. Son adresse est~:
+\smallskip
+{\obeylines
+GUTenberg
+c/o Irisa, Campus universitaire de Beaulieu
+F-35042 Rennes cedex
+France
+}
+\smallskip
+
+\endchapter\byebye
diff --git a/Master/texmf-dist/doc/plain/impatient-fr/fxmptext.tex b/Master/texmf-dist/doc/plain/impatient-fr/fxmptext.tex
new file mode 100644
index 00000000000..8b698464281
--- /dev/null
+++ b/Master/texmf-dist/doc/plain/impatient-fr/fxmptext.tex
@@ -0,0 +1,452 @@
+~% 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.
+% TeX ignores anything on a line after a %
+% The next two lines define fonts for the title
+\font\xmplbx = cmbx10 scaled \magstephalf
+\font\xmplbxti = cmbxti10 scaled \magstephalf
+% Now here's the title.
+\leftline{\xmplbx Exemple !xmpnum:\quad\xmplbxti Saisir du texte simple}
+\vglue .5\baselineskip % skip an extra half line
+~\count255 = \pageno
+~\xdef\examplepage{\number\count255}
+~\markinfo{Exemple 1~: Saisir du texte simple}
+~\ifrewritetocfile
+~\write\tocfile{\string\tocsectionentry{Saisir du texte simple}{}{\examplepage}}%
+~\fi
+~^^{notes de pied de page} ^^{commentaires} ^^{ponctuation} ^^{marques de citation}
+~^^{caract\`eres espace} ^^{tirets} ^^{paragraphes//terminer un}
+~\edef\examplepageno{\number\count255}%
+Il est simple de pr\'eparer un texte ordinaire pour \TeX\ puisque
+\TeX\ n'a pas besoin de savoir comment couper les lignes dans
+votre source. Il traite la fin d'une ligne comme un espace%
+\footnote \dag{\TeX\ traite aussi une tabulation comme un espace, comme
+vous le voyez dans ce {\it pied de page}.}. Si vous ne voulez pas
+d'espace ici, mettez un signe de pour%
+centage (le caract\`ere de commentaire) \`a la fin de la ligne.
+ \TeX\ ignore les espaces en d\'ebut de ligne, et traite
+plusieurs espaces comme un seul,
+m\^eme apr\`es un point. Vous indiquez un nouveau paragraphe en
+sautant une ligne (ou plus d'une ligne).
+
+Quand \TeX\ voit un point suivi d'un espace (ou de la fin de la
+ligne, ce qui est \'equivalent), il pense normalement que vous avez
+fini une phrase et ins\`ere un petit espace suppl\'ementaire apr\`es le
+point. Il traite les points d'interrogation et d'exclamation de la
+m\^eme mani\`ere.
+
+ Mais les r\`egles de \TeX\ pour rep\'erer un point ont parfois besoin
+de r\'eglage. \TeX\ pense qu'une lettre capitale avant un point
+ne termine pas une phrase, donc vous devez faire quelque chose de
+l\'eg\`erement diff\'erent si, disons, vous \'ecrivez en parlant d'ADN\null.
+% Le \null emp\`eche TeX de percevoir la capitale `N'
+% comme \'etant suivie du point.
+C'est une bonne id\'ee de relier des mots ensemble dans des r\'ef\'erences
+comme ``voir fig.~8'' et dans des noms comme V.~I\null. L\'enine et dans
+$\ldots$ pour que \TeX\ ne puise jamais les couper \`a un mauvais endroit
+entre deux lignes. (Les trois points indiquent une ellipse.)
+
+Vous pouvez mettre des citations entre des paires de simples
+``quotes'' gauches et droites pour avoir les bonnes marques de
+citation doubles gauches et droites. ``pour des marques de citation
+simple et double adjacentes, ins\'erez un `espace fin'\thinspace''. Vous
+pouvez avoir des tirets demi-cadratins--comme ceci, et des tirets
+cadratins---comme cela.
+
+\bye % end the document
+:::
+\xmpheader !xmpnum/{Indentation}% !xmpheaddef
+~^^{indentation} ^^{marges} ^^{paragraphes//\'etroit}
+\noindent Maintenant, regardons comment contr\^oler l'indentation.
+Si un traitement de texte sait le faire, \TeX\ le sait s\^urement.
+Notez que ce paragraphe n'est pas indent\'e.
+
+Habituellement, on veut soit indenter les paragraphes, soit
+laisser de l'espace suppl\'ementaire entre eux. Comme nous n'avons
+rien chang\'e maintenant, ce paragraphe est indent\'e.
+
+{\parindent = 0pt \parskip = 6pt
+% l'accolade gauche d\'ebute un groupe contenant le texte non indent\'e
+Faisons ces deux paragraphes d'une mani\`ere diff\'erente,
+sans indentation et avec six points suppl\'ementaires
+entre eux.
+
+Voici un autre paragraphe, compos\'e sans indentation. Si nous
+ne mettons pas d'espace entre ces paragraphes, Nous aurons du mal
+\`a savoir o\`u finit l'un et o\`u commence l'autre.
+\par % Le paragraphe *doit* \^etre termin\'e dans le groupe.
+}% L'accolade droite termine le groupe contenant du texte nin indent\'e.
+
+Il est aussi possible d'indenter les deux cot\'es de paragraphes entiers
+Les trois paragraphes suivants illustrent cela~:
+\smallskip % Procure un peu d'espace suppl\'ementaire ici.
+% Skips like this and \vskip below end a paragraph.
+{\narrower
+``Nous avons indent\'e ce paragraphe des deux cot\'es d'une indentation de
+paragraphe. C'est souvent un bon moyen de pr\'esenter de longues citations
+
+``Vous pouvez faire plusieurs paragraphes de cette fa\c con si vous
+le voulez. C'est le second paragraphe indent\'e simplement.''\par}
+
+{\narrower \narrower Vous pouvez m\^eme faire des paragraphes
+doublement indent\'es si vous en avez besoin. Ceci en est un
+exemple.\par}
+\vskip 1pc % Saut vers le bas d'un pica pour s\'eparation visuelle.
+Dans ce paragraphe, nous revenons aux marges normales, comme vous
+pouvez le voir. Rallongeons la sauce pour que les marges soient
+clairement visibles.
+
+{\leftskip .5in Maintenant, nous indentons la marge de gauche d'un
+demi pouce et laissons la marge droite \`a sa position usuelle\par}
+{\rightskip .5in Finalement, nous indentons la marge droite d'un
+demi pouce et laissons la marge gauche \`a sa position usuelle.\par}
+\bye % end the document
+:::
+\xmpheader !xmpnum/{Polices et caract\`eres sp\'eciaux}% !xmpheaddef
+\chardef \\ = `\\ % Let \\ denote a backslash.
+~^^{polices} ^^{caract\`eres//sp\'eciaux} ^^{accents}
+~^^{symboles musicaux} ^^{couleurs de carte \`a jouer}
+~^^|$| ^^|&| ^^|#| ^^|_| ^^|%| ^^|^| ^^|~| ^^|{| ^^|}| \indexchar \
+{\it Voici quelques mots en police italique}, {\bf quelques
+autres en police grasse}, {\it et un\/ {\bf m\'elange}
+des deux, avec trois\/ {\rm mots en romain} ins\'er\'es}.
+Quand une police italique est suivie par une non italique, on
+ins\`ere une ``correction d'italique'' ({\tt \\/}) pour que
+l'espacement rende bien.
+Voici un mot plus {\sevenrm petit}---mais les polices standard
+de \TeX\ ne vous en donneront pas de plus petit que {\fiverm celui-l\`a}.
+
+Si vous voulez un de ces dix caract\`eres~:
+\medskip
+\centerline{\$ \quad \& \quad \# \quad \_ \quad \% \quad
+ \char `\^ \quad \char `\~ \quad $\{$ \quad
+ $\}$ \quad $\backslash$}
+% Le \quad ins\`ere un espace cadratin entre les caract\`eres.
+\medskip
+\noindent vous devez les \'ecrire d'une mani\`ere sp\'eciale. Regardez
+la page d'en face pour savoir comment.
+\TeX\ a les accents et les lettres dont vous avez besoin
+pour des mots fran\c cais comme {\it r\^ ole\/} et {\it \'
+el\` eve\/}, pour des mots allemands comme {\it Schu\ss\/}
+aussi bien que pour des mots de plein d'autres langues.
+Vous trouverez une liste compl\`ete des accents de \TeX\ et des lettres
+de langues Europ\'eennes \`a la !xrefdelim[fornlets] et \`a la !xrefdelim[accents].
+
+Vous trouverez aussi des lettres Grecques comme ``$\alpha$'' et
+``$\Omega$'' pour les utiliser en math\'ematique, des couleurs de carte
+comme ``$\spadesuit$'' et ``$\diamondsuit$'', des symboles de musique
+comme ``$\sharp$'' et ``$\flat$'', et plein d'autres symboles
+sp\'eciaux dont vous trouverez la liste \`a la !xrefdelim[specsyms].
+\TeX\ n'acceptera ces sortes de symboles sp\'eciaux que dans son
+``mode math\'ematique'', donc vous devez les entourer
+entre caract\`eres `{\tt \$}'.
+\bye % end the document
+:::
+\xmpheader !xmpnum/{Espacement interligne}% !xmpheaddef
+~^^{espacement//inter-ligne} ^^{lignes de base}
+\baselineskip = 2\baselineskip % double spacing
+\parskip = \baselineskip % Skip a line between paragraphs.
+\parindent = 3em % Increase indentation of paragraphs.
+
+% The following macro definition gives us nice inline
+% fractions. You'll find it in our eplain macros.
+\def\frac#1/#2{\leavevmode
+ \kern.1em \raise .5ex \hbox{\the\scriptfont0 #1}%
+ \kern-.1em $/$%
+ \kern-.15em \lower .25ex \hbox{\the\scriptfont0 #2}%
+}%
+
+Un jour, vous voudrez imprimer un document avec de l'espace
+suppl\'ementaire entre les lignes. Par exemple, les actes du congr\`es
+sont imprim\'es ainsi pour que les l\'egislateurs puissent les annoter.
+Pour la m\^eme raison, les \'editeurs insistent habituellement pour que
+les manuscrits aient un espacement double. L'espacement double est n\'eammoins
+rarement appropri\'e pour les documents finis.
+
+Une ligne de base est une ligne imaginaire qui agit comme les
+lignes horizontales d'un papier quadrill\'e. Vous pouvez contr\^oler
+l'espacement interligne---ce que les imprimeurs appellent
+``interlignage''---en fixant la taille de l'espace entre les lignes de
+base. Regardez la source pour voir comment faire. Vous pouvez
+utiliser la m\^eme m\'ethode pour un espacement de $1\;1/2$, en mettant
+{\tt 1.5} au lieu de {\tt 2}. (Vous pouvez aussi \'ecrire $1\frac 1/2$
+d'une meilleure fa\c con.)
+% Here we've used the macro definition given above.
+
+Pour cet exemple, nous avons aussi augment\'e l'indentation de
+paragraphe et saut\'e une ligne de plus entre les paragraphes.
+\bye % end the document
+:::
+\xmpheader !xmpnum/{Espacement, traits et bo\^\i tes}% !xmpheaddef
+~^^{listes de description} ^^{\boites//dessiner des} ^^{barre de r\'evision}
+Voici un exemple de ``liste descriptive''. En pratique vous
+feriez mieux de creer une macro pour avoir des constructions r\'ep\'etitives
+et \^etre s\^ur que la largeur des sous-titres soit suffisament grande~:
+\bigskip
+% Call the indentation for descriptions \descindent
+% and set it to 8 picas.
+\newdimen\descindent \descindent = 9pc
+% Indent paragraphs by \descindent.
+% Skip an additional half line between paragraphs.
+{\noindent \leftskip = \descindent \parskip = .5\baselineskip
+% Move the description to the left of the paragraph.
+\llap{\hbox to \descindent{\bf La reine de C\oe ur\hfil}}%
+Une femme \`a moiti\'e folle, prompte a d\'eclarer ``coupez-lui
+la t\^ete~!!''\ \`a la moindre provocation.\par
+\noindent\llap{\hbox to \descindent{\bf Le chat de Cheshire\hfil}}%
+Un chat avec un \'enorme sourire qu'Alice trouve
+dans un arbre.\par
+\noindent\llap{\hbox to \descindent{\bf La tortue Mock\hfil}}%
+une cr\'eature larmoyante, un peu menteuse, qui \'etait un
+compagnon du Gryphon. R\'eput\'e \^etre l'ingr\'edient principal
+de la soupe de tortue Mock.
+\par}
+\bigskip\hrule\bigskip % A line with vertical space around it.
+Voici un exemple de mots dans une bo\^\i te trac\'ee, comme
+Lewis Carroll l'a \'ecrite~:
+\bigskip
+% Put 8pt of space between the text and the surrounding rules.
+\hbox{\vrule\vbox{\hrule
+ \hbox spread 8pt{\hfil\vbox spread 8pt{\vfil
+ \hbox{Who would not give all else for twop}%
+ \hbox{ennyworth only of Beautiful Soup?}%
+ \vfil}\hfil}
+\hrule}\vrule}%
+
+\bigskip\line{\hfil\hbox to 3in{\leaders\hbox{ * }\hfil}\hfil}
+\bigskip
+
+\line{\hskip -4pt\vrule\hfil\vbox{
+Ici, nous obtenons l'effet d'une barre de r\'evision sur le texte
+de ce paragraphe. La barre de r\'evision indique un changement.}}
+\bye % end the document
+:::
+\xmpheader !xmpnum/{Odds and ends}% !xmpheaddef
+~^^{c\'esure} ^^{th\'eor\`emes} ^^{lemmes} ^^{listes d'\'el\'ements}
+~^^{justification \`a gauche} ^^{justification \`a droite} ^^{centrage}
+\chardef \\ = `\\ % Let \\ denote a backslash.
+\footline{\hfil{\tenit - \folio -}\hfil}
+~\global\footline{\hfil{\tenit - \folio\ -}\hfil}
+% \footline provides a footer line.
+% Here it's a centered, italicized page number.
+\TeX\ sait couper les mots, mais n'est pas infaillible.
+Si vous discutez de l'ingr\'edient chimique
+${\it 5}$-[p-(Flouro\-sul\-fonyl)ben\-zoyl]-l,%
+$N^6$-ethe\-no\-adeno\-sine
+et que \TeX\ se plaint aupr\`es de vous d'un ``overfull hbox'', essayez
+d'ins\'erer des ``c\'esures discr\'etionnaires''. La notation
+`{\tt \\-}' indique \`a \TeX\ les c\'esures dis\-cr\'e\-tionnaire,
+qui sont celles qui n'auraient pas \'et\'e ins\'er\'es autrement.
+\medskip
+{\raggedright Vous pouvez composer un texte non justifi\'e, c'est-\`a-dire,
+avec une marge droite non align\'ee. Comme utrefois, avant que les traitements
+de texte soient communs, les document tap\'es \`a la machine parce qu'il n'y
+avait pas de solution pratique.
+Certaines personnes pr\'ef\`erent que le texte ne soit pas justifi\'e
+parce que l'espacement entre les mots est uniforme. La plupart des
+livres sont fait avec des marges justifi\'ees, mais pas tous. \par}
+
+\proclaim Assertion 27. Il y a un moyen simple de composer
+les en-t\^etes d'asser\-tions, lemmes, th\'eor\`emes, etc.
+
+Voici un exemple de comment composer une liste d'items \`a deux
+niveaux de profondeur. Si vous avez besoin de niveaux suppl\'ementaires,
+vous devrez les programmer vous-m\^eme, h\'elas.
+\smallskip
+\item {1.} Voici le premier item.
+\item {2.} Voici le second item. Il est constitu\'e de deux
+paragraphes. Nous avons indent\'e le second paragraphe pour que
+vous puissiez voir facilement o\`u il commence.
+
+\item{} \indent Le second paragraphe a trois sous-items
+sous lui.
+\itemitem {(a)} Voici le premier sous-item.
+\itemitem {(b)} Voici le second sous-item.
+\itemitem {(c)} Voici le troisi\`eme sous-item.
+\item {$\bullet$} Ceci est un \'etrange item parce qu'il est
+compl\`etement diff\'erent des autres.
+\smallskip
+\leftline{Voici une ligne justifi\'ee \`a gauche.$\Leftarrow$}
+\rightline{$\Rightarrow$Voici une ligne justifi\'ee \`a droite.}
+\centerline{$\Rightarrow$Voici une ligne centr\'ee.$\Leftarrow$}
+% Don't try to use these commands within a paragraph.
+\bye % end the document
+:::
+\xmpheader !xmpnum/{Utiliser des polices venant d'ailleurs}% !xmpheaddef
+~\xrdef{palatino}
+~\idxref{police Palatino}
+~\idxref{Zapf, Hermann}
+~\idxref{police Computer Modern} ^^{\Metafont}
+\font\tenrm = pplr % Palatino
+%\font\tenrm = pnss10 % lucida
+% Define a macro for invoking Palatino.
+\def\pal{\let\rm = \tenrm \baselineskip=12.5pt \rm}
+\pal % Use Palatino from now on.
+
+Vous n'\^etes pas restreint \`a la police Computer Modern qui est
+fournie avec \TeX. D'autres polices sont possibles provenant d'autres
+sources et vous pouvez les pr\'ef\'erer. Par exemple, nous avons
+compos\'e cette page en Palatino Romain 10 points. Palatino a \'et\'e
+dessin\'ee par Hermann Zapf, consid\'er\'e comme un des plus grand
+typographe du vingti\`eme si\`ecle. Cette page vous donnera une id\'ee
+de ce \`a quoi elle ressemble.
+
+Les polices peuvent provenir soit sous forme vectorielles soit de
+bitmaps. Une police vectorielle d\'ecrit le dessin des caract\`eres,
+tandis qu'une bitmap sp\'ecifie chaque pixel (point) qui forme chaque
+caract\`ere. Une police vectorielle peut \^etre utilis\'ee pour
+g\'en\'erer diff\'e\-rentes tailles de la m\^eme police. Le programme
+Metafont qui est associ\'e \`a \TeX\ procure un moyen
+particuli\`erement puissant de g\'en\'erer des polices bitmap, mais ce
+n'est pas le seul moyen.
+
+Le fait qu'une seule routine puisse g\'en\'erer un grand \'eventail de
+tailles de point pour une police tente beaucoup de vendeurs de polices
+digitales de ne produire qu'une taille de vectorielles pour une police
+comme Palatino Romain. Cela semble une d\'ecision \'economiquement
+sensible, mais c'est un sacrifice esth\'etique. Une police ne peut pas
+\^etre agrandie et r\'etr\'ecie lin\'eairement sans perdre en
+qualit\'e. Les grandes lettres ne doivent pas, en g\'en\'eral, avoir
+les m\^emes proportions que les plus petites. Cela ne rend simplement
+pas beau. Par exemple, une police qui est diminu\'ee lin\'eairement
+aura trop peu d'espace entre ses lettres et la hauteur des minuscules
+sera trop petite.
+%For example, a font that's linearly scaled down will
+%tend to have too little space between strokes, and its
+%x-height will be too~small. % tie added to avoid widow word
+
+Un typographe peut compenser ces changements en procurant
+diff\'e\-rentes vectorielles pour diff\'erentes tailles de point, mais
+il est n\'ecessaire de d\'epenser du temps \`a dessiner ces
+diff\'erentes vectorielles. Un des grands avantages de Metafont est
+qu'il est possible de param\'etrer les descriptions des caract\`eres
+dans une police. Metafont peut alors maintenir la qualit\'e
+typographique des caract\`eres \`a travers une \'echelle de taille de
+point en ajustant le dessin des caract\`eres en cons\'equence.
+\bye % end the document
+:::
+~\idxref{champignons}
+\xmpheader !xmpnum/{Un tableau trac\'e}% !xmpheaddef
+\bigskip
+\offinterlineskip % So the vertical rules are connected.
+% \tablerule constructs a thin rule across the table.
+\def\tablerule{\noalign{\hrule}}
+% \tableskip creates 9pt of space between entries.
+\def\tableskip{\omit&height 9pt&&&\omit\cr}
+% & separates templates for each column. TeX substitutes
+% the text of the entries for #. We must have a strut
+% present in every row of the table; otherwise, the boxes
+% won't butt together properly, and the rules won't join.
+\halign{\tabskip = .7em plus 1em % glue between columns
+% Use \vtop for short multiline entries in the first column.
+% Typeset the lines ragged right, without hyphenation.
+ \vtop{\hsize=6pc\pretolerance = 10000\hbadness = 10000
+ \normalbaselines\noindent\it#\strut}%
+ &\vrule #&#\hfil &\vrule #% the rules and middle column
+% Use \vtop to get whole paragraphs in the last column.
+ &\vtop{\hsize=11pc \parindent=0pt \normalbaselineskip=12pt
+ \normalbaselines \rightskip=3pt plus2em #}\cr
+% The table rows begin here.
+\noalign{\hrule height2pt depth2pt \vskip3pt}
+ % The header row spans all the columns.
+ \multispan5\bf Quelques Champignons Remarquables\hfil\strut\cr
+\noalign{\vskip3pt} \tablerule
+ \omit&height 3pt&\omit&&\omit\cr
+ \bf Nom&&\bf Nom &&\omit \bf Caract\`eristiques \hfil\cr
+\noalign{\vskip -2pt}% close up lines of heading
+ \bf Botanique&&\bf Commun&&\omit \bf d'Identification \hfil\cr
+\tableskip Pleurotus ostreatus&&Pleurote en forme d'huitre&&
+ Poussent \'etag\'es les uns sur les autres sur le bois mort ou affaibli,
+ % without the kern, the `f' and `l' would be too close
+ chapeau en forme de coquille d'huitre gris-rose, pied court ou absent.\cr
+\tableskip Lactarius hygrophoroides&&Lactaire hygrophore&&
+ Chapeau et pied de couleur orange rouille, abondance de lait,
+ souvent sur la terre des bois pr\`es des ruisseaux.\cr
+\tableskip Morchella esculenta&&Morille commune&&Chapeau conique
+ avec des trous noirs et les ar\^etes blanches; sans lamelles. Souvent
+ pr\`es de vieux pommiers et des ormes morts au printemps.\cr
+\tableskip Boletus edulus&&C\`epe de Bordeaux&&Chapeau rouge-brun \`a
+ caf\'e au lait avec des pores jaunes (blanc quand il est jeune),
+ pied bulbeux, souvent pr\`es des conif\`eres, bouleaux ou~trembles.\cr
+\tableskip \tablerule \noalign{\vskip 2pt} \tablerule
+}\bye
+:::
+\xmpheader !xmpnum/{Composer des math\'ematiques}% !xmpheaddef
+~^^{math\'ematiques}
+Pour un triangle sph\'erique de cot\'es $a$, $b$ et $c$ et
+d'angles oppos\'es $\alpha$, $\beta$ et $\gamma$, nous avons~:
+$$\cos \alpha = -\cos \beta \cos \gamma +
+ \sin \beta \sin \gamma \cos \alpha \quad
+ \hbox{(Loi de Cosinus)}$$
+et~:
+$$\tan {\alpha \over 2} = \sqrt{
+ {- \cos \sigma \cdot \cos(\sigma - \alpha)} \over
+ {\cos (\sigma - \beta) \cdot \cos (\sigma - \gamma)}},\quad
+ \hbox{o\`u $\sigma = {1 \over 2}(a+b+c)$}$$
+Nous avons aussi~:$$\sin x = {{e^{ix}-e^{-ix}}\over 2i}$$
+et~:
+$$\int _0 ^\infty {{\sin ax \sin bx}\over{x^2}}\,dx
+% The \, above produces a thin space
+ = {\pi a\over 2}, \quad \hbox{si $a < b$}$$
+
+\noindent Le nombre de combinaisons ${}_nC_r$ de $n$
+choses prises parmi $r$ est~:
+$$C(n,r) = {}_nC_r = {n \choose r} =
+ {{n(n-1) \cdots (n-r+1)} \over {r(r-1) \cdots (1)}} =
+ {{n!!}\over {r!!(n-r)!!}}$$
+
+\noindent
+La valeur du d\'eterminant $D$ d'ordre $n$~:
+$$D = \left|\matrix{a_{11}&a_{12}&\ldots&a_{1n}\cr
+ a_{21}&a_{22}&\ldots&a_{2n}\cr
+ \vdots&\vdots&\ddots&\vdots\cr
+ a_{n1}&a_{n2}&\ldots&a_{nn}\cr}\right| $$
+est d\'efinie comme la somme de $n!!$ termes~:
+$$\sum\>(\pm)\>a_{1i}a_{2j} \ldots a_{nk}$$
+% The \> above produces a medium space.
+o\`u $i$, $j$, \dots,~$k$\/ prennent toutes les valeurs possibles
+entre $1$ et $n$ et pour lequel, le signe du produit est
+$+$ si la s\'equence $i$, $j$, \dots,~$k$\/ est une
+permutation paire et $-$ autrement. De plus~:
+$$Q(\xi) = \lambda_1 y_1^2 \sum_{i=2}^n \sum_{j=2}^n y_i
+b_{ij} y_j,\qquad B = \Vert b_{ij} \Vert = B'$$
+\bye
+:::
+\xmpheader !xmpnum/{Plus de math\'ematiques}% !xmpheaddef
+~^^{math\'ematiques}
+La valeur absolue de $X$, $|x|$, est d\'efinie par~:
+$$|x| = \cases{x, &si $x\ge 0$;\cr
+-x,&autrement.\cr}$$
+Maintenant quelques \'equations num\'erot\'ees.
+Il arrive que pour $k \ge 0$~:
+$$x^{k^2}=\overbrace{x\>x\>\cdots\> x}^{2k\ \rm fois}
+ \eqno (1)$$
+
+Voici un exemple qui montre certains contr\^oles d'espacement, avec
+un num\'ero \`a gauche~:
+$$[u]!negthin[v][w]\,[x]\>[y]\;[z]\leqno(2a)$$
+Le montant d'espace pour les items entre crochets
+augmente graduellement de gauche \`a droite. Nous avons fait
+l'espace entre les deux premiers items plus {\it petit\/}
+que l'espace naturel.
+Il arrive parfois que $$\leqalignno{
+u'_1 + tu''_2 &= u'_2 + tu''_1&(2b)\cr
+\hat\imath &\ne \hat \jmath&(2c)\cr
+\vec {\vphantom{b}a}&\approx \vec b\cr}$$
+% The \vphantom is an invisible rule as tall as a `b'.
+Le r\'esultat est d'ordre $O(n \log\log n)$. D'o\`u
+$$\sum_{i=1}^n x_i = x_1+x_2+\cdots+x_n
+= {\rm Sum}(x_1,x_2,\ldots,x_n). \eqno(3)$$
+et
+$$dx\,dy = r\,dr\,d\theta!negthin.\eqno(4)$$
+Le jeu de tous les $q$ tels que $q\le0$ s'\'ecrit~:
+$$\{\,q\mid q\le0\, \}$$
+Donc
+$$\forall x\exists y\;P(x,y)\Rightarrow
+\exists x\exists y\;P(x,y)$$
+o\`u
+$$P(x,y) \buildrel \rm def \over \equiv
+\hbox{\rm tout pr\'edicat en $x$ et $y$} . $$
+\bye
+:::