summaryrefslogtreecommitdiff
path: root/info
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-01-05 03:00:30 +0000
committerNorbert Preining <norbert@preining.info>2020-01-05 03:00:30 +0000
commitd703bc2777b69363e791c0ec50045947b1a399da (patch)
tree518c616bdf53da2c5dccf1bbd0a17ba14d4b7c7a /info
parent46d85b2b8e0282e241f8a41c6c0cd190c495eab0 (diff)
CTAN sync 202001050300
Diffstat (limited to 'info')
-rw-r--r--info/impatient/ChangeLog100
-rw-r--r--info/impatient/Makefile19
-rw-r--r--info/impatient/Makefile.in118
-rw-r--r--info/impatient/NEWS19
-rw-r--r--info/impatient/README37
-rw-r--r--info/impatient/book.aux1006
-rw-r--r--info/impatient/book.ccs94
-rw-r--r--info/impatient/book.idx3583
-rw-r--r--info/impatient/book.pdfbin1345712 -> 1345340 bytes
-rw-r--r--info/impatient/book.sdx2
-rw-r--r--info/impatient/book.toc201
-rw-r--r--info/impatient/concepts.tex26
-rw-r--r--info/impatient/config.tex7
-rw-r--r--info/impatient/configure3172
-rw-r--r--info/impatient/configure.ac16
-rw-r--r--info/impatient/copyrght.tex5
-rw-r--r--info/impatient/diffs/impatient-2.0-2.3.diff.gzbin0 -> 49000 bytes
-rw-r--r--info/impatient/diffs/impatient-2.3-2.4.diff.gzbin0 -> 4098 bytes
-rw-r--r--info/impatient/diffs/impatient-2.4-2020.diff.gzbin0 -> 67928 bytes
-rw-r--r--info/impatient/errata.future268
-rw-r--r--info/impatient/fdl.tex7
-rw-r--r--info/impatient/fr/fbackm.tex206
-rw-r--r--info/impatient/fr/fbook.tex100
-rw-r--r--info/impatient/fr/fcapsule.tex2246
-rw-r--r--info/impatient/fr/fconcept.tex8139
-rw-r--r--info/impatient/fr/fcopyrgh.tex116
-rw-r--r--info/impatient/fr/ferrors.tex618
-rw-r--r--info/impatient/fr/ffrontm.tex164
-rw-r--r--info/impatient/fr/fgenops.tex5668
-rw-r--r--info/impatient/fr/findex.tex37
-rw-r--r--info/impatient/fr/fmacros.tex4688
-rw-r--r--info/impatient/fr/fmath.tex4352
-rw-r--r--info/impatient/fr/fmodes.tex4159
-rw-r--r--info/impatient/fr/fpages.tex2306
-rw-r--r--info/impatient/fr/fparas.tex4302
-rw-r--r--info/impatient/fr/fpreface.tex316
-rw-r--r--info/impatient/fr/fread1st.tex92
-rw-r--r--info/impatient/fr/ftips.tex2008
-rw-r--r--info/impatient/fr/fusermacs.tex2336
-rw-r--r--info/impatient/genops.tex40
-rw-r--r--info/impatient/macros.tex6
-rw-r--r--info/impatient/paras.tex52
-rw-r--r--info/impatient/preface.tex13
-rw-r--r--info/impatient/usebook.tex6
-rw-r--r--info/impatient/usingtex.tex17
-rw-r--r--info/impatient/xmptext.tex10
46 files changed, 26052 insertions, 24625 deletions
diff --git a/info/impatient/ChangeLog b/info/impatient/ChangeLog
new file mode 100644
index 0000000000..a64aeb5eda
--- /dev/null
+++ b/info/impatient/ChangeLog
@@ -0,0 +1,100 @@
+2020-01-03 Karl Berry <karl@freefriends.org>
+
+ * Version 2020 released to ctan.org.
+
+ * config.tex: make non-empty for CTAN.
+ * Makefile (files): include cn fr artwork subdirs for CTAN.
+
+2020-01-02 Karl Berry <karl@freefriends.org>
+
+ * README: mention diffs/ subdir, etc.
+ * NEWS: urls for previous releases; remove autoconfery.
+ * preface.tex: give ctan url at end of preface, and no email.
+
+2020-01-01 Karl Berry <karl@freefriends.org>
+
+ * book.sdx (\unorderedlist): correct name from \unnumberedlist
+ index entry. Manually edited generated index file here.
+ (PDF p.388 = printed p.368)
+
+ * concepts.tex (class): has class, not is in class. (PDF p.76 =
+ printed p.56)
+
+ * concepts.tex (category code, character): reword to reduce
+ confusion of (say) character code 65 with
+ typesetting a letter A.
+ Also, it's not plain tex that defines what the catcodes are.
+ Lots more could be done. (PDF pp.74-75 = printed pp.54-55)
+
+ * concepts.tex (category code): explicit kern to avoid $c$grok
+ without space. (PDF p.73 = printed p.53)
+
+ * xmptext.tex (A ruled table): fl would be a ligature.
+ * xmptext.tex (A ruled table): reword \vtop comment.
+ (PDF p.57 = printed p.37)
+
+ * usingtex.tex (Math formulas): mention that \TeX\ does its own
+ spacing math. (PDF p.36 = printed p.16)
+
+ * usingtex.tex (Spaces): supposed to produce -> supposed to
+ do. (PDF p.32 = printed p.12)
+
+ * usebook.tex: mention that chapter (section) 13 is also random access.
+ (PDF p.21 = printed p.1)
+
+ * genops.tex: avoid horrible language list that's now in
+ \fmtversion, running off the page. (PDF p.245 = printed p.225)
+
+ * usingtex.tex: force \eject to avoid underfull \vbox.
+ (PDF p.34 = printed p.14)
+
+ * macros.tex (\hand): the right-pointing hand is \char"2B in
+ pzdr. Report from Will Adams.
+
+ * xmptext.tex: "pages 97 and 100", using new \xrefndelim.
+ (PDF p.46 = printed p.26)
+ * macros.tex (\xrefndelim): new macro.
+
+2020-01-01 Karl Berry <karl@freefriends.org>
+
+ Because we no longer have that erroneous extra stretchability from
+ the \fontdimen example:
+
+ * fdl.tex: use \spaceskip twice to avoid overfull boxes.
+
+ * genops.tex (\showlists): reword to avoid overfull box.
+ (PDF p.273 = printed p.253)
+
+ * genops.tex: reword "stream numbers...\newread" sentence to
+ avoid overfull box. (PDF p.268 = printed p.248)
+
+2020-01-01 Karl Berry <karl@freefriends.org>
+
+ Following bugs reported recently by David Fuchs,
+ and by others in the past:
+
+ * paras.tex (\parshape): explicitly save and restore \fontdimen
+ since those assignments are global. Mention this in description.
+ (PDF pp.138-9 = printed pp.118-9)
+
+ * genops.tex (Naming and reserving registers, etc.): reword first
+ item to avoid the doubling of \fontdimen3, which is not grouped,
+ thus affects all subsequent text (!). (PDF p.264 = printed p.244)
+
+ (\fontdimen): show the save and restore of \fontdimen value
+ in the example. (PDF p.243 = printed p.223)
+
+ * paras.tex (\everypar): remove \vglue hack for \secondprinting
+ to avoid overwriting text. A blank line before \example solves it
+ well enough. (PDF p.133 = printed p.113)
+
+ * errata.future: page 113 overlap now fixed; updates for all other
+ changes as needed.
+
+2020-01-01 Karl Berry <karl@freefriends.org>
+
+ * copyrght.tex: 2020
+
+ * Start from CTAN release of 13 November 2014 (393 PDF pages).
+ The version at https://savannah.gnu.org/projects/teximpatient has
+ been moved to git, but, it seems, no substantive changes made.
diff --git a/info/impatient/Makefile b/info/impatient/Makefile
index 63c0d7841c..bb65ddd782 100644
--- a/info/impatient/Makefile
+++ b/info/impatient/Makefile
@@ -1,15 +1,20 @@
+# $Id: Makefile,v 1.2 2020/01/03 22:17:40 karl Exp $
# public domain
all: book.dvi book.pdf #book.html
-book.dvi: fdl.tex preface.tex
- tex '\nonstopmode\input book'
-book.pdf: fdl.tex preface.tex
- pdftex '\nonstopmode\input book'
+book.dvi: *.tex
+ texfot tex '\nonstopmode\input book'
+book.pdf: *.tex
+ texfot pdftex '\nonstopmode\input book'
book.html:
httex book.tex
+files = ChangeLog Makefile NEWS README *.icn \
+ *.tex book.aux book.idx book.toc book.ccs book.sdx book.pdf \
+ diffs cn fr artwork
+
+dist = impatient
dist: all
rm -f x.tex
- tar czf impatient.tgz Makefile README *.icn \
- *.tex book.aux book.idx book.toc book.ccs book.sdx \
- book.dvi book.pdf
+ tar -czf $(dist).tar.gz --transform='s,^,$(dist)/,' $(files)
+ tar tf $(dist).tar.gz | head -4
diff --git a/info/impatient/Makefile.in b/info/impatient/Makefile.in
deleted file mode 100644
index 53617389ba..0000000000
--- a/info/impatient/Makefile.in
+++ /dev/null
@@ -1,118 +0,0 @@
-# $Id: Makefile.in,v 1.7 2014/11/13 17:12:55 karl Exp $
-# public domain
-# Makefile[.in] for TeX for the Impatient.
-
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_URL = @PACKAGE_URL@
-
-prefix = @prefix@
-datarootdir = @datarootdir@
-docdir = @docdir@
-pdfdir = @pdfdir@
-dvidir = @dvidir@
-htmldir = @htmldir@
-DESTDIR =
-
-SHELL = /bin/sh
-ICON = @ICON@
-TEX = @TEX@
-PDFTEX = @PDFTEX@
-HTTEX = @HTTEX@
-
-MKDIR_P = @MKDIR_P@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-
-TEXFILES = backm.tex book.tex capsule.tex concepts.tex config.tex \
- copyrght.tex eplain.tex errors.tex examples.tex fdl.tex fonts.tex \
- frontm.tex genops.tex index.tex macros.tex math.tex modes.tex \
- pages.tex paras.tex preface.tex read1st.tex tips.tex usebook.tex \
- usermacs.tex usingtex.tex xmptext.tex
-
-ICONSCRIPTS = index1.icn index2.icn
-
-SDXFILE = book.sdx
-
-AUXFILES = book.aux book.ccs book.idx book.toc
-
-LOGFILES = book.log
-
-PDFFILE = book.pdf
-
-DVIFILE = book.dvi
-
-HTMLFILE = book.html
-
-all: pdf #html dvi
-
-dvi: $(DVIFILE)
-
-pdf: $(PDFFILE)
-
-html: $(HTMLFILE)
-
-install: installdirs install-dvi install-pdf
-
-installdirs:
- $(MKDIR_P) $(DESTDIR)$(dvidir)
- $(MKDIR_P) $(DESTDIR)$(pdfdir)
- $(MKDIR_P) $(DESTDIR)$(htmldir)
-
-install-dvi: dvi
- $(INSTALL_DATA) book.dvi $(DESTDIR)$(dvidir)/teximpatient.dvi
-
-install-pdf: pdf
- $(INSTALL_DATA) book.pdf $(DESTDIR)$(dvidir)/teximpatient.pdf
-
-install-html: html
- $(INSTALL_DATA) book.html $(DESTDIR)$(dvidir)/teximpatient.html
-
-book.dvi: $(TEXFILES)
- $(TEX) '\nonstopmode\input book'
-
-book.pdf: $(TEXFILES) $(SDXFILE)
- $(PDFTEX) '\nonstopmode\input book'
-
-book.html: book.tex
- $(HTTEX) book.tex "html"
-
-book.idx: book.dvi
-
-# + chars in book.idx need to be changed to SPC chars in book.sdx
-# somewhere, but currently aren't. Therefore, we effectively disable
-# the rule as long as book.sdx exists. This also avoids rerunning every
-# time (since book.idx changes every time; that file is written by TeX).
-# But the page numbers in the existing book.sdx are probably wrong by now :(.
-book.sdx: #book.idx $(ICONSCRIPTS)
- if test -z "$(ICON)"; then touch book.sdx; else \
- (cat book.idx | $(ICON) index1.icn | sort \
- | $(ICON) index2.icn >book.sdx); fi
-
-dist: all
- tar czf $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.gz \
- Makefile.in configure configure.ac \
- NEWS README errata.future \
- $(ICONSCRIPTS) \
- $(TEXFILES) \
- $(SDXFILE) \
- $(PDFFILE)
-
-dist-cn:
- tar czf $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)cn.tar.gz \
- cn-git/Makefile cn-git/*.tex cn-git/cnbook.pdf
-
-distclean: clean
- -rm -rf config.log config.status autom4te.cache Makefile
-
-clean:
- -rm -f $(LOGFILES) $(AUXFILES) x.tex
-
-.PHONY: all dist clean pdf dvi html install installdirs \
- install-dvi install-pdf install-html
-
-configure: configure.ac
- autoconf
diff --git a/info/impatient/NEWS b/info/impatient/NEWS
index 69931f5d07..c4c89709af 100644
--- a/info/impatient/NEWS
+++ b/info/impatient/NEWS
@@ -1,21 +1,34 @@
-$Id: NEWS,v 1.3 2014/11/13 17:07:59 karl Exp $
+$Id: NEWS,v 1.3 2020/01/02 23:44:18 karl Exp $
This NEWS file records noteworthy changes, very tersely.
- Copyright 2013, 2014 Karl Berry.
+ Copyright 2013-2020 Karl Berry.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
+ Version 2020
+- released on ctan.org only, as someone else is maintaining the GNU package.
+- small bug fixes to text; see ChangeLog.
+- remove Autoconf infrastructure, too much for here.
+- still looking for a maintainer; see README and errata.future for ideas.
+ I (Karl) don't plan to make further releases unless significant bugs
+ are found.
Version 2.4 (13 November 2014)
- Chinese translation.
- fixes from new Chinese translator, Zou Hu.
+- available from https://ftp.gnu.org/gnu/teximpatient/teximpatient-2.4.tar.gz
Version 2.3 (21 May 2013)
- first release on ftp.gnu.org. Now looking for a maintainer.
-- update to GFDLv1.3.
+- update to GFDLv1.3+.
- simple configure script and Makefile added.
- no changes to the text.
- There is now a `NEWS' file (this one), giving a history of
user-visible changes.
+- available from https://ftp.gnu.org/gnu/teximpatient/teximpatient-2.3.tar.gz
+
+ first free edition.
+- available from https://tug.org/historic/
+ as systems/texlive/2011/tlnet-final/archive/impatient.doc.tar.xz.
diff --git a/info/impatient/README b/info/impatient/README
index e4920fc0e7..624f82cb25 100644
--- a/info/impatient/README
+++ b/info/impatient/README
@@ -1,27 +1,32 @@
-$Id: README,v 1.5 2014/11/13 17:07:59 karl Exp $
-This is the README file for the GNU (free documentation) edition of the
+$Id: README,v 1.2 2020/01/02 23:36:14 karl Exp $
+This is the README file for the CTAN (free documentation) edition of the
book TeX for the Impatient, released under the GNU Free Documentation
License. (This README file itself is public domain.)
-Primary distribution point: ftp://ftp.gnu.org/gnu/teximpatient/
- automatic redirection: http://ftpmirror.gnu.org/teximpatient
- list of mirrors for manual selection: http://www.gnu.org/prep/ftp.html
+Information about the free edition is included at the end of the preface
+and on the copyright page.
-Home page: http://www.gnu.org/software/teximpatient/
+Home page: https://ctan.org/pkg/impatient/
+Chinese and French translations (independently maintained), as well as
+all sources and PDFs, are available from there.
-Development sources, etc.: http://savannah.gnu.org/projects/teximpatient/
+The book is looking for a maintainer; see README and errata.future for
+ideas. I (Karl) don't plan to make any more releases, unless significant
+bugs are found. But you can email me at karl@freefriends.org if need be.
-Information about the free edition is included at the end of the preface
-and on the copyright page.
+For convenience, the diffs between all the free releases
+are in the diffs/ subdirectory. To download the full releases, see
+the urls in NEWS.
-A French translation is included in the distribution,
-and a Chinese translation is at https://bitbucket.org/zohooo/impatient
-(with PDF at
-http://zoho.is-programmer.com/user_files/zoho/epics/tex-impatient-cn.pdf).
+
+There is also a GNU package for the book, which is maintained
+separately. Its home page: https://gnu.org/software/teximpatient/
+The GNU version does not, at this writing, include the fixes made in
+2020 (see NEWS and ChangeLog).
Original high-resolution scans of the artwork are available from
http://ftpmirror.gnu.org/teximpatient/artwork. Reduced-size bitmaps are
-in the artwork/ subdirectory here.
+in the artwork/ subdirectory on CTAN.
Some random thoughts for people thinking of working with the source:
@@ -29,8 +34,8 @@ Some random thoughts for people thinking of working with the source:
- See errata.future for some relatively small ideas for enhancements.
- You may want to translate the source into some more standard
-format, such as Texinfo; we used many homegrown macros mostly to make
-typing and markup easier.
+format, such as Texinfo; we used many homegrown macros, mostly just
+to make typing and markup easier.
- You may also want to redo the index creation to use makeindex or some
other standard program, instead of the homegrown Icon programs (or else
diff --git a/info/impatient/book.aux b/info/impatient/book.aux
new file mode 100644
index 0000000000..ee3a998a5d
--- /dev/null
+++ b/info/impatient/book.aux
@@ -0,0 +1,1006 @@
+\gdef\usebook_C{1}
+\gdef\cmddesc_{3}
+\gdef\usingtex_C{2}
+\gdef\infiles_{9}
+\gdef\@backslash_{10}
+\gdef\arg1_{11}
+\gdef\introparms_{12}
+\gdef\spaces_{12}
+\gdef\comments_{13}
+\gdef\periodspacing_{13}
+\gdef\bracegroup_{15}
+\gdef\mathform_{16}
+\gdef\newtex_{18}
+\gdef\resources_{18}
+\gdef\examples_C{3}
+\gdef\xmphead_{21}
+\gdef\palatino_{34}
+\gdef\concepts_C{4}
+\gdef\active+character_{43}
+\gdef\alignment_{44}
+\gdef\@and_{44}
+\gdef\tabbedexample_{44}
+\gdef\@asharp_{45}
+\gdef\halignexample_{46}
+\gdef\_anatomy_{46}
+\gdef\argument_{48}
+\gdef\ASCII_{49}
+\gdef\assignment_{49}
+\gdef\badness_{50}
+\gdef\baseline_{51}
+\gdef\box_{51}
+\gdef\category+code_{53}
+\gdef\catcodes_{53}
+\gdef\character_{55}
+\gdef\twocarets_{55}
+\gdef\hexchars_{55}
+\gdef\class_{56}
+\gdef\command_{56}
+\gdef\conditional+test_{57}
+\gdef\control+sequence_{57}
+\gdef\control+symbol_{58}
+\gdef\control+word_{58}
+\gdef\decimal+constant_{58}
+\gdef\delimiter_{58}
+\gdef\demerits_{60}
+\gdef\depth_{60}
+\gdef\dimension_{60}
+\gdef\dimdefs_{60}
+\gdef\display+math_{61}
+\gdef\escape+character_{61}
+\gdef\family_{62}
+\gdef\file_{62}
+\gdef\file+name_{63}
+\gdef\font_{64}
+\gdef\shape_{65}
+\gdef\footer_{65}
+\gdef\format+file_{65}
+\gdef\global_{65}
+\gdef\glue_{66}
+\gdef\group_{68}
+\gdef\hbox_{69}
+\gdef\header_{69}
+\gdef\height_{69}
+\gdef\horizontal+list_{69}
+\gdef\horizontal+mode_{69}
+\gdef\hyphenation_{70}
+\gdef\input+stream_{70}
+\gdef\insertion_{70}
+\gdef\interline+glue_{70}
+\gdef\item_{71}
+\gdef\justified+text_{71}
+\gdef\kern_{71}
+\gdef\leaders_{72}
+\gdef\ligature_{73}
+\gdef\line+break_{74}
+\gdef\list_{75}
+\gdef\log+file_{75}
+\gdef\macro_{75}
+\gdef\@msharp_{75}
+\gdef\magnification_{78}
+\gdef\margins_{79}
+\gdef\mark_{79}
+\gdef\math+mode_{80}
+\gdef\mathcode_{80}
+\gdef\mathematical+unit_{81}
+\gdef\mode_{81}
+\gdef\muglue_{82}
+\gdef\number_{82}
+\gdef\ordinary+mode_{83}
+\gdef\outer_{83}
+\gdef\output+routine_{83}
+\gdef\output+stream_{84}
+\gdef\page_{84}
+\gdef\page+break_{85}
+\gdef\page+builder_{86}
+\gdef\page+layout_{86}
+\gdef\paragraph_{86}
+\gdef\parameter_{87}
+\gdef\penalty_{88}
+\gdef\_plainTeX_{88}
+\gdef\primitive_{88}
+\gdef\reference+point_{88}
+\gdef\register_{89}
+\gdef\restricted+mode_{90}
+\gdef\rule_{90}
+\gdef\script+size_{91}
+\gdef\scriptscript+size_{91}
+\gdef\shrink_{91}
+\gdef\space_{91}
+\gdef\stretch_{92}
+\gdef\strut_{92}
+\gdef\style_{92}
+\gdef\_TeXMeX_{93}
+\gdef\text+math_{93}
+\gdef\text+size_{93}
+\gdef\token_{93}
+\gdef\unit+of+measure_{93}
+\gdef\vbox_{94}
+\gdef\vertical+list_{94}
+\gdef\vertical+mode_{94}
+\gdef\whatsit_{94}
+\gdef\width_{95}
+\gdef\paras_C{5}
+\gdef\fornlets_{97}
+\gdef\_AA_{97}
+\gdef\_aa_{97}
+\gdef\_AE_{97}
+\gdef\_ae_{97}
+\gdef\_L_{97}
+\gdef\_l_{97}
+\gdef\_O_{97}
+\gdef\_o_{97}
+\gdef\_OE_{97}
+\gdef\_oe_{97}
+\gdef\_ss_{97}
+\gdef\_@pound_{98}
+\gdef\_@bucks_{98}
+\gdef\_@percent_{98}
+\gdef\_@and_{98}
+\gdef\_@underscore_{98}
+\gdef\_lq_{98}
+\gdef\_rq_{98}
+\gdef\_dag_{98}
+\gdef\_ddag_{98}
+\gdef\_copyright_{98}
+\gdef\_P_{98}
+\gdef\_S_{98}
+\gdef\_TeX_{98}
+\gdef\_dots_{99}
+\gdef\_char_{99}
+\gdef\_mathchar_{99}
+\gdef\accents_{100}
+\gdef\_@prime_{100}
+\gdef\_@dot_{100}
+\gdef\_@equal_{100}
+\gdef\_@hat_{100}
+\gdef\_@lquote_{100}
+\gdef\_@quote_{100}
+\gdef\_@not_{100}
+\gdef\_c_{100}
+\gdef\_d_{100}
+\gdef\_H_{100}
+\gdef\_t_{100}
+\gdef\_u_{100}
+\gdef\_v_{100}
+\gdef\_i_{100}
+\gdef\_j_{100}
+\gdef\_accent_{100}
+\gdef\_noboundary_{101}
+\gdef\selfont_{102}
+\gdef\_fivebf_{102}
+\gdef\_fivei_{102}
+\gdef\_fiverm_{102}
+\gdef\_fivesy_{102}
+\gdef\_sevenbf_{102}
+\gdef\_seveni_{102}
+\gdef\_sevenrm_{102}
+\gdef\_sevensy_{102}
+\gdef\_tenbf_{102}
+\gdef\_tenex_{102}
+\gdef\_teni_{102}
+\gdef\_tenrm_{102}
+\gdef\_tensl_{102}
+\gdef\_tensy_{102}
+\gdef\_tenit_{102}
+\gdef\_tentt_{102}
+\gdef\_nullfont_{102}
+\gdef\seltype_{103}
+\gdef\_bf_{103}
+\gdef\_it_{103}
+\gdef\_rm_{103}
+\gdef\_sl_{103}
+\gdef\_tt_{103}
+\gdef\_lccode_{103}
+\gdef\_uccode_{103}
+\gdef\_lowercase_{104}
+\gdef\_uppercase_{104}
+\gdef\_@space_{104}
+\gdef\_space_{105}
+\gdef\@newline_{105}
+\gdef\@not_{105}
+\gdef\_@slash_{106}
+\gdef\_frenchspacing_{106}
+\gdef\_nonfrenchspacing_{106}
+\gdef\_obeyspaces_{107}
+\gdef\_spacefactor_{107}
+\gdef\_spaceskip_{107}
+\gdef\_xspaceskip_{107}
+\gdef\_sfcode_{107}
+\gdef\_centerline_{108}
+\gdef\_leftline_{108}
+\gdef\_rightline_{108}
+\gdef\_line_{109}
+\gdef\_llap_{109}
+\gdef\_rlap_{109}
+\gdef\_@par_{110}
+\gdef\_endgraf_{111}
+\gdef\_parfillskip_{111}
+\gdef\_indent_{111}
+\gdef\_noindent_{112}
+\gdef\_textindent_{112}
+\gdef\_parindent_{113}
+\gdef\_everypar_{113}
+\gdef\_hsize_{114}
+\gdef\_narrower_{114}
+\gdef\_leftskip_{115}
+\gdef\_rightskip_{115}
+\gdef\_raggedright_{116}
+\gdef\_ttraggedright_{116}
+\gdef\_hang_{117}
+\gdef\_hangafter_{117}
+\gdef\_hangindent_{117}
+\gdef\_parshape_{118}
+\gdef\_prevgraf_{120}
+\gdef\_vadjust_{120}
+\gdef\hbreak_{120}
+\gdef\hnobreak_{121}
+\gdef\hallowbreak_{121}
+\gdef\hpenalty_{121}
+\gdef\_obeylines_{122}
+\gdef\_slash_{122}
+\gdef\_pretolerance_{123}
+\gdef\_tolerance_{123}
+\gdef\_emergencystretch_{124}
+\gdef\_looseness_{124}
+\gdef\_linepenalty_{125}
+\gdef\_adjdemerits_{125}
+\gdef\_exhyphenpenalty_{125}
+\gdef\_hyphenpenalty_{125}
+\gdef\_doublehyphendemerits_{125}
+\gdef\_finalhyphendemerits_{126}
+\gdef\_binoppenalty_{126}
+\gdef\_relpenalty_{126}
+\gdef\_@minus_{126}
+\gdef\_discretionary_{127}
+\gdef\_hyphenation_{127}
+\gdef\_uchyph_{128}
+\gdef\_showhyphens_{128}
+\gdef\_language_{128}
+\gdef\_setlanguage_{128}
+\gdef\_lefthyphenmin_{128}
+\gdef\_righthyphenmin_{128}
+\gdef\_hyphenchar_{129}
+\gdef\_defaulthyphenchar_{129}
+\gdef\_@beginsection_{129}
+\gdef\_item_{130}
+\gdef\_itemitem_{130}
+\gdef\_@proclaim_{131}
+\gdef\pages_C{6}
+\gdef\_baselineskip_{133}
+\gdef\_lineskiplimit_{133}
+\gdef\_lineskip_{133}
+\gdef\_prevdepth_{134}
+\gdef\_normalbaselineskip_{134}
+\gdef\_normallineskiplimit_{134}
+\gdef\_normallineskip_{134}
+\gdef\_normalbaselines_{134}
+\gdef\_offinterlineskip_{135}
+\gdef\_nointerlineskip_{135}
+\gdef\_openup_{135}
+\gdef\vbreak_{136}
+\gdef\vnobreak_{136}
+\gdef\vallowbreak_{136}
+\gdef\vpenalty_{136}
+\gdef\_goodbreak_{137}
+\gdef\_smallbreak_{137}
+\gdef\_medbreak_{137}
+\gdef\_bigbreak_{137}
+\gdef\_eject_{137}
+\gdef\_supereject_{137}
+\gdef\_filbreak_{137}
+\gdef\_raggedbottom_{137}
+\gdef\_normalbottom_{137}
+\gdef\_interlinepenalty_{138}
+\gdef\_clubpenalty_{138}
+\gdef\_widowpenalty_{138}
+\gdef\_displaywidowpenalty_{138}
+\gdef\_predisplaypenalty_{138}
+\gdef\_postdisplaypenalty_{138}
+\gdef\_brokenpenalty_{139}
+\gdef\_insertpenalties_{139}
+\gdef\_floatingpenalty_{139}
+\gdef\_pagegoal_{139}
+\gdef\_pagetotal_{139}
+\gdef\_pagedepth_{139}
+\gdef\_pageshrink_{140}
+\gdef\_pagestretch_{140}
+\gdef\_pagefilstretch_{140}
+\gdef\_pagefillstretch_{140}
+\gdef\_pagefilllstretch_{140}
+\gdef\_vsize_{140}
+\gdef\_hoffset_{140}
+\gdef\_voffset_{140}
+\gdef\_topskip_{141}
+\gdef\_parskip_{141}
+\gdef\_maxdepth_{141}
+\gdef\_pageno_{142}
+\gdef\_advancepageno_{142}
+\gdef\_nopagenumbers_{142}
+\gdef\_folio_{143}
+\gdef\_headline_{143}
+\gdef\_footline_{143}
+\gdef\_mark_{144}
+\gdef\_firstmark_{144}
+\gdef\_botmark_{144}
+\gdef\_topmark_{144}
+\gdef\_splitfirstmark_{144}
+\gdef\_splitbotmark_{144}
+\gdef\_footnote_{145}
+\gdef\_vfootnote_{145}
+\gdef\_topinsert_{146}
+\gdef\_midinsert_{146}
+\gdef\_pageinsert_{146}
+\gdef\_endinsert_{147}
+\gdef\_insert_{147}
+\gdef\endofinsert_{148}
+\gdef\_output_{148}
+\gdef\_plainoutput_{148}
+\gdef\_shipout_{148}
+\gdef\_deadcycles_{148}
+\gdef\_maxdeadcycles_{148}
+\gdef\_outputpenalty_{149}
+\gdef\_holdinginserts_{149}
+\gdef\_vsplit_{149}
+\gdef\_splitmaxdepth_{150}
+\gdef\_splittopskip_{150}
+\gdef\hvmodes_C{7}
+\gdef\_thinspace_{153}
+\gdef\_negthinspace_{153}
+\gdef\_enspace_{154}
+\gdef\_enskip_{154}
+\gdef\_quad_{154}
+\gdef\_qquad_{154}
+\gdef\_smallskip_{154}
+\gdef\_medskip_{154}
+\gdef\_bigskip_{154}
+\gdef\_smallskipamount_{155}
+\gdef\_medskipamount_{155}
+\gdef\_bigskipamount_{155}
+\gdef\_hskip_{155}
+\gdef\_vskip_{155}
+\gdef\_hglue_{156}
+\gdef\_vglue_{156}
+\gdef\_topglue_{156}
+\gdef\_kern_{157}
+\gdef\_hfil_{157}
+\gdef\_hfill_{157}
+\gdef\_vfil_{157}
+\gdef\_vfill_{157}
+\gdef\_hss_{158}
+\gdef\_vss_{158}
+\gdef\_hfilneg_{159}
+\gdef\_vfilneg_{159}
+\gdef\_hbox_{160}
+\gdef\_vtop_{161}
+\gdef\_vbox_{161}
+\gdef\_boxmaxdepth_{163}
+\gdef\_underbar_{163}
+\gdef\_everyhbox_{164}
+\gdef\_everyvbox_{164}
+\gdef\_setbox_{164}
+\gdef\_box_{164}
+\gdef\_copy_{164}
+\gdef\_unhbox_{165}
+\gdef\_unvbox_{165}
+\gdef\_unhcopy_{165}
+\gdef\_unvcopy_{165}
+\gdef\_moveleft_{166}
+\gdef\_moveright_{166}
+\gdef\_lower_{166}
+\gdef\_raise_{166}
+\gdef\_ht_{167}
+\gdef\_dp_{167}
+\gdef\_wd_{167}
+\gdef\_strut_{167}
+\gdef\_mathstrut_{168}
+\gdef\_phantom_{168}
+\gdef\_hphantom_{169}
+\gdef\_vphantom_{169}
+\gdef\_smash_{169}
+\gdef\_null_{169}
+\gdef\_overfullrule_{170}
+\gdef\_hbadness_{170}
+\gdef\_vbadness_{170}
+\gdef\_badness_{170}
+\gdef\_hfuzz_{171}
+\gdef\_vfuzz_{171}
+\gdef\_lastkern_{171}
+\gdef\_lastskip_{171}
+\gdef\_lastpenalty_{171}
+\gdef\_lastbox_{171}
+\gdef\_unkern_{172}
+\gdef\_unskip_{172}
+\gdef\_unpenalty_{172}
+\gdef\_hrule_{172}
+\gdef\_vrule_{172}
+\gdef\_leaders_{174}
+\gdef\_cleaders_{174}
+\gdef\_xleaders_{174}
+\gdef\_dotfill_{175}
+\gdef\_hrulefill_{175}
+\gdef\_leftarrowfill_{175}
+\gdef\_rightarrowfill_{175}
+\gdef\_@plus_{176}
+\gdef\_tabalign_{176}
+\gdef\_settabs_{176}
+\gdef\_cleartabs_{177}
+\gdef\_halign_{178}
+\gdef\@and_{178}
+\gdef\@pound_{178}
+\gdef\_valign_{179}
+\gdef\_ialign_{180}
+\gdef\_cr_{180}
+\gdef\_endline_{180}
+\gdef\_crcr_{180}
+\gdef\_omit_{181}
+\gdef\_span_{181}
+\gdef\_multispan_{182}
+\gdef\_noalign_{183}
+\gdef\_tabskip_{184}
+\gdef\_hidewidth_{184}
+\gdef\_everycr_{185}
+\gdef\math_C{8}
+\gdef\_alpha_{187}
+\gdef\_beta_{187}
+\gdef\_chi_{187}
+\gdef\_delta_{187}
+\gdef\_Delta_{187}
+\gdef\_epsilon_{187}
+\gdef\_varepsilon_{187}
+\gdef\_eta_{187}
+\gdef\_gamma_{187}
+\gdef\_Gamma_{187}
+\gdef\_iota_{187}
+\gdef\_kappa_{187}
+\gdef\_lambda_{187}
+\gdef\_Lambda_{187}
+\gdef\_mu_{187}
+\gdef\_nu_{187}
+\gdef\_omega_{187}
+\gdef\_Omega_{187}
+\gdef\_phi_{187}
+\gdef\_varphi_{187}
+\gdef\_Phi_{187}
+\gdef\_pi_{187}
+\gdef\_varpi_{187}
+\gdef\_Pi_{187}
+\gdef\_psi_{187}
+\gdef\_Psi_{187}
+\gdef\_rho_{187}
+\gdef\_varrho_{187}
+\gdef\_sigma_{187}
+\gdef\_varsigma_{187}
+\gdef\_Sigma_{187}
+\gdef\_tau_{187}
+\gdef\_theta_{187}
+\gdef\_vartheta_{187}
+\gdef\_Theta_{187}
+\gdef\_upsilon_{187}
+\gdef\_Upsilon_{187}
+\gdef\_xi_{187}
+\gdef\_Xi_{187}
+\gdef\_zeta_{187}
+\gdef\specsyms_{188}
+\gdef\_infty_{188}
+\gdef\_Re_{188}
+\gdef\_Im_{188}
+\gdef\_angle_{188}
+\gdef\_triangle_{188}
+\gdef\_backslash_{188}
+\gdef\_vert_{188}
+\gdef\_@bar_{188}
+\gdef\_Vert_{188}
+\gdef\_emptyset_{188}
+\gdef\_bot_{188}
+\gdef\_top_{188}
+\gdef\_exists_{188}
+\gdef\_forall_{188}
+\gdef\_hbar_{188}
+\gdef\_ell_{188}
+\gdef\_aleph_{188}
+\gdef\_imath_{188}
+\gdef\_jmath_{188}
+\gdef\_nabla_{188}
+\gdef\_neg_{188}
+\gdef\_lnot_{188}
+\gdef\@prime_{188}
+\gdef\_prime_{188}
+\gdef\_partial_{188}
+\gdef\_surd_{188}
+\gdef\_wp_{188}
+\gdef\_flat_{188}
+\gdef\_sharp_{188}
+\gdef\_natural_{188}
+\gdef\_clubsuit_{188}
+\gdef\_diamondsuit_{188}
+\gdef\_heartsuit_{188}
+\gdef\_spadesuit_{188}
+\gdef\binops_{189}
+\gdef\_vee_{189}
+\gdef\_wedge_{189}
+\gdef\_amalg_{189}
+\gdef\_cap_{189}
+\gdef\_cup_{189}
+\gdef\_uplus_{189}
+\gdef\_sqcap_{189}
+\gdef\_sqcup_{189}
+\gdef\_dagger_{189}
+\gdef\_ddagger_{189}
+\gdef\_land_{189}
+\gdef\_lor_{189}
+\gdef\_cdot_{189}
+\gdef\_diamond_{189}
+\gdef\_bullet_{189}
+\gdef\_circ_{189}
+\gdef\_bigcirc_{189}
+\gdef\_odot_{189}
+\gdef\_ominus_{189}
+\gdef\_oplus_{189}
+\gdef\_oslash_{189}
+\gdef\_otimes_{189}
+\gdef\_pm_{189}
+\gdef\_mp_{189}
+\gdef\_triangleleft_{189}
+\gdef\_triangleright_{189}
+\gdef\_bigtriangledown_{189}
+\gdef\_bigtriangleup_{189}
+\gdef\_ast_{189}
+\gdef\_star_{189}
+\gdef\_times_{189}
+\gdef\_div_{189}
+\gdef\_setminus_{189}
+\gdef\_wr_{189}
+\gdef\_@star_{190}
+\gdef\relations_{190}
+\gdef\_asymp_{190}
+\gdef\_cong_{190}
+\gdef\_dashv_{190}
+\gdef\_vdash_{190}
+\gdef\_perp_{190}
+\gdef\_mid_{190}
+\gdef\_parallel_{190}
+\gdef\_doteq_{190}
+\gdef\_equiv_{190}
+\gdef\_ge_{190}
+\gdef\_geq_{190}
+\gdef\_le_{190}
+\gdef\_leq_{190}
+\gdef\_gg_{190}
+\gdef\_ll_{190}
+\gdef\_models_{190}
+\gdef\_ne_{190}
+\gdef\_neq_{190}
+\gdef\_notin_{190}
+\gdef\_in_{190}
+\gdef\_ni_{190}
+\gdef\_owns_{190}
+\gdef\_prec_{190}
+\gdef\_preceq_{190}
+\gdef\_succ_{190}
+\gdef\_succeq_{190}
+\gdef\_bowtie_{190}
+\gdef\_propto_{190}
+\gdef\_approx_{190}
+\gdef\_sim_{190}
+\gdef\_simeq_{190}
+\gdef\_frown_{190}
+\gdef\_smile_{190}
+\gdef\_subset_{190}
+\gdef\_subseteq_{190}
+\gdef\_supset_{190}
+\gdef\_supseteq_{190}
+\gdef\_sqsubseteq_{190}
+\gdef\_sqsupseteq_{190}
+\gdef\_not_{191}
+\gdef\_lbrace_{191}
+\gdef\_@lbrace_{191}
+\gdef\_rbrace_{191}
+\gdef\_@rbrace_{191}
+\gdef\_lbrack_{191}
+\gdef\_rbrack_{191}
+\gdef\_langle_{191}
+\gdef\_rangle_{191}
+\gdef\_lceil_{191}
+\gdef\_rceil_{191}
+\gdef\_lfloor_{191}
+\gdef\_rfloor_{191}
+\gdef\arrows_{192}
+\gdef\_leftarrow_{192}
+\gdef\_gets_{192}
+\gdef\_Leftarrow_{192}
+\gdef\_rightarrow_{192}
+\gdef\_to_{192}
+\gdef\_Rightarrow_{192}
+\gdef\_leftrightarrow_{192}
+\gdef\_Leftrightarrow_{192}
+\gdef\_longleftarrow_{192}
+\gdef\_Longleftarrow_{192}
+\gdef\_longrightarrow_{192}
+\gdef\_Longrightarrow_{192}
+\gdef\_longleftrightarrow_{192}
+\gdef\_Longleftrightarrow_{192}
+\gdef\_iff_{192}
+\gdef\_hookleftarrow_{192}
+\gdef\_hookrightarrow_{192}
+\gdef\_leftharpoondown_{192}
+\gdef\_rightharpoondown_{192}
+\gdef\_leftharpoonup_{192}
+\gdef\_rightharpoonup_{192}
+\gdef\_rightleftharpoons_{192}
+\gdef\_mapsto_{192}
+\gdef\_longmapsto_{192}
+\gdef\_downarrow_{192}
+\gdef\_Downarrow_{192}
+\gdef\_uparrow_{192}
+\gdef\_Uparrow_{192}
+\gdef\_updownarrow_{192}
+\gdef\_Updownarrow_{192}
+\gdef\_nearrow_{192}
+\gdef\_searrow_{192}
+\gdef\_nwarrow_{192}
+\gdef\_swarrow_{192}
+\gdef\namedfns_{193}
+\gdef\_cos_{193}
+\gdef\_sin_{193}
+\gdef\_tan_{193}
+\gdef\_cot_{193}
+\gdef\_csc_{193}
+\gdef\_sec_{193}
+\gdef\_arccos_{193}
+\gdef\_arcsin_{193}
+\gdef\_arctan_{193}
+\gdef\_cosh_{193}
+\gdef\_coth_{193}
+\gdef\_sinh_{193}
+\gdef\_tanh_{193}
+\gdef\_det_{193}
+\gdef\_dim_{193}
+\gdef\_exp_{193}
+\gdef\_ln_{193}
+\gdef\_log_{193}
+\gdef\_lg_{193}
+\gdef\_arg_{193}
+\gdef\_deg_{193}
+\gdef\_gcd_{193}
+\gdef\_hom_{193}
+\gdef\_ker_{193}
+\gdef\_inf_{193}
+\gdef\_sup_{193}
+\gdef\_lim_{193}
+\gdef\_liminf_{193}
+\gdef\_limsup_{193}
+\gdef\_max_{193}
+\gdef\_min_{193}
+\gdef\_Pr_{193}
+\gdef\_bmod_{193}
+\gdef\_pmod_{194}
+\gdef\_bigcap_{194}
+\gdef\_bigcup_{194}
+\gdef\_bigodot_{194}
+\gdef\_bigoplus_{194}
+\gdef\_bigotimes_{194}
+\gdef\_bigsqcup_{194}
+\gdef\_biguplus_{194}
+\gdef\_bigvee_{194}
+\gdef\_bigwedge_{194}
+\gdef\_coprod_{194}
+\gdef\_smallint_{194}
+\gdef\_int_{194}
+\gdef\_oint_{194}
+\gdef\_prod_{194}
+\gdef\_sum_{194}
+\gdef\_limits_{195}
+\gdef\_nolimits_{195}
+\gdef\_displaylimits_{195}
+\gdef\_cdotp_{196}
+\gdef\_ldotp_{196}
+\gdef\_colon_{196}
+\gdef\@underscore_{197}
+\gdef\_sb_{197}
+\gdef\@hat_{197}
+\gdef\_sp_{197}
+\gdef\_textstyle_{198}
+\gdef\_scriptstyle_{198}
+\gdef\_scriptscriptstyle_{198}
+\gdef\_displaystyle_{198}
+\gdef\_mathchoice_{198}
+\gdef\_mathpalette_{198}
+\gdef\mathaccent_{199}
+\gdef\_acute_{199}
+\gdef\_b_{199}
+\gdef\_bar_{199}
+\gdef\_breve_{199}
+\gdef\_check_{199}
+\gdef\_ddot_{199}
+\gdef\_dot_{199}
+\gdef\_grave_{199}
+\gdef\_hat_{199}
+\gdef\_widehat_{199}
+\gdef\_tilde_{199}
+\gdef\_widetilde_{199}
+\gdef\_vec_{199}
+\gdef\_mathaccent_{199}
+\gdef\_over_{200}
+\gdef\_atop_{200}
+\gdef\_above_{200}
+\gdef\_choose_{200}
+\gdef\_brace_{200}
+\gdef\_brack_{200}
+\gdef\_overwithdelims_{201}
+\gdef\_atopwithdelims_{201}
+\gdef\_abovewithdelims_{201}
+\gdef\_cases_{201}
+\gdef\_underbrace_{202}
+\gdef\_overbrace_{202}
+\gdef\_underline_{202}
+\gdef\_overline_{202}
+\gdef\_overleftarrow_{202}
+\gdef\_overrightarrow_{202}
+\gdef\_buildrel_{202}
+\gdef\_ldots_{203}
+\gdef\_cdots_{203}
+\gdef\_vdots_{203}
+\gdef\_ddots_{203}
+\gdef\_lgroup_{204}
+\gdef\_rgroup_{204}
+\gdef\_left_{204}
+\gdef\_right_{204}
+\gdef\_delimiter_{204}
+\gdef\_delimiterfactor_{205}
+\gdef\_delimitershortfall_{205}
+\gdef\_matrix_{205}
+\gdef\_pmatrix_{205}
+\gdef\_bordermatrix_{205}
+\gdef\_sqrt_{206}
+\gdef\_root_{207}
+\gdef\_radical_{207}
+\gdef\_eqno_{207}
+\gdef\_leqno_{207}
+\gdef\_displaylines_{208}
+\gdef\_eqalign_{208}
+\gdef\_eqalignno_{208}
+\gdef\_leqalignno_{208}
+\gdef\mathfonts_{209}
+\gdef\_cal_{209}
+\gdef\_mit_{209}
+\gdef\_oldstyle_{209}
+\gdef\_itfam_{210}
+\gdef\_bffam_{210}
+\gdef\_slfam_{210}
+\gdef\_ttfam_{210}
+\gdef\_fam_{210}
+\gdef\_textfont_{210}
+\gdef\_scriptfont_{210}
+\gdef\_scriptscriptfont_{210}
+\gdef\_big_{211}
+\gdef\_bigl_{211}
+\gdef\_bigm_{211}
+\gdef\_bigr_{211}
+\gdef\_Big_{211}
+\gdef\_Bigl_{211}
+\gdef\_Bigm_{211}
+\gdef\_Bigr_{211}
+\gdef\_bigg_{211}
+\gdef\_biggl_{211}
+\gdef\_biggm_{211}
+\gdef\_biggr_{211}
+\gdef\_Bigg_{211}
+\gdef\_Biggl_{211}
+\gdef\_Biggm_{211}
+\gdef\_Biggr_{211}
+\gdef\_downbracefill_{211}
+\gdef\_upbracefill_{211}
+\gdef\_arrowvert_{212}
+\gdef\_Arrowvert_{212}
+\gdef\_lmoustache_{212}
+\gdef\_rmoustache_{212}
+\gdef\_bracevert_{212}
+\gdef\_skew_{212}
+\gdef\_skewchar_{213}
+\gdef\_defaultskewchar_{213}
+\gdef\_vcenter_{213}
+\gdef\_@shriek_{214}
+\gdef\_@comma_{214}
+\gdef\_@greater_{214}
+\gdef\_@semi_{214}
+\gdef\_thinmuskip_{214}
+\gdef\_medmuskip_{214}
+\gdef\_thickmuskip_{214}
+\gdef\_jot_{215}
+\gdef\_mkern_{215}
+\gdef\_mskip_{215}
+\gdef\_nonscript_{215}
+\gdef\_displaywidth_{216}
+\gdef\_displayindent_{216}
+\gdef\_predisplaysize_{216}
+\gdef\_abovedisplayskip_{217}
+\gdef\_belowdisplayskip_{217}
+\gdef\_abovedisplayshortskip_{217}
+\gdef\_belowdisplayshortskip_{217}
+\gdef\_mathsurround_{217}
+\gdef\_nulldelimiterspace_{217}
+\gdef\_scriptspace_{218}
+\gdef\_mathord_{218}
+\gdef\_mathop_{218}
+\gdef\_mathbin_{218}
+\gdef\_mathrel_{218}
+\gdef\_mathopen_{218}
+\gdef\_mathclose_{218}
+\gdef\_mathpunct_{218}
+\gdef\_mathinner_{218}
+\gdef\_everymath_{218}
+\gdef\_everydisplay_{218}
+\gdef\general_C{9}
+\gdef\_font_{221}
+\gdef\_fontdimen_{222}
+\gdef\_magnification_{223}
+\gdef\_mag_{223}
+\gdef\_magstep_{223}
+\gdef\_magstephalf_{224}
+\gdef\convert_{224}
+\gdef\_number_{224}
+\gdef\_romannumeral_{224}
+\gdef\_time_{224}
+\gdef\_day_{225}
+\gdef\_month_{225}
+\gdef\_year_{225}
+\gdef\_fmtname_{225}
+\gdef\_fmtversion_{225}
+\gdef\_jobname_{225}
+\gdef\_meaning_{226}
+\gdef\_string_{226}
+\gdef\_escapechar_{226}
+\gdef\_fontname_{227}
+\gdef\_begingroup_{227}
+\gdef\_endgroup_{227}
+\gdef\@lbrace_{227}
+\gdef\_bgroup_{227}
+\gdef\@rbrace_{227}
+\gdef\_egroup_{227}
+\gdef\_global_{228}
+\gdef\_globaldefs_{228}
+\gdef\_aftergroup_{229}
+\gdef\_afterassignment_{229}
+\gdef\mac1_{230}
+\gdef\_def_{230}
+\gdef\_edef_{230}
+\gdef\_gdef_{231}
+\gdef\_xdef_{231}
+\gdef\_long_{231}
+\gdef\_outer_{232}
+\gdef\_chardef_{232}
+\gdef\_mathchardef_{232}
+\gdef\_let_{232}
+\gdef\_futurelet_{232}
+\gdef\_csname_{233}
+\gdef\_endcsname_{233}
+\gdef\_expandafter_{233}
+\gdef\_noexpand_{234}
+\gdef\_the_{234}
+\gdef\conds_{235}
+\gdef\_@if_{235}
+\gdef\_@ifcat_{235}
+\gdef\_@ifx_{236}
+\gdef\_@ifnum_{237}
+\gdef\_@ifodd_{237}
+\gdef\_@ifdim_{237}
+\gdef\_@ifhmode_{238}
+\gdef\_@ifvmode_{238}
+\gdef\_@ifmmode_{238}
+\gdef\_@ifinner_{238}
+\gdef\_@ifhbox_{238}
+\gdef\_@ifvbox_{238}
+\gdef\_@ifvoid_{238}
+\gdef\_@ifeof_{239}
+\gdef\_@ifcase_{239}
+\gdef\_@or_{239}
+\gdef\_@iftrue_{239}
+\gdef\_@iffalse_{239}
+\gdef\_@else_{239}
+\gdef\_@fi_{240}
+\gdef\_@newif_{240}
+\gdef\_loop_{240}
+\gdef\_@repeat_{240}
+\gdef\_relax_{241}
+\gdef\_empty_{241}
+\gdef\mac2_{241}
+\gdef\_count_{242}
+\gdef\_dimen_{242}
+\gdef\_skip_{242}
+\gdef\_muskip_{242}
+\gdef\_toks_{242}
+\gdef\_maxdimen_{244}
+\gdef\_@newcount_{244}
+\gdef\_@newdimen_{244}
+\gdef\_@newskip_{244}
+\gdef\_@newmuskip_{244}
+\gdef\_@newtoks_{244}
+\gdef\_@newbox_{244}
+\gdef\_@newread_{244}
+\gdef\_@newwrite_{244}
+\gdef\_@newfam_{244}
+\gdef\_@newinsert_{244}
+\gdef\_@newlanguage_{244}
+\gdef\_countdef_{245}
+\gdef\_dimendef_{245}
+\gdef\_skipdef_{245}
+\gdef\_muskipdef_{245}
+\gdef\_toksdef_{245}
+\gdef\_advance_{245}
+\gdef\_multiply_{246}
+\gdef\_divide_{246}
+\gdef\_@bye_{246}
+\gdef\_end_{247}
+\gdef\_input_{247}
+\gdef\_endinput_{247}
+\gdef\_inputlineno_{247}
+\gdef\_openin_{247}
+\gdef\_closein_{248}
+\gdef\_read_{248}
+\gdef\_openout_{249}
+\gdef\_closeout_{249}
+\gdef\_write_{249}
+\gdef\_immediate_{250}
+\gdef\_special_{250}
+\gdef\_newlinechar_{250}
+\gdef\_catcode_{251}
+\gdef\_active_{251}
+\gdef\_mathcode_{251}
+\gdef\_delcode_{251}
+\gdef\_endlinechar_{252}
+\gdef\_ignorespaces_{252}
+\gdef\_errorstopmode_{252}
+\gdef\_scrollmode_{252}
+\gdef\_nonstopmode_{253}
+\gdef\_batchmode_{253}
+\gdef\_pausing_{253}
+\gdef\_show_{253}
+\gdef\_showthe_{253}
+\gdef\_showbox_{253}
+\gdef\_showlists_{253}
+\gdef\_tracingonline_{256}
+\gdef\_tracingcommands_{257}
+\gdef\_tracinglostchars_{257}
+\gdef\_tracingmacros_{258}
+\gdef\_tracingoutput_{258}
+\gdef\_tracingpages_{259}
+\gdef\_tracingparagraphs_{259}
+\gdef\_tracingrestores_{260}
+\gdef\_tracingstats_{260}
+\gdef\_tracingall_{261}
+\gdef\_showboxbreadth_{261}
+\gdef\_showboxdepth_{261}
+\gdef\_message_{261}
+\gdef\_errmessage_{261}
+\gdef\_wlog_{261}
+\gdef\_errhelp_{261}
+\gdef\_@newhelp_{262}
+\gdef\_errorcontextlines_{262}
+\gdef\_dump_{263}
+\gdef\_everyjob_{263}
+\gdef\tips_C{10}
+\gdef\filbreak_{266}
+\gdef\unwantedspace_{270}
+\gdef\bighead_{274}
+\gdef\mismatched_{275}
+\gdef\verbatim_{277}
+\gdef\_obeywhitespace_{278}
+\gdef\errors_C{11}
+\gdef\eplain_C{12}
+\gdef\eplainconv_{292}
+\gdef\ewhitesp_{293}
+\gdef\listmacs_{298}
+\gdef\xrefs_{302}
+\gdef\eplaincenter_{306}
+\gdef\capsule_C{13}
+\gdef\applicability_{1}
+\gdef\verbatim_{2}
+\gdef\copying_{3}
+\gdef\modifications_{4}
+\gdef\combining_{5}
+\gdef\collections_{6}
+\gdef\aggregation_{7}
+\gdef\translation_{8}
+\gdef\termination_{9}
+\gdef\future_{10}
diff --git a/info/impatient/book.ccs b/info/impatient/book.ccs
new file mode 100644
index 0000000000..6a8a341225
--- /dev/null
+++ b/info/impatient/book.ccs
@@ -0,0 +1,94 @@
+\doconcept{active character}{43}
+\doconcept{alignment}{44}
+\doconcept{anatomy of T\kern -.1667em\lower .5ex\hbox {E}\kern -.125emX\hbox {}\hbox {}}{46}
+\doconcept{argument}{48}
+\doconcept{ASCII}{49}
+\doconcept{assignment}{49}
+\doconcept{badness}{50}
+\doconcept{baseline}{51}
+\doconcept{box}{51}
+\doconcept{category code}{53}
+\doconcept{character}{55}
+\doconcept{class}{56}
+\doconcept{command}{56}
+\doconcept{conditional test}{57}
+\doconcept{control sequence}{57}
+\doconcept{control symbol}{58}
+\doconcept{control word}{58}
+\doconcept{decimal constant}{58}
+\doconcept{delimiter}{58}
+\doconcept{demerits}{60}
+\doconcept{depth}{60}
+\doconcept{dimension}{60}
+\doconcept{display math}{61}
+\doconcept{escape character}{61}
+\doconcept{family}{62}
+\doconcept{file}{62}
+\doconcept{file name}{63}
+\doconcept{font}{64}
+\doconcept{footer}{65}
+\doconcept{format file}{65}
+\doconcept{global}{65}
+\doconcept{glue}{66}
+\doconcept{group}{68}
+\doconcept{hbox}{69}
+\doconcept{header}{69}
+\doconcept{height}{69}
+\doconcept{horizontal list}{69}
+\doconcept{horizontal mode}{69}
+\doconcept{hyphenation}{70}
+\doconcept{input stream}{70}
+\doconcept{insertion}{70}
+\doconcept{interline glue}{70}
+\doconcept{item}{71}
+\doconcept{justified text}{71}
+\doconcept{kern}{71}
+\doconcept{leaders}{72}
+\doconcept{ligature}{73}
+\doconcept{line break}{74}
+\doconcept{list}{75}
+\doconcept{log file}{75}
+\doconcept{macro}{75}
+\doconcept{magnification}{78}
+\doconcept{margins}{79}
+\doconcept{mark}{79}
+\doconcept{math mode}{80}
+\doconcept{mathcode}{80}
+\doconcept{mathematical unit}{81}
+\doconcept{mode}{81}
+\doconcept{muglue}{82}
+\doconcept{number}{82}
+\doconcept{ordinary mode}{83}
+\doconcept{outer}{83}
+\doconcept{output routine}{83}
+\doconcept{output stream}{84}
+\doconcept{page}{84}
+\doconcept{page break}{85}
+\doconcept{page builder}{86}
+\doconcept{page layout}{86}
+\doconcept{paragraph}{86}
+\doconcept{parameter}{87}
+\doconcept{penalty}{88}
+\doconcept{plain T\kern -.1667em\lower .5ex\hbox {E}\kern -.125emX\hbox {}\hbox {}}{88}
+\doconcept{primitive}{88}
+\doconcept{reference point}{88}
+\doconcept{register}{89}
+\doconcept{restricted mode}{90}
+\doconcept{rule}{90}
+\doconcept{script size}{91}
+\doconcept{scriptscript size}{91}
+\doconcept{shrink}{91}
+\doconcept{space}{91}
+\doconcept{stretch}{92}
+\doconcept{strut}{92}
+\doconcept{style}{92}
+\doconcept{T\kern -.1667em\lower .5ex\hbox {E}\kern -.125emX\hbox {}\hbox {}\ M\kern -.11em\lower .5ex\hbox {E}\kern -.125em X\hbox {}}{93}
+\doconcept{text math}{93}
+\doconcept{text size}{93}
+\doconcept{token}{93}
+\doconcept{unit of measure}{93}
+\doconcept{vbox}{94}
+\doconcept{vertical list}{94}
+\doconcept{vertical mode}{94}
+\doconcept{whatsit}{94}
+\doconcept{width}{95}
diff --git a/info/impatient/book.idx b/info/impatient/book.idx
new file mode 100644
index 0000000000..f8e43f1c17
--- /dev/null
+++ b/info/impatient/book.idx
@@ -0,0 +1,3583 @@
+\Metafont::N::-7
+revision+bars::N::-7
+\texbook::N::-8
+\texbook::N::-8
+\LaTeX::N::-8
+\AMSTeX::N::-8
+\texbook::N::2
+ ::T::3P
+spaces//visible::N::3P
+commands::N::3
+primitive//command::N::3
+\plainTeX::N::3
+parindent::C::4
+arguments::N::4
+\<dimen>::N::4
+\<argument>::N::4
+\<charcode>::N::4
+\<glue>::N::4
+\<number>::N::4
+\<register>::N::4
+parameters//as+commands::N::4
+registers//parameters+as::N::4
+local+information::N::7P
+text+editor::N::7
+control+characters::N::7
+input::C::7
+macros//in+auxiliary+files::N::7
+\plainTeX::N::8
+\dvifile::N::8
+previewer::N::8
+\dvifile::N::8
+device+drivers::N::8
+printers::N::8
+output+devices::N::8
+font+files::N::8
+metrics+file::N::8
+shape+file::N::8
+magnification::N::8
+\tfmfile::N::8
+\pkfile::N::8
+\pxlfile::N::8
+\gffile::N::8
+running+\TeX::N::9B
+input+files::N::9
+\plainTeX::N::9
+relax::C::9
+input+files//embedded::N::9
+error+messages::N::9
+local+information::N::9
+running+\TeX::N::9E
+input,+preparing::N::10
+commands::N::10B
+control+sequences::N::10B
+control+words::N::10
+control+symbols::N::10
+control+sequences//absorbing+spaces::N::10
+control+space::N::10
+commands//versus+control+sequences::N::11
+control+sequences//versus+commands::N::11
+control+sequences::N::11E
+commands::N::11E
+arguments::N::11
+parameters//as+commands::N::12
+registers//parameters+as::N::12
+spaces::N::12B
+period::N::12
+paragraphs//ending::N::12
+unwanted+space::N::12
+tie::N::13
+~::T::13
+spaces::N::13E
+comments::N::13PB
+%::T::13
+line+breaks//deleting::N::13
+comments::N::13E
+punctuation::N::13
+.::T::13
+?::T::13
+!::T::13
+period::N::13
+question+mark::N::13
+exclamation+point::N::13
+frenchspacing::C::14
+bibliographies::N::14
+quotation+marks::N::14
+dashes::N::14
+-::T::14
+--::T::14
+---::T::14
+$//in ordinary text::T::15
+#//in ordinary text::T::15
+&//in ordinary text::T::15
+_//in ordinary text::T::15
+^//in ordinary text::T::15
+~//in ordinary text::T::15
+%//in ordinary text::T::15
+{//in ordinary text::T::15
+}//in ordinary text::T::15
+\//in ordinary text::T::15
+$::C::15
+#::C::15
+&::C::15
+%::C::15
+_::C::15
+groups::N::15B
+{//starting a group::T::15
+}//ending a group::T::15
+groups::N::16E
+math::N::16B
+text+math::N::16
+display+math::N::16
+$::T::16
+$$::T::16
+math::N::16E
+eyes::N::16
+mouth::N::16
+tokens::N::16
+control+sequences//as+tokens::N::16
+expanding+tokens::N::16
+stomach::N::16
+intestines::N::16
+\dvifile//created+by+\TeX's+intestines::N::16
+\anatomy::N::16
+halign//grouping for::C::16
+valign//grouping for::C::16
+pages::N::17
+boxes::N::17
+glue::N::17
+line+breaking::N::17
+page+breaks//inserted+by+\TeX's+stomach::N::17
+modes::N::17
+foreign+languages::N::18
+\newTeX::N::18
+badness::C::18
+emergencystretch::C::18
+errorcontextlines::C::18
+holdinginserts::C::18
+language::C::18
+setlanguage::C::18
+newlanguage::C::18
+lefthyphenmin::C::18
+righthyphenmin::C::18
+noboundary::C::18
+topglue::C::18
+Knuth,+Donald+E.::N::18
+\LaTeX::N::18
+Lamport,+Leslie::N::18
+\AMSTeX::N::18
+Spivak,+Michael~D.::N::18
+\TUG::N::19
+TUGBoat::N::19
+\TUG::N::19
+eplain.tex::T::19
+\BibTeX::N::19
+Patashnik,+Oren::N::19
+footnotes::N::22
+comments::N::22
+punctuation::N::22
+quotation+marks::N::22
+space+characters::N::22
+dashes::N::22
+paragraphs//ending::N::22
+indentation::N::24
+margins::N::24
+paragraphs//narrow::N::24
+fonts::N::26
+characters//special::N::26
+accents::N::26
+music+symbols::N::26
+card+suits::N::26
+$::T::26
+&::T::26
+#::T::26
+_::T::26
+%::T::26
+^::T::26
+~::T::26
+{::T::26
+}::T::26
+\::T::26
+spacing//interline::N::28
+baselines::N::28
+description+lists::N::30
+boxes//drawing::N::30
+revision+bars::N::30
+hyphenation::N::32
+theorems::N::32
+lemmas::N::32
+itemized+lists::N::32
+flush+left::N::32
+flush+right::N::32
+centering::N::32
+Palatino+fonts::N::34
+Zapf,+Hermann::N::34
+Computer+Modern+fonts::N::34
+\Metafont::N::34
+mushrooms::N::36
+math::N::38
+math::N::40
+\texbook::N::43
+active+characters::N::43PB
+macros//named+by+active+characters::N::43
+active::C::43
+catcode::C::43
+category+codes//of+active+characters::N::43
+active+characters::N::44E
+alignments::N::44PB
+tables::N::44B
+settabs::C::44B
++::C::44B
+cr::C::44B
+entry+(column+or+row)::N::44
+&::T::44
+cr::C::44
+settabs::C::45E
++::C::45E
+halign::C::45B
+preamble::N::45P
+template::N::45P
+#::T::45
+&::T::45
+tabskip::C::46
+noalign::C::46
+halign::C::46E
+valign::C::46
+strut::C::46
+cr::C::46E
+tables::N::46E
+alignments::N::46E
+\anatomy::N::46PB
+eyes::N::46
+mouth::N::46
+gullet::N::46
+stomach::N::46
+intestines::N::46
+eyes::N::46P
+input+files::N::46
+input::C::46
+mouth::N::46P
+tokens//assembled+from+characters::N::47
+gullet::N::47P
+macros//expanded+in+\TeX's+stomach::N::47
+tokens//passed+to+\TeX's+stomach::N::47
+stomach::N::47P
+pages//assembled+in+\TeX's+stomach::N::47
+line+breaking::N::47
+intestines::N::47P
+\dvifile//created+by+\TeX's+intestines::N::47
+\anatomy::N::47E
+arguments::N::48PB
+commands//arguments+of::N::48
+primitive//command::N::48
+count::C::48
+macros//arguments+of::N::48
+parameters//and+arguments::N::48
+macros//parameters+of::N::48
+delimited+arguments::N::48
+undelimited+arguments::N::48
+arguments::N::49E
+ASCII::N::49PB
+characters::N::49
+printable+characters::N::49
+control+characters::N::49
+Computer+Modern+fonts::N::49
+ASCII::N::49E
+assignments::N::49PB
+registers//assignment+to::N::49
+parameters//assignments+to::N::49
+assignments::N::50E
+badness::N::50PB
+interword+spacing::N::50
+line+breaks//badness+for::N::50
+page+breaks//badness+for::N::50
+badness::N::50E
+baselines::N::51PB
+boxes//baselines+of::N::51
+baselines::N::51E
+boxes::N::51PB
+hbox::C::51
+vbox::C::51
+vtop::C::51
+hbox::C::51
+hboxes::N::51
+horizontal+lists::N::51
+vbox::C::51
+vboxes::N::51
+vboxes::N::51
+vertical+lists::N::51
+kerns//as+list+items::N::51
+height::N::51
+depth::N::51
+width::N::51
+baselines::N::51
+reference+point::N::51B
+interline+glue::N::52
+vbox::C::52B
+vtop::C::52B
+vbox::C::52E
+vtop::C::52E
+reference+point::N::52E
+box+registers::N::52
+raise::C::52
+lower::C::52
+moveleft::C::52
+moveright::C::52
+boxmaxdepth::C::52
+newbox::C::53
+boxes::N::53E
+category+codes::N::53PB
+characters//category+code+of::N::53
+gullet::N::53
+char::C::53
+\ascii::N::53
+catcode::C::53
+escape+character//category+code+of::N::53
+\//category code of::T::53
+groups::N::53
+{//category code of::T::53
+}//category code of::T::53
+math+shift::N::53
+$//category code of::T::53
+tabs::N::53
+alignments//tab+character+for::N::53
+&//category+code+of::T::53
+end+of+line::N::53
+^^M//category+code+of::T::53
+macros//parameters+of::N::53
+parameters//indicated+by+\b\tt\#\e::N::53
+#//category+code+of::T::53
+superscripts::N::53
+^^K::T::53
+^//category+code+of::T::53
+subscripts::N::53
+^^A::T::53
+_//category+code+of::T::53
+ignored+characters::N::53
+^^@::T::53
+horizontal+tab::N::53
+space+characters//category+code+of::N::53
+^^I::T::53
+ ::T::53
+letter::N::53
+other+characters::N::53
+active+characters::N::53
+form+feed::N::53
+~::T::53
+^^L::T::53
+comments::N::53
+%//category code of::T::53
+invalid+character::N::53
+^^?::T::53
+active+characters::N::54
+invalid+character::N::54
+^^A::T::54
+^^K::T::54
+category+codes::N::55E
+characters::N::55PB
+\ascii::N::55
+category+codes//attached+during+input::N::55
+control+characters::N::55
+^^M::T::55
+^^J::T::55
+^^I::T::55
+hexadecimal+digit::N::55
+letter::N::56
+other+characters::N::56
+char::C::56
+characters::N::56E
+class::N::56PB
+mathcodes//class+encoded+in::N::56
+class::N::56E
+commands::N::56PB
+tokens//as+commands::N::56
+commands::N::56E
+conditional+tests::N::57PB
+else::C::57
+fi::C::57
+conditional+tests::N::57E
+control+sequences::N::57PB
+escape+character::N::57
+\::T::57
+control+words::N::57
+control+symbols::N::57
+escape+character::N::57
+primitive//control+sequence::N::57
+def::C::57
+let::C::57
+control+sequences::N::57E
+control+symbols::N::58PB
+escape+character::N::58
+control+symbols::N::58E
+control+words::N::58PB
+escape+character::N::58
+control+words::N::58E
+decimal+constant::N::58PB
+decimal+constant::N::58E
+delimiters::N::58PB
+left::C::58
+right::C::58
+overwithdelims::C::58
+atopwithdelims::C::58
+abovewithdelims::T::58
+parentheses::N::58
+bigl::C::58
+bigr::C::58
+)::T::59
+)::T::59
+[::T::59
+]::T::59
+lbrack::C::59
+rbrack::C::59
+{::C::59
+}::C::59
+lbrace::C::59
+rbrace::C::59
+lfloor::C::59
+rfloor::C::59
+lceil::C::59
+rceil::C::59
+langle::C::59
+rangle::C::59
+/::T::59
+backslash::C::59
+vert::C::59
+Vert::C::59
+uparrow::C::59
+downarrow::C::59
+updownarrow::C::59
+Uparrow::C::59
+Downarrow::C::59
+Updownarrow::C::59
+class//of+a+delimiter::N::59
+delimiter+codes::N::59B
+delcode::C::59
+delimiter::C::59
+metrics+file::N::59
+nulldelimiterspace::C::60
+delimiter+codes::N::60E
+delimiters::N::60E
+demerits::N::60PB
+line+breaks//demerits+for::N::60
+badness::N::60
+demerits::N::60E
+depth::N::60PB
+boxes//depth+of::N::60
+depth::N::60E
+dimensions::N::60PB
+units+of+measure::N::60
+point::N::60
+pica::N::60
+inch::N::60
+centimeter::N::60
+millimeter::N::60
+\didotpt::N::60
+cicero::N::60
+scaled+point::N::60
+ex::T::60
+em::T::60
+fil::T::61
+fill::T::61
+filll::T::61
+factor::N::61
+units+of+measure::N::61
+dimensions//negative::N::61
+mag::C::61
+magnification::N::61
+dimensions::N::61E
+display+math::N::61PB
+$$::T::61
+display+math::N::61E
+escape+character::N::61PB
+\::T::61
+catcode::C::61
+escapechar::C::61
+escape+character::N::61E
+family::N::62PB
+fonts//families+of::N::62
+text+size::N::62
+script+size::N::62
+scriptscript+size::N::62
+\plainTeX//font+families+in::N::62
+special+symbols::N::62
+math+extensions::N::62
+newfam::C::62
+textfont::C::62
+scriptfont::C::62
+scriptscriptfont::C::62
+family::N::62E
+files::N::62PB
+operating+system::N::62
+source+file::N::62
+input::C::62
+result+file::N::62
+\dvifile//as+a+result+file::N::62
+log+file//as+a+result+file::N::62
+read::C::62
+input+streams//reading+with+\b\tt\\read\e::N::62
+input::C::62
+write//output stream for::C::63
+output+streams::N::63
+openin::C::63
+openout::C::63
+closein::C::63
+closeout::C::63
+newread::C::63
+newwrite::C::63
+shipout::C::63
+immediate::C::63
+files::N::63E
+file+names::N::63PB
+operating+system::N::63
+file+names::N::63E
+fonts::N::64PB
+Computer+Modern+fonts::N::64
+Palatino+fonts::N::64
+Computer+Modern+fonts::N::64
+\ascii::N::64
+\tfmfile::N::64
+device+drivers::N::64
+math+symbols::N::64
+logos::N::64
+\dvifile//converted+by+driver::N::65
+pixel+file::N::65
+shape+file::N::65
+\pkfile::N::65
+\gffile::N::65
+fonts::N::65E
+footers::N::65PB
+footline::C::65
+footers::N::65E
+format+file::N::65PB
+dump::C::65
+virtex::T::65
+initex::T::65
+preloaded::N::65
+format+file::N::65E
+global::N::65PB
+globaldefs::C::65
+global::C::65
+macros//global::N::66
+edef//making global::C::66
+def//making global::C::66
+gdef::C::66
+xdef::C::66
+global::N::66E
+glue::N::66PB
+stretch::N::66B
+shrink::N::66B
+horizontal+lists::N::66
+vertical+lists::N::66
+hskip::C::66
+spaces//interword::N::66
+boxes//glue+with::N::66
+right+margin::N::66
+bottom+margin::N::66
+hskip::C::66
+vskip::C::66
+fil::T::67
+fill::T::67
+filll::T::67
+flush+left::N::68
+leftline::C::68
+flush+right::N::68
+rightline::C::68
+centered+text::N::68
+centerline::C::68
+glue//infinitely+shrinkable::N::68
+stretch::N::68E
+shrink::N::68E
+glue::N::68E
+groups::N::68PB
+{//starting a group::T::68
+}//ending a group::T::68
+groups::N::69E
+hboxes::N::69PB
+horizontal+lists//hboxes+formed+from::N::69
+hboxes::N::69E
+headers::N::69PB
+headline::C::69
+headers::N::69E
+height::N::69PB
+boxes//height+of::N::69
+height::N::69E
+horizontal+lists::N::69PB
+horizontal+lists::N::69E
+horizontal+mode::N::69PB
+hboxes//horizontal+mode+for::N::69
+ordinary+horizontal+mode::N::69
+restricted+horizontal+mode::N::69
+horizontal+lists//can't+contain+vertical+commands::N::69
+hrule//inherently vertical::C::69
+halign//inherently vertical::C::69
+horizontal+mode::N::70E
+hyphenation::N::70PB
+discretionary+hyphens::N::70
+-::C::70
+hyphenation::C::70
+hyphenation::N::70E
+input+streams::N::70PB
+input+streams::N::70E
+insertions::N::70PB
+footnote::C::70
+topinsert::C::70
+midinsert::C::70
+pageinsert::C::70
+insert::C::70
+insertions::N::70E
+interline+glue::N::70PB
+baselineskip::C::70
+lineskip::C::70
+lineskiplimit::C::70
+interline+glue::N::70E
+output+routine//insertions,+treatment+of::N::70
+insert::C::70
+page+breaks//insertions+at::N::70
+items::N::71PB
+items::N::71E
+justification::N::71PB
+ragged+right::N::71
+ragged+left::N::71
+centered+text::N::71
+leftskip::C::71
+rightskip::C::71
+raggedright::C::71
+justification::N::71E
+kerns::N::71PB
+spacing//adjusting+with+kerns::N::71
+\tfmfile::N::72
+kerns::N::72E
+leaders::N::72PB
+leaders::C::72B
+cleaders::C::72B
+xleaders::C::72B
+leaders::C::73E
+cleaders::C::73E
+xleaders::C::73E
+leaders::N::73E
+ligatures::N::73PB
+noboundary::C::74
+European+languages::N::74
+ligatures::N::74E
+line+breaks::N::74PB
+demerits::N::74
+penalties//in+horizontal+lists::N::74
+break::C::74
+nobreak::C::74
+discretionary+hyphens::N::74
+-//in line breaking::C::74
+solidus::N::74
+slash::C::74
+tie::N::74
+~//in line breaking::T::74
+hboxes//controlling+line+breaks::N::74
+line+breaks::N::75E
+lists::N::75PB
+lists::N::75E
+log+file::N::75PB
+log+file::N::75E
+macros::N::75PB
+macros//parameters+of::N::75B
+#::T::75P
+parameters//undelimited::N::76
+parameters//delimited::N::77B
+parameters//delimited::N::77E
+macros//parameters+of::N::77E
+macros::N::78E
+magnification::N::78PB
+mag::C::78
+design+size::N::78
+shape+file::N::78
+magstep::C::78
+magstephalf::C::78
+true::T::78
+magnification::N::78E
+margins::N::79PB
+hoffset::C::79
+voffset::C::79
+hsize::C::79
+vsize::C::79
+margins::N::79E
+marks::N::79PB
+mark+text::N::79
+mark::C::79
+topmark::C::79
+firstmark::C::79
+botmark::C::79
+footers//marks+used+in::N::79
+headers//marks+used+in::N::79
+mark::C::80
+firstmark::C::80
+botmark::C::80
+splitfirstmark::C::80
+splitbotmark::C::80
+marks::N::80E
+math+mode::N::80PB
+text+math+mode::N::80
+display+math+mode::N::80
+math+mode::N::80E
+mathcodes::N::80PB
+math+characters//described+by+mathcodes::N::80
+family//as+part+of+mathcode::N::80
+mathcode::C::81
+family//variable::N::81
+mathcodes::N::81E
+mathematical+units::N::81PB
+mathematical+units::N::81E
+modes::N::81PB
+ordinary+horizontal+mode::N::81
+restricted+horizontal+mode::N::81
+ordinary+vertical+mode::N::81
+internal+vertical+mode::N::81
+text+math+mode::N::81
+display+math+mode::N::81
+horizontal+mode::N::81
+vertical+mode::N::81
+math+mode::N::81
+modes::N::82E
+muglue::N::82PB
+mu::T::82
+mathematical+units::N::82
+glue//mathematical::N::82
+mskip::C::82
+muglue::N::82E
+numbers::N::82PB
+octal+numbers::N::82
+hexadecimal+numbers::N::82
+octal+numbers::N::82
+hexadecimal+numbers::N::82
+characters//\ascii\ codes+for::N::82
+edef//expansion of {\tt\\'\it c} in::C::82
+write//expansion of {\tt\\'\it c} in::C::82
+number::C::83
+romannumeral::C::83
+decimal+constant::N::83
+decimal+point::N::83
+numbers::N::83E
+ordinary+mode::N::83PB
+ordinary+mode::N::83E
+outer::N::83PB
+macros//outer::N::83B
+outer::C::83
+macros//outer::N::83E
+outer::N::83E
+output+routine::N::83PB
+\dvifile//material+from+output+routine::N::83
+output::C::84
+\dvifile//material+from+output+routine::N::84
+shipout::C::84
+output+routine::N::84E
+output+streams::N::84PB
+output+streams::N::84E
+pages::N::84PB
+main+vertical+list::N::84
+page+builder::N::84
+recent+contributions::N::84
+box255::C::84
+\dvifile//material+from+output+routine::N::85
+pages::N::85E
+page+breaks::N::85PB
+penalties//in+vertical+lists::N::85
+\dvifile//material+from+output+routine::N::85
+page+breaks::N::86E
+page+builder::N::86PB
+page+builder::N::86E
+page+layout::N::86PB
+margins::N::86B
+headers::N::86B
+footers::N::86B
+hoffset::C::86
+voffset::C::86
+hsize::C::86
+vsize::C::86
+margins::N::86E
+headline::C::86
+footline::C::86
+marks//with+headers+or+footers::N::86
+headers::N::86E
+footers::N::86E
+page+layout::N::86E
+paragraphs::N::86PB
+par::C::86
+par//ending a paragraph with::C::86
+indent::C::87
+noindent::C::87
+everypar::C::87
+parshape::C::87
+hangindent::C::87
+looseness::C::87
+paragraphs::N::87E
+parameters::N::87PB
+parindent::C::87
+assignments::N::87
+registers//parameters+as::N::88
+parameters::N::88E
+penalties::N::88PB
+horizontal+lists//penalties+in::N::88
+vertical+lists//penalties+in::N::88
+penalties::N::88E
+\plainTeX::N::88PB
+\plainTeX::N::88E
+primitive::N::88PB
+primitive::N::88E
+reference+point::N::88PB
+baselines::N::88
+boxes//reference+point+of::N::88
+reference+point::N::88E
+registers::N::89PB
+box+registers::N::89
+count+registers::N::89
+dimension+registers::N::89
+muglue+registers::N::89
+glue+registers::N::89
+token+registers::N::89
+parameters//like+registers::N::89
+newbox::C::89
+newcount::C::89
+newdimen::C::89
+newmuskip::C::89
+newskip::C::89
+newtoks::C::89
+page+numbering::N::90
+box255::C::90
+showthe::C::90
+registers::N::90E
+restricted+mode::N::90PB
+restricted+mode::N::90E
+rules::N::90PB
+horizontal+rules::N::90B
+vertical+rules::N::90B
+hrule::C::90B
+vrule::C::90B
+horizontal+lists//rule+in::N::90
+vertical+lists//rule+in::N::90
+horizontal+rules::N::91E
+vertical+rules::N::91E
+hrule::C::91E
+vrule::C::91E
+rules::N::91E
+script+size::N::91PB
+family//script+size+in::N::91
+script+size::N::91E
+scriptscript+size::N::91PB
+family//scriptscript+size+in::N::91
+scriptscript+size::N::91E
+shrink::N::91PB
+shrink::N::91E
+space::N::91PB
+end+of+line::N::91
+par//from empty line::C::91
+glue//creating+space+with::N::91
+kerns//creating+space+with::N::91
+space::N::92E
+stretch::N::92PB
+stretch::N::92E
+struts::N::92PB
+boxes//invisible::N::92
+offinterlineskip::C::92
+strut::C::92
+mathstrut::C::92
+struts::N::92E
+styles::N::92PB
+cramped+variants::N::93
+display+style::N::93
+text+style::N::93
+script+style::N::93
+scriptscript+style::N::93
+textstyle::C::93
+displaystyle::C::93
+scriptstyle::C::93
+scriptscriptstyle::C::93
+styles::N::93E
+\TeXMeX::N::93PB
+El+Paso::N::93
+\TeXMeX::N::93E
+text+math::N::93PB
+$::T::93
+text+math::N::93E
+text+size::N::93PB
+family//text+size+in::N::93
+text+size::N::93E
+tokens::N::93PB
+tokens::N::93E
+units+of+measure::N::93PB
+units+of+measure::N::93E
+vboxes::N::94PB
+vertical+lists//vboxes+formed+from::N::94
+vbox::C::94
+vtop::C::94
+vboxes::N::94E
+vertical+lists::N::94PB
+vertical+lists::N::94E
+vertical+mode::N::94PB
+vboxes//vertical+mode+for::N::94
+ordinary+vertical+mode::N::94
+internal+vertical+mode::N::94
+vertical+lists//can't+contain+horizontal+commands::N::94
+valign//inherently horizontal::C::94
+vrule//inherently horizontal::C::94
+vertical+mode::N::94E
+whatsit::N::94PB
+openout//whatsit produced by::C::95
+write//whatsit produced by::C::95
+closeout//whatsit produced by::C::95
+\dvifile//whatsits+in::N::95
+immediate::C::95
+special::C::95
+\dvifile//material+inserted+by+\b\tt\\special\e::N::95
+language::C::95
+setlanguage::C::95
+whatsit::N::95E
+width::N::95PB
+boxes//width+of::N::95
+width::N::95E
+ligatures::N::97B
+special+symbols::N::97
+European+alphabets::N::97
+AA::C::97P
+aa::C::97P
+AE::C::97P
+ae::C::97P
+L::C::97P
+l::C::97P
+O::C::97P
+o::C::97P
+OE::C::97P
+oe::C::97P
+ss::C::97P
+ligatures::N::98E
+special+characters::N::98
+#::C::98P
+$::C::98P
+%::C::98P
+&::C::98P
+_::C::98P
+lq::C::98P
+rq::C::98P
+lbrack::C::98P
+rbrack::C::98P
+dag::C::98P
+ddag::C::98P
+copyright::C::98P
+P::C::98P
+S::C::98P
+pound+sterling::N::98
+TeX::C::98P
+dots::C::99P
+dots::N::99
+ellipsis::N::99
+characters::N::99B
+char::C::99P
+mathchar::C::99P
+characters::N::99E
+accents::N::100
+'::C::100P
+acute+accent::N::100
+.::C::100P
+dot+accent::N::100
+=::C::100P
+macron+accent::N::100
+^::C::100P
+circumflex+accent::N::100
+`::C::100P
+grave+accent::N::100
+"::C::100P
+umlaut+accent::N::100
+~::C::100P
+tilde+accent::N::100
+cedilla+accent::N::100
+c::C::100P
+underdot+accent::N::100
+d::C::100P
+Hungarian+umlaut+accent::N::100
+H::C::100P
+tie-after+accent::N::100
+t::C::100P
+breve+accent::N::100
+u::C::100P
+check+accent::N::100
+v::C::100P
+i::C::100P
+j::C::100P
+dotless+letters::N::100
+imath::C::100
+jmath::C::100
+accent::C::100P
+accents::N::100
+ligatures::N::101B
+noboundary::C::101P
+ligatures::N::101E
+fonts::N::102
+fivebf::C::102P
+fivei::C::102P
+fiverm::C::102P
+fivesy::C::102P
+sevenbf::C::102P
+seveni::C::102P
+sevenrm::C::102P
+sevensy::C::102P
+tenbf::C::102P
+tenex::C::102P
+teni::C::102P
+tenrm::C::102P
+tensl::C::102P
+tensy::C::102P
+tenit::C::102P
+tentt::C::102P
+nullfont::C::102P
+type+styles::N::103
+bf::C::103P
+it::C::103P
+rm::C::103P
+sl::C::103P
+tt::C::103P
+case+conversion::N::103B
+uppercase//conversion+to::N::103B
+lowercase//conversion+to::N::103B
+lccode::C::103P
+uccode::C::103P
+lowercase::C::104P
+uppercase::C::104P
+case+conversion::N::104
+case+conversion::N::104E
+uppercase//conversion+to::N::104E
+lowercase//conversion+to::N::104E
+spaces//interword::N::104B
+ ::C::104
+control+space::N::104
+visible+space::N::104
+space::C::105P
+ ::C::105
+^^M::T::105P
+end+of+line::N::105
+par//from empty line::C::105
+~::T::105P
+tie::N::105
+/::C::106P
+italic+correction::N::106
+metrics+file//italic+correction+in::N::106
+italic+correction::N::106
+frenchspacing::C::106P
+nonfrenchspacing::C::106P
+interword+spacing::N::106
+obeyspaces::C::107P
+obeywhitespace::C::107
+spacefactor::C::107P
+spaceskip::C::107P
+xspaceskip::C::107P
+sfcode::C::107P
+interword+spacing::N::107
+space+factor::N::107
+spaces//interword::N::108E
+centering::N::108B
+flush+left::N::108B
+flush+right::N::108B
+justification::N::108B
+centerline::C::108P
+leftline::C::108P
+rightline::C::108P
+centering::N::109E
+flush+left::N::109E
+flush+right::N::109E
+justification::N::109E
+line::C::109P
+overlapping+text::N::109
+llap::C::109P
+rlap::C::109P
+overprinting::N::109
+cmtt10::T::109
+typewriter+font::N::109
+Computer+Modern+fonts::N::109
+paragraphs//shaping::N::110B
+par::C::110P
+paragraphs//starting::N::110
+everypar::C::110
+endgraf::C::111P
+par::C::111
+par::C::111
+parfillskip::C::111P
+paragraphs//glue+at+end+of::N::111
+indentation::N::111B
+indent::C::111P
+parskip::C::111
+indentation::N::111
+noindent::C::112P
+parskip::C::112
+indentation::N::112
+textindent::C::112P
+indentation::N::112
+footnotes//using+\b\tt\\textindent\e\ with::N::112
+parindent::C::113P
+indentation::N::113
+parskip::C::113
+everypar::C::113P
+line+breaks//and+paragraph+shape::N::114B
+hsize::C::114P
+line+length::N::114
+vboxes//width+determined+by+\b\tt\\hsize\e::N::114
+narrower::C::114P
+paragraphs//narrow::N::114
+indentation::N::114
+leftskip::C::115P
+rightskip::C::115P
+indentation::N::115
+ragged+left::N::115
+raggedright::C::116P
+ttraggedright::C::116P
+ragged+right::N::116
+justification::N::116
+hang::C::117P
+indentation::N::117
+hangafter::C::117P
+hangindent::C::117P
+hanging+indentation::N::117
+indentation::N::117
+everypar//for hanging indentation::C::117
+parshape::C::117
+parshape::C::118P
+hangafter::C::118
+hangindent::C::118
+hangafter::C::118
+hangindent::C::118
+indentation::N::119E
+prevgraf::C::120P
+vadjust::C::120P
+vertical+lists//inserting+in+paragraphs::N::120
+line+breaks//and+paragraph+shape::N::120E
+paragraphs//shaping::N::120E
+line+breaks::N::120B
+line+breaks//encouraging+or+discouraging::N::120B
+break::C::120P
+nobreak::C::121P
+allowbreak::C::121P
+line+breaks//in+math+formulas::N::121
+penalty::C::121P
+obeylines::C::122P
+verse,+typesetting::N::122
+poetry,+typesetting::N::122
+computer+programs,+typesetting::N::122
+obeyspaces::C::122
+slash::C::122P
+solidus::N::122
+line+breaks//encouraging+or+discouraging::N::122E
+line+breaks//parameters+affecting::N::123B
+pretolerance::C::123P
+tolerance::C::123P
+emergencystretch::C::123
+hbadness::C::123
+hfuzz::C::123
+emergencystretch::C::124P
+overfull+boxes::N::124
+tolerance::C::124
+looseness::C::124P
+tolerance::C::124
+everypar//for setting \b\tt\\looseness\e::C::124
+linepenalty::C::125P
+adjdemerits::C::125P
+hyphenation//penalties+for::N::125
+hyphenation//penalties+for::N::125B
+exhyphenpenalty::C::125P
+hyphenpenalty::C::125P
+discretionary+hyphens::N::125
+-//leads to {\tt\\hyphenpenalty}::T::125
+doublehyphendemerits::C::125P
+finalhyphendemerits::C::126P
+hyphenation//penalties+for::N::126E
+binoppenalty::C::126P
+operators::N::126
+relpenalty::C::126P
+relations::N::126
+line+breaks//parameters+affecting::N::126E
+hyphenation::N::126B
+-::C::126P
+discretionary+hyphens::N::126
+discretionary::C::127P
+hyphenation::N::127
+hyphenation//German::N::127
+hyphenation::C::127P
+hyphenation::N::127
+uchyph::C::128P
+showhyphens::C::128P
+language::C::128P
+hyphenation+rules::N::128
+European+languages::N::128
+local+information::N::128
+whatsit::N::128
+setlanguage::C::128P
+language::C::128
+lefthyphenmin::C::128P
+righthyphenmin::C::128P
+fonts//hyphenation+characters+for::N::129B
+hyphenchar::C::129P
+defaulthyphenchar::C::129P
+metrics+file//default+hyphen+in::N::129
+font::C::129
+hyphenchar::C::129
+fonts//hyphenation+characters+for::N::129E
+hyphenation::N::129E
+line+breaks::N::129E
+section+headings::N::129
+beginsection::C::129P
+item::C::130P
+itemitem::C::130P
+itemized+lists::N::130
+itemized+lists::N::130
+parindent//indentation for itemized lists::C::130
+proclaim::C::131P
+theorems::N::131
+lemmas::N::131
+hypotheses::N::131
+baselineskip::C::133P
+lineskiplimit::C::133P
+lineskip::C::133P
+line+spacing::N::133
+interline+glue::N::133B
+baselineskip::C::133B
+lineskip::C::133B
+lineskiplimit::C::133B
+vboxes//interline+glue+for::N::133
+prevdepth::C::133
+double+spacing::N::134
+interline+glue::N::134E
+baselineskip::C::134E
+lineskip::C::134E
+lineskiplimit::C::134E
+prevdepth::C::134P
+normalbaselineskip::C::134P
+normallineskiplimit::C::134P
+normallineskip::C::134P
+normalbaselines::C::134P
+baselineskip::C::134
+lineskip::C::134
+lineskiplimit::C::134
+offinterlineskip::C::135P
+struts::N::135
+alignments//using+\b\tt\\offinterlineskip\e\ in::N::135
+nointerlineskip::C::135P
+openup::C::135P
+baselineskip::C::135
+alignments//space+between+rows+of::N::135
+page+breaks::N::136B
+page+breaks//encouraging+or+discouraging::N::136B
+break::C::136P
+nobreak::C::136P
+allowbreak::C::136P
+penalty::C::136P
+goodbreak::C::137P
+smallbreak::C::137P
+medbreak::C::137P
+bigbreak::C::137P
+smallskip::C::137
+medskip::C::137
+bigskip::C::137
+eject::C::137P
+supereject::C::137P
+vfil//needed with {\tt\\eject}::C::137
+insertions//forced+out+by+\b\tt\\supereject\e::N::137
+filbreak::C::137P
+raggedbottom::C::137P
+normalbottom::C::137P
+page+breaks//encouraging+or+discouraging::N::138E
+page+breaks//parameters+for::N::138B
+interlinepenalty::C::138P
+clubpenalty::C::138P
+club+line::N::138
+widowpenalty::C::138P
+widow+line::N::138
+displaywidowpenalty::C::138P
+widow+line::N::138
+math+display::N::138
+predisplaypenalty::C::138P
+math+display::N::138
+postdisplaypenalty::C::138P
+math+display::N::138
+brokenpenalty::C::139P
+hyphenation::N::139
+hyphenpenalty::C::139
+insertpenalties::C::139P
+insertions//penalties+for::N::139B
+floating+material::N::139B
+output+routine//meaning+of+\b\tt\\insertpenalties\e\ in::N::139
+floatingpenalty::C::139P
+insertpenalties::C::139
+insertions//penalties+for::N::139E
+floating+material::N::139E
+pagegoal::C::139P
+pagetotal::C::139P
+pagedepth::C::139P
+pageshrink::C::140P
+pagestretch::C::140P
+pagefilstretch::C::140P
+pagefillstretch::C::140P
+pagefilllstretch::C::140P
+page+breaks//parameters+for::N::140E
+page+breaks::N::140E
+page+dimensions::N::140B
+hsize::C::140P
+vsize::C::140P
+pagegoal::C::140
+page+dimensions::N::140E
+hoffset::C::140P
+voffset::C::140P
+page+origin::N::140
+origin::N::*page+origin
+topskip::C::141P
+parskip::C::141P
+paragraph+skip::N::141
+paragraphs//glue+between::N::141
+maxdepth::C::141P
+device+drivers//page+origin+known+to::N::141
+page+numbering::N::142B
+pageno::C::142P
+count0::C::142
+shipout//{\tt\\count} registers displayed at::C::142
+advancepageno::C::142P
+nopagenumbers::C::142P
+folio::C::143P
+pageno::C::143
+page+numbering::N::143E
+headline::C::143P
+footline::C::143P
+mark::C::144P
+marks::N::144B
+firstmark::C::144P
+botmark::C::144P
+topmark::C::144P
+mark::C::144
+box255::C::144
+splitfirstmark::C::144P
+splitbotmark::C::144P
+marks//for+split+lists::N::144
+mark+text::N::144
+mark::C::144
+vsplit::C::144
+marks::N::145E
+footnote::C::145P
+vfootnote::C::145P
+reference+mark::N::145
+insertions//commands+for::N::146B
+topinsert::C::146P
+midinsert::C::146P
+pageinsert::C::146P
+floating+material::N::146
+endinsert::C::147P
+insert::C::147P
+topinsert::C::147
+midinsert::C::147
+pageinsert::C::147
+footnote::C::147
+vfootnote::C::147
+newinsert::C::147
+output+routine::N::147
+ifvoid::C::147
+insertions//commands+for::N::148E
+output+routine::N::148B
+output::C::148P
+box255::C::148
+plainoutput::C::148P
+output+routine//default+in+\plainTeX::N::148
+output::C::148
+shipout::C::148P
+\dvifile//receives+boxes+from+\b\tt\\shipout\e::N::148
+write//expanded during {\tt\\shipout}::C::148
+deadcycles::C::148P
+shipout::C::148
+maxdeadcycles::C::148P
+outputpenalty::C::149P
+holdinginserts::C::149P
+output+routine::N::149E
+vsplit::C::149P
+page+breaks//in+split+lists::N::149
+pagegoal::C::149
+splitmaxdepth::C::150P
+maxdepth::C::150
+splittopskip::C::150P
+topskip::C::150
+space//producing::N::153B
+horizontal+space::N::153B
+thinspace::C::153P
+negthinspace::C::153P
+enspace::C::154P
+en::N::154
+enskip::C::154P
+quad::C::154P
+qquad::C::154P
+en::N::154
+horizontal+space::N::154E
+vertical+space::N::154B
+smallskip::C::154P
+medskip::C::154P
+bigskip::C::154P
+smallskipamount::C::155P
+medskipamount::C::155P
+bigskipamount::C::155P
+baselineskip//and {\tt\\smallskipamount}, etc.::C::155
+vertical+space::N::155E
+hskip::C::155P
+vskip::C::155P
+vertical+skip::N::155
+vertical+glue::N::155
+horizontal+skip::N::155
+horizontal+glue::N::155
+horizontal+space::N::155B
+vertical+space::N::155B
+hglue::C::156P
+vglue::C::156P
+vertical+glue::N::156
+horizontal+glue::N::156
+topglue::C::156
+topglue::C::156P
+\newTeX::N::156
+kern::C::157P
+kerns::N::157
+hglue::C::157
+vglue::C::157
+line+breaks//kerns+at::N::157
+page+breaks//kerns+at::N::157
+hfil::C::157P
+hfill::C::157P
+vfil::C::157P
+vfill::C::157P
+glue//infinitely+stretchable::N::157B
+glue//infinitely+stretchable::N::158E
+hss::C::158P
+vss::C::158P
+hfilneg::C::159P
+vfilneg::C::159P
+glue//negative::N::159
+hfil::C::159
+space//producing::N::159E
+horizontal+space::N::159E
+vertical+space::N::159E
+box+commands::N::160B
+hboxes//constructing+with+\b\tt\\hbox\e::N::160
+hbox::C::160P
+hbox::C::160P
+hbox::C::160P
+hfil::C::160
+vtop::C::161P
+vtop::C::161P
+vtop::C::161P
+vbox::C::161P
+vbox::C::161P
+vbox::C::161P
+hbox//constructing+with+\b\tt\\hbox\e::N::161
+moveright::C::161
+moveleft::C::161
+vfil//filling a vbox::C::162
+boxmaxdepth::C::162
+boxmaxdepth::C::163P
+underbar::C::163P
+everyhbox::C::164P
+everyvbox::C::164P
+box+registers::N::164B
+setbox::C::164P
+box::C::164P
+assignments//of+boxes::N::164
+copy::C::164P
+boxes//copying::N::164
+box::C::165
+unhbox::C::165P
+unvbox::C::165P
+boxes//extracting+contents+of::N::165
+unhcopy::C::165P
+unvcopy::C::165P
+boxes//extracting+contents+of::N::165
+boxes//copying::N::165
+box+registers::N::166E
+moveleft::C::166P
+moveright::C::166P
+boxes//shifting::N::166B
+lower::C::166P
+raise::C::166P
+boxes//shifting::N::167E
+box+registers::N::167B
+dimensions//of+box+registers::N::167B
+ht::C::167P
+dp::C::167P
+wd::C::167P
+height::N::167
+depth::N::167
+width::N::167
+box+registers::N::167E
+dimensions//of+box+registers::N::167E
+struts::N::167B
+strut::C::167P
+offinterlineskip::C::167
+mathstrut::C::168P
+strut::C::168
+struts::N::168E
+phantom::C::168P
+boxes//phantom::N::168B
+phantoms::N::168B
+hphantom::C::169P
+vphantom::C::169P
+smash::C::169P
+boxes//phantom::N::169E
+phantoms::N::169E
+boxes//empty::N::169
+null::C::169P
+boxes//overfull::N::170B
+boxes//underfull::N::170B
+overfullrule::C::170P
+hbadness::C::170P
+vbadness::C::170P
+badness::C::170P
+hfuzz::C::171P
+vfuzz::C::171P
+boxes//overfull::N::171
+boxes//overfull::N::171E
+boxes//underfull::N::171E
+box+commands::N::171E
+boxes//last+box+in+a+list::N::171
+kerns//last+kern+in+a+list::N::171
+penalties//last+penalty+in+a+list::N::171
+glue//last+glue+item+in+a+list::N::171
+lastkern::C::171P
+lastskip::C::171P
+lastpenalty::C::171P
+lastbox::C::171P
+unkern::C::172P
+unskip::C::172P
+unpenalty::C::172P
+lastbox::C::172
+unbox::C::172
+rules::N::172B
+horizontal+rules::N::172B
+vertical+rules::N::172B
+hrule::C::172P
+hrule::C::172P
+vrule::C::172P
+vrule::C::172P
+horizontal+mode//rules+in::N::173
+vertical+mode//rules+in::N::173
+rules::N::173E
+horizontal+rules::N::173E
+vertical+rules::N::173E
+leaders::N::174B
+leaders::C::174P
+cleaders::C::174P
+xleaders::C::174P
+dotfill::C::175P
+hrulefill::C::175P
+fill::N::175
+leftarrowfill::C::175P
+rightarrowfill::C::175P
+fill::N::175
+arrows::N::175
+leaders::N::176E
+tabbing+alignments::N::176B
+alignments//commands+for::N::176B
++::C::176P
+tabalign::C::176P
+settabs::C::176P
+settabs::C::176P
+tabs::N::176
+cleartabs::C::177P
+tabbing+alignments::N::177E
+halign::C::178P
+halign::C::178P
+halign::C::178P
+preamble::N::178
+template::N::178B
+entry+(column+or+row)::N::178B
+valign::C::179P
+valign::C::179P
+valign::C::179P
+preamble::N::179
+template::N::179B
+row::N::179
+entry+(column+or+row)::N::179E
+struts//in+vertical+alignments::N::179
+ialign::C::180P
+halign::C::180
+cr::C::180P
+everycr::C::180
+endline::C::180P
+cr::C::180
+crcr::C::180P
+cr::C::180
+noalign::C::180
+omit::C::181P
+span::C::181P
+multispan::C::182
+multispan::C::182P
+template::N::182E
+noalign::C::183P
+noalign::C::183P
+openup::C::183
+tabskip::C::184P
+hidewidth::C::184P
+everycr::C::185P
+alignments//commands+for::N::185E
+math::N::187B
+Greek+letters::N::187B
+alpha::C::187P
+beta::C::187P
+chi::C::187P
+delta::C::187P
+Delta::C::187P
+epsilon::C::187P
+varepsilon::C::187P
+eta::C::187P
+gamma::C::187P
+Gamma::C::187P
+iota::C::187P
+kappa::C::187P
+lambda::C::187P
+Lambda::C::187P
+mu::C::187P
+nu::C::187P
+omega::C::187P
+Omega::C::187P
+phi::C::187P
+varphi::C::187P
+Phi::C::187P
+pi::C::187P
+varpi::C::187P
+Pi::C::187P
+psi::C::187P
+Psi::C::187P
+rho::C::187P
+varrho::C::187P
+sigma::C::187P
+varsigma::C::187P
+Sigma::C::187P
+tau::C::187P
+theta::C::187P
+vartheta::C::187P
+Theta::C::187P
+upsilon::C::187P
+Upsilon::C::187P
+xi::C::187P
+Xi::C::187P
+zeta::C::187P
+omicron::N::188
+beta::N::188
+Greek+letters::N::188E
+infty::C::188P
+Re::C::188P
+Im::C::188P
+angle::C::188P
+triangle::C::188P
+backslash::C::188P
+vert::C::188P
+|::C::188P
+Vert::C::188P
+emptyset::C::188P
+bot::C::188P
+top::C::188P
+exists::C::188P
+forall::C::188P
+hbar::C::188P
+ell::C::188P
+aleph::C::188P
+imath::C::188P
+jmath::C::188P
+nabla::C::188P
+neg::C::188P
+lnot::C::188P
+'::T::188P
+prime::C::188P
+partial::C::188P
+surd::C::188P
+wp::C::188P
+flat::C::188P
+sharp::C::188P
+natural::C::188P
+clubsuit::C::188P
+diamondsuit::C::188P
+heartsuit::C::188P
+spadesuit::C::188P
+music+symbols::N::188
+card+suits::N::188
+ordinary+symbol::N::188
+Vert::C::189
+neg::C::189
+lnot::C::189
+|::T::189
+bigm::C::189
+operations::N::189B
+vee::C::189P
+wedge::C::189P
+amalg::C::189P
+cap::C::189P
+cup::C::189P
+uplus::C::189P
+sqcap::C::189P
+sqcup::C::189P
+dagger::C::189P
+ddagger::C::189P
+land::C::189P
+lor::C::189P
+cdot::C::189P
+diamond::C::189P
+bullet::C::189P
+circ::C::189P
+bigcirc::C::189P
+odot::C::189P
+ominus::C::189P
+oplus::C::189P
+oslash::C::189P
+otimes::C::189P
+pm::C::189P
+mp::C::189P
+triangleleft::C::189P
+triangleright::C::189P
+bigtriangledown::C::189P
+bigtriangleup::C::189P
+ast::C::189P
+star::C::189P
+times::C::189P
+div::C::189P
+setminus::C::189P
+wr::C::189P
+*::C::190P
+operations::N::190E
+relations::N::190B
+asymp::C::190P
+cong::C::190P
+dashv::C::190P
+vdash::C::190P
+perp::C::190P
+mid::C::190P
+parallel::C::190P
+doteq::C::190P
+equiv::C::190P
+ge::C::190P
+geq::C::190P
+le::C::190P
+leq::C::190P
+gg::C::190P
+ll::C::190P
+models::C::190P
+ne::C::190P
+neq::C::190P
+notin::C::190P
+in::C::190P
+ni::C::190P
+owns::C::190P
+prec::C::190P
+preceq::C::190P
+succ::C::190P
+succeq::C::190P
+bowtie::C::190P
+propto::C::190P
+approx::C::190P
+sim::C::190P
+simeq::C::190P
+frown::C::190P
+smile::C::190P
+subset::C::190P
+subseteq::C::190P
+supset::C::190P
+supseteq::C::190P
+sqsubseteq::C::190P
+sqsupseteq::C::190P
+=::T::191
+asymp::C::191
+cong::C::191
+equiv::C::191
+=::T::191
+ge::C::191
+geq::C::191
+le::C::191
+leq::C::191
+prec::C::191
+preceq::C::191
+succ::C::191
+succeq::C::191
+approx::C::191
+sim::C::191
+simeq::C::191
+subset::C::191
+subseteq::C::191
+supset::C::191
+supseteq::C::191
+sqsubseteq::C::191
+sqsupseteq::C::191
+relations::N::191E
+delimiters::N::191B
+lbrace::C::191P
+{::C::191P
+rbrace::C::191P
+}::C::191P
+lbrack::C::191P
+rbrack::C::191P
+langle::C::191P
+rangle::C::191P
+lceil::C::191P
+rceil::C::191P
+lfloor::C::191P
+rfloor::C::191P
+opening::N::191
+closing::N::191
+delimiters::N::192E
+arrows::N::192B
+leftarrow::C::192P
+gets::C::192P
+Leftarrow::C::192P
+rightarrow::C::192P
+to::C::192P
+Rightarrow::C::192P
+leftrightarrow::C::192P
+Leftrightarrow::C::192P
+longleftarrow::C::192P
+Longleftarrow::C::192P
+longrightarrow::C::192P
+Longrightarrow::C::192P
+longleftrightarrow::C::192P
+Longleftrightarrow::C::192P
+iff::C::192P
+hookleftarrow::C::192P
+hookrightarrow::C::192P
+leftharpoondown::C::192P
+rightharpoondown::C::192P
+leftharpoonup::C::192P
+rightharpoonup::C::192P
+rightleftharpoons::C::192P
+mapsto::C::192P
+longmapsto::C::192P
+downarrow::C::192P
+Downarrow::C::192P
+uparrow::C::192P
+Uparrow::C::192P
+updownarrow::C::192P
+Updownarrow::C::192P
+nearrow::C::192P
+searrow::C::192P
+nwarrow::C::192P
+swarrow::C::192P
+arrows::N::193E
+functions,+names+of::N::193B
+cos::C::193P
+sin::C::193P
+tan::C::193P
+cot::C::193P
+csc::C::193P
+sec::C::193P
+arccos::C::193P
+arcsin::C::193P
+arctan::C::193P
+cosh::C::193P
+coth::C::193P
+sinh::C::193P
+tanh::C::193P
+det::C::193P
+dim::C::193P
+exp::C::193P
+ln::C::193P
+log::C::193P
+lg::C::193P
+arg::C::193P
+deg::C::193P
+gcd::C::193P
+hom::C::193P
+ker::C::193P
+inf::C::193P
+sup::C::193P
+lim::C::193P
+liminf::C::193P
+limsup::C::193P
+max::C::193P
+min::C::193P
+Pr::C::193P
+bmod::C::193P
+modulus::N::193
+pmod::C::194P
+modulus::N::194
+functions,+names+of::N::194E
+operators//large::N::194B
+bigcap::C::194P
+bigcup::C::194P
+bigodot::C::194P
+bigoplus::C::194P
+bigotimes::C::194P
+bigsqcup::C::194P
+biguplus::C::194P
+bigvee::C::194P
+bigwedge::C::194P
+coprod::C::194P
+smallint::C::194P
+int::C::194P
+oint::C::194P
+prod::C::194P
+sum::C::194P
+text+style::N::194
+display+style::N::194
+Sigma::C::194
+Pi::C::194
+limits::N::194
+limits::C::195P
+nolimits::C::195P
+int::C::195
+oint::C::195
+int//limits after::C::195
+displaylimits::C::195P
+operators//large::N::196E
+punctuation+in+math+formulas::N::196B
+cdotp::C::196P
+ldotp::C::196P
+cdot::C::196
+colon::C::196P
+punctuation+in+math+formulas::N::196E
+superscripts::N::197B
+subscripts::N::197B
+_::T::197P
+sb::C::197P
+^::T::197P
+sp::C::197P
+lower+limits::N::197
+upper+limits::N::197
+script+style::N::197
+scriptscript+style::N::197
+scriptstyle::C::197
+scriptscriptstyle::C::197
+lim::C::197
+det::C::197
+superscripts::N::197E
+subscripts::N::197E
+styles::N::198B
+textstyle::C::198P
+scriptstyle::C::198P
+scriptscriptstyle::C::198P
+displaystyle::C::198P
+text+style::N::198
+script+style::N::198
+scriptscript+style::N::198
+display+style::N::198
+mathchoice::C::198P
+mathpalette::C::198P
+math+symbols::N::198
+styles::N::199E
+accents::N::199
+math//accents::N::199
+acute+accent::N::199
+acute::C::199P
+bar-under+accent::N::199
+b::C::199P
+bar+accent::N::199
+bar::C::199P
+breve+accent::N::199
+breve::C::199P
+check+accent::N::199
+check::C::199P
+double+dot+accent::N::199
+ddot::C::199P
+dot+accent::N::199
+dot::C::199P
+grave+accent::N::199
+grave::C::199P
+hat+accent::N::199
+hat::C::199P
+wide+hat+accent::N::199
+widehat::C::199P
+tilde+accent::N::199
+tilde::C::199P
+wide+tilde+accent::N::199
+widetilde::C::199P
+vector+accent::N::199
+vec::C::199P
+mathaccent::C::199P
+fractions::N::200B
+stacking+subformulas::N::200B
+over::C::200P
+atop::C::200P
+above::C::200P
+choose::C::200P
+brace::C::200P
+brack::C::200P
+fractions//produced+by+\b\tt\\over\e::N::200
+overwithdelims::C::201P
+atopwithdelims::C::201P
+abovewithdelims::C::201P
+cases::C::201P
+combinations,+notation+for::N::201
+underbrace::C::202P
+overbrace::C::202P
+underline::C::202P
+overline::C::202P
+overleftarrow::C::202P
+overrightarrow::C::202P
+braces::N::202
+arrows::N::202
+buildrel::C::202P
+relations//putting+formulas+above::N::202
+fractions::N::202E
+stacking+subformulas::N::202E
+dots::N::203B
+ldots::C::203P
+cdots::C::203P
+dots::N::203
+vdots::C::203P
+ddots::C::203P
+dots::N::203E
+delimiters::N::204B
+lgroup::C::204P
+rgroup::C::204P
+parentheses::N::204
+left::C::204P
+right::C::204P
+over::C::204
+nulldelimiterspace::C::204
+delimiter::C::204P
+mathcode::C::205
+delimiterfactor::C::205P
+delimitershortfall::C::205P
+delimiters//height+of::N::205
+delimiters::N::205E
+matrix::C::205P
+pmatrix::C::205P
+bordermatrix::C::205P
+matrix::N::205
+sqrt::C::206P
+root::C::207P
+radical::C::207P
+delimiter+codes::N::207
+delcode::C::207
+eqno::C::207P
+leqno::C::207P
+displays//multiline::N::208B
+displaylines::C::208P
+eqalign::C::208P
+eqalignno::C::208P
+leqalignno::C::208P
+equation+numbers::N::208
+displays//multiline::N::209E
+fonts::N::209
+cal::C::209P
+mit::C::209P
+oldstyle::C::209P
+Greek+letters::N::210
+type+styles::N::210
+itfam::C::210P
+bffam::C::210P
+slfam::C::210P
+ttfam::C::210P
+fam::C::210P
+class::N::210
+family//given+by+\b\tt\\fam\e::N::210
+textfont::C::210P
+scriptfont::C::210P
+scriptscriptfont::C::210P
+text+style::N::210
+script+style::N::210
+scriptscript+style::N::210
+big::C::211P
+bigl::C::211P
+bigm::C::211P
+bigr::C::211P
+Big::C::211P
+Bigl::C::211P
+Bigm::C::211P
+Bigr::C::211P
+bigg::C::211P
+biggl::C::211P
+biggm::C::211P
+biggr::C::211P
+Bigg::C::211P
+Biggl::C::211P
+Biggm::C::211P
+Biggr::C::211P
+delimiters//enlarging::N::211
+downbracefill::C::211P
+upbracefill::C::211P
+horizontal+braces::N::211
+braces::N::211
+overbrace::C::212
+underbrace::C::212
+arrowvert::C::212P
+Arrowvert::C::212P
+lmoustache::C::212P
+rmoustache::C::212P
+bracevert::C::212P
+delimiters//parts+of::N::212
+cmex10::T::212
+accents//aligning::N::212B
+skew::C::212P
+skewchar::C::213P
+defaultskewchar::C::213P
+metrics+file//default+skew+character+in::N::213
+font::C::213
+skewchar::C::213
+accents//aligning::N::213E
+vcenter::C::213P
+axis::N::213
+space//in+math+formulas::N::214B
+!::C::214P
+,::C::214P
+>::C::214P
+;::C::214P
+extra+space::N::214
+thinmuskip::C::214P
+medmuskip::C::214P
+thickmuskip::C::214P
+jot::C::215P
+mkern::C::215P
+kerns//in+math+formulas::N::215
+mskip::C::215P
+glue::N::215
+nonscript::C::215P
+space//in+math+formulas::N::216E
+displays//spacing+parameters+for::N::216B
+displaywidth::C::216P
+displayindent::C::216P
+predisplaysize::C::216P
+abovedisplayskip::C::217P
+belowdisplayskip::C::217P
+abovedisplayshortskip::C::217P
+belowdisplayshortskip::C::217P
+displays//spacing+parameters+for::N::217E
+mathsurround::C::217P
+nulldelimiterspace::C::217P
+delimiters//null,+space+for::N::217
+scriptspace::C::218P
+nonscript::C::218
+mathord::C::218P
+mathop::C::218P
+mathbin::C::218P
+mathrel::C::218P
+mathopen::C::218P
+mathclose::C::218P
+mathpunct::C::218P
+class::N::218
+mathinner::C::218P
+everymath::C::218P
+everydisplay::C::218P
+displays//actions+for+every+display::N::218
+math::N::219E
+programming+features::N::221
+fonts//naming+and+modifying::N::221B
+font::C::221P
+font::C::221P
+font::C::221P
+font::C::221P
+metrics+file::N::221
+\tfmfile::N::221
+device+drivers::N::222
+resident+fonts::N::222
+fontdimen::C::222P
+fonts//parameters+of::N::222
+magnification::C::223P
+mag::C::223P
+scale+factor::N::223
+hsize//set by {\tt\\magnification}::C::223
+vsize//set by {\tt\\magnification}::C::223
+magstep::C::223
+magstephalf::C::223
+magstep::C::223P
+magstephalf::C::224P
+fonts//naming+and+modifying::N::224E
+numbers//converting+to+characters::N::224B
+number::C::224P
+Roman+numerals::N::224
+romannumeral::C::224P
+numbers//converting+to+characters::N::224E
+time+of+day::N::224
+time::C::224P
+date::N::225B
+day::C::225P
+month::C::225P
+year::C::225P
+date::N::225E
+version+number::N::225
+fmtname::C::225P
+fmtversion::C::225P
+\LaTeX::N::225
+jobname::C::225P
+auxiliary+files::N::226
+meaning::C::226P
+tokens//showing+the+meaning+of::N::226
+the::C::226
+string::C::226P
+control+sequences//converting+to+strings::N::226
+escapechar::C::226
+escape+character//represented+by+\b\tt\\escapechar\e::N::226
+csname::C::226
+escapechar::C::226P
+escape+character//represented+by+\b\tt\\escapechar\e::N::226
+backslash::N::227
+fontname::C::227P
+fonts//names+of::N::227
+groups::N::227B
+begingroup::C::227P
+endgroup::C::227P
+macros//using+\b\tt\\begingroup\e\ and+\b\tt\\endgroup\e\ in::N::227
+{::T::227P
+bgroup::C::227P
+}::T::227P
+egroup::C::227P
+macros//using+\b\tt\\bgroup\e\ and+\b\tt\\egroup\e\ in::N::228
+global::C::228P
+globaldefs::C::228P
+gdef::C::229
+xdef::C::229
+global::C::229
+global::C::229
+aftergroup::C::229P
+groups::N::229E
+afterassignment::C::229P
+macros::N::230B
+macros//defining::N::230B
+def::C::230P
+edef::C::230P
+noexpand::C::231
+expandafter::C::231
+write//expanded by {\tt\\edef} rules::C::231
+message//expanded by {\tt\\edef} rules::C::231
+errmessage//expanded by {\tt\\edef} rules::C::231
+wlog//expanded by {\tt\\edef} rules::C::231
+csname//expanded by {\tt\\edef} rules::C::231
+gdef::C::231P
+xdef::C::231P
+long::C::231P
+par//in macro arguments::C::231
+outer::C::232P
+outer::N::232
+chardef::C::232P
+characters//defined+by+\b\tt\\chardef\e::N::232
+math+characters::N::232
+mathcodes::N::232
+mathchardef::C::232P
+macros//defining::N::232E
+let::C::232P
+control+sequences//defining+with+\b\tt\\let\e::N::232
+futurelet::C::232P
+csname::C::233P
+string::C::233
+macros//controlling+expansion+of::N::233B
+expandafter::C::233P
+{//with {\tt\\expandafter}::T::233
+string::C::233
+noexpand::C::234P
+the::C::234P
+parameters//using+\b\tt\\the\e\ with::N::234
+registers//with+\b\tt\\the\e::N::234
+hyphenchar::C::234
+skewchar::C::234
+lastpenalty::C::234
+lastskip::C::234
+lastkern::C::234
+chardef::C::234
+mathchardef::C::234
+macros//controlling+expansion+of::N::235E
+conditional+tests::N::235B
+if::C::235P
+ifcat::C::235P
+category+codes//testing::N::235
+ifx::C::236P
+long::C::236
+outer::C::236
+ifnum::C::237P
+numbers//comparing::N::237
+ifodd::C::237P
+numbers//testing+for+odd/even::N::237
+ifdim::C::237P
+dimensions//comparing::N::237
+ifhmode::C::238P
+ifvmode::C::238P
+ifmmode::C::238P
+ifinner::C::238P
+horizontal+mode//testing+for::N::238
+vertical+mode//testing+for::N::238
+math+mode//testing+for::N::238
+internal+mode//testing+for::N::238
+ifhbox::C::238P
+ifvbox::C::238P
+ifvoid::C::238P
+hboxes//testing+for::N::238
+vboxes//testing+for::N::238
+boxes//testing+if+void::N::238
+ifeof::C::239P
+end+of+file,+testing+for::N::239
+ifcase::C::239P
+case+testing::N::239
+iftrue::C::239P
+iffalse::C::239P
+else::C::239P
+fi::C::240P
+newif::C::240P
+conditional+tests::N::240E
+repeated+actions::N::240B
+loops::N::240B
+loop::C::240P
+repeat::C::240P
+repeated+actions::N::241E
+loops::N::241E
+relax::C::241P
+empty::C::241P
+macros::N::241E
+registers::N::242B
+count::C::242P
+dimen::C::242P
+skip::C::242P
+muskip::C::242P
+toks::C::242P
+toks::C::242P
+count::C::242P
+dimen::C::242P
+skip::C::242P
+muskip::C::242P
+toks::C::242P
+assignments//of+registers::N::242
+the::C::242
+newcount::C::242
+count+registers::N::242
+dimension+registers::N::242
+skip+registers::N::243
+muskip+registers::N::243
+mu::T::243
+token+registers::N::243
+the::C::243
+maxdimen::C::244P
+dimensions//maximum::N::244
+registers//reserving::N::244B
+newcount::C::244P
+newdimen::C::244P
+newskip::C::244P
+newmuskip::C::244P
+newtoks::C::244P
+newbox::C::244P
+newread::C::244P
+newwrite::C::244P
+newfam::C::244P
+newinsert::C::244P
+newlanguage::C::244P
+count+registers//reserved+by+\b\tt\\newcount\e::N::244
+dimension+registers//reserved+by+\b\tt\\newdimen\e::N::244
+skip+registers//reserved+by+\b\tt\\newskip\e::N::244
+muskip+registers//reserved+by+\b\tt\\newmuskip\e::N::244
+token+registers//reserved+by+\b\tt\\newtoks\e::N::244
+box+registers//reserved+by+\b\tt\\newbox\e::N::244
+input+streams//reserved+by+\b\tt\\newread\e::N::244
+output+streams//reserved+by+\b\tt\\newwrite\e::N::244
+family//reserved+by+\b\tt\\newfam\e::N::244
+insertions//numbers+reserved+by+\b\tt\\newinsert\e::N::244
+countdef::C::245P
+dimendef::C::245P
+skipdef::C::245P
+muskipdef::C::245P
+toksdef::C::245P
+registers//reserving::N::245E
+arithmetic::N::245B
+registers//arithmetic+in::N::245B
+advance::C::245P
+advance::C::245P
+advance::C::245P
+advance::C::245P
+multiply::C::246P
+divide::C::246P
+count::C::246
+dimen::C::246
+skip::C::246
+muskip::C::246
+skip::C::246
+muskip::C::246
+arithmetic::N::246E
+registers//arithmetic+in::N::246E
+registers::N::246E
+ending+the+job::N::246
+bye::C::246P
+end::C::247P
+files::N::247B
+input+files::N::247B
+input::C::247P
+endinput::C::247P
+inputlineno::C::247P
+openin::C::247P
+input+streams//opening::N::248
+closein::C::248P
+read::C::248P
+input+streams//reading+with+\b\tt\\read\e::N::248
+reading+a+file::N::248
+openin::C::248
+input+files::N::248E
+output+files::N::249B
+openout::C::249P
+output+streams//opening::N::249
+immediate::C::249
+closeout::C::249P
+output+streams//closing::N::249
+immediate::C::249
+write::C::249P
+output+streams//writing::N::249
+writing+a+file::N::249
+immediate::C::249
+escapechar::C::250
+log+file//written+by+\b\tt\\write\e::N::250
+immediate::C::250P
+write//with {\tt\\immediate}::C::250
+openout//with {\tt\\immediate}::C::250
+closeout//with {\tt\\immediate}::C::250
+special::C::250P
+device+drivers//instructions+from+\b\tt\\special\e::N::250
+device+drivers::N::250
+newlinechar::C::250P
+files::N::251E
+output+files::N::251E
+catcode::C::251P
+category+codes//in+\b\tt\\catcode\e\ table::N::251
+active::C::251P
+mathcode::C::251P
+delcode::C::251P
+delimiter+codes::N::251
+mathcode::C::252
+endlinechar::C::252P
+input+lines::N::252
+ignorespaces::C::252P
+controlling+\TeX::N::252B
+running+\TeX::N::252B
+errorstopmode::C::252P
+scrollmode::C::252P
+nonstopmode::C::253P
+batchmode::C::253P
+pausing::C::253P
+show::C::253
+running+\TeX::N::253E
+controlling+\TeX::N::253E
+tracing::N::253B
+debugging::N::253B
+diagnostic+aids::N::253B
+show::C::253P
+showthe::C::253P
+showbox::C::253P
+showlists::C::253P
+tokens//displayed+by+\b\tt\\show\e::N::253
+terminal::N::254
+tracingonline::C::254
+tracingonline::C::254
+showboxbreadth::C::254
+showboxdepth::C::254
+tracingonline::C::256P
+showbox::C::256
+showlists::C::256
+tracingcommands::C::257P
+tracingonline::C::257
+tracinglostchars::C::257P
+tracingonline::C::258
+tracingmacros::C::258P
+macros//tracing::N::258
+tracingonline::C::258
+tracingoutput::C::258P
+\dvifile//boxes+recorded+in+log+file::N::258
+tracingonline::C::258
+showboxbreadth::C::258
+showboxdepth::C::258
+extra+space::N::258
+tracingpages::C::259P
+page+breaks//tracing::N::259
+tracingonline::C::259
+tracingparagraphs::C::259P
+line+breaking//tracing::N::259
+tracingonline::C::259
+tracingrestores::C::260P
+tracingonline::C::260
+tracingstats::C::260P
+shipout::C::260
+log+file//tracing+statistics+in::N::260
+tracingonline::C::260
+tracingall::C::261P
+tracingonline::C::261
+showboxbreadth::C::261P
+showbox::C::261
+tracingoutput::C::261
+showboxdepth::C::261P
+showbox::C::261
+showlists::C::261
+tracing::N::261E
+debugging::N::261E
+diagnostic+aids::N::261E
+messages,+sending::N::261B
+error+messages::N::261B
+message::C::261P
+errmessage::C::261P
+newlinechar::C::261
+wlog::C::261P
+log+file//written+by+\b\tt\\wlog\e::N::261
+errhelp::C::261P
+newlinechar::C::262
+newhelp::C::262P
+help+message::N::262
+help+text::N::262
+errhelp::C::262
+errorcontextlines::C::262P
+messages,+sending::N::262E
+error+messages::N::262E
+dump::C::263P
+format+file::N::263
+virtex::T::263
+initex::T::263
+everyjob::C::263P
+page+breaks//bad::N::265B
+vbox//fixing page breaks with::C::265
+nobreak::C::266
+eject::C::266
+vadjust::C::266
+vfill::C::266
+filbreak::C::266
+looseness::C::267
+vadjust::C::267
+looseness::C::267
+parskip::C::267
+baselineskip//and preserving end of page::C::267
+vertical+space//reserving+at+top+of+page::N::267
+page+breaks//glue+at::N::268
+topglue::C::268
+page+breaks//bad::N::268E
+line+breaks//bad::N::268B
+break//correcting line breaks with::C::268
+~::T::268
+-//in+line+breaking::C::268
+discretionary+hyphens//bad+line+breaks,+correcting+with::N::268
+hbox::C::268
+underfull+boxes::N::268
+overfull+boxes::N::268
+line+breaks//bad::N::268E
+overfull+boxes::N::268B
+underfull+boxes::N::268B
+boxes//overfull::N::268B
+boxes//underfull::N::268B
+emergencystretch::C::268
+discretionary+hyphens//overfull+boxes,+correcting+with::N::268
+hfuzz::C::269
+raggedright::C::269
+parskip::C::269
+vfuzz::C::269
+hbox//overfull box from::C::269B
+vbox//overfull box from::C::269B
+hss::C::269
+vss::C::269
+hfil::C::270
+vfil::C::270
+hbox//overfull box from::C::270E
+vbox//overfull box from::C::270E
+boxes//overfull::N::270E
+boxes//underfull::N::270E
+overfull+boxes::N::270E
+underfull+boxes::N::270E
+space//lost::N::270
+words+run+together::N::270
+control+space::N::270
+space//unwanted::N::270B
+braces//space+after::N::270
+category+codes//cause+of+unwanted+spaces::N::270
+%//to eliminate unwanted spaces::T::270
+space//unwanted::N::271E
+math+display::N::271
+abovedisplayskip::C::271
+abovedisplayshortskip::C::271
+paragraphs//shaping::N::272B
+hangindent::C::272
+leftskip::C::272
+line+breaking::N::272
+narrower::C::272
+hang::C::272
+par//when changing paragraph shape::C::272
+paragraphs//shaping::N::272E
+restricted+mode//horizontal::N::272
+rules::N::273B
+hrule::C::273
+vrule::C::273
+rules::N::273E
+headers//multiple-line::N::274B
+footers//multiple-line::N::274B
+headline::C::274
+footline::C::274
+makeheadline::C::274
+voffset::C::274
+vsize::C::274
+makefootline::C::274
+vsize::C::274
+headers//multiple-line::N::275E
+footers//multiple-line::N::275E
+braces//mismatched::N::275B
+braces//mismatched::N::275E
+\<dimen>::N::276B
+\<dimen>::N::276E
+fonts//composite::N::276B
+fonts//composite::N::277E
+verbatim+text::N::277
+computer+programs,+typesetting::N::277
+category+codes//for+verbatim+text::N::277
+obeyspaces::C::278
+obeylines::C::278
+obeywhitespace::C::278
+whitespace,+preserving::N::278
+break//end of line as::C::278
+forbidden+control+sequence::N::279
+incomplete+conditional::N::279
+macros//outer::N::279
+outer::C::279
+alignments//outer+control+sequence+in::N::279
+show::C::280
+category+codes//changing::N::280B
+computer+programs,+typesetting::N::280
+input+characters::N::280
+macros//arguments+of::N::280
+macros//parameters+of::N::280
+category+codes//changing::N::280E
+macros//making+readable::N::281B
+endlinechar::C::281
+space::C::281
+globaldefs::C::281
+macros//making+readable::N::281E
+error+messages::N::283B
+log+file//error+messages::N::283
+<to be read again>::T::285
+<inserted text>::T::286
+errorcontextlines::C::288
+<output>::T::288
+<write>::T::288
+error+messages::N::288E
+eplain.tex::T::291B
+category+codes//useful+definitions+for::N::291
+makeactive::C::291P
+letter::C::291P
+other::C::291P
+uncatcodespecials::C::291P
+^^M::T::291
+letreturn::C::291P
+gobble::C::291P
+gobbletwo::C::291P
+gobblethree::C::291P
+loggingall::C::292P
+tracingboxes::C::292P
+ehrule::C::292P
+evrule::C::292P
+rules//thickness+of::N::292
+write//writing \b\tt\%\e\ with::C::292
+%//writing out::T::292
+percentchar::C::292
+^^L::T::292
+tokstostring::C::292P
+character+tokens::N::292
+spacesub::C::293P
+ifempty::C::293P
+for::C::293
+for+loop::N::293
+obeywhitespace::C::293P
+obeylines::C::293
+obeyspaces::C::293
+space+characters::N::293
+fontdimen::C::293
+font::C::293
+letreturn::C::293
+frac::C::294P
+fractions//slashed+form::N::294
+Knuth,+Donald+E.::N::294
+LaTeX::C::294P
+AMSTeX::C::294P
+BibTeX::C::294P
+MF::C::294P
+blackbox::C::294P
+makeblankbox::C::294P
+numbername::C::295P
+testfileexistence::C::295P
+files//testing+for+existence+of::N::295
+displays,+formatting::N::295
+leftdisplays::C::295P
+centereddisplays::C::295P
+ifeqno::C::295P
+ifleqno::C::295P
+eqn::C::295P
+eq::C::295P
+leftdisplays::C::296P
+everydisplay::C::296
+displaysetup::C::296
+generaldisplay::C::296
+leftdisplays::C::297P
+displaylines::C::297
+eqalignno::C::297
+leqalignno::C::297
+halign//illegal in math mode::C::297
+vcenter::C::297
+time::C::297
+day::C::297
+month::C::297
+year::C::297
+time+of+day::N::297
+date::N::297
+monthname::C::297P
+timestring::C::297P
+timestamp::C::297P
+itemized+lists::N::298B
+enumerations::N::298B
+numberedlist::C::298P
+unorderedlist::C::298P
+li::C::298P
+listcompact::C::298P
+everydisplay::C::299
+numberedmarker::C::299P
+itemized+lists::N::300E
+enumerations::N::300E
+listing::C::300P
+setuplistinghook::C::300P
+table+of+contents::N::301
+writetocentry::C::301P
+readtocfile::C::301P
+cross-references::N::302
+xrdef::C::302P
+xrefn::C::302P
+xref::C::302P
+readreffile::C::303P
+equations,+labelling::N::304
+eqdef::C::304P
+eqref::C::304P
+eqprint::C::304P
+environments::N::304
+environment::C::305P
+newhelp::C::305
+flush+left::N::306B
+flush+right::N::306B
+centered+text::N::306B
+flushleft::C::306P
+flushright::C::306P
+center::C::306P
+aftergroup::C::307
+flush+left::N::307E
+flush+right::N::307E
+centered+text::N::307E
+makecolumns::C::307P
+valign//used in {\tt\\makecolumns}::C::308
+abovecolumnspenalty::C::308P
+footnotes::N::309
+numberedfootnote::C::309P
+vfootnote::C::309
+footnotemarkseparation::C::309P
+everyfootnote::C::309P
+double+columns::N::309
+singlecolumn::C::309P
+eplain.tex::T::311E
+primitive//command::N::313
+log+file::N::313
+ ::C::313
+!::C::313
+"::C::313
+#::T::314
+#::C::314
+$::T::314
+$::C::314
+%::T::314
+%::C::314
+&::T::314
+&::C::314
+'::T::314
+'::C::314
+*::C::314
++::C::314
+,::C::314
+-::C::314
+.::C::314
+/::C::314
+;::C::314
+=::C::314
+\::T::314
+>::C::314
+^::T::314
+^::C::314
+^^L::T::314
+^^M::T::314
+_::T::314
+_::C::314
+`::C::314
+{::T::314
+{::C::314
+|::C::314
+}::T::314
+}::C::314
+~::T::314
+~::C::314
+aa::C::314
+AA::C::314
+above::C::314
+abovedisplayshortskip::C::314
+abovedisplayskip::C::315
+abovewithdelims::C::315
+accent::C::315
+active::C::315
+acute::C::315
+adjdemerits::C::315
+advance::C::315
+advancepageno::C::315
+ae::C::315
+AE::C::315
+afterassignment::C::315
+aftergroup::C::315
+aleph::C::315
+allowbreak::C::315
+alpha::C::315
+amalg::C::315
+angle::C::315
+approx::C::315
+arccos::C::315
+arcsin::C::315
+arctan::C::315
+arg::C::315
+arrowvert::C::315
+Arrowvert::C::315
+ast::C::315
+asymp::C::315
+atop::C::315
+atopwithdelims::C::315
+b::C::315
+backslash::C::315
+badness::C::315
+bar::C::316
+baselineskip::C::316
+batchmode::C::316
+begingroup::C::316
+beginsection::C::316
+belowdisplayshortskip::C::316
+belowdisplayskip::C::316
+beta::C::316
+bf::C::316
+bffam::C::316
+bgroup::C::316
+big::C::316
+Big::C::316
+bigbreak::C::316
+bigcap::C::316
+bigcirc::C::316
+bigcup::C::316
+bigg::C::316
+Bigg::C::316
+biggl::C::316
+Biggl::C::316
+biggm::C::316
+Biggm::C::316
+biggr::C::316
+Biggr::C::316
+bigl::C::316
+Bigl::C::316
+bigm::C::316
+Bigm::C::316
+bigodot::C::316
+bigoplus::C::316
+bigotimes::C::316
+bigr::C::316
+Bigr::C::316
+bigskip::C::317
+bigskipamount::C::317
+bigsqcup::C::317
+bigtriangledown::C::317
+bigtriangleup::C::317
+biguplus::C::317
+bigvee::C::317
+bigwedge::C::317
+binoppenalty::C::317
+bmod::C::317
+bordermatrix::C::317
+bot::C::317
+botmark::C::317
+bowtie::C::317
+box::C::317
+boxmaxdepth::C::317
+brace::C::317
+bracevert::C::317
+brack::C::317
+break::C::317
+breve::C::317
+brokenpenalty::C::317
+buildrel::C::317
+bullet::C::317
+bye::C::317
+c::C::317
+cal::C::317
+cap::C::317
+cases::C::317
+catcode::C::317
+cdot::C::317
+cdotp::C::317
+cdots::C::317
+centerline::C::317
+char::C::318
+chardef::C::318
+check::C::318
+chi::C::318
+choose::C::318
+circ::C::318
+cleaders::C::318
+cleartabs::C::318
+closein::C::318
+closeout::C::318
+clubpenalty::C::318
+clubsuit::C::318
+colon::C::318
+cong::C::318
+coprod::C::318
+copy::C::318
+copyright::C::318
+cos::C::318
+cosh::C::318
+cot::C::318
+coth::C::318
+count::C::318
+countdef::C::318
+cr::C::318
+crcr::C::318
+csc::C::318
+csname::C::318
+cup::C::318
+d::C::318
+dag::C::318
+dagger::C::318
+dashv::C::318
+day::C::318
+ddag::C::318
+ddagger::C::318
+ddot::C::319
+ddots::C::319
+deadcycles::C::319
+def::C::319
+defaulthyphenchar::C::319
+defaultskewchar::C::319
+deg::C::319
+delcode::C::319
+delimiter::C::319
+delimiterfactor::C::319
+delimitershortfall::C::319
+delta::C::319
+Delta::C::319
+det::C::319
+diamond::C::319
+diamondsuit::C::319
+dim::C::319
+dimen::C::319
+dimendef::C::319
+discretionary::C::319
+displayindent::C::319
+displaylimits::C::319
+displaylines::C::319
+displaystyle::C::319
+displaywidowpenalty::C::319
+displaywidth::C::319
+div::C::319
+divide::C::319
+dot::C::319
+doteq::C::319
+dotfill::C::319
+dots::C::319
+doublehyphendemerits::C::320
+downarrow::C::320
+Downarrow::C::320
+downbracefill::C::320
+dp::C::320
+dump::C::320
+edef::C::320
+egroup::C::320
+eject::C::320
+ell::C::320
+else::C::320
+emergencystretch::C::320
+empty::C::320
+emptyset::C::320
+end::C::320
+endcsname::C::320
+endgraf::C::320
+endgroup::C::320
+endinput::C::320
+endinsert::C::320
+endline::C::320
+endlinechar::C::320
+enskip::C::320
+enspace::C::320
+epsilon::C::320
+eqalign::C::320
+eqalignno::C::320
+eqno::C::320
+equiv::C::320
+errhelp::C::320
+errmessage::C::320
+errorcontextlines::C::320
+errorstopmode::C::321
+escapechar::C::321
+eta::C::321
+everycr::C::321
+everydisplay::C::321
+everyhbox::C::321
+everyjob::C::321
+everymath::C::321
+everypar::C::321
+everyvbox::C::321
+exhyphenpenalty::C::321
+exists::C::321
+exp::C::321
+expandafter::C::321
+fam::C::321
+fi::C::321
+filbreak::C::321
+finalhyphendemerits::C::321
+firstmark::C::321
+fivebf::C::321
+fivei::C::321
+fiverm::C::321
+fivesy::C::321
+flat::C::321
+floatingpenalty::C::321
+fmtname::C::321
+fmtversion::C::321
+folio::C::321
+font::C::321
+fontdimen::C::321
+fontname::C::321
+footline::C::322
+footnote::C::322
+forall::C::322
+frenchspacing::C::322
+frown::C::322
+futurelet::C::322
+gamma::C::322
+Gamma::C::322
+gcd::C::322
+gdef::C::322
+ge::C::322
+geq::C::322
+gets::C::322
+gg::C::322
+global::C::322
+globaldefs::C::322
+goodbreak::C::322
+grave::C::322
+H::C::322
+halign::C::322
+hang::C::322
+hangafter::C::322
+hangindent::C::322
+hat::C::322
+hbadness::C::322
+hbar::C::322
+hbox::C::322
+headline::C::322
+heartsuit::C::322
+hfil::C::322
+hfill::C::322
+hfilneg::C::322
+hfuzz::C::322
+hglue::C::323
+hidewidth::C::323
+hoffset::C::323
+holdinginserts::C::323
+hom::C::323
+hookleftarrow::C::323
+hookrightarrow::C::323
+hphantom::C::323
+hrule::C::323
+hrulefill::C::323
+hsize::C::323
+hskip::C::323
+hss::C::323
+ht::C::323
+hyphenation::C::323
+hyphenchar::C::323
+hyphenpenalty::C::323
+i::C::323
+ialign::C::323
+if::C::323
+ifcase::C::323
+ifcat::C::323
+ifdim::C::323
+ifeof::C::323
+iff::C::323
+iffalse::C::323
+ifhbox::C::323
+ifhmode::C::323
+ifinner::C::323
+ifmmode::C::323
+ifnum::C::323
+ifodd::C::324
+iftrue::C::324
+ifvbox::C::324
+ifvmode::C::324
+ifvoid::C::324
+ifx::C::324
+ignorespaces::C::324
+Im::C::324
+imath::C::324
+immediate::C::324
+in::C::324
+indent::C::324
+inf::C::324
+infty::C::324
+input::C::324
+inputlineno::C::324
+insert::C::324
+insertpenalties::C::324
+int::C::324
+interlinepenalty::C::324
+iota::C::324
+it::C::324
+item::C::324
+itemitem::C::324
+itfam::C::324
+j::C::324
+jmath::C::324
+jobname::C::324
+jot::C::324
+kappa::C::324
+ker::C::324
+kern::C::324
+l::C::324
+L::C::324
+lambda::C::324
+Lambda::C::324
+land::C::325
+langle::C::325
+language::C::325
+lastbox::C::325
+lastkern::C::325
+lastpenalty::C::325
+lastskip::C::325
+lbrace::C::325
+lbrack::C::325
+lccode::C::325
+lceil::C::325
+ldotp::C::325
+ldots::C::325
+le::C::325
+leaders::C::325
+left::C::325
+leftarrow::C::325
+Leftarrow::C::325
+leftarrowfill::C::325
+leftharpoondown::C::325
+leftharpoonup::C::325
+lefthyphenmin::C::325
+leftline::C::325
+leftrightarrow::C::325
+Leftrightarrow::C::325
+leftskip::C::325
+leq::C::325
+leqalignno::C::325
+leqno::C::325
+let::C::325
+lfloor::C::325
+lg::C::325
+lgroup::C::326
+lim::C::326
+liminf::C::326
+limits::C::326
+limsup::C::326
+line::C::326
+linepenalty::C::326
+lineskip::C::326
+lineskiplimit::C::326
+ll::C::326
+llap::C::326
+lmoustache::C::326
+ln::C::326
+lnot::C::326
+log::C::326
+long::C::326
+longleftarrow::C::326
+Longleftarrow::C::326
+longleftrightarrow::C::326
+Longleftrightarrow::C::326
+longmapsto::C::326
+longrightarrow::C::326
+Longrightarrow::C::326
+loop::C::326
+looseness::C::326
+lor::C::326
+lower::C::326
+lowercase::C::326
+lq::C::326
+mag::C::326
+magnification::C::326
+magstep::C::326
+magstephalf::C::327
+mapsto::C::327
+mark::C::327
+mathaccent::C::327
+mathbin::C::327
+mathchar::C::327
+mathchardef::C::327
+mathchoice::C::327
+mathclose::C::327
+mathcode::C::327
+mathinner::C::327
+mathop::C::327
+mathopen::C::327
+mathord::C::327
+mathpalette::C::327
+mathpunct::C::327
+mathrel::C::327
+mathstrut::C::327
+mathsurround::C::327
+matrix::C::327
+max::C::327
+maxdeadcycles::C::327
+maxdepth::C::327
+maxdimen::C::327
+meaning::C::327
+medbreak::C::327
+medmuskip::C::327
+medskip::C::327
+medskipamount::C::327
+message::C::327
+mid::C::327
+midinsert::C::328
+min::C::328
+mit::C::328
+mkern::C::328
+models::C::328
+month::C::328
+moveleft::C::328
+moveright::C::328
+mp::C::328
+mskip::C::328
+mu::C::328
+multiply::C::328
+multispan::C::328
+muskip::C::328
+muskipdef::C::328
+nabla::C::328
+narrower::C::328
+natural::C::328
+nearrow::C::328
+ne::C::328
+neg::C::328
+negthinspace::C::328
+neq::C::328
+newbox::C::328
+newcount::C::328
+newdimen::C::328
+newfam::C::328
+newhelp::C::328
+newif::C::328
+newinsert::C::328
+newlanguage::C::328
+newlinechar::C::328
+newmuskip::C::328
+newread::C::328
+newskip::C::329
+newtoks::C::329
+newwrite::C::329
+ni::C::329
+noalign::C::329
+noboundary::C::329
+nobreak::C::329
+noexpand::C::329
+noindent::C::329
+nointerlineskip::C::329
+nolimits::C::329
+nonfrenchspacing::C::329
+nonscript::C::329
+nonstopmode::C::329
+nopagenumbers::C::329
+normalbaselines::C::329
+normalbaselineskip::C::329
+normalbottom::C::329
+normallineskip::C::329
+normallineskiplimit::C::329
+not::C::329
+notin::C::329
+nu::C::329
+null::C::329
+nulldelimiterspace::C::329
+nullfont::C::329
+number::C::329
+nwarrow::C::329
+o::C::330
+O::C::330
+obeylines::C::330
+obeyspaces::C::330
+odot::C::330
+oe::C::330
+OE::C::330
+offinterlineskip::C::330
+oint::C::330
+oldstyle::C::330
+omega::C::330
+Omega::C::330
+ominus::C::330
+omit::C::330
+openin::C::330
+openout::C::330
+openup::C::330
+oplus::C::330
+or::C::330
+oslash::C::330
+otimes::C::330
+outer::C::330
+output::C::330
+outputpenalty::C::330
+over::C::330
+overbrace::C::330
+overfullrule::C::330
+overleftarrow::C::330
+overline::C::330
+overrightarrow::C::330
+overwithdelims::C::330
+owns::C::330
+P::C::331
+pagedepth::C::331
+pagefilllstretch::C::331
+pagefillstretch::C::331
+pagefilstretch::C::331
+pagegoal::C::331
+pageinsert::C::331
+pageno::C::331
+pageshrink::C::331
+pagestretch::C::331
+pagetotal::C::331
+par::C::331
+parallel::C::331
+parfillskip::C::331
+parindent::C::331
+parshape::C::331
+parskip::C::331
+partial::C::331
+pausing::C::331
+penalty::C::331
+perp::C::331
+phantom::C::331
+phi::C::331
+Phi::C::331
+pi::C::331
+Pi::C::331
+plainoutput::C::331
+pm::C::332
+pmatrix::C::332
+pmod::C::332
+postdisplaypenalty::C::332
+Pr::C::332
+prec::C::332
+preceq::C::332
+predisplaypenalty::C::332
+predisplaysize::C::332
+pretolerance::C::332
+prevdepth::C::332
+prevgraf::C::332
+prime::C::332
+proclaim::C::332
+prod::C::332
+propto::C::332
+psi::C::332
+Psi::C::332
+qquad::C::332
+quad::C::332
+radical::C::332
+raggedbottom::C::332
+raggedright::C::332
+raise::C::332
+rangle::C::332
+rbrace::C::332
+rbrack::C::332
+rceil::C::332
+Re::C::332
+read::C::332
+relax::C::332
+relpenalty::C::332
+repeat::C::333
+rfloor::C::333
+rgroup::C::333
+rho::C::333
+right::C::333
+rightarrow::C::333
+Rightarrow::C::333
+rightarrowfill::C::333
+rightharpoondown::C::333
+rightharpoonup::C::333
+rightleftharpoons::C::333
+rightline::C::333
+rightskip::C::333
+righthyphenmin::C::333
+rlap::C::333
+rm::C::333
+rmoustache::C::333
+romannumeral::C::333
+root::C::333
+rq::C::333
+S::C::333
+sb::C::333
+scriptfont::C::333
+scriptscriptfont::C::333
+scriptscriptstyle::C::333
+scriptspace::C::333
+scriptstyle::C::333
+scrollmode::C::333
+searrow::C::333
+sec::C::333
+setbox::C::333
+setlanguage::C::334
+setminus::C::334
+settabs::C::334
+sevenbf::C::334
+seveni::C::334
+sevenrm::C::334
+sevensy::C::334
+sfcode::C::334
+sharp::C::334
+shipout::C::334
+show::C::334
+showbox::C::334
+showboxbreadth::C::334
+showboxdepth::C::334
+showhyphens::C::334
+showlists::C::334
+showthe::C::334
+sigma::C::334
+Sigma::C::334
+sim::C::334
+simeq::C::334
+sin::C::334
+sinh::C::334
+skew::C::334
+skewchar::C::334
+skip::C::334
+skipdef::C::334
+sl::C::334
+slash::C::334
+slfam::C::334
+smallbreak::C::334
+smallint::C::334
+smallskip::C::334
+smallskipamount::C::335
+smash::C::335
+smile::C::335
+sp::C::335
+space::C::335
+spacefactor::C::335
+spaceskip::C::335
+spadesuit::C::335
+span::C::335
+special::C::335
+splitbotmark::C::335
+splitfirstmark::C::335
+splitmaxdepth::C::335
+splittopskip::C::335
+sqcap::C::335
+sqcup::C::335
+sqrt::C::335
+sqsubseteq::C::335
+sqsupseteq::C::335
+ss::C::335
+star::C::335
+string::C::335
+strut::C::335
+subset::C::335
+subseteq::C::335
+succ::C::335
+succeq::C::335
+sum::C::335
+sup::C::335
+supereject::C::335
+supset::C::335
+supseteq::C::335
+surd::C::336
+swarrow::C::336
+t::C::336
+tabalign::C::336
+tabskip::C::336
+tan::C::336
+tanh::C::336
+tau::C::336
+tenbf::C::336
+tenex::C::336
+teni::C::336
+tenit::C::336
+tenrm::C::336
+tensl::C::336
+tensy::C::336
+tentt::C::336
+TeX::C::336
+textfont::C::336
+textindent::C::336
+textstyle::C::336
+the::C::336
+theta::C::336
+Theta::C::336
+thickmuskip::C::336
+thinmuskip::C::336
+thinspace::C::336
+tilde::C::336
+time::C::336
+times::C::336
+toks::C::336
+toksdef::C::336
+tolerance::C::336
+to::C::336
+top::C::336
+topglue::C::336
+topinsert::C::336
+topmark::C::336
+topskip::C::336
+tracingall::C::337
+tracingcommands::C::337
+tracinglostchars::C::337
+tracingmacros::C::337
+tracingonline::C::337
+tracingoutput::C::337
+tracingpages::C::337
+tracingparagraphs::C::337
+tracingrestores::C::337
+tracingstats::C::337
+triangle::C::337
+triangleleft::C::337
+triangleright::C::337
+tt::C::337
+ttfam::C::337
+ttraggedright::C::337
+u::C::337
+uccode::C::337
+uchyph::C::337
+underbar::C::337
+underbrace::C::337
+underline::C::337
+unhbox::C::337
+unhcopy::C::337
+unkern::C::337
+unpenalty::C::337
+unskip::C::337
+unvbox::C::337
+unvcopy::C::337
+uparrow::C::338
+Uparrow::C::338
+upbracefill::C::338
+updownarrow::C::338
+Updownarrow::C::338
+uplus::C::338
+uppercase::C::338
+upsilon::C::338
+Upsilon::C::338
+v::C::338
+vadjust::C::338
+valign::C::338
+varepsilon::C::338
+varphi::C::338
+varpi::C::338
+varrho::C::338
+varsigma::C::338
+vartheta::C::338
+vbadness::C::338
+vbox::C::338
+vcenter::C::338
+vdash::C::338
+vdots::C::338
+vec::C::338
+vee::C::338
+vert::C::338
+Vert::C::338
+vfil::C::338
+vfill::C::338
+vfilneg::C::338
+vfootnote::C::338
+vfuzz::C::338
+vglue::C::338
+voffset::C::339
+vphantom::C::339
+vrule::C::339
+vsize::C::339
+vskip::C::339
+vsplit::C::339
+vss::C::339
+vtop::C::339
+wd::C::339
+wedge::C::339
+widehat::C::339
+widetilde::C::339
+widowpenalty::C::339
+wlog::C::339
+wp::C::339
+wr::C::339
+write::C::339
+xdef::C::339
+xi::C::339
+Xi::C::339
+xleaders::C::339
+xspaceskip::C::339
+year::C::339
+zeta::C::339
+diacritical+marks::N::*accents
+drawing+lines::N::*rules
+drivers::N::*device+drivers
+eyes::N::*\anatomy
+foreign+languages::N::*European+languages
+intestines::N::*\anatomy
+mouth::N::*\anatomy
+page+footers::N::*footers
+page+headers::N::*headers
+paragraphs//indenting::N::*indentation
+recursive+macros::N::*macros,+recursive
+stomach::N::*\anatomy
+tables::N::*alignments
diff --git a/info/impatient/book.pdf b/info/impatient/book.pdf
index 7cfbc01f56..a7bdc6c5b6 100644
--- a/info/impatient/book.pdf
+++ b/info/impatient/book.pdf
Binary files differ
diff --git a/info/impatient/book.sdx b/info/impatient/book.sdx
index c78157987a..fcc838950e 100644
--- a/info/impatient/book.sdx
+++ b/info/impatient/book.sdx
@@ -1562,7 +1562,7 @@
\indexentry {0}{unhcopy}{C}{\ic \pp{165}\c 337}
\indexentry {0}{units of measure}{N}{\ic 60\c 61\c \pp{93}}
\indexentry {0}{unkern}{C}{\ic \pp{172}\c 337}
-\indexentry {0}{unnumberedlist}{C}{\ic \pp{298}}
+\indexentry {0}{unorderedlist}{C}{\ic \pp{298}}
\indexentry {0}{unpenalty}{C}{\ic \pp{172}\c 337}
\indexentry {0}{unskip}{C}{\ic \pp{172}\c 337}
\indexentry {0}{unvbox}{C}{\ic \pp{165}\c 337}
diff --git a/info/impatient/book.toc b/info/impatient/book.toc
new file mode 100644
index 0000000000..376caa3db1
--- /dev/null
+++ b/info/impatient/book.toc
@@ -0,0 +1,201 @@
+\tocchapterentry {Using this book}{1}{1}
+\tocsectionentry {Syntactic conventions}{}{2}
+\tocsectionentry {Descriptions of the commands}{}{3}
+\tocchapterentry {Using \TeX }{2}{7}
+\tocsectionentry {Turning input into ink}{}{7}
+\tocsubsectionentry {Programs and files you need}{}{7}
+\tocsubsectionentry {Running {\TeX }}{}{9}
+\tocsectionentry {Preparing an input file}{}{10}
+\tocsubsectionentry {Commands and control sequences}{}{10}
+\tocsubsectionentry {Arguments}{}{11}
+\tocsubsectionentry {Parameters}{}{12}
+\tocsubsectionentry {Spaces}{}{12}
+\tocsubsectionentry {Comments}{}{13}
+\tocsubsectionentry {Punctuation}{}{13}
+\tocsubsectionentry {Special characters}{}{15}
+\tocsubsectionentry {Groups}{}{15}
+\tocsubsectionentry {Math formulas}{}{16}
+\tocsectionentry {How \TeX \ works}{}{16}
+\tocsectionentry {New \TeX \ versus old {\TeX }}{}{18}
+\tocsectionentry {Resources}{}{18}
+\tocchapterentry {Examples}{3}{21}
+\tocsectionentry{Entering simple text}{}{22}
+\tocsectionentry{Indentation}{}{24}
+\tocsectionentry{Fonts and special characters}{}{26}
+\tocsectionentry{Interline spacing}{}{28}
+\tocsectionentry{Spacing, rules, and boxes}{}{30}
+\tocsectionentry{Odds and ends}{}{32}
+\tocsectionentry{Using fonts from other sources}{}{34}
+\tocsectionentry{A ruled table}{}{36}
+\tocsectionentry{Typesetting mathematics}{}{38}
+\tocsectionentry{More mathematics}{}{40}
+\tocchapterentry {Concepts}{4}{43}
+\tocchapterentry {Commands \linebreak for composing \linebreak paragraphs}{5}{97}
+\tocsectionentry {Characters and accents}{}{97}
+\tocsubsectionentry {Letters and ligatures for European alphabets}{}{97}
+\tocsubsectionentry {Special symbols}{}{98}
+\tocsubsectionentry {Arbitrary characters}{}{99}
+\tocsubsectionentry {Accents}{}{100}
+\tocsubsectionentry {Defeating boundary ligatures}{}{101}
+\tocsectionentry {Selecting fonts}{}{102}
+\tocsubsectionentry {Particular fonts}{}{102}
+\tocsubsectionentry {Type styles}{}{103}
+\tocsectionentry {Uppercase and lowercase}{}{103}
+\tocsectionentry {Interword spacing}{}{104}
+\tocsectionentry {Centering and justifying lines}{}{108}
+\tocsectionentry {Shaping paragraphs}{}{110}
+\tocsubsectionentry {Starting, ending, and indenting paragraphs}{}{110}
+\tocsubsectionentry {Shaping entire paragraphs}{}{114}
+\tocsectionentry {Line breaks}{}{120}
+\tocsubsectionentry {Encouraging or discouraging line breaks}{}{120}
+\tocsubsectionentry {Line breaking parameters}{}{123}
+\tocsubsectionentry {Hyphenation}{}{126}
+\tocsectionentry {Section headings, lists, and theorems}{}{129}
+\tocchapterentry {Commands for \linebreak composing pages}{6}{133}
+\tocsectionentry {Interline and interparagraph spaces}{}{133}
+\tocsectionentry {Page breaks}{}{136}
+\tocsubsectionentry {Encouraging or discouraging page breaks}{}{136}
+\tocsubsectionentry {Page breaking parameters}{}{138}
+\tocsectionentry {Page layout}{}{140}
+\tocsubsectionentry {Page description parameters}{}{140}
+\tocsubsectionentry {Page numbers}{}{142}
+\tocsubsectionentry {Header and footer lines}{}{143}
+\tocsubsectionentry {Marks}{}{144}
+\tocsectionentry {Insertions}{}{145}
+\tocsubsectionentry {Footnotes}{}{145}
+\tocsubsectionentry {General insertions}{}{146}
+\tocsectionentry {Modifying the output routine}{}{148}
+\tocsectionentry {Splitting vertical lists}{}{149}
+\tocchapterentry {Commands for \linebreak horizontal and \linebreak vertical modes}{7}{153}
+\tocsectionentry {Producing space}{}{153}
+\tocsubsectionentry {Fixed-width horizontal space}{}{153}
+\tocsubsectionentry {Fixed-length vertical space}{}{154}
+\tocsubsectionentry {Variable-size space}{}{155}
+\tocsectionentry {Manipulating boxes}{}{160}
+\tocsubsectionentry {Constructing hboxes and vboxes}{}{160}
+\tocsubsectionentry {Setting and retrieving the contents of boxes}{}{164}
+\tocsubsectionentry {Shifting boxes}{}{166}
+\tocsubsectionentry {Dimensions of box registers}{}{167}
+\tocsubsectionentry {Struts, phantoms, and empty boxes}{}{167}
+\tocsubsectionentry {Parameters pertaining to malformed boxes}{}{170}
+\tocsectionentry {Retrieving the last item from a list}{}{171}
+\tocsectionentry {Rules and leaders}{}{172}
+\tocsectionentry {Alignments}{}{176}
+\tocsubsectionentry {Tabbing alignments}{}{176}
+\tocsubsectionentry {General alignments}{}{178}
+\tocchapterentry {Commands \linebreak for composing \linebreak math formulas}{8}{187}
+\tocsectionentry {Simple parts of formulas}{}{187}
+\tocsubsectionentry {Greek letters}{}{187}
+\tocsubsectionentry {Miscellaneous ordinary math symbols}{}{188}
+\tocsubsectionentry {Binary operations}{}{189}
+\tocsubsectionentry {Relations}{}{190}
+\tocsubsectionentry {Left and right delimiters}{}{191}
+\tocsubsectionentry {Arrows}{}{192}
+\tocsubsectionentry {Named mathematical functions}{}{193}
+\tocsubsectionentry {Large operators}{}{194}
+\tocsubsectionentry {Punctuation}{}{196}
+\tocsectionentry {Superscripts and subscripts}{}{197}
+\tocsubsectionentry {Selecting and using styles}{}{198}
+\tocsectionentry {Compound symbols}{}{199}
+\tocsubsectionentry {Math accents}{}{199}
+\tocsubsectionentry {Fractions and other stacking operations}{}{200}
+\tocsubsectionentry {Dots}{}{203}
+\tocsubsectionentry {Delimiters}{}{204}
+\tocsubsectionentry {Matrices}{}{205}
+\tocsubsectionentry {Roots and radicals}{}{206}
+\tocsectionentry {Equation numbers}{}{207}
+\tocsectionentry {Multiline displays}{}{208}
+\tocsectionentry {Fonts in math formulas}{}{209}
+\tocsectionentry {Constructing math symbols}{}{211}
+\tocsubsectionentry {Making delimiters bigger}{}{211}
+\tocsubsectionentry {Parts of large symbols}{}{211}
+\tocsectionentry {Aligning parts of a formula}{}{212}
+\tocsubsectionentry {Aligning accents}{}{212}
+\tocsubsectionentry {Aligning material vertically}{}{213}
+\tocsectionentry {Producing spaces}{}{214}
+\tocsubsectionentry {Fixed-width math spaces}{}{214}
+\tocsubsectionentry {Variable-width math spaces}{}{215}
+\tocsubsectionentry {Spacing parameters for displays}{}{216}
+\tocsubsectionentry {Other spacing parameters for math}{}{217}
+\tocsectionentry {Categorizing math constructs}{}{218}
+\tocsectionentry {Special actions for math formulas}{}{218}
+\tocchapterentry {Commands for \linebreak general operations}{9}{221}
+\tocsectionentry {Naming and modifying fonts}{}{221}
+\tocsectionentry {Converting information to tokens}{}{224}
+\tocsubsectionentry {Numbers}{}{224}
+\tocsubsectionentry {Environmental information}{}{224}
+\tocsubsectionentry {Values of variables}{}{226}
+\tocsectionentry {Grouping}{}{227}
+\tocsectionentry {Macros}{}{230}
+\tocsubsectionentry {Defining macros}{}{230}
+\tocsubsectionentry {Other definitions}{}{232}
+\tocsubsectionentry {Controlling expansion}{}{233}
+\tocsubsectionentry {Conditional tests}{}{235}
+\tocsubsectionentry {Repeated actions}{}{240}
+\tocsubsectionentry {Doing nothing}{}{241}
+\tocsectionentry {Registers}{}{242}
+\tocsubsectionentry {Using registers}{}{242}
+\tocsubsectionentry {Naming and reserving registers, etc.}{}{244}
+\tocsubsectionentry {Doing arithmetic in registers}{}{245}
+\tocsectionentry {Ending the job}{}{246}
+\tocsectionentry {Input and output}{}{247}
+\tocsubsectionentry {Operations on input files}{}{247}
+\tocsubsectionentry {Operations on output files}{}{249}
+\tocsubsectionentry {Interpreting input characters}{}{251}
+\tocsectionentry {Controlling interaction with \TeX }{}{252}
+\tocsectionentry {Diagnostic aids}{}{253}
+\tocsubsectionentry {Displaying internal data}{}{253}
+\tocsubsectionentry {Specifying what is traced}{}{256}
+\tocsubsectionentry {Sending messages}{}{261}
+\tocsectionentry {Initializing \TeX }{}{263}
+\tocchapterentry {Tips and techniques}{10}{265}
+\tocsectionentry {Correcting bad page breaks}{}{265}
+\tocsectionentry {Preserving the end of a page}{}{267}
+\tocsectionentry {Leaving space at the top of a page}{}{267}
+\tocsectionentry {Correcting bad line breaks}{}{268}
+\tocsectionentry {Correcting overfull or underfull boxes}{}{268}
+\tocsectionentry {Recovering lost interword spaces}{}{270}
+\tocsectionentry {Avoiding unwanted interword spaces}{}{270}
+\tocsectionentry {Avoiding excess space around a display}{}{271}
+\tocsectionentry {Avoiding excess space after a paragraph}{}{271}
+\tocsectionentry {Changing the paragraph shape}{}{272}
+\tocsectionentry {Putting paragraphs into a box}{}{272}
+\tocsectionentry {Drawing lines}{}{273}
+\tocsectionentry {Creating multiline headers or footers}{}{274}
+\tocsectionentry {Finding mismatched braces}{}{275}
+\tocsectionentry {Setting dimensions}{}{276}
+\tocsectionentry {Creating composite fonts}{}{276}
+\tocsectionentry {Reproducing text verbatim}{}{277}
+\tocsectionentry {Using outer macros}{}{279}
+\tocsectionentry {Changing category codes}{}{280}
+\tocsectionentry {Making macro files more readable}{}{281}
+\tocchapterentry {Making sense \linebreak of error messages}{11}{283}
+\tocchapterentry {A compendium \linebreak of useful macros}{12}{291}
+\tocsectionentry {Preliminaries}{}{291}
+\tocsectionentry {Displays}{}{295}
+\tocsectionentry {Time of day}{}{297}
+\tocsectionentry {Lists}{}{298}
+\tocsectionentry {Verbatim listing}{}{300}
+\tocsectionentry {Tables of contents}{}{301}
+\tocsectionentry {Cross-references}{}{302}
+\tocsectionentry {Environments}{}{304}
+\tocsectionentry {Justification}{}{306}
+\tocsectionentry {Tables}{}{307}
+\tocsectionentry {Footnotes}{}{309}
+\tocsectionentry {Double columns}{}{309}
+\tocsectionentry {Finishing up}{}{311}
+\tocchapterentry {Capsule summary \linebreak of commands}{13}{313}
+\setback
+\tocchapterentry {GNU Free Documentation \linebreak License}{14}{341}
+\tocsectionentry {PREAMBLE}{}{341}
+\tocsectionentry {APPLICABILITY AND DEFINITIONS}{}{342}
+\tocsectionentry {VERBATIM COPYING}{}{343}
+\tocsectionentry {COPYING IN QUANTITY}{}{344}
+\tocsectionentry {MODIFICATIONS}{}{345}
+\tocsectionentry {COMBINING DOCUMENTS}{}{346}
+\tocsectionentry {COLLECTIONS OF DOCUMENTS}{}{347}
+\tocsectionentry {AGGREGATION WITH INDEPENDENT WORKS}{}{347}
+\tocsectionentry {TRANSLATION}{}{348}
+\tocsectionentry {TERMINATION}{}{348}
+\tocsectionentry {FUTURE REVISIONS OF THIS LICENSE}{}{349}
+\tocchapterentry {Index}{15}{353}
diff --git a/info/impatient/concepts.tex b/info/impatient/concepts.tex
index 2b38675345..ac53a01990 100644
--- a/info/impatient/concepts.tex
+++ b/info/impatient/concepts.tex
@@ -1,5 +1,6 @@
+% $Id: concepts.tex,v 1.5 2020/01/01 23:55:26 karl Exp $
% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003, 2014 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
+% Copyright (C) 2003-2020 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
% See file fdl.tex for copying conditions.
\input macros
@@ -755,7 +756,7 @@ is an instruction to \TeX\ to produce a certain character in a certain
(the usual escape character) is $92$. If
you type `|\char92 grok|', it is \emph{not} equivalent to |\grok|.
Instead it tells \TeX\ to
-typeset `$c$grok', where $c$ is the character in position $92$
+typeset `$c$\kern.075em grok', where $c$ is the character in position $92$
of the code table for the current font.
You can use the ^|\catcode| command \ctsref{\catcode} to reassign the
@@ -765,10 +766,11 @@ change the roles of various characters. For instance, if you type
to ``letter''. You then can use `|@|' in the name of a control
sequence.
-Here is a list of the category codes as they're defined in
-\refterm{\plainTeX} (see \xref{twocarets} for an explanation of
+Here is a list of the category codes defined by \TeX,
+(see \xref{twocarets} for an explanation of
the |^^| notation),
-together with the characters in each category:
+together with the characters in each category (as assigned
+by \TeX\ and \refterm{\plainTeX}):
\xrdef{catcodes}
\vskip\abovedisplayskip
@@ -841,8 +843,7 @@ is a valid group, and so are \hbox{`|[a b}|'} and~\hbox{`|{a b]|'}.
The characters in categories $11$ (letter) and $12$
(other character) act as \refterm{commands:command}
that mean
-``produce a \refterm{box} containing this character
-typeset in the current font''.
+``typeset the character with this code from the current font''.
The only distinction between letters and ``other'' characters is
that letters can appear in \refterm{control word}s but
``other'' characters~can't.
@@ -874,7 +875,7 @@ code until its \emph{second} look at the character. For example:
\csdisplay
\def\foo{\catcode`\$ = 11 }% Make $ be a letter.
\foo$ % Produces a `$'.
-\foo$ % Undefined control sequence `foo$'.
+\foo$ % Undefined control sequence `\foo$'.
|
\noindent
This bit of \TeX\ code produces `\$' in the typeset output. When
@@ -968,11 +969,12 @@ notation you'll find it handy to have a table of \ascii\ codes.
An output character is a character to be typeset.
A command for producing an output character has the meaning
-``Produce a \refterm{box} containing
+``Typeset
character number $n$ from the current \refterm{font}'',
where $n$ is determined by the command.
-\TeX\ produces your typeset document by combining such boxes with
-other typographical \hbox{elements} and arranging them
+\TeX\ produces your typeset document by combining such characters
+with
+other typographical \hbox{elements} in boxes, and arranging them
on the page.
An input character whose category code is $11$ (^{letter}) or $12$ (other)
@@ -992,7 +994,7 @@ command `|\char |$n$' \ctsref{\char}, ^^|\char| where $n$ is a
The \defterm{class} of a \refterm{character} specifies that character's
role in math formulas. The class of a character is encoded in its
\refterm{mathcode}. ^^{mathcodes//class encoded in} For example, the
-equals sign `|=|' is in class $3$ (Relation). \TeX\ uses its knowledge
+equals sign `|=|' has class $3$ (Relation). \TeX\ uses its knowledge
of character classes to decide how much space to put between different
components of a math formula. \margin{clarifying material added} For
example, here's a math formula shown first as \TeX\ normally prints it
diff --git a/info/impatient/config.tex b/info/impatient/config.tex
index e69de29bb2..1f8330c360 100644
--- a/info/impatient/config.tex
+++ b/info/impatient/config.tex
@@ -0,0 +1,7 @@
+% $Id: config.tex,v 1.2 2020/01/03 22:06:33 karl Exp $
+% This is part of the book TeX for the Impatient.
+% Copyright (C) 2003-2020 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
+% See file fdl.tex for copying conditions.
+%
+% Configuration overrides for typesetting TeX for the Impatient.
+% See macros.tex for some of the possible conditionals.
diff --git a/info/impatient/configure b/info/impatient/configure
deleted file mode 100644
index 6d33a2f9a0..0000000000
--- a/info/impatient/configure
+++ /dev/null
@@ -1,3172 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for teximpatient 2.4.
-#
-# Report bugs to <impatient@tug.org>.
-#
-#
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
-#
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-# Use a proper internal environment variable to ensure we don't fall
- # into an infinite loop, continuously re-executing ourselves.
- if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
- _as_can_reexec=no; export _as_can_reexec;
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
- fi
- # We don't want this to propagate to other subprocesses.
- { _as_can_reexec=; unset _as_can_reexec;}
-if test "x$CONFIG_SHELL" = x; then
- as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '\${1+\"\$@\"}'='\"\$@\"'
- setopt NO_GLOB_SUBST
-else
- case \`(set -o) 2>/dev/null\` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-"
- as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-
-else
- exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1
-test -x / || exit 1"
- as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
- as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
- eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
- test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1"
- if (eval "$as_required") 2>/dev/null; then :
- as_have_required=yes
-else
- as_have_required=no
-fi
- if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- as_found=:
- case $as_dir in #(
- /*)
- for as_base in sh bash ksh sh5; do
- # Try only shells that exist, to save several forks.
- as_shell=$as_dir/$as_base
- if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
- CONFIG_SHELL=$as_shell as_have_required=yes
- if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
- break 2
-fi
-fi
- done;;
- esac
- as_found=false
-done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
- { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
- CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
-IFS=$as_save_IFS
-
-
- if test "x$CONFIG_SHELL" != x; then :
- export CONFIG_SHELL
- # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
- *v*x* | *x*v* ) as_opts=-vx ;;
- *v* ) as_opts=-v ;;
- *x* ) as_opts=-x ;;
- * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
-fi
-
- if test x$as_have_required = xno; then :
- $as_echo "$0: This script requires a shell more modern than all"
- $as_echo "$0: the shells that I found on your system."
- if test x${ZSH_VERSION+set} = xset ; then
- $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
- $as_echo "$0: be upgraded to zsh 4.3.4 or later."
- else
- $as_echo "$0: Please tell bug-autoconf@gnu.org and impatient@tug.org
-$0: about your system, including any error possibly output
-$0: before this message. Then install a modern shell, or
-$0: manually run the script under such a shell if you do
-$0: have one."
- fi
- exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- $as_echo "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
- as_lineno_1=$LINENO as_lineno_1a=$LINENO
- as_lineno_2=$LINENO as_lineno_2a=$LINENO
- eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
- test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
- # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
- sed -n '
- p
- /[$]LINENO/=
- ' <$as_myself |
- sed '
- s/[$]LINENO.*/&-/
- t lineno
- b
- :lineno
- N
- :loop
- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
- t loop
- s/-\n.*//
- ' >$as_me.lineno &&
- chmod +x "$as_me.lineno" ||
- { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
- # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
- # already done that, so ensure we don't try to do so again and fall
- # in an infinite loop. This has already happened in practice.
- _as_can_reexec=no; export _as_can_reexec
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
- # original and so on. Autoconf is especially sensitive to this).
- . "./$as_me.lineno"
- # Exit status is that of the last command.
- exit
-}
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-test -n "$DJDIR" || exec 7<&0 </dev/null
-exec 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-
-# Identity of this package.
-PACKAGE_NAME='teximpatient'
-PACKAGE_TARNAME='teximpatient'
-PACKAGE_VERSION='2.4'
-PACKAGE_STRING='teximpatient 2.4'
-PACKAGE_BUGREPORT='impatient@tug.org'
-PACKAGE_URL=''
-
-ac_unique_file="book.tex"
-ac_subst_vars='LTLIBOBJS
-LIBOBJS
-HTTEX
-PDFTEX
-TEX
-ICON
-MKDIR_P
-INSTALL_DATA
-INSTALL_SCRIPT
-INSTALL_PROGRAM
-target_alias
-host_alias
-build_alias
-LIBS
-ECHO_T
-ECHO_N
-ECHO_C
-DEFS
-mandir
-localedir
-libdir
-psdir
-pdfdir
-dvidir
-htmldir
-infodir
-docdir
-oldincludedir
-includedir
-localstatedir
-sharedstatedir
-sysconfdir
-datadir
-datarootdir
-libexecdir
-sbindir
-bindir
-program_transform_name
-prefix
-exec_prefix
-PACKAGE_URL
-PACKAGE_BUGREPORT
-PACKAGE_STRING
-PACKAGE_VERSION
-PACKAGE_TARNAME
-PACKAGE_NAME
-PATH_SEPARATOR
-SHELL'
-ac_subst_files=''
-ac_user_opts='
-enable_option_checking
-'
- ac_precious_vars='build_alias
-host_alias
-target_alias'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-ac_unrecognized_opts=
-ac_unrecognized_sep=
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval $ac_prev=\$ac_option
- ac_prev=
- continue
- fi
-
- case $ac_option in
- *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
- *=) ac_optarg= ;;
- *) ac_optarg=yes ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case $ac_dashdash$ac_option in
- --)
- ac_dashdash=yes ;;
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build_alias=$ac_optarg ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file=$ac_optarg ;;
-
- --config-cache | -C)
- cache_file=config.cache ;;
-
- -datadir | --datadir | --datadi | --datad)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=*)
- datadir=$ac_optarg ;;
-
- -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
- | --dataroo | --dataro | --datar)
- ac_prev=datarootdir ;;
- -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
- | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
- datarootdir=$ac_optarg ;;
-
- -disable-* | --disable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=no ;;
-
- -docdir | --docdir | --docdi | --doc | --do)
- ac_prev=docdir ;;
- -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
- docdir=$ac_optarg ;;
-
- -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
- ac_prev=dvidir ;;
- -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
- dvidir=$ac_optarg ;;
-
- -enable-* | --enable-*)
- ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid feature name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"enable_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval enable_$ac_useropt=\$ac_optarg ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he | -h)
- ac_init_help=long ;;
- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
- ac_init_help=recursive ;;
- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
- ac_init_help=short ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
-
- -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
- ac_prev=htmldir ;;
- -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
- | --ht=*)
- htmldir=$ac_optarg ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
- -localedir | --localedir | --localedi | --localed | --locale)
- ac_prev=localedir ;;
- -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
- localedir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst | --locals)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix=$ac_optarg ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix=$ac_optarg ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
- -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
- ac_prev=pdfdir ;;
- -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
- pdfdir=$ac_optarg ;;
-
- -psdir | --psdir | --psdi | --psd | --ps)
- ac_prev=psdir ;;
- -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
- psdir=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir=$ac_optarg ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers | -V)
- ac_init_version=: ;;
-
- -with-* | --with-*)
- ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=\$ac_optarg ;;
-
- -without-* | --without-*)
- ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
- as_fn_error $? "invalid package name: $ac_useropt"
- ac_useropt_orig=$ac_useropt
- ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
- case $ac_user_opts in
- *"
-"with_$ac_useropt"
-"*) ;;
- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
- ac_unrecognized_sep=', ';;
- esac
- eval with_$ac_useropt=no ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes=$ac_optarg ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries=$ac_optarg ;;
-
- -*) as_fn_error $? "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information"
- ;;
-
- *=*)
- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
- # Reject names that are not valid shell variable names.
- case $ac_envvar in #(
- '' | [0-9]* | *[!_$as_cr_alnum]* )
- as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
- esac
- eval $ac_envvar=\$ac_optarg
- export $ac_envvar ;;
-
- *)
- # FIXME: should be removed in autoconf 3.0.
- $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
- : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
- as_fn_error $? "missing argument to $ac_option"
-fi
-
-if test -n "$ac_unrecognized_opts"; then
- case $enable_option_checking in
- no) ;;
- fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
- *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
- esac
-fi
-
-# Check all directory arguments for consistency.
-for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
- datadir sysconfdir sharedstatedir localstatedir includedir \
- oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir
-do
- eval ac_val=\$$ac_var
- # Remove trailing slashes.
- case $ac_val in
- */ )
- ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
- eval $ac_var=\$ac_val;;
- esac
- # Be sure to have absolute directory names.
- case $ac_val in
- [\\/$]* | ?:[\\/]* ) continue;;
- NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
- esac
- as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
- if test "x$build_alias" = x; then
- cross_compiling=maybe
- elif test "x$build_alias" != "x$host_alias"; then
- cross_compiling=yes
- fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
- as_fn_error $? "working directory cannot be determined"
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
- as_fn_error $? "pwd does not report name of working directory"
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then the parent directory.
- ac_confdir=`$as_dirname -- "$as_myself" ||
-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_myself" : 'X\(//\)[^/]' \| \
- X"$as_myself" : 'X\(//\)$' \| \
- X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r "$srcdir/$ac_unique_file"; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
- test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
- as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
- cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
- pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
- srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
- eval ac_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_env_${ac_var}_value=\$${ac_var}
- eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
- eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat <<_ACEOF
-\`configure' configures teximpatient 2.4 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE. See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
- -h, --help display this help and exit
- --help=short display options specific to this package
- --help=recursive display the short help of all the included packages
- -V, --version display version information and exit
- -q, --quiet, --silent do not print \`checking ...' messages
- --cache-file=FILE cache test results in FILE [disabled]
- -C, --config-cache alias for \`--cache-file=config.cache'
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
-Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
- --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
- --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
- --infodir=DIR info documentation [DATAROOTDIR/info]
- --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
- --mandir=DIR man documentation [DATAROOTDIR/man]
- --docdir=DIR documentation root [DATAROOTDIR/doc/teximpatient]
- --htmldir=DIR html documentation [DOCDIR]
- --dvidir=DIR dvi documentation [DOCDIR]
- --pdfdir=DIR pdf documentation [DOCDIR]
- --psdir=DIR ps documentation [DOCDIR]
-_ACEOF
-
- cat <<\_ACEOF
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
- case $ac_init_help in
- short | recursive ) echo "Configuration of teximpatient 2.4:";;
- esac
- cat <<\_ACEOF
-
-Report bugs to <impatient@tug.org>.
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
- # If there are subdirs, report their specific --help.
- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
- test -d "$ac_dir" ||
- { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
- continue
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
- cd "$ac_dir" || { ac_status=$?; continue; }
- # Check for guested configure.
- if test -f "$ac_srcdir/configure.gnu"; then
- echo &&
- $SHELL "$ac_srcdir/configure.gnu" --help=recursive
- elif test -f "$ac_srcdir/configure"; then
- echo &&
- $SHELL "$ac_srcdir/configure" --help=recursive
- else
- $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
- fi || ac_status=$?
- cd "$ac_pwd" || { ac_status=$?; break; }
- done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
- cat <<\_ACEOF
-teximpatient configure 2.4
-generated by GNU Autoconf 2.69
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
- exit
-fi
-
-## ------------------------ ##
-## Autoconf initialization. ##
-## ------------------------ ##
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by teximpatient $as_me 2.4, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-
-/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- $as_echo "PATH: $as_dir"
- done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
- for ac_arg
- do
- case $ac_arg in
- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
- *\'*)
- ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
- 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
- 2)
- as_fn_append ac_configure_args1 " '$ac_arg'"
- if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
- else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
- fi
- as_fn_append ac_configure_args " '$ac_arg'"
- ;;
- esac
- done
-done
-{ ac_configure_args0=; unset ac_configure_args0;}
-{ ac_configure_args1=; unset ac_configure_args1;}
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- $as_echo "## ---------------- ##
-## Cache variables. ##
-## ---------------- ##"
- echo
- # The following way of writing the cache mishandles newlines in values,
-(
- for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
- (set) 2>&1 |
- case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- sed -n \
- "s/'\''/'\''\\\\'\'''\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
- ;; #(
- *)
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-)
- echo
-
- $as_echo "## ----------------- ##
-## Output variables. ##
-## ----------------- ##"
- echo
- for ac_var in $ac_subst_vars
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- $as_echo "## ------------------- ##
-## File substitutions. ##
-## ------------------- ##"
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- $as_echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- $as_echo "## ----------- ##
-## confdefs.h. ##
-## ----------- ##"
- echo
- cat confdefs.h
- echo
- fi
- test "$ac_signal" != 0 &&
- $as_echo "$as_me: caught signal $ac_signal"
- $as_echo "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core core.conftest.* &&
- rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-$as_echo "/* confdefs.h */" > confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
-if test -n "$CONFIG_SITE"; then
- # We do not want a PATH search for config.site.
- case $CONFIG_SITE in #((
- -*) ac_site_file1=./$CONFIG_SITE;;
- */*) ac_site_file1=$CONFIG_SITE;;
- *) ac_site_file1=./$CONFIG_SITE;;
- esac
-elif test "x$prefix" != xNONE; then
- ac_site_file1=$prefix/share/config.site
- ac_site_file2=$prefix/etc/config.site
-else
- ac_site_file1=$ac_default_prefix/share/config.site
- ac_site_file2=$ac_default_prefix/etc/config.site
-fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-do
- test "x$ac_site_file" = xNONE && continue
- if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
- sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file" \
- || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
- fi
-done
-
-if test -r "$cache_file"; then
- # Some versions of bash will fail to source /dev/null (special files
- # actually), so we avoid doing that. DJGPP emulates it as a regular file.
- if test /dev/null != "$cache_file" && test -f "$cache_file"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
- [\\/]* | ?:[\\/]* ) . "$cache_file";;
- *) . "./$cache_file";;
- esac
- fi
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
- >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
- eval ac_old_val=\$ac_cv_env_${ac_var}_value
- eval ac_new_val=\$ac_env_${ac_var}_value
- case $ac_old_set,$ac_new_set in
- set,)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,set)
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
- ac_cache_corrupted=: ;;
- ,);;
- *)
- if test "x$ac_old_val" != "x$ac_new_val"; then
- # differences in whitespace do not lead to failure.
- ac_old_val_w=`echo x $ac_old_val`
- ac_new_val_w=`echo x $ac_new_val`
- if test "$ac_old_val_w" != "$ac_new_val_w"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- ac_cache_corrupted=:
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
- eval $ac_var=\$ac_old_val
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
-$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
-$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}
- fi;;
- esac
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
- *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
- *) as_fn_append ac_configure_args " '$ac_arg'" ;;
- esac
- fi
-done
-if $ac_cache_corrupted; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
-fi
-## -------------------- ##
-## Main body of script. ##
-## -------------------- ##
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-ac_aux_dir=
-for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
- if test -f "$ac_dir/install-sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f "$ac_dir/install.sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- elif test -f "$ac_dir/shtool"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/shtool install -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
-fi
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
-
-
-# Find a good install program. We prefer a C program (faster),
-# so one script is as good as another. But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
- ./ | .// | /[cC]/* | \
- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
- ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
- /usr/ucb/* ) ;;
- *)
- # OSF1 and SCO ODT 3.0 have their own names for install.
- # Don't use installbsd from OSF since it installs stuff as root
- # by default.
- for ac_prog in ginstall scoinst install; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- rm -rf conftest.one conftest.two conftest.dir
- echo one > conftest.one
- echo two > conftest.two
- mkdir conftest.dir
- if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
- test -s conftest.one && test -s conftest.two &&
- test -s conftest.dir/conftest.one &&
- test -s conftest.dir/conftest.two
- then
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
- fi
- done
- done
- ;;
-esac
-
- done
-IFS=$as_save_IFS
-
-rm -rf conftest.one conftest.two conftest.dir
-
-fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL=$ac_cv_path_install
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- INSTALL=$ac_install_sh
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
-if test -z "$MKDIR_P"; then
- if ${ac_cv_path_mkdir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in mkdir gmkdir; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
- case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
- 'mkdir (GNU coreutils) '* | \
- 'mkdir (coreutils) '* | \
- 'mkdir (fileutils) '4.1*)
- ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
- break 3;;
- esac
- done
- done
- done
-IFS=$as_save_IFS
-
-fi
-
- test -d ./--version && rmdir ./--version
- if test "${ac_cv_path_mkdir+set}" = set; then
- MKDIR_P="$ac_cv_path_mkdir -p"
- else
- # As a last resort, use the slow shell script. Don't cache a
- # value for MKDIR_P within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the value is a relative name.
- MKDIR_P="$ac_install_sh -d"
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
-$as_echo "$MKDIR_P" >&6; }
-
-# Extract the first word of "icon", so it can be a program name with args.
-set dummy icon; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ICON+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $ICON in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_ICON="$ICON" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_ICON="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-ICON=$ac_cv_path_ICON
-if test -n "$ICON"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ICON" >&5
-$as_echo "$ICON" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "tex", so it can be a program name with args.
-set dummy tex; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_TEX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $TEX in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_TEX="$TEX" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_TEX="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-TEX=$ac_cv_path_TEX
-if test -n "$TEX"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TEX" >&5
-$as_echo "$TEX" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "pdftex", so it can be a program name with args.
-set dummy pdftex; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PDFTEX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $PDFTEX in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_PDFTEX="$PDFTEX" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_PDFTEX="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-PDFTEX=$ac_cv_path_PDFTEX
-if test -n "$PDFTEX"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PDFTEX" >&5
-$as_echo "$PDFTEX" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-# Extract the first word of "httex", so it can be a program name with args.
-set dummy httex; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_HTTEX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $HTTEX in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_HTTEX="$HTTEX" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_HTTEX="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-HTTEX=$ac_cv_path_HTTEX
-if test -n "$HTTEX"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HTTEX" >&5
-$as_echo "$HTTEX" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-ac_config_files="$ac_config_files Makefile"
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems. If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
- for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
-
- (set) 2>&1 |
- case $as_nl`(ac_space=' '; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- # `set' does not quote correctly, so add quotes: double-quote
- # substitution turns \\\\ into \\, and sed turns \\ into \.
- sed -n \
- "s/'/'\\\\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
- ;; #(
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-) |
- sed '
- /^ac_cv_env_/b end
- t clear
- :clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
- t end
- s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
- :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
- if test -w "$cache_file"; then
- if test "x$cache_file" != "x/dev/null"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
- if test ! -f "$cache_file" || test -h "$cache_file"; then
- cat confcache >"$cache_file"
- else
- case $cache_file in #(
- */* | ?:*)
- mv -f confcache "$cache_file"$$ &&
- mv -f "$cache_file"$$ "$cache_file" ;; #(
- *)
- mv -f confcache "$cache_file" ;;
- esac
- fi
- fi
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
- fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# Transform confdefs.h into DEFS.
-# Protect against shell expansion while executing Makefile rules.
-# Protect against Makefile macro expansion.
-#
-# If the first sed substitution is executed (which looks for macros that
-# take arguments), then branch to the quote section. Otherwise,
-# look for a macro that doesn't take arguments.
-ac_script='
-:mline
-/\\$/{
- N
- s,\\\n,,
- b mline
-}
-t clear
-:clear
-s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g
-t quote
-s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g
-t quote
-b any
-:quote
-s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g
-s/\[/\\&/g
-s/\]/\\&/g
-s/\$/$$/g
-H
-:any
-${
- g
- s/^\n//
- s/\n/ /g
- p
-}
-'
-DEFS=`sed -n "$ac_script" confdefs.h`
-
-
-ac_libobjs=
-ac_ltlibobjs=
-U=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
- # 1. Remove the extension, and $U if already installed.
- ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
- ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
- # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
- # will be set to the directory where LIBOBJS objects are built.
- as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
- as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-: "${CONFIG_STATUS=./config.status}"
-ac_write_fail=0
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-as_write_fail=0
-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
- emulate sh
- NULLCMD=:
- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
- setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in #(
- *posix*) :
- set -o posix ;; #(
- *) :
- ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
- && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='print -r --'
- as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
- as_echo='printf %s\n'
- as_echo_n='printf %s'
-else
- if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
- as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
- as_echo_n='/usr/ucb/echo -n'
- else
- as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
- as_echo_n_body='eval
- arg=$1;
- case $arg in #(
- *"$as_nl"*)
- expr "X$arg" : "X\\(.*\\)$as_nl";
- arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
- esac;
- expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
- '
- export as_echo_n_body
- as_echo_n='sh -c $as_echo_n_body as_echo'
- fi
- export as_echo_body
- as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- PATH_SEPARATOR=:
- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
- PATH_SEPARATOR=';'
- }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order. Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" "" $as_nl"
-
-# Find who we are. Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
- *[\\/]* ) as_myself=$0 ;;
- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
- as_myself=$0
-fi
-if test ! -f "$as_myself"; then
- $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
- exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there. '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
- as_status=$1; test $as_status -eq 0 && as_status=1
- if test "$4"; then
- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- $as_echo "$as_me: error: $2" >&2
- as_fn_exit $as_status
-} # as_fn_error
-
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
- return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
- set +e
- as_fn_set_status $1
- exit $1
-} # as_fn_exit
-
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
- { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
- eval 'as_fn_append ()
- {
- eval $1+=\$2
- }'
-else
- as_fn_append ()
- {
- eval $1=\$$1\$2
- }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
- eval 'as_fn_arith ()
- {
- as_val=$(( $* ))
- }'
-else
- as_fn_arith ()
- {
- as_val=`expr "$@" || test $? -eq 1`
- }
-fi # as_fn_arith
-
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
- test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
-else
- as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
-else
- as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
- as_dirname=dirname
-else
- as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{
- s//\1/
- q
- }
- /^X\/\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\/\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
- rm -f conf$$.dir/conf$$.file
-else
- rm -f conf$$.dir
- mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
- if ln -s conf$$.file conf$$ 2>/dev/null; then
- as_ln_s='ln -s'
- # ... but there are two gotchas:
- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
- # In both cases, we have to default to `cp -pR'.
- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -pR'
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -pR'
- fi
-else
- as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
- case $as_dir in #(
- -*) as_dir=./$as_dir;;
- esac
- test -d "$as_dir" || eval $as_mkdir_p || {
- as_dirs=
- while :; do
- case $as_dir in #(
- *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
- *) as_qdir=$as_dir;;
- esac
- as_dirs="'$as_qdir' $as_dirs"
- as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- test -d "$as_dir" && break
- done
- test -z "$as_dirs" || eval "mkdir $as_dirs"
- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-if mkdir -p . 2>/dev/null; then
- as_mkdir_p='mkdir -p "$as_dir"'
-else
- test -d ./-p && rmdir ./-p
- as_mkdir_p=false
-fi
-
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
- test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-## ----------------------------------- ##
-## Main body of $CONFIG_STATUS script. ##
-## ----------------------------------- ##
-_ASEOF
-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# Save the log message, to keep $0 and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by teximpatient $as_me 2.4, which was
-generated by GNU Autoconf 2.69. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
- CONFIG_LINKS = $CONFIG_LINKS
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-case $ac_config_files in *"
-"*) set x $ac_config_files; shift; ac_config_files=$*;;
-esac
-
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-ac_cs_usage="\
-\`$as_me' instantiates files and other configuration actions
-from templates according to the current configuration. Unless the files
-and actions are specified as TAGs, all are instantiated by default.
-
-Usage: $0 [OPTION]... [TAG]...
-
- -h, --help print this help, then exit
- -V, --version print version number and configuration settings, then exit
- --config print configuration, then exit
- -q, --quiet, --silent
- do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
- --file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
-
-Configuration files:
-$config_files
-
-Report bugs to <impatient@tug.org>."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-ac_cs_version="\\
-teximpatient config.status 2.4
-configured by $0, generated by GNU Autoconf 2.69,
- with options \\"\$ac_cs_config\\"
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-INSTALL='$INSTALL'
-MKDIR_P='$MKDIR_P'
-test -n "\$AWK" || AWK=awk
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# The default lists apply if the user does not specify any file.
-ac_need_defaults=:
-while test $# != 0
-do
- case $1 in
- --*=?*)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
- ac_shift=:
- ;;
- --*=)
- ac_option=`expr "X$1" : 'X\([^=]*\)='`
- ac_optarg=
- ac_shift=:
- ;;
- *)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
- esac
-
- case $ac_option in
- # Handling of the options.
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
- --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
- $as_echo "$ac_cs_version"; exit ;;
- --config | --confi | --conf | --con | --co | --c )
- $as_echo "$ac_cs_config"; exit ;;
- --debug | --debu | --deb | --de | --d | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
- case $ac_optarg in
- *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
- '') as_fn_error $? "missing file argument" ;;
- esac
- as_fn_append CONFIG_FILES " '$ac_optarg'"
- ac_need_defaults=false;;
- --he | --h | --help | --hel | -h )
- $as_echo "$ac_cs_usage"; exit ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
- -*) as_fn_error $? "unrecognized option: \`$1'
-Try \`$0 --help' for more information." ;;
-
- *) as_fn_append ac_config_targets " $1"
- ac_need_defaults=false ;;
-
- esac
- shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
- exec 6>/dev/null
- ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-if \$ac_cs_recheck; then
- set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
- shift
- \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
- CONFIG_SHELL='$SHELL'
- export CONFIG_SHELL
- exec "\$@"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-exec 5>>config.log
-{
- echo
- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
- $as_echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
- case $ac_config_target in
- "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-
- *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
- esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used. Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-fi
-
-# Have a temporary directory for convenience. Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
- tmp= ac_tmp=
- trap 'exit_status=$?
- : "${ac_tmp:=$tmp}"
- { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
-' 0
- trap 'as_fn_exit 1' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
- tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
- test -d "$tmp"
-} ||
-{
- tmp=./conf$$-$RANDOM
- (umask 077 && mkdir "$tmp")
-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
-ac_tmp=$tmp
-
-# Set up the scripts for CONFIG_FILES section.
-# No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with `./config.status config.h'.
-if test -n "$CONFIG_FILES"; then
-
-
-ac_cr=`echo X | tr X '\015'`
-# On cygwin, bash can eat \r inside `` if the user requested igncr.
-# But we know of no other shell where ac_cr would be empty at this
-# point, so we can use a bashism as a fallback.
-if test "x$ac_cr" = x; then
- eval ac_cr=\$\'\\r\'
-fi
-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
- ac_cs_awk_cr='\\r'
-else
- ac_cs_awk_cr=$ac_cr
-fi
-
-echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
-_ACEOF
-
-
-{
- echo "cat >conf$$subs.awk <<_ACEOF" &&
- echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
- echo "_ACEOF"
-} >conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
- . ./conf$$subs.sh ||
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-
- ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
- if test $ac_delim_n = $ac_delim_num; then
- break
- elif $ac_last_try; then
- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
- else
- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
-done
-rm -f conf$$subs.sh
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
-_ACEOF
-sed -n '
-h
-s/^/S["/; s/!.*/"]=/
-p
-g
-s/^[^!]*!//
-:repl
-t repl
-s/'"$ac_delim"'$//
-t delim
-:nl
-h
-s/\(.\{148\}\)..*/\1/
-t more1
-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
-p
-n
-b repl
-:more1
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t nl
-:delim
-h
-s/\(.\{148\}\)..*/\1/
-t more2
-s/["\\]/\\&/g; s/^/"/; s/$/"/
-p
-b
-:more2
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t delim
-' <conf$$subs.awk | sed '
-/^[^""]/{
- N
- s/\n//
-}
-' >>$CONFIG_STATUS || ac_write_fail=1
-rm -f conf$$subs.awk
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACAWK
-cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
- for (key in S) S_is_set[key] = 1
- FS = ""
-
-}
-{
- line = $ 0
- nfields = split(line, field, "@")
- substed = 0
- len = length(field[1])
- for (i = 2; i < nfields; i++) {
- key = field[i]
- keylen = length(key)
- if (S_is_set[key]) {
- value = S[key]
- line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
- len += length(value) + length(field[++i])
- substed = 1
- } else
- len += 1 + keylen
- }
-
- print line
-}
-
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
- sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
-else
- cat
-fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
- || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
-_ACEOF
-
-# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
-h
-s///
-s/^/:/
-s/[ ]*$/:/
-s/:\$(srcdir):/:/g
-s/:\${srcdir}:/:/g
-s/:@srcdir@:/:/g
-s/^:*//
-s/:*$//
-x
-s/\(=[ ]*\).*/\1/
-G
-s/\n//
-s/^[^=]*=[ ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-fi # test -n "$CONFIG_FILES"
-
-
-eval set X " :F $CONFIG_FILES "
-shift
-for ac_tag
-do
- case $ac_tag in
- :[FHLC]) ac_mode=$ac_tag; continue;;
- esac
- case $ac_mode$ac_tag in
- :[FHL]*:*);;
- :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
- :[FH]-) ac_tag=-:-;;
- :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
- esac
- ac_save_IFS=$IFS
- IFS=:
- set x $ac_tag
- IFS=$ac_save_IFS
- shift
- ac_file=$1
- shift
-
- case $ac_mode in
- :L) ac_source=$1;;
- :[FH])
- ac_file_inputs=
- for ac_f
- do
- case $ac_f in
- -) ac_f="$ac_tmp/stdin";;
- *) # Look for the file first in the build tree, then in the source tree
- # (if the path is not absolute). The absolute path cannot be DOS-style,
- # because $ac_f cannot contain `:'.
- test -f "$ac_f" ||
- case $ac_f in
- [\\/$]*) false;;
- *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
- esac ||
- as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
- esac
- case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
- as_fn_append ac_file_inputs " '$ac_f'"
- done
-
- # Let's still pretend it is `configure' which instantiates (i.e., don't
- # use $as_me), people would be surprised to read:
- # /* config.h. Generated by config.status. */
- configure_input='Generated from '`
- $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
- `' by configure.'
- if test x"$ac_file" != x-; then
- configure_input="$ac_file. $configure_input"
- { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
- fi
- # Neutralize special characters interpreted by sed in replacement strings.
- case $configure_input in #(
- *\&* | *\|* | *\\* )
- ac_sed_conf_input=`$as_echo "$configure_input" |
- sed 's/[\\\\&|]/\\\\&/g'`;; #(
- *) ac_sed_conf_input=$configure_input;;
- esac
-
- case $ac_tag in
- *:-:* | *:-) cat >"$ac_tmp/stdin" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
- esac
- ;;
- esac
-
- ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'`
- as_dir="$ac_dir"; as_fn_mkdir_p
- ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
- ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
- # A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
- case $ac_top_builddir_sub in
- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
- esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
- .) # We are building in place.
- ac_srcdir=.
- ac_top_srcdir=$ac_top_builddir_sub
- ac_abs_top_srcdir=$ac_pwd ;;
- [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
- ac_top_srcdir=$srcdir
- ac_abs_top_srcdir=$srcdir ;;
- *) # Relative name.
- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
- ac_top_srcdir=$ac_top_build_prefix$srcdir
- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
- case $ac_mode in
- :F)
- #
- # CONFIG_FILE
- #
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
- *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
- esac
- ac_MKDIR_P=$MKDIR_P
- case $MKDIR_P in
- [\\/$]* | ?:[\\/]* ) ;;
- */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
- esac
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-ac_sed_dataroot='
-/datarootdir/ {
- p
- q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p'
-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- ac_datarootdir_hack='
- s&@datadir@&$datadir&g
- s&@docdir@&$docdir&g
- s&@infodir@&$infodir&g
- s&@localedir@&$localedir&g
- s&@mandir@&$mandir&g
- s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_sed_extra="$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s|@configure_input@|$ac_sed_conf_input|;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@top_build_prefix@&$ac_top_build_prefix&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-s&@INSTALL@&$ac_INSTALL&;t t
-s&@MKDIR_P@&$ac_MKDIR_P&;t t
-$ac_datarootdir_hack
-"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
- >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
- { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
- "$ac_tmp/out"`; test -z "$ac_out"; } &&
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined. Please make sure it is defined" >&2;}
-
- rm -f "$ac_tmp/stdin"
- case $ac_file in
- -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
- *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
- esac \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- ;;
-
-
-
- esac
-
-done # for ac_tag
-
-
-as_fn_exit 0
-_ACEOF
-ac_clean_files=$ac_clean_files_save
-
-test $ac_write_fail = 0 ||
- as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded. So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status. When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
- ac_cs_success=:
- ac_config_status_args=
- test "$silent" = yes &&
- ac_config_status_args="$ac_config_status_args --quiet"
- exec 5>/dev/null
- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
- exec 5>>config.log
- # Use ||, not &&, to avoid exiting from the if with $? = 1, which
- # would make configure fail if this is the last instruction.
- $ac_cs_success || as_fn_exit 1
-fi
-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
-fi
-
diff --git a/info/impatient/configure.ac b/info/impatient/configure.ac
deleted file mode 100644
index b3d1286f7b..0000000000
--- a/info/impatient/configure.ac
+++ /dev/null
@@ -1,16 +0,0 @@
-dnl $Id: configure.ac,v 1.4 2014/11/13 17:08:00 karl Exp $
-dnl public domain
-dnl configure.ac for TeX for the Impatient.
-
-AC_INIT([teximpatient], [2.4], [impatient@tug.org])
-AC_CONFIG_SRCDIR([book.tex])
-
-AC_PROG_INSTALL
-AC_PROG_MKDIR_P
-AC_PATH_PROG([ICON], [icon])
-AC_PATH_PROG([TEX], [tex])
-AC_PATH_PROG([PDFTEX], [pdftex])
-AC_PATH_PROG([HTTEX], [httex])
-
-AC_CONFIG_FILES([Makefile])
-AC_OUTPUT
diff --git a/info/impatient/copyrght.tex b/info/impatient/copyrght.tex
index 6bf93f76e9..1b44da1fad 100644
--- a/info/impatient/copyrght.tex
+++ b/info/impatient/copyrght.tex
@@ -1,5 +1,6 @@
+% $Id: copyrght.tex,v 1.2 2020/01/01 19:15:37 karl Exp $
% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003, 2013 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
+% Copyright (C) 2003-2020 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
% See file fdl.tex for copying conditions.
\input macros
@@ -20,7 +21,7 @@ information on all features of both plain and primitive \TeX.
\bigskip
-\noindent Copyright \copyright{} 2003, 2013 Paul~W. Abrahams,
+\noindent Copyright \copyright{} 2003--2020 Paul~W. Abrahams,
Kathryn~A. Hargreaves, and Karl Berry.
\bigskip
diff --git a/info/impatient/diffs/impatient-2.0-2.3.diff.gz b/info/impatient/diffs/impatient-2.0-2.3.diff.gz
new file mode 100644
index 0000000000..d3865dd1e6
--- /dev/null
+++ b/info/impatient/diffs/impatient-2.0-2.3.diff.gz
Binary files differ
diff --git a/info/impatient/diffs/impatient-2.3-2.4.diff.gz b/info/impatient/diffs/impatient-2.3-2.4.diff.gz
new file mode 100644
index 0000000000..2706d35d71
--- /dev/null
+++ b/info/impatient/diffs/impatient-2.3-2.4.diff.gz
Binary files differ
diff --git a/info/impatient/diffs/impatient-2.4-2020.diff.gz b/info/impatient/diffs/impatient-2.4-2020.diff.gz
new file mode 100644
index 0000000000..be8977cb2f
--- /dev/null
+++ b/info/impatient/diffs/impatient-2.4-2020.diff.gz
Binary files differ
diff --git a/info/impatient/errata.future b/info/impatient/errata.future
deleted file mode 100644
index 78ed14aba3..0000000000
--- a/info/impatient/errata.future
+++ /dev/null
@@ -1,268 +0,0 @@
-$Id: errata.future,v 1.2 2011/01/27 22:16:24 karl Exp $
-
-Ideas for future changes. Did not make these in the free edition since
-I didn't want to change the page breaks because I didn't want to install
-Icon so I could regenerate the index -- aside from lack of time and
-inclination. :) See the README.
-
-
-- incorporate the images in the artwork/ subdirectory.
-
-- discuss CTAN, other Internet resources, plain or generic macro
- packages, and so on.
-
-- extend with descriptions of e-TeX, pdftex, omega.
-
-- html output, perhaps using tex2page.
- http://www.ccs.neu.edu/home/dorai/tex2page/tex2page-doc.html
- (tex4ht did nothing useful with it, but maybe with work ...)
-
-
-from Will Adams:
-
- - p. 105 (and throughout) the encoding for Zapf Dingbats doesn't
-agree w/ what was used and instead of a right pointing hand dingbat, a
-Star of David appears on the .pdf
-
- - p. 113 - text overlaps / crashes here, I think 'cause some stuff
-escaped out of Verbatim mode.
-
- - colophon - this appears on a verso, not a recto, which I find a bit odd.
-
-One last bit of consideration is how you want to handle the cover /
-frontmatter.
-
-
-from Karl and Kathy:
-
-* The default values should probably be in roman everywhere. I don't
-think `6pt plus 1pt minus 2pt' looks bad in roman any more, which was
-the original impetus for printing them in typewriter, as I recall.
-It is pretty random right now. (Numbers are usually printed in roman,
-for example.)
-
-* The index might look better printed without the commas after the term.
-Also, there should be some way to indicate usages of control sequences,
-as opposed to explanations. We could do what Knuth did, and print the
-entries in another font (typewriter would be appropriate, perhaps). We
-could also just have a subentry `examples' or `using' or something.
-
-* `\langle f' and `l\rangle' are too close. I don't know if the macros
-can be hacked to add more space for just those characters.
-
-* The way (short) lists are punctuated is inconsistent. In (at least)
-four places (pp.3,18,56,265) the items are capitalized and end with
-period. In most others (2,72,74,81,83,234) they are not capitalized and
-have no ending punctuation. And in two (76,238) they are not capitalized
-and end with a period. I realize that the same form is not always
-appropriate, but this is not true very often. Personally, I prefer a
-form like:
-
-\list
-\item item 1,
-\item item 2,
-\item last item.
-\endlist
-
-but whatever.
-
-* In most places where we say `.dvi' we aren't really talking about the
-file extension. `{\sc DVI}' would be more appropriate.
-
-* The Preface, Brief Contents, and Contents chapter opening pages start
-too high and too far to the left. This is probably a consequence of
-\chapter changing and \shortchapter not.
-
-
-(The rest of the changes are by page number.)
-
-1 Section 13 is also designed to be accessed randomly. Also, wouldn't it
-be better to use section names as well as numbers?
-
-7 (first para) local information tells you => local information will
-tell you, since they couldn't have found it yet.
-
-9 (first para) by typing something => by first typing something, since
-they have to do more to input screed.
-(bottom) unclosed left parenthesis => unmatched left parenthesis.
-
-10 The third in the subsection (with ``typeset me'') looks like it has
-extra space in it.
-
-12 (bottom) supposed to produce => supposed to do, because the macro
-might not be supposed to produce anything at all.
-
-16 Say that TeX does its own spacing in formulas. This is probably the
-most crucial fact about doing math in TeX. Index `spacing, in formulas'
-and `formulas, spacing in'.
-(math formulas) can appear in text ... or set off => can appear in
-text ... or can appear set off, for structure.
-enclose a text formula in => enclose a text formula within
-
-17 (last para) The kind of entity TeX is assembling determines the mode
-it's in, it doesn't define it. I tend to think of it in the other
-direction: the mode TeX is in determines the entity TeX is assembling.
-
-21 (last para) It would be clearer to actually define \xmpheader in the
-first example and then use it. As it is, it's not entirely clear which
-commands in the first example go into it.
-(bottom) is defined in plain TeX => is either a primitive or defined
-in plain TeX.
-
-22 You use the en-dash in the place where an em-dash should be in the
-last sentence.
-
-23 (three instances near the top) The comments should have periods at
-the end and be capitalized properly. We are remarkably inconsistent on
-this throughout. In some cases, the comments aren't complete sentences,
-so periods are unnecessary. But sometimes, as here, they are complete
-sentences, so we should have periods. And sometimes they're sentences
-and not capitalized.
-
-24 If we didn't put space between these paragraphs, you would have a
-hard time => If we hadn't ..., you would have had ..., to remove the
-time warp.
-
-25 % The left brace start => % The { starts, to shorten the line.
-(middle) % Skips like this => % Skips like that, because one of the
-skips was just given.
-
-26 fonts won't give you => fonts don't give you
-page 100 and page 97 => pages 97 and 100
-
-32 (bottom) try to use these commands => try to use those commands,
-since the commands are above the comment.
-Also, they can get lists with more levels than one by using the Eplain
-list stuff, instead of programming it themselves, alas.
-
-34 The title might be better as `Using non-Computer Modern fonts' or
-something, since we haven't said what the first source is.
-
-37 (towards the top) => Use \vtop for short multiline entries => Use
-\vtop to get whole paragraphs, since ``multiline entries'' is a pretty
-stupid term (that I wrote).
-(towards the bottom) % without the kern, the `f' and `l' would be too
-close => % Without the kern, the `f' and `l' would be a ligature.
-
-44 (after example input) Put the page reference (p.176) after the
-`\settabs 2 \columns'.
-
-45 (towards the bottom) treats each entry as a group => puts each entry
-into a group, because alignment entries are certainly other things
-besides groups.
-
-46 (top) The \tabskip (p.184) => The \tabskip parameter (p.184), and
-(top) The \noalign (p.183) commands => The \noalign commands (p.183),
-because it reads better; also, we say `the \strut commands (p.167)'
-below.
-(third para) Two consecutive sentences start with ``A vertical
-alignment''. The second one could probably be ``It''.
-
-51 I guess the box picture never got fixed. (The `reference point' moved
-up quite a bit, and the arrow moved up a little. Also, the `baseline'
-could be moved down.)
-
-52 (first two paragraphs): the height/depth of hboxes takes \raise and
-\lower into account, and the width of vboxes takes \moveleft and
-\moveright into account.
-(the list) the box (or rule) => the box or rule, because the rule
-case isn't subordinate or anything. This is in both items.
-
-53 In `cgrok', the `c' is too close to the `grok'. I realize it
-shouldn't be a full space, but right now they're practically touching.
-Italic correction? Explicit space?
-
-54 (first line) It would be nice to say the names of categories 11--13.
-(third para from top) Chars in categories 11 and 12 don't mean
-``produce a box containing this character typeset in the current font''.
-They don't produce a box, for one thing. And they don't typeset ``this
-character'', either. They typeset whatever is in the font at their
-character code. I don't know how you want to explain this, but I think
-this is seriously wrong.
-(example) control sequence `foo$' => control sequence `\foo$'
-
-55 (second para) Same problem with characters vs. character code. The
-input letter `h' is not transformed into the letter `h' typeset in the
-current font. It's transformed into the character at position 104.
-The locution now makes it sound as if TeX somehow searches the font for
-the letter `h'.
-(next para) We should say that the input character's ``code number'' is
-the ``character code''. As it is, we never define the latter (I don't
-think).
-(two more paras) An example showing the 64 less/greater stuff would be
-nice.
-
-56 (under class) is in class 3 => has class 3, because the class is
-really an attribute of a character, not an external set of characters.
-(before class example) Wouldn't ``arbitrarily changed'' be better
-than ``randomly changed''? (Unless you really used a random number
-generator.)
-(first para of command concept): same problem with characters. TeX
-doesn't construct a box containing that character typeset in the current
-font.
-
-57 (under control sequence) with an escape character, usually a
-backslash (\) => with an escape character, which is usually the
-backslash character, since \ isn't always an escape character.
-
-58 (control word) It seems a bit inconsistent to footnote ``letter''
-here, and not in either of the previous two concepts.
-(delimiter) In `... to one of the commands \left, \right, \overwithdelims,
-... (see pp. 201,204)', either the 201 and 204 or the command names
-should be switched, since it's \left and \right that are on 204.
-(next para) fonts you're using have big enough parens => fonts you're
-using can construct big enough parens, because of extensible characters.
-Also, it isn't clear that the delimiters produced by \bigl et al. have
-fixed size.
-
-59 (before the list) The terms l-commands and r-commands need some
-explanation.
-
-60 (first line) `the ``small'' character in the ``small'' font' is
-misleading. We've already said the small char is in the small font. As
-it is, when, a couple sentences below, we say that small character can
-be left undefined, it sounds like the small font can't be left
-undefined.
-(demerits) `cost' should be a concept.
-
-62 (second para) Put a tie between `family' and `1'.
-
-65 (under format file) can be created => is created, because there's no
-other way to make one.
-(last line) two refs to page 228.
-
-66 (example) the shrinks are 1 and 3, whereas the shrinks on the next
-page are 2 and 6. Might as well make them all the same.
-
-69 {\TeX} => \TeX{} (if we must keep this horrible example).
-
-71 The item concept is pretty useless as it is; it would be nice to say
-what the possible items were, and clearly distinguish items from tokens,
-etc.
-
-72 (towards the bottom) insured that the dots => made the dots, because
-we've done something active than ``insure''.
-
-73 (ligature) the '' and , in office'', aren't kerned. You put
-``office'' in an \hbox for some reason.
-
-80 (math mode) Should say that display math gives you space above and
-below the formula.
-
-84 (page) between exercises => between exercisings?
-
-86 (page layout) We don't give the default space between the body of the
-text and the headers or footers.
-
-217 \mathsurround should make an index entry for `formulas, spacing
-around' or something like that.
-
-224 I think `Converting information to tokens' is really a misnomer.
-How about just calling it `Conversions' and making `Environmental
-information' its own section.
-
-263 `Ending the job' should be next to `Initializing TeX'.
-
-294 Have an index entry for `logos'.
-
-298 \unnumberedlist has become \unorderedlist.
diff --git a/info/impatient/fdl.tex b/info/impatient/fdl.tex
index a352e69bd3..e68bc1b8bf 100644
--- a/info/impatient/fdl.tex
+++ b/info/impatient/fdl.tex
@@ -1,3 +1,4 @@
+% $Id: fdl.tex,v 1.3 2020/01/01 23:22:02 karl Exp $
% This file is a chapter. It must be included in a larger document to work
% properly.
@@ -104,6 +105,7 @@ 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''.
+{\spaceskip = 3.33pt plus 4pt
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
@@ -113,7 +115,7 @@ 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.
+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
@@ -494,8 +496,9 @@ license notices just after the title page:
%\end{quote}
\smallskip
+{\spaceskip = 3.33pt plus 4pt
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
-replace the ``with...Texts.'' line with this:
+replace the ``with...Texts.'' line with this:}
\smallskip
{\narrower\obeylines\eightrm\baselineskip=10pt
diff --git a/info/impatient/fr/fbackm.tex b/info/impatient/fr/fbackm.tex
index 58bb6aece6..dc9f1ee01f 100644
--- a/info/impatient/fr/fbackm.tex
+++ b/info/impatient/fr/fbackm.tex
@@ -1,103 +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
-
+% 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/info/impatient/fr/fbook.tex b/info/impatient/fr/fbook.tex
index f1dc3ca071..0a1d2ac882 100644
--- a/info/impatient/fr/fbook.tex
+++ b/info/impatient/fr/fbook.tex
@@ -1,50 +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
+% 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/info/impatient/fr/fcapsule.tex b/info/impatient/fr/fcapsule.tex
index 0fdceeca20..dcea6a3924 100644
--- a/info/impatient/fr/fcapsule.tex
+++ b/info/impatient/fr/fcapsule.tex
@@ -1,1123 +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
-
+% 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/info/impatient/fr/fconcept.tex b/info/impatient/fr/fconcept.tex
index a1f8001ef3..b20f117cea 100644
--- a/info/impatient/fr/fconcept.tex
+++ b/info/impatient/fr/fconcept.tex
@@ -1,4069 +1,4070 @@
-% 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
-
+% 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/info/impatient/fr/fcopyrgh.tex b/info/impatient/fr/fcopyrgh.tex
index 4ec44d918a..15534a78d5 100644
--- a/info/impatient/fr/fcopyrgh.tex
+++ b/info/impatient/fr/fcopyrgh.tex
@@ -1,58 +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
+% 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/info/impatient/fr/ferrors.tex b/info/impatient/fr/ferrors.tex
index 6131acf0e0..9d086cc117 100644
--- a/info/impatient/fr/ferrors.tex
+++ b/info/impatient/fr/ferrors.tex
@@ -1,309 +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
-
+% 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/info/impatient/fr/ffrontm.tex b/info/impatient/fr/ffrontm.tex
index 4ec5dbd10f..83980b52e2 100644
--- a/info/impatient/fr/ffrontm.tex
+++ b/info/impatient/fr/ffrontm.tex
@@ -1,82 +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
+% 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/info/impatient/fr/fgenops.tex b/info/impatient/fr/fgenops.tex
index 179e17a50f..2ca0acac59 100644
--- a/info/impatient/fr/fgenops.tex
+++ b/info/impatient/fr/fgenops.tex
@@ -1,2834 +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
-
+% 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/info/impatient/fr/findex.tex b/info/impatient/fr/findex.tex
deleted file mode 100644
index af5c31d469..0000000000
--- a/info/impatient/fr/findex.tex
+++ /dev/null
@@ -1,37 +0,0 @@
-% 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{Index}
-
-\par
-\kern-\baselineskip
-
-\noindent Dans les entr\'ees de cet index, un num\'ero de page en italique indique une entr\'ee principale ou une d\'efinition.
-
-\par
-% Let's try to collect indexing cross-references here.
-%
-\idxsee{marques diacritiques}{accents}
-\idxsee{tracer des lignes}{filets}
-\idxsee{drivers}{drivers de p\'eriph\'erique}
-\idxsee{yeux}{\anatomy}
-\idxsee{langues \'etrang\`eres}{langues europ\'eennes}
-\idxsee{intestin}{\anatomy}
-\idxsee{bouche}{\anatomy}
-\idxsee{paragraphes//indenter}{indentation}
-%\idxsee{macros r\'ecursives}{macros, r\'ecursive}
-\idxsee{estomac}{\anatomy}
-\idxsee{tables}{alignements}
-\beginindex
-
-\let\+ = 0 % This can't occur in a macro...
-
-\input fbook.sdx
-
-\endindex
-
-\endchapter
-\byebye
diff --git a/info/impatient/fr/fmacros.tex b/info/impatient/fr/fmacros.tex
index 04740d0e3d..4bc83b5ea1 100644
--- a/info/impatient/fr/fmacros.tex
+++ b/info/impatient/fr/fmacros.tex
@@ -1,2345 +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.
+% 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/info/impatient/fr/fmath.tex b/info/impatient/fr/fmath.tex
index 59089d532d..b2be1b8a48 100644
--- a/info/impatient/fr/fmath.tex
+++ b/info/impatient/fr/fmath.tex
@@ -1,2176 +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
-
+% 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/info/impatient/fr/fmodes.tex b/info/impatient/fr/fmodes.tex
index e380efc993..2dec7cdb3d 100644
--- a/info/impatient/fr/fmodes.tex
+++ b/info/impatient/fr/fmodes.tex
@@ -1,2077 +1,2082 @@
-% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
-% Copyright (C) 2004 Marc Chaudemanche pour la traduction française.
-% See file fdl.tex for copying conditions.
-
-\input fmacros
-\chapter {Commandes pour \linebreak les modes horizontaux \linebreak et verticaux}
-
-\chapterdef{hvmodes}
-
-Cette section couvre les commandes qui ont des formes correspondantes ou
-identiques dans les modes horizontaux et verticaux.
-Ces commandes fournissent des bo\^\i tes, des espaces, des filets, des r\'eglures
-et des alignements.
-Pour une explication des conventions utilis\'ees dans cette section,
-voir \headcit{Descriptions des commandes}{cmddesc}.
-
-\begindescriptions
-
-%==========================================================================
-\section {Produire des espaces}
-
-%==========================================================================
-
-\subsection {Espaces horizontaux de largeur fixe}
-
-\begindesc
-\bix^^{espace//production d'}
-\bix^^{espace horizontal}
-\cts thinspace {}
-\explain
-Cette commande produit un \minref{cr\'enage} positif
-dont la largeur \'equivaut \`a un sixi\`eme d'em
-(\xref{dimdefs})
-c'est-\`a-dire qu'il demande \`a \TeX\ de d\'eplacer sa position \`a droite de ce montant.
-C'est pratique
-quand vous avez par exemple des quotes imbriqu\'ees
-et que vous voulez les s\'eparer.
-\TeX\ ne coupe pas de ligne sur un
-|\thinspace|.\minrefs{line break}
-
-\example
-``\thinspace`A quote.'\thinspace''\par
-24,\thinspace 29--31,\thinspace 45,\thinspace 102
-|
-\produces
-``\thinspace`A quote.'\thinspace''\par
-24,\thinspace 29--31,\thinspace 45,\thinspace 102
-\endexample
-\enddesc
-
-\begindesc
-\cts negthinspace {}
-\explain
-Cette commande produit un \minref{cr\'enage} n\'egatif
-dont la largeur \'equivaut \`a un sixi\`eme d'em
-(\xref{dimdefs})
-c'est-\`a-dire qu'il demande \`a \TeX\ de d\'eplacer sa position \`a gauche de ce montant.
-C'est pratique pour rapprocher deux caract\`eres qui sont un peu trop
-\'eloign\'es l'un de l'autre.
-\TeX\ ne coupe pas de ligne sur un |\negthinspace|.\minrefs{line break}
-\example
-The horror, the horror\negthinspace, the horror of it all!!
-|
-\produces
-The horror, the horror\negthinspace, the horror of it all!
-\endexample
-\enddesc
-
-\begindesc
-\cts enspace {}
-\explain
-Cette commande produit un \minref{cr\'enage} dont la largeur \'equivaut \`a un ^{en}
-(la moiti\'e d'un em, voir \xrefpg{dimdefs}).
-\TeX\ ne coupe pas de ligne sur un |\enspace| \`a moins qu'il soit suivi d'un ressort.
-Dans une liste \`a puce, les puces sont g\'en\'eralement s\'epar\'ees du texte qui les suit
-par un |\enspace|.
-\example
-Lemma 1.\enspace There exists a white rabbit.
-|
-\produces
-Lemma 1.\enspace There exists a white rabbit.
-\endexample
-% the enspace here follows the \proclaim convention (Knuth p. 355).
-\enddesc
-
-\begindesc
-\easy\cts enskip {}
-\cts quad {}
-\cts qquad {}
-\explain
-^^{en}
-Chacune de ces commandes
-produit un bout de \minref{ressort} horizontal
-qui ne peut ni s'\'etirer ni se r\'etr\'ecir.
-\TeX\ peut couper une ligne \minrefs{line break} sur un tel ressort.
-Les largeurs de ces ressort/dimension
-(qui sont relatifs \`a la police courante)
-sont les suivantes pour |cmr10|, la police par d\'efaut de \plainTeX~:
-\medskip
-\def\distance#1{\hbox{\strut $\rightarrow$\vrule\hskip #1\vrule$\leftarrow$}}
-{\def\l#1{\hfil$#1$\thinspace em}
-\tabskip 3pc \halign{#&#&\hfil#\hfil\cr
-{\it Commande}&{\it Espace}&{\it Illustration}\cr
-\noalign{\vskip 4pt}
-|\enskip|&\l{\frac 1/2}&\distance{.5em}\cr
-|\quad|&\l1&\distance{1em}\cr
-|\qquad|&\l2&\distance{2em}\cr
-}}
-\example
-en\enskip skip; quad\quad skip; qquad\qquad skip
-|
-\produces
-en\enskip skip; quad\quad skip; qquad\qquad skip
-\endexample
-\eix^^{espace horizontal}
-\enddesc
-
-%==========================================================================
-\subsection {Espaces verticaux de largeur fixe}
-
-\begindesc
-\bix^^{espace vertical}
-\easy\cts smallskip {}
-\cts medskip {}
-\cts bigskip {}
-\explain
-Ces commandes produisent des montants d'espacement vertical
-successivement plus larges~:
-\display{{\def\bar{\kern 2pt\hrule width 5pc}
-\def\lbl#1{\hbox to 5pc{\hfil #1skip\hfil}}
-\leavevmode
-\vtop{\lbl{small}\bar\smallskip\bar}\quad
-\vtop{\lbl{med}\bar\medskip\bar}\quad\vtop{\lbl{big}\bar\bigskip\bar}}}
-\noindent
-|\smallskip| saute de $3$ points et peut s'\'etirer ou
-s'\'elargir de $1$ point. |\med!-skip| est \'equivalent \`a deux |\smallskip|s
-et |\bigskip| est \'equivalent \`a deux |\medskip|s.
-
-Ces commandes terminent un paragraphe car elles sont fondamentalement verticales.
-Les sauts qu'elles produisent
-sont ajout\'es au saut inter-para\-graphe normal.
-\example
-Hop \smallskip skip \medskip and \bigskip jump.
-|
-\produces
-Hop \smallskip skip \medskip and \bigskip jump.
-\endexample
-\enddesc
-
-\begindesc
-\cts smallskipamount {\param{ressort}}
-\cts medskipamount {\param{ressort}}
-\cts bigskipamount {\param{ressort}}
-\explain
-Ces param\`etres sp\'ecifient les montants de ressort produit par
-les commandes |\small!-skip|, |\med!-skip| et |\big!-skip|.
-En changeant ces param\`e\-tres vous changez l'effet des commandes.
-Les valeurs par d\'efaut (pour \plainTeX)
-correspondent \`a un quart d'une ligne d'espace, \`a la moiti\'e d'une ligne d'espace,
-et \`a une ligne d'espace enti\`ere.
-Nous vous recommandons de maintenir ce ratio en changeant
-ces valeurs \`a chaque fois que
-vous changez |\baselineskip| (\xref\baselineskip).
-^^|\baselineskip//et {\tt\\smallskipamount}, etc.|
-\eix^^{espace vertical}
-
-\enddesc
-
-%==========================================================================
-\subsection {Espace de taille variable}
-
-\begindesc
-\easy\cts hskip {\<dimension$_1$> {\bt plus} \<dimension$_2$> {\bt minus} \<dimension$_3$>}
-\cts vskip {\<dimension$_1$> {\bt plus} \<dimension$_2$> {\bt minus} \<dimension$_3$>}
-^^{saut vertical}^^{ressort vertical}
-^^{saut horizontal}^^{ressort horizontal}
-\bix^^{espace horizontal}
-\bix^^{espace vertical}
-\explain
-Ces commandes produisent des ressorts respectivement horizontaux et verticaux.
-Dans le cas le plus simple et le plus courant, quand il n'y a seulement que \<dimension$_1$>,
-|\hskip| saute vers la droite de \<dimension$_1$>
-et |\vskip| saute vers le bas de la page de \<dimension$_1$>.
-Plus g\'en\'erale\-ment, ces commandes
-produisent des \minref{ressort}s dont la taille naturelle est
-\<dimension$_1$>, l'\'etirement \<dimension$_2$> et le r\'etr\'ecissement \<dimension$_3$>.
-Le |plus| \<dimension$_2$>, le |minus |\<dimension$_3$>,
-ou les deux peuvent \^etre omis.
-Si les deux sont pr\'esent, le |plus| doit \^etre avant le |minus|.
-Une valeur omise
-est consid\'er\'ee \`a z\'ero. Toutes les \<dimension>s peuvent \^etre n\'egatives.
-
-Vous pouvez utiliser |\hskip| en mode math\'ematique, mais vous ne pouvez utiliser d'unit\'es |mu|
-\seeconcept{unit\'e math\'ematique}
-pour aucune des dimensions. Si vous voulez des unit\'es |mu|, utilisez |\mskip|
-(\xref\mskip) \`a la place.
-
-\example
-\hbox to 2in{one\hskip 0pt plus .5in two}
-|
-\produces
-\hbox to 2in{one\hskip 0pt plus 2in two}
-
-\doruler{\8\8}2{in}
-\nextexample
-\hbox to 2in{Help me!! I can't fit
-{\hskip 0pt minus 2in} inside this box!!}
-|
-\produces
-\hbox to 2in{Help me! I can't fit
-{\hskip 0pt minus 2in} inside this box!}
-
-\doruler{\8\8}2{in}
-\nextexample
-\vbox to 4pc{\offinterlineskip% Just show effects of \vskip.
- \hbox{one}\vskip 0pc plus 1pc \hbox{two}
- \vskip .5pc \hbox{three}}
-|
-\produces
-\smallskip
-\vbox to 4pc{\offinterlineskip% Just show effects of \vskip.
- \hbox{one}\vskip 0pc plus 1pc \hbox{two}
- \vskip .5pc \hbox{three}}
-\endexample
-\enddesc
-
-\begindesc
-\cts hglue {\<ressort>}
-\cts vglue {\<ressort>}
-^^{ressort vertical}
-^^{ressort horizontal}
-\explain
-La commande |\hglue| produit un \minref{ressort} horizontal qui ne dispara\^\i t pas sur
-une coupure de ligne. La commande |\vglue|
-produit un \minref{ressort} vertical qui ne dispara\^\i t pas sur une coupure de page.
-Pour le reste ces commandes sont comme |\hskip| et |\vskip|.
-Vous pouvez utiliser |\vglue| pour produire de l'espace blanc en haut d'une page,
-par exemple, au dessus d'un titre sur la premi\`ere page d'un document, mais
-^|\topglue| (suivant) est normalement plus appropri\'e pour cet usage.
-\enddesc
-
-\begindesc
-\cts topglue {\<ressort>}
-\explain
-\margin{Command added; recent addition to \TeX}
-Cette commande\footnote{|\topglue| a \'et\'e ajout\'e \`a \TeX\ dans la version 3.0,
-apr\`es les autres am\'enagements introduitis par le ^{\newTeX}
-(\xref{newtex}). C'est la premi\`ere d\'ecrite dans la \emph{dix-huiti\`eme\/}
-\'edition de \texbook.} fait que l'espace entre le haut de la page et le
-haut de la premi\`ere bo\^\i te de la page soit pr\'ecis\'ement \'egal \`a \<glue>.
-Le haut de la page est consid\'er\'e \^etre sur la ligne de base d'une
-ligne imaginaire de texte juste au-dessus de la ligne du haut de la page.
-Plus pr\'ecis\'ement, c'est une distance |\topskip| au dessus de l'origine donn\'ee par
-|\hoffset| et |\voffset|.
-
-Cette commande est pratique parce que \TeX\ ajuste le ressort normalement
-produit par |\topskip| d'une mani\`ere complexe. En utilisant |\top!-glue| vous pouvez
-contr\^oler la position de la premi\`ere bo\^\i te de la page sans vous inqui\'eter de
-ces ajustements.
-
-\enddesc
-
-\begindesc
-\cts kern {\<dimension>}
-\explain
-L'effet de cette commande d\'epend du mode dans lequel est \TeX\ quand
-il la rencontre~:
-\ulist
-
-\li En mode horizontal, \TeX\ d\'eplace sa position vers la droite (pour un cr\'enage positif)
-ou vers la gauche (pour un cr\'enage n\'egatif).
-
-\li En mode vertical, \TeX\ d\'eplace sa position vers le bas de la page (pour un cr\'enage positif)
-ou vers le haut de la page (pour un cr\'enage n\'egatif).
-
-\endulist
-\noindent
-Ainsi un cr\'enage positif produit un espace vide tandis qu'un cr\'enage n\'egatif
-fait que \TeX\ recule sur quelque chose qu'il a d\'ej\`a produit.
-Cette notion de cr\'enage ^^{cr\'enages}
-est diff\'erente de la notion de cr\'enage dans certains syst\`emes de composition
-typographique informatis\'es---dans \TeX, des cr\'e\-nages positifs \emph{\'ecartent}
-deux lettres au lieu de les rapprocher.
-
-Un cr\'enage est similaire \`a un
-\minref{ressort}, sauf que (a)~un cr\'enage ne peut ni s'\'etirer ni se r\'etr\'ecir,
-et (b)~\TeX\ ne coupera une ligne ou une page sur un cr\'enage que si le cr\'enage
-est suivi par un ressort et ne fait pas partie d'une formule math\'ematique.
-Si \TeX\ trouve un cr\'enage \`a la fin
-d'une ligne ou d'une page, il \'elimine le cr\'enage.
-Si vous voulez obtenir l'effet d'un cr\'enage qui ne dispara\^\i t jamais,
-utilisez ^|\hglue| ou ^|\vglue|.
-
-Vous pouvez utiliser |\kern| en mode math\'ematique, mais vous ne pouvez pas utiliser d'unit\'es |mu|
-\seeconcept{unit\'e math\'ematique}
-pour \<dimension>. Si vous voulez des unit\'es |mu|, utilisez |\mkern|
-(\xref\mkern) \`a la place.
-^^{coupures de ligne//cr\'enages sur des}
-^^{coupures de page//cr\'enages sur des}
-
-\example
-\centerline{$\Downarrow$}\kern 3pt % a vertical kern
-\centerline{$\Longrightarrow$\kern 6pt % a horizontal kern
- {\bf Heed my warning!!}\kern 6pt % another horizontal kern
- $\Longleftarrow$}
-\kern 3pt % another vertical kern
-\centerline{$\Uparrow$}
-|
-\produces
-\centerline{$\Downarrow$}\kern 3pt % a vertical kern
-\centerline{$\Longrightarrow$\kern 6pt % a horizontal kern
- {\bf Heed my warning!}\kern 6pt % another horizontal kern
- $\Longleftarrow$}
-\kern 3pt % another vertical kern
-\centerline{$\Uparrow$}
-\endexample
-\enddesc
-
-\begindesc
-\makecolumns 4/2:
-\cts hfil {}
-\cts hfill {}
-\cts vfil {}
-\cts vfill {}
-\explain
-\bix^^{ressort//\'etirable infiniment}
-Ces commandes produisent des ressorts horizontaux et verticaux \'etirables
-infiniment qui
-\'ecrasent tout \'etirement fini qui peut \^etre pr\'esent.
-|\hfil| et |\hfill| produisent des ressorts horizontaux, tandis que
-|\vfil| et |\vfill| produisent des ressorts verticaux.
-
-|\hfill| est infiniment plus grand que |\hfil|.
-Si |\hfill| et |\hfil| apparaissent dans la m\^eme \minref{bo\^\i te},
-le |\hfill| consumera toute la place suppl\'ementaire possible
-et le |\hfil| sera effectivement ignor\'e.
-|\hfill| peut \`a son tour est \'ecras\'e par |\hskip 0pt plus 1filll|.
-Les ressorts produits par
-|\hfil| et |\hfill| ne r\'etr\'ecissent jamais.
-
-Le comportement de |\vfil| et |\vfill| est analogue.
-
-\example
-\hbox to 2in{Left\hfil Middle \hfil Right}
-|
-\produces
-\hbox to 2in{Left\hfil Middle \hfil Right}
-
-\doruler{\8\8}2{in}
-\nextexample
-\hbox to 2in{Left\hfil Middle \hfill Right}
-|
-\produces
-\hbox to 2in{Left\hfil Middle \hfill Right}
-
-\doruler{\8\8}2{in}
-\nextexample
-\leftline{%
-\vbox to 4pc{%
- \hbox{Top}\vfil\hbox{Middle}\vfil \hbox{Bottom}}\quad
-\vbox to 4pc{%
- \hbox{Top}\vfil\hbox{Middle}\vfill\hbox{Bottom}}}
-|
-\produces
-\smallskip
-\leftline{%
-\vbox to 4pc{%
- \hbox{Top}\vfil\hbox{Middle}\vfil \hbox{Bottom}}\quad
-\vbox to 4pc{%
- \hbox{Top}\vfil\hbox{Middle}\vfill\hbox{Bottom}}}
-\endexample
-
-\eix^^{ressort//\'etirable infiniment}
-\enddesc
-
-\begindesc
-\cts hss {}
-\cts vss {}
-\explain
-Ces commandes produisent des ressorts horizontaux et
-verticaux qui sont infiniment \'etirables et
-r\'etr\'ecissables. Le ressort peut se r\'etr\'ecir
-sur une distance n\'egative, produisant l'effet de reculer sur une ligne
-(pour |\hss|) ou remonter sur une page (pour |\vss|).
-
-\example
-\line{text\hfil\hbox to 0pt{margin\hss}}
-% `margin\hss' shrinks to the zero width of the hbox.
-|
-\produces
-\line{text\hfil\hbox to 0pt{margin\hss}}
-\nextexample
-\vbox to 1pc{\hrule width 6pc % Top of box.
- \hbox{1} \vskip 1pc\hbox to 2pc{\hfil 2}
- % The \vss absorbs the extra distance produced by \vskip.
- \vss \hbox to 3pc{\hfil 3}
- \hrule width 6pc}% Bottom of box.
-|
-\produces
-\medskip
-\vbox to 1pc{\hrule width 6pc % top of box
- \hbox{1} \vskip 1pc\hbox to 2pc{\hfil 2}
- \vss \hbox to 3pc{\hfil 3}
- \hrule width 6pc}% bottom of box
-\vskip 2.5pc
-\endexample
-\enddesc
-
-\begindesc
-\cts hfilneg {}
-\cts vfilneg {}
-\explain
-^^{ressort//n\'egatif}
-Ces commandes effacent l'effet d'un |\hfil| ou d'un |\vfil|
-pr\'ec\'edent. Tandis que |\hfil| et |\vfil| produisent un
-\minref{ressort} positif infiniment \'etirable, |\hfilneg| et |\vfilneg|
-produisent un ressort n\'egatif infiniment \'etirable.
-(ainsi, $n$ |\hfilneg| effacent $n$ ^|\hfil| et pareillement
-pour le |\vfilneg|.)
-L'utilisation principale de |\hfilneg| et de |\vfilneg| est de contrecarrer
-l'effet d'un |\hfil| ou d'un |\vfil| ins\'er\'e par une \minref{macro}.
-
-|\hfilneg| et |\vfilneg| ont
-la propri\'et\'e curieuse, s'ils sont les seuls ressorts infiniment \'etirables
-d'une bo\^\i te, de produire exactement le m\^eme effet que |\hfil|
-et |\vfil|.
-
-\example
-\leftline{\hfil on the right\hfilneg}
-% Cancel the \hfil that \leftline produces to the right
-% of its argument.
-|
-\produces
-\leftline{\hfil on the right \hfilneg}
-% Cancel the \hfil that \leftline produces to the right
-% of its argument.
-%
-\nextexample
-\def\a{\hbox to 1pc{\hfil 2}\vfil}
-\vbox to 4pc{\hbox{1} \vfil \a
- \vfilneg \hbox to 2pc{\hfil 3}}
-|
-\produces
-\smallskip
-\def\a{\hbox to 1pc{\hfil 2}\vfil}
-\vbox to 4pc{\hbox{1} \vfil \a
- \vfilneg \hbox to 2pc{\hfil 3}}
-\endexample\enddesc
-
-{\emergencystretch=2em
-\see |\hbadness| et |\vbadness| (\xref \vbadness),
-|\hfuzz| et |\vfuzz| (\xref \vfuzz),
-\conceptcit{filets}.\par}
-\eix^^{espace//production d'}
-\eix^^{espace horizontal}
-\eix^^{espace vertical}
-
-%==========================================================================
-\section {Manipuler des bo\^\i tes}
-
-%==========================================================================
-\subsection {Construire des hbox et des vbox}
-
-\begindesc
-\bix^^{commandes de \boites}
-^^{hbox//construction avec \b\tt\\hbox\e}
-%
-\cts hbox {\rqbraces{\<mat\'eriel en mode horizontal>}}
-\aux\cts hbox {{\bt to} \<dimension> \rqbraces{\<mat\'eriel en mode horizontal>}}
-\aux\cts hbox {{\bt spread} \<dimension> \rqbraces{\<mat\'eriel en mode horizontal>}}
-\explain
-Ces commandes produisent une hbox
-(\minref{bo\^\i te} horizontale) contenant du \<mat\'eriel en mode horizontal>.
-Les accolades autour du \<mat\'eriel en mode horizontal> d\'efinissent un groupe.
-\TeX\ ne coupe pas le \<mat\'eriel en mode horizontal> en plusieurs lignes,
-puisqu'il est en mode horizontal restreint quand il assemble la bo\^\i te.
-\TeX\ ne change pas la taille de la bo\^\i te une fois qu'elle est produite.
-
-|\hbox| est souvent utile quand vous voulez conserver du texte sur une seule ligne.
-Si votre utilisation de |\hbox| emp\^eche \TeX\ de couper des lignes de mani\`ere acceptable,
-\TeX\ se plaindra d'un ``overfull hbox''.
-
-La largeur du hbox d\'epend des arguments de |\hbox|~:
-\ulist\compact
-\li Si vous ne sp\'ecifiez que du \<mat\'eriel en mode horizontal>,
-le hbox aura sa \minref{largeur} naturelle.
-\li Si vous sp\'ecifiez |to| \<dimension>, la largeur du hbox sera \<dimension>.
-\li Si vous sp\'ecifiez |spread| \<dimension>, la largeur du hbox sera
-sa largeur naturelle plus \<dimension>, c'est-\`a-dire, le hbox s'allongera de
-\<dimension>.
-\endulist
-
-La commande ^|\hfil| (\xref\hfil) est utile pour remplir un
-hbox d'espace vide quand le mat\'eriel dans la bo\^\i te n'est pas aussi large que la
-largeur de la bo\^\i te.
-\example
-\hbox{ugly suburban sprawl}
-\hbox to 2in{ugly \hfil suburban \hfil sprawl}
-\hbox spread 1in {ugly \hfil suburban \hfil sprawl}
-% Without \hfil in the two preceding lines,
-% you'd get `underfull hbox'es.
-|
-\produces
-\hbox{ugly suburban sprawl}
-\hbox to 2in{ugly \hfil suburban \hfil sprawl}
-\hbox spread 1in {ugly \hfil suburban \hfil sprawl}
-% Without \hfil in the two preceding lines,
-% you'd get `underfull hbox'es.
-
-\doruler{\8\8\8}3{in}
-\endexample
-\enddesc
-
-\begindesc
-\cts vtop {\<mat\'eriel en mode vertical>}
-\aux\cts vtop {{\bt to} \<dimension> \rqbraces{\<mat\'eriel en mode vertical>}}
-\aux\cts vtop {{\bt spread} \<dimension> \rqbraces{\<mat\'eriel en mode vertical>}}
-\cts vbox {\rqbraces{\<mat\'eriel en mode vertical>}}
-\aux\cts vbox {{\bt to} \<dimension> \rqbraces{\<mat\'eriel en mode vertical>}}
-\aux\cts vbox {{\bt spread} \<dimension> \rqbraces{\<mat\'eriel en mode vertical>}}
-\explain
-^^{hbox//construction avec \b\tt\\hbox\e}
-Ces commandes
-produisent une \minref{vbox} (\minref{bo\^\i te} verticale)
-contenant du \<ma\-t\'eriel en mode vertical>.
-Les accolades autour du \<mat\'eriel en mode vertical> d\'efinissent un groupe.
-\TeX\ est en mode vertical interne quand il assemble la bo\^\i te.
-\TeX\ ne change pas la taille de la bo\^\i te une fois qu'elle est produite.
-
-La diff\'erence entre |\vtop| et |\vbox| est o\`u \TeX\ met
-le point de r\'ef\'erence de la vbox construite.
-Normalement, le point de r\'ef\'erence obtenu de |\vtop| tend \`a \^etre sur ou pr\`es
-du haut de la vbox construite,
-tandis que
-le point de r\'ef\'erence obtenu de |\vbox| tend \`a \^etre sur ou pr\`es
-du bas de la vbox construite.
-Ainsi une rang\'ee de vbox toutes construites avec |\vtop|
-tendra \`a avoir leurs hauts \`a peu pr\`es align\'es,
-tandis qu'une rang\'e de vbox toutes construites avec |\vbox|
-tendra \`a avoir leurs bas \`a peu pr\`es align\'es.
-
-|\vtop| et |\vbox| sont souvent pratiques
-quand vous voulez garder du texte ensemble sur une seule page.
-(Pour cela, peu importe normalement quelle commande vous utilisez.)
-Si votre usage de ces commandes
-emp\^eche \TeX\ de couper des pages d'une mani\`ere acceptable,
-\TeX\ se plaindra qu'il a trouv\'e un ``overfull'' ou un ``underfull vbox while
-|\output| is active''.
-
-La hauteur d'une vbox d\'epend des
-arguments de |\vtop| ou |\vbox|.
-Pour |\vbox|, \TeX\ d\'etermine la hauteur de la mani\`ere suivante~:
-\ulist\compact
-\li Si vous ne sp\'ecifiez que du \<mat\'eriel en mode vertical>,
-la vbox aura sa hauteur naturelle.
-\li Si vous sp\'ecifiez |to| \<dimension>,
-la hauteur de la vbox sera fix\'ee \`a \<dimension>.
-\li Si vous sp\'ecifiez |spread| \<dimension>, la hauteur de la vbox sera
-sa hauteur naturelle plus \<dimension>, c'est-\`a-dire,
-que la hauteur de la vbox sera \'etir\'ee verticalement de \<dimension>.
-\endulist
-\noindent
-Pour |\vtop|,
-\TeX\ construit la bo\^\i te en utilisant ses r\`egles pour |\vbox| et ensuite
-r\'epartit l'extension verticale entre la hauteur et la profondeur comme
-d\'ecrit ci-dessous.
-
-Normalement, la largeur d'une vbox construite est la largeur de l'\'el\'e\-ment le plus
-large contenu\footnote
-{Plus pr\'ecis\'ement, c'est la distance du point de r\'ef\'erence au cot\'e le plus \`a
-droite de la vbox construite. Par cons\'equent,
-si vous d\'eplacez un des \'el\'ements vers la droite en utilisant ^|\moveright| ou
-^|\moveleft| (avec une distance n\'egative),
-la vbox construite pourra \^etre plus large.}.
-Les r\`egles de r\'epartitions de l'extension verticale entre la
-hauteur et la profondeur sont plus compliqu\'ees~:
-\ulist
-\li Pour |\vtop|,
-la hauteur est la hauteur de son premier \'el\'ement, si cet \'el\'ement est une bo\^\i te ou un filet.
-Autrement la hauteur est \`a z\'ero. La profondeur est toute extension verticale
-restante quand la hauteur a \'et\'e enlev\'ee.
-\li Pour |\vbox|,
-la profondeur est la profondeur de son dernier \'el\'ement, si cet \'el\'ement est une bo\^\i te ou un filet.
-Autrement la profondeur est \`a z\'ero. La hauteur est toute extension verticale
-restante quand la profondeur a \'et\'e enlev\'ee%
-\footnote{En fait, il y a une complication suppl\'ementaire.
-Supposez qu'apr\`es que la profondeur ait \'et\'e d\'etermin\'ee
-en utilisant les deux r\`egles pr\'ec\'edentes, la profondeur devienne plus grande que
-^|\boxmaxdepth|.
-Alors la profondeur est r\'eduite \`a |\boxmaxdepth| et la hauteur est ajust\'ee
-en cons\'equence.}.
-\endulist
-
-La commande |\vfil| (\xref\vfil) est pratique pour remplir une vbox
-^^|\vfil//remplir une vbox|
-avec de l'espace vide quand le mat\'eriel dans la bo\^\i te n'est pas aussi grand que
-l'extention verticale de la bo\^\i te.
-\example
-\hbox{\hsize = 10pc \raggedright\parindent = 1em
-\vtop{In this example, we see how to use vboxes to
-produce the effect of double columns. Each vbox
-contains two paragraphs, typeset according to \TeX's
-usual rules except that it's ragged right.\par
-This isn't really the best way to get true double
-columns because the columns}
-\hskip 2pc
-\vtop{\noindent
-aren't balanced and we haven't done anything to choose
-the column break automatically or even to fix up the
-last line of the first column.\par
-However, the technique of putting running text into a
-vbox is very useful for placing that text where you
-want it on the page.}}
-|
-\produces
-\hbox{\hsize = 10pc \raggedright\parindent = 1em
-\vtop{In this example, we see how to use vboxes to
-produce the effect of double columns. Each vbox
-contains two paragraphs, typeset according to \TeX's
-usual rules except that it's ragged right.\par
-This isn't really the best way to get true double
-columns because the columns}
-\hskip 2pc
-\vtop{\noindent
-aren't balanced and we haven't done anything to choose
-the column break automatically or even to fix up the
-last line of the first column.\par
-However, the technique of putting running text into a
-vbox is very useful for placing that text where you
-want it on the page.}}
-\nextexample
-\hbox{\hsize = 1in \raggedright\parindent = 0pt
-\vtop to .75in{\hrule This box is .75in deep. \vfil\hrule}
-\qquad
-\vtop{\hrule This box is at its natural depth. \vfil\hrule}
-\qquad
-\vtop spread .2in{\hrule This box is .2in deeper than
- its natural depth.\vfil\hrule}}
-|
-\produces
-\hbox{\hsize = 1in \raggedright\parindent=0pt
-\vtop to .75in{\hrule This box is .75in deep. \vfil\hrule}
-\qquad
-\vtop{\hrule This box is at its natural depth. \vfil\hrule}
-\qquad
-\vtop spread .2in{\hrule This box is .2in deeper than
- its natural depth.\vfil\hrule}}
-\nextexample
-% See how \vbox lines up boxes at their bottoms
-% instead of at their tops.
-\hbox{\hsize = 1in \raggedright
-\vbox to .5in{\hrule This box is .5in deep.\vfil\hrule}
-\qquad
-\vbox to .75in{\hrule This box is .75in deep.\vfil\hrule}}
-|
-\produces
-\hbox{\hsize = 1in \raggedright
-\vbox to .5in{\hrule This box is .5in deep.\vfil\hrule}
-\qquad
-\vbox to .75in{\hrule This box is .75in deep.\vfil\hrule}}
-\vskip 16pt % to avoid running into the next command description
-\endexample
-\enddesc
-
-\begindesc
-\margin{Two commands interchanged here.}
-\cts boxmaxdepth {\param{dimension}}
-\explain
-Ce param\`etre contient une dimension $D$.
-\TeX\ ne construira pas une bo\^\i te dont la profondeur d\'epassera $D$.
-Si vous produisez une bo\^\i te dont la profondeur $d$ doit d\'epasser $D$,
-\TeX\ transf\`erera la
-profondeur exc\'edentaire dans la hauteur de la bo\^\i te, en abaissant en r\'ealit\'e le
-\minref{point de r\'ef\'erence} de la bo\^\i te de $d-D$.
-Si vous mettez |\boxmaxdepth| \`a z\'ero, \TeX\ alignera une rang\'ee de vbox
-de telle mani\`ere que leurs fronti\`eres du bas seront toutes sur la m\^eme ligne horizontale.
-\PlainTeX\ met |\boxmaxdepth| \`a |\maxdimen| \ctsref{\maxdimen},
-donc |\boxmaxdepth| n'affectera pas vos bo\^\i tes \`a moins que vous le changiez.
-\enddesc
-
-\begindesc
-\cts underbar {\<argument>}
-\explain
-Cette commande met \<argument> dans une \minref{hbox}
-et la souligne sans faire attention \`a tout ce que d\'epasse sous la
-\minref{ligne de base} de la bo\^\i te.
-\example
-\underbar{Why not learn \TeX?}
-|
-\produces
-\underbar{Why not learn \TeX?}
-\endexample
-\enddesc
-
-\begindesc
-\cts everyhbox {\param{liste de token}}
-\cts everyvbox {\param{liste de token}}
-\explain
-Ces param\`etres contiennent des liste de token que \TeX\ d\'eveloppe au d\'ebut de
-toutes \minref{hbox} ou \minref{vbox} qu'il construit.
-Tout \'el\'ement r\'esultant de l'expansion devient alors
-le d\'ebut de la liste d'\'el\'ements pour la bo\^\i te.
-Par d\'efaut, ces listes de token sont vides.
-\enddesc
-
-%==========================================================================
-\subsection {Remplir et r\'ecuperer le contenu de bo\^\i tes}
-
-\begindesc
-\bix^^{registres de \boite}
-%
-\cts setbox {\<registre>\thinspace{\bt =}\thinspace\<bo\^\i te>}
-\cts box {\<registre>}
-\explain
-^^{assignements//de \boites}
-Ces commandes remplissent et r\'ecup\`erent respectivement le contenu
-du registre de bo\^\i te
-dont le num\'ero est \<registre>.
-Notez que vous remplissez un registre de bo\^\i te d'une mani\`ere un peu diff\'erente de celle
-utilis\'ee pour les autres types de registres~: vous utilisez
-|\setbox|$\,n$~|=| plut\^ot que |\box|$\,n$~|=|.
-
-\emph{R\'ecup\'erer le contenu d'un registre de bo\^\i te
-avec ces commandes a l'effet secondaire d'enlever ce qu'il contient,
-donc le registre de bo\^\i te devient vide.} Si vous ne voulez pas que cela arrive,
-vous pouvez utiliser |\copy| (voir ci-dessous) pour r\'ecup\'erer le contenu.
-Vous devez utiliser |\box| de pr\'ef\'erence \`a |\copy|
-quand vous n'avez plus besoin du contenu d'un registre de bo\^\i te apr\`es l'avoir utilis\'e,
-de mani\`ere \`a ne pas augmenter la m\'emoire de \TeX\ en la remplissant avec des bo\^\i tes obsol\`etes.
-\example
-\setbox0 = \hbox{mushroom}
-\setbox1 = \vbox{\copy0\box0\box0}
-\box1
-|
-\produces
-\setbox0 = \hbox{mushroom}
-\setbox1 = \vbox{\copy0\box0\box0}
-\box1
-\endexample
-\enddesc
-
-\begindesc
-\cts copy {\<registre>}
-\explain
-^^{\boites//copie}\minrefs{box}
-Cette commande
-produit une copie d'un registre de bo\^\i te \<registre>.
-Cette commande est utile quand vous voulez r\'ecup\'erer le contenu d'un registre
-de bo\^\i te mais ne voulez pas en d\'etruire le contenu.
-(R\'ecup\'erer le contenu d'un registre avec ^|\box| rend le registre vide.)
-\example
-\setbox0 = \hbox{good }
-Have a \copy0 \box0 \box0 day!!
-|
-\produces
-\setbox0 = \hbox{good }
-Have a \copy0 \box0 \box0 day!
-\endexample
-\enddesc
-
-\begindesc
-\cts unhbox {\<registre>}
-\cts unvbox {\<registre>}
-^^{\boites//extraction de contenu de}
-\explain
-Ces commandes produisent la liste contenue dans un registre de bo\^\i te \<registre> et rend
-ce registre de bo\^\i te vide.
-|\unhbox| s'applique aux registres de bo\^\i te contenant
-des hbox et |\unvbox| s'applique aux registres de bo\^\i te contenant des vbox.
-Vous devez utiliser ces commandes en pr\'ef\'erence \`a |\unhcopy| et |\unvcopy|
-(voir ci-dessous)
-quand vous n'avez pas besoin de ce qu'il y a dans le registre de bo\^\i te apr\`es l'avoir utilis\'e,
-de mani\`ere \`a ne pas augmenter la m\'emoire de \TeX\ en la remplissant avec des bo\^\i tes obsol\`etes.
-\example
-\setbox0=\hbox{The Mock Turtle sighed deeply, and
-drew the back of one flapper across his eyes. }
-\setbox1=\hbox{He tried to speak, but sobs choked
- his voice. }
-\unhbox0 \unhbox1
-% \box0 \box1 would set two hboxes side by side
-% (and produce a badly overfull line).
-\box1 % produces nothing
-|
-\produces
-\setbox0=\hbox{The Mock Turtle sighed deeply, and
-drew the back of one flapper across his eyes. }
-\setbox1=\hbox{He tried to speak, but sobs choked
- his voice. }
-\unhbox0 \unhbox1
-% \hbox0 \hbox1 would set two hboxes side by side
-% (and produce a badly overfull line).
-\box1 % Produces nothing.
-\endexample
-\enddesc
-
-\begindesc
-\cts unhcopy {\<registre>}
-\cts unvcopy {\<registre>}
-^^{\boites//extraction du contenu de}
-^^{\boites//copie}\minrefs{box}
-\explain
-Ces commandes produisent la liste contenue dans un registre de bo\^\i te \<registre> et
-sans d\'eranger le contenu des registres.
-|\unhbox| s'applique aux registres de bo\^\i te contenant
-des hbox et |\unvbox| s'applique aux registres de bo\^\i te contenant des vbox.
-\example
-\setbox0=\hbox{The Mock Turtle sighed deeply, and
-drew the back of one flapper across his eyes. }
-\setbox1=\hbox{He tried to speak, but sobs choked his
- voice. }
-\unhcopy0 \unhcopy1\par\noindent
-% \box0 \box1 would set two hboxes side by side
-% (and produce a badly overfull line).
-\box1 % Produces an hbox (which can't be broken).
-|
-\produces
-\setbox0=\hbox{The Mock Turtle sighed deeply, and
-drew the back of one flapper across his eyes. }
-\setbox1=\hbox{He tried to speak, but sobs choked his
- voice. }
-\unhcopy0 \unhcopy1\par\noindent
-% \hbox0 \hbox1 would set two hboxes side by side
-% (and produce a badly overfull line).
-\box1 % produces an hbox (which can't be broken)
-\endexample
-\enddesc
-
-\see |\wd|, |\dp|, |\ht| (\xref\ht).
-\eix^^{registres de \boite}
-
-%==========================================================================
-\subsection {D\'eplacer des bo\^\i tes}
-
-\begindesc
-\cts moveleft {\<dimension> \<bo\^\i te>}
-\cts moveright {\<dimension> \<bo\^\i te>}
-\bix^^{\boites//d\'eplacement}
-\minrefs{box}
-\explain
-Ces commandes d\'eplacent \<bo\^\i te> \`a gauche ou \`a droite de \<dimension> (qui peut \^etre
-n\'egatif). Vous ne pouvez appliquer |\moveleft| et |\moveright| qu'\`a des bo\^\i tes
-qui sont dans une \minref{liste verticale}.
-\example
-\vbox{\vbox{Phoebe}\vbox{walked}%
-\moveleft 20pt\vbox{a}\moveright 20pt\vbox{crooked}%
-\vbox{mile.}}
-|
-\produces
-\hfuzz = \maxdimen
-\vbox{\vbox{Phoebe}\vbox{walked}%
-\moveleft 20pt\vbox{a}\moveright 20pt\vbox{crooked}%
-\vbox{mile.}}
-\endexample
-\enddesc
-
-\begindesc
-\cts lower {\<dimension> \<bo\^\i te>}
-\cts raise {\<dimension> \<bo\^\i te>}
-\explain
-Ces commandes d\'eplacent \<bo\^\i te> en haut ou en bas de \<dimension>
-(qui peut \^etre n\'egatif).
-Vous ne pouvez appliquer |\moveleft| et |\moveright| qu'\`a des bo\^\i tes
-qui sont dans une \minref{liste horizontale}.
-\example
-Are you feeling \lower 6pt \hbox{depressed} about the
- \raise 6pt \hbox{bump} on your nose?
-|
-\produces
-Are you feeling \lower 6pt \hbox{depressed} about the
- \raise 6pt \hbox{bump} on your nose?
-\endexample
-
-\eix^^{\boites//d\'eplacement}
-\enddesc
-
-%==========================================================================
-\subsection {Dimensions des registres de bo\^\i tes}
-
-\begindesc
-\bix^^{registres de \boite}
-\bix^^{dimensions//de registres de \boite}
-\cts ht {\<registre>\param{dimension}}
-\cts dp {\<registre>\param{dimension}}
-\cts wd {\<registre>\param{dimension}}
-\explain
-Ces param\`etres font r\'ef\'erence \`a la ^{hauteur}, la ^{profondeur} et la ^{largeur}
-respectivement du \minref{registre} de \minref{bo\^\i te} \<registre>.
-Vous pouvez les utiliser pour conna\^\i tre les dimensions d'une bo\^\i te.
-Vous pouvez aussi changer les dimensions d'une bo\^\i te, mais ce n'est pas une mince affaire~;
-si vous voulez \^etre aventureux vous pouvez
-apprendre tout sur cela dans les \
-{pages~388--389}{448--449}.
-\example
-\setbox0 = \vtop{\hbox{a}\hbox{beige}\hbox{bunny}}%
-The box has width \the\wd0, height \the\ht0,
-and depth \the\dp0.
-|
-\produces
-\setbox0 = \vtop{\hbox{a}\hbox{beige}\hbox{bunny}}%
-The box has width \the\wd0, height \the\ht0,
-and depth \the\dp0.
-\endexample
-\eix^^{registres de \boite}
-\eix^^{dimensions//de registres de \boite}
-\enddesc
-
-%==========================================================================
-\subsection {Struts, fantomes et bo\^\i tes vides}
-
-\begindesc
-\margin{This subsection is a merger of two previous subsections.
-The commands have also been reordered.}
-\bix^^{struts}
-\cts strut {}
-\explain
-Cette commande produit une bo\^\i te dont la largeur est \`a z\'ero
-et dont la hauteur (|8.5pt|) et la profondeur (|3.5pt|)
-sont celles d'une ligne de caract\`ere plus ou moins en |cmr10|,
-la police par d\'efaut de \plainTeX.
-Son utilisation principale est de forcer des lignes \`a avoir la m\^eme hauteur
-quand vous avez d\'ebranch\'e le ressort inter-ligne de \TeX\ avec
-|\offinter!-lineskip| ^^|\offinterlineskip| ou une commande similaire,
-par exemple, quand vous construisez un alignement.
-Si la hauteur naturelle d'une ligne est
-trop petite, vous pouvez la ramener au standard en incluant un |\strut|
-dans la ligne. Le strut forcera la hauteur et la profondeur de la ligne
-\`a \^etre plus grande, mais il n'imprime rien ni ne consomme aucun espace
-horizontal.
-
-Si vous mettez des caract\`eres d'une police qui est plus grande ou plus petite que |cmr10|,
-vous devez red\'efinir |\strut| pour ce contexte.
-\example
-\noindent % So we're in horizontal mode.
-\offinterlineskip % So we get the inherent spacing.
-% The periods in this vbox are not vertically equidistant.
-\vtop{\hbox{.}\hbox{.(}\hbox{.x}
- \hbox{.\vrule height 4pt depth 0pt}}\qquad
-% The periods in this vbox are vertically equidistant
-% because of the struts.
-\vtop{\hbox{.\strut}\hbox{.(\strut}\hbox{.x\strut}
- \hbox{.\vrule height 4pt depth 0pt\strut}}
-|
-\produces
-\noindent % So we're in horizontal mode.
-\offinterlineskip % So we get the inherent spacing.
-% The periods in this vbox are not vertically equidistant.
-\vtop{\hbox{.}\hbox{.(}\hbox{.x}
- \hbox{.\vrule height 4pt depth 0pt}}\qquad
-% The periods in this vbox are vertically equidistant
-% because of the struts.
-\vtop{\hbox{.\strut}\hbox{.(\strut}\hbox{.x\strut}
- \hbox{.\vrule height 4pt depth 0pt\strut}}
-\endexample
-\enddesc
-
-\begindesc
-\cts mathstrut {}
-\explain
-Cette commande produit une formule fant\^ome dont la largeur est \`a z\'ero
-et dont la largeur et la hauteur sont les m\^emes que celle d'une parenth\`ese gauche.
-|\mathstrut| est en fait d\'efini comme `|\vphantom(|'.
-Son utilisation principale est d'obtenir des radicaux, soulign\'es et surlign\'es align\'es
-avec d'autres radicaux, soulign\'es et surlign\'es d'une formule.
-C'est un peu comme ^|\strut| (\xref \strut),
-sauf qu'il s'ajuste lui-m\^eme aux diff\'erents \minref{style}s
-qui peuvent appara\^\i tre dans une formule math\'ematique.
-\example
-$$\displaylines{
-\overline{a_1a_2} \land \overline{b_1b_2}
-\quad{\rm versus}\quad \overline{a_1a_2\mathstrut}
- \land \overline{b_1b_2\mathstrut}\cr
-\sqrt{\epsilon} + \sqrt{\xi} \quad{\rm versus}\quad
-\sqrt{\epsilon\mathstrut} + \sqrt{\xi\mathstrut}\cr}$$
-|
-\dproduces
-\kern 4pt
-$$\displaylines{
-\overline{a_1a_2} \land \overline{b_1b_2}
-\quad{\rm versus}\quad \overline{a_1a_2\mathstrut}
- \land \overline{b_1b_2\mathstrut}\cr
-\sqrt{\epsilon} + \sqrt{\xi} \quad{\rm versus}\quad
-\sqrt{\epsilon\mathstrut} + \sqrt{\xi\mathstrut}\cr}$$
-\endexample
-\eix^^{struts}
-\enddesc
-
-\begindesc
-\cts phantom {\<argument>}
-\explain
-\bix^^{\boites//fant\^ome}
-\bix^^{fant\^omes}
-Cette commande produit une \minref{bo\^\i te} vide
-ayant la m\^eme taille et placement
-que \<argument> aurait s'il \'etait compos\'e.
-Une utilisation de |\phantom| est de r\'eserver de l'espace pour un symbole qui pour certaines
-raisons demande \`a \^etre dessin\'e \`a la main.
-\example
-$1\phantom{9}2$
-|
-\produces
-$1\phantom{9}2$
-\endexample
-\enddesc
-
-\begindesc
-\cts hphantom {\<argument>}
-\cts vphantom {\<argument>}
-\explain
-Ces commandes produisent des bo\^\i tes\minrefs{bo\^\i te}\ fant\^ome qui
-n'impriment rien~:
-\ulist\compact
-\li |\hphantom| produit une bo\^\i te avec la m\^eme largeur que \<argument>
-mais de hauteur et profondeur z\'ero.
-\li |\vphantom| produit une bo\^\i te avec les m\^emes hauteur et profondeur que \<argu\-ment>
-mais de largeur z\'ero.
-\endulist
-\noindent
-Leur usage principal est de forcer une sous-formule \`a avoir un dimension
-horizontale ou verticale minimum.
-\example
-$$\left[\vphantom{u\over v}t\right] \star
- \left[{u\over v}\right]\quad
- \{\hphantom{xx}\}$$
-|
-\dproduces
-\kern 4pt
-$$\left[\vphantom{u\over v}t\right] \star
- \left[{u\over v}\right]\quad
- \{\hphantom{xx}\}$$
-\endexample
-\enddesc
-
-\begindesc
-\cts smash {\<argument>}
-\explain
-Cette commande compose \<argument>,
-mais force la hauteur et la profondeur de sa \minref{bo\^\i te} contenante \`a z\'ero.
-Vous pouvez utiliser |\smash| et |\vphantom| en combinaison pour donner \`a une sous-formule
-toutes hauteurs et profondeurs que vous d\'esirez.
-\example
-$${\smash{r_m \brace r_n}\vphantom{r}} \Longrightarrow r$$
-|
-\dproduces
-\kern 4pt
-$${\smash{r_m \brace r_n}\vphantom{r}} \Longrightarrow r$$
-\endexample
-\eix^^{\boites//fant\^ome}
-\eix^^{fant\^omes}
-\enddesc
-
-\begindesc
-^^{\boites//vides}
-\cts null {}
-\explain
-Cette commande produit une \minref{hbox} vide.
-\example
-\setbox0 = \null
-The null box \null has width \the\wd0, height \the\ht0,
-and depth \the\dp0.
-|
-\produces
-\setbox0 = \null
-The null box \null has width \the\wd0, height \the\ht0,
-and depth \the\dp0.
-\endexample
-\enddesc
-
-
-%==========================================================================
-\subsection {Param\`etres faisant partie des bo\^\i tes mal form\'ees}
-
-\begindesc
-\bix^^{\boites//overfull}
-\bix^^{\boites//underfull}
-\cts overfullrule {\param{dimension}}
-\explain
-Ce param\`etre sp\'ecifie la largeur du filet
-que \TeX\ positionne pour un ``overfull \minref{hbox}''.
-\PlainTeX\ le met \`a |5pt|.
-\enddesc
-
-\begindesc
-\cts hbadness {\param{nombre}}
-\cts vbadness {\param{nombre}}
-\explain
-Ces param\`etres sp\'ecifient les seuils de \minref{badness} horizontal
-et vertical pour rapporter des ``underfull'' ou ``overfull boxes''
-|\hbadness| s'applique aux hbox et |\vbadness| s'applique aux vbox.
-Si la m\'ediocrit\'e d'une bo\^\i te construite d\'epasse le seuil,
-\TeX\ reportera une erreur. Si vous augmentez les seuils
-(les valeurs par d\'efaut de \plainTeX\ sont de $1000$),
-\TeX\ sera moins amen\'e \`a se plaindre.
-Notez que les valeurs de |\hbadness| et |\vbadness| n'ont pas d'effet sur
-l'apparence de votre document compos\'e~; ils n'affectent que le message d'erreur
-que vous obtenez.
-Voir la \knuth{page~302}{353} pour une description pr\'ecise
-sur comment \TeX\ d\'ecide quand se plaindre d'``overfull'' ou d'``underfull
-box''.
-
-\margin{The material on tolerance was inappropriate here and has been
-removed. A new example replaces it.}
-\example
-\hbadness = 10000 % Suppress any hbadness complaints.
-\hbox to 2in{a b}\par
-\hbadness = 500 % Report hbadness exceeding 500.
-\hbox to 2in{a\hskip 0pt plus .5in b}
-|
-\logproduces
-Underfull \hbox (badness 5091) detected at line 4
-\tenrm a b
-
-\hbox(6.94444+0.0)x144.54, glue set 3.70787
-.\tenrm a
-.\glue 0.0 plus 36.135
-.\tenrm b
-|
-\endexample
-\enddesc
-
-\begindesc
-\cts badness {}
-\explain
-Cette commande donne la valeur num\'erique de la m\'ediocrit\'e de la \minref{bo\^\i te}
-(aussi bien horizontale que verticale) que \TeX\ a le plus r\'ecemment produit.
-Si la bo\^\i te \'etait ``overfull'', |\badness| sera de $1000000$~; dans tous les autres cas
-il sera entre $0$ et $10000$.
-\enddesc
-
-\begindesc
-\cts hfuzz {\param{dimension}}
-\cts vfuzz {\param{dimension}}
-\explain
-Ces param\`etres sp\'ecifient les valeurs dont une
-\minref{bo\^\i te} peut d\'epasser sa taille naturelle avant que \TeX\ la consid\`ere comme
-\'etant overfull. ^^{\boites//overfull}
-|\hfuzz| s'applique aux hbox et |\vfuzz| s'applique aux vbox.
-\PlainTeX\ met ces deux param\`etres \`a |0.1pt|.
-\example
-\hfuzz = .5in
-\hbox to 2in{This box is longer than two inches.}
-% No error results
-|
-\produces
-\hfuzz = .5in
-\hbox to 2in{This box is longer than two inches.}
-% No error results
-\doruler{\8\8\8}3{in}
-\endexample
-
-\eix^^{\boites//overfull}
-\eix^^{\boites//underfull}
-\eix^^{commandes de \boites}
-\enddesc
-
-\see |\tolerance| \ctsref{\tolerance}.
-%==========================================================================
-\section {Retrouver le dernier \'el\'ement d'une liste}
-
-\begindesc
-^^{\boites//derni\`ere \boite\ dans une liste}
-^^{cr\'enages//dernier cr\'enage dans une liste}
-^^{p\'enalit\'es//derni\`ere p\'enalit\'e dans une liste}
-^^{ressort//dernier \'el\'ement de ressort dans une liste}
-\margin{This section has been moved in its entirety from the chapter
-(`Commands for general operations')}
-\cts lastkern {}
-\cts lastskip {}
-\cts lastpenalty {}
-\cts lastbox {}
-\explain
-Ces s\'equences de contr\^ole donnent la valeur du dernier \'el\'ement de la liste
-courante. Ce ne sont pas de vraies commandes parce qu'elles ne peuvent appara\^\i tre que
-comme partie d'un argument.
-Si le dernier \'el\'ement de la liste n'est pas du type indiqu\'e,
-elles donnent une valeur z\'ero (ou une bo\^\i te vide, dans le cas de |\lastbox|).
-Par exemple,
-si le dernier \'el\'ement de la liste courante est un \minref{cr\'enage},
-|\lastkern| donne la dimension de ce cr\'enage~; si ce
-n'est pas un cr\'enage, il donne une dimension de $0$.
-
-Utiliser |\lastbox| a l'effet suppl\'ementaire d'enlever la derni\`ere bo\^\i te de
-la liste.
-Si vous voulez que le |\last!-box| original reste dans la liste, vous
-devez en ajouter une copie dans la liste.
-|\last!-box| n'est pas permise dans une liste math\'ematique ou dans la liste
-verticale~principale.
-
-Ces s\'equences de contr\^ole sont
-plus utiles apr\`es des appels de macro qui peuvent avoir ins\'er\'e des entit\'es
-du genre indiqu\'e.
-
-\example
-\def\a{two\kern 15pt}
-one \a\a\hskip 2\lastkern three\par
-% Get three times as much space before `three'.
-\def\a{\hbox{two}}
-one \a
-\setbox0 = \lastbox % Removes `two'.
-three \box0.
-|
-\produces
-\def\a{two\kern 15pt}
-one \a\a\hskip 2\lastkern three\par
-% get three times as much space before `three'
-\def\a{\hbox{two}}
-one \a
-\setbox0 = \lastbox % removes `two'
-three \box0.
-\endexample
-\enddesc
-
-\begindesc
-\cts unkern {}
-\cts unskip {}
-\cts unpenalty {}
-\explain
-Si le dernier \'el\'ement de la liste courante est de type \minref{cr\'enage},
-\minref{ressort} ou \minref{p\'enalit\'e} respectivement, ces commandes l'enl\`event
-de cette liste. Si l'\'el\'ement n'est pas du bon type, ces commandes n'ont
-pas d'effet. Comme ^|\lastbox|, vous ne pouvez pas les appliquer \`a des listes en
-mode math\'ema\-tique ou \`a la liste verticale principale.
-Ces commandes
-sont plus pratiques apr\`es un appel de macro connu pour avoir ins\'er\'e
-un \'el\'ement sp\'ecifique que vous ne voulez pas ici.
-\TeX\ ne procure pas de commande ^|\unbox| parce que |\lastbox| produit
-\`a peu pr\`es le m\^eme effet.
-\enddesc
-
-
-%==========================================================================
-\section {filets et r\`eglures}
-
-\begindesc
-\bix^^{filets}
-\bix^^{filets horizontaux}
-\bix^^{filets verticaux}
-%
-\cts hrule {}
-\aux\cts hrule {\bt height \<dimension> width \<dimension> depth \<dimension>}
-\cts vrule {}
-\aux\cts vrule {{\bt width \<dimension> height \<dimension> depth \<dimension>}}
-\explain
-La commande |\hrule| produit un filet horizontal. La commande |\vrule|
-produit un filet vertical. Vous pouvez sp\'ecifier tout ou une partie des largeur,
-hauteur et profondeur du filet---\TeX\ apporte des valeurs par d\'efaut pour celles
-que vous omettez. Vous pouvez donner les dimensions du filet dans n'importe quel ordre~;
-les formes list\'ees ci-dessus vous montrent simplement deux combinaisons possibles. Vous
-pouvez m\^eme donner une dimension d'un type donn\'e plus d'une fois---si vous le faites,
-la derni\`ere sera celle qui sera prise en compte.
-
-Si vous ne sp\'ecifiez pas la largeur d'un filet horizontal, le filet est
-\'etendu horizontalement jusqu'aux limites de la \minref{bo\^\i te} ou de
-l'\minref{alignement} le plus interne qui contient le filet. Si vous ne sp\'ecifiez pas
-la hauteur d'un filet horizontal, elle sera par d\'efaut de |0.4pt|~; si vous ne
-sp\'ecifiez pas la profondeur d'un filet horizontal, elle sera par d\'efaut de |0pt|.
-
-Si vous ne sp\'ecifiez pas la largeur d'un filet vertical, elle sera par d\'efaut de
-|0.4pt|. Si vous ne sp\'ecifiez pas la hauteur d'un filet vertical,
-le filet est \'etendu jusqu'aux limites de la \minref{bo\^\i te} ou de
-l'\minref{alignement} le plus interne qui contient le filet.
-
-\TeX\ traite un filet horizontal comme un \'el\'ement naturellement vertical
-et un filet vertical comme un \'el\'ement naturellement horizontal.
-Donc un filet horizontal n'est l\'egal qu'en \minref{mode vertical},
-Tandis qu'un filet vertical n'est l\'egal qu'en \minref{mode horizontal}.
-^^{mode horizontal//filets en}
-^^{mode vertical//filets en}
-Si cela semble surprenant, visualisez le---un filet horizontal va
-de gauche \`a droite et s\'epare des \'el\'ements verticaux dans une s\'equence, tandis
-qu'un filet vertical va de haut en bas et
-s\'epare des \'el\'ements horizontaux dans une s\'equence.
-
-\example
-\hrule\smallskip
-\hrule width 2in \smallskip
-\hrule width 3in height 2pt \smallskip
-\hrule width 3in depth 2pt
-|
-\produces
-\medskip
-\hrule\smallskip
-\hrule width 2in \smallskip
-\hrule width 3in height 2pt \smallskip
-\hrule width 3in depth 2pt
-\nextexample
-% Here you can see how the baseline relates to the
-% height and depth of an \hrule.
-\leftline{
- \vbox{\hrule width .6in height 5pt depth 0pt}
- \vbox{\hrule width .6in height 0pt depth 8pt}
- \vbox{\hrule width .6in height 5pt depth 8pt}
- \vbox{\hbox{ baseline}\kern 3pt \hrule width .6in}
-}
-|
-\produces
-\medskip
-\leftline{
- \vbox{\hrule width .6in height 5pt depth 0pt}
- \vbox{\hrule width .6in height 0pt depth 8pt}
- \vbox{\hrule width .6in height 5pt depth 8pt}
- \vbox{\hbox{ baseline}\kern 3pt \hrule width .6in}
-}
-\nextexample
-\hbox{( {\vrule} {\vrule width 8pt} )}
-\hbox {( {\vrule height 13pt depth 0pt}
- {\vrule height 13pt depth 7pt} x)}
-% the parentheses define the height and depth of each of the
-% two preceding boxes; the `x' sits on the baseline
-|
-\produces
-\medskip
-\hbox{( {\vrule} {\vrule width 8pt} )}
-\hbox {( {\vrule height 13pt depth 0pt}
- {\vrule height 13pt depth 7pt} x)}
-\endexample
-
-\eix^^{filets}
-\eix^^{filets horizontaux}
-\eix^^{filets verticaux}
-\enddesc
-
-\begindesc
-\bix^^{r\`eglures}
-\easy\cts leaders {\<bo\^\i te ou filet> \<commande de saut>}
-\cts cleaders {\<bo\^\i te ou filet> \<commande de saut>}
-\cts xleaders {\<bo\^\i te ou filet> \<commande de saut>}
-\explain
-Ces commandes produisent des \minref{r\'eglures}, c'est-\`a-dire, qu'elles remplissent un
-espace horizontal ou vertical avec des
-copies d'un motif \seeconcept{filets}.
-La \<bo\^\i te> ou le \<filet> sp\'ecifie une r\'eglure,
-c'est-\`a-dire, une seule copie du motif,
-tandis que la \<commande de saut> sp\'ecifie une
-fen\^etre devant \^etre remplie avec une
-rang\'ee ou une colonne de r\'eglures.
-Le motif est r\'ep\'et\'e autant de fois qu'il peut rentrer dans la fen\^etre.
-Si \<commande de saut> est un saut horizontal, la fen\^etre
-contient une rang\'ee de r\'eglures et \TeX\ doit \^etre en mode horizontal~;
-si \<commande de saut> est un saut vertical, la fen\^etre
-contient une colonne de r\'eglures et \TeX\ doit \^etre en mode vertical.
-
-Les commandes diff\`erent dans leur fa\c con d'arranger le motif r\'ep\'et\'e
-et o\`u elles mettent l'espace restant~:
-
-\ulist\compact
-\li Pour |\leaders|, \TeX\ aligne une rang\'ee de r\'eglures avec la limite gauche de
-la \minref{bo\^\i te} $B$ la plus interne qui contient le r\'esultat de la
-commande |\leaders|.
-Elle aligne une colonne de r\'eglures avec le haut de $B$.
-Ces r\'eglures qui tombent enti\`erement dans la fen\^etre sont gard\'ees.
-Tout espace en plus en haut et en bas de la fen\^etre est laiss\'e vide.
-\li Pour |\cleaders|, les r\'eglures sont centr\'ees dans la fen\^etre.
-\li Pour |\xleaders| le motif est uniform\'ement distribu\'e \`a travers la fen\^etre.
-Si l'espace en plus est $l$ et que la r\'eglure est r\'ep\'et\'ee $n$ fois,
-\TeX\ met de l'espace de largeur ou hauteur $l/(n+1)$ entre des r\'eglures adjacentes et
-aux deux bouts (gauche et droite ou haut et bas) des r\'eglures.
-\endulist
-
-\example
-\def\pattern{\hbox to 15pt{\hfil.\hfil}}
-\line{Down the Rabbit-Hole {\leaders\pattern\hfil} 1}
-\line{The Pool of Tears {\leaders\pattern\hfil} 9}
-\line{A Caucus-Race and a Long Tale {\cleaders\pattern
- \hfil} 19}
-\line{Pig and Pepper {\xleaders\pattern\hfil} 27}
-|
-\produces
-\def\pattern{\hbox to 15pt{\hfil.\hfil}}\par
-\line{Down the Rabbit-Hole {\leaders\pattern\hfil} 1}
-\line{The Pool of Tears {\leaders\pattern\hfil} 9}
-\line{A Caucus-Race and a Long Tale {\cleaders\pattern
- \hfil} 19}
-\line{Pig and Pepper {\xleaders\pattern\hfil} 27}
-\nextexample
-\def\bulletfill{\vbox to 3ex{\vfil\hbox{$\bullet$}\vfil}}%
-\def\mybox{\vbox to 1in}
-\def\myrule{\hrule width 4pt}\hsize=2in
-\hrule \line{%
- \mybox{\myrule depth 8pt \leaders\bulletfill\vfill}
- \hfil
- \mybox{\myrule depth 15pt \leaders\bulletfill\vfill}
- \hfil
- \mybox{\myrule depth 18pt \cleaders\bulletfill\vfill}
- \hfil
- \mybox{\myrule depth 12pt \xleaders\bulletfill\vfill}%
-}\hrule
-|
-\produces
-\medskip
-\def\bulletfill{\vbox to 3ex{\vfil\hbox{$\bullet$}\vfil}}%
-\def\mybox{\vbox to 1in}\def\myrule{\hrule width 4pt}\hsize=2in
-\hrule \line{%
- \mybox{\myrule depth 8pt \leaders\bulletfill\vfill}
- \hfil
- \mybox{\myrule depth 15pt \leaders\bulletfill\vfill}
- \hfil
- \mybox{\myrule depth 18pt \cleaders\bulletfill\vfill}
- \hfil
- \mybox{\myrule depth 12pt \xleaders\bulletfill\vfill}%
-}\hrule
-\endexample\enddesc
-
-\begindesc
-\cts dotfill {}
-\cts hrulefill {}
-\explain
-^^{remplissage}
-Ces commandes remplissent respectivement l'espace horizontal englob\'e avec
-une rang\'ee de points sur la ligne de base et avec
-une ligne horizontale sur la ligne de base.
-C'est habituellement une bonne id\'ee de laisser un espace entre
-|\dotfill| ou |\hrulefill|
-et le texte qui la pr\'ec\`ede ou la suit (voir l'exemple ci-dessous).
-\example
-\hbox to 3in{Start {\dotfill} Finish}
-\hbox to 3in{Swedish {\hrulefill} Finnish}
-|
-\produces
-\par\hbox to 3in{Start {\dotfill} Finish}
-\hbox to 3in{Swedish {\hrulefill} Finnish}
-\endexample\enddesc
-
-\begindesc
-\cts leftarrowfill {}
-\cts rightarrowfill {}
-\explain
-^^{remplissage}
-Ces commandes remplissent l'espace horizontal englob\'e avec
-des ^{fl\`eches} point\'ees vers la gauche ou vers la droite.
-\example
-\hbox to 3in{\vrule \rightarrowfill \ 3 in
- \leftarrowfill\vrule}
-|
-\produces
-\medskip
-\hbox to 3in{\vrule \rightarrowfill \ 3 in
- \leftarrowfill\vrule}
-\endexample
-
-\eix^^{r\`eglures}
-\enddesc
-
-%==========================================================================
-\section {Alignements}
-
-%==========================================================================
-\subsection {Alignements tabul\'es}
-
-\begindesc
-\bix^^{alignements tabul\'es}
-\bix^^{alignements//commandes pour}
-%
-\ctspecial + {{\bt \<texte>\thinspace\&\thinspace\<texte>%
- \thinspace\& $\cdots$ \\cr}}
-\ctsxrdef{@plus}
-\cts tabalign {}
-\explain
-Ces commandes d\'ebutent une simple ligne dans un \minref{alignement} tabul\'e .
-La seule diff\'erence entre |\+| et |\tabalign| est que
-|\+| est une macro outer ---vous ne pouvez pas l'utiliser quand \TeX\ lit des tokens \`a
-haute vitesse \seeconcept{outer}.
-
-Si vous placez un `|&|' \`a une position
-\`a droite de toute tabulation existante dans un alignement tabul\'e,
-le `|&|' \'etablit une nouvelle tabulation \`a cette position.
-\example
-\cleartabs % Nullify any previous \settabs.
-\+ {\bf if }$a[i] < a[i+1]$ &{\bf then}&\cr
-\+&&$a[i] := a[i+1]$;\cr
-\+&&{\it found }$:=$ {\bf true};\cr
-\+&{\bf else}\cr
-\+&&{\it found }$:=$ {\bf false};\cr
-\+&{\bf end if};\cr
-|
-\produces
-\cleartabs % Nullify any previous \settabs.
-\+ {\bf if }$a[i] < a[i+1]$ &{\bf then}&\cr
-\+&&$a[i] := a[i+1]$;\cr
-\+&&{\it found }$:=$ {\bf true};\cr
-\+&{\bf else}\cr
-\+&&{\it found }$:=$ {\bf false};\cr
-\+&{\bf end if};\cr
-\endexample
-\enddesc
-
-\begindesc
-\cts settabs {\<nombre> {\bt \\columns}}
-\aux\cts settabs {{\bt \\+} \<ligne d'exemple> {\bt \\cr}}
-\explain
-La premi\`ere forme de
-cette commande d\'efinit un jeu de tabulations d'arr\^et ^^{tabulations}
-pour un \minref{alignement} tabul\'e.
-Elle demande \`a \TeX\ de mettre les tabulations d'arr\^et de mani\`ere \`a diviser chaque ligne en
-\<nombre> parties \'egales. \TeX\ prend la longueur d'une ligne comme \'etant
-|\hsize|, normalement. Vous pouvez rendre l'alignement plus \'etroit en diminuant
-|\hsize|.
-\margin{paragraph ``The tab settings $\ldots$'' moved to below.}
-\example
-{\hsize = 3in \settabs 3 \columns
-\+$1$&one&first\cr
-\+$2$&two&second\cr
-\+$3$&three&third\cr}
-|
-\produces
-{\hsize = 3in \settabs 3 \columns
-\+$1$ & one & first\cr
-\+$2$ & two & second\cr
-\+$3$ & three & third\cr}
-
-\noindent\doruler{\8\8\8}3{in}
-\smallskip
-\endexample
-
-La seconde forme de cette commande d\'efinit des tabulations d'arr\^et en mettant les tabulations d'arr\^et
-aux positions indiqu\'ees par les `|&| dans la ligne d'exemple.
-La ligne d'exemple elle-m\^eme ne doit pas appara\^\i tre dans la sortie. Quand vous
-utilisez cette forme vous devrez normalement mettre du mat\'eriel dans la ligne d'exemple qui sera
-un peu plus large que le plus large mat\'eriel correspondant dans l'alignement,
-de mani\`ere \`a produire de l'espace entre les colonnes.
-C'est ce que nous avons fait dans
-l'exemple ci-dessous. Le mat\'eriel suivant la derni\`ere tabulation
-d'arr\^et est inutile, puisqu'il n'a pas besoin de positionner
-quoi que ce soit \`a l'endroit o\`u le |\cr|~appara\^\i t.
-
-Les r\'eglages de tabulation \'etablies par |\settabs| restent actifs jusqu'\'a
-une nouvelle commande |\settabs| ou la fin du groupe contenant |\set!-tabs|. Ceci est vrai pour
-les deux formes de la commande.
-
-\example
-% The first line establishes the template.
-\settabs \+$1$\qquad & three\quad & seventh\cr
-\+$1$&one&first\cr
-\+$2$&two&second\cr
-\+$3$&three&third\cr
-|
-\produces
-\settabs \+$1$\qquad & three\quad & seventh\cr % the sample line
-\+$1$&one&first\cr
-\+$2$&two&second\cr
-\+$3$&three&third\cr
-\smallskip
-\endexample
-\enddesc
-
-\begindesc
-
-\cts cleartabs {}
-\explain
-Cette commande efface toutes les tabulations \`a droite de la colonne courante.
-Son utilisation principale est dans des applications telles que la composition de programme informatique
-dans lesquels les positions de tabulation changent \`a chaque ligne.
-\enddesc
-
-\see |\cr|, |\endline|, |\crcr| (\xref \endline).
-\eix^^{alignements tabul\'es}
-
-%==========================================================================
-\subsection {Alignement g\'en\'eraux}
-
-\begindesc
-{\tighten
-\cts halign {{\bt \rqbraces{\<pr\'eambule> \\cr \<rang> \\cr $\ldots$ \<rang> \\cr}}}
- \xrdef{@and}\xrdef{@pound}
-\aux\cts halign {{\bt to \<dimension>%
- \rqbraces{\<pr\'eambule> \\cr \<rang> \\cr $\ldots$ \<rang> \\cr}}}
-\aux\cts halign {{\bt spread \<dimension>%
- \rqbraces{\<pr\'eambule> \\cr \<rang> \\cr $\ldots$ \<rang> \\cr}}}
-\par}
-\explain
-Cette commande produit un \minref{alignement} horizontal constitu\'e d'une
-suite de rang\'ees, o\`u chaque rang\'ee \`a son tour contient une suite
-d'entr\'ee de colonne. \TeX\ ajuste les largeurs des entr\'ees de colonne
-pour accommoder la plus large dans chaque colonne.
-
-Un alignement horizontal n'appara\^\i t que quand \TeX\ est dans un \minref{mode}
-vertical. Nous vous recommandons d'apprendre les alignements en g\'en\'e\-ral
-(\xref{alignement}) avant d'essayer d'utiliser la commande |\valign|.
-
-Un alignement consiste en un ^{pr\'eambule}
-suivi par le texte \`a aligner. Le pr\'eambule,
-qui d\'ecrit la forme des rang\'ees qui le suivent, consiste en une
-suite de patrons de colonne, s\'epar\'es par `|&|' et termin\'e
-par |\cr|.
-\bix^^{patron}
-\bix^^{entr\'ee (colonne ou rang\'ee)}
-Chaque rang\'ee consiste en une suite d'entr\'ees
-de ^{colonne}, s\'epar\'ees aussi par `|&|' et termin\'ees par |\cr|. Dans
-un patron, `|#|' indique o\`u \TeX\ doit ins\'erer le
-texte correspondant \`a l'entr\'ee de colonne.
-Par contre, |\settabs| utilise un patron fixe implicite \`a `|#|',
-c'est-\`a-dire, qu'il ins\`ere simplement le texte tel quel.
-
-\TeX\ compose chaque entr\'ee de colonne en mode horizontal restreint,
-c'est-\`a-dire, comme le contenu d'une \minref{hbox},
-et englobe implicitement l'en\-tr\'ee dans un groupe.
-
-La forme |to| de cette commande demande \`a \TeX\
-d'\'etendre la largeur de l'alignement \`a \<dimension>,
-en ajustant l'espace entre les colonnes.
-La forme |spread| de cette commande demande \`a \TeX\
-d'agrandir l'alignement de \<dimension> par rapport \`a sa largeur naturelle.
-Ces formes sont comme les formes correspondantes de |\hbox| \ctsref\hbox.
-
-Voir |\tabskip| \ctsref\tabskip{} pour un exemple d'utilisation de la
-forme |to|.
-
-\example
-\tabskip = 1em \halign{%
- \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
- United States&Washington&dollar&1.00\cr
- France&Paris&franc&0.174\cr
- Israel&Jerusalem&shekel&0.507\cr
- Japan&Tokyo&yen&0.0829\cr}
-|
-\produces
-\tabskip = 1em \halign{%
- \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
- United States&Washington&dollar&1.00\cr
- France&Paris&franc&0.174\cr
- Israel&Jerusalem&shekel&0.507\cr
- Japan&Tokyo&yen&0.0829\cr}
-\endexample
-\enddesc
-
-\begindesc
-{\tighten
-\cts valign {{\bt \rqbraces{\<pr\'eambule>\\cr \<colonne>\\cr $\ldots$
- \<colonne>\\cr}}}
-\aux\cts valign {{\bt to \<dimension>%
- \rqbraces{\<pr\'eambule>\\cr \<colonne>\\cr $\ldots$ \<colonne>\\cr}}}
-\aux\cts valign {{\bt spread \<dimension>%
- \rqbraces{\<pr\'eambule>\\cr \<col.>\\cr $\ldots$ \<col.>\\cr}}}
-\par}
-\explain
-Cette commande produit un \minref{alignement} vertical
-constitu\'e d'une
-suite de colonnes, o\`u chaque colonne \`a son tour contient une suite
-d'entr\'ees de rang\'ee.
-\TeX\ ajuste les hauteurs des entr\'ees de rang\'ee pour accommoder la plus longue
-dans chaque rang\'ee.
-
-Un alignement vertical
-n'appara\^\i t que quand \TeX\ est dans un \minref{mode} horizontal.
-Puisque les alignements verticaux sont (a)~conceptuellement assez difficiles et
-(b)~peu souvent utilis\'es, nous vous recommandons d'ap\-prendre les
-alignements en g\'en\'eral
-(\xref{alignement}) et la commande |\halign| (voir ci-dessus) avant
-d'essayer d'utiliser la commande |\valign|.
-
-Un alignement consiste en un ^{pr\'eambule}
-suivi par le texte \`a aligner. Le pr\'eambule,
-qui d\'ecrit la forme des colonnes qui le suivent,
-consiste en une
-suite de patrons de rang\'ee, s\'epar\'es par `|&|' et termin\'e
-par |\cr|.
-\bix^^{patron}
-Chaque colonne consiste en une suite d'entr\'ee
-de ^{rang\'ee}, s\'epar\'ees aussi par `|&|' et termin\'ees par |\cr|. Dans
-un patron, `|#|' indique o\`u \TeX\ doit ins\'erer le
-texte correspondant \`a l'entr\'ee de rang\'ee.
-
-\TeX\ compose chaque entr\'ee de rang\'ee en mode vertical
-interne, c'est-\`a-dire, comme le contenu d'une \minref{vbox},
-et englobe implicitement l'entr\'ee dans un groupe.
-Il donne toujours \`a la vbox une profondeur \`a z\'ero.
-Tout texte ou autre mat\'eriel en mode horizontal dans une entr\'ee de rang\'ee met alors \TeX\
-en mode horizontal ordinaire.
-C'est juste une application des r\`egles g\'en\'erales du fonctionnement de \TeX\
-en mode vertical interne.
-Les param\`etres de paragraphage habituels s'appliquent dans ce cas~:
-l'entr\'ee de rang\'ee a une indentation
-initiale de |\parindent| (\xref\parindent) et
-les \minref{ressorts}
-|\leftskip| et |\rightskip| (\xref\leftskip)
-s'appliquent \`a ses lignes.
-
-Notez en particulier qu'une entr\'ee de rang\'ee contenant du texte a
-une largeur de |\hsize| (\xref\hsize). A moins que vous mettiez
-|\hsize| \`a la largeur de rang\'ee que vous voulez, vous rencontrerez
-vraisemblablement des ``overfull \minref{hbox}'' ou trouverez que
-la premi\`ere colonne occupe la largeur de la page enti\`ere, ou les deux.
-\eix^^{entr\'ee (colonne ou rang\'ee)}
-
-Normalement, vous devrez inclure un \minref{strut}
-^^{struts//dans des alignements verticaux}
-dans chaque
-patron pour que les rang\'ees n'apparaissent pas comme un r\'esultat
-des hauteurs variables des entr\'ees de l'alignement. Vous
-pouvez produire un strut avec la commande |\strut|.
-
-La forme |to| de cette commande demande \`a \TeX\
-d'\'etendre l'extension verticale de l'alignement \`a \<dimension>,
-en ajustant l'espace entre les rang\'ees.
-La forme |spread| de cette commande demande \`a \TeX\
-d'agrandir l'alignement de \<dimension> par rapport \`a sa hauteur naturelle.
-Ces formes sont comme les formes correspondantes de |\vbox| \ctsref\vbox.
-
-\example
-{\hsize=1in \parindent=0pt
-\valign{#\strut&#\strut&#\strut&#\strut\cr
- bernaise&curry&hoisin&hollandaise\cr
- ketchup&marinara&mayonnaise&mustard\cr
- rarebit&tartar\cr}}
-|
-\produces
-{\hsize=1in \parindent=0pt \leftskip=0pt
-\valign{#\strut&#\strut&#\strut&#\strut\cr
- bernaise&curry&hoisin&hollandaise\cr
- ketchup&marinara&mayonnaise&mustard\cr
- rarebit&tartar\cr}}
-\nextexample
-% same thing but without struts (shows why you need them)
-{\hsize=1in \parindent=0pt
-\valign{#&#&#&#\cr
- bernaise&curry&hoisin&hollandaise\cr
- ketchup&marinara&mayonnaise&mustard\cr
- rarebit&tartar\cr}}
-|
-\produces
-{\hsize=1in \parindent=0pt \leftskip=0pt
-\valign{#&#&#&#\cr
- bernaise&curry&hoisin&hollandaise\cr
- ketchup&marinara&mayonnaise&mustard\cr
- rarebit&tartar\cr}}
-\endexample
-\enddesc
-
-\begindesc
-\cts ialign {}
-\explain
-Cette commande r\'eagit comme ^|\halign|,
-sauf qu'elle met d'abord le ressort |\tabskip| \`a z\'ero et
-met |\everycr| \`a vide.
-\enddesc
-
-\begindesc
-\cts cr {}
-\explain
-Cette commande termine le pr\'eambule d'un alignement horizontal ou
-vertical, une rang\'ee d'un alignement horizontal ou tabul\'e,
-ou une colonne d'un alignement vertical.
-Vous pouvez demander \`a \TeX\ de faire certaines actions \`a chaque fois qu'il rencontre un |\cr|
-en chargeant la valeur du param\`etre ^|\everycr| \ctsref\everycr.
-\enddesc
-
-\begindesc
-\cts endline {}
-\explain
-Cette commande est un synonyme de la commande ^|\cr|. Elle est utile quand
-vous avez red\'efini |\cr| mais devez encore acc\'eder \`a sa d\'efinition originale.
-\enddesc
-
-\begindesc
-\cts crcr {}
-\explain
-Cette commande r\'eagit comme ^|\cr|, sauf que \TeX\ l'ignore si
-elle arrive imm\'ediatement apr\`es un |\cr| ou un ^|\noalign|.
-Sa principale application est comme mesure de s\'ecurit\'e pour \'eviter un message d'erreur ``misleading''
-caus\'e par une \minref{macro} qui attend un argument se terminant par |\cr|.
-Si vous mettez |\crcr| apr\`es le `|#|$n$' qui d\'enote un tel argument
-dans la d\'efinition de macro, la
-macro marchera proprement, que l'argument se termine par |\cr| ou non.
-\enddesc
-
-\begindesc
-\cts omit {}
-\explain
-Cette commande demande \`a \TeX\ d'ignorer un patron dans un \minref{alignement}
-horizontal ou vertical pendant le traitement d'une entr\'ee de colonne ou de rang\'ee particuli\`ere
-respectivement.
-|\omit| doit appara\^\i tre comme le premier \'el\'ement dans une entr\'ee de colonne ou de rang\'ee~; en effet,
-il remplace le patron du pr\'eambule avec le simple
-patron `|#|'.
-
-
-\example
-\tabskip = 2em\halign{%
- \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
- United States&Washington&dollar&1.00\cr
- \omit \dotfill France\dotfill&Paris&franc&0.174\cr
- Israel&Jerusalem&shekel&0.507\cr
- Japan&Tokyo&yen&0.0829\cr}
-|
-\produces
-\tabskip = 2em\halign{%
- \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
- United States&Washington&dollar&1.00\cr
- \omit \dotfill France\dotfill&Paris&franc&0.174\cr
- Israel&Jerusalem&shekel&0.507\cr
- Japan&Tokyo&yen&0.0829\cr}
-\nextexample
-{\hsize=1.2in \parindent=0pt
-\valign{(#)\strut&(#)\strut&(#)\strut&(#)\strut\cr
- bernaise&curry&hoisin&hollandaise\cr
- ketchup&\omit\strut{\bf MARINARA!!}&mayonnaise&mustard\cr
- rarebit&tartar\cr}}
-|
-\produces
-{\hsize=1.2in \parindent=0pt \leftskip=0pt
-\valign{(#)\strut&(#)\strut&(#)\strut&(#)\strut\cr
- bernaise&curry&hoisin&hollandaise\cr
- ketchup&\omit\strut{\bf MARINARA!}&mayonnaise&mustard\cr
- rarebit&tartar\cr}}
-\endexample
-\enddesc
-
-\begindesc
-\cts span {}
-\explain
-La signification de cette commande d\'epend suivant qu'elle appara\^\i t soit dans un pr\'eambule
-soit dans une entr\'ee d'alignement.
-\ulist
-\li Normalement, \TeX\ ne d\'eveloppe pas de tokens dans le pr\'eambule
-quand il le lit.
-Mettre |\span| au d\'ebut d'un token dans le pr\'eambule rend
-ce token d\'eveloppable imm\'ediatement selon les r\`egles usuelles de d\'eveloppement
-de \minref{macro} de \TeX.
-\li Mettre |\span| \`a la place de `|&|' entre deux entr\'ees de colonne ou de rang\'ee
-rend ces colonnes ou rang\'ees combin\'ees.
-Pour un alignement horizontal,
-la largeur de la colonne combin\'ee est la somme des
-largeurs des colonnes incluses.
-Pour un alignement vertical,
-la hauteur de la rang\'ee combin\'ee est la somme des
-hauteurs des rang\'ees incluses.
-Le patron des colonnes ou rang\'ees combin\'ees forme un seul groupe,
-donc des commandes de chargement de police pr\'ec\'edant un |\span| affectent tout jusqu'au
-prochain `|&|'.
-\endulist
-\noindent
-|\span| est rarement utile d'elle-m\^eme en dehors d'un patron,
-mais procure le m\'ecanisme de base
-pour d\'efinir ^|\multispan|.
-\enddesc
-
-\begindesc
-\cts multispan {\<nombre>}
-\explain
-Cette commande demande \`a \TeX\ que les \<nombre>
-colonnes suivantes d'une rang\'ee d'un alignement horizontal,
-ou
-que les \<nombre> rang\'ees dans une colonne d'un alignement vertical,
-doivent \^etre combin\'ees en une seule colonne ou rang\'ee (comme avec
-|\span|) et que leur patron doit \^etre omis (comme avec |\omit|).
-
-\example
-\tabskip = 13pt\halign{%
- \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
- United States&Washington&dollar&1.00\cr
- France&Paris&franc&0.174\cr
- Israel&Jerusalem &
- \multispan 2 \hfil\it(no information)\hfil \cr
- Japan&Tokyo&yen&0.0829\cr}
-|
-\produces
-\tabskip = 13pt\halign{%
- \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
- United States&Washington&dollar&1.00\cr
- France&Paris&franc&0.174\cr
- Israel&Jerusalem &
- \multispan 2 \hfil\it(no information)\hfil \cr
- Japan&Tokyo&yen&0.0829\cr}
-\nextexample
-{\hsize=1.2in \parindent=0pt
-\valign{(#)\strut&(#)\strut&(#)\strut&(#)\strut\cr
- bernaise&curry&hoisin&hollandaise\cr
- \multispan 3$$\left\{{{\rm ketchup}\atop{\rm marinara}}
- \right\}$$&mustard\cr
- rarebit&tartar\cr}}
-|
-\produces
-{\hsize=1.2in \parindent=0pt \leftskip=0pt
-\valign{(#)\strut&(#)\strut&(#)\strut&(#)\strut\cr
- bernaise&curry&hoisin&hollandaise\cr
- \multispan 3$$\left\{{{\rm ketchup}\atop{\rm marinara}}
- \right\}$$&mustard\cr
- rarebit&tartar\cr}}
-\endexample
-
-\eix^^{patron}
-\enddesc
-
-\begindesc
-\cts noalign {\rqbraces{\<mat\'eriel en mode vertical>}}
-\aux\cts noalign {\rqbraces{\<mat\'eriel en mode horizontal>}}
-\explain
-Cette commande ins\`ere
-\<mat\'eriel en mode vertical>
-apr\`es la rang\'ee cou\-rante d'un \minref{alignement} horizontal ou
-\<mat\'eriel en mode horizontal> apr\`es la colonne courante d'un \minref{alignement}
-vertical.
-Le mat\'eriel peut \^etre du texte, un ressort, un filet ou tout autre chose.
-
-L'utilisation la plus commune de |\noalign|
-est de mettre de l'espace suppl\'ementaire apr\`es une rang\'ee ou une colonne.
-Si vous voulez mettre de l'espace suppl\'ementaire apr\`es \emph{toutes\/} les rang\'ees d'un alignement
-horizontal, utilisez ^|\openup| (\xref\openup).
-
-\example
-\halign{%
- \hfil\it#\hfil\tabskip=2em&\hfil#\hfil&#&
- \hfil\$#\tabskip=0em\cr
- % The \tabskip changes prevent the rule below
- % from sticking out.
- United States&Washington&dollar&1.00\cr
- France&Paris&franc&0.174\cr
- \noalign{\smallskip\hrule\smallskip}
- Israel&Jerusalem&shekel&0.507\cr
- Japan&Tokyo&yen&0.0829\cr}
-|
-\produces
-\halign{%
- \hfil\it#\hfil\tabskip=2em&\hfil#\hfil&#&
- \hfil\$#\tabskip=0em\cr
- % The \tabskip changes prevent the rule below
- % from sticking out.
- United States&Washington&dollar&1.00\cr
- France&Paris&franc&0.174\cr
- \noalign{\smallskip\hrule\smallskip}
- Israel&Jerusalem&shekel&0.507\cr
- Japan&Tokyo&yen&0.0829\cr}
-\nextexample
-{\hsize=1in \parindent=0pt
-\valign{#\strut&#\strut&#\strut&#\strut\cr
- \noalign{\vrule width 2pt\quad}
- bernaise&curry&hoisin&hollandaise\cr
- \noalign{\vrule width 2pt\quad}
- ketchup&marinara&mayonnaise&mustard\cr
- \noalign{\vrule width 2pt\quad}
- rarebit&tartar\cr
- \noalign{\vrule width 2pt\quad}}}
-|
-\produces
-\medskip
-{\hsize=1in \parindent=0pt
-\valign{#\strut&#\strut&#\strut&#\strut\cr
- \noalign{\vrule width 2pt\quad}
- bernaise&curry&hoisin&hollandaise\cr
- \noalign{\vrule width 2pt\quad}
- ketchup&marinara&mayonnaise&mustard\cr
- \noalign{\vrule width 2pt\quad}
- rarebit&tartar\cr
- \noalign{\vrule width 2pt\quad}}}
-\endexample
-\enddesc
-
-\begindesc
-\cts tabskip {\param{ressort}}
-\explain
-Ce param\`etre sp\'ecifie le montant de ressort horizontal ou vertical
-que \TeX\ met entre les
-colonnes d'un alignement horizontal ou entre les
-rang\'ees d'un alignement vertical.
-\TeX\ met aussi le ressort |\tabskip|
-\`a gauche de la premi\`ere colonne et \`a droite de la derni\`ere colonne
-d'un alignement horizontal,
-avant la premi\`ere rang\'ee
-et apr\`es la derni\`ere rang\'ee d'un alignement vertical.
-Vous pouvez changer |\tabskip| dans un patron---%
-le changement affectera le ressort associ\'e avec tous les
-|&| suivant aussi bien que le ressort apr\`es la derni\`ere rang\'ee ou colonne.
-\example
-\halign to 3.5in{%
- \hfil\it#\tabskip = 2em plus 8pt
- \hfil&\hfil#\hfil&#\tabskip = 1em
- &\hfil\$#\tabskip = 0em\cr
- United States&Washington&dollar&1.00\cr
- France&Paris&franc&0.174\cr
- Israel&Jerusalem&shekel&0.507\cr
- Japan&Tokyo&yen&0.0829\cr}
-|
-\produces
-\halign to 3.5in{%
- \hfil\it#\tabskip = 2em plus 8pt
- \hfil&\hfil#\hfil&#\tabskip = 1em
- &\hfil\$#\tabskip = 0em\cr
- United States&Washington&dollar&1.00\cr
- France&Paris&franc&0.174\cr
- Israel&Jerusalem&shekel&0.507\cr
- Japan&Tokyo&yen&0.0829\cr}
-\nextexample
-{\hsize = 1in \parindent=0pt \tabskip=5pt
-\valign{#\strut&#\strut\tabskip = 3pt
- &#\strut&#\strut\cr
- bernaise&curry&hoisin&hollandaise\cr
- ketchup&marinara&mayonnaise&mustard\cr
- rarebit&tartar\cr}}
-|
-\produces
-{\hsize = 1in \parindent=0pt \tabskip=5pt
-\valign{#\strut&#\strut\tabskip = 3pt
- &#\strut&#\strut\cr
- bernaise&curry&hoisin&hollandaise\cr
- ketchup&marinara&mayonnaise&mustard\cr
- rarebit&tartar\cr}}
-\endexample
-\enddesc
-
-\begindesc
-\cts hidewidth {}
-\explain
-Cette commande demande \`a \TeX\ d'ignorer la largeur de l'entr\'ee de la colonne suivante dans un
-alignement horizontal. C'est pratique quand vous avez une entr\'ee qui est plus longue
-que la plupart des autres dans la m\^eme colonne
-et que vous pr\'ef\'erez avoir cette entr\'ee sortant de la colonne plut\^ot
-que rendre toutes les entr\'ees
-de la colonne plus larges. Si le |\hidewidth| est \`a gauche de
-l'entr\'ee, l'entr\'ee d\'ebordera \`a gauche~; si le |\hidewidth| est \`a
-droite de l'entr\'ee, l'entr\'ee d\'ebordera \`a droite.
-\example
-\tabskip = 25pt\halign{%
- \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
- United States&\hidewidth Washington&
- dollar&1.00\cr
- France&Paris&franc&0.174\cr
- Israel&Jerusalem&shekel&0.507\cr
- Japan&Tokyo&yen&0.0829\cr}
-|
-\produces
-\tabskip = 25pt\halign{%
- \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
- United States&\hidewidth Washington&
- dollar&1.00\cr
- France&Paris&franc&0.174\cr
- Israel&Jerusalem&shekel&0.507\cr
- Japan&Tokyo&yen&0.0829\cr}
-\endexample
-\enddesc
-
-\begindesc
-\cts everycr {\param{liste de token}}
-\explain
-\TeX\ d\'eveloppe \<token list> \`a chaque fois qu'il ex\'ecute
-un |\cr|---\`a la fin de chaque pr\'eambule,
-\`a la fin de chaque rang\'ee d'un alignement horizontal
-et \`a la fin de chaque colonne d'un alignement vertical.
-La commande |\everycr| est d\'evelopp\'ee juste apr\`es le |\cr|.
-Ainsi vous pouvez demander \`a \TeX\
-d'ex\'ecuter certaines commandes \`a la fin d'un pr\'eambule, d'une rang\'ee ou d'une colonne en
-assignant une liste de commandes \`a |\everycr|.
-
-Les tokens |\everycr| ne doivent pas inclure d'autres commandes que |\no!-align|.
-Ceci parce que
-les tokens |\everycr| r\'eappara\^\i tront apr\`es le dernier
-|\cr| de l'alignement. Une commande autre qu'un
-|\noalign| fera penser \`a \TeX\ qu'il commence une nouvelle
-rang\'ee ou colonne.
-\TeX\ se plaindra d'un |\cr| manquant, ins\`erera
-un |\cr|, ins\`erera les tokens |\everycr| \`a nouveau et r\'ep\`etera ces actions
-ind\'efiniment.
-\example
-\everycr={\noalign{\smallskip\hrule\smallskip}}
-\halign{#\tabskip = 11pt&\hfil#\hfil&\hfil#\hfil
- \tabskip = 0pt\cr
- $1$&one&first\cr
- $2$&two&second\cr
- $3$&three&third\cr}
-|
-\produces
-\medskip
-\everycr={\noalign{\smallskip\hrule\smallskip}}
-\halign{#\tabskip = 11pt&\hfil#\hfil&\hfil#\hfil
- \tabskip = 0pt\cr
- $1$&one&first\cr
- $2$&two&second\cr
- $3$&three&third\cr}
-\endexample
-
-\eix^^{alignements//commandes pour}
-\enddesc
-
-\enddescriptions
-
-
-\endchapter
-\byebye
+% This is part of the book TeX for the Impatient.
+% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
+% Copyright (C) 2004 Marc Chaudemanche pour la traduction française.
+% See file fdl.tex for copying conditions.
+
+\input fmacros
+\chapter {Commandes pour \linebreak les modes horizontaux \linebreak et verticaux}
+
+\chapterdef{hvmodes}
+
+Cette section couvre les commandes qui ont des formes correspondantes ou
+identiques dans les modes horizontaux et verticaux.
+Ces commandes fournissent des bo\^\i tes, des espaces, des filets, des r\'eglures
+et des alignements.
+Pour une explication des conventions utilis\'ees dans cette section,
+voir \headcit{Descriptions des commandes}{cmddesc}.
+
+\begindescriptions
+
+%==========================================================================
+\section {Produire des espaces}
+
+%==========================================================================
+
+\subsection {Espaces horizontaux de largeur fixe}
+
+\begindesc
+\bix^^{espace//production d'}
+\bix^^{espace horizontal}
+\cts thinspace {}
+\explain
+Cette commande produit un \minref{cr\'enage} positif
+dont la largeur \'equivaut \`a un sixi\`eme d'em
+(\xref{dimdefs})
+c'est-\`a-dire qu'il demande \`a \TeX\ de d\'eplacer sa position \`a droite de ce montant.
+C'est pratique
+quand vous avez par exemple des quotes imbriqu\'ees
+et que vous voulez les s\'eparer.
+\TeX\ ne coupe pas de ligne sur un
+|\thinspace|.\minrefs{line break}
+
+\example
+``\thinspace`A quote.'\thinspace''\par
+24,\thinspace 29--31,\thinspace 45,\thinspace 102
+|
+\produces
+``\thinspace`A quote.'\thinspace''\par
+24,\thinspace 29--31,\thinspace 45,\thinspace 102
+\endexample
+\enddesc
+
+\begindesc
+\cts negthinspace {}
+\explain
+Cette commande produit un \minref{cr\'enage} n\'egatif
+dont la largeur \'equivaut \`a un sixi\`eme d'em
+(\xref{dimdefs})
+c'est-\`a-dire qu'il demande \`a \TeX\ de d\'eplacer sa position \`a gauche de ce montant.
+C'est pratique pour rapprocher deux caract\`eres qui sont un peu trop
+\'eloign\'es l'un de l'autre.
+\TeX\ ne coupe pas de ligne sur un |\negthinspace|.\minrefs{line break}
+\example
+The horror, the horror\negthinspace, the horror of it all!!
+|
+\produces
+The horror, the horror\negthinspace, the horror of it all!
+\endexample
+\enddesc
+
+\begindesc
+\cts enspace {}
+\explain
+Cette commande produit un \minref{cr\'enage} dont la largeur \'equivaut \`a un ^{en}
+(la moiti\'e d'un em, voir \xrefpg{dimdefs}).
+\TeX\ ne coupe pas de ligne sur un |\enspace| \`a moins qu'il soit suivi d'un ressort.
+Dans une liste \`a puce, les puces sont g\'en\'eralement s\'epar\'ees du texte qui les suit
+par un |\enspace|.
+\example
+Lemma 1.\enspace There exists a white rabbit.
+|
+\produces
+Lemma 1.\enspace There exists a white rabbit.
+\endexample
+% the enspace here follows the \proclaim convention (Knuth p. 355).
+\enddesc
+
+\begindesc
+\easy\cts enskip {}
+\cts quad {}
+\cts qquad {}
+\explain
+^^{en}
+Chacune de ces commandes
+produit un bout de \minref{ressort} horizontal
+qui ne peut ni s'\'etirer ni se r\'etr\'ecir.
+\TeX\ peut couper une ligne \minrefs{line break} sur un tel ressort.
+Les largeurs de ces ressort/dimension
+(qui sont relatifs \`a la police courante)
+sont les suivantes pour |cmr10|, la police par d\'efaut de \plainTeX~:
+\medskip
+\def\distance#1{\hbox{\strut $\rightarrow$\vrule\hskip #1\vrule$\leftarrow$}}
+{\def\l#1{\hfil$#1$\thinspace em}
+\tabskip 3pc \halign{#&#&\hfil#\hfil\cr
+{\it Commande}&{\it Espace}&{\it Illustration}\cr
+\noalign{\vskip 4pt}
+|\enskip|&\l{\frac 1/2}&\distance{.5em}\cr
+|\quad|&\l1&\distance{1em}\cr
+|\qquad|&\l2&\distance{2em}\cr
+}}
+\example
+en\enskip skip; quad\quad skip; qquad\qquad skip
+|
+\produces
+en\enskip skip; quad\quad skip; qquad\qquad skip
+\endexample
+\eix^^{espace horizontal}
+\enddesc
+
+%==========================================================================
+\subsection {Espaces verticaux de largeur fixe}
+
+\begindesc
+\bix^^{espace vertical}
+\easy\cts smallskip {}
+\cts medskip {}
+\cts bigskip {}
+\explain
+Ces commandes produisent des montants d'espacement vertical
+successivement plus larges~:
+\display{{\def\bar{\kern 2pt\hrule width 5pc}
+\def\lbl#1{\hbox to 5pc{\hfil #1skip\hfil}}
+\leavevmode
+\vtop{\lbl{small}\bar\smallskip\bar}\quad
+\vtop{\lbl{med}\bar\medskip\bar}\quad\vtop{\lbl{big}\bar\bigskip\bar}}}
+\noindent
+|\smallskip| saute de $3$ points et peut s'\'etirer ou
+s'\'elargir de $1$ point. |\med!-skip| est \'equivalent \`a deux |\smallskip|s
+et |\bigskip| est \'equivalent \`a deux |\medskip|s.
+
+Ces commandes terminent un paragraphe car elles sont fondamentalement verticales.
+Les sauts qu'elles produisent
+sont ajout\'es au saut inter-para\-graphe normal.
+\example
+Hop \smallskip skip \medskip and \bigskip jump.
+|
+\produces
+Hop \smallskip skip \medskip and \bigskip jump.
+\endexample
+\enddesc
+
+\begindesc
+\cts smallskipamount {\param{ressort}}
+\cts medskipamount {\param{ressort}}
+\cts bigskipamount {\param{ressort}}
+\explain
+Ces param\`etres sp\'ecifient les montants de ressort produit par
+les commandes |\small!-skip|, |\med!-skip| et |\big!-skip|.
+En changeant ces param\`e\-tres vous changez l'effet des commandes.
+Les valeurs par d\'efaut (pour \plainTeX)
+correspondent \`a un quart d'une ligne d'espace, \`a la moiti\'e d'une ligne d'espace,
+et \`a une ligne d'espace enti\`ere.
+Nous vous recommandons de maintenir ce ratio en changeant
+ces valeurs \`a chaque fois que
+vous changez |\baselineskip| (\xref\baselineskip).
+^^|\baselineskip//et {\tt\\smallskipamount}, etc.|
+\eix^^{espace vertical}
+
+\enddesc
+
+%==========================================================================
+\subsection {Espace de taille variable}
+
+\begindesc
+\easy\cts hskip {\<dimension$_1$> {\bt plus} \<dimension$_2$> {\bt minus} \<dimension$_3$>}
+\cts vskip {\<dimension$_1$> {\bt plus} \<dimension$_2$> {\bt minus} \<dimension$_3$>}
+^^{saut vertical}^^{ressort vertical}
+^^{saut horizontal}^^{ressort horizontal}
+\bix^^{espace horizontal}
+\bix^^{espace vertical}
+\explain
+Ces commandes produisent des ressorts respectivement horizontaux et verticaux.
+Dans le cas le plus simple et le plus courant, quand il n'y a seulement que \<dimension$_1$>,
+|\hskip| saute vers la droite de \<dimension$_1$>
+et |\vskip| saute vers le bas de la page de \<dimension$_1$>.
+Plus g\'en\'erale\-ment, ces commandes
+produisent des \minref{ressort}s dont la taille naturelle est
+\<dimension$_1$>, l'\'etirement \<dimension$_2$> et le r\'etr\'ecissement \<dimension$_3$>.
+Le |plus| \<dimension$_2$>, le |minus |\<dimension$_3$>,
+ou les deux peuvent \^etre omis.
+Si les deux sont pr\'esent, le |plus| doit \^etre avant le |minus|.
+Une valeur omise
+est consid\'er\'ee \`a z\'ero. Toutes les \<dimension>s peuvent \^etre n\'egatives.
+
+Vous pouvez utiliser |\hskip| en mode math\'ematique, mais vous ne pouvez utiliser d'unit\'es |mu|
+\seeconcept{unit\'e math\'ematique}
+pour aucune des dimensions. Si vous voulez des unit\'es |mu|, utilisez |\mskip|
+(\xref\mskip) \`a la place.
+
+\example
+\hbox to 2in{one\hskip 0pt plus .5in two}
+|
+\produces
+\hbox to 2in{one\hskip 0pt plus 2in two}
+
+\doruler{\8\8}2{in}
+\nextexample
+\hbox to 2in{Help me!! I can't fit
+{\hskip 0pt minus 2in} inside this box!!}
+|
+\produces
+\hbox to 2in{Help me! I can't fit
+{\hskip 0pt minus 2in} inside this box!}
+
+\doruler{\8\8}2{in}
+\nextexample
+\vbox to 4pc{\offinterlineskip% Just show effects of \vskip.
+ \hbox{one}\vskip 0pc plus 1pc \hbox{two}
+ \vskip .5pc \hbox{three}}
+|
+\produces
+\smallskip
+\vbox to 4pc{\offinterlineskip% Just show effects of \vskip.
+ \hbox{one}\vskip 0pc plus 1pc \hbox{two}
+ \vskip .5pc \hbox{three}}
+\endexample
+\enddesc
+
+\begindesc
+\cts hglue {\<ressort>}
+\cts vglue {\<ressort>}
+^^{ressort vertical}
+^^{ressort horizontal}
+\explain
+La commande |\hglue| produit un \minref{ressort} horizontal qui ne dispara\^\i t pas sur
+une coupure de ligne. La commande |\vglue|
+produit un \minref{ressort} vertical qui ne dispara\^\i t pas sur une coupure de page.
+Pour le reste ces commandes sont comme |\hskip| et |\vskip|.
+Vous pouvez utiliser |\vglue| pour produire de l'espace blanc en haut d'une page,
+par exemple, au dessus d'un titre sur la premi\`ere page d'un document, mais
+^|\topglue| (suivant) est normalement plus appropri\'e pour cet usage.
+\enddesc
+
+\begindesc
+\cts topglue {\<ressort>}
+\explain
+\margin{Command added; recent addition to \TeX}
+Cette commande\footnote{|\topglue| a \'et\'e ajout\'e \`a \TeX\ dans la version 3.0,
+apr\`es les autres am\'enagements introduitis par le ^{\newTeX}
+(\xref{newtex}). C'est la premi\`ere d\'ecrite dans la \emph{dix-huiti\`eme\/}
+\'edition de \texbook.} fait que l'espace entre le haut de la page et le
+haut de la premi\`ere bo\^\i te de la page soit pr\'ecis\'ement \'egal \`a \<glue>.
+Le haut de la page est consid\'er\'e \^etre sur la ligne de base d'une
+ligne imaginaire de texte juste au-dessus de la ligne du haut de la page.
+Plus pr\'ecis\'ement, c'est une distance |\topskip| au dessus de l'origine donn\'ee par
+|\hoffset| et |\voffset|.
+
+Cette commande est pratique parce que \TeX\ ajuste le ressort normalement
+produit par |\topskip| d'une mani\`ere complexe. En utilisant |\top!-glue| vous pouvez
+contr\^oler la position de la premi\`ere bo\^\i te de la page sans vous inqui\'eter de
+ces ajustements.
+
+\enddesc
+
+\begindesc
+\cts kern {\<dimension>}
+\explain
+L'effet de cette commande d\'epend du mode dans lequel est \TeX\ quand
+il la rencontre~:
+\ulist
+
+\li En mode horizontal, \TeX\ d\'eplace sa position vers la droite (pour un cr\'enage positif)
+ou vers la gauche (pour un cr\'enage n\'egatif).
+
+\li En mode vertical, \TeX\ d\'eplace sa position vers le bas de la page (pour un cr\'enage positif)
+ou vers le haut de la page (pour un cr\'enage n\'egatif).
+
+\endulist
+\noindent
+Ainsi un cr\'enage positif produit un espace vide tandis qu'un cr\'enage n\'egatif
+fait que \TeX\ recule sur quelque chose qu'il a d\'ej\`a produit.
+Cette notion de cr\'enage ^^{cr\'enages}
+est diff\'erente de la notion de cr\'enage dans certains syst\`emes de composition
+typographique informatis\'es---dans \TeX, des cr\'e\-nages positifs \emph{\'ecartent}
+deux lettres au lieu de les rapprocher.
+
+Un cr\'enage est similaire \`a un
+\minref{ressort}, sauf que (a)~un cr\'enage ne peut ni s'\'etirer ni se r\'etr\'ecir,
+et (b)~\TeX\ ne coupera une ligne ou une page sur un cr\'enage que si le cr\'enage
+est suivi par un ressort et ne fait pas partie d'une formule math\'ematique.
+Si \TeX\ trouve un cr\'enage \`a la fin
+d'une ligne ou d'une page, il \'elimine le cr\'enage.
+Si vous voulez obtenir l'effet d'un cr\'enage qui ne dispara\^\i t jamais,
+utilisez ^|\hglue| ou ^|\vglue|.
+
+Vous pouvez utiliser |\kern| en mode math\'ematique, mais vous ne pouvez pas utiliser d'unit\'es |mu|
+\seeconcept{unit\'e math\'ematique}
+pour \<dimension>. Si vous voulez des unit\'es |mu|, utilisez |\mkern|
+(\xref\mkern) \`a la place.
+^^{coupures de ligne//cr\'enages sur des}
+^^{coupures de page//cr\'enages sur des}
+
+\example
+\centerline{$\Downarrow$}\kern 3pt % a vertical kern
+\centerline{$\Longrightarrow$\kern 6pt % a horizontal kern
+ {\bf Heed my warning!!}\kern 6pt % another horizontal kern
+ $\Longleftarrow$}
+\kern 3pt % another vertical kern
+\centerline{$\Uparrow$}
+|
+\produces
+\centerline{$\Downarrow$}\kern 3pt % a vertical kern
+\centerline{$\Longrightarrow$\kern 6pt % a horizontal kern
+ {\bf Heed my warning!}\kern 6pt % another horizontal kern
+ $\Longleftarrow$}
+\kern 3pt % another vertical kern
+\centerline{$\Uparrow$}
+\endexample
+\enddesc
+
+\begindesc
+\makecolumns 4/2:
+\cts hfil {}
+\cts hfill {}
+\cts vfil {}
+\cts vfill {}
+\explain
+\bix^^{ressort//\'etirable infiniment}
+Ces commandes produisent des ressorts horizontaux et verticaux \'etirables
+infiniment qui
+\'ecrasent tout \'etirement fini qui peut \^etre pr\'esent.
+|\hfil| et |\hfill| produisent des ressorts horizontaux, tandis que
+|\vfil| et |\vfill| produisent des ressorts verticaux.
+
+|\hfill| est infiniment plus grand que |\hfil|.
+Si |\hfill| et |\hfil| apparaissent dans la m\^eme \minref{bo\^\i te},
+le |\hfill| consumera toute la place suppl\'ementaire possible
+et le |\hfil| sera effectivement ignor\'e.
+|\hfill| peut \`a son tour est \'ecras\'e par |\hskip 0pt plus 1filll|.
+Les ressorts produits par
+|\hfil| et |\hfill| ne r\'etr\'ecissent jamais.
+
+Le comportement de |\vfil| et |\vfill| est analogue.
+
+\example
+\hbox to 2in{Left\hfil Middle \hfil Right}
+|
+\produces
+\hbox to 2in{Left\hfil Middle \hfil Right}
+
+
+\doruler{\8\8}2{in}
+\nextexample
+\hbox to 2in{Left\hfil Middle \hfill Right}
+|
+\produces
+\hbox to 2in{Left\hfil Middle \hfill Right}
+
+\doruler{\8\8}2{in}
+\nextexample
+\leftline{%
+\vbox to 4pc{%
+ \hbox{Top}\vfil\hbox{Middle}\vfil \hbox{Bottom}}\quad
+\vbox to 4pc{%
+ \hbox{Top}\vfil\hbox{Middle}\vfill\hbox{Bottom}}}
+|
+\produces
+\smallskip
+\leftline{%
+\vbox to 4pc{%
+ \hbox{Top}\vfil\hbox{Middle}\vfil \hbox{Bottom}}\quad
+\vbox to 4pc{%
+ \hbox{Top}\vfil\hbox{Middle}\vfill\hbox{Bottom}}}
+\endexample
+
+\eix^^{ressort//\'etirable infiniment}
+\enddesc
+
+\begindesc
+\cts hss {}
+\cts vss {}
+\explain
+Ces commandes produisent des ressorts horizontaux et
+verticaux qui sont infiniment \'etirables et
+r\'etr\'ecissables. Le ressort peut se r\'etr\'ecir
+sur une distance n\'egative, produisant l'effet de reculer sur une ligne
+(pour |\hss|) ou remonter sur une page (pour |\vss|).
+
+\example
+\line{text\hfil\hbox to 0pt{margin\hss}}
+% `margin\hss' shrinks to the zero width of the hbox.
+|
+\produces
+\line{text\hfil\hbox to 0pt{margin\hss}}
+\nextexample
+\vbox to 1pc{\hrule width 6pc % Top of box.
+ \hbox{1} \vskip 1pc\hbox to 2pc{\hfil 2}
+ % The \vss absorbs the extra distance produced by \vskip.
+ \vss \hbox to 3pc{\hfil 3}
+ \hrule width 6pc}% Bottom of box.
+|
+\produces
+\medskip
+\vbox to 1pc{\hrule width 6pc % top of box
+ \hbox{1} \vskip 1pc\hbox to 2pc{\hfil 2}
+ \vss \hbox to 3pc{\hfil 3}
+ \hrule width 6pc}% bottom of box
+\vskip 2.5pc
+\endexample
+\enddesc
+
+\begindesc
+\cts hfilneg {}
+\cts vfilneg {}
+\explain
+^^{ressort//n\'egatif}
+Ces commandes effacent l'effet d'un |\hfil| ou d'un |\vfil|
+pr\'ec\'edent. Tandis que |\hfil| et |\vfil| produisent un
+\minref{ressort} positif infiniment \'etirable, |\hfilneg| et |\vfilneg|
+produisent un ressort n\'egatif infiniment \'etirable.
+(ainsi, $n$ |\hfilneg| effacent $n$ ^|\hfil| et pareillement
+pour le |\vfilneg|.)
+L'utilisation principale de |\hfilneg| et de |\vfilneg| est de contrecarrer
+l'effet d'un |\hfil| ou d'un |\vfil| ins\'er\'e par une \minref{macro}.
+
+|\hfilneg| et |\vfilneg| ont
+la propri\'et\'e curieuse, s'ils sont les seuls ressorts infiniment \'etirables
+d'une bo\^\i te, de produire exactement le m\^eme effet que |\hfil|
+et |\vfil|.
+
+\example
+\leftline{\hfil on the right\hfilneg}
+% Cancel the \hfil that \leftline produces to the right
+% of its argument.
+|
+\produces
+\leftline{\hfil on the right \hfilneg}
+% Cancel the \hfil that \leftline produces to the right
+% of its argument.
+%
+\nextexample
+\def\a{\hbox to 1pc{\hfil 2}\vfil}
+\vbox to 4pc{\hbox{1} \vfil \a
+ \vfilneg \hbox to 2pc{\hfil 3}}
+|
+\produces
+\smallskip
+\def\a{\hbox to 1pc{\hfil 2}\vfil}
+\vbox to 4pc{\hbox{1} \vfil \a
+ \vfilneg \hbox to 2pc{\hfil 3}}
+\endexample\enddesc
+
+{\emergencystretch=2em
+\see |\hbadness| et |\vbadness| (\xref \vbadness),
+|\hfuzz| et |\vfuzz| (\xref \vfuzz),
+\conceptcit{filets}.\par}
+\eix^^{espace//production d'}
+\eix^^{espace horizontal}
+\eix^^{espace vertical}
+
+%==========================================================================
+\section {Manipuler des bo\^\i tes}
+
+%==========================================================================
+\subsection {Construire des hbox et des vbox}
+
+\begindesc
+\bix^^{commandes de \boites}
+^^{hbox//construction avec \b\tt\\hbox\e}
+%
+\cts hbox {\rqbraces{\<mat\'eriel en mode horizontal>}}
+\aux\cts hbox {{\bt to} \<dimension> \rqbraces{\<mat\'eriel en mode horizontal>}}
+\aux\cts hbox {{\bt spread} \<dimension> \rqbraces{\<mat\'eriel en mode horizontal>}}
+\explain
+Ces commandes produisent une hbox
+(\minref{bo\^\i te} horizontale) contenant du \<mat\'eriel en mode horizontal>.
+Les accolades autour du \<mat\'eriel en mode horizontal> d\'efinissent un groupe.
+\TeX\ ne coupe pas le \<mat\'eriel en mode horizontal> en plusieurs lignes,
+puisqu'il est en mode horizontal restreint quand il assemble la bo\^\i te.
+\TeX\ ne change pas la taille de la bo\^\i te une fois qu'elle est produite.
+
+|\hbox| est souvent utile quand vous voulez conserver du texte sur une seule ligne.
+Si votre utilisation de |\hbox| emp\^eche \TeX\ de couper des lignes de mani\`ere acceptable,
+\TeX\ se plaindra d'un ``overfull hbox''.
+
+La largeur du hbox d\'epend des arguments de |\hbox|~:
+\ulist\compact
+\li Si vous ne sp\'ecifiez que du \<mat\'eriel en mode horizontal>,
+le hbox aura sa \minref{largeur} naturelle.
+\li Si vous sp\'ecifiez |to| \<dimension>, la largeur du hbox sera \<dimension>.
+\li Si vous sp\'ecifiez |spread| \<dimension>, la largeur du hbox sera
+sa largeur naturelle plus \<dimension>, c'est-\`a-dire, le hbox s'allongera de
+\<dimension>.
+\endulist
+
+La commande ^|\hfil| (\xref\hfil) est utile pour remplir un
+hbox d'espace vide quand le mat\'eriel dans la bo\^\i te n'est pas aussi large que la
+largeur de la bo\^\i te.
+\example
+\hbox{ugly suburban sprawl}
+\hbox to 2in{ugly \hfil suburban \hfil sprawl}
+\hbox spread 1in {ugly \hfil suburban \hfil sprawl}
+% Without \hfil in the two preceding lines,
+% you'd get `underfull hbox'es.
+|
+\produces
+\hbox{ugly suburban sprawl}
+\hbox to 2in{ugly \hfil suburban \hfil sprawl}
+\hbox spread 1in {ugly \hfil suburban \hfil sprawl}
+% Without \hfil in the two preceding lines,
+% you'd get `underfull hbox'es.
+
+\doruler{\8\8\8}3{in}
+\endexample
+\enddesc
+
+\begindesc
+\cts vtop {\<mat\'eriel en mode vertical>}
+\aux\cts vtop {{\bt to} \<dimension> \rqbraces{\<mat\'eriel en mode vertical>}}
+\aux\cts vtop {{\bt spread} \<dimension> \rqbraces{\<mat\'eriel en mode vertical>}}
+\cts vbox {\rqbraces{\<mat\'eriel en mode vertical>}}
+\aux\cts vbox {{\bt to} \<dimension> \rqbraces{\<mat\'eriel en mode vertical>}}
+\aux\cts vbox {{\bt spread} \<dimension> \rqbraces{\<mat\'eriel en mode vertical>}}
+\explain
+^^{hbox//construction avec \b\tt\\hbox\e}
+Ces commandes
+produisent une \minref{vbox} (\minref{bo\^\i te} verticale)
+contenant du \<ma\-t\'eriel en mode vertical>.
+Les accolades autour du \<mat\'eriel en mode vertical> d\'efinissent un groupe.
+\TeX\ est en mode vertical interne quand il assemble la bo\^\i te.
+\TeX\ ne change pas la taille de la bo\^\i te une fois qu'elle est produite.
+
+La diff\'erence entre |\vtop| et |\vbox| est o\`u \TeX\ met
+le point de r\'ef\'erence de la vbox construite.
+Normalement, le point de r\'ef\'erence obtenu de |\vtop| tend \`a \^etre sur ou pr\`es
+du haut de la vbox construite,
+tandis que
+le point de r\'ef\'erence obtenu de |\vbox| tend \`a \^etre sur ou pr\`es
+du bas de la vbox construite.
+Ainsi une rang\'ee de vbox toutes construites avec |\vtop|
+tendra \`a avoir leurs hauts \`a peu pr\`es align\'es,
+tandis qu'une rang\'e de vbox toutes construites avec |\vbox|
+tendra \`a avoir leurs bas \`a peu pr\`es align\'es.
+
+|\vtop| et |\vbox| sont souvent pratiques
+quand vous voulez garder du texte ensemble sur une seule page.
+(Pour cela, peu importe normalement quelle commande vous utilisez.)
+Si votre usage de ces commandes
+emp\^eche \TeX\ de couper des pages d'une mani\`ere acceptable,
+\TeX\ se plaindra qu'il a trouv\'e un ``overfull'' ou un ``underfull vbox while
+|\output| is active''.
+
+La hauteur d'une vbox d\'epend des
+arguments de |\vtop| ou |\vbox|.
+Pour |\vbox|, \TeX\ d\'etermine la hauteur de la mani\`ere suivante~:
+\ulist\compact
+\li Si vous ne sp\'ecifiez que du \<mat\'eriel en mode vertical>,
+la vbox aura sa hauteur naturelle.
+\li Si vous sp\'ecifiez |to| \<dimension>,
+la hauteur de la vbox sera fix\'ee \`a \<dimension>.
+\li Si vous sp\'ecifiez |spread| \<dimension>, la hauteur de la vbox sera
+sa hauteur naturelle plus \<dimension>, c'est-\`a-dire,
+que la hauteur de la vbox sera \'etir\'ee verticalement de \<dimension>.
+\endulist
+\noindent
+Pour |\vtop|,
+\TeX\ construit la bo\^\i te en utilisant ses r\`egles pour |\vbox| et ensuite
+r\'epartit l'extension verticale entre la hauteur et la profondeur comme
+d\'ecrit ci-dessous.
+
+Normalement, la largeur d'une vbox construite est la largeur de l'\'el\'e\-ment le plus
+large contenu\footnote
+{Plus pr\'ecis\'ement, c'est la distance du point de r\'ef\'erence au cot\'e le plus \`a
+droite de la vbox construite. Par cons\'equent,
+si vous d\'eplacez un des \'el\'ements vers la droite en utilisant ^|\moveright| ou
+^|\moveleft| (avec une distance n\'egative),
+la vbox construite pourra \^etre plus large.}.
+Les r\`egles de r\'epartitions de l'extension verticale entre la
+hauteur et la profondeur sont plus compliqu\'ees~:
+\ulist
+\li Pour |\vtop|,
+la hauteur est la hauteur de son premier \'el\'ement, si cet \'el\'ement est une bo\^\i te ou un filet.
+Autrement la hauteur est \`a z\'ero. La profondeur est toute extension verticale
+restante quand la hauteur a \'et\'e enlev\'ee.
+\li Pour |\vbox|,
+la profondeur est la profondeur de son dernier \'el\'ement, si cet \'el\'ement est une bo\^\i te ou un filet.
+Autrement la profondeur est \`a z\'ero. La hauteur est toute extension verticale
+restante quand la profondeur a \'et\'e enlev\'ee%
+\footnote{En fait, il y a une complication suppl\'ementaire.
+Supposez qu'apr\`es que la profondeur ait \'et\'e d\'etermin\'ee
+en utilisant les deux r\`egles pr\'ec\'edentes, la profondeur devienne plus grande que
+^|\boxmaxdepth|.
+Alors la profondeur est r\'eduite \`a |\boxmaxdepth| et la hauteur est ajust\'ee
+en cons\'equence.}.
+\endulist
+
+La commande |\vfil| (\xref\vfil) est pratique pour remplir une vbox
+^^|\vfil//remplir une vbox|
+avec de l'espace vide quand le mat\'eriel dans la bo\^\i te n'est pas aussi grand que
+l'extention verticale de la bo\^\i te.
+\example
+\hbox{\hsize = 10pc \raggedright\parindent = 1em
+\vtop{In this example, we see how to use vboxes to
+produce the effect of double columns. Each vbox
+contains two paragraphs, typeset according to \TeX's
+usual rules except that it's ragged right.\par
+This isn't really the best way to get true double
+columns because the columns}
+\hskip 2pc
+\vtop{\noindent
+aren't balanced and we haven't done anything to choose
+the column break automatically or even to fix up the
+last line of the first column.\par
+However, the technique of putting running text into a
+vbox is very useful for placing that text where you
+want it on the page.}}
+|
+\produces
+\hbox{\hsize = 10pc \raggedright\parindent = 1em
+\vtop{In this example, we see how to use vboxes to
+produce the effect of double columns. Each vbox
+contains two paragraphs, typeset according to \TeX's
+usual rules except that it's ragged right.\par
+
+This isn't really the best way to get true double
+columns because the columns}
+\hskip 2pc
+\vtop{\noindent
+aren't balanced and we haven't done anything to choose
+the column break automatically or even to fix up the
+last line of the first column.\par
+
+However, the technique of putting running text into a
+vbox is very useful for placing that text where you
+want it on the page.}}
+\nextexample
+\hbox{\hsize = 1in \raggedright\parindent = 0pt
+\vtop to .75in{\hrule This box is .75in deep. \vfil\hrule}
+\qquad
+\vtop{\hrule This box is at its natural depth. \vfil\hrule}
+\qquad
+\vtop spread .2in{\hrule This box is .2in deeper than
+ its natural depth.\vfil\hrule}}
+|
+\produces
+\hbox{\hsize = 1in \raggedright\parindent=0pt
+\vtop to .75in{\hrule This box is .75in deep. \vfil\hrule}
+\qquad
+\vtop{\hrule This box is at its natural depth. \vfil\hrule}
+\qquad
+\vtop spread .2in{\hrule This box is .2in deeper than
+ its natural depth.\vfil\hrule}}
+\nextexample
+% See how \vbox lines up boxes at their bottoms
+% instead of at their tops.
+\hbox{\hsize = 1in \raggedright
+\vbox to .5in{\hrule This box is .5in deep.\vfil\hrule}
+\qquad
+\vbox to .75in{\hrule This box is .75in deep.\vfil\hrule}}
+|
+\produces
+\hbox{\hsize = 1in \raggedright
+\vbox to .5in{\hrule This box is .5in deep.\vfil\hrule}
+\qquad
+\vbox to .75in{\hrule This box is .75in deep.\vfil\hrule}}
+\vskip 16pt % to avoid running into the next command description
+\endexample
+\enddesc
+
+\begindesc
+\margin{Two commands interchanged here.}
+\cts boxmaxdepth {\param{dimension}}
+\explain
+Ce param\`etre contient une dimension $D$.
+\TeX\ ne construira pas une bo\^\i te dont la profondeur d\'epassera $D$.
+Si vous produisez une bo\^\i te dont la profondeur $d$ doit d\'epasser $D$,
+\TeX\ transf\`erera la
+profondeur exc\'edentaire dans la hauteur de la bo\^\i te, en abaissant en r\'ealit\'e le
+\minref{point de r\'ef\'erence} de la bo\^\i te de $d-D$.
+Si vous mettez |\boxmaxdepth| \`a z\'ero, \TeX\ alignera une rang\'ee de vbox
+de telle mani\`ere que leurs fronti\`eres du bas seront toutes sur la m\^eme ligne horizontale.
+\PlainTeX\ met |\boxmaxdepth| \`a |\maxdimen| \ctsref{\maxdimen},
+donc |\boxmaxdepth| n'affectera pas vos bo\^\i tes \`a moins que vous le changiez.
+\enddesc
+
+\begindesc
+\cts underbar {\<argument>}
+\explain
+Cette commande met \<argument> dans une \minref{hbox}
+et la souligne sans faire attention \`a tout ce que d\'epasse sous la
+\minref{ligne de base} de la bo\^\i te.
+\example
+\underbar{Why not learn \TeX?}
+|
+\produces
+\underbar{Why not learn \TeX?}
+\endexample
+\enddesc
+
+\begindesc
+\cts everyhbox {\param{liste de token}}
+\cts everyvbox {\param{liste de token}}
+\explain
+Ces param\`etres contiennent des liste de token que \TeX\ d\'eveloppe au d\'ebut de
+toutes \minref{hbox} ou \minref{vbox} qu'il construit.
+Tout \'el\'ement r\'esultant de l'expansion devient alors
+le d\'ebut de la liste d'\'el\'ements pour la bo\^\i te.
+Par d\'efaut, ces listes de token sont vides.
+\enddesc
+
+%==========================================================================
+\subsection {Remplir et r\'ecuperer le contenu de bo\^\i tes}
+
+\begindesc
+\bix^^{registres de \boite}
+%
+\cts setbox {\<registre>\thinspace{\bt =}\thinspace\<bo\^\i te>}
+\cts box {\<registre>}
+\explain
+^^{assignements//de \boites}
+Ces commandes remplissent et r\'ecup\`erent respectivement le contenu
+du registre de bo\^\i te
+dont le num\'ero est \<registre>.
+Notez que vous remplissez un registre de bo\^\i te d'une mani\`ere un peu diff\'erente de celle
+utilis\'ee pour les autres types de registres~: vous utilisez
+|\setbox|$\,n$~|=| plut\^ot que |\box|$\,n$~|=|.
+
+\emph{R\'ecup\'erer le contenu d'un registre de bo\^\i te
+avec ces commandes a l'effet secondaire d'enlever ce qu'il contient,
+donc le registre de bo\^\i te devient vide.} Si vous ne voulez pas que cela arrive,
+vous pouvez utiliser |\copy| (voir ci-dessous) pour r\'ecup\'erer le contenu.
+Vous devez utiliser |\box| de pr\'ef\'erence \`a |\copy|
+quand vous n'avez plus besoin du contenu d'un registre de bo\^\i te apr\`es l'avoir utilis\'e,
+de mani\`ere \`a ne pas augmenter la m\'emoire de \TeX\ en la remplissant avec des bo\^\i tes obsol\`etes.
+\example
+\setbox0 = \hbox{mushroom}
+\setbox1 = \vbox{\copy0\box0\box0}
+\box1
+|
+\produces
+\setbox0 = \hbox{mushroom}
+\setbox1 = \vbox{\copy0\box0\box0}
+\box1
+\endexample
+\enddesc
+
+\begindesc
+\cts copy {\<registre>}
+\explain
+^^{\boites//copie}\minrefs{box}
+Cette commande
+produit une copie d'un registre de bo\^\i te \<registre>.
+Cette commande est utile quand vous voulez r\'ecup\'erer le contenu d'un registre
+de bo\^\i te mais ne voulez pas en d\'etruire le contenu.
+(R\'ecup\'erer le contenu d'un registre avec ^|\box| rend le registre vide.)
+\example
+\setbox0 = \hbox{good }
+Have a \copy0 \box0 \box0 day!!
+|
+\produces
+\setbox0 = \hbox{good }
+Have a \copy0 \box0 \box0 day!
+\endexample
+\enddesc
+
+\begindesc
+\cts unhbox {\<registre>}
+\cts unvbox {\<registre>}
+^^{\boites//extraction de contenu de}
+\explain
+Ces commandes produisent la liste contenue dans un registre de bo\^\i te \<registre> et rend
+ce registre de bo\^\i te vide.
+|\unhbox| s'applique aux registres de bo\^\i te contenant
+des hbox et |\unvbox| s'applique aux registres de bo\^\i te contenant des vbox.
+Vous devez utiliser ces commandes en pr\'ef\'erence \`a |\unhcopy| et |\unvcopy|
+(voir ci-dessous)
+quand vous n'avez pas besoin de ce qu'il y a dans le registre de bo\^\i te apr\`es l'avoir utilis\'e,
+de mani\`ere \`a ne pas augmenter la m\'emoire de \TeX\ en la remplissant avec des bo\^\i tes obsol\`etes.
+\example
+\setbox0=\hbox{The Mock Turtle sighed deeply, and
+drew the back of one flapper across his eyes. }
+\setbox1=\hbox{He tried to speak, but sobs choked
+ his voice. }
+\unhbox0 \unhbox1
+% \box0 \box1 would set two hboxes side by side
+% (and produce a badly overfull line).
+\box1 % produces nothing
+|
+\produces
+\setbox0=\hbox{The Mock Turtle sighed deeply, and
+drew the back of one flapper across his eyes. }
+\setbox1=\hbox{He tried to speak, but sobs choked
+ his voice. }
+\unhbox0 \unhbox1
+% \hbox0 \hbox1 would set two hboxes side by side
+% (and produce a badly overfull line).
+\box1 % Produces nothing.
+\endexample
+\enddesc
+
+\begindesc
+\cts unhcopy {\<registre>}
+\cts unvcopy {\<registre>}
+^^{\boites//extraction du contenu de}
+^^{\boites//copie}\minrefs{box}
+\explain
+Ces commandes produisent la liste contenue dans un registre de bo\^\i te \<registre> et
+sans d\'eranger le contenu des registres.
+|\unhbox| s'applique aux registres de bo\^\i te contenant
+des hbox et |\unvbox| s'applique aux registres de bo\^\i te contenant des vbox.
+\example
+\setbox0=\hbox{The Mock Turtle sighed deeply, and
+drew the back of one flapper across his eyes. }
+\setbox1=\hbox{He tried to speak, but sobs choked his
+ voice. }
+\unhcopy0 \unhcopy1\par\noindent
+% \box0 \box1 would set two hboxes side by side
+% (and produce a badly overfull line).
+\box1 % Produces an hbox (which can't be broken).
+|
+\produces
+\setbox0=\hbox{The Mock Turtle sighed deeply, and
+drew the back of one flapper across his eyes. }
+\setbox1=\hbox{He tried to speak, but sobs choked his
+ voice. }
+\unhcopy0 \unhcopy1\par\noindent
+% \hbox0 \hbox1 would set two hboxes side by side
+% (and produce a badly overfull line).
+\box1 % produces an hbox (which can't be broken)
+\endexample
+\enddesc
+
+\see |\wd|, |\dp|, |\ht| (\xref\ht).
+\eix^^{registres de \boite}
+
+%==========================================================================
+\subsection {D\'eplacer des bo\^\i tes}
+
+\begindesc
+\cts moveleft {\<dimension> \<bo\^\i te>}
+\cts moveright {\<dimension> \<bo\^\i te>}
+\bix^^{\boites//d\'eplacement}
+\minrefs{box}
+\explain
+Ces commandes d\'eplacent \<bo\^\i te> \`a gauche ou \`a droite de \<dimension> (qui peut \^etre
+n\'egatif). Vous ne pouvez appliquer |\moveleft| et |\moveright| qu'\`a des bo\^\i tes
+qui sont dans une \minref{liste verticale}.
+\example
+\vbox{\vbox{Phoebe}\vbox{walked}%
+\moveleft 20pt\vbox{a}\moveright 20pt\vbox{crooked}%
+\vbox{mile.}}
+|
+\produces
+\hfuzz = \maxdimen
+\vbox{\vbox{Phoebe}\vbox{walked}%
+\moveleft 20pt\vbox{a}\moveright 20pt\vbox{crooked}%
+\vbox{mile.}}
+\endexample
+\enddesc
+
+\begindesc
+\cts lower {\<dimension> \<bo\^\i te>}
+\cts raise {\<dimension> \<bo\^\i te>}
+\explain
+Ces commandes d\'eplacent \<bo\^\i te> en haut ou en bas de \<dimension>
+(qui peut \^etre n\'egatif).
+Vous ne pouvez appliquer |\moveleft| et |\moveright| qu'\`a des bo\^\i tes
+qui sont dans une \minref{liste horizontale}.
+\example
+Are you feeling \lower 6pt \hbox{depressed} about the
+ \raise 6pt \hbox{bump} on your nose?
+|
+\produces
+Are you feeling \lower 6pt \hbox{depressed} about the
+ \raise 6pt \hbox{bump} on your nose?
+\endexample
+
+\eix^^{\boites//d\'eplacement}
+\enddesc
+
+%==========================================================================
+\subsection {Dimensions des registres de bo\^\i tes}
+
+\begindesc
+\bix^^{registres de \boite}
+\bix^^{dimensions//de registres de \boite}
+\cts ht {\<registre>\param{dimension}}
+\cts dp {\<registre>\param{dimension}}
+\cts wd {\<registre>\param{dimension}}
+\explain
+Ces param\`etres font r\'ef\'erence \`a la ^{hauteur}, la ^{profondeur} et la ^{largeur}
+respectivement du \minref{registre} de \minref{bo\^\i te} \<registre>.
+Vous pouvez les utiliser pour conna\^\i tre les dimensions d'une bo\^\i te.
+Vous pouvez aussi changer les dimensions d'une bo\^\i te, mais ce n'est pas une mince affaire~;
+si vous voulez \^etre aventureux vous pouvez
+apprendre tout sur cela dans les \
+{pages~388--389}{448--449}.
+\example
+\setbox0 = \vtop{\hbox{a}\hbox{beige}\hbox{bunny}}%
+The box has width \the\wd0, height \the\ht0,
+and depth \the\dp0.
+|
+\produces
+\setbox0 = \vtop{\hbox{a}\hbox{beige}\hbox{bunny}}%
+The box has width \the\wd0, height \the\ht0,
+and depth \the\dp0.
+\endexample
+\eix^^{registres de \boite}
+\eix^^{dimensions//de registres de \boite}
+\enddesc
+
+%==========================================================================
+\subsection {Struts, fantomes et bo\^\i tes vides}
+
+\begindesc
+\margin{This subsection is a merger of two previous subsections.
+The commands have also been reordered.}
+\bix^^{struts}
+\cts strut {}
+\explain
+Cette commande produit une bo\^\i te dont la largeur est \`a z\'ero
+et dont la hauteur (|8.5pt|) et la profondeur (|3.5pt|)
+sont celles d'une ligne de caract\`ere plus ou moins en |cmr10|,
+la police par d\'efaut de \plainTeX.
+Son utilisation principale est de forcer des lignes \`a avoir la m\^eme hauteur
+quand vous avez d\'ebranch\'e le ressort inter-ligne de \TeX\ avec
+|\offinter!-lineskip| ^^|\offinterlineskip| ou une commande similaire,
+par exemple, quand vous construisez un alignement.
+Si la hauteur naturelle d'une ligne est
+trop petite, vous pouvez la ramener au standard en incluant un |\strut|
+dans la ligne. Le strut forcera la hauteur et la profondeur de la ligne
+\`a \^etre plus grande, mais il n'imprime rien ni ne consomme aucun espace
+horizontal.
+
+Si vous mettez des caract\`eres d'une police qui est plus grande ou plus petite que |cmr10|,
+vous devez red\'efinir |\strut| pour ce contexte.
+\example
+\noindent % So we're in horizontal mode.
+\offinterlineskip % So we get the inherent spacing.
+% The periods in this vbox are not vertically equidistant.
+\vtop{\hbox{.}\hbox{.(}\hbox{.x}
+ \hbox{.\vrule height 4pt depth 0pt}}\qquad
+% The periods in this vbox are vertically equidistant
+% because of the struts.
+\vtop{\hbox{.\strut}\hbox{.(\strut}\hbox{.x\strut}
+ \hbox{.\vrule height 4pt depth 0pt\strut}}
+|
+\produces
+\noindent % So we're in horizontal mode.
+\offinterlineskip % So we get the inherent spacing.
+% The periods in this vbox are not vertically equidistant.
+\vtop{\hbox{.}\hbox{.(}\hbox{.x}
+ \hbox{.\vrule height 4pt depth 0pt}}\qquad
+% The periods in this vbox are vertically equidistant
+% because of the struts.
+\vtop{\hbox{.\strut}\hbox{.(\strut}\hbox{.x\strut}
+ \hbox{.\vrule height 4pt depth 0pt\strut}}
+\endexample
+\enddesc
+
+\begindesc
+\cts mathstrut {}
+\explain
+Cette commande produit une formule fant\^ome dont la largeur est \`a z\'ero
+et dont la largeur et la hauteur sont les m\^emes que celle d'une parenth\`ese gauche.
+|\mathstrut| est en fait d\'efini comme `|\vphantom(|'.
+Son utilisation principale est d'obtenir des radicaux, soulign\'es et surlign\'es align\'es
+avec d'autres radicaux, soulign\'es et surlign\'es d'une formule.
+C'est un peu comme ^|\strut| (\xref \strut),
+sauf qu'il s'ajuste lui-m\^eme aux diff\'erents \minref{style}s
+qui peuvent appara\^\i tre dans une formule math\'ematique.
+\example
+$$\displaylines{
+\overline{a_1a_2} \land \overline{b_1b_2}
+\quad{\rm versus}\quad \overline{a_1a_2\mathstrut}
+ \land \overline{b_1b_2\mathstrut}\cr
+\sqrt{\epsilon} + \sqrt{\xi} \quad{\rm versus}\quad
+\sqrt{\epsilon\mathstrut} + \sqrt{\xi\mathstrut}\cr}$$
+|
+\dproduces
+\kern 4pt
+$$\displaylines{
+\overline{a_1a_2} \land \overline{b_1b_2}
+\quad{\rm versus}\quad \overline{a_1a_2\mathstrut}
+ \land \overline{b_1b_2\mathstrut}\cr
+\sqrt{\epsilon} + \sqrt{\xi} \quad{\rm versus}\quad
+\sqrt{\epsilon\mathstrut} + \sqrt{\xi\mathstrut}\cr}$$
+\endexample
+\eix^^{struts}
+\enddesc
+
+\begindesc
+\cts phantom {\<argument>}
+\explain
+\bix^^{\boites//fant\^ome}
+\bix^^{fant\^omes}
+Cette commande produit une \minref{bo\^\i te} vide
+ayant la m\^eme taille et placement
+que \<argument> aurait s'il \'etait compos\'e.
+Une utilisation de |\phantom| est de r\'eserver de l'espace pour un symbole qui pour certaines
+raisons demande \`a \^etre dessin\'e \`a la main.
+\example
+$1\phantom{9}2$
+|
+\produces
+$1\phantom{9}2$
+\endexample
+\enddesc
+
+\begindesc
+\cts hphantom {\<argument>}
+\cts vphantom {\<argument>}
+\explain
+Ces commandes produisent des bo\^\i tes\minrefs{bo\^\i te}\ fant\^ome qui
+n'impriment rien~:
+\ulist\compact
+\li |\hphantom| produit une bo\^\i te avec la m\^eme largeur que \<argument>
+mais de hauteur et profondeur z\'ero.
+\li |\vphantom| produit une bo\^\i te avec les m\^emes hauteur et profondeur que \<argu\-ment>
+mais de largeur z\'ero.
+\endulist
+\noindent
+Leur usage principal est de forcer une sous-formule \`a avoir un dimension
+horizontale ou verticale minimum.
+\example
+$$\left[\vphantom{u\over v}t\right] \star
+ \left[{u\over v}\right]\quad
+ \{\hphantom{xx}\}$$
+|
+\dproduces
+\kern 4pt
+$$\left[\vphantom{u\over v}t\right] \star
+ \left[{u\over v}\right]\quad
+ \{\hphantom{xx}\}$$
+\endexample
+\enddesc
+
+\begindesc
+\cts smash {\<argument>}
+\explain
+Cette commande compose \<argument>,
+mais force la hauteur et la profondeur de sa \minref{bo\^\i te} contenante \`a z\'ero.
+Vous pouvez utiliser |\smash| et |\vphantom| en combinaison pour donner \`a une sous-formule
+toutes hauteurs et profondeurs que vous d\'esirez.
+\example
+$${\smash{r_m \brace r_n}\vphantom{r}} \Longrightarrow r$$
+|
+\dproduces
+\kern 4pt
+$${\smash{r_m \brace r_n}\vphantom{r}} \Longrightarrow r$$
+\endexample
+\eix^^{\boites//fant\^ome}
+\eix^^{fant\^omes}
+\enddesc
+
+\begindesc
+^^{\boites//vides}
+\cts null {}
+\explain
+Cette commande produit une \minref{hbox} vide.
+\example
+\setbox0 = \null
+The null box \null has width \the\wd0, height \the\ht0,
+and depth \the\dp0.
+|
+\produces
+\setbox0 = \null
+The null box \null has width \the\wd0, height \the\ht0,
+and depth \the\dp0.
+\endexample
+\enddesc
+
+
+%==========================================================================
+\subsection {Param\`etres faisant partie des bo\^\i tes mal form\'ees}
+
+\begindesc
+\bix^^{\boites//overfull}
+\bix^^{\boites//underfull}
+\cts overfullrule {\param{dimension}}
+\explain
+Ce param\`etre sp\'ecifie la largeur du filet
+que \TeX\ positionne pour un ``overfull \minref{hbox}''.
+\PlainTeX\ le met \`a |5pt|.
+\enddesc
+
+\begindesc
+\cts hbadness {\param{nombre}}
+\cts vbadness {\param{nombre}}
+\explain
+Ces param\`etres sp\'ecifient les seuils de \minref{badness} horizontal
+et vertical pour rapporter des ``underfull'' ou ``overfull boxes''
+|\hbadness| s'applique aux hbox et |\vbadness| s'applique aux vbox.
+Si la m\'ediocrit\'e d'une bo\^\i te construite d\'epasse le seuil,
+\TeX\ reportera une erreur. Si vous augmentez les seuils
+(les valeurs par d\'efaut de \plainTeX\ sont de $1000$),
+\TeX\ sera moins amen\'e \`a se plaindre.
+Notez que les valeurs de |\hbadness| et |\vbadness| n'ont pas d'effet sur
+l'apparence de votre document compos\'e~; ils n'affectent que le message d'erreur
+que vous obtenez.
+Voir la \knuth{page~302}{353} pour une description pr\'ecise
+sur comment \TeX\ d\'ecide quand se plaindre d'``overfull'' ou d'``underfull
+box''.
+
+\margin{The material on tolerance was inappropriate here and has been
+removed. A new example replaces it.}
+\example
+\hbadness = 10000 % Suppress any hbadness complaints.
+\hbox to 2in{a b}\par
+\hbadness = 500 % Report hbadness exceeding 500.
+\hbox to 2in{a\hskip 0pt plus .5in b}
+|
+\logproduces
+Underfull \hbox (badness 5091) detected at line 4
+\tenrm a b
+
+\hbox(6.94444+0.0)x144.54, glue set 3.70787
+.\tenrm a
+.\glue 0.0 plus 36.135
+.\tenrm b
+|
+\endexample
+\enddesc
+
+\begindesc
+\cts badness {}
+\explain
+Cette commande donne la valeur num\'erique de la m\'ediocrit\'e de la \minref{bo\^\i te}
+(aussi bien horizontale que verticale) que \TeX\ a le plus r\'ecemment produit.
+Si la bo\^\i te \'etait ``overfull'', |\badness| sera de $1000000$~; dans tous les autres cas
+il sera entre $0$ et $10000$.
+\enddesc
+
+\begindesc
+\cts hfuzz {\param{dimension}}
+\cts vfuzz {\param{dimension}}
+\explain
+Ces param\`etres sp\'ecifient les valeurs dont une
+\minref{bo\^\i te} peut d\'epasser sa taille naturelle avant que \TeX\ la consid\`ere comme
+\'etant overfull. ^^{\boites//overfull}
+|\hfuzz| s'applique aux hbox et |\vfuzz| s'applique aux vbox.
+\PlainTeX\ met ces deux param\`etres \`a |0.1pt|.
+\example
+\hfuzz = .5in
+\hbox to 2in{This box is longer than two inches.}
+% No error results
+|
+\produces
+\hfuzz = .5in
+\hbox to 2in{This box is longer than two inches.}
+% No error results
+\doruler{\8\8\8}3{in}
+\endexample
+
+\eix^^{\boites//overfull}
+\eix^^{\boites//underfull}
+\eix^^{commandes de \boites}
+\enddesc
+
+\see |\tolerance| \ctsref{\tolerance}.
+%==========================================================================
+\section {Retrouver le dernier \'el\'ement d'une liste}
+
+\begindesc
+^^{\boites//derni\`ere \boite\ dans une liste}
+^^{cr\'enages//dernier cr\'enage dans une liste}
+^^{p\'enalit\'es//derni\`ere p\'enalit\'e dans une liste}
+^^{ressort//dernier \'el\'ement de ressort dans une liste}
+\margin{This section has been moved in its entirety from the chapter
+(`Commands for general operations')}
+\cts lastkern {}
+\cts lastskip {}
+\cts lastpenalty {}
+\cts lastbox {}
+\explain
+Ces s\'equences de contr\^ole donnent la valeur du dernier \'el\'ement de la liste
+courante. Ce ne sont pas de vraies commandes parce qu'elles ne peuvent appara\^\i tre que
+comme partie d'un argument.
+Si le dernier \'el\'ement de la liste n'est pas du type indiqu\'e,
+elles donnent une valeur z\'ero (ou une bo\^\i te vide, dans le cas de |\lastbox|).
+Par exemple,
+si le dernier \'el\'ement de la liste courante est un \minref{cr\'enage},
+|\lastkern| donne la dimension de ce cr\'enage~; si ce
+n'est pas un cr\'enage, il donne une dimension de $0$.
+
+Utiliser |\lastbox| a l'effet suppl\'ementaire d'enlever la derni\`ere bo\^\i te de
+la liste.
+Si vous voulez que le |\last!-box| original reste dans la liste, vous
+devez en ajouter une copie dans la liste.
+|\last!-box| n'est pas permise dans une liste math\'ematique ou dans la liste
+verticale~principale.
+
+Ces s\'equences de contr\^ole sont
+plus utiles apr\`es des appels de macro qui peuvent avoir ins\'er\'e des entit\'es
+du genre indiqu\'e.
+
+\example
+\def\a{two\kern 15pt}
+one \a\a\hskip 2\lastkern three\par
+% Get three times as much space before `three'.
+\def\a{\hbox{two}}
+one \a
+\setbox0 = \lastbox % Removes `two'.
+three \box0.
+|
+\produces
+\def\a{two\kern 15pt}
+one \a\a\hskip 2\lastkern three\par
+% get three times as much space before `three'
+\def\a{\hbox{two}}
+one \a
+\setbox0 = \lastbox % removes `two'
+three \box0.
+\endexample
+\enddesc
+
+\begindesc
+\cts unkern {}
+\cts unskip {}
+\cts unpenalty {}
+\explain
+Si le dernier \'el\'ement de la liste courante est de type \minref{cr\'enage},
+\minref{ressort} ou \minref{p\'enalit\'e} respectivement, ces commandes l'enl\`event
+de cette liste. Si l'\'el\'ement n'est pas du bon type, ces commandes n'ont
+pas d'effet. Comme ^|\lastbox|, vous ne pouvez pas les appliquer \`a des listes en
+mode math\'ema\-tique ou \`a la liste verticale principale.
+Ces commandes
+sont plus pratiques apr\`es un appel de macro connu pour avoir ins\'er\'e
+un \'el\'ement sp\'ecifique que vous ne voulez pas ici.
+\TeX\ ne procure pas de commande ^|\unbox| parce que |\lastbox| produit
+\`a peu pr\`es le m\^eme effet.
+\enddesc
+
+
+%==========================================================================
+\section {filets et r\`eglures}
+
+\begindesc
+\bix^^{filets}
+\bix^^{filets horizontaux}
+\bix^^{filets verticaux}
+%
+\cts hrule {}
+\aux\cts hrule {\bt height \<dimension> width \<dimension> depth \<dimension>}
+\cts vrule {}
+\aux\cts vrule {{\bt width \<dimension> height \<dimension> depth \<dimension>}}
+\explain
+La commande |\hrule| produit un filet horizontal. La commande |\vrule|
+produit un filet vertical. Vous pouvez sp\'ecifier tout ou une partie des largeur,
+hauteur et profondeur du filet---\TeX\ apporte des valeurs par d\'efaut pour celles
+que vous omettez. Vous pouvez donner les dimensions du filet dans n'importe quel ordre~;
+les formes list\'ees ci-dessus vous montrent simplement deux combinaisons possibles. Vous
+pouvez m\^eme donner une dimension d'un type donn\'e plus d'une fois---si vous le faites,
+la derni\`ere sera celle qui sera prise en compte.
+
+Si vous ne sp\'ecifiez pas la largeur d'un filet horizontal, le filet est
+\'etendu horizontalement jusqu'aux limites de la \minref{bo\^\i te} ou de
+l'\minref{alignement} le plus interne qui contient le filet. Si vous ne sp\'ecifiez pas
+la hauteur d'un filet horizontal, elle sera par d\'efaut de |0.4pt|~; si vous ne
+sp\'ecifiez pas la profondeur d'un filet horizontal, elle sera par d\'efaut de |0pt|.
+
+Si vous ne sp\'ecifiez pas la largeur d'un filet vertical, elle sera par d\'efaut de
+|0.4pt|. Si vous ne sp\'ecifiez pas la hauteur d'un filet vertical,
+le filet est \'etendu jusqu'aux limites de la \minref{bo\^\i te} ou de
+l'\minref{alignement} le plus interne qui contient le filet.
+
+\TeX\ traite un filet horizontal comme un \'el\'ement naturellement vertical
+et un filet vertical comme un \'el\'ement naturellement horizontal.
+Donc un filet horizontal n'est l\'egal qu'en \minref{mode vertical},
+Tandis qu'un filet vertical n'est l\'egal qu'en \minref{mode horizontal}.
+^^{mode horizontal//filets en}
+^^{mode vertical//filets en}
+Si cela semble surprenant, visualisez le---un filet horizontal va
+de gauche \`a droite et s\'epare des \'el\'ements verticaux dans une s\'equence, tandis
+qu'un filet vertical va de haut en bas et
+s\'epare des \'el\'ements horizontaux dans une s\'equence.
+
+\example
+\hrule\smallskip
+\hrule width 2in \smallskip
+\hrule width 3in height 2pt \smallskip
+\hrule width 3in depth 2pt
+|
+\produces
+\medskip
+\hrule\smallskip
+\hrule width 2in \smallskip
+\hrule width 3in height 2pt \smallskip
+\hrule width 3in depth 2pt
+\nextexample
+% Here you can see how the baseline relates to the
+% height and depth of an \hrule.
+\leftline{
+ \vbox{\hrule width .6in height 5pt depth 0pt}
+ \vbox{\hrule width .6in height 0pt depth 8pt}
+ \vbox{\hrule width .6in height 5pt depth 8pt}
+ \vbox{\hbox{ baseline}\kern 3pt \hrule width .6in}
+}
+|
+\produces
+\medskip
+\leftline{
+ \vbox{\hrule width .6in height 5pt depth 0pt}
+ \vbox{\hrule width .6in height 0pt depth 8pt}
+ \vbox{\hrule width .6in height 5pt depth 8pt}
+ \vbox{\hbox{ baseline}\kern 3pt \hrule width .6in}
+}
+\nextexample
+\hbox{( {\vrule} {\vrule width 8pt} )}
+\hbox {( {\vrule height 13pt depth 0pt}
+ {\vrule height 13pt depth 7pt} x)}
+% the parentheses define the height and depth of each of the
+% two preceding boxes; the `x' sits on the baseline
+|
+\produces
+\medskip
+\hbox{( {\vrule} {\vrule width 8pt} )}
+\hbox {( {\vrule height 13pt depth 0pt}
+ {\vrule height 13pt depth 7pt} x)}
+\endexample
+
+\eix^^{filets}
+\eix^^{filets horizontaux}
+\eix^^{filets verticaux}
+\enddesc
+
+\begindesc
+\bix^^{r\`eglures}
+\easy\cts leaders {\<bo\^\i te ou filet> \<commande de saut>}
+\cts cleaders {\<bo\^\i te ou filet> \<commande de saut>}
+\cts xleaders {\<bo\^\i te ou filet> \<commande de saut>}
+\explain
+Ces commandes produisent des \minref{r\'eglures}, c'est-\`a-dire, qu'elles remplissent un
+espace horizontal ou vertical avec des
+copies d'un motif \seeconcept{filets}.
+La \<bo\^\i te> ou le \<filet> sp\'ecifie une r\'eglure,
+c'est-\`a-dire, une seule copie du motif,
+tandis que la \<commande de saut> sp\'ecifie une
+fen\^etre devant \^etre remplie avec une
+rang\'ee ou une colonne de r\'eglures.
+Le motif est r\'ep\'et\'e autant de fois qu'il peut rentrer dans la fen\^etre.
+Si \<commande de saut> est un saut horizontal, la fen\^etre
+contient une rang\'ee de r\'eglures et \TeX\ doit \^etre en mode horizontal~;
+si \<commande de saut> est un saut vertical, la fen\^etre
+contient une colonne de r\'eglures et \TeX\ doit \^etre en mode vertical.
+
+Les commandes diff\`erent dans leur fa\c con d'arranger le motif r\'ep\'et\'e
+et o\`u elles mettent l'espace restant~:
+
+\ulist\compact
+\li Pour |\leaders|, \TeX\ aligne une rang\'ee de r\'eglures avec la limite gauche de
+la \minref{bo\^\i te} $B$ la plus interne qui contient le r\'esultat de la
+commande |\leaders|.
+Elle aligne une colonne de r\'eglures avec le haut de $B$.
+Ces r\'eglures qui tombent enti\`erement dans la fen\^etre sont gard\'ees.
+Tout espace en plus en haut et en bas de la fen\^etre est laiss\'e vide.
+\li Pour |\cleaders|, les r\'eglures sont centr\'ees dans la fen\^etre.
+\li Pour |\xleaders| le motif est uniform\'ement distribu\'e \`a travers la fen\^etre.
+Si l'espace en plus est $l$ et que la r\'eglure est r\'ep\'et\'ee $n$ fois,
+\TeX\ met de l'espace de largeur ou hauteur $l/(n+1)$ entre des r\'eglures adjacentes et
+aux deux bouts (gauche et droite ou haut et bas) des r\'eglures.
+\endulist
+
+\example
+\def\pattern{\hbox to 15pt{\hfil.\hfil}}
+\line{Down the Rabbit-Hole {\leaders\pattern\hfil} 1}
+\line{The Pool of Tears {\leaders\pattern\hfil} 9}
+\line{A Caucus-Race and a Long Tale {\cleaders\pattern
+ \hfil} 19}
+\line{Pig and Pepper {\xleaders\pattern\hfil} 27}
+|
+\produces
+\def\pattern{\hbox to 15pt{\hfil.\hfil}}\par
+\line{Down the Rabbit-Hole {\leaders\pattern\hfil} 1}
+\line{The Pool of Tears {\leaders\pattern\hfil} 9}
+\line{A Caucus-Race and a Long Tale {\cleaders\pattern
+ \hfil} 19}
+\line{Pig and Pepper {\xleaders\pattern\hfil} 27}
+\nextexample
+\def\bulletfill{\vbox to 3ex{\vfil\hbox{$\bullet$}\vfil}}%
+\def\mybox{\vbox to 1in}
+\def\myrule{\hrule width 4pt}\hsize=2in
+\hrule \line{%
+ \mybox{\myrule depth 8pt \leaders\bulletfill\vfill}
+ \hfil
+ \mybox{\myrule depth 15pt \leaders\bulletfill\vfill}
+ \hfil
+ \mybox{\myrule depth 18pt \cleaders\bulletfill\vfill}
+ \hfil
+ \mybox{\myrule depth 12pt \xleaders\bulletfill\vfill}%
+}\hrule
+|
+\produces
+\medskip
+\def\bulletfill{\vbox to 3ex{\vfil\hbox{$\bullet$}\vfil}}%
+\def\mybox{\vbox to 1in}\def\myrule{\hrule width 4pt}\hsize=2in
+\hrule \line{%
+ \mybox{\myrule depth 8pt \leaders\bulletfill\vfill}
+ \hfil
+ \mybox{\myrule depth 15pt \leaders\bulletfill\vfill}
+ \hfil
+ \mybox{\myrule depth 18pt \cleaders\bulletfill\vfill}
+ \hfil
+ \mybox{\myrule depth 12pt \xleaders\bulletfill\vfill}%
+}\hrule
+\endexample\enddesc
+
+\begindesc
+\cts dotfill {}
+\cts hrulefill {}
+\explain
+^^{remplissage}
+Ces commandes remplissent respectivement l'espace horizontal englob\'e avec
+une rang\'ee de points sur la ligne de base et avec
+une ligne horizontale sur la ligne de base.
+C'est habituellement une bonne id\'ee de laisser un espace entre
+|\dotfill| ou |\hrulefill|
+et le texte qui la pr\'ec\`ede ou la suit (voir l'exemple ci-dessous).
+\example
+\hbox to 3in{Start {\dotfill} Finish}
+\hbox to 3in{Swedish {\hrulefill} Finnish}
+|
+\produces
+\par\hbox to 3in{Start {\dotfill} Finish}
+\hbox to 3in{Swedish {\hrulefill} Finnish}
+\endexample\enddesc
+
+\begindesc
+\cts leftarrowfill {}
+\cts rightarrowfill {}
+\explain
+^^{remplissage}
+Ces commandes remplissent l'espace horizontal englob\'e avec
+des ^{fl\`eches} point\'ees vers la gauche ou vers la droite.
+\example
+\hbox to 3in{\vrule \rightarrowfill \ 3 in
+ \leftarrowfill\vrule}
+|
+\produces
+\medskip
+\hbox to 3in{\vrule \rightarrowfill \ 3 in
+ \leftarrowfill\vrule}
+\endexample
+
+\eix^^{r\`eglures}
+\enddesc
+
+%==========================================================================
+\section {Alignements}
+
+%==========================================================================
+\subsection {Alignements tabul\'es}
+
+\begindesc
+\bix^^{alignements tabul\'es}
+\bix^^{alignements//commandes pour}
+%
+\ctspecial + {{\bt \<texte>\thinspace\&\thinspace\<texte>%
+ \thinspace\& $\cdots$ \\cr}}
+\ctsxrdef{@plus}
+\cts tabalign {}
+\explain
+Ces commandes d\'ebutent une simple ligne dans un \minref{alignement} tabul\'e .
+La seule diff\'erence entre |\+| et |\tabalign| est que
+|\+| est une macro outer ---vous ne pouvez pas l'utiliser quand \TeX\ lit des tokens \`a
+haute vitesse \seeconcept{outer}.
+
+Si vous placez un `|&|' \`a une position
+\`a droite de toute tabulation existante dans un alignement tabul\'e,
+le `|&|' \'etablit une nouvelle tabulation \`a cette position.
+\example
+\cleartabs % Nullify any previous \settabs.
+\+ {\bf if }$a[i] < a[i+1]$ &{\bf then}&\cr
+\+&&$a[i] := a[i+1]$;\cr
+\+&&{\it found }$:=$ {\bf true};\cr
+\+&{\bf else}\cr
+\+&&{\it found }$:=$ {\bf false};\cr
+\+&{\bf end if};\cr
+|
+\produces
+\cleartabs % Nullify any previous \settabs.
+\+ {\bf if }$a[i] < a[i+1]$ &{\bf then}&\cr
+\+&&$a[i] := a[i+1]$;\cr
+\+&&{\it found }$:=$ {\bf true};\cr
+\+&{\bf else}\cr
+\+&&{\it found }$:=$ {\bf false};\cr
+\+&{\bf end if};\cr
+\endexample
+\enddesc
+
+\begindesc
+\cts settabs {\<nombre> {\bt \\columns}}
+\aux\cts settabs {{\bt \\+} \<ligne d'exemple> {\bt \\cr}}
+\explain
+La premi\`ere forme de
+cette commande d\'efinit un jeu de tabulations d'arr\^et ^^{tabulations}
+pour un \minref{alignement} tabul\'e.
+Elle demande \`a \TeX\ de mettre les tabulations d'arr\^et de mani\`ere \`a diviser chaque ligne en
+\<nombre> parties \'egales. \TeX\ prend la longueur d'une ligne comme \'etant
+|\hsize|, normalement. Vous pouvez rendre l'alignement plus \'etroit en diminuant
+|\hsize|.
+\margin{paragraph ``The tab settings $\ldots$'' moved to below.}
+\example
+{\hsize = 3in \settabs 3 \columns
+\+$1$&one&first\cr
+\+$2$&two&second\cr
+\+$3$&three&third\cr}
+|
+\produces
+{\hsize = 3in \settabs 3 \columns
+\+$1$ & one & first\cr
+\+$2$ & two & second\cr
+\+$3$ & three & third\cr}
+
+\noindent\doruler{\8\8\8}3{in}
+\smallskip
+\endexample
+
+La seconde forme de cette commande d\'efinit des tabulations d'arr\^et en mettant les tabulations d'arr\^et
+aux positions indiqu\'ees par les `|&| dans la ligne d'exemple.
+La ligne d'exemple elle-m\^eme ne doit pas appara\^\i tre dans la sortie. Quand vous
+utilisez cette forme vous devrez normalement mettre du mat\'eriel dans la ligne d'exemple qui sera
+un peu plus large que le plus large mat\'eriel correspondant dans l'alignement,
+de mani\`ere \`a produire de l'espace entre les colonnes.
+C'est ce que nous avons fait dans
+l'exemple ci-dessous. Le mat\'eriel suivant la derni\`ere tabulation
+d'arr\^et est inutile, puisqu'il n'a pas besoin de positionner
+quoi que ce soit \`a l'endroit o\`u le |\cr|~appara\^\i t.
+
+Les r\'eglages de tabulation \'etablies par |\settabs| restent actifs jusqu'\'a
+une nouvelle commande |\settabs| ou la fin du groupe contenant |\set!-tabs|. Ceci est vrai pour
+les deux formes de la commande.
+
+\example
+% The first line establishes the template.
+\settabs \+$1$\qquad & three\quad & seventh\cr
+\+$1$&one&first\cr
+\+$2$&two&second\cr
+\+$3$&three&third\cr
+|
+\produces
+\settabs \+$1$\qquad & three\quad & seventh\cr % the sample line
+\+$1$&one&first\cr
+\+$2$&two&second\cr
+\+$3$&three&third\cr
+\smallskip
+\endexample
+\enddesc
+
+\begindesc
+
+\cts cleartabs {}
+\explain
+Cette commande efface toutes les tabulations \`a droite de la colonne courante.
+Son utilisation principale est dans des applications telles que la composition de programme informatique
+dans lesquels les positions de tabulation changent \`a chaque ligne.
+\enddesc
+
+\see |\cr|, |\endline|, |\crcr| (\xref \endline).
+\eix^^{alignements tabul\'es}
+
+%==========================================================================
+\subsection {Alignement g\'en\'eraux}
+
+\begindesc
+{\tighten
+\cts halign {{\bt \rqbraces{\<pr\'eambule> \\cr \<rang> \\cr $\ldots$ \<rang> \\cr}}}
+ \xrdef{@and}\xrdef{@pound}
+\aux\cts halign {{\bt to \<dimension>%
+ \rqbraces{\<pr\'eambule> \\cr \<rang> \\cr $\ldots$ \<rang> \\cr}}}
+\aux\cts halign {{\bt spread \<dimension>%
+ \rqbraces{\<pr\'eambule> \\cr \<rang> \\cr $\ldots$ \<rang> \\cr}}}
+\par}
+\explain
+Cette commande produit un \minref{alignement} horizontal constitu\'e d'une
+suite de rang\'ees, o\`u chaque rang\'ee \`a son tour contient une suite
+d'entr\'ee de colonne. \TeX\ ajuste les largeurs des entr\'ees de colonne
+pour accommoder la plus large dans chaque colonne.
+
+Un alignement horizontal n'appara\^\i t que quand \TeX\ est dans un \minref{mode}
+vertical. Nous vous recommandons d'apprendre les alignements en g\'en\'e\-ral
+(\xref{alignement}) avant d'essayer d'utiliser la commande |\valign|.
+
+Un alignement consiste en un ^{pr\'eambule}
+suivi par le texte \`a aligner. Le pr\'eambule,
+qui d\'ecrit la forme des rang\'ees qui le suivent, consiste en une
+suite de patrons de colonne, s\'epar\'es par `|&|' et termin\'e
+par |\cr|.
+\bix^^{patron}
+\bix^^{entr\'ee (colonne ou rang\'ee)}
+Chaque rang\'ee consiste en une suite d'entr\'ees
+de ^{colonne}, s\'epar\'ees aussi par `|&|' et termin\'ees par |\cr|. Dans
+un patron, `|#|' indique o\`u \TeX\ doit ins\'erer le
+texte correspondant \`a l'entr\'ee de colonne.
+Par contre, |\settabs| utilise un patron fixe implicite \`a `|#|',
+c'est-\`a-dire, qu'il ins\`ere simplement le texte tel quel.
+
+\TeX\ compose chaque entr\'ee de colonne en mode horizontal restreint,
+c'est-\`a-dire, comme le contenu d'une \minref{hbox},
+et englobe implicitement l'en\-tr\'ee dans un groupe.
+
+La forme |to| de cette commande demande \`a \TeX\
+d'\'etendre la largeur de l'alignement \`a \<dimension>,
+en ajustant l'espace entre les colonnes.
+La forme |spread| de cette commande demande \`a \TeX\
+d'agrandir l'alignement de \<dimension> par rapport \`a sa largeur naturelle.
+Ces formes sont comme les formes correspondantes de |\hbox| \ctsref\hbox.
+
+Voir |\tabskip| \ctsref\tabskip{} pour un exemple d'utilisation de la
+forme |to|.
+
+\example
+\tabskip = 1em \halign{%
+ \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
+ United States&Washington&dollar&1.00\cr
+ France&Paris&franc&0.174\cr
+ Israel&Jerusalem&shekel&0.507\cr
+ Japan&Tokyo&yen&0.0829\cr}
+|
+\produces
+\tabskip = 1em \halign{%
+ \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
+ United States&Washington&dollar&1.00\cr
+ France&Paris&franc&0.174\cr
+ Israel&Jerusalem&shekel&0.507\cr
+ Japan&Tokyo&yen&0.0829\cr}
+\endexample
+\enddesc
+
+\begindesc
+{\tighten
+\cts valign {{\bt \rqbraces{\<pr\'eambule>\\cr \<colonne>\\cr $\ldots$
+ \<colonne>\\cr}}}
+\aux\cts valign {{\bt to \<dimension>%
+ \rqbraces{\<pr\'eambule>\\cr \<colonne>\\cr $\ldots$ \<colonne>\\cr}}}
+\aux\cts valign {{\bt spread \<dimension>%
+ \rqbraces{\<pr\'eambule>\\cr \<col.>\\cr $\ldots$ \<col.>\\cr}}}
+\par}
+\explain
+Cette commande produit un \minref{alignement} vertical
+constitu\'e d'une
+suite de colonnes, o\`u chaque colonne \`a son tour contient une suite
+d'entr\'ees de rang\'ee.
+\TeX\ ajuste les hauteurs des entr\'ees de rang\'ee pour accommoder la plus longue
+dans chaque rang\'ee.
+
+Un alignement vertical
+n'appara\^\i t que quand \TeX\ est dans un \minref{mode} horizontal.
+Puisque les alignements verticaux sont (a)~conceptuellement assez difficiles et
+(b)~peu souvent utilis\'es, nous vous recommandons d'ap\-prendre les
+alignements en g\'en\'eral
+(\xref{alignement}) et la commande |\halign| (voir ci-dessus) avant
+d'essayer d'utiliser la commande |\valign|.
+
+Un alignement consiste en un ^{pr\'eambule}
+suivi par le texte \`a aligner. Le pr\'eambule,
+qui d\'ecrit la forme des colonnes qui le suivent,
+consiste en une
+suite de patrons de rang\'ee, s\'epar\'es par `|&|' et termin\'e
+par |\cr|.
+\bix^^{patron}
+Chaque colonne consiste en une suite d'entr\'ee
+de ^{rang\'ee}, s\'epar\'ees aussi par `|&|' et termin\'ees par |\cr|. Dans
+un patron, `|#|' indique o\`u \TeX\ doit ins\'erer le
+texte correspondant \`a l'entr\'ee de rang\'ee.
+
+\TeX\ compose chaque entr\'ee de rang\'ee en mode vertical
+interne, c'est-\`a-dire, comme le contenu d'une \minref{vbox},
+et englobe implicitement l'entr\'ee dans un groupe.
+Il donne toujours \`a la vbox une profondeur \`a z\'ero.
+Tout texte ou autre mat\'eriel en mode horizontal dans une entr\'ee de rang\'ee met alors \TeX\
+en mode horizontal ordinaire.
+C'est juste une application des r\`egles g\'en\'erales du fonctionnement de \TeX\
+en mode vertical interne.
+Les param\`etres de paragraphage habituels s'appliquent dans ce cas~:
+l'entr\'ee de rang\'ee a une indentation
+initiale de |\parindent| (\xref\parindent) et
+les \minref{ressorts}
+|\leftskip| et |\rightskip| (\xref\leftskip)
+s'appliquent \`a ses lignes.
+
+Notez en particulier qu'une entr\'ee de rang\'ee contenant du texte a
+une largeur de |\hsize| (\xref\hsize). A moins que vous mettiez
+|\hsize| \`a la largeur de rang\'ee que vous voulez, vous rencontrerez
+vraisemblablement des ``overfull \minref{hbox}'' ou trouverez que
+la premi\`ere colonne occupe la largeur de la page enti\`ere, ou les deux.
+\eix^^{entr\'ee (colonne ou rang\'ee)}
+
+Normalement, vous devrez inclure un \minref{strut}
+^^{struts//dans des alignements verticaux}
+dans chaque
+patron pour que les rang\'ees n'apparaissent pas comme un r\'esultat
+des hauteurs variables des entr\'ees de l'alignement. Vous
+pouvez produire un strut avec la commande |\strut|.
+
+La forme |to| de cette commande demande \`a \TeX\
+d'\'etendre l'extension verticale de l'alignement \`a \<dimension>,
+en ajustant l'espace entre les rang\'ees.
+La forme |spread| de cette commande demande \`a \TeX\
+d'agrandir l'alignement de \<dimension> par rapport \`a sa hauteur naturelle.
+Ces formes sont comme les formes correspondantes de |\vbox| \ctsref\vbox.
+
+\example
+{\hsize=1in \parindent=0pt
+\valign{#\strut&#\strut&#\strut&#\strut\cr
+ bernaise&curry&hoisin&hollandaise\cr
+ ketchup&marinara&mayonnaise&mustard\cr
+ rarebit&tartar\cr}}
+|
+\produces
+{\hsize=1in \parindent=0pt \leftskip=0pt
+\valign{#\strut&#\strut&#\strut&#\strut\cr
+ bernaise&curry&hoisin&hollandaise\cr
+ ketchup&marinara&mayonnaise&mustard\cr
+ rarebit&tartar\cr}}
+\nextexample
+% same thing but without struts (shows why you need them)
+{\hsize=1in \parindent=0pt
+\valign{#&#&#&#\cr
+ bernaise&curry&hoisin&hollandaise\cr
+ ketchup&marinara&mayonnaise&mustard\cr
+ rarebit&tartar\cr}}
+|
+\produces
+{\hsize=1in \parindent=0pt \leftskip=0pt
+\valign{#&#&#&#\cr
+ bernaise&curry&hoisin&hollandaise\cr
+ ketchup&marinara&mayonnaise&mustard\cr
+ rarebit&tartar\cr}}
+\endexample
+\enddesc
+
+\begindesc
+\cts ialign {}
+\explain
+Cette commande r\'eagit comme ^|\halign|,
+sauf qu'elle met d'abord le ressort |\tabskip| \`a z\'ero et
+met |\everycr| \`a vide.
+\enddesc
+
+\begindesc
+\cts cr {}
+\explain
+Cette commande termine le pr\'eambule d'un alignement horizontal ou
+vertical, une rang\'ee d'un alignement horizontal ou tabul\'e,
+ou une colonne d'un alignement vertical.
+Vous pouvez demander \`a \TeX\ de faire certaines actions \`a chaque fois qu'il rencontre un |\cr|
+en chargeant la valeur du param\`etre ^|\everycr| \ctsref\everycr.
+\enddesc
+
+\begindesc
+\cts endline {}
+\explain
+Cette commande est un synonyme de la commande ^|\cr|. Elle est utile quand
+vous avez red\'efini |\cr| mais devez encore acc\'eder \`a sa d\'efinition originale.
+\enddesc
+
+\begindesc
+\cts crcr {}
+\explain
+Cette commande r\'eagit comme ^|\cr|, sauf que \TeX\ l'ignore si
+elle arrive imm\'ediatement apr\`es un |\cr| ou un ^|\noalign|.
+Sa principale application est comme mesure de s\'ecurit\'e pour \'eviter un message d'erreur ``misleading''
+caus\'e par une \minref{macro} qui attend un argument se terminant par |\cr|.
+Si vous mettez |\crcr| apr\`es le `|#|$n$' qui d\'enote un tel argument
+dans la d\'efinition de macro, la
+macro marchera proprement, que l'argument se termine par |\cr| ou non.
+\enddesc
+
+\begindesc
+\cts omit {}
+\explain
+Cette commande demande \`a \TeX\ d'ignorer un patron dans un \minref{alignement}
+horizontal ou vertical pendant le traitement d'une entr\'ee de colonne ou de rang\'ee particuli\`ere
+respectivement.
+|\omit| doit appara\^\i tre comme le premier \'el\'ement dans une entr\'ee de colonne ou de rang\'ee~; en effet,
+il remplace le patron du pr\'eambule avec le simple
+patron `|#|'.
+
+
+\example
+\tabskip = 2em\halign{%
+ \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
+ United States&Washington&dollar&1.00\cr
+ \omit \dotfill France\dotfill&Paris&franc&0.174\cr
+ Israel&Jerusalem&shekel&0.507\cr
+ Japan&Tokyo&yen&0.0829\cr}
+|
+\produces
+\tabskip = 2em\halign{%
+ \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
+ United States&Washington&dollar&1.00\cr
+ \omit \dotfill France\dotfill&Paris&franc&0.174\cr
+ Israel&Jerusalem&shekel&0.507\cr
+ Japan&Tokyo&yen&0.0829\cr}
+\nextexample
+{\hsize=1.2in \parindent=0pt
+\valign{(#)\strut&(#)\strut&(#)\strut&(#)\strut\cr
+ bernaise&curry&hoisin&hollandaise\cr
+ ketchup&\omit\strut{\bf MARINARA!!}&mayonnaise&mustard\cr
+
+ rarebit&tartar\cr}}
+|
+\produces
+{\hsize=1.2in \parindent=0pt \leftskip=0pt
+\valign{(#)\strut&(#)\strut&(#)\strut&(#)\strut\cr
+ bernaise&curry&hoisin&hollandaise\cr
+ ketchup&\omit\strut{\bf MARINARA!}&mayonnaise&mustard\cr
+ rarebit&tartar\cr}}
+\endexample
+\enddesc
+
+\begindesc
+\cts span {}
+\explain
+La signification de cette commande d\'epend suivant qu'elle appara\^\i t soit dans un pr\'eambule
+soit dans une entr\'ee d'alignement.
+\ulist
+\li Normalement, \TeX\ ne d\'eveloppe pas de tokens dans le pr\'eambule
+quand il le lit.
+Mettre |\span| au d\'ebut d'un token dans le pr\'eambule rend
+ce token d\'eveloppable imm\'ediatement selon les r\`egles usuelles de d\'eveloppement
+de \minref{macro} de \TeX.
+\li Mettre |\span| \`a la place de `|&|' entre deux entr\'ees de colonne ou de rang\'ee
+rend ces colonnes ou rang\'ees combin\'ees.
+Pour un alignement horizontal,
+la largeur de la colonne combin\'ee est la somme des
+largeurs des colonnes incluses.
+Pour un alignement vertical,
+la hauteur de la rang\'ee combin\'ee est la somme des
+hauteurs des rang\'ees incluses.
+Le patron des colonnes ou rang\'ees combin\'ees forme un seul groupe,
+donc des commandes de chargement de police pr\'ec\'edant un |\span| affectent tout jusqu'au
+prochain `|&|'.
+\endulist
+\noindent
+|\span| est rarement utile d'elle-m\^eme en dehors d'un patron,
+mais procure le m\'ecanisme de base
+pour d\'efinir ^|\multispan|.
+\enddesc
+
+\begindesc
+\cts multispan {\<nombre>}
+\explain
+Cette commande demande \`a \TeX\ que les \<nombre>
+colonnes suivantes d'une rang\'ee d'un alignement horizontal,
+ou
+que les \<nombre> rang\'ees dans une colonne d'un alignement vertical,
+doivent \^etre combin\'ees en une seule colonne ou rang\'ee (comme avec
+|\span|) et que leur patron doit \^etre omis (comme avec |\omit|).
+
+\example
+\tabskip = 13pt\halign{%
+ \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
+ United States&Washington&dollar&1.00\cr
+ France&Paris&franc&0.174\cr
+ Israel&Jerusalem &
+ \multispan 2 \hfil\it(no information)\hfil \cr
+ Japan&Tokyo&yen&0.0829\cr}
+|
+\produces
+\tabskip = 13pt\halign{%
+ \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
+ United States&Washington&dollar&1.00\cr
+ France&Paris&franc&0.174\cr
+ Israel&Jerusalem &
+ \multispan 2 \hfil\it(no information)\hfil \cr
+ Japan&Tokyo&yen&0.0829\cr}
+\nextexample
+{\hsize=1.2in \parindent=0pt
+\valign{(#)\strut&(#)\strut&(#)\strut&(#)\strut\cr
+ bernaise&curry&hoisin&hollandaise\cr
+ \multispan 3$$\left\{{{\rm ketchup}\atop{\rm marinara}}
+ \right\}$$&mustard\cr
+ rarebit&tartar\cr}}
+|
+\produces
+{\hsize=1.2in \parindent=0pt \leftskip=0pt
+\valign{(#)\strut&(#)\strut&(#)\strut&(#)\strut\cr
+ bernaise&curry&hoisin&hollandaise\cr
+ \multispan 3$$\left\{{{\rm ketchup}\atop{\rm marinara}}
+ \right\}$$&mustard\cr
+ rarebit&tartar\cr}}
+\endexample
+
+\eix^^{patron}
+\enddesc
+
+\begindesc
+\cts noalign {\rqbraces{\<mat\'eriel en mode vertical>}}
+\aux\cts noalign {\rqbraces{\<mat\'eriel en mode horizontal>}}
+\explain
+Cette commande ins\`ere
+\<mat\'eriel en mode vertical>
+apr\`es la rang\'ee cou\-rante d'un \minref{alignement} horizontal ou
+\<mat\'eriel en mode horizontal> apr\`es la colonne courante d'un \minref{alignement}
+vertical.
+Le mat\'eriel peut \^etre du texte, un ressort, un filet ou tout autre chose.
+
+L'utilisation la plus commune de |\noalign|
+est de mettre de l'espace suppl\'ementaire apr\`es une rang\'ee ou une colonne.
+Si vous voulez mettre de l'espace suppl\'ementaire apr\`es \emph{toutes\/} les rang\'ees d'un alignement
+horizontal, utilisez ^|\openup| (\xref\openup).
+
+\example
+\halign{%
+ \hfil\it#\hfil\tabskip=2em&\hfil#\hfil&#&
+ \hfil\$#\tabskip=0em\cr
+ % The \tabskip changes prevent the rule below
+ % from sticking out.
+ United States&Washington&dollar&1.00\cr
+ France&Paris&franc&0.174\cr
+ \noalign{\smallskip\hrule\smallskip}
+ Israel&Jerusalem&shekel&0.507\cr
+ Japan&Tokyo&yen&0.0829\cr}
+|
+\produces
+\halign{%
+ \hfil\it#\hfil\tabskip=2em&\hfil#\hfil&#&
+ \hfil\$#\tabskip=0em\cr
+ % The \tabskip changes prevent the rule below
+ % from sticking out.
+ United States&Washington&dollar&1.00\cr
+ France&Paris&franc&0.174\cr
+ \noalign{\smallskip\hrule\smallskip}
+ Israel&Jerusalem&shekel&0.507\cr
+ Japan&Tokyo&yen&0.0829\cr}
+\nextexample
+{\hsize=1in \parindent=0pt
+\valign{#\strut&#\strut&#\strut&#\strut\cr
+ \noalign{\vrule width 2pt\quad}
+ bernaise&curry&hoisin&hollandaise\cr
+ \noalign{\vrule width 2pt\quad}
+ ketchup&marinara&mayonnaise&mustard\cr
+ \noalign{\vrule width 2pt\quad}
+ rarebit&tartar\cr
+ \noalign{\vrule width 2pt\quad}}}
+|
+\produces
+\medskip
+{\hsize=1in \parindent=0pt
+\valign{#\strut&#\strut&#\strut&#\strut\cr
+ \noalign{\vrule width 2pt\quad}
+ bernaise&curry&hoisin&hollandaise\cr
+ \noalign{\vrule width 2pt\quad}
+ ketchup&marinara&mayonnaise&mustard\cr
+ \noalign{\vrule width 2pt\quad}
+ rarebit&tartar\cr
+ \noalign{\vrule width 2pt\quad}}}
+\endexample
+\enddesc
+
+\begindesc
+\cts tabskip {\param{ressort}}
+\explain
+Ce param\`etre sp\'ecifie le montant de ressort horizontal ou vertical
+que \TeX\ met entre les
+colonnes d'un alignement horizontal ou entre les
+rang\'ees d'un alignement vertical.
+\TeX\ met aussi le ressort |\tabskip|
+\`a gauche de la premi\`ere colonne et \`a droite de la derni\`ere colonne
+d'un alignement horizontal,
+avant la premi\`ere rang\'ee
+et apr\`es la derni\`ere rang\'ee d'un alignement vertical.
+Vous pouvez changer |\tabskip| dans un patron---%
+le changement affectera le ressort associ\'e avec tous les
+|&| suivant aussi bien que le ressort apr\`es la derni\`ere rang\'ee ou colonne.
+\example
+\halign to 3.5in{%
+ \hfil\it#\tabskip = 2em plus 8pt
+ \hfil&\hfil#\hfil&#\tabskip = 1em
+ &\hfil\$#\tabskip = 0em\cr
+ United States&Washington&dollar&1.00\cr
+ France&Paris&franc&0.174\cr
+ Israel&Jerusalem&shekel&0.507\cr
+ Japan&Tokyo&yen&0.0829\cr}
+|
+\produces
+\halign to 3.5in{%
+ \hfil\it#\tabskip = 2em plus 8pt
+ \hfil&\hfil#\hfil&#\tabskip = 1em
+ &\hfil\$#\tabskip = 0em\cr
+ United States&Washington&dollar&1.00\cr
+ France&Paris&franc&0.174\cr
+ Israel&Jerusalem&shekel&0.507\cr
+ Japan&Tokyo&yen&0.0829\cr}
+\nextexample
+{\hsize = 1in \parindent=0pt \tabskip=5pt
+\valign{#\strut&#\strut\tabskip = 3pt
+ &#\strut&#\strut\cr
+ bernaise&curry&hoisin&hollandaise\cr
+ ketchup&marinara&mayonnaise&mustard\cr
+ rarebit&tartar\cr}}
+|
+\produces
+{\hsize = 1in \parindent=0pt \tabskip=5pt
+\valign{#\strut&#\strut\tabskip = 3pt
+ &#\strut&#\strut\cr
+ bernaise&curry&hoisin&hollandaise\cr
+ ketchup&marinara&mayonnaise&mustard\cr
+ rarebit&tartar\cr}}
+\endexample
+\enddesc
+
+\begindesc
+\cts hidewidth {}
+\explain
+Cette commande demande \`a \TeX\ d'ignorer la largeur de l'entr\'ee de la colonne suivante dans un
+alignement horizontal. C'est pratique quand vous avez une entr\'ee qui est plus longue
+que la plupart des autres dans la m\^eme colonne
+et que vous pr\'ef\'erez avoir cette entr\'ee sortant de la colonne plut\^ot
+que rendre toutes les entr\'ees
+de la colonne plus larges. Si le |\hidewidth| est \`a gauche de
+l'entr\'ee, l'entr\'ee d\'ebordera \`a gauche~; si le |\hidewidth| est \`a
+droite de l'entr\'ee, l'entr\'ee d\'ebordera \`a droite.
+\example
+\tabskip = 25pt\halign{%
+ \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
+ United States&\hidewidth Washington&
+ dollar&1.00\cr
+ France&Paris&franc&0.174\cr
+ Israel&Jerusalem&shekel&0.507\cr
+ Japan&Tokyo&yen&0.0829\cr}
+|
+\produces
+\tabskip = 25pt\halign{%
+ \hfil\it#\hfil&\hfil#\hfil&#&\hfil\$#\cr
+ United States&\hidewidth Washington&
+ dollar&1.00\cr
+ France&Paris&franc&0.174\cr
+ Israel&Jerusalem&shekel&0.507\cr
+ Japan&Tokyo&yen&0.0829\cr}
+\endexample
+\enddesc
+
+\begindesc
+\cts everycr {\param{liste de token}}
+\explain
+\TeX\ d\'eveloppe \<token list> \`a chaque fois qu'il ex\'ecute
+un |\cr|---\`a la fin de chaque pr\'eambule,
+\`a la fin de chaque rang\'ee d'un alignement horizontal
+et \`a la fin de chaque colonne d'un alignement vertical.
+La commande |\everycr| est d\'evelopp\'ee juste apr\`es le |\cr|.
+Ainsi vous pouvez demander \`a \TeX\
+d'ex\'ecuter certaines commandes \`a la fin d'un pr\'eambule, d'une rang\'ee ou d'une colonne en
+assignant une liste de commandes \`a |\everycr|.
+
+Les tokens |\everycr| ne doivent pas inclure d'autres commandes que |\no!-align|.
+Ceci parce que
+les tokens |\everycr| r\'eappara\^\i tront apr\`es le dernier
+|\cr| de l'alignement. Une commande autre qu'un
+|\noalign| fera penser \`a \TeX\ qu'il commence une nouvelle
+rang\'ee ou colonne.
+\TeX\ se plaindra d'un |\cr| manquant, ins\`erera
+un |\cr|, ins\`erera les tokens |\everycr| \`a nouveau et r\'ep\`etera ces actions
+ind\'efiniment.
+\example
+
+\everycr={\noalign{\smallskip\hrule\smallskip}}
+\halign{#\tabskip = 11pt&\hfil#\hfil&\hfil#\hfil
+ \tabskip = 0pt\cr
+ $1$&one&first\cr
+ $2$&two&second\cr
+ $3$&three&third\cr}
+|
+\produces
+\medskip
+\everycr={\noalign{\smallskip\hrule\smallskip}}
+\halign{#\tabskip = 11pt&\hfil#\hfil&\hfil#\hfil
+ \tabskip = 0pt\cr
+ $1$&one&first\cr
+ $2$&two&second\cr
+ $3$&three&third\cr}
+\endexample
+
+\eix^^{alignements//commandes pour}
+\enddesc
+
+\enddescriptions
+
+
+\endchapter
+\byebye
diff --git a/info/impatient/fr/fpages.tex b/info/impatient/fr/fpages.tex
index dd5c3f3186..4748c032ae 100644
--- a/info/impatient/fr/fpages.tex
+++ b/info/impatient/fr/fpages.tex
@@ -1,1153 +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
-
+% 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/info/impatient/fr/fparas.tex b/info/impatient/fr/fparas.tex
index 45557c56ae..e1648a2eb3 100644
--- a/info/impatient/fr/fparas.tex
+++ b/info/impatient/fr/fparas.tex
@@ -1,2152 +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
+% 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
-
+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/info/impatient/fr/fpreface.tex b/info/impatient/fr/fpreface.tex
index 07888fd01a..bf7f089f9b 100644
--- a/info/impatient/fr/fpreface.tex
+++ b/info/impatient/fr/fpreface.tex
@@ -1,158 +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
+% 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/info/impatient/fr/fread1st.tex b/info/impatient/fr/fread1st.tex
index 8134d722a2..c1293b12da 100644
--- a/info/impatient/fr/fread1st.tex
+++ b/info/impatient/fr/fread1st.tex
@@ -1,46 +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
+% 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/info/impatient/fr/ftips.tex b/info/impatient/fr/ftips.tex
index 2684592ff2..3ac05807cb 100644
--- a/info/impatient/fr/ftips.tex
+++ b/info/impatient/fr/ftips.tex
@@ -1,1004 +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
-
+% 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/info/impatient/fr/fusermacs.tex b/info/impatient/fr/fusermacs.tex
index fecc074ac7..2fca205015 100644
--- a/info/impatient/fr/fusermacs.tex
+++ b/info/impatient/fr/fusermacs.tex
@@ -1,1168 +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
-
+% 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/info/impatient/genops.tex b/info/impatient/genops.tex
index 46bc83a1a8..46f6e7e62c 100644
--- a/info/impatient/genops.tex
+++ b/info/impatient/genops.tex
@@ -1,5 +1,6 @@
+% $Id: genops.tex,v 1.6 2020/01/01 23:12:25 karl Exp $
% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
+% Copyright (C) 2003-2020 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
% See file fdl.tex for copying conditions.
\input macros
@@ -128,17 +129,17 @@ If you want to change these parameters locally, you'll need to
save and restore their original settings explicitly.
\example
Here's a line printed normally.\par
-\fontdimen2\font = 3\fontdimen2\font
-% Triple the interword spacing.
+\dimen0=\fontdimen2\font
+\fontdimen2\font=3\fontdimen2\font % triple word spacing
\noindent Here's a really spaced-out line.
+\fontdimen2\font=\dimen0
|
\produces
Here's a line printed normally.\par
-\dimen0 = \fontdimen2\font % to undo global assignment
-\fontdimen2\font = 3\fontdimen2\font
-% triple the interword spacing
+\dimen0=\fontdimen2\font
+\fontdimen2\font=3\fontdimen2\font % triple word spacing
\noindent Here's a really spaced-out line.
-\fontdimen2\font = \dimen0
+\fontdimen2\font=\dimen0
\endexample
\enddesc
@@ -317,13 +318,13 @@ It is a number such as $1991$.
These commands produce the name and version number
of the \TeX\ format,
e.g., \minref{\plainTeX} or ^{\LaTeX}, that you're using.
+The |\fmtversion| string contains a long list of supported languages,
+so is omitted here.
\example
-This book was produced with the \fmtname\ format,
-version~\fmtversion.
+This book was produced with the \fmtname\ format.
|
\produces
-This book was produced with the \fmtname\ format,
-version~\fmtversion.
+This book was produced with the \fmtname\ format.
\endexample
\enddesc
@@ -333,7 +334,9 @@ version~\fmtversion.
This command produces the base
name of the file with which \TeX\ was invoked.
For example, if your main input file is |hatter.tex|,
-|\jobname| will expand to |hatter|.
+|\jobname|
+{\parfillskip=0pt\par\eject\noindent}
+will expand to |hatter|.
|\jobname| is most useful when you're
creating an auxiliary file to be associated with a document.
^^{auxiliary files}
@@ -1641,11 +1644,8 @@ to another command.
These commands
reserve and name an entity of the indicated type:
\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|,
-and |\new!-box| each reserve a \minref{register} of the indicated type.
-}
+\li |\newcount|, |\newdimen|, |\newskip|, |\newmuskip|, |\newtoks|,
+|\newbox| each reserve a \minref{register} of the indicated type.
^^{count registers//reserved by \b\tt\\newcount\e}
^^{dimension registers//reserved by \b\tt\\newdimen\e}
^^{skip registers//reserved by \b\tt\\newskip\e}
@@ -1884,8 +1884,8 @@ You can associate more than one input stream with the same
file. You can then read from several different positions within
the file, one for each input stream.
-You should allocate stream numbers for |\openin| using
-|\new!-read| (\xref{\@newread}).
+You should allocate |\openin| stream numbers with
+|\newread| (\xref{\@newread}).
\example
\newread\auxfile \openin\auxfile = addenda.aux
% \auxfile now denotes the number of this opening
@@ -2285,7 +2285,7 @@ The number of
leading dots in the log indicates the number of
levels of nesting of inner boxes.
\li |\showlists| records
-the contents of each list that \TeX\ is currently constructing.
+the contents of each of the lists that \TeX\ is currently constructing.
(These lists are nested one within another.)
See \knuth{pages~88--89} for further information about interpreting
the output of |\showlists|.
diff --git a/info/impatient/macros.tex b/info/impatient/macros.tex
index e3a84adac7..4c27a65e50 100644
--- a/info/impatient/macros.tex
+++ b/info/impatient/macros.tex
@@ -1,5 +1,6 @@
+% $Id: macros.tex,v 1.4 2020/01/01 23:22:22 karl Exp $
% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
+% Copyright (C) 2003-2020 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
% See file fdl.tex for copying conditions.
%
% Macros for typesetting TeX for the Impatient.
@@ -2061,7 +2062,7 @@
\def\emph#1{{\it #1}\itcorr} % Emphasize.
\def\ftp{{\tt ftp}}
\def\gffile{{\tt .gf} file}
-\def\hand{{\handfont A}}
+\def\hand{{\handfont \char"2B}}
\def\ifatest{{\tt \\if} test}
\chardef\inches = "7D
\def\knuth#1{#1 of \texbook}
@@ -2156,6 +2157,7 @@
\def\@ctsref#1{(\xref{#1})\endgroup}
\def\xrefdelim[#1]{page~\xrefn{#1}} % this form doesn't need braces
+\def\xrefndelim[#1]{\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
diff --git a/info/impatient/paras.tex b/info/impatient/paras.tex
index 91aad27c98..40f5516d0a 100644
--- a/info/impatient/paras.tex
+++ b/info/impatient/paras.tex
@@ -1,5 +1,6 @@
+% $Id: paras.tex,v 1.4 2020/01/01 19:16:14 karl Exp $
% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003, 2014 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
+% Copyright (C) 2003-2020 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
% See file fdl.tex for copying conditions.
\input macros
@@ -1008,14 +1009,8 @@ enters horizontal mode, e.g., when it starts a paragraph.
By default |\everypar| is empty, but you can
take extra actions at the start of every paragraph by putting
the commands for those actions into a 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}
and assigning that token list to |\everypar|.
+
\example
\everypar = {$\Longrightarrow$\enspace}
Now pay attention!!\par
@@ -1333,39 +1328,45 @@ there, and choose your words to fit the shape.
paragraph.
If you specify |\hangafter| and |\hangindent| as well as |\par!-shape|,
\TeX\ ignores the ^|\hangafter| and ^|\hangindent|.
+
+By the way, the following example saves and restores |\fontdimen| values
+explicitly, using temporary registers, since |\fontdimen| changes are
+always global (see \xref\fontdimen).
+
\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
+\dimen0=\fontdimen3\font \dimen2=\fontdimen4\font
+\fontdimen3\font=1.8pt \fontdimen4\font=.9pt
+\noindent \hfuzz=.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
-The wines of France and California may be the best
-known, but they are not the only fine wines. Spanish
-wines are often underestimated, and quite old ones may
-be available at reasonable prices. For Spanish wines
-the vintage is not so critical, but the climate of the
-Bordeaux region varies greatly from year to year. Some
-vintages are not as good as others,
-so these years ought to be
-s\kern -.1pt p\kern -.1pt e\kern -.1pt c\hfil ially
-n\kern .1pt o\kern .1pt t\kern .1pt e\kern .1pt d\hfil:
-1962, 1964, 1966. 1958, 1959, 1960, 1961, 1964,
-1966 are also good California vintages.
-Good luck finding them!!
+The wines of France and California may be the best known,
+but they are not the only fine wines. Spanish wines are
+often underestimated, and quite old ones may be available at
+reasonable prices. For Spanish wines the vintage is not so
+critical, but the climate of the Bordeaux region varies
+greatly from year to year. Some vintages are not as good as
+others, so these years ought to be s\kern -.1pt p\kern -.1pt
+e\kern -.1pt c\hfil ially n\kern .1pt o\kern .1pt
+t\kern .1pt e\kern .1pt d\hfil: 1962, 1964, 1966. 1958,
+1959, 1960, 1961, 1964, 1966 are also good California
+vintages. Good luck finding them!!
+\fontdimen3\font=\dimen0 \fontdimen4\font=\dimen2
|
%\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
+\dimen0=\fontdimen3\font \dimen2=\fontdimen4\font
+\fontdimen3\font=1.8pt \fontdimen4\font=0.9pt
+\noindent \hfuzz=0.1pt % reordered to save a line
\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
@@ -1384,6 +1385,7 @@ n\kern .1pt o\kern .1pt t\kern .1pt e\kern .1pt d\hfil:
1962, 1964, 1966. 1958, 1959, 1960, 1961, 1964,
1966 are also good California vintages.
Good luck finding them!
+\fontdimen3\font=\dimen0 \fontdimen4\font=\dimen2
\endexample
\eix^^{indentation}
\enddesc
diff --git a/info/impatient/preface.tex b/info/impatient/preface.tex
index b48193d749..3d2663cd72 100644
--- a/info/impatient/preface.tex
+++ b/info/impatient/preface.tex
@@ -1,5 +1,6 @@
+% $Id: preface.tex,v 1.2 2020/01/02 23:34:37 karl Exp $
% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
+% Copyright (C) 2003-2020 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
% See file fdl.tex for copying conditions.
\input macros
@@ -146,12 +147,12 @@ Eplain was used to produce it; see the {\tt eplain.tex} file for
details.
We don't plan to make any further changes or additions to the book
-ourselves, except for correction of any outright errors reported to us,
-and perhaps inclusion of the illustrations.
+ourselves, except possibly for correction of important errors reported
+to us.
-Our distribution of the book is at {\tt
-ftp://tug.org/tex/impatient}. You can reach us by email at {\tt
-impatient@tug.org}.
+Our distribution of the book is at {\tt https://ctan.org/pkg/impatient}.
+See the {\tt README} in the distribution for more information about
+different versions, translations, contact information, etc.
\pagebreak
\byebye
diff --git a/info/impatient/usebook.tex b/info/impatient/usebook.tex
index e9d01c6841..5a9d6e5f9d 100644
--- a/info/impatient/usebook.tex
+++ b/info/impatient/usebook.tex
@@ -1,5 +1,6 @@
+% $Id: usebook.tex,v 1.2 2020/01/01 23:24:23 karl Exp $
% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
+% Copyright (C) 2003-2020 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
% See file fdl.tex for copying conditions.
\input macros
@@ -15,7 +16,8 @@ We recommend that you first either read or skim in sequence Sections
which tell you what you need to know in order to get started using \TeX.
If you've already had experience using \TeX, it will still be helpful
to know what kinds of information are in these sections of the book.
-Sections~\chapternum{concepts}--\chapternum{tips}, which
+Sections~\chapternum{concepts}--\chapternum{tips} and
+\chapternum{capsule}, which
occupy most of
the rest of the book, are designed to be accessed randomly.
Nevertheless, if you're the kind of person who likes to read reference manuals,
diff --git a/info/impatient/usingtex.tex b/info/impatient/usingtex.tex
index 35ec5310d2..b23c9e2a9e 100644
--- a/info/impatient/usingtex.tex
+++ b/info/impatient/usingtex.tex
@@ -1,5 +1,6 @@
+% $Id: usingtex.tex,v 1.5 2020/01/01 23:29:59 karl Exp $
% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
+% Copyright (C) 2003-2020 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
% See file fdl.tex for copying conditions.
\input macros
@@ -352,7 +353,7 @@ you must not run a control word together with a following letter.
If you are defining your own macros, you need to be particularly careful about
where you put ends of line in their definitions.
It's all too easy to define a macro that produces an
-^{unwanted space} in addition to whatever else it's supposed to produce.
+^{unwanted space} in addition to whatever else it's supposed to do.
We discuss this problem elsewhere since it's somewhat
technical; see \xrefpg{unwantedspace}.
@@ -463,13 +464,11 @@ many fonts, but the two right single quotes
are the preferred \TeX\ style.
For example:
-\vbox{%
\csdisplay
There is no `q' in this sentence.
``Talk, child,'' said the Unicorn.
She said, ``\thinspace`Enough!!', he said.''
|
-}%
These three lines yield:
\display{\par\restoreplainTeX
There is no `q' in this sentence.
@@ -484,11 +483,14 @@ Without it, you'd just see three
nearly equally spaced quotation marks in a row.
\TeX\ has three kinds of ^{dashes}:
-\ulist\compact
+\ulist
\li Short ones (hyphens) like this ( - ). You get them by typing~`^|-|'.
\li Medium ones (en-dashes) like this ( -- ). You get them by typing~`^|--|'.
\li Long ones (em-dashes) like this ( --- ). You get them by typing~`^|---|'.
\endulist
+\vskip0pt plus2pt % this page is spacey, just live with it
+\eject
+
\noindent
Typically you'd use hyphens to indicate compound words like
``will-o'-the-wisp'',
@@ -614,7 +616,10 @@ If $a<b$, then the relation $$e^a < e^b$$ holds.
\display{\centereddisplays
If $a<b$, then the relation $$e^a < e^b$$ holds.}
\smallskip
-\noindent \chapterref{math} describes the commands that are useful
+\noindent \TeX\ does its own spacing inside math, ignoring any spaces in
+the input.
+
+\chapterref{math} describes the commands that are useful
in math formulas.
\eix^^{math}
diff --git a/info/impatient/xmptext.tex b/info/impatient/xmptext.tex
index 47599421fd..438675a52b 100644
--- a/info/impatient/xmptext.tex
+++ b/info/impatient/xmptext.tex
@@ -1,5 +1,5 @@
~% This is part of the book TeX for the Impatient.
-~% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
+~% Copyright (C) 2003-2020 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
~% See file fdl.tex for copying conditions.
% TeX ignores anything on a line after a %
% The next two lines define fonts for the title
@@ -131,7 +131,7 @@ for French words such as {\it r\^ ole\/} and {\it \'
el\` eve\/}, for German words such as {\it Schu\ss\/},
and for words in several other languages as well.
You'll find a complete list of \TeX's accents and letters
-of European languages on !xrefdelim[accents] and !xrefdelim[fornlets].
+of European languages on pages~!xrefndelim[fornlets] and~!xrefndelim[accents].
You can also get Greek letters such as ``$\alpha$'' and
``$\Omega$'' for use in math, card suits such as
@@ -336,12 +336,12 @@ sizes by adjusting the character shapes accordingly.
% 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.
+% Use \vtop for whole paragraphs 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.
+% Use \vtop for whole paragraphs in the last column.
&\vtop{\hsize=11pc \parindent=0pt \normalbaselineskip=12pt
\normalbaselines \rightskip=3pt plus2em #}\cr
% The table rows begin here.
@@ -355,7 +355,7 @@ sizes by adjusting the character shapes accordingly.
\bf Name&&\bf Name &&\omit \bf Characteristics \hfil\cr
\tableskip Pleurotus ostreatus&&Oyster mushroom&&
Grows in shelf\kern 1pt like clusters on stumps or logs,
- % without the kern, the `f' and `l' would be too close
+ % Without the kern, the `f' and `l' would be a ligature.
pink-gray oyster-shaped caps, stem short or absent.\cr
\tableskip Lactarius hygrophoroides&&Milky hygroph&&
Butterscotch-brown cap and stem, copious white latex,