summaryrefslogtreecommitdiff
path: root/Master/texmf-doc/doc/english/impatient
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-05-23 00:04:06 +0000
committerKarl Berry <karl@freefriends.org>2009-05-23 00:04:06 +0000
commit20d25e62ad99344ee37e88fb0787319391107640 (patch)
treeb956bd202233c91691644f7177f7440cf44d673b /Master/texmf-doc/doc/english/impatient
parented6a6417c1055f64cde693e71238dc996d1710e6 (diff)
move plain docs out of texmf-doc
git-svn-id: svn://tug.org/texlive/trunk@13404 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-doc/doc/english/impatient')
-rw-r--r--Master/texmf-doc/doc/english/impatient/Makefile15
-rw-r--r--Master/texmf-doc/doc/english/impatient/README40
-rw-r--r--Master/texmf-doc/doc/english/impatient/backm.tex92
-rw-r--r--Master/texmf-doc/doc/english/impatient/book.pdfbin1421239 -> 0 bytes
-rw-r--r--Master/texmf-doc/doc/english/impatient/book.tex47
-rw-r--r--Master/texmf-doc/doc/english/impatient/capsule.tex1134
-rw-r--r--Master/texmf-doc/doc/english/impatient/concepts.tex4097
-rw-r--r--Master/texmf-doc/doc/english/impatient/config.tex0
-rw-r--r--Master/texmf-doc/doc/english/impatient/copyrght.tex48
-rw-r--r--Master/texmf-doc/doc/english/impatient/eplain.tex1196
-rw-r--r--Master/texmf-doc/doc/english/impatient/errata.future256
-rw-r--r--Master/texmf-doc/doc/english/impatient/errors.tex325
-rw-r--r--Master/texmf-doc/doc/english/impatient/examples.tex56
-rw-r--r--Master/texmf-doc/doc/english/impatient/fdl.tex463
-rw-r--r--Master/texmf-doc/doc/english/impatient/fonts.tex241
-rw-r--r--Master/texmf-doc/doc/english/impatient/frontm.tex82
-rw-r--r--Master/texmf-doc/doc/english/impatient/genops.tex2827
-rw-r--r--Master/texmf-doc/doc/english/impatient/index.tex39
-rw-r--r--Master/texmf-doc/doc/english/impatient/index1.icn90
-rw-r--r--Master/texmf-doc/doc/english/impatient/index2.icn239
-rw-r--r--Master/texmf-doc/doc/english/impatient/macros.tex2295
-rw-r--r--Master/texmf-doc/doc/english/impatient/math.tex2190
-rw-r--r--Master/texmf-doc/doc/english/impatient/modes.tex2078
-rw-r--r--Master/texmf-doc/doc/english/impatient/pages.tex1153
-rw-r--r--Master/texmf-doc/doc/english/impatient/paras.tex2166
-rw-r--r--Master/texmf-doc/doc/english/impatient/preface.tex157
-rw-r--r--Master/texmf-doc/doc/english/impatient/read1st.tex45
-rw-r--r--Master/texmf-doc/doc/english/impatient/tips.tex1011
-rw-r--r--Master/texmf-doc/doc/english/impatient/usebook.tex243
-rw-r--r--Master/texmf-doc/doc/english/impatient/usermacs.tex1168
-rw-r--r--Master/texmf-doc/doc/english/impatient/usingtex.tex822
-rw-r--r--Master/texmf-doc/doc/english/impatient/xmptext.tex449
32 files changed, 0 insertions, 25064 deletions
diff --git a/Master/texmf-doc/doc/english/impatient/Makefile b/Master/texmf-doc/doc/english/impatient/Makefile
deleted file mode 100644
index 63c0d7841ce..00000000000
--- a/Master/texmf-doc/doc/english/impatient/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-# 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.html:
- httex book.tex
-
-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
diff --git a/Master/texmf-doc/doc/english/impatient/README b/Master/texmf-doc/doc/english/impatient/README
deleted file mode 100644
index 07dee675182..00000000000
--- a/Master/texmf-doc/doc/english/impatient/README
+++ /dev/null
@@ -1,40 +0,0 @@
-This is the README file for version 1.0 of the free 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://tug.org/tex/impatient
-It is also available from http://mirror.ctan.org/info/impatient/.
-
-Information about the free edition is included at the end of the preface
-and on the copyright page.
-
-We'd be interested in hearing about any projects undertaken with this
-material. See errata.future for some relatively small ideas for
-enhancements.
-
-TeX for the Impatient is also a GNU project, and the development
-sources, contact information, and other project details are available at
-http://savannah.gnu.org/projects/teximpatient.
-
-TeX for the Impatient has been (independently!) translated into a wikibook:
-http://en.wikibooks.org/wiki/TeX_for_the_Impatient
-
-
-Some random thoughts for people thinking of working with the source:
-
-- You may want to translate the source into some more standard format; we
-used many homegrown macros to make typing and markup easier.
-
-- You may want to redo the index creation to use makeindex or some
-other standard program, instead of our homegrown Icon programs (included
-in the distribution, for what it's worth). Until the index can be
-easily regenerated, the page breaks can't change without the index
-becoming useless.
-
-- Printing the GFDL required many kludges, a true Eplain-compatible
-version is needed (which in turn would require using the current eplain
-to print the book).
-
-
-Happy (and quick) TeXing!
diff --git a/Master/texmf-doc/doc/english/impatient/backm.tex b/Master/texmf-doc/doc/english/impatient/backm.tex
deleted file mode 100644
index 11d1502718f..00000000000
--- a/Master/texmf-doc/doc/english/impatient/backm.tex
+++ /dev/null
@@ -1,92 +0,0 @@
-% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
-% See file fdl.tex for copying conditions.
-%
-% Backmatter.
-
-\input macros
-
-\ifcompletebook
- \noheadlinetrue\pagebreak
- \ifodd\pageno\else \noheadlinetrue\pagebreak \fi
-\fi
-
-\edgetabsfalse
-
-% About the authors.
-%
-\backsinkage
-\leftline{\sectionfonts About the authors}
-\vskip\belowsectionskip
-
-\noindent Paul W. Abrahams, Sc.D., CCP, is a consulting computer
-scientist and a past president of the Association for Computing
-Machinery. His specialties are programming languages, software systems
-design and implementation, and technical writing. He received his
-doctorate from the Massachusetts Institute of Technology in 1963 in
-mathematics, studying artificial intelligence under Marvin Minsky and
-John McCarthy. He is one of the designers of the first {\sc LISP}
-system and the designer of the {\sc CIMS PL/I} system, developed when he
-was a professor at New York University. More recently, he has designed
-{\sc SPLASH}, a Systems Programming LAnguage for Software Hackers. Paul
-resides in Deerfield, Massachusetts, where he writes, hacks, hikes,
-hunts wild mushrooms, and listens to classical music.
-
-Kathryn A. Hargreaves received her M.S. degree in computer science from
-the University of Massachusetts, Boston, in August 1989. Her
-specialities are digital typography and human vision. She developed a
-set of programs to produce high-quality, freely distributable digital
-type for the Free Software Foundation and also worked with
-Robert~A. Morris as an Adjunct Research Associate. In 1986 she completed
-the Reentry Program in Computer Science for Women and Minorities at the
-University of California at Berkeley, where she also worked in the \TeX\
-research group under Michael Harrison. She has studied letterform design
-with Don Adleta, Andr\'e G\"urtler, and Christian Mengelt at the Rhode
-Island School of Design. A journeyman typographer, she has worked at
-Headliners\slash Identicolor, San Francisco, and Future Studio, Los
-Angeles, two leading typographical firms. She also holds an M.F.A. in
-Painting\slash Sculpture\slash Graphic Arts from the University of
-California at Los Angeles. Kathy paints watercolors, designs
-letterforms, plays piano, and reads feminist film criticism.
-
-Like Kathy, Karl Berry received his M.S. degree in computer science from
-the University of Massachusetts, Boston, in August 1989. He also
-worked for the Free Software Foundation, did research with Morris,
-and has studied with Adleta, G\"urtler, and Mengelt. He has been
-working with \TeX\ since 1983 and has installed and maintained the \TeX\
-system at a number of universities. He was the maintainer of the Web2c
-system developed by Tim Morgan for a number of years, among other \TeX\
-projects. He became the president of the \TeX\ Users Group in 2003.
-
-\noheadlinetrue\pagebreak
-
-
-% Colophon.
-%
-\backsinkage
-\leftline{\sectionfonts Colophon}
-\vskip\belowsectionskip
-
-\noindent This book was composed using \TeX\ (of course), developed by
-Donald~E. Knuth. The main text is set in Computer Modern, also designed
-by Knuth. The heads of the original book were set in Zapf Humanist (the
-Bitstream version of Optima), designed by Hermann Zapf.
-
-The paper was Amherst Ultra Matte 45 lb. The printing and binding were
-done by Arcadia Graphics-Halliday. The phototypeset output was produced
-at Type 2000,~Inc., in Mill Valley, California. Proofs were made on an
-Apple LaserWriter Plus and on a Hewlett Packard LaserJet~II\null.
-
-Cross-referencing, indexing, and the table of contents were done
-mechanically, using the macros of \chapterref{eplain} together with
-additional macros custom-written for this book. The production of the
-index was supported by an additional program written in Icon.
-
-
-\noheadlinetrue
-\iftrue
- \pagebreak
- \printconceptpage
-\fi
-
-\byebye
diff --git a/Master/texmf-doc/doc/english/impatient/book.pdf b/Master/texmf-doc/doc/english/impatient/book.pdf
deleted file mode 100644
index 988068a123e..00000000000
--- a/Master/texmf-doc/doc/english/impatient/book.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-doc/doc/english/impatient/book.tex b/Master/texmf-doc/doc/english/impatient/book.tex
deleted file mode 100644
index 9d656f7c998..00000000000
--- a/Master/texmf-doc/doc/english/impatient/book.tex
+++ /dev/null
@@ -1,47 +0,0 @@
-% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
-% See file fdl.tex for copying conditions.
-
-% Top-level control.
-%
-\input macros
-% 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 frontm
-% (not for web) \edgetabstrue
-\settabdepth{\bigtab}
-\input usebook
-\input usingtex
-\input examples
-\nextedgetab
-\input concepts
-\nextedgetab
-\settabdepth{\smalltab}
-\input paras
-\nextedgetab
-\input pages
-\nextedgetab
-\input modes
-\nextedgetab
-\input math
-\nextedgetab
-\input genops
-\nextedgetab
-\settabdepth{\bigtab}
-\input tips
-\input errors
-\input usermacs
-\nextedgetab
-\input capsule
-\nextedgetab
-\backmatter
-\input fdl
-\input index
-\edgetabsfalse
-\input backm
-
-\bye
diff --git a/Master/texmf-doc/doc/english/impatient/capsule.tex b/Master/texmf-doc/doc/english/impatient/capsule.tex
deleted file mode 100644
index 59e9a2bef09..00000000000
--- a/Master/texmf-doc/doc/english/impatient/capsule.tex
+++ /dev/null
@@ -1,1134 +0,0 @@
-% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
-% See file fdl.tex for copying conditions.
-
-\input macros
-\chapter{Capsule summary \linebreak of commands}
-
-\chapterdef{capsule}
-
-This section contains one-line descriptions of the primitive \TeX\
-commands and the \TeX\ commands defined in \plainTeX. These include both
-control sequences and
-special characters.
-We've omitted those commands that are only intended for internal use
-in the
-\plainTeX\ definition (\knuth{Appendix~B}).
-Note that ordinary characters
-such as `|a|' or `|6|' are also commands, and indeed the most common
-ones \seeconcept{character}.
-
-To keep the descriptions brief, we've adopted
-certain conventions:
-
-\ulist
-
-\li An asterisk in front of a command indicates that the command is primitive,
-^^{primitive//command} i.e., built into the \TeX\ computer program
-\seeconcept{primitive}.
-
-\li The words ``music'', ``punctuation'', ``function'',
-``symbol'', ``relation'', ``delimiter'', or ``operator'' in a command
-description imply that the command is only legal in math modes.
-
-\li The verb ``display'' applies to information
-that \TeX\ sends to the ^{log file}, unless otherwise indicated. If
-|\tracingonline| is positive, \TeX\ also sends that output to the
-terminal. We use the noun ``display'' to refer to math displays (see
-\xref{display math}), i.e., material between |$$|'s.
-
-\li The phrase ``produce $x$'' indicates that the command will typeset
-$x$ and put the result in a box.
-We sometimes omit ``produce'' when the omission is unlikely to
-cause confusion. For example, we describe |\alpha| as ``math Greek
-letter $\alpha$'', not ``produce the math Greek letter $\alpha$''.
-\margin{Remove explanations of ``space'' and ``glue''}
-
-\endulist
-
-\begincapsum
-
-{\catcode `@ = \letter
-\caplineout {\\\visiblespace} {interword space}*{\@space}}%
- {\catcode `\ =\other\ctsidxref{ }}
-\capcs ! {negative thin space for math}{}{\@shriek}
-\capcs " {umlaut accent for text, as in \"o}{}{\@quote}
-\capactwo # {introduce a macro parameter, or indicate where the text of
- an entry goes in an alignment preamble}{}{@msharp:@asharp}
-\capcs # {produce \# character from current font}{}{\@pound}
-\capac $ {begin or end a math formula}{}{mathform}
-\capcs $ {produce \$ character from current font}{}{\@bucks}
-\capac % {begin a comment}*{comments}
-\capcs % {produce \% character from current font}{}{\@percent}
-\capac & {separate templates and entries in an alignment}{}{@and}
-\capcs & {produce \& character from current font}{}{\@and}
-\capac ' {prime symbol for math, as in $p'$}{}{@prime}
-\capcs ' {acute accent for text, as in \'e}{}{\@prime}
-\capcs * {multiplication symbol that allows a line break}{}{\@star}
-\capcs + {begin tabbed line}{}{\@plus}
-\capcs , {thin space for math}{}{\@comma}
-\capcs - {specify a legal hyphenation point}*{\@minus}
-\capcs . {dot accent for text, as in \.n}{}{\@dot}
-\capcs / {italic correction for the previous character}*{\@slash}
-\capcs ; {thick space for math}{}{\@semi}
-\capcs = {macron accent for text, as in \=r}{}{\@equal}
-\capac \ {begin a control sequence}*{@backslash}
-\capcs > {medium space for math}{}{\@greater}
-\capac ^ {produce a specified subformula as a superscript}{}{@hat}
-\capcs ^ {circumflex accent for text, as in \^o}{}{\@hat}
-{\catcode `@ = \letter
-\caplineout {\twocarets L}{equivalent to the |\\par| primitive}
- {}{\@par}\ttidxref{^^L}
-\caplineout {\twocarets M}{an end-of-line}*{@newline}\ttidxref{^^M}
-}%
-\capac _ {produce a specified subformula as a subscript}{}{@underscore}
-\capcs _ {underscore: \_}{}{\@underscore}
-%x \capac ` {in a \<number> context, \ascii\ code for character that follows}*{@lquote}
-\capcs ` {grave accent for text, as in \`e}{}{\@lquote}
-\capac { {start a group}{}{@lbrace}
-\capcs { {left brace delimiter for math: $\{$}{}{\@lbrace}
-\capcs | {parallel lines for math: $\Vert$}{}{\@bar}
-\capac } {end a group}{}{@rbrace}
-\capcs } {right brace delimiter for math: $\}$}{}{\@rbrace}
-\capac ~ {interword space at which a line will not break}{}{@not}
-\capcs ~ {tilde accent for text, as in \~a}{}{\@not}
-\capcs aa {Scandinavian letter: \aa}{}{}
-\capcs AA {Scandinavian letter: \AA}{}{}
-\capcs above {produce a fraction with a bar of specified thickness}*{}
-\capcs abovedisplayshortskip {glue \TeX\ inserts before a display when the
- previous line fits in the display's indentation, by
- default 0\pt\ plus 3\pt}*{}
-\capcs abovedisplayskip {glue \TeX\ inserts before a display when the previous
- line doesn't fit in the display's indentation, by default 12\pt\
- plus 3\pt\ minus 9\pt}*{}
-\capcs abovewithdelims {produce a fraction with a bar of specified thickness
- and surrounded by specified delimiters}*{}
-\capcs accent {put specified accent over the next character}*{}
-\capcs active {category code for active characters, viz., the number $13$}{}{}
-\capcs acute {acute accent for math, as in $\acute x$}{}{}
-\capcs adjdemerits {additional demerits for a line break which would result in
- adjacent lines with incompatible word spacing, by default~10000}*{}
-\capcs advance {add a number to a |\\count| register}*{}
-\capcs advancepageno {if |\\pageno| is positive, add one;
- if it's negative, subtract one}{}{}
-\capcs ae {\ae\ ligature}{}{}
-\capcs AE {\AE\ ligature}{}{}
-\capcs afterassignment {wait to expand the following token until
- the next assignment is done}*{}
-\capcs aftergroup {wait to expand the following token until the end
- of the current group}*{}
-\capcs aleph {only Hebrew letter for math: $\aleph$}{}{}
-\capcstwo allowbreak {do |\\penalty0|, i.e., allow a line or page break
- where one could not ordinarily occur}{}{hallowbreak:vallowbreak}
-\capcs alpha {math Greek letter $\alpha$}{}{}
-\capcs amalg {amalgamation operator: $\amalg$}{}{}
-\capcs angle {angle symbol: $\angle$}{}{}
-\capcs approx {approximation relation: $\approx$}{}{}
-\capcs arccos {arc cosine function: $\arccos$}{}{}
-\capcs arcsin {arc sine function: $\arcsin$}{}{}
-\capcs arctan {arc tangent function: $\arctan$}{}{}
-\capcs arg {argument (phase) function: $\arg$}{}{}
-\capcs arrowvert {vertical portion of an extensible double arrow}{}{}
-\capcs Arrowvert {vertical portion of an extensible single arrow}{}{}
-\capcs ast {asterisk operator: $\ast$}{}{}
-\capcs asymp {asymptote relation: $\asymp$}{}{}
-\capcs atop {produce a fraction without a fraction bar}*{}
-\capcs atopwithdelims {produce a fraction without a fraction bar and
- surrounded by specified delimiters}*{}
-\capcs b {bar-under accent for math, as in $\b x$}{}{}
-\capcs backslash {backslash symbol: $\backslash$}{}{}
-\capcs badness {the badness of the glue setting in the last box
- made}*{}
-\capcs bar {bar accent for math, as in $\bar x$}{}{}
-\capcs baselineskip {glue for the normal vertical distance from one baseline
- to the next, by default 12\pt}*{}
-\capcs batchmode {don't stop at errors and don't output to terminal}*{}
-\capcs begingroup {start a group to be ended by |\\endgroup|}*{}
-\capcs beginsection {begin a major subdivision of a document}{}%
- {\@beginsection}
-\capcs belowdisplayshortskip {glue \TeX\ inserts after a display when the
- previous line fits in the display's indentation,
- by default 7\pt\ plus 0.3\pt\ minus 4\pt}*{}
-\capcs belowdisplayskip {glue \TeX\ inserts after a display when the previous
- line doesn't fit in the display's indentation,
- by default 12\pt\ plus 3\pt\ minus 9\pt}*{}
-\capcs beta {math Greek letter $\beta$}{}{}
-\capcs bf {use boldface, i.e., do |\\tenbf\\fam=\\bffam|}{}{}
-\capcs bffam {boldface family for math}{}{}
-\capcs bgroup {implicit beginning-of-group character}{}{}
-\capcs big {make the specified delimiter larger than an ordinary one, but
- still small enough for text}{}{}
-\capcs Big {make the specified delimiter about 11.5\pt\ tall}{}{}
-\capcs bigbreak {indicate desirable page break with |\\penalty-200|
- and produce |\\bigskipamount| glue}{}{}
-\capcs bigcap {large cap operator (no, it doesn't produce a large
- capital letter!): $\bigcap$}{}{}
-\capcs bigcirc {large circle operator: $\bigcirc$}{}{}
-\capcs bigcup {large cup operator: $\bigcup$}{}{}
-\capcs bigg {make the specified delimiter about 14.5\pt\ tall}{}{}
-\capcs Bigg {make specified delimiter about 17.5\pt\ tall}{}{}
-\capcs biggl {sized like |\\bigg|, but spaced as an opening}{}{}
-\capcs Biggl {sized like |\\Bigg|, but spaced as an opening}{}{}
-\capcs biggm {sized like |\\bigg|, but spaced as a relation}{}{}
-\capcs Biggm {sized like |\\Bigg|, but spaced as a relation}{}{}
-\capcs biggr {sized like |\\bigg|, but spaced as a closing}{}{}
-\capcs Biggr {sized like |\\Bigg|, but spaced as a closing}{}{}
-\capcs bigl {sized like |\\big|, but spaced as an opening}{}{}
-\capcs Bigl {sized like |\\Big|, but spaced as an opening}{}{}
-\capcs bigm {sized like |\\big|, but spaced as a relation}{}{}
-\capcs Bigm {sized like |\\Big|, but spaced as a relation}{}{}
-\capcs bigodot {large circled dot operator: $\bigodot$}{}{}
-\capcs bigoplus {large circled plus operator: $\bigoplus$}{}{}
-\capcs bigotimes {large circled times operator: $\bigotimes$}{}{}
-\capcs bigr {sized like |\\big|, but spaced as a closing}{}{}
-\capcs Bigr {sized like |\\Big|, but spaced as a closing}{}{}
-\capcs bigskip {produce |\\bigskipamount| glue}{}{}
-\capcs bigskipamount {glue for a big vertical skip, by default 12\pt\
- plus 4\pt\ minus 4\pt}{}{}
-\capcs bigsqcup {large square cup operator: $\bigsqcup$}{}{}
-\capcs bigtriangledown {triangle operator pointing downward:
- $\bigtriangledown$}{}{}
-\capcs bigtriangleup {triangle operator pointing upward: $\bigtriangleup$}{}{}
-\capcs biguplus {large cupped plus operator: $\biguplus$}{}{}
-\capcs bigvee {large logical ``or'' operator: $\bigvee$}{}{}
-\capcs bigwedge {large logical ``and'' operator: $\bigwedge$}{}{}
-\capcs binoppenalty {additional penalty for breaking after a binary math
- operator, by default~700}*{}
-\capcs bmod {modulus operator, as in $n \bmod 2$}{}{}
-\capcs bordermatrix {produce matrix with labelled rows and columns}{}{}
-\capcs bot {lattice bottom symbol: $\bot$}{}{}
-\capcs botmark {the last mark item on the page just boxed}*{}
-\capcs bowtie {bowtie relation: $\bowtie$}{}{}
-\capcs box {append the box in a specified box register
- to the current list, and void the register}*{}
-\capcs boxmaxdepth {maximum depth of vboxes, by default |\\maxdimen|}*{}
-\capcs brace {|\char36 n\\brace k\char36| produces
- braced notation: $n \brace k$}{}{}
-\capcs bracevert {vertical portion of extensible large brace}{}{}
-\capcs brack {|\char36 n\\brack k\char36| produces bracketed notation: $n \brack k$}{}{}
-\capcstwo break {do |\\penalty-10000|, i.e., force a line or page
- break}{}{hbreak:vbreak}
-\capcs breve {breve accent for math, as in $\breve x$}{}{}
-\capcs brokenpenalty {penalty for line break at a discretionary item, by
- default~100}*{}
-\capcs buildrel {produce specified formula over the specified relation}{}{}
-\capcs bullet {bullet operation: $\bullet$}{}{}
-\capcs bye {|\\vfill| the last page with blank space, |\\supereject| it,
- and |\\end| the job}{}{\@bye}
-\capcs c {cedilla accent for text, as in \c c}{}{}
-\capcs cal {use calligraphic font for uppercase letters in math,
- as in $\cal XYZ$}{}{}
-\capcs cap {cap operator: $\cap$}{}{}
-\capcs cases {produce cases for math, as in $\bigl\{{\cdots\atop\cdots}$}{}{}
-\capcs catcode {the category code of a specified character}*{}
-\capcs cdot {centered dot operator: $\cdot$}{}{}
-\capcs cdotp {centered dot punctuation: $\cdotp$}{}{}
-\capcs cdots {centered dots for math: $\cdots$}{}{}
-\capcs centerline {produce line with its text centered}{}{}
-\capcs char {produce the character from the current font with the specified
- code}*{}
-\capcs chardef {define a specified control sequence to be a character's
- code, a number between 0 and $255$}*{}
-\capcs check {check accent for math, as in $\check x$}{}{}
-\capcs chi {math Greek letter $\chi$}{}{}
-\capcs choose {|\char36 n\\choose k\char36| produces combinatorial notation:
- $n \choose k$}{}{}
-\capcs circ {circle operation: $\circ$}{}{}
-\capcs cleaders {produce leaders with half of leftover space before
- the first box, and half after the last}*{}
-\capcs cleartabs {clear all the tabs for tabbing alignments}{}{}
-\capcs closein {close a specified input stream}*{}
-\capcs closeout {close a specified output stream}*{}
-\capcs clubpenalty {additional penalty for a single line remaining before
- a page break, by default~150}*{}
-\capcs clubsuit {club suit symbol: $\clubsuit$}{}{}
-\capcs colon {colon punctation symbol for math: $:$}{}{}
-\capcs cong {congruence relation: $\cong$}{}{}
-\capcs coprod {coproduct operator: $\coprod$}{}{}
-\capcs copy {like |\\box|, but don't void the register}*{}
-\capcs copyright {copyright mark: \copyright}{}{}
-\capcs cos {cosine function: $\cos$}{}{}
-\capcs cosh {hyperbolic cosine function: $\cosh$}{}{}
-\capcs cot {cotangent function : $\cot$}{}{}
-\capcs coth {hyperbolic cotangent function: $\coth$}{}{}
-\capcs count {the specified integer register}*{}
-\capcs countdef {define a specified control sequence to be a number
- corresponding to a |\\count| register}*{}
-\capcs cr {end a row (or column) within an alignment}*{}
-\capcs crcr {does nothing if the last command was |\\cr| or |\\noalign|;
- otherwise, equivalent to |\\cr|}*{}
-\capcs csc {cosecant function: $\csc$}{}{}
-\capcs csname {start a control sequence name to be ended by |\\endcsname|}*{}
-\capcs cup {cup operator: $\cup$}{}{}
-\capcs d {underdot accent for text, as in \d r}{}{}
-\capcs dag {dagger symbol for text: \dag}{}{}
-\capcs dagger {dagger operator for math: $\dagger$}{}{}
-\capcs dashv {right turnstile relation: $\dashv$}{}{}
-\capcs day {current day of the month, as a number}*{}
-\capcs ddag {double dagger symbol for text: \ddag}{}{}
-\capcs ddagger {double dagger operator for math: $\ddagger$}{}{}
-\capcs ddot {double dot accent for math: $\ddot x$}{}{}
-\capcs ddots {diagonal dots for math: \smash{$\ddots$}}{}{}
-\capcs deadcycles {number of |\\output| initiations since the last
- |\\shipout|}*{}
-\capcs def {define a control sequence to be a macro}*{}
-\capcs defaulthyphenchar {default hyphenation character code}*{}
-\capcs defaultskewchar {default accent skewing character code}*{}
-\capcs deg {degree function: $\deg$}{}{}
-\capcs delcode {the delimiter code of a specified character}*{}
-\capcs delimiter {produce a specified delimiter}*{}
-\capcs delimiterfactor {1000 times the ratio of the minimum size of a
- delimiter to the size that would completely cover the formula, by
- default~901}*{}
-\capcs delimitershortfall {minimum difference between formula height and
- delimiter height, by default 5\pt}*{}
-\capcs delta {math Greek letter $\delta$}{}{}
-\capcs Delta {math Greek letter $\Delta$}{}{}
-\capcs det {determinant function: $\det$}{}{}
-\capcs diamond {diamond operator: $\diamond$}{}{}
-\capcs diamondsuit {diamond suit symbol: $\diamondsuit$}{}{}
-\capcs dim {dimension function: $\dim$}{}{}
-\capcs dimen {the specified dimension register}*{}
-\capcs dimendef {define a specified control sequence to be a number
- corresponding to a |\\dimen| register}*{}
-\capcs discretionary {specify three texts, the first two for before and
- after a line break, the third for no line break}*{}
-\capcs displayindent {\TeX\ sets this to the indentation of a display}*{}
-\capcs displaylimits {place limits above and below operators only in display
- styles}*{}
-\capcs displaylines {produce specified multiline display with each
- line centered}{}{}
-\capcs displaystyle {use displaystyle size in a formula}*{}
-\capcs displaywidowpenalty {penalty for a single line beginning a page
- just before a display, by default~50}*{}
-\capcs displaywidth {\TeX\ sets this to the width of a display}*{}
-\capcs div {division operator: $\div$}{}{}
-\capcs divide {divide a specified |\\count| register by a specified integer}*{}
-\capcs dot {dot accent for math, as in $\dot x$}{}{}
-\capcs doteq {dotted equality relation: $\doteq$}{}{}
-\capcs dotfill {fill enclosing horizontal space with dots}{}{}
-\capcs dots {ellipsis for sequences: $x_1$, \dots, $x_n$}{}{}
-\capcs doublehyphendemerits {demerits for two consecutive lines ending
- with hyphens, by default~10000}*{}
-\capcs downarrow {relation: $\downarrow$}{}{}
-\capcs Downarrow {relation: $\Downarrow$}{}{}
-\capcs downbracefill {fill enclosing hbox with a downwards facing brace:
- \hbox to 3.5em{\downbracefill}}{}{}
-\capcs dp {the depth of the box in a specified box register}*{}
-\capcs dump {end the job and produce a format file}*{}
-\capcs edef {define a control sequence to be a macro, immediately expanding the
- replacement text}*{}
-\capcs egroup {implicit end-of-group character}{}{}
-\capcs eject {end current paragraph and force a page break,
- stretching out current page}{}{}
-\capcs ell {script letter for math: $\ell$}{}{}
-\capcs else {false or default case alternative for a conditional}*{\@else}
-\capcs emergencystretch {additional stretch added to every line if
- |\\tol\-er\-ance| is not satisfied}*{}
-\capcs empty {macro that expands to nothing}{}{}
-\capcs emptyset {empty set symbol: $\emptyset$}{}{}
-\capcs end {|\\output| the last page and end the job}*{}
-\capcs endcsname {end a control sequence name started by
- |\\csname|}*{}
-\capcs endgraf {equivalent to the |\\par| primitive}{}{}
-\capcs endgroup {end a group started by |\\begingroup|}*{}
-\capcs endinput {terminate input from the current file}*{}
-\capcs endinsert {end insertion}{}{}
-\capcs endline {equivalent to the |\\cr| primitive}{}{}
-\capcs endlinechar {character \TeX\ inserts at the end of each input
- line, by default |\twocarets M|}*{}
-\capcs enskip {horizontal glue with width \frac1/2\em}{}{}
-\capcs enspace {kern \frac1/2\em}{}{}
-\capcs epsilon {math Greek letter $\epsilon$}{}{}
-\capcs eqalign {produce specified multiline display whose indicated parts
- are vertically aligned}{}{}
-\capcs eqalignno {produce specified multiline display
- with equation numbers whose indicated parts are vertically aligned}{}{}
-\capcs eqno {put a specified equation number on the right of a display}*{}
-\capcs equiv {equivalence relation: $\equiv$}{}{}
-\capcs errhelp {token list whose expansion \TeX\ displays when the user asks
- for help in response to an |\\errmessage|}*{}
-\capcs errmessage {give specified error message}*{}
-\capcs errorcontextlines {the number of lines of context \TeX\
- displays at an error, by default~5}*{}
-\capcs errorstopmode {stop for interaction at error messages}*{}
-\capcs escapechar {character with which \TeX\ precedes control sequence
- names that are displayed}*{}
-\capcs eta {math Greek letter $\eta$}{}{}
-\capcs everycr {token list \TeX\ expands after a |\\cr|, or a |\\crcr|
- not following |\\cr| or |\\noalign|}*{}
-\capcs everydisplay {token list \TeX\ expands when a math display begins}*{}
-\capcs everyhbox {token list \TeX\ expands when an hbox begins}*{}
-\capcs everyjob {token list \TeX\ expands when a job begins}*{}
-\capcs everymath {token list \TeX\ expands when text math mode
- begins}*{}
-\capcs everypar {token list \TeX\ expands when a paragraph begins}*{}
-\capcs everyvbox {token list \TeX\ expands when a vbox begins }*{}
-\capcs exhyphenpenalty {additional penalty for a line break after
- an explicit hyphen, by default~50}*{}
-\capcs exists {``there exists'' symbol: $\exists$}{}{}
-\capcs exp {exponential function: $\exp$}{}{}
-\capcs expandafter {expand the next token only after expanding the token
- following it}*{}
-\capcs fam {font family \TeX\ uses for characters with class seven
- (i.e., variables) in math}*{}
-\capcs fi {end a conditional}*{\@fi}
-\capcs filbreak {force a page break unless the text up to another |\\filbreak|
- also fits on the page}{}{}
-\capcs finalhyphendemerits {penalty for the second to last line breaking at a
- hyphen, by default~5000}*{}
-\capcs firstmark {first mark item on the page just boxed}*{}
-\capcs fivebf {use $5$-point bold font, |cmbx5|}{}{}
-\capcs fivei {use $5$-point math italic font, |cmmi5|}{}{}
-\capcs fiverm {use $5$-point roman font, |cmr5|}{}{}
-\capcs fivesy {use $5$-point symbol font, |cmsy5|}{}{}
-\capcs flat {flat symbol for music: $\flat$}{}{}
-\capcs floatingpenalty {penalty for insertions that are split across
- pages, by default~0}*{}
-\capcs fmtname {name of the current format}{}{}
-\capcs fmtversion {version number of the current format}{}{}
-\capcs folio {produce |\\pageno| as characters;
- in roman numerals if it's negative}{}{}
-\capcs font {define a specified control sequence to select a font}*{}
-\capcs fontdimen {a specified parameter of a specified font}*{}
-\capcs fontname {produce the filename of a specified font as characters}*{}
-\capcs footline {token list that produces line at the bottom of each page}{}{}
-\capcs footnote {produce a specified footnote
- with a specified reference mark}{}{}
-\capcs forall {``for all'' symbol: $\forall$}{}{}
-\capcs frenchspacing {make interword spacing independent of punctuation}{}{}
-\capcs frown {frown relation: $\frown$}{}{}
-\capcs futurelet {assign the third following token to a specified control
- sequence, then expand the second following token}*{}
-\capcs gamma {math Greek letter $\gamma$}{}{}
-\capcs Gamma {math Greek letter $\Gamma$}{}{}
-\capcs gcd {greatest common denominator function: $\gcd$}{}{}
-\capcs gdef {equivalent to |\\global\\def|, i.e., globally define a macro}*{}
-\capcs ge {greater than or equal relation: $\ge$}{}{}
-\capcs geq {equivalent to |\\ge|}{}{}
-\capcs gets {gets relation: $\gets$}{}{}
-\capcs gg {much greater than relation: $\gg$}{}{}
-\capcs global {make the following definition global}*{}
-\capcs globaldefs {overrides |\\global| prefixes on assignments}*{}
-\capcs goodbreak {indicate desirable page break with |\\penalty-500|}{}{}
-\capcs grave {grave accent for math, as in $\grave x$}{}{}
-\capcs H {Hungarian umlaut accent for text, as in \H o}{}{}
-\capcs halign {align text in columns}*{}
-\capcs hang {indent the current paragraph by |\\parindent|}{}{}
-\capcs hangafter {starting line number for hanging indentation}*{}
-\capcs hangindent {space for hanging indentation}*{}
-\capcs hat {hat accent for math, as in $\hat x$}{}{}
-\capcs hbadness {badness threshold for reporting underfull or overfull
- hboxes, by default 1000}*{}
-\capcs hbar {math symbol: $\hbar$}{}{}
-\capcs hbox {produce a specified hbox}*{}
-\capcs headline {token list that produces the line at the
- top of every page}{}{}
-\capcs heartsuit {heart suit symbol: $\heartsuit$}{}{}
-\capcs hfil {produce infinitely stretchable horizontal glue}*{}
-\capcs hfill {produce horizontal glue even more infinitely stretchable
- than that produced by |\\hfil|}*{}
-\capcs hfilneg {produce infinitely negative stretchable horizontal glue}*{}
-\capcs hfuzz {space threshold for reporting overfull hboxes, by default
- 0.1\pt}*{}
-\capcs hglue {produce horizontal glue that doesn't disappear at line
- breaks}{}{}
-\capcs hidewidth {ignore width of an entry in an alignment, so that it
- extends out from its box in the direction of the |\\hidewidth|}{}{}
-\capcs hoffset {page offset relative to one inch from the paper's left edge}*{}
-\capcs holdinginserts {if positive, do not remove insertions from the
- current page}*{}
-\capcs hom {homology function: $\hom$}{}{}
-\capcs hookleftarrow {relation: $\hookleftarrow$}{}{}
-\capcs hookrightarrow {relation: $\hookrightarrow$}{}{}
-\capcs hphantom {produce an invisible formula with zero height and depth but
- natural width}{}{}
-\capcs hrule {produce a horizontal rule; legal only in vertical modes}*{}
-\capcs hrulefill {fill enclosing space with a horizontal rule}{}{}
-\capcs hsize {line length, by default 6.5\thinspace in}*{}
-\capcs hskip {produce specified horizontal glue}*{}
-\capcs hss {produce horizontal glue that is infinitely stretchable and
- infinitely shrinkable}*{}
-\capcs ht {the height of the box in a specified box register}*{}
-\capcs hyphenation {add specified words to the
- hyphenation exception dictionary}*{}
-\capcs hyphenchar {the hyphenation character in a specified font}*{}
-\capcs hyphenpenalty {additional penalty for a line break at a hyphen, by
- default~50}*{}
-\capcs i {dotless letter `\i' for use with accents}{}{}
-\capcs ialign {start an |\\halign| with the |\\tabskip| glue zero and
- |\\everycr| empty}{}{}
-\capcs if {test if two specified tokens have the same character code}*{\@if}
-\capcs ifcase {expand case $n$ for specified value $n$}*{\@ifcase}
-\capcs ifcat {test if two specified tokens have the same category
- code}*{\@ifcat}
-\capcs ifdim {test for a specified relationship between two specified
- dimensions}*{\@ifdim}
-\capcs ifeof {test for being at the end of a specified file}*{\@ifeof}
-\capcs iff {if and only if relation: $\iff$}{}{}
-\capcs iffalse {test that is always false}*{\@iffalse}
-\capcs ifhbox {test if a specified box register contains an hbox}*{\@ifhbox}
-\capcs ifhmode {test if \TeX\ is in a horizontal mode}*{\@ifhmode}
-\capcs ifinner {test if \TeX\ is in an internal mode}*{\@ifinner}
-\capcs ifmmode {test if \TeX\ is in a math mode}*{\@ifmmode}
-\capcs ifnum {test for a specified relationship
- between two specified numbers}*{\@ifnum}
-\capcs ifodd {test if a specified number is odd}*{\@ifodd}
-\capcs iftrue {test that is always true}*{\@iftrue}
-\capcs ifvbox {test if a specified box register contains a vbox}*{\@ifvbox}
-\capcs ifvmode {test if \TeX\ is in a vertical mode}*{\@ifvmode}
-\capcs ifvoid {test if a specified box register is void}*{\@ifvoid}
-\capcs ifx {test if two tokens are the same, or if
- two macros have the same top-level definition}*{\@ifx}
-\capcs ignorespaces {ignore any following space tokens}*{}
-\capcs Im {complex imaginary part symbol: $\Im$}{}{}
-\capcs imath {dotless letter `$\imath$' for use with math accents}{}{}
-\capcs immediate {perform the specified file operation without delay}*{}
-\capcs in {containment relation: $\in$}{}{}
-\capcs indent {produce an empty box of width |\\parindent| and enter
- horizontal mode}*{}
-\capcs inf {inferior function: $\inf$}{}{}
-\capcs infty {infinity symbol: $\infty$}{}{}
-\capcs input {begin to read from a specified file}*{}
-\capcs inputlineno {the current line number of the current input file}*{}
-\capcs insert {produce an insertion of a specified class}*{}
-\capcs insertpenalties {sum of penalties due to insertions}*{}
-\capcs int {integral symbol: $\int$}{}{}
-\capcs interlinepenalty {additional penalty for a page break
- between lines of a paragraph, by default~0}*{}
-\capcs iota {math Greek letter $\iota$}{}{}
-\capcs it {use italics, i.e., do |\\tenit\\fam=\\itfam|}{}{}
-\capcs item {begin a paragraph with hanging indentation of |\\parindent|
- and preceded by a specified label}{}{}
-\capcs itemitem {like |\\item|, but with indentation of |2\\parindent|}{}{}
-\capcs itfam {italic family for math}{}{}
-\capcs j {dotless letter `\j', for use with accents}{}{}
-\capcs jmath {dotless letter `$\jmath$' for use with math accents}{}{}
-\capcs jobname {base name of the file with which \TeX\ was invoked}*{}
-\capcs jot {unit of measure for opening up displays}{}{}
-\capcs kappa {math Greek letter $\kappa$}{}{}
-\capcs ker {kernel function: $\ker$}{}{}
-\capcs kern {produce a specified amount of space at which
- a break is not allowed}*{}
-\capcs l {Polish letter: \l}{}{}
-\capcs L {Polish letter: \L}{}{}
-\capcs lambda {math Greek letter $\lambda$}{}{}
-\capcs Lambda {math Greek letter $\Lambda$}{}{}
-\capcs land {logical ``and'' operator: $\land$}{}{}
-\capcs langle {left angle delimiter: $\langle$}{}{}
-\capcs language {the current set of hyphenation patterns}*{}
-\capcs lastbox {retrieve and remove the last item from the current list, if
- it's a box}*{}
-\capcs lastkern {retrieve the last item from the current list, if it's a
- kern}*{}
-\capcs lastpenalty {retrieve the last item from the current list, if it's a
- penalty}*{}
-\capcs lastskip {retrieve the last item from the current list, if it's
- glue}*{}
-\capcs lbrace {left brace delimiter: $\lbrace$}{}{}
-\capcs lbrack {left bracket delimiter: $\lbrack$}{}{}
-\capcs lccode {the character code for the lowercase form of a letter}*{}
-\capcs lceil {left ceiling delimiter: $\lceil$}{}{}
-\capcs ldotp {dot on baseline as punctuation: $\ldotp$}{}{}
-\capcs ldots {dots on baseline for math: $\ldots$}{}{}
-\capcs le {less than or equal relation: $\le$}{}{}
-\capcs leaders {fill a specified horizontal or vertical space by repeating a
- specified box or rule}*{}
-\capcs left {produce the specified delimiter, sizing it to cover the
- following subformula ended by |\\right|}*{}
-\capcs leftarrow {relation: $\leftarrow$}{}{}
-\capcs Leftarrow {relation: $\Leftarrow$}{}{}
-\capcs leftarrowfill {fill enclosing hbox with a |\\leftarrow|:
- \hbox to 3.5em{\leftarrowfill}}{}{}
-\capcs leftharpoondown {relation: $\leftharpoondown$}{}{}
-\capcs leftharpoonup {relation: $\leftharpoonup$}{}{}
-\capcs lefthyphenmin {size of the smallest word fragment \TeX\ allows
- before a hyphen at the beginning of a word, by default~2}*{}
-\capcs leftline {produce line with its text pushed to left margin}{}{}
-\capcs leftrightarrow {relation: $\leftrightarrow$}{}{}
-\capcs Leftrightarrow {relation: $\Leftrightarrow$}{}{}
-\capcs leftskip {glue \TeX\ inserts at the left of each line}*{}
-\capcs leq {equivalent to |\\le|}{}{}
-\capcs leqalignno {produce specified multiline display with equation numbers
- on the left whose indicated parts are vertically aligned}{}{}
-\capcs leqno {put a specified equation number on the left of a display}*{}
-\capcs let {define a control sequence to be the next token}*{}
-\capcs lfloor {left floor delimiter: $\lfloor$}{}{}
-\capcs lg {logarithm function: $\lg$}{}{}
-\capcs lgroup {left group delimiter (the smallest size is shown here):
- $\Big\lgroup$}{}{}
-\capcs lim {limit function: $\lim$}{}{}
-\capcs liminf {inferior limit function: $\liminf$}{}{}
-\capcs limits {place superscript above and subscript below a
- large operator}*{}
-\capcs limsup {superior limit function: $\limsup$}{}{}
-\capcs line {produce a justified line of type}{}{}
-\capcs linepenalty {penalty for line breaking added to each line,
- by default~10}*{}
-\capcs lineskip {vertical glue from one baseline to the next if the
- lines are closer together than |\\lineskiplimit|, by default 1\pt}*{}
-\capcs lineskiplimit {threshold for using |\\lineskip| instead of
- |\\base\-line\-skip|, by default 0\pt}*{}
-\capcs ll {much less than relation: $\ll$}{}{}
-\capcs llap {produce text (with no width) extending to the left
- of the current position}{}{}
-\capcs lmoustache {top half of a large brace: $\big\lmoustache$}{}{}
-\capcs ln {natural logarithm function: $\ln$}{}{}
-\capcs lnot {logical ``not'' symbol: $\lnot$}{}{}
-\capcs log {logarithm function: $\log$}{}{}
-\capcs long {allow |\\par| tokens in the argument(s) of
- the following definition}*{}
-\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 {start a loop to be ended by |\\repeat|}{}{}
-\capcs looseness {difference between the number of lines you want a
- paragraph to be relative to the optimal number}*{}
-\capcs lor {logical ``or'' operator: $\lor$}{}{}
-\capcs lower {lower a specified box by a specified amount}*{}
-\capcs lowercase {convert uppercase letters in the specified text
- to lowercase}*{}
-\capcs lq {left quote character for text: \lq}{}{}
-\capcs mag {$1000$ times the ratio for enlarging all dimensions}*{}
-\capcs magnification {like |\\mag|, but don't enlarge the page size}{}{}
-\capcs magstep {$1000 \cdot 1.2^n$ for a specified $n$}{}{}
-\capcs magstephalf {$1000\cdot\sqrt{1.2}$}{}{}
-\capcs mapsto {relation: $\mapsto$}{}{}
-\capcs mark {produce a mark item with a specified text}*{}
-\capcs mathaccent {put specified math accent over the next character}*{}
-\capcs mathbin {space a specified subformula as a binary operator}*{}
-\capcs mathchar {produce the math character with the specified mathcode}*{}
-\capcs mathchardef {define a specified control sequence to be a mathcode,
- a number between 0 and $2^{15}-1$}*{}
-\capcs mathchoice {select one of four specified math subformulas
- depending on the current style}*{}
-\capcs mathclose {space a specified subformula as a closing delimiter}*{}
-\capcs mathcode {the mathcode of a specified character}*{}
-\capcs mathinner {space a specified subformula as an inner formula, e.g., a
- fraction}*{}
-\capcs mathop {space a specified subformula as a large math operator}*{}
-\capcs mathopen {space a specified subformula as an opening delimiter}*{}
-\capcs mathord {space a specified subformula as an ordinary character}*{}
-\capcs mathpalette {produce a |\\mathchoice| which expands a specified
- control sequence depending on the current style}{}{}
-\capcs mathpunct {space a specified subformula as punctuation}*{}
-\capcs mathrel {space a specified subformula as a relation}*{}
-\capcs mathstrut {produce an invisible box with the height and depth of a
- left parenthesis and no width}{}{}
-\capcs mathsurround {space \TeX\ kerns before and after math in text}*{}
-\capcs matrix {produce a specified matrix}{}{}
-\capcs max {maximum function: $\max$}{}{}
-\capcs maxdeadcycles {value of |\\deadcycles| at which \TeX\ complains,
- and then uses its own output routine, by default~25}*{}
-\capcs maxdepth {maximum depth of the bottom box on a page,
- by default 4\pt}*{}
-\capcs maxdimen {largest dimension acceptable to \TeX}{}{}
-\capcs meaning {produce the human-understandable meaning of a specified
- token as characters}*{}
-\capcs medbreak {indicate desirable page
- break with |\\penalty-100| and produce |\\medskipamount| glue}{}{}
-\capcs medmuskip {glue for a medium math space, by default 4\mud\ plus 2\mud\
- minus 4\mud}*{}
-\capcs medskip {produce |\\medskipamount| glue}{}{}
-\capcs medskipamount {glue for a medium vertical skip, by default 6\pt
- plus 2\pt\ minus 2\pt}{}{}
-\capcs message {show expansion of the specified text on the terminal}*{}
-\capcs mid {middle relation: $\mid$}{}{}
-\capcs midinsert {produce the specified text at the current position if
- possible, otherwise at the top of the next page}{}{}
-\capcs min {minimum function: $\min$}{}{}
-\capcs mit {use math italics, i.e., do |\\fam=1|}{}{}
-\capcs mkern {produce a specified kern in units of |mu| for math}*{}
-\capcs models {models relation: $\models$}{}{}
-\capcs month {current month, as a number}*{}
-\capcs moveleft {move a specified box left by a specified space; legal
- only in vertical modes}*{}
-\capcs moveright {move a specified box right by a specified space; legal
- only in vertical modes}*{}
-\capcs mp {minus and plus operator: $\mp$}{}{}
-\capcs mskip {produce specified glue in units of |mu| for math}*{}
-\capcs mu {math Greek letter $\mu$}{}{}
-\capcs multiply {multiply a specified |\\count| register by a specified
- integer}*{}
-\capcs multispan {make next alignment entry span a specified number of
- columns (or rows)}{}{}
-\capcs muskip {the specified muglue register}*{}
-\capcs muskipdef {define a specified control sequence to be a number
- corresponding to a |\\muskip| register}*{}
-\capcs nabla {backwards difference symbol: $\nabla$}{}{}
-\capcs narrower {make both left and right margins narrower by
- |\\parindent|}{}{}
-\capcs natural {natural symbol for music: $\natural$}{}{}
-\capcs nearrow {northeast arrow relation: $\nearrow$}{}{}
-\capcs ne {not equal relation: $\ne$}{}{}
-\capcs neg {logical ``not'' symbol: $\neg$}{}{}
-\capcs negthinspace {kern $-\frac1/6$\em}{}{}
-\capcs neq {not equal relation: $\neq$}{}{}
-\capcs newbox {reserve and name a |\\box| register}{}{\@newbox}
-\capcs newcount {reserve and name a |\\count| register}{}{\@newcount}
-\capcs newdimen {reserve and name a |\\dimen| register}{}{\@newdimen}
-\capcs newfam {reserve and name a math family}{}{\@newfam}
-\capcs newhelp {name a specified help message}{}{\@newhelp}
-\capcs newif {define a new conditional with the specified name}{}{\@newif}
-\capcs newinsert {name an insertion class, and reserve a
- corresponding |\\box|, |\\count|, |\\dimen|, and |\\skip| registers}
- {}{\@newinsert}
-\capcs newlanguage {reserve and name a |\\language|}{}{\@newlanguage}
-\capcs newlinechar {end-of-line character for |\\write|, etc.}*{}
-\capcs newmuskip {reserve and name a |\\muskip| register}{}{\@newmuskip}
-\capcs newread {reserve and name an input stream}{}{\@newread}
-\capcs newskip {reserve and name a |\\skip| register}{}{\@newskip}
-\capcs newtoks {reserve and name a |\\toks| register}{}{\@newtoks}
-\capcs newwrite {reserve and name an output stream}{}{\@newwrite}
-\capcs ni {``reverse in'' relation: $\ni$}{}{}
-\capcs noalign {insert material between rows (or columns) of an
- alignment}*{}
-\capcs noboundary {inhibit ligatures or kerns involving the current font's
- |boundarychar|}*{}
-\capcstwo nobreak {do |\\penalty10000|, i.e.,
- inhibit a line or page break}{}{hnobreak:vnobreak}
-\capcs noexpand {suppress expansion of the next token}*{}
-\capcs noindent {enter horizontal mode without indenting the paragraph}*{}
-\capcs nointerlineskip {inhibit interline glue before the next line}{}{}
-\capcs nolimits {place superscript and subscript after large operators}*{}
-\capcs nonfrenchspacing {make interword spacing depend on punctuation}{}{}
-\capcs nonscript {inhibit any following glue or kern when
- in script and scriptscript styles}*{}
-\capcs nonstopmode {don't stop at errors, even those about missing files}*{}
-\capcs nopagenumbers {inhibit printing of page numbers, i.e., do
- |\\footline = {\\hfil}|}{}{}
-\capcs normalbaselines {set |\\baselineskip|, |\\line\-skip|, and
- |\\line\-skip\-limit| to the normal values for the current type size}{}{}
-\capcs normalbaselineskip {value of |\\baselineskip| for the
- current type size}{}{}
-\capcs normalbottom {make the bottom margin be the same from page to page}{}{}
-\capcs normallineskip {value of |\\lineskip| for the current type
- size}{}{}
-\capcs normallineskiplimit {value of |\\lineskiplimit| for the
- current type size}{}{}
-\capcs not {a slash with zero width for constructing negations of math
- relations, as in $\not=$}{}{}
-\capcs notin {noninclusion relation: $\notin$}{}{}
-\capcs nu {math Greek letter $\nu$}{}{}
-\capcs null {expands to an empty hbox}{}{}
-\capcs nulldelimiterspace {space produced by a null delimiter, by
- default 1.2\pt}*{}
-\capcs nullfont {primitive font with no characters in it}*{}
-\capcs number {produce a specified number as characters}*{}
-\capcs nwarrow {northwest arrow relation: $\nwarrow$}{}{}
-\capcs o {Danish letter: \o}{}{}
-\capcs O {Danish letter: \O}{}{}
-\capcs obeylines {make each end-of-line in the input file
- equivalent to |\\par|}{}{}
-\capcs obeyspaces {produce space in the output for each space character in the
- input}{}{}
-\capcs odot {centered dot operation: $\odot$}{}{}
-\capcs oe {\oe\ ligature}{}{}
-\capcs OE {\OE\ ligature}{}{}
-\capcs offinterlineskip {inhibit interline glue from now on}{}{}
-\capcs oint {contour integral operator: $\oint$}{}{}
-\capcs oldstyle {use old style digits: {\oldstyle1234567890}}{}{}
-\capcs omega {math Greek letter $\omega$}{}{}
-\capcs Omega {math Greek letter $\Omega$}{}{}
-\capcs ominus {circled minus operator: $\ominus$}{}{}
-\capcs omit {skip a column's (or row's) template in an alignment}*{}
-\capcs openin {prepare a specified input stream to read from a file}*{}
-\capcs openout {prepare a specified output stream to write to a file}*{}
-\capcs openup {increase |\\baselineskip|, |\\lineskip|, and
- |\\lineskiplimit| by a specified amount}{}{}
-\capcs oplus {circled plus operator: $\oplus$}{}{}
-\capcs or {separate the cases of an |\\ifcase|}*{\@or}
-\capcs oslash {circled slash operator: $\oslash$}{}{}
-\capcs otimes {circled times operator: $\otimes$}{}{}
-\capcs outer {make the following macro definition illegal in contexts in
- which tokens are absorbed at high speed}*{}
-\capcs output {token list \TeX\ expands when it finds a page break}*{}
-\capcs outputpenalty {if the page break occurred at a penalty, the value
- of that penalty; otherwise zero}*{}
-\capcs over {produce a fraction with a bar of default thickness}*{}
-\capcs overbrace {produce a brace covering the top of a formula,
- as in $\overbrace{h+w}{}$}{}{}
-\capcs overfullrule {width of the rule appended to an overfull box}*{}
-\capcs overleftarrow {produce a left arrow covering the top of
- a formula, as in $\overleftarrow{r+a}$}{}{}
-\capcs overline {produce a line covering the top of a formula,
- as in $\overline{2b}$}*{}
-\capcs overrightarrow {produce a right arrow covering the top of a
- formula, as in $\overrightarrow{i+t}$}{}{}
-\capcs overwithdelims {produce a fraction with a bar of the default thickness
- and surrounded by specified delimiters}*{}
-\capcs owns {owns relation: $\owns$}{}{}
-\capcs P {paragraph character for text: \P}{}{}
-\capcs pagedepth {\TeX\ sets this to the current depth of the current
- page}*{}
-\capcs pagefilllstretch {\TeX\ sets this to the amount of |filll| stretch on
- the current page}*{}
-\capcs pagefillstretch {\TeX\ sets this to the amount of |fill| stretch on
- the current page}*{}
-\capcs pagefilstretch {\TeX\ sets this to the amount of |fil| stretch on the
- current page}*{}
-\capcs pagegoal {\TeX\ sets this to the desired height for the current page
- (i.e., |\\vsize| when the first box is put on the page)}*{}
-\capcs pageinsert {produce the specified text on the following page, and use up
- the full page}{}{}
-\capcs pageno {the register |\\count0|, which contains the
- (possibly negative) page number}{}{}
-\capcs pageshrink {\TeX\ sets this to the total amount of shrinkability
- on the current page}*{}
-\capcs pagestretch {\TeX\ sets this to the total amount of stretchability
- on the current page}*{}
-\capcs pagetotal {\TeX\ sets this to the natural height of the current
- page}*{}
-\capcs par {finish paragraph and terminate horizontal mode}*{\@par}
-\capcs parallel {parallel relation: $\parallel$}{}{}
-\capcs parfillskip {horizontal glue \TeX\ inserts at the end of a
- paragraph}*{}
-\capcs parindent {horizontal space \TeX\ inserts at the start of a
- paragraph}*{}
-\capcs parshape {specify the width and length of each line
- in the next paragraph}*{}
-\capcs parskip {vertical glue \TeX\ inserts before a paragraph}*{}
-\capcs partial {partial derivative symbol: $\partial$}{}{}
-\capcs pausing {if positive, stop after reading each line of input for a
- possible replacement}*{}
-\capcstwo penalty {produce penalty (or bonus, if negative) for breaking
- line or page here}*{hpenalty:vpenalty}
-\capcs perp {perpendicular relation: $\perp$}{}{}
-\capcs phantom {produce an invisible formula with the
- dimensions of a specified subformula}{}{}
-\capcs phi {math Greek letter $\phi$}{}{}
-\capcs Phi {math Greek letter $\Phi$}{}{}
-\capcs pi {math Greek letter $\pi$}{}{}
-\capcs Pi {math Greek letter $\Pi$}{}{}
-\capcs plainoutput {\plainTeX's |\\output| routine}{}{}
-\capcs pm {plus and minus operator: $\pm$}{}{}
-\capcs pmatrix {produce a parenthesized matrix}{}{}
-\capcs pmod {parenthesized modulus notation to put at the end of a formula, as
- in $x \equiv y+1 \pmod 2$}{}{}
-\capcs postdisplaypenalty {additional penalty for a line break
- just after a display, by default~0}*{}
-\capcs Pr {probability function: $\Pr$}{}{}
-\capcs prec {precedes relation: $\prec$}{}{}
-\capcs preceq {precedes or equals relation: $\preceq$}{}{}
-\capcs predisplaypenalty {additional penalty for a line break just
- before a display, by default~0}*{}
-\capcs predisplaysize {\TeX\ sets this to the width of the
- line preceding a display}*{}
-\capcs pretolerance {badness tolerance for line breaks without
- hyphenation, by default~100}*{}
-\capcs prevdepth {depth of the last nonrule box on the
- current vertical list}*{}
-\capcs prevgraf {\TeX\ sets this to the number
- of lines in the paragraph so far (in horizontal mode)
- or in the previous paragraph (in vertical mode)}*{}
-\capcs prime {prime math symbol, as in $r^\prime$}{}{}
-\capcs proclaim {begin a theorem, lemma, hypothesis, $\ldots$}{}{\@proclaim}
-\capcs prod {large product operator: $\prod$}{}{}
-\capcs propto {proportional to relation: $\propto$}{}{}
-\capcs psi {math Greek letter $\psi$}{}{}
-\capcs Psi {math Greek letter $\Psi$}{}{}
-\capcs qquad {produce horizontal glue with width 2\em}{}{}
-\capcs quad {produce horizontal glue with width 1\em}{}{}
-\capcs radical {produce a specified radical symbol}*{}
-\capcs raggedbottom {allow the bottom margin to vary from page to page}{}{}
-\capcs raggedright {allow the right margin to vary from line to line}{}{}
-\capcs raise {raise a specified box by a specified amount}*{}
-\capcs rangle {right angle delimiter: $\rangle$}{}{}
-\capcs rbrace {right brace delimiter: $\rbrace$}{}{}
-\capcs rbrack {right bracket delimiter: $\rbrack$}{}{}
-\capcs rceil {right ceiling delimiter: $\rceil$}{}{}
-\capcs Re {complex real part symbol: $\Re$}{}{}
-\capcs read {read a line from a specified input stream}*{}
-\capcs relax {do nothing}*{}
-\capcs relpenalty {additional penalty for breaking after a relation,
- by default~500}*{}
-\capcs repeat {end a loop started with |\\loop|}{}{\@repeat}
-\capcs rfloor {right floor delimiter: $\rfloor$}{}{}
-\capcs rgroup {right group delimiter (the smallest size is shown here):
- $\Big\rgroup$}{}{}
-\capcs rho {math Greek letter $\rho$}{}{}
-\capcs right {produce the specified delimiter at the right end of a
- subformula started with |\\left|}*{}
-\capcs rightarrow {relation: $\rightarrow$}{}{}
-\capcs Rightarrow {relation: $\Rightarrow$}{}{}
-\capcs rightarrowfill {fill enclosing hbox with a |\\rightarrow|:
- \hbox to 3.5em{\rightarrowfill}}{}{}
-\capcs rightharpoondown {relation: $\rightharpoondown$}{}{}
-\capcs rightharpoonup {relation: $\rightharpoonup$}{}{}
-\capcs rightleftharpoons {relation: $\rightleftharpoons$}{}{}
-\capcs rightline {produce line with its text pushed to right margin}{}{}
-\capcs rightskip {glue \TeX\ inserts at the right of each line}*{}
-\capcs righthyphenmin {size of the smallest word fragment \TeX\ allows
- after a hyphen at the end of a word, by default~3}*{}
-\capcs rlap {produce text (with no width) extending to the right
- of the current position}{}{}
-\capcs rm {use roman type, i.e., do |\\tenrm\\fam=0|}{}{}
-\capcs rmoustache {bottom half of a large brace: $\big\rmoustache$}{}{}
-\capcs romannumeral {produce the lowercase roman numeral representation of a
- specified number as characters}{}{}
-\capcs root {produce a specified root of a specified subformula, as in
- $\root 3 \of 2$}{}{}
-\capcs rq {right quote character for text: \rq}{}{}
-\capcs S {section character for text: \S}{}{}
-\capcs sb {implicit subscript character}{}{}
-\capcs scriptfont {the script style font in a specified math family}*{}
-\capcs scriptscriptfont {the scriptscript style font in a specified
- math family}*{}
-\capcs scriptscriptstyle {use scriptscriptstyle size in a formula}*{}
-\capcs scriptspace {additional space \TeX\ kerns after a subscript or
- superscript, by default 0.5\pt}*{}
-\capcs scriptstyle {use scriptstyle size in a formula}*{}
-\capcs scrollmode {don't stop at most errors, but do stop at errors
- about missing files}*{}
-\capcs searrow {southeast arrow relation: $\searrow$}{}{}
-\capcs sec {secant function: $\sec$}{}{}
-\capcs setbox {define a specified box register to be a box}*{}
-\capcs setlanguage {change to a specified set of hyphenation rules, but
- don't change |\\language|}{*}{}
-\capcs setminus {set difference operator: $\setminus$}{}{}
-\capcs settabs {define the tabs for a tabbing alignment}{}{}
-\capcs sevenbf {use $7$-point bold font, |cmbx7|}{}{}
-\capcs seveni {use $7$-point math italic font, |cmmi5|}{}{}
-\capcs sevenrm {use $7$-point roman font, |cmr7|}{}{}
-\capcs sevensy {use $7$-point symbol font, |cmsy7|}{}{}
-\capcs sfcode {the space factor code of a specified character}*{}
-\capcs sharp {sharp symbol for music: $\sharp$}{}{}
-\capcs shipout {output a box to the |.dvi| file}*{}
-\capcs show {show, in the log and
- on the terminal, the meaning of a specified token}*{}
-\capcs showbox {display the contents of a specified box register}*{}
-\capcs showboxbreadth {maximum number of items shown on each nesting
- level, by default~5}*{}
-\capcs showboxdepth {maximum nesting level shown, by default~3}*{}
-\capcs showhyphens {show, in the log
- and on the terminal, hyphenations in the specified text}{}{}
-\capcs showlists {display all lists being worked on}*{}
-\capcs showthe {show, in the log
- and on the terminal, what |\\the| would produce}*{}
-\capcs sigma {math Greek letter $\sigma$}{}{}
-\capcs Sigma {math Greek letter $\Sigma$}{}{}
-\capcs sim {similarity relation: $\sim$}{}{}
-\capcs simeq {similar or equal relation: $\simeq$}{}{}
-\capcs sin {sine function: $\sin$}{}{}
-\capcs sinh {hyperbolic sine function: $\sinh$}{}{}
-\capcs skew {shift a specified accent by a specified amount
- on a specified accented character}{}{}
-\capcs skewchar {character in a specified font used for positioning accents}*{}
-\capcs skip {the specified glue register}*{}
-\capcs skipdef {define a specified control sequence to be a number
- corresponding to a |\\skip| register}*{}
-\capcs sl {use slanted type, i.e., do |\\tensl\\fam=\\slfam|}{}{}
-\capcs slash {\slash\ character that allows a line break}{}{}
-\capcs slfam {slanted family for math}{}{}
-\capcs smallbreak {indicate somewhat desirable page break
- with |\\penalty-50| and produce |\\smallskipamount| glue}{}{}
-\capcs smallint {small integral symbol: $\smallint$}{}{}
-\capcs smallskip {produce |\\smallskipamount| glue}{}{}
-\capcs smallskipamount {glue for a small vertical skip, by default 3\pt\
- plus 1\pt\ minus 1\pt}{}{}
-\capcs smash {produce formula with zero height and depth}{}{}
-\capcs smile {smile relation: $\smile$}{}{}
-\capcs sp {implicit superscript character}{}{}
-\capcs space {produce normal interword glue}{}{}
-\capcs spacefactor {modifies stretch and shrink of interword glue
- if not 1000}*{}
-\capcs spaceskip {if nonzero and |\\spacefactor|${}<2000$, overrides
- the normal interword glue}*{}
-\capcs spadesuit {spade suit symbol: $\spadesuit$}{}{}
-\capcs span {either combine entries in an alignment body or expand tokens in a
- preamble}*{}
-\capcs special {write tokens to the |.dvi| file to be interpreted by a
- DVI-reading program}*{}
-\capcs splitbotmark {last mark item in a box resulting from |\\vsplit|}*{}
-\capcs splitfirstmark {first mark item in a box resulting from
- |\\vsplit|}*{}
-\capcs splitmaxdepth {maximum depth of a box resulting from |\\vsplit|}*{}
-\capcs splittopskip {glue \TeX\ inserts at the top of a box resulting from
- |\\vsplit|}*{}
-\capcs sqcap {square cap operator: $\sqcap$}{}{}
-\capcs sqcup {square cup operator: $\sqcup$}{}{}
-\capcs sqrt {produce square root of a subformula, as in $\sqrt 2$}{}{}
-\capcs sqsubseteq {square subset or equal relation: $\sqsubseteq$}{}{}
-\capcs sqsupseteq {square superset or equal relation: $\sqsupseteq$}{}{}
-\capcs ss {German letter: \ss}{}{}
-\capcs star {star operator: $\star$}{}{}
-\capcs string {produce a specified token, most commonly a control
- sequence, as characters}*{}
-\capcs strut {box with zero width, but height and depth of a standard
- line, from baseline to baseline, in the current font}{}{}
-\capcs subset {subset relation: $\subset$}{}{}
-\capcs subseteq {subset or equal relation: $\subseteq$}{}{}
-\capcs succ {successor relation: $\succ$}{}{}
-\capcs succeq {successor or equal relation: $\succeq$}{}{}
-\capcs sum {large summation operator: $\sum$}{}{}
-\capcs sup {superior function: $\sup$}{}{}
-\capcs supereject {force a page break, and output all insertions}{}{}
-\capcs supset {superset relation: $\supset$}{}{}
-\capcs supseteq {superset or equal relation: $\supseteq$}{}{}
-\capcs surd {surd symbol: $\surd$}{}{}
-\capcs swarrow {southwest arrow relation: $\swarrow$}{}{}
-\capcs t {tie-after accent for text, as in \t uu}{}{}
-\capcs tabalign {equivalent to |\\+|, except it's not |\\outer|}{}{}
-\capcs tabskip {glue between columns (or rows) of an alignment}*{}
-\capcs tan {tangent function: $\tan$}{}{}
-\capcs tanh {hyperbolic tangent function: $\tanh$}{}{}
-\capcs tau {math Greek letter $\tau$}{}{}
-\capcs tenbf {use $10$-point bold font, |cmbx10|}{}{}
-\capcs tenex {use $10$-point math extension font, |cmex10|}{}{}
-\capcs teni {use $10$-point math italic font, |cmmi10|}{}{}
-\capcs tenit {use $10$-point text italic font, |cmti10|}{}{}
-\capcs tenrm {use $10$-point roman text font, |cmr10|}{}{}
-\capcs tensl {use $10$-point slanted roman font, |cmsl10|}{}{}
-\capcs tensy {use $10$-point math symbol font, |cmsy10|}{}{}
-\capcs tentt {use $10$-point typewriter font, |cmtt10|}{}{}
-\capcs TeX {produce the \TeX\ logo}{}{}
-\capcs textfont {the text style font in a specified math family}*{}
-\capcs textindent {like |\\item|, but doesn't do hanging indentation}{}{}
-\capcs textstyle {use textstyle size in a formula}*{}
-\capcs the {give the value of a specified token}*{}
-\capcs theta {math Greek letter $\theta$}{}{}
-\capcs Theta {math Greek letter $\Theta$}{}{}
-\capcs thickmuskip {glue for a thick math space, by default 5\mud\ plus 5\mud}*{}
-\capcs thinmuskip {glue for a thin math space, by default 3\mud}*{}
-\capcs thinspace {kern \frac1/6\em}{}{}
-\capcs tilde {tilde accent for math, as in $\tilde x$}{}{}
-\capcs time {the time of day, in minutes since midnight}*{}
-\capcs times {times operator: $\times$}{}{}
-\capcs toks {the specified token register}*{}
-\capcs toksdef {define a specified control sequence to be a number
- corresponding to a |\\toks| register}*{}
-\capcs tolerance {badness tolerance for line breaks with hyphenation}*{}
-\margin{{\tt\\topglue} command added; recent addition to \TeX}
-\capcs to {mapping relation: $\to$}{}{}
-\capcs top {lattice top symbol: $\top$}{}{}
-\capcs topglue {produce specified vertical glue at the
- top of a page}{}{}
-\capcs topinsert {produce the specified text at top of a page}{}{}
-\capcs topmark {|\\botmark| before the current page was boxed}*{}
-\capcs topskip {glue between the headline and the first line of text
- on a page, by default 10\pt}*{}
-\capcs tracingall {turn on maximal tracing}{}{}
-\capcs tracingcommands {display execution of commands}*{}
-\capcs tracinglostchars {display characters that are asked for, but not
- defined}*{}
-\capcs tracingmacros {display macro expansions}*{}
-\capcs tracingonline {show diagnostic output on the terminal as well as in
- the log file}*{}
-\capcs tracingoutput {display contents of shipped-out boxes}*{}
-\capcs tracingpages {display page break calculations}*{}
-\capcs tracingparagraphs {display line break calculations}*{}
-\capcs tracingrestores {display values restored at the end
- of a group}*{}
-\capcs tracingstats {display memory usage statistics}*{}
-\capcs triangle {triangle symbol: $\triangle$}{}{}
-\capcs triangleleft {left triangle operator: $\triangleleft$}{}{}
-\capcs triangleright {right triangle operator: $\triangleright$}{}{}
-\capcs tt {use typewriter type, i.e., do |\\tentt\\fam=\\ttfam|}{}{}
-\capcs ttfam {typewriter family for math}{}{}
-\capcs ttraggedright {use typewriter type and allow right margins of
- paragraphs to vary from line to line}{}{}
-\capcs u {breve accent for text, as in \u r}{}{}
-\capcs uccode {the character code for the uppercase form of a letter}*{}
-\capcs uchyph {if positive, consider hyphenating words that start with a
- capital letter}*{}
-\capcs underbar {underline the specified text without avoiding
- any descenders, as in \underbar{fog}}{}{}
-\capcs underbrace {produce a brace covering the bottom of a formula, as in
- $\underbrace{x+x}{}$}{}{}
-\capcs underline {underline a math formula below the descenders, as in
- $\underline{x+y}$}*{}
-\capcs unhbox {append the contents of the box
- in a specified box
- register to the current list, and void the register; legal only in
- horizontal modes}*{}
-\capcs unhcopy {like |\\unhbox|, but doesn't void the register}*{}
-\capcs unkern {if the last item on the current list is a kern, remove it}*{}
-\capcs unpenalty {if the last item on the current list is a penalty, remove
- it}*{}
-\capcs unskip {if the last item on the current list is glue, remove it}*{}
-\capcs unvbox {append the contents of the box
- in a specified box
- register to the current list, and void the register; legal only in
- vertical modes}*{}
-\capcs unvcopy {like |\\unvbox|, but doesn't void the register}*{}
-\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 {cupped plus operator: $\uplus$}{}{}
-\capcs uppercase {convert lowercase letters in the specified text
- to uppercase}*{}
-\capcs upsilon {math Greek letter $\upsilon$}{}{}
-\capcs Upsilon {math Greek letter $\Upsilon$}{}{}
-\capcs v {check accent for text, as in \v o}{}{}
-\capcs vadjust {produce vertical mode material after the current line}*{}
-\capcs valign {align text in rows}*{}
-\capcs varepsilon {variant math Greek letter $\varepsilon$}{}{}
-\capcs varphi {variant math Greek letter $\varphi$}{}{}
-\capcs varpi {variant math Greek letter $\varpi$}{}{}
-\capcs varrho {variant math Greek letter $\varrho$}{}{}
-\capcs varsigma {variant Greek letter $\varsigma$}{}{}
-\capcs vartheta {variant math Greek letter $\vartheta$}{}{}
-\capcs vbadness {badness threshold for reporting underfull or overfull
- vboxes, by default~1000}*{}
-\capcs vbox {produce a vbox whose baseline is that of the bottom box
- enclosed}*{}
-\capcs vcenter {center the specified text on the math axis}*{}
-\capcs vdash {left turnstile symbol: $\vdash$}{}{}
-\capcs vdots {vertical dots for math: \smash{$\vdots$}}{}{}
-\capcs vec {vector accent for math, as in $\vec x$}{}{}
-\capcs vee {logical ``or'' operator: $\vee$}{}{}
-\capcs vert {bar relation: $\vert$}{}{}
-\capcs Vert {double bar relation: $\Vert$}{}{}
-\capcs vfil {produce infinitely stretchable vertical glue}*{}
-\capcs vfill {produce even more infinitely stretchable vertical glue
-than that produced by |\\vfil|}*{}
-\capcs vfilneg {produce infinitely negative stretchable vertical glue}*{}
-\capcs vfootnote {produce a specified footnote with a specified
- reference mark, but don't produce the reference mark in the text}{}{}
-\capcs vfuzz {space threshold for reporting overfull vboxes, by default
- 0.1\pt}*{}
-\capcs vglue {produce specified vertical glue
- that doesn't disappear at page breaks}{}{}
-\capcs voffset {vertical offset relative to one inch from the
- paper's top edge}*{}
-\capcs vphantom {produce an invisible formula with zero width but natural
- height and depth}{}{}
-\capcs vrule {produce a vertical rule; legal only in horizontal modes}*{}
-\capcs vsize {page height, by default 8.9\thinspace in}*{}
-\capcs vskip {produce specified vertical glue}*{}
-\capcs vsplit {break the contents of a specified box
- register to the specified height}*{}
-\capcs vss {produce vertical glue that is infinitely stretchable and
- infinitely shrinkable}*{}
-\capcs vtop {produce a vbox whose baseline is that of the top box enclosed}*{}
-\capcs wd {the width of the box in a specified box register}*{}
-\capcs wedge {logical ``and'' operator: $\wedge$}{}{}
-\capcs widehat {math accent, as in $\widehat {y+z+a}$}{}{}
-\capcs widetilde {math accent $\widetilde {b+c+d}$}{}{}
-\capcs widowpenalty {penalty for a single line beginning a page,
- by default~150}*{}
-\capcs wlog {|\\write| the specified token list in the log file}{}{}
-\capcs wp {Weierstra\ss\ `p' symbol: $\wp$}{}{}
-\capcs wr {wreath product operator: $\wr$}{}{}
-\capcs write {write a line to a specified output stream}*{}
-\capcs xdef {equivalent to |\\global\\edef|, i.e., globally define a
- macro, immediately expanding the replacement text}*{}
-\capcs xi {math Greek letter $\xi$}{}{}
-\capcs Xi {math Greek letter $\Xi$}{}{}
-\capcs xleaders {produce leaders with leftover space distributed equally
- between the leader boxes}*{}
-\capcs xspaceskip {if nonzero and |\\spacefactor|${}\ge2000$,
- overrides the normal interword glue}*{}
-\capcs year {the current year, as a number}*{}
-\capcs zeta {math Greek letter $\zeta$}{}{}
-
-\endcapsum
-\endchapter
-\byebye
diff --git a/Master/texmf-doc/doc/english/impatient/concepts.tex b/Master/texmf-doc/doc/english/impatient/concepts.tex
deleted file mode 100644
index ad5f4cc42d2..00000000000
--- a/Master/texmf-doc/doc/english/impatient/concepts.tex
+++ /dev/null
@@ -1,4097 +0,0 @@
-% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
-% See file fdl.tex for copying conditions.
-
-\input macros
-\chapter{Concepts}
-
-\chapterdef{concepts}
-
-This part of the book contains definitions and explanations of
-the concepts that we use in describing \TeX.
-The concepts include both
-technical terms that we use in explaining the commands and
-important topics that don't fit elsewhere in the book.
-
-The concepts are arranged alphabetically.
-The inside back cover of the book contains a complete list of
-concepts and the pages on which they are explained.
-We suggest that you make a copy of the inside back cover and keep it nearby
-so that you'll be able to identify and look up an unfamiliar
-concept immediately.
-As far as possible, we've kept our terminology consistent with that of
-\texbook.\idxref{\texbook}
-
-\beginconcepts
-
-\conceptindex{active characters}
-\concept {active character}
-
-An \defterm{active character} is a \refterm{character}
-that has a definition, e.g., a macro definition, associated with it.
-^^{macros//named by active characters}
-You can think of an active character as a special kind of control sequence.
-When \TeX\ encounters an active character, it
-executes the definition associated with the character.
-If \TeX\ encounters an active character that does not have
-an associated definition, it will complain about an
-undefined control sequence.
-
-An active character has a \refterm{category code} of $13$ (the value
-of ^|\active|).
-To define an active character, you should first
-use the ^|\catcode| command
-\ctsref{\catcode} to make it active
-and then provide the definition of the character, using
-a command such as |\def|, |\let|, or |\chardef|.
-The definition of an active character has the same form as
-the definition of a \refterm{control sequence}.
-^^{category codes//of active characters}
-If you try to define the macro for an active character
-before you make the character active, \TeX\ will complain about a
-missing control sequence.
-
-For example, the tilde character (|~|) is defined as an active character
-in \plainTeX. It
-produces a space between two words but links those words so that
-\TeX\ will not turn the space into a \refterm{line break}.
-\refterm{\PlainTeX:\plainTeX} defines `|~|' by the commands:
-
-\csdisplay
-\catcode `~ = \active \def~{\penalty10000\!visiblespace}
-|
-(The |\penalty| inhibits a line break and the `|\!visiblespace|'
-inserts a space.)
-\endconcept
-
-
-\conceptindex{alignments}
-\concept alignment
-
-\bix^^{tables}
-An \defterm{alignment} is a construct for aligning material, such as a
-table, in columns or rows. To form an alignment you need to
-(a)~describe the layout of the columns or rows and (b)~tell \TeX\ what
-material goes into the columns or rows. A tabbing alignment or a
-horizontal alignment is organized as a sequence of rows; a vertical
-alignment is organized as a sequence of columns. We first describe
-tabbing and horizontal alignments and then more briefly describe
-vertical alignments.
-
-Tabbing alignments are defined by \plainTeX. They are simpler but less
-flexible than horizontal alignments. Tabbing and horizontal alignments
-differ principally in how you describe their layouts.
-
-\bix^^|\settabs|
-\bix\ctsidxref{+}
-\bix\ctsidxref{cr}
-
-To construct a tabbing alignment you first issue a |\settabs| command
-\ctsref{\settabs} that specifies how \TeX\ should divide the available
-horizontal space into columns. Then you provide a sequence of rows for
-the table. Each row consists of a |\+| control sequence \ctsref{\@plus}
-followed by a list of ``entries'', i.e., row\slash column intersections.
-^^{entry (column or row)}
-Adjacent entries in a row are separated by an ampersand (|&|).
-\xrdef{@and}
-\ttidxref{&}
-The end of a row is indicated by ^|\cr| after its
-last entry.
-If a row has fewer entries than there are columns in the alignment,
-\TeX\ effectively fills out the row with blank entries.
-
-As long as it's preceded by a |\settabs| command, you can put a row of a
-tabbing alignment anywhere in your document. In particular, you can put
-other things between the rows of a tabbing alignment or describe several
-tabbing alignments with a single |\settabs|. Here's an example of a
-tabbing alignment:
-
-\xrdef{tabbedexample}\csdisplay
-{\hsize = 1.7 in \settabs 2 \columns
-\+cattle&herd\cr
-\+fish&school\cr
-\+lions&pride\cr}
-|
-The |\settabs 2 \columns| command in this example \ctsref{\settabs}
-tells \TeX\ to produce two equally wide columns.
-The line length is $1.7$ inches.
-The typeset alignment looks like this:
-
-{\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.}
-There's another form of tabbing alignment in which you specify the column
-widths with a template. The column widths in the template
-determine the column widths in the rest of the alignment:
-\csdisplay
-{\settabs\+cattle\quad&school\cr
-\+cattle&herd\cr
-\+fish&school\cr
-\+lions&pride\cr}
-|
-Here's the result:
-{\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|
-Horizontal alignments are constructed with |\halign| \ctsref\halign.
-\TeX\ adjusts the column widths of a horizontal alignment according to
-what is in the columns. When \TeX\ encounters the |\halign| command
-that begins a horizontal alignment, it first examines all the rows of
-the alignment to see how wide the entries are. It then sets each column
-width to accommodate the widest entry in that column.
-
-A horizontal alignment governed by |\halign| consists of a
-``\pix^{preamble}'' that indicates the row layout followed by the rows
-themselves.
-\ulist
-\li The preamble consists of a sequence of \pix^{template}s, one for each
-column. The template for a column specifies how the text for that
-column should be typeset. Each template must include a single |#|
-character
-\ttidxref{#}\xrdef{@asharp}
-to indicate where \TeX\ should substitute the text of an entry into the
-template. The templates are separated by ampersands (|&|), \ttidxref{&}
-and the end of the preamble is indicated by |\cr|. By providing an
-appropriate template you can obtain effects such as centering a column,
-left or right justifying a column, or setting a column in a particular
-\refterm{font}.
-
-\li The rows have the same form as in a tabbing alignment, except that
-you omit the |\+| at the beginning of each row.
-As before, entries are separated by |&| and the end of the row
-is indicated by |\cr|.
-\TeX\ treats each entry as a
-\refterm{group}, so any
-font-setting command or other \refterm{assignment}
-in a column template is in effect only for the entries in that column.
-\endulist
-\noindent The preamble and the rows must all be enclosed in the braces
-that follow |\halign|. Each |\halign| alignment must include
-its own preamble.
-
-For example, the horizontal alignment:
-\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 produces the result:
-
-\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 The ^|\tabskip| \ctsref{\tabskip} in this example
-tells \TeX\ to insert |2pc| of
-\refterm{glue} between the columns.
-The ^|\noalign| \ctsref{\noalign} commands tell \TeX\ to insert
-\refterm{vertical mode} material between two rows.
-In this example we've
-used |\noalign| to produce some extra space between the title rows and
-the data rows, and also to bring ``Table'' and ``Position'' closer together.
-(You can also use |\noalign| before the first row or after the
-last row.)
-\eix^^|\halign|
-
-You can construct a vertical alignment with the ^|\valign| command
-\ctsref{\valign}. A vertical alignment is organized as a series of
-columns rather than as a series of rows. A vertical alignment follows
-the same rules as a horizontal alignment except that the roles of rows
-and columns are interchanged. For example, the vertical alignment:
-
-\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 yields:
-\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}}
-}
-The ^|\strut| commands \ctsref{\strut}
-in the template are necessary to get the entries in each row
-to line up properly, i.e., to have a common \refterm{baseline},
-and to keep the distance between baselines uniform.
-\eix\ctsidxref{cr}
-\eix^^{tables}
-
-\endconcept
-
-
-\concept{\anatomy}
-
-\texbook\ describes the way that {\TeX} processes its input in terms of \TeX's
-``digestive tract''---its ``^{eyes}'', ``^{mouth}'',
-``^{gullet}'', ``^{stomach}'', and ``^{intestines}''. Knowing how this
-processing works can be helpful when you're trying to understand subtle
-aspects of \TeX's behavior as it's digesting a document.
-
-\ulist
-
-\li Using its ``\pix^{eyes}'', \TeX\ reads \refterm{characters:character} from
-^{input files} and passes them to its mouth. Since an input file
-can contain ^|\input| commands \ctsref{\input},
-\TeX\ can in effect ``shift its gaze'' from one file to another.
-
-\li Using its ``\pix^{mouth}'', {\TeX} assembles the characters into
-\refterm{tokens:token} and passes them to its gullet.
-Each token is either a \refterm{control sequence} or a single
-character. A control sequence always starts with an \refterm{escape
-character}. Note that spaces and ends-of-line are characters in their
-own right, although \TeX\ compresses a sequence of input spaces into a single
-space token. See \knuth{pages~46--47} for the rules by which \TeX\ assembles
-characters into tokens.
-^^{tokens//assembled from characters}
-
-\li Using its ``\pix^{gullet}'', {\TeX} expands any macros, conditionals, and
-^^{macros//expanded in \TeX's stomach}
-^^{tokens//passed to \TeX's stomach}
-similar constructs that it finds (see \knuth{pages~212--216}) and passes
-the resulting sequence of \refterm{tokens:token}
-to \TeX's stomach. Expanding one token
-may yield other tokens that in turn need to be expanded. {\TeX} carries
-out this expansion from left to right unless the order is modified by
-a command such as |\expandafter| \ctsref{\expandafter}.
-In other words, \TeX's gullet always expands the leftmost un\-ex\-panded
-token that it has not yet sent to \TeX's stomach.
-
-\li Using its ``\pix^{stomach}'', {\TeX} processes the tokens in
-groups.
-Each group contains a primitive command followed by its arguments, if any.
-Most of the commands are of the ``typeset this character'' variety,
-so their groups consist of just one token.
-Obeying the instructions given by the commands,
-\TeX's stomach assembles larger and larger
-units, starting with
-characters and ending with pages,
-and passes the pages to \TeX's intestines.
-^^{pages//assembled in \TeX's stomach}
-\TeX's stomach handles the tasks of \refterm{line break}ing---%
-^^{line breaking}
-i.e., breaking each paragraph into a sequence of lines---%
-and of \refterm{page break}ing---i.e., breaking a continuous sequence of lines
-and other vertical mode material
-into pages.
-
-\li Using its ``\pix^{intestines}'', \TeX\ transforms the pages produced by its
-stomach into a form intended for processing
-by other programs. It then sends the transformed output to the
-\dvifile.
-^^{\dvifile//created by \TeX's intestines}
-
-\endulist
-
-Most of the time you can think of the processes that take place in \TeX's
-eyes, mouth, gullet, stomach, and intestines
-as happening one after the other. But the
-truth of the matter is that commands executed in \TeX's stomach can
-influence the earlier stages of digestion. For instance, when \TeX's stomach
-encounters the |\input| command \ctsref{\input},
-its eyes start reading from a different
-file; when \TeX's stomach encounters a |\catcode| command
- \ctsref{\catcode} specifying a category code
-for a character $c$, the interpretation of $c$ by \TeX's mouth is affected.
-And when
-\TeX's stomach encounters a \refterm{macro} definition, the expansions carried
-out in \TeX's gullet are affected.
-
-You can understand how the processes interact by imagining that each
-process eagerly gobbles up the output of its predecessor as soon as it
-becomes available. For instance, once \TeX's stomach has seen
-the last character of the filename in an |\input| command, \TeX's gaze
-immediately shifts to the first character of the specified input file.
-\endconcept
-
-\pagebreak
-\conceptindex{arguments}
-\concept argument
-
-^^{commands//arguments of}
-An \defterm{argument} contains text that is passed to a
-\refterm{command}.
-The arguments of a command complete the description of what
-the command is supposed to do.
-The command can either be a \refterm{primitive} command or a
-\refterm{macro}.
-
-Each primitive command ^^{primitive//command}
-has its own convention about the form of its
-arguments. For instance, the sequence of \refterm{tokens:token}:
-
-\csdisplay
-\hskip 3pc plus 1em
-|
-consists of the command `|\hskip|' and the arguments
-`|3pc plus 1em|'. But if you were to write:
-
-\csdisplay
-\count11 3pc plus 1em
-|
-you'd get an entirely different effect.
-\TeX\ would treat `|\count11|' as a command with argument `|3|',
-followed by the ordinary text tokens `|pc plus 1em|'
-(because count registers expect a number to be assigned to them)%
----probably not what
-you intended. The effect of the command, by the way, would be to
-assign $3$ to count register $11$ (see the discussion of ^|\count|,
-\xref\count).
-
-Macros, on the other hand, all follow the same convention
-for their arguments.
-^^{macros//arguments of}
-Each argument passed to a macro
-corresponds to a \refterm{parameter}
-^^{parameters//and arguments}
-in the definition of that
-macro. ^^{macros//parameters of}
-A macro parameter is either ``delimited'' or ``undelimited''.
-The macro definition determines the number and nature of the macro parameters
-and therefore the number and nature of the macro arguments.
-
-The difference between a delimited argument and an undelimited argument
-lies in the way that \TeX\ decides where the argument ends.
-^^{delimited arguments}
-^^{undelimited arguments}
-\ulist
-\li A delimited argument consists of the tokens
-from the start of the argument up to, but not including, the
-particular sequence of tokens that serves as the delimiter for that argument.
-The delimiter is specified in the macro definition. Thus you
-supply a delimited argument to a macro by writing the argument itself
-followed by the delimiter. A delimited argument can be empty, i.e., have
-no text at all in it. Any braces in a delimited argument must be paired
-properly, i.e., every left brace must have a corresponding right brace
-and vice versa.
-
-\li An undelimited argument consists of a single token or a sequence of
-tokens enclosed in braces, like this:
-`|{Here is {the} text.}|'. Despite appearances, the outer braces don't
-form a \refterm{group}---\TeX\ uses them only to determine what the
-argument is. Any inner braces, such as the ones around `|the|', must be
-paired properly. If you make a mistake and put in too many right
-braces, \TeX\ will complain about an unexpected right brace. \TeX\ will
-also complain if you put in too many left braces, but you'll probably
-get \emph{that} complaint long after the place where you intended to
-end the argument (see \xref{mismatched}).
-\endulist
-\noindent
-See \conceptcit{macro} for more information
-about parameters and arguments. You'll find the precise rules pertaining
-to delimited and undelimited arguments in \knuth{pages~203--204}.
-\endconcept
-
-
-\concept{ASCII}
-
-\defterm{\ascii} is the abbreviation of ``American Standard Code for
-Information Interchange''. There are $256$ \ascii\
-^{characters}, each with its own code number, but
-the meanings of only the first~$128$ have been standardized. You can
-find these meanings in an \ascii\ ``code table'' such as the one on
-\knuth{page~367}. Characters $32$--$126$ are ``printable characters'',
-^^{printable characters} such as letters, numbers, and punctuation
-marks. The remaining characters are ``^{control characters}'' that are
-typically used (in the computer industry, not in \TeX) to control
-input\slash output and data communications devices. For instance,
-\ascii\ code $84$ corresponds to the letter `T', while \ascii\
-code~$12$ corresponds to the ``form feed'' function (interpreted by most
-printers as ``start a new page''). Although the \ascii\ standard
-specifies meanings for the control characters, many manufacturers of
-equipment such as modems and printers have used the control characters
-for purposes other than the standard ones.
-
-The meaning of a
-character in \TeX\ is usually consistent with its meaning in standard \ascii,
-and \refterm{fonts:font} that contain \ascii\
-printable characters usually have those characters in the same positions as
-their \ascii\ counterparts.
-But some fonts, notably those used for math, replace the \ascii\
-printable characters by other characters unrelated to the \ascii\ characters.
-For instance, the Computer Modern math font
-^^{Computer Modern fonts}
-|cmsy10| has the math symbol
-`{$\forall$}' in place of the \ascii\ digit `8'.
-
-
-\endconcept
-
-\conceptindex{assignments}
-\concept assignment
-
-An \defterm{assignment} is a construct that tells \TeX\ to assign a
-value to a register,
-^^{registers//assignment to}
-to one of its internal
-\refterm{parameters:parameter},
-^^{parameters//assignments to}
-to an entry in one of its internal tables,
-or to a \refterm{control sequence}. Some examples of assignments are:
-
-\csdisplay
-\tolerance = 2000
-\advance\count12 by 17
-\lineskip = 4pt plus 2pt
-\everycr = {\hskip 3pt \relax}
-\catcode\`@ = 11
-\let\graf = \par
-\font\myfont = cmbx12
-|
-
-The first assignment indicates that \TeX\ should assign the numeric value
-|2000| to the numeric parameter |\tolerance|, i.e., make the value of
-|\tolerance| be $2000$. The other assignments are similar. The `|=|'
-and the spaces are optional, so you could also write the first
-assignment more tersely as:
-
-\csdisplay
-\tolerance2000
-|
-
-See \knuth{pages~276--277} for the detailed syntax of assignments.
-\endconcept
-
-
-\concept badness
-
-The \defterm{badness} of a line is a measure of how far the interword
-spaces ^^{interword spacing}
-in the line deviate from their natural values,
-i.e., the values specified in the \refterm{fonts:font} used in the line.
-The greater the
-deviation, the greater the badness. Similarly, the badness of a page is
-a measure of how far the spaces between the boxes that
-make up the page deviate from their ideal values. (Ordinarily, most of these
-boxes are single lines of paragraphs.)
-
-More precisely, the badness
-is a measure of how much the \refterm{glue} associated with these spaces needs
-to stretch or shrink to fill the line or page exactly.
-\TeX\ computes the badness as approximately $100$
-times the cube of the ratio by which it must stretch or shrink the glue
-in order to compose a line or a page of the required size.
-^^{line breaks//badness for}^^{page breaks//badness for}
-For example, stretching the glue by twice its stated stretch yields a ratio of
-$2$ and a badness of $800$; stretching it by half its stated stretch yields
-a ratio of $.5$ and a badness of $13$.
-\TeX\ treats a badness greater than $10000$ as
-equal to $10000$.
-
-\TeX\ uses the badness of a line when it's breaking a paragraph into lines
-\seeconcept{line break}. It uses this information in two stages:
-
-\olist
-\li When \TeX\ is choosing line breaks,
-it will eventually accept lines whose badness is less than or equal to
-the value of |\tolerance| (\xref \tolerance). If \TeX\ cannot avoid setting
-a line whose badness exceeds this
-value, it will set it as an underfull or overfull \refterm{hbox}.
-\TeX\ will set
-an overfull or underfull hbox only as a last resort, i.e., only if there's no
-other way to break the paragraph into lines.
-\li Assuming that all lines are tolerably bad, \TeX\ uses the badness of lines
-in order to evaluate the different ways of breaking the paragraph into lines.
-During this evaluation it associates ``demerits'' with each potential line.
-The badness increases the number of \refterm{demerits}.
-\TeX\ then
-breaks the paragraph into lines in a way that minimizes the
-total demerits for the paragraph.
-Most
-often \TeX\ arranges the paragraph in a way that minimizes the badness of the
-worst line. See \knuth{pages~97--98} for the details of how \TeX\
-breaks a paragraph into lines.
-\endolist
-
-\TeX's procedure for assembling a sequence of lines and other vertical
-mode material into pages is similar to its procedure for line breaking.
-However, assembling pages is
-not as complicated because \TeX\ only considers one page at a time
-when it looks for page breaks.
-Thus the only decision it must make is where to end the current page.
-In contrast, when \TeX\ is choosing line breaks it
-considers several of them simultaneously.
-(Most word processors choose line breaks one at a time,
-and thus don't do as good a job at it as \TeX\ does.)
-See \knuth{pages~111--113} for the details of how \TeX\ chooses its
-page breaks.
-\endconcept
-
-
-\conceptindex{baselines}
-\concept baseline
-
-The \defterm{baseline} of a \refterm{box} is an imaginary line that runs
-across the box.
-^^{boxes//baselines of}
-When \TeX\ is
-assembling the boxes of a \refterm{horizontal list} into a larger box,
-it lines up the boxes in the list so that their baselines coincide.
-As an analogy, think of writing on a pad of ruled paper. Each letter
-that you write has
-an implicit baseline.
-In order to line up the letters horizontally,
-you place them on the pad so that their baselines
-agree with the light guidelines that are printed on the pad.
-
-A box can and often does extend below its baseline.
-For instance, the letter `g' extends below the baseline of its box because
-it has a descender (the bottom loop of the `g').
-\endconcept
-
-
-\conceptindex{boxes}
-\concept box
-
-A \defterm{box} is a rectangle of material to be typeset. A single
-\refterm{character} is a box by itself,
-and an entire page is also a box.
-\TeX\ forms a page as a nest of boxes within boxes within boxes. The
-outermost box is the page itself, the innermost boxes are mostly
-single characters, and single lines are boxes that are
-somewhere in the middle.
-
-\TeX\ carries out most of its box-building activities implicitly as it
-constructs paragraphs and pages.
-You can construct boxes explicitly
-using a number of \TeX\ \refterm{commands}, notably
-^|\hbox| \ctsref{\hbox},
-^|\vbox| \ctsref{\vbox}, and
-^|\vtop| \ctsref{\vtop}.
-The ^|\hbox| command
-constructs a box by appending smaller boxes horizontally from left to right;
-it operates on a \refterm{horizontal list} and yields
-an \refterm{hbox} ^^{hboxes} (horizontal box).
-^^{horizontal lists}
-The ^|\vbox| and |\vtop| commands
-construct a box by appending smaller boxes vertically from top to bottom;
-^^{vboxes}
-they operate on a \refterm{vertical list}
-and yield a \refterm{vbox} ^^{vboxes} (vertical box).
-^^{vertical lists}
-These horizontal and vertical lists can include not just smaller boxes but
-several other kinds of entities as well, e.g., \refterm{glue} and
-kerns.
-^^{kerns//as list items}
-
-A box has \refterm{height}, \refterm{depth}, and \refterm{width},
-^^{height} ^^{depth} ^^{width}
-like this:
-\vdisplay{\offinterlineskip\sevenrm
- \halign{#&#&\kern3pt \hfil#\hfil\cr
- &\hrulefill\cr
- &\vrule
- \vtop to .7in{\vss \hbox to .9in{\hss baseline\hss}\vskip4pt}%
- \vrule
- &\labelledheight{.7in}{height}\cr
- %
- \vbox to 0pt{
- \vss
- \hbox{reference point \hbox to 15pt{\rightarrowfill}%
- \hskip3pt}%
- \kern-4.5pt}&{\box\refpoint}\hrulefill\cr
- %
- \omit
- &\vrule\hfil\vrule
- &\labelledheight{.4in}{depth}\cr
- %
- &\hrulefill\cr
- %
- \noalign{\vskip3pt}%
- &\leftarrowfill { width }\rightarrowfill\cr
-}}
-
-^^{baselines}
-The \refterm{baseline} is like one of
-the light guidelines on a pad of ruled paper.
-The boxes for letters such as `g'
-extend below the baseline; the boxes for letters such as `h' don't.
-The height of a box is the distance that the box extends above its
-baseline, while its depth is the distance that it extends below its
-baseline. \bix^^{reference point}
-The \minref{reference point}
-of a box is the place where its baseline intersects its left edge.
-
-{\tighten
-\TeX\ builds an hbox $H$ from a horizontal list by assuming
-a reference point for $H$ and then appending the items in the list to $H$
-one by one from left to right.
-Each box in the list is placed so that its baseline coincides with the
-baseline of $H$\kern-2pt,
-i.e., the component boxes are lined up horizontally.%
-\footnote{If a box is moved up or down with ^|\raise| or
-^|\lower|, \TeX\ uses its reference point before the move when
-placing it.}
-The height of $H$ is the
-height of the tallest box in the list, and the depth of $H$ is the depth
-of the deepest box in the list.
-The width of $H$ is the sum of the
-widths of all the items in the list.
-If any of these items are \refterm{glue} and \TeX\ needs to stretch or shrink
-the glue,
-the width of $H$ will be larger or smaller accordingly.
-See \knuth{page~77} for the~details.
-\par}
-
-Similarly, \TeX\ builds a vbox $V$ from a vertical list by assuming a
-temporary reference point for $V$ and then appending the items in the
-list to $V$ one by one from top to bottom. Each box in the list is
-placed so that its reference point is lined up vertically with the
-reference point of \Vperiod.\footnote{If a box is moved left or right with
-^|\moveleft| or ^|\moveright|, \TeX\ uses its reference point before the
-move when placing it.} As each box other than the first one is added to
-\Vcomma, \TeX\ puts \minref{interline glue} just above it. (This
-^{interline glue} has no analogue for hboxes.) The width of $V$ is the
-width of the widest box in the list, and the vertical extent (height
-plus depth) of $V$ is the sum of the vertical extents of all the
-items in the list.
-
-\bix^^|\vbox|
-\bix^^|\vtop|
-The difference between |\vbox| and |\vtop| is in how they partition
-the vertical extent of $V$ into a height and a depth.
-Choosing the reference point of $V$ determines that partition.
-\ulist
-\li For |\vbox|, \TeX\ places the reference point on a horizontal line
-with the reference point of the last component box
-or rule of \Vcomma, except
-that if the last box (or rule) is followed by glue or a kern, \TeX\ places the
-reference point at the very bottom of \Vperiod.%
-\footnote{The depth is limited by
-the parameter ^|\boxmaxdepth| \ctsref{\boxmaxdepth}.}
-
-\li For |\vtop|, \TeX\ places the reference point on a horizontal line
-with the reference point of the first component box or rule of \Vcomma,
-except that if the first box (or rule)
-is preceded by glue or a kern, \TeX\ places
-the reference point at the very top of \Vperiod.
-
-\endulist
-\noindent
-Roughly speaking, then, |\vbox| puts the reference point near the bottom
-of the vbox and |\vtop| puts it near the top.
-When you want to align a
-row of vboxes so that their tops line up horizontally,
-you should usually use |\vtop| rather than |\vbox|.
-See \knuth{pages~78 and 80--81} for the
-details of how \TeX\ builds vboxes.
-\eix^^|\vbox|
-\eix^^|\vtop|
-\eix^^{reference point}
-
-You have quite a lot of freedom in constructing boxes. The typeset
-material in a box can extend beyond the boundaries of the box as it does
-for some letters (mostly italic or slanted ones). The component boxes
-of a larger box can overlap. A box can have negative width, depth, or
-height, though boxes like that are not often needed.
-
-You can save a box in a box \refterm{register} and retrieve it later.
-Before using a box register,
-^^{box registers}
-you should reserve it and give it a name
-with the ^|\newbox| command \ctsref{\@newbox}. See
-\conceptcit{register} for more information about box
-registers.
-\endconcept
-
-
-\conceptindex{category codes}
-\concept {category code}
-
-The \defterm{category code} of a \refterm{character} determines that
-character's role in \TeX.
-^^{characters//category code of}
-For instance, \TeX\ assigns a certain role to
-letters, another to space characters, and so forth. \TeX\ attaches a
-code to each character that it reads. When \TeX\ reads the
-letter `|r|', for example, it ordinarily
-attaches the category code $11$ (letter)
-to it. For simple \TeX\ applications you won't need to worry about
-category codes, but they become important when you are trying to achieve
-special effects.
-
-Category codes apply only to characters that \TeX\ reads from input
-files. Once a character has gotten past \TeX's ^{gullet}
-\seeconcept{\anatomy} and been interpreted, its category code no
-longer matters. A character that you produce with the ^|\char| command
-\ctsref{\char} does not have a category code because |\char|
-is an instruction to \TeX\ to produce a certain character in a certain
-\refterm{font}. For instance, the ^{\ascii} code for `|\|'
-(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$
-of the code table for the current font.
-
-You can use the ^|\catcode| command \ctsref{\catcode} to reassign the
-category code of any character. By changing category codes you can
-change the roles of various characters. For instance, if you type
-`|\catcode`\@ = 11|', the category code of the at sign (|@|) will be set
-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
-the |^^| notation),
-together with the characters in each category:
-
-\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 Meaning\cr
-\noalign{\vskip\tinyskipamount}
-0&Escape character \quad |\| ^^{escape character//category code of}
- {\recat!ttidxref[\//category code of]]
- \cr
-1&Beginning of group \quad |{| ^^{groups}
- {\recat!ttidxref[{//category code of]]
- \cr
-2&End of group \quad |}|
- {\recat!ttidxref[}//category code of]]
- \cr
-3&Math shift \quad |$| ^^{math shift}
- {\recat!ttidxref[$//category code of]]
- \cr
-4&Alignment tab \quad |&| ^^{tabs} ^^{alignments//tab character for}
- \ttidxref{&//category code of} \cr
-5&End of line \quad |^^M| \tequiv \ascii\ \asciichar{return}
- ^^{end of line} \ttidxref{^^M//category code of}\cr
-6&Macro parameter \quad |#|
- ^^{macros//parameters of}
- ^^{parameters//indicated by \b\tt\#\e}
- \ttidxref{#//category code of} \cr
-7&Superscript \quad |^| and |^^K| ^^{superscripts}
- \ttidxref{^^K}
- \ttidxref{^//category code of} \cr
-8&Subscript \quad |_| and |^^A| ^^{subscripts}
- \ttidxref{^^A}
- \ttidxref{_//category code of} \cr
-9&Ignored character \quad |^^@| \tequiv \ascii\ \asciichar{null}
- ^^{ignored characters} \indexchar ^^@ \cr
-10&Space \quad \visiblespace\ and |^^I| \tequiv \ascii\
- \asciichar{horizontal\ tab}
- ^^{horizontal tab}
- ^^{space characters//category code of} \indexchar ^^I
- {\recat!ttidxref[ ]]
- \cr
-11&Letter \quad |A| \dots |Z| and |a| \dots |z| ^^{letter}\cr
-12&Other character \quad (everything not listed above or below)
- ^^{other characters}\cr
-13&Active character \quad |~| and |^^L| \tequiv\ascii\ \asciichar{form\ feed}
- ^^{active characters} ^^{form feed} \indexchar ~ \indexchar ^^L \cr
-14&Comment character \quad |%| ^^{comments}
- {\recat!ttidxref[%//category code of]]
- \cr
-15&Invalid character \quad |^^?| \tequiv \ascii\ \asciichar{delete}
- ^^{invalid character} \indexchar ^^? \cr
-}}
-\vskip\belowdisplayskip
-%k \vskip 0pt plus 2pt % to fix bad page break
-
-\noindent Except for categories $11$--$13$,
-all the characters in a particular category produce the same effect.
-\margin{Misleading material removed.}
-For instance, suppose
-that you type:
-\csdisplay
-\catcode`\[ = 1 \catcode`\] = 2
-|
-Then the left and right bracket characters become
-beginning-of-group and end-of-group characters equivalent to
-the left and right brace characters. With these definitions `|[a b]|'
-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''.
-The only distinction between letters and ``other'' characters is
-that letters can appear in \refterm{control word}s but
-``other'' characters~can't.
-
-A character in category $13$ (active) acts like a control sequence
-all by itself. \TeX\ complains if it encounters an active character that
-doesn't have a definition associated with it.
-^^{active characters}
-
-If \TeX\ encounters an ^{invalid character} (category $15$)
-in your input, it will complain about it.
-
-The `|^^K|' and `|^^A|' characters have been included in categories
-$8$ (subscript) and $9$ (superscript), even though these meanings
-don't follow the standard \refterm{\ascii} interpretation.
-That's because some keyboards, notably some at Stanford
-University where \TeX\ originated,
-have down arrow and up arrow keys that generate these characters.
-\ttidxref{^^A}
-\ttidxref{^^K}
-
-There's a subtle point about the way \TeX\ assigns category codes that
-can trip you up if you're not aware of it. \TeX\ sometimes needs to
-look at a character twice as it does its initial scan: first to find the
-end of some preceding construct, e.g., a control sequence, and later to
-turn that character into a token. \TeX\ doesn't assign the category
-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$'.
-|
-\noindent
-This bit of \TeX\ code produces `\$' in the typeset output. When
-\TeX\ first sees the `|$|' on the second line,
-it's looking for the end of a control sequence name. Since
-the `|$|' isn't yet a letter, it marks the end of `|\foo|'. Next,
-\TeX\ expands the `|\foo|' macro and changes the category code of `|$|'
-to $11$ (letter). Then \TeX\ reads the `|$|' ``for real''. Since
-`|$|' is now a letter, \TeX\ produces a box
-containing the `|$|' character in the current font.
-When \TeX\ sees the third line, it treats `|$|' as a letter and thus
-considers it to be part of the control sequence name.
-As a result it complains about an undefined control sequence |\foo$|.
-
-\TeX\ behaves this way even when the terminating character is an
-end of line. For example, suppose that the macro |\fum| activates the
-end-of-line character. Then if |\fum| appears on a line $\ell$ by
-itself, \TeX\ will first interpret the end of line of $\ell$ as
-the end of the |\fum| control sequence and then will \emph{reinterpret}
-the end of line of $\ell$ as an active character.
-\endconcept
-
-
-\conceptindex{characters}
-\concept character
-
-{\tighten
-\TeX\ works with \defterm{characters} in two contexts:
-as input characters, which it reads, and as output characters,
-which it typesets.
-\TeX\ transforms most input characters
-into the output characters that depict them.
-For example, it normally
-transforms the input letter `|h|' into the letter `h' typeset in the current
-font.
-That is not the case, however, for an input character such as `|$|' that has a
-special meaning.
-\par}
-
-\TeX\ gets its input characters by reading them from input files (or from your
-terminal) and by expanding \refterm{macros:macro}. These are the
-\emph{only} ways that \TeX\ can acquire an input character.
-Each input character has a code number corresponding to its position in the
-\refterm{\ascii} code table. ^^{\ascii}
-For instance, the letter `|T|' has \ascii\ code~$84$.
-
-When \TeX\ reads
-a character, it attaches a \refterm{category code}
-^^{category codes//attached during input}
-to it. The category code affects how \TeX\ interprets the
-character once it has been read in. \TeX\ determines
-(and remembers) the category codes of the characters in a macro when it
-reads the macro's definition. As \TeX\ reads characters with its eyes
-\seeconcept{\anatomy} it does some ``filtering'',
-such as condensing
-sequences of spaces to a single space. See \knuth{pages~46--48} for the
-details of this filtering.
-
-The \ascii\
-``^{control characters}'' have codes $0$--$31$ and $127$--$255$.
-They either don't
-show up or cause strange behavior on most terminals if you try to
-display them. Nonetheless they are sometimes needed in \TeX\ input,
-so \TeX\ has a special notation for them.
-\xrdef{twocarets}
-If you type `|^^|$c$', where $c$ is any character, you get the character
-whose \ascii\ code is either $64$ greater or $64$ less than $c$'s
-\ascii\ code. The largest acceptable code value using this notation
-is $127$, so the notation is unambiguous.
-Three particularly common instances of this
-notation are `|^^M|' (the \ascii\ \asciichar{return} character),
-`|^^J|' (the \ascii\ \asciichar{line\ feed} character) and `|^^I|'
-(the \ascii\ \asciichar{horizontal\ tab} character).
-\ttidxref{^^M}\ttidxref{^^J}\ttidxref{^^I}
-
-{\tighten
-\TeX\ also has another notation for indicating \ascii\ code values
-that works for all character codes from $0$ to $255$.
-\xrdef{hexchars}
-If you type `|^^|$xy$', where $x$
-and $y$ are any of the ^{hexadecimal digit}s `|0123456789abcdef|',
-you get the single character with the specified code.
-(Lowercase letters are required here.)
-\TeX\ opts for the ``hexadecimal digits''
-interpretation whenever it has a choice, so you must not follow a character
-like `|^^a|' with a lowercase hexadecimal digit---if you do, you'll get the
-wrong interpretation.
-If you need to use this
-notation you'll find it handy to have a table of \ascii\ codes.
-\par}
-
-An output character is a character to be typeset.
-A command for producing an output character has the meaning
-``Produce a \refterm{box} containing
-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
-on the page.
-
-An input character whose category code is $11$ (^{letter}) or $12$ (other)
-^^{other characters}
-acts as a command to produce the corresponding output character. In
-addition you can get \TeX\ to produce character $n$ by issuing the
-command `|\char |$n$' \ctsref{\char}, ^^|\char| where $n$ is a
-\refterm{number} between $0$ and $255$. The commands `|h|',
-|\char`h|, and |\char104| all have the same effect. ($104$ is the
-\ascii\ code for `h'.)
-
-\endconcept
-
-
-\concept class
-
-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
-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
-and then with the class of each character randomly changed:
-$$\strut a+(b-a)=a \qquad
- \mathopen{a}\mathord{+}\mathrel{(}\mathclose{b}\mathclose{-}
- \mathop{a}\mathopen{)}\mathord{=}\mathopen{a}$$
-
-See \xrefpg\mathord\ of this book for a list of the classes and
-\knuth{page~154} for their meanings.
-
-\endconcept
-
-
-\conceptindex{commands}
-\concept command
-
-A \defterm{command} instructs \TeX\ to carry out a certain action.
-Every \refterm{token} that reaches \TeX's stomach \seeconcept{\anatomy}
-acts as a command, except for those that are parts of arguments to
-other commands (see below).
-^^{tokens//as commands}
-A command can be invoked by a
-\refterm{control sequence}, by an \refterm{active character}, or by an
-ordinary character. It might seem odd that \TeX\ treats an ordinary
-character as a command, but in fact that's what it does:
-when \TeX\ sees
-an ordinary character
-it constructs a \refterm{box} containing that character typeset in
-the current font.
-
-A command can have arguments.
-The arguments of a command are single tokens or
-groups of tokens that complete the description of what
-the command is supposed to do.
-For example, the command `|\vskip 1in|' tells \TeX\ to skip
-$1$ inch vertically. It has an argument `|1in|',
-which consists of three tokens.
-The description of what |\vskip| is supposed to do would be incomplete
-without specifying how far it is supposed to skip.
-The tokens in the arguments to a command are not themselves considered
-to be commands.
-
-Some examples of different kinds of \TeX\ commands are:
-\ulist\compact
-\li Ordinary characters, such as `|W|', which instructs \TeX\
-to produce a box containing a typeset `W'
-\li Font-setting commands,
-such as |\bf|, which begins boldface type
-\li Accents, such as |\`|, which produces a grave accent as in `\`e'
-\li Special symbols and ligatures, such as |\P| (\P) and |\ae| (\ae)
-\li Parameters, such as |\parskip|, the amount of glue that
-\TeX\ puts between paragraphs
-\li Math symbols, such as |\alpha| ($\alpha$) and |\in| ($\in$)
-\li Math operators, such as |\over|, which produces a fraction
-\endulist
-\endconcept
-
-
-\conceptindex{conditional tests}
-\concept {conditional test}
-
-A \defterm{conditional test} is a command that tests whether or not a certain
-condition is true and
-causes \TeX\ either to expand or to skip some text, depending on
-the outcome.
-The general form of a conditional test is either:
-\display{
-{\tt \\if}$\alpha$\<true text>{\tt \\else}\<false text>{\tt \\fi}}
-^^|\else|^^|\fi|
-\noindent or:\hfil\
-\display{
-{\tt \\if}$\alpha$\<true text>{\tt \\fi}}
-\noindent where $\alpha$ specifies the particular test.
-For example, |\ifvmode| tests the condition that \TeX\
-is currently in a \refterm{vertical mode}.
-If the condition is true, \TeX\ expands \<true text>.
-If the condition is false, \TeX\ expands \<false text> (if it's present).
-Conditional tests are interpreted in \TeX's gullet
-\seeconcept{\anatomy}, so any expandable \minref{token}s in
-the interpreted text are expanded after the test has been resolved.
-The
-various conditional tests are explained in \headcit{Conditional tests}%
-{conds}.
-
-\endconcept
-
-
-\conceptindex{control sequences}
-\concept{control sequence}
-
-A \defterm{control sequence} is a name for a \TeX\ \refterm{command}.
-A control sequence always starts with an ^{escape character}, usually
-a backslash (|\|).
-\indexchar \
-A control sequence takes one of two forms:
-
-\ulist
-
-\li A \refterm{control word} is a control sequence consisting of an
-\refterm{escape character} followed by one or more letters.
-^^{control words}
-The control
-word ends when \TeX\ sees a nonletter. For instance, when \TeX\ reads
-`\hbox{|\hfill!visiblespace,!visiblespace!.the|}', it sees six
-\refterm{tokens:token}:
-the control sequence `|\hfill|', comma, space, `|t|', `|h|', `|e|'. The
-space after `|\hfill|' ends the control sequence and
-is absorbed by \TeX\ when it scans the control sequence.
-(For the text `|\hfill,!visiblespace!.the|', on the other hand,
-the comma both ends the control sequence and counts as a character in its
-own right.)
-
-\li A \refterm{control symbol}
-^^{control symbols}
-is a control sequence consisting of an
-^{escape character} followed by any character other than a letter---%
-even a space or an end of line.
-A control symbol is self-delimited, i.e., \TeX\ knows where it ends without
-having to look at what character comes after it.
-The character after a control symbol is never absorbed by
-the control symbol.
-\endulist
-\noindent See \xrefpg{spaces} for more information about spaces after control
-sequences.
-
-\TeX\ provides a great many predefined control sequences. The
-\refterm{primitive} control sequences are built into the \TeX\ computer
-program and thus are available in all forms of \TeX.
-^^{primitive//control sequence}
-Other
-predefined control sequences are provided by \refterm{\plainTeX}, the
-form of \TeX\ described in this book.
-
-You can augment the predefined control sequences with ones of your own,
-using commands such as ^|\def| and ^|\let| to define them.
-\chapterref{eplain} of this book contains a
-collection of control sequence definitions that you may find
-useful. In addition, your computing facility may
-be able to provide a collection of
-locally developed \TeX\ macros.
-\endconcept
-
-
-\conceptindex{control symbols}
-\concept{control symbol}
-
-A \defterm{control symbol} is a \refterm{control sequence} that consists
-of an \refterm{escape character} followed by any character other than a
-letter---even a space or end of line.
-^^{escape character}
-\endconcept
-
-
-\conceptindex{control words}
-\concept{control word}
-
-A \defterm{control word} is a \refterm{control sequence} that consists
-of an \refterm{escape character} followed by one or more
-letters.\footnote{A ``letter'' here has the strict meaning of a
-character with category code $11$.}
-\TeX\
-ignores any spaces or ends-of-line that follow a control word, except to
-note that they end the control word.
-^^{escape character}
-\endconcept
-
-
-
-\concept {decimal constant}
-
-See \conceptcit{number}.
-\endconcept
-
-\conceptindex{delimiters}
-\concept delimiter
-
-A \defterm{delimiter} is a character
-that is intended to be used as
-a visible boundary of a math formula.
-The essential property of a delimiter is that \TeX\ can adjust
-its size according
-to the vertical size (\refterm{height} plus \refterm{depth})
-of the subformula.
-However, \TeX\ performs the adjustment only if the delimiter
-appears in a ``delimiter context'', namely, as an argument to
-one of the commands ^|\left|,
-^|\right|,
-|\over!-with!-delims|,
-|\atop!-with!-delims|,
-or |\above!-with!-delims|
-^^|\overwithdelims|
-^^|\atopwithdelims|
-^^|abovewithdelims|
-\margin{Footnote deleted}
-(see \pp\xrefn{\overwithdelims},~\xrefn{\left}).
-The delimiter contexts also include any \refterm{argument}
-to a \refterm{macro} that uses the argument in a delimiter context.
-
-For example, the left and right
-parentheses are delimiters.
-If you use ^{parentheses} in a delimiter context
-around a formula, \TeX\ makes the parentheses big
-enough to enclose the \refterm{box} that contains the formula (as long as the
-\refterm{fonts:font} you're using have big enough parentheses).
-For example:
-\csdisplay
-$$ \left( a \over b \right) $$
-|
-yields:
-\centereddisplays $$\left (a \over b \right ) $$
-Here \TeX\ has made the parentheses big enough to accommodate the fraction.
-But if you write, instead:
-\csdisplay
-$$({a \over b})$$
-|
-you'll get:
-$$({a \over b})$$
-Since the parentheses aren't in a delimiter context,
-they are \emph{not} enlarged.
-
-Delimiters come in pairs:
-an opening delimiter at the left of the subformula
-and a closing delimiter at its right.
-You can explicitly choose a larger height for a
-delimiter with the commands ^|\bigl|, ^|\bigr|, and their
-relatives \ctsref{\bigl}.\footnote
-{\PlainTeX\ defines the various |\big| commands by using |\left| and |\right|
-to provide a delimiter context. It sets the size by
-constructing an empty formula with the desired height.}
-For instance, in order to get the
-displayed formula:
-$$\bigl(f(x) - x \bigr) \bigl(f(y) - y \bigr)$$
-
-\noindent in which the outer parentheses are a little bigger than the inner
-ones, you should write:
-
-\csdisplay
-$$\bigl( f(x) - x \bigr) \bigl( f(y) - y \bigr)$$
-|
-
-The $22$ \plainTeX\ delimiters, shown at their normal size, are:
-\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
-Here they are at the largest size provided explicitly by \plainTeX\
- (the |\Biggl|, |\Biggr|, etc., versions):
-\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
-The delimiters (except for `|(|', `|)|', and
-`|/|')
-are among the symbols listed on
-pages~\xrefn{\lbrace}--\xrefn{\Uparrow}.
-They are listed in one place on \knuth{page~146}.
-
-A delimiter can belong to any class.
-^^{class//of a delimiter}
-For a delimiter that you enlarge with
-|\bigl|, |\bigr|, etc., the class is determined by the command:
-``opener'' for |l|-commands, ``closer'' for |r|-commands,
-``relation'' for |m|-commands, and ``ordinary symbol'' for |g|-commands,
-e.g., |\Big|.
-
-You can obtain a delimiter in two different ways:
-\olist
-\li You can make a character be a delimiter by assigning it a
-nonnegative delimiter code
-\bix^^{delimiter codes}
-(see below) with the ^|\delcode| command (\xref\delcode).
-Thereafter the character acts as a delimiter whenever you use it in a
-delimiter context.\footnote{%
-It's possible to use a character with a nonnegative delimiter code in
-a context where it isn't a delimiter. In this case \TeX\ doesn't perform the
-search; instead it just uses the character in the ordinary way
-(see \knuth{page~156}).}
-\li You can produce a delimiter explicitly with the ^|\delimiter| command
-(\xref\delimiter), in analogy to the way that you can produce an ordinary
-character with the |\char| command or a math character with the |\mathchar|
-command.
-The |\delimiter| command uses the same delimiter codes that are used in a
-|\delcode| table entry, but with an extra digit in front to indicate a
-class.
-It's rare to use |\delimiter| outside of a macro definition.
-\endolist
-
-A delimiter code tells
-\TeX\ how to search for an appropriate output character to represent
-a delimiter.
-The rules for this search are rather complicated
-(see \knuth{pages~156 and 442}).
-A complete understanding of these rules requires knowing
-about the organization of font ^{metrics file}s, a topic that is not just beyond
-the scope of this book but beyond the scope of \texbook\ as well.
-
-In essence the search works like this. The delimiter code specifies a
-``small'' output character and a ``large'' output character by
-providing a \refterm{font} position and a font \refterm{family} for each
-(see \xref\delcode).
-Using this information, \TeX\ can find (or construct)
-larger and larger versions of the delimiter. \TeX\ first tries
-different sizes (from small to large)
-of the ``small'' character in the ``small'' font
-and then
-different sizes (also from small to large)
-of the ``large'' character in the ``large'' font,
-seeking one whose height plus depth is sufficiently large.
-If none of the characters it finds are large
-enough, it uses the largest one that it finds.
-It's possible that
-the small character, the large character, or both have been left unspecified
-(indicated by a zero in the appropriate part of the delimiter code).
-If only one character
-has been specified, \TeX\ uses that one. If neither has been specified,
-it replaces the delimiter by a space of width ^|\nulldelimiterspace|.
-\eix^^{delimiter codes}
-
-\endconcept
-
-
-\concept demerits
-
-\TeX\ uses \refterm{demerits} as a measure of how undesirable a line is
-when it's breaking a paragraph into lines \seeconcept{line break}.
-^^{line breaks//demerits for}
-The demerits of a line are affected both by the \refterm{badness} of the line
-and by \refterm{penalties:penalty} associated with the line.
-^^{badness}
-\TeX's goal in choosing a particular arrangement of lines is to minimize the
-total demerits for the paragraph, which it computes by adding up the demerits
-for the individual lines.
-See \knuth{pages~97--98} for the details of how \TeX\
-breaks a paragraph into lines.
-\TeX\ does not use demerits when it's choosing page breaks; instead, it uses
-a similar measure known as the ``cost'' of a particular page break.
-\endconcept
-
-\concept depth
-
-^^{boxes//depth of}
-The \defterm{depth} of a \refterm{box} is the distance that the box extends
-below its \refterm{baseline}.
-\endconcept
-
-
-\conceptindex{dimensions}
-\concept dimension
-
-A \defterm{dimension} specifies a distance, that is, a linear measure of
-space. You use dimensions to specify sizes of things, such as the length
-of a line. Printers in English-speaking countries traditionally measure
-distance in points and picas, while printers in continental Europe
-traditionally measure distance in did\^ot points and ciceros. You can
-use these units or others, such as inches, that may be more
-familiar to you. The font-independent
-^{units of measure} that \TeX\ understands are:
-
-\xrdef{dimdefs}
-\nobreak\vskip\abovedisplayskip
-\halign{\indent\hfil\tt #\qquad&#\hfil\cr
-pt&^{point} (72.27 points = 1 inch)\cr
-pc&^{pica} (1 pica = 12 points)\cr
-bp&big point (72 big points = 1 inch)\cr
-in&^{inch}\cr
-cm&^{centimeter} (2.54 centimeters = 1 inch)\cr
-mm&^{millimeter} (10 millimeters = 1 centimeter)\cr
-dd&^{\didotpt} (1157 {\didotpt}s = 1238 points)\cr
-cc&^{cicero} (1 cicero = 12 {\didotpt}s)\cr
-sp&^{scaled point} (65536 scaled points = 1 point)\cr
-}
-\vskip\belowdisplayskip
-
-Two additional units of measure are associated with every font: `^|ex|',
-a vertical measure usually about the height of the letter `x'
-in the font, and `^|em|', a
-horizontal measure usually equal to the point size of the font and
-about the width of the letter `M' in the font. Finally,
-\TeX\ provides three ``infinite'' units of measure: `^|fil|', `^|fill|', and
-`^|filll|', in increasing order of~strength.
-
-A dimension is written as a ^{factor}, i.e, a multiplier,
-followed by a unit of measure.
-^^{units of measure}
-The factor can be either a whole \refterm{number} or
-a \refterm{decimal constant} containing a decimal point
-or decimal comma.
-The factor can be preceded by a plus or minus sign, so a dimension
-can be positive or negative.
-^^{dimensions//negative}
-The unit of measure must be there, even if the number is
-zero. Spaces between the number and the unit of measure are permitted
-but not required. You'll find a precise definition of a
-dimension on \knuth{page~270}. Here are some examples of dimensions:
-
-\csdisplay
-5.9in 0pt -2,5 pc 2fil
-|
-The last of these represents a first-order infinite distance.
-
-An infinite distance outweighs any finite distance or any weaker infinite
-distance. If you add |10in| to |.001fil|, you get |.001fil|; if you add
-|2fil| to |-1fill| you get |-1fill|; and so forth.
-\TeX\ accepts infinite distances
-only when you are specifying the \refterm{stretch} and \refterm{shrink}
-of \refterm{glue}.
-
-\TeX\ multiplies all dimensions in your document by a
-\refterm{magnification} factor $f/1000$,
-where $f$ is the value of the ^|\mag| parameter.
-^^{magnification}
-Since the default value of
-|\mag| is $1000$, the normal case is that your document is
-typeset just as specified. You can specify a dimension as it will be
-measured in the final document independent of magnification by putting
-`|true|' in front of the unit. For instance, `|\kern 8 true pt|'
-produces a kern of $8$ points whatever the magnification.
-\endconcept
-
-
-\concept {display math}
-
-The term \defterm{display math} refers to a math formula that \TeX\
-places on a line by itself with extra space above and below
-so as to set it off from the surrounding text.
-A display math formula is enclosed by `|$$|'s.
-\ttidxref{$$}
-\TeX\ reads display math in display math \refterm{mode}.
-\endconcept
-
-
-\concept{escape character}
-
-An \defterm{escape character} introduces a control sequence. The escape
-character in \refterm{\plainTeX} is the backslash (|\|).
-\indexchar \
-You can change the escape character from $c_1$ to $c_2$
-by reassigning the category codes of $c_1$ and $c_2$
-with the ^|\catcode| command \ctsref{\catcode}.
-You can also define additional escape characters similarly.
-If you want to typeset material containing literal escape characters, you must
-either
-(a) define a control sequence that stands for the printed escape character or
-(b) temporarily
-disable the escape character by changing its category code, using the
-method shown on \xrefpg{verbatim}. The definition:
-
-\csdisplay
-\def\\{$\backslash$}
-|
-is one way of creating a control sequence that stands for `$\backslash$'
-(a backslash typeset in a math font).
-
-You can use the ^|\escapechar| parameter \ctsref{\escapechar} to specify
-how the escape character is represented in synthesized control sequences,
-e.g., those created by |\string| and |\message|.
-
-
-\endconcept
-
-
-\concept family
-
-A \defterm{family} is a group of three related \refterm{fonts:font} used
-when \TeX\ is in \refterm{math mode}.
-^^{fonts//families of}
-Outside of math mode, families
-have no effect. The three fonts in a family are used for normal symbols
-(\refterm{text size}), subscripts and superscripts (\refterm{script
-size}), and sub-subscripts, super-superscripts, etc.\
-(\refterm{scriptscript size}).
-^^{text size}
-^^{script size}
-^^{scriptscript size}
-For example, the numeral `|2|' set in
-these three fonts would give you `$2$', `$\scriptstyle 2$', and
-`$\scriptscriptstyle 2$' (in \plainTeX).
-Ordinarily you would set up the
-three fonts in a family as different point sizes of the same typeface,
-but nothing prevents you from using different typefaces for the three
-fonts as well or using the same font twice in a family.
-
-{\tighten
-\TeX\ provides for up to sixteen families, numbered $0$--$15$. For
-example, family $0$ in \refterm{\plainTeX} consists of $10$-point roman
-for text, $7$-point roman for script, and $5$-point roman for
-scriptscript.
-^^{\plainTeX//font families in}
-\PlainTeX\ also defines family $1$ to consist of math
-italic fonts and reserves families $2$ and $3$ for ^{special symbols} and
-^{math extensions} respectively.\footnote{Families $2$ and $3$ are special
-in that their font metric files must include parameters for math
-spacing.} If you need to define a family for yourself, you should use
-the ^|\newfam| command \ctsref{\@newfam} to get the number of a family that
-isn't in use, and the ^|\textfont|, ^|\scriptfont|,
-and ^|\scriptscriptfont| commands \ctsref{\scriptscriptfont}
-to assign fonts to that family.
-\par}
-
-\endconcept
-
-
-\conceptindex{files}
-\concept file
-
-A \defterm{file} is a stream of information that \TeX\ interprets or
-creates. Files are managed by the ^{operating system} that supervises your
-\TeX\ run. \TeX\ deals with files in four different contexts:
-\olist
-\li A ``^{source file}'' is one that \TeX\ reads with its ``eyes''
-\seeconcept{\anatomy} and interprets according to its ordinary rules.
-Your primary input file---the one you specify after `|**|' or
-on the command line when
-you invoke \TeX---is a source file, and so is any file that you call for
-with an ^|\input| command \ctsref \input.
-
-\li A ``^{result file}'' is one that contains the results of
-running \TeX. A \TeX\ run creates two result files: the
-\dvifile\ and the log file.
-^^{\dvifile//as a result file}
-^^{log file//as a result file}
-The \dvifile\ contains the information needed to print your document;
-the
-log file contains a record of what happened during the run, including any
-error messages that \TeX\ generated.
-If your primary source file is named
-|screed.tex|, your \dvifile\ and log file will be named |screed.dvi|
-and |screed.log|.\footnote{This is the usual convention, but
-particular implementations of \TeX\ are free to change it.}
-
-\li To read from a file with the ^|\read|
-command \ctsref{\read} you need to associate the file with an input stream.
-^^{input streams//reading with \b\tt\\read\e}
-You can have up to $16$ input streams active
-at once, numbered $0$--$15$.
-The |\read| command reads a single line and makes it the value of a
-designated \refterm{control sequence}, so reading with
-|\read| is very different from reading with ^|\input| (which brings in an
-entire file).
-\TeX\ takes any input stream number not between
-$0$ and $15$ to refer to the terminal,
-so `|\read16|', say, reads the next line that you type at the terminal.
-
-\li To write to a file with the |\write|
-command \ctsref \write\ you need to associate the file
-with an output stream.
-^^|\write//output stream for|
-^^{output streams}
-You can have up to $16$ output streams active
-at once, numbered $0$--$15$.
-Input and output streams are independent.
-Anything sent to an output stream with a negative number goes to the log
-file; anything sent to an output stream with a number greater than $15$
-goes both to the log file and to the terminal.
-Thus `|\write16|', say, writes a line on the terminal and also sends
-that line
-to the log~file.
-
-\endolist
-
-You must open a stream file before you can use it.
-An input stream file is opened with an ^|\openin|
-command \ctsref \openin\ and an output stream file is opened with an
-^|\openout| command \ctsref\openout.
-For tidiness
-you should close a stream file when you're done with it, although
-\TeX\ will do that at the end of the run if you don't.
-The two commands for closing a stream file are ^|\closein| \ctsref\closein\
-and ^|\closeout| \ctsref\closeout.
-An advantage of closing a stream when
-you're done with it is that you can then reuse the stream for a different file.
-Doing this can be essential when you're reading a long sequence of files.
-
-Although you can assign numbers yourself to input and output streams,
-it's better to do it with the ^|\newread| and
-^|\newwrite| \ctsref{\@newwrite} commands.
-You can have more than one stream associated with a particular file,
-but you'll get (probably undiagnosed) garbage unless all of the streams
-are input streams. Associating more than one stream with an input file
-can be useful when you want to use the same input file for two different
-purposes.
-
-\TeX\ ordinarily defers the actions of opening, writing to, or closing
-an output stream until it ships out a page with ^|\shipout|
-(see \knuth{page~227}
-for the details). This behavior applies even to messages written to the
-terminal with |\write|. But you can get \TeX\ to perform an action
-on an output stream immediately by preceding the action command with
-^|\immediate| \ctsref\immediate. For example:
-\csdisplay
-\immediate\write16{Do not pass GO!! Do not collect $200!!}
-|
-\endconcept
-
-
-\conceptindex{file names}
-\concept {file name}
-
-A \defterm{file name} names a
-\refterm{file} that is known to the ^{operating system}
-that in turn
-supervises your \TeX\ run. The syntax of a file name does \emph{not}
-follow the usual rules of \TeX\ syntax, and in fact it is different
-in different implementations of \TeX.
-In particular, most \TeX\ implementations consider a file name to be
-terminated by a blank or an end of line. Thus \TeX\ is likely to
-misinterpret `|{\input chapter2}|'
-by taking the right brace as part of the file name.
-As a general rule, you should follow a file name by a blank or the
-end of the line as in `|{\input chapter2!visiblespace}|'.
-
-\endconcept
-
-
-\eject
-\conceptindex{fonts}
-\concept font
-
-A \defterm{font} in \TeX\ is a collection of up to $256$ output
-characters, usually having the same typeface design, style (roman,
-italic, bold, condensed, etc.),
-and point size.\footnote{\PlainTeX\ uses a special
-font for constructing ^{math symbols} in which the characters have
-different sizes. Other special fonts are often useful for applications
-such as typesetting ^{logos}.} The ^{Computer Modern fonts} that
-generally come with \TeX\ have only $128$ characters. The colophon on
-the last page of this book describes the typefaces that we used to set
-this book.
-
-For instance, here is the alphabet in the Palatino Roman $10$ point font:
-^^{Palatino fonts}
-\vskip\abovedisplayskip{\narrower\tenpal
-\noindent ABCDEFGHIJKLMNOPQRSTUVWXYZ\hfil\break
-abcdefghijklmnopqrstuvwxyz\par
-}\vskip\belowdisplayskip
-\noindent
-And here it is in the Computer Modern Bold Extended $12$
-point font:
-^^{Computer Modern fonts}
-\vskip\abovedisplayskip{\narrower\font\twelvebf=cmbx12\twelvebf
-\noindent ABCDEFGHIJKLMNOPQRSTUVWXYZ\hfil\break
-abcdefghijklmnopqrstuvwxyz\par
-}\vskip\belowdisplayskip
-The characters in a font are numbered.
-The numbering usually agrees with the ^{\ascii} numbering
-for those characters that exist in the \ascii\ character set.
-The code table for each font indicates what the character
-with code $n$ looks like in that font.
-Some fonts, such as the ones used for mathematical symbols, have no
-letters at all in them. You can produce a \refterm{box} containing the
-character numbered $n$, typeset in the current font, by writing `|\char |$n$'
- \ctsref{\char}.
-
-In order to use a font in your document,
-you must first name it with a control sequence and load it. Thereafter you
-can select it by typing
-that control sequence whenever you want to use it.
-\PlainTeX\ provides a number of fonts that are already named and~loaded.
-
-You name and load a font as a single operation, using a
-command such as `|\font\twelvebf=cmbx12|'. Here `|\twelvebf|' is the
-control sequence that you use to name the font
-and `|cmbx12|' identifies the font metrics file
-|cmbx12.tfm|
-in your computer's file system.
-You then can start to use the font by typing
-`|\twelvebf|'. After that, the font will be in effect until
-either (a)~you select another font or (b)~you terminate the
-\refterm{group}, if any, in which you started the
-font. For example, the input:
-
-\csdisplay
-{\twelvebf white rabbits like carrots}
-|
-will cause the |cmbx12| font to be in effect just for the
-text `|white rabbits like carrots|'.
-
-You can use \TeX\ with fonts other than
-Computer Modern (look at the example on \xrefpg{palatino} and
-at the page headers).
-The files for such fonts need to be
-installed in your computer's file system in a place where \TeX\ can find
-them. \TeX\ and its companion programs generally need two files for each font:
-one to give its metrics (|cmbx12.tfm|,
-^^{\tfmfile}
-for example) and another to
-give the shape of the characters (|cmbx12.pk|, for example).
-\TeX\ itself uses only the metrics
-file. Another program, the device driver,
-^^{device drivers}
-converts the \dvifile\
-^^{\dvifile//converted by driver}
-produced by \TeX\ to a form that your printer
-or other output device can handle. The driver
-uses the shape file (if it exists).
-
-The font metrics file contains the information that \TeX\ needs in
-order to allocate space for each typeset character.
-Thus it includes the size of each character, the ligatures and
-kerns that pertain to sequences of adjacent characters, and so on.
-What the metrics file
-\emph{doesn't} include is any information about the shapes
-of the characters in the font.
-
-{\tighten
-The shape (pixel) file \xrdef{shape}
-^^{pixel file}^^{shape file}
-may be in any of several
-formats. The extension part of the name (the part after the dot)
-tells the driver which format the shape file is in. For example,
-|cmbx12.pk| ^^{\pkfile} might be the shape file for font |cmbx12| in
-packed format, while |cmbx12.gf| ^^{\gffile} might be the shape file
-for font |cmbx12| in generic font format.
-A shape file may not be needed for a font that's resident in your
-output device.
-\par}
-
-\endconcept
-
-
-\conceptindex{footers}
-\concept footer
-
-A \defterm{footer} is material that \TeX\ puts at the bottom of every page,
-below the text of that page.
-The default footer in \plainTeX\ is a centered page number.
-Ordinarily a footer consists of a single line, which you can set by
-assigning a token list to ^|\footline| \ctsref\footline.
-See \xrefpg{bighead} for a method of producing multiline footers.
-
-\endconcept
-
-%k \vskip 0pt plus 2pt % to solve page break problem
-
-\concept {format file}
-
-{\tighten
-A \defterm{format file} is a file that contains an image of
-\TeX's memory in a form in which it can be reloaded quickly.
-A format file can be created with the ^|\dump| command \ctsref\dump.
-The image contains a complete record
-of the definitions (of \refterm{fonts:font}, \refterm{macros:macro}, etc.)
-that were present when the dump took place.
-By using ^|virtex|, a special ``virgin'' form of \TeX,
-you can then reload the format file at high speed and
-continue in the same state that \TeX\ was in at the time of the dump.
-The advantage of a format file over an ordinary input
-file containing the same information is that \TeX\ can load it much
-faster.
-\par}
-
-Format files can only be created by ^|initex|, another special
-form of \TeX\ intended just for that purpose.
-Neither |virtex| nor |initex| has any
-facilities other than the primitives built into the
-\TeX\ program itself.
-
-A ^{preloaded} form of \TeX\ is one that has a format file already
-loaded and is ready to accept user input.
-The form of \TeX\ that's called |tex|
-often has the \plainTeX\ definitions preloaded.
-(\PlainTeX\ is ordinarily available in two other forms as well:
-as a format file and as a \TeX\ source file.
-In some environments, |tex| is equivalent to calling |virtex|
-and then loading |plain|.)
-Creating preloaded forms of \TeX\ requires a special program;
-it cannot be done using only the facilities of \TeX\ itself.
-
-\endconcept
-
-\concept global
-
-A \defterm{global} definition is effective
-until the end of the
-document or until it is overridden by another definition,
-even when it occurs within a \refterm{group}.
-Thus a global definition is unaffected by group boundaries.
-You can make any definition global by prefixing it with the |\global|
-command \ctsref{\global} unless ^|\globaldefs| \ctsref\globaldefs{}
-is negative.
-^^|\global|
-
-There's a special way of making a \refterm{macro} definition global.
-^^{macros//global}
-Normally you define a macro using either the |\def| command
-or the |\edef| command \ctsref{\edef}.
-^^|\edef//making global|
-^^|\def//making global|
-If you use |\gdef| or |\xdef|
-instead of |\def| and |\edef| respectively, the macro definition will
-be global. That is, `^|\gdef|' is equivalent to `|\global\def|' and
-`^|\xdef|' is equivalent to `|\global\edef|'.
-\endconcept
-
-
-\concept glue
-
-\bix^^{stretch}
-\bix^^{shrink}
-\defterm{Glue} is blank space that can stretch or shrink.
-Glue gives \TeX\ the flexibility that it needs in order to produce
-handsome
-documents. Glue comes in two flavors: horizontal glue and vertical glue.
-Horizontal glue occurs within \refterm{horizontal lists:horizontal list},
-while vertical glue occurs within \refterm{vertical lists:vertical list}.
-^^{horizontal lists}
-^^{vertical lists}
-You
-can produce a glue item either implicitly, e.g., with an interword space, or
-explicitly, e.g., with the ^|\hskip| command.
-^^{spaces//interword}
-\TeX\ itself produces many glue
-items as it typesets your document.
-We'll just describe horizontal glue---vertical glue is analogous.
-
-When \TeX\ assembles a list of boxes and glue into a larger
-unit,
-^^{boxes//glue with}
-it adjusts the size of the glue to meet the space requirements of the
-larger unit. For instance, \TeX\ ensures that the ^{right margin} of a page
-is uniform by adjusting the horizontal glue within lines.
-Similarly, it ensures that different pages have the
-same ^{bottom margin}
-by adjusting the glue between blocks of text such as paragraphs and
-math displays
-(where the change is least likely to be conspicuous).
-
-A glue item has a natural space---the size it ``wants to be''. Glue
-also has two other attributes: its \refterm{stretch} and its
-\refterm{shrink}. You can produce a specific amount of horizontal glue
-with the ^|\hskip| \refterm{command} \ctsref{\hskip}. The command
-|\hskip 6pt plus 2pt minus 3pt|
-produces a horizontal glue item whose natural
-size is $6$ points, whose stretch is $2$ points, and whose shrink is
-$3$ points. Similarly, you can produce a specific amount of vertical
-glue with the ^|\vskip| command \ctsref{\vskip}.
-
-The best way to understand what stretch and shrink are about
-is to see an example of glue at work.
-Suppose you're constructing an \refterm{hbox} from three boxes and two glue
-items, as in this picture:
-\gluepicture
- 29 {\picbox 4 \gluebox 6 4 1 6 \picbox 5 \gluebox 10 8 3 10 \picbox 4 }
-\noindent
-The units of measurement here could be points, millimeters, or anything else.
-If the hbox is allowed to assume its natural width, then each glue item in the
-box also assumes its natural width. The total width of the hbox is then the
-sum of the widths of its parts, namely, $29$ units.
-
-Next, suppose that the hbox is required to be wider than $29$ units, say
-$35$ units. This
-could happen, for example, if the hbox is required to occupy an entire
-line and the line width is $35$ units.
-Since the boxes can't change their width,
-\TeX\ produces the necessary extra space by making the glue items wider.
-The picture now looks like this:
-\gluepicture
- 35 {\picbox 4 \gluebox 6 4 2 8 \picbox 5 \gluebox 10 8 6 14 \picbox 4 }
-The glue items don't become wider equally; they became wider in proportion to
-their stretch. Since the second glue item
-has twice as much stretch as the first one,
-it gets wider by four units while the first glue item gets wider by only
-two units.
-Glue can be stretched as far as necessary, although \TeX\ is
-somewhat reluctant to
-stretch it beyond the amount of stretch given in its definition.
-
-Finally, suppose that the hbox is required to be narrower than $29$ units, say
-$25$ units. In this case \TeX\ makes the glue items narrower.
-The picture looks like this:
-\gluepicture
- 25 {\picbox 4 \gluebox 6 4 2 5 \picbox 5 \gluebox 10 8 6 7 \picbox 4 }
-The glue items become narrower in proportion to their shrink.
-The first glue item becomes narrower by one unit, while the second glue item
-becomes narrower by three units. Glue cannot shrink by a distance
-less than the amount of shrink
-given in its definition even though the distance it can stretch is
-unlimited. In this important sense the shrink and
-the stretch behave differently.
-
-A good rule of thumb for glue is to set the natural size to the amount
-of space that looks best, the stretch to the largest amount of space
-that \TeX\ can add before the document starts to look bad, and the
-shrink to the largest amount of space that \TeX\ can take away before
-the document starts to look bad. You may need to set the values by
-experiment.
-
-You can produce glue that is infinitely stretchable by specifying
-its stretch in units of `^|fil|', `^|fill|', or `^|filll|'. Glue measured in
-`|fill|' is infinitely more stretchable than glue measured in `|fil|', and
-glue measured in `|filll|' is infinitely more stretchable than glue measured
-in `|fill|'. You should rarely have any need for `|filll|' glue. Glue whose
-stretch is |2fil| has twice as much stretch as glue whose stretch is |1fil|,
-and similarly for the other kinds of infinitely stretchable glue.
-
-When \TeX\ is
-apportioning extra space among glue items, the infinitely stretchable
-ones, if there
-are any, get all of it. Infinitely stretchable glue is particularly useful for
-setting text flush left, flush right, or centered:
-
-\ulist\compact
-\li To set text ^{flush left}, put infinitely stretchable
-horizontal glue to the right of it.
-That glue will consume all the
-extra space that's available on the line.
-You can use the ^|\leftline| command \ctsref{\leftline}
-or the |\raggedright| command \ctsref{\raggedright} to do~this.
-\li To set text ^{flush right}, put infinitely
-stretchable horizontal glue to the left of it.
-As before, that glue will consume all the extra space on the line.
-You can use the ^|\rightline| command \ctsref{\rightline} to do~this.
-\li To set ^{centered text}, put identical infinitely stretchable
-horizontal glue items
-on both sides of it.
-These two glue items will divide all the extra space on the line
-equally between them.
-You can use the ^|\centerline| command \ctsref{\centerline} to do~this.
-\endulist
-
-You can also specify infinitely shrinkable glue
-^^{glue//infinitely shrinkable}
-in a similar way. Infinitely shrinkable glue can act as negative space.
-Note that |fil|, etc., can be used only
-to specify the stretch and shrink of glue---they can't be used to specify
-its natural size.
-\eix^^{stretch}
-\eix^^{shrink}
-\endconcept
-
-
-\conceptindex{groups}
-\concept group
-
-A \defterm{group} is a part of your manuscript that \TeX\ treats as a unit.
-You indicate a group by enclosing it in the braces
-`|{|' and `|}|' (or any other characters with the appropriate
-\refterm{category codes}).
-^^|{//starting a group|
-^^|}//ending a group|
-
-The most important property of a group is that any nonglobal
-definition or assignment that you make inside a group disappears when
-the group ends. For instance, if you write:
-
-\csdisplay
-Please don't pour {\it any} more tea into my hat.
-|
-the |\it| \refterm{control sequence} causes \TeX\ to set the word
-`|any|' in italic type but does not affect the rest of the text.
-As another example, if you use the |\hsize| parameter
-\ctsref{\hsize} to change the line length within a group, the line length
-reverts to its previous value once \TeX\ has gotten past the group.
-
-Groups are also useful as a way of controlling spacing. For instance, if you
-write:
-
-\csdisplay
-\TeX for the Impatient and the Outpatient too.
-|
-\noindent
-you'll get:
-\display{%
-\TeX for the Impatient and the Outpatient too.
-}
-\noindent
-since the control sequence |\TeX| (which produces the \TeX\
-logo) absorbs the following space.
-What you probably want is:
-\display{%
-{\TeX} for the Impatient and the Outpatient too.
-}
-\noindent
-One way to get it is to enclose `|\TeX|' in a group:
-\csdisplay
-{\TeX} for the Impatient and the Outpatient too.
-|
-The right brace prevents the control sequence from absorbing the space.
-\endconcept
-
-
-\conceptindex{hboxes}
-\concept hbox
-
-An \defterm{hbox} (horizontal box) is a \refterm{box} that \TeX\
-constructs by placing the items of a \refterm{horizontal list} one after
-another, left to right.
-^^{horizontal lists//hboxes formed from}
-An hbox, taken as a unit, is neither
-inherently horizontal nor inherently vertical, i.e., it can appear as an
-item of either a horizontal list or a \refterm{vertical list}. You can
-construct an hbox with the |\hbox| command \ctsref{\hbox}.
-\endconcept
-
-
-\conceptindex{headers}
-\concept header
-
-A \defterm{header} is material that \TeX\ puts at the top of every page,
-above the text of that page.
-The header for a simple report
-might consist of the title on the left side of
-the page and the text ``Page $n$'' on the right side of the page.
-Ordinarily a header consists of a single line, which you can set by
-assigning a token list to ^|\headline| \ctsref\headline.
-The default \plainTeX\ header is blank.
-It's possible to produce multiline headers too; see \xrefpg{bighead} for
-how to do it.
-\endconcept
-
-
-\concept height
-
-The \defterm{height} of a \refterm{box} is the distance that the box
-extends above its \refterm{baseline}.
-^^{boxes//height of}
-\endconcept
-
-
-\conceptindex{horizontal lists}
-\concept{horizontal list}
-
-A \defterm{horizontal list} is a list of items
-that \TeX\ has produced while it is
-in one of its \refterm{horizontal modes:horizontal mode}, i.e., assembling
-either a paragraph or an hbox. See ``horizontal mode'' below.
-\endconcept
-
-
-\concept {horizontal mode}
-
-^^{hboxes//horizontal mode for}
-When \TeX\ is assembling a paragraph or an \refterm{hbox}, it is in one
-of two \defterm{horizontal modes}: ^{ordinary horizontal
-mode} for assembling paragraphs and ^{restricted horizontal mode} for
-assembling hboxes. Whenever \TeX\ is in a horizontal mode its stomach
-\seeconcept{\anatomy} is constructing a \refterm{horizontal
-list} of items (boxes, glue, penalties, etc.).
-\TeX\ typesets the items in the list
-one after another, left to right.
-
-A horizontal list can't contain any
-items produced by inherently vertical commands, e.g., |\vskip|.
-^^{horizontal lists//can't contain vertical commands}
-
-\ulist
-\li If \TeX\ is assembling a horizontal list in ordinary horizontal mode and
-encounters an inherently vertical command, \TeX\ ends the paragraph and
-enters \refterm{vertical mode}.
-
-\li If \TeX\ is assembling a horizontal list in restricted horizontal
-mode and encounters an inherently vertical command, it complains.
-\endulist Two commands that you might at first think are inherently
-horizontal are in fact inherently vertical: |\halign| \ctsref{\halign}
-and |\hrule| \ctsref{\hrule}.
-^^|\hrule//inherently vertical|
-^^|\halign//inherently vertical|
-See \knuth{page~286} for a list
-of the inherently vertical commands.
-
-{\tighten
-You should be aware of a subtle but important property of restricted
-horizontal mode: \emph{you can't enter restricted horizontal mode
-when you're in ordinary horizontal mode}. What this means in practice is that
-when \TeX\ is assembling an hbox it
-won't handle paragraph-like text, i.e., text for which it does
-\refterm{line breaking}. You can get
-around this restriction by enclosing the paragraph-like text in a
-\refterm{vbox} within the hbox. The same method works if you want to
-put, say, a horizontal \refterm{alignment} inside an~hbox.
-}% end scope of tighten
-
-\endconcept
-
-
-\concept{hyphenation}
-
-\TeX\ automatically hyphenates words as it is processing your document.
-\TeX\ is not eager to insert hyphens, preferring instead to find good
-line breaks by adjusting the spacing between words and moving words
-from one line to another.
-\TeX\ is clever enough to understand
-hyphens that are already in words.
-
-You can control \TeX's hyphenation in several ways:
-\ulist
-\li You can tell \TeX\ to
-allow a hyphen in a particular place by inserting a
-discretionary hyphen
-^^{discretionary hyphens}
-with the ^|\-| command \ctsref{\@minus}.
-\li You can tell \TeX\ how to
-hyphenate particular words throughout your document with the ^|\hyphenation|
-command \ctsref{\hyphenation}.
-\li You can enclose a word in an \refterm{hbox}, thus preventing \TeX\
-from hyphenating it.
-\li You can set the value of penalties such as |\hyphenpenalty|
-\ctsref\hyphenpenalty.
-\endulist
-\noindent If a word contains an explicit or discretionary hyphen,
-\TeX\ will never break it elsewhere.
-\endconcept
-
-
-\conceptindex{input streams}
-\concept {input stream}
-
-See \conceptcit{file}.
-\endconcept
-
-\conceptindex{insertions}
-\concept insertion
-
-\looseness = -1
-An \defterm{insertion} is a vertical list containing material
-to be inserted into
-a page when \TeX\ has finished building that page.\footnote
-{\tighten
-\TeX\ itself doesn't
-insert the material---it just makes the material available to
-the output routine, which is then responsible for transferring
-it to the composed page.
-^^{output routine//insertions, treatment of}
-The only immediate effect of the ^|\insert| command
-\ctsref{\insert} is to change \TeX's page break calculations so that it
-will leave room on the page for the inserted material. Later, when
-\TeX\ actually breaks the page, it divides the inserted material into
-two groups: the material that fits on the current page and the material
-that doesn't.
-^^{page breaks//insertions at}
-The material that fits on the page is placed into box registers,
-one per insertion,
-and the material that doesn't fit is carried over to the next page.
-This procedure allows \TeX\ to do such
-things as distributing parts of a long footnote over several consecutive
-pages.} Examples of such insertions are footnotes and figures. The
-\refterm{\plainTeX} commands for
-creating insertions are ^|\footnote|, ^|\topinsert|, |\mid!-insert|,
-^^|\midinsert|
-and ^|\pageinsert|, as well as the primitive ^|\insert| command
-itself (\pp\xrefn\footnote--\xrefn{endofinsert}).
-\TeX's mechanism for handling insertions is rather complicated;
-see \knuth{pages~122--125} for the details.
-\endconcept
-
-
-\concept {interline glue}
-
-\defterm{Interline glue} is the glue that \TeX\ inserts in front of every
-\refterm{box} in a \refterm{vertical list} except for the first one.
-The interline glue is ordinarily specified so as to maintain a constant
-distance between the baselines of the boxes.
-Its value is jointly determined by the ^|\baselineskip|,
-^|\lineskip|, and ^|\lineskiplimit| parameters \ctsref{\baselineskip}.
-\endconcept
-
-
-\conceptindex{items}
-\concept item
-
-The term \defterm{item} is often used to refer to a component of
-a horizontal, vertical, or math list, i.e., a list of items that
-\TeX\ is building while it is in a horizontal, vertical, or math mode.
-\endconcept
-
-
-
-\conceptindex{justification}
-\concept {justified text}
-
-\defterm{Justified text} is text that has been typeset so that both
-margins are even. Unjustified text, on the other hand, has been typeset
-with ``ragged'' margins on one or both sides.
-Documents typed on old-fashioned typewriters almost always have
-ragged right margins.
-Although documents produced by \TeX\ are
-justified by default, you can if you wish produce documents (or
-sequences of lines) that have ^{ragged right}---or ^{ragged left}---margins.
-You can also get \TeX\ to center a sequence of lines, thus making both
-margins ragged.
-^^{centered text}
-You can use the
-^|\leftskip|, ^|\rightskip|, and ^|\raggedright| commands
-(\pp \xrefn{\leftskip},~\xrefn{\raggedright}) for these purposes.
-
-When \TeX\ is producing justified text, it usually
-needs to stretch or shrink the glue within each line to make the margins
-come out even. When \TeX\ is producing unjustified text, on the other
-hand, it usually leaves the glue within each line at its natural width.
-Many typographers prefer unjustified text because its interword
-spacing is more uniform.
-\endconcept
-
-
-\conceptindex{kerns}
-\concept kern
-
-^^{spacing//adjusting with kerns}
-A \defterm{kern} indicates a change to the normal spacing between
-the items of a vertical or horizontal list.
-A kern can be either positive or negative. By
-putting a positive kern between two items, you push them further apart
-by the amount of the kern. By putting a negative kern between two
-items, you bring them closer together by the amount of the kern. For
-instance, this text:
-\csdisplay
-11\quad 1\kern1pt 1\quad 1\kern-.75pt 1
-|
-produces letter pairs that look like this:
-\display{11\quad 1\kern1pt 1\quad 1\kern-.75pt 1}
-You can use kerns in vertical mode to adjust the space between
-particular pairs of lines.
-
-A kern of size $d$ is very similar to a \refterm{glue} item that has
-size $d$ and no stretch or shrink. Both the kern and the glue insert or
-remove space between neighboring items. The essential difference is
-that \TeX\ considers two boxes with only kerns between them to be tied
-together. That is, \TeX\ won't break a line or a page at a kern unless
-the kern is immediately followed by glue. Bear this difference in mind
-when you're deciding whether to use a kern or a glue item for a
-particular purpose.
-
-\TeX\ automatically inserts kerns between particular pairs of adjacent
-letters, thus adjusting the space between those letters and enhancing
-the appearance of your typeset document.
-For instance, the Computer Modern $10$-point roman font contains a kern
-for the pair `To' that brings the left edge of the `o' under the
-`T'. Without the kern, you'd get \hbox{``T{o}p''} rather than ``Top''---%
-the difference is slight but noticeable.
-The metrics file
-(^{\tfmfile})
-for each \refterm{font} specifies the placement and size of the
-kerns that \TeX\ automatically inserts when it is setting text in that~font.
-\margin{paragraph deleted to save space; most of the material was
-already in this section.}
-
-\endconcept
-
-
-\concept leaders
-
-You can use \defterm{leaders} to fill a space with copies of
-a pattern, e.g.,
-to put repeated dots between a title and a page number in a table of contents.
-A leader is a single copy of the pattern.
-The specification of leaders contains three pieces of information:
-\olist\compact
-\li what a single leader is
-\li how much space needs to be filled
-\li how the copies of the pattern should be arranged within the space
-\endolist
-
-\bix^^|\leaders|
-\bix^^|\cleaders|
-\bix^^|\xleaders|
-{\tighten
-\TeX\ has three commands for specifying leaders:
-|\leaders|, \hbox{|\cleaders|}, and |\xleaders| (\xref\leaders). The
-\refterm{argument} of each command specifies the leader.
-The command must be followed by \refterm{glue}; the size of the glue
-specifies how much space is to be filled. The choice of command determines
-how the leaders are arranged within the space.}
-
-Here's an example showing how |\leaders| works:
-\csdisplay
-\def\dotting{\leaders\hbox to 1em{\hfil.\hfil}\hfil}
-\line{The Political Process\dotting 18}
-\line{Bail Bonds\dotting 26}
-|
-Here we've put the leaders and their associated glue into a \refterm{macro}
-definition so that we can conveniently
-use them in two places. This input produces:
-
-\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}
-}
-
-The \refterm{hbox} following |\leaders| specifies
-the leader, namely, an hbox 1\em\ wide containing a dot
-at its center.
-The space is filled with copies of this box,
-effectively filling it
-with dots whose centers are 1\em{} apart.
-The following |\hfil| (the one at the
-end of the macro definition) is glue that
-specifies the space to be filled.
-In this case it's whatever space is needed to fill out the line.
-By choosing |\leaders| rather than |\cleaders| or |\xleaders| we've insured
-that the dots on different lines line up with each other.
-
-In general, the space to be filled acts as a window
-on the repeated copies of the leader.
-\TeX\ inserts as many copies as possible, but some space is
-usually left over---either because of where the leaders fall
-within the window or because
-the width of the window isn't an exact multiple of the width of the
-leader.
-The difference among the three commands is in how they arrange the leaders
-within the window and how they distribute any leftover space:
-
-\ulist
-\li For |\leaders|, \TeX\ first produces a row of copies of the leader.
-It then aligns the start of this row with the left end of the innermost
-box $B$ that is to contain the result of the |\leaders| command.
-In the two-line example above, $B$ is a box produced by |\line|.
-Those leaders that fit entirely in the window are placed into $B$,
-and the leftover space at the left and right ends is left empty.
-The picture is like this:
-\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
-This procedure ensures that in the two-line example on the previous page,
-the dots in the two lines
-are vertically aligned (since the \refterm{reference points:reference point}
-of the hboxes produced by |\line| are vertically aligned).
-\par}
-
-\li For |\cleaders|, \TeX\ centers the leaders within the window
-by dividing the leftover space between the two ends of the window.
-The leftover space is always less than the width of a single leader.
-
-\li For |\xleaders|, \TeX\ distributes the
-leftover space evenly within the window.
-In other words, if the leftover space is $w$ and the
-leader is repeated $n$ times,
-\TeX\ puts space of width $w/(n+1)$ between adjacent leaders and
-at the two ends of the leaders.
-The effect is usually to spread out the leaders a little bit.
-The leftover space for |\xleaders|, like that for |\cleaders|,
-is always less than the width of a single leader.
-\endulist
-
-So far we've assumed that the leaders consist of hboxes arranged
-horizontally. Two variations are possible:
-\olist
-\li You can use a
-rule instead of an hbox for the leader.
-\TeX\ makes the rule as wide as necessary to extend
-across the glue (and the three commands are equivalent).
-\li You
-can produce vertical leaders that run down the page by including them in
-a \refterm{vertical list} rather than a \refterm{horizontal list}. In
-this case you need vertical glue following the leaders.
-\endolist
-\noindent
-See \knuth{pages~223--225} for the precise rules that \TeX\ uses
-in typesetting leaders.
-\eix^^|\leaders|
-\eix^^|\cleaders|
-\eix^^|\xleaders|
-\endconcept
-
-
-\conceptindex{ligatures}
-\concept ligature
-
-A \defterm{ligature} is a single character that replaces a
-particular sequence of adjacent characters in a typeset document.
-For example, the word `|office|' is typeset as \hbox{``office''},
-not \hbox{``of{f}ice''}, by high-quality typesetting systems.
-Knowledge of ligatures is built into the
-\refterm{fonts:font} that you use, so there's nothing explicit you need do
-in order to get \TeX\ to produce them. (You could defeat the ligature
-in ``office'', as we did just above, by writing `|of{f}ice|' in your input.)
-\TeX\ is also capable of using its ligature mechanism to typeset the
-first or last letter of a word differently than the same letter as it would
-appear in the middle of a word.
-You can defeat this effect (if you ever encounter it) by using the
-^|\noboundary| command (\xref\noboundary).
-
-Sometimes you may need a ligature from a European language.
-^^{European languages}
-\TeX\ won't
-produce these automatically unless you're using a font designed for that
-language. A number of these ligatures, e.g., `\AE', are available as
-commands (see ``Letters and ligatures for European alphabets'',
-\xref{fornlets}).
-\endconcept
-
-
-\conceptindex{line breaks}
-\concept{line break}
-
-A \defterm{line break} is a place in your document where \TeX\ ends
-a line as it typesets a paragraph.
-When \TeX\ processes your document, it collects the contents of each
-paragraph in a \refterm{horizontal list}.
-When it has collected an entire paragraph,
-it analyzes the list to find what it considers to be the best possible
-line breaks. \TeX\ associates ``^{demerits}'' with various symptoms of
-unattractive line breaks---lines that have too much or too little
-space between words, consecutive lines that end in hyphens, and so forth. It
-then chooses the line breaks so as to minimize the total number of demerits.
-See \knuth{pages~96--101} for a full description of \TeX's line-breaking rules.
-
-You can control \TeX's choice of line breaks in several ways:
-\ulist
-
-\li You can insert a \refterm{penalty} (\xref{hpenalty}) somewhere in
-the horizontal list that \TeX\ builds as it forms a paragraph.
-^^{penalties//in horizontal lists}
-A
-positive penalty discourages \TeX\ from breaking the line there, while a
-negative penalty---a bonus, in other words---encourages \TeX\ to break
-the line there. A penalty of $10000$ or more prevents a line break,
-while a penalty of $-10000$ or less forces a line break. You can get
-the same effects with the ^|\break| and
-^|\nobreak| commands (\pp\xrefn{hbreak},~\xrefn{hnobreak}).
-
-\li You can tell \TeX\ to allow a hyphen in a particular place by
-inserting a discretionary hyphen
-^^{discretionary hyphens}
-with the |\-| command \ctsref{\@minus}, or
-otherwise control how \TeX\ hyphenates your document \seeconcept
-{hyphenation}.
-^^|\-//in line breaking|
-
-\li You can tell \TeX\ to allow a line break after a ^{solidus} (/) between
-two words by inserting ^|\slash| \ctsref{\slash}
-between them, e.g., `|fur!-longs\slash fortnight|'.
-
-\li You can tell \TeX\ not to break a line between two particular words by
-inserting a ^{tie} (|~|) between those words.
-^^|~//in line breaking|
-
-\li You can adjust the penalties associated with line breaking by
-assigning different values to \TeX's line-breaking
-\refterm{parameters:parameter}.
-
-\li You can enclose a word or sequence of words in an \refterm{hbox},
-thus preventing \TeX\ from breaking the line anywhere within the hbox.
-^^{hboxes//controlling line breaks}
-\endulist
-
-It's useful to know the places where \TeX\ can break a line:
-\ulist
-\li at glue, provided that:
-\olist
-\li the item preceding the glue is one of the following:
-a box, a discretionary item (e.g., a discretionary hyphen),
-the end of a math formula,
-a whatsit,
-or vertical material produced by |\mark| or |\vadjust|
-or |\insert|
-\li the glue is not part of a math formula
-\endolist
-\noindent
-When \TeX\ breaks a line at glue, it makes the break at the left edge
-of the glue space and forgets about the rest of the glue.
-\li at a kern that's immediately followed by glue,
-provided that this kern isn't within a math formula
-\li at the end of a math formula that's immediately followed by glue
-\li at a penalty, even one within a math formula
-\li at a discretionary break
-\endulist
-When \TeX\ breaks a line, it discards any
-sequence of glue, kerns, and penalty items that follows the break point.
-If such a sequence is followed by the beginning of a math formula, it
-also discards any kern produced by the beginning of the formula.
-\endconcept
-
-
-\conceptindex{lists}
-\concept list
-
-A \defterm{list} is a sequence of \refterm{items:item}
-(\refterm{boxes:box}, \refterm{glue}, \refterm{kerns:kern}, etc.)
-that comprise the contents of an hbox, a vbox,
-or a math formula.
-See \conceptcit{horizontal list}, \conceptcit{vertical list}.
-
-\endconcept
-
-
-\concept {log file}
-
-See \conceptcit{file}.
-\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.
-A \defterm{macro} is a definition that gives a name to a pattern of
-\TeX\ input text.\footnote{More precisely, the definition gives a name
-to a sequence of tokens.} The name can be either a \refterm{control
-sequence} or an \refterm{active character}. The pattern is called the
-``replacement text''. The primary command for defining macros is the
-|\def| control sequence.
-
-\def\arctheta{\cos \theta + i \sin \theta}
-As a simple example, suppose that you have a document in which
-the sequence `$\cos \theta + i \sin \theta$' occurs many times.
-Instead of writing it out each time, you can define a macro for it:
-\csdisplay
-\def\arctheta{\cos \theta + i \sin \theta}
-|
-Now whenever you need this sequence, you can just ``call'' the macro
-by writing `|\arctheta|'
-and you'll get it. For example, `|$e^{\arctheta}$|' will give you
-`$e^{\arctheta}$'.
-
-\bix^^{macros//parameters of}
-But the real power of macros lies in the fact that a macro can have
-parameters. When you call a macro that has parameters, you provide
-arguments that are substituted for those parameters. For example, suppose
-you write:
-\pix\indexchar #
-\def\arc#1{\cos #1 + i \sin #1}
-\csdisplay
-\def\arc#1{\cos #1 + i \sin #1}
-|
-
-The notation |#1| \xrdef{@msharp} indicates the first parameter
-of the macro, which in this case has only one parameter. You now can
-produce a similar form, such as `$\arc{2t}$', with the macro call `|\arc
-{2t}|'.
-
-More generally, a macro can have up to nine parameters, which you
-indicate as `|#1|', `|#2|', etc\null. in the macro definition. \TeX\
-provides two kinds of parameters: delimited parameters and undelimited
-parameters. Briefly, a delimited parameter has an \refterm{argument}
-that's delimited, or ended, by a
-specified sequence of tokens (the delimiter), while an undelimited
-parameter has an argument that doesn't need a delimiter to end it.
-First we'll explain how macros work when they have only undelimited
-parameters, and then we'll explain how they work when
-they have delimited parameters.
-
-^^{parameters//undelimited}
-If a macro has only undelimited parameters, those parameters must appear
-one after another in the macro definition \emph{with nothing between
-them or between the last parameter and the left brace in front of the
-replacement text}.
-A call on such a macro consists of the macro name followed by
-the arguments of the call, one for each parameter. Each argument is
-either:
-
-\ulist \compact
-\li a single \refterm{token} other than a left or right brace, or
-
-\li a sequence of tokens enclosed between a left brace and
-a matching right brace.\footnote{The
-argument can have nested pairs of braces within it, and each of these
-pairs can indicate either a \refterm{group} or a further macro
-argument.}
-\endulist
-
-When \TeX\ encounters a macro, it expands the macro in its gullet
-\seeconcept{\anatomy}
-by substituting each argument for the corresponding
-parameter in the replacement text. The resulting text may contain other macro
-calls. When \TeX\ encounters such an embedded macro call, it expands
-that call immediately without looking at what follows the
-call.\footnote{In computer science terminology, the expansion is ``depth
-first'' rather than ``breadth first''. Note that you can modify the
-order of expansion with commands such as |\expandafter|.} When \TeX's
-gullet gets to a \refterm{primitive} \refterm{command} that
-cannot be further expanded, \TeX\ passes that command to \TeX's stomach.
-The order of expansion is sometimes critical, so in order to help
-you understand it we'll give you an example of \TeX\ at work.
-
-Suppose you provide \TeX\ with the following input:
-\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.
-|
-Then the argument corresponding to |#1| is |\c|,
-and the argument corresponding to |#2| is |e\d|.
-\TeX\ expands the macro call in the following steps:
-
-{\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|' sent to stomach)
-|dd\c\kern 2pt \c|
-|\c\kern 2pt \c|\quad(`|d|', `|d|' sent to stomach)
-|\char49 cc\kern 2pt \c|
-|\c|\quad(`|\char|', `|4|', `|9|', `|c|', `|c|', %
-`|\kern|', `|2|', `|p|', `|t|' sent to stomach)
-|\char49 cc|
-(`|\char49|', `|c|', `|c|' sent to stomach)
-\vskip\belowdisplayskip}
-
-\noindent Note that the letters `|b|', `|c|', `|d|', and `|e|' and the
-control sequences `|\kern|' and `|\char|' are all primitive
-commands that cannot be expanded further.
-
-\bix^^{parameters//delimited}
-A macro can also have ``delimited parameters'', which can be mixed with
-the undelimited ones in any combination. The idea of a delimited
-parameter is that \TeX\ finds the corresponding argument by looking for
-a certain sequence of tokens that marks the end of the argument---the
-delimiter. That is, when \TeX\ is looking for such an argument, it
-takes the argument to be all the tokens from \TeX's current position up
-to but not including the delimiter.
-
-You indicate a delimited parameter by writing `|#|$n$' ($n$
-must be between $0$
-and $9$) followed by one or more tokens that act as the delimiter. The
-delimiter extends up to the next `|#|' or `|{|'---which makes sense
-since `|#|' starts another parameter and `|{|' starts the replacement text.
-
-The delimiter can't be `|#|' or `|{|', so you can tell a delimited
-parameter from an undelimited one by looking at what comes after it.
-
-If the character after the parameter is `|#|' or `|{|', you've got an
-undelimited parameter; otherwise you've got a delimited one. Note
-the difference in arguments for the two kinds of parameters---an
-undelimited parameter is matched either by a single token or by
-a sequence of tokens enclosed in braces, while a
-delimited parameter is matched by any number of tokens, even zero.
-
-An example of a macro that uses two delimited parameters is:
-\def\diet#1 #2.{On #1 we eat #2!}
-\csdisplay
-\def\diet#1 #2.{On #1 we eat #2!!}
-|
-Here the first parameter is delimited by a single space
-and the second parameter is delimited by a period. If you write:
-\csdisplay
-\diet Tuesday turnips.
-|
-you'll get the text ``\diet Tuesday turnips.''.
-But if the delimiting tokens are enclosed in a group, \TeX\ doesn't consider
-them as delimiting. So if you write:
-\csdisplay
-\diet {Sunday mornings} pancakes.
-|
-you'll get the text `\diet {Sunday mornings} pancakes.'
-even though there's a space between `|Sunday|' and `|morning|'.
-When you use a space as a delimiter,
-an end-of-line character ordinarily also delimits the argument
-since \TeX\ converts the end-of-line to a space before the macro
-mechanism ever sees it.
-\eix^^{parameters//delimited}
-\eix^^{macros//parameters of}
-
-Once in a while you might need to define a macro that has `|#|' as a
-meaningful character within it.
-You're most likely to need to do this when you're defining a macro
-that in turn defines a second macro.
-What then do you do about
-the parameters of the second macro to avoid getting \TeX\ confused?
-The answer is that you write
-two `|#|'s for every one that you want
-when the first macro is expanded. For example, suppose you
-write the macro definition:
-\def\first#1{\def\second##1{#1/##1}}
-\csdisplay
-\def\first#1{\def\second##1{#1/##1}}
-|
-Then the call `|\first{One}|' defines `|\second|' as:
-\csdisplay
-\def\second#1{One/#1}
-|
-and the subsequent call `|\second{Two}|' produces the text
-\def\second#1{One/#1}%
-`\second {Two}'.
-
-A number of commands provide additional ways of defining macros
-(see pp.~\xrefn{mac1}--\xrefn{mac2}).
-For the complete rules pertaining to macros, see \knuth{Chapter~20}.
-}% close brace at the start of the `macro' concept.
-\endconcept
-
-
-\concept magnification
-
-When \TeX\ typesets your document, it multiplies all dimensions
-by a
-\refterm{magnification} factor $f/1000$,
-where $f$ is the value of the ^|\mag| parameter \ctsref\mag.
-Since the default value of |\mag| is $1000$, the normal case is that
-your document is typeset just as specified.
-Increasing the magnification is often useful when you're typesetting a document
-that will later be photoreduced.
-
-You can also apply magnification to a single \refterm{font} so as to get
-a smaller or larger version of that font than its ``^{design size}''. You
-need to provide the device driver with a ^{shape file}
-\seeconcept{font} for
-each magnification of a font that you're using---%
-unless the fonts are built into your printer and your device driver
-knows about them.
-When you're defining a font with
-the |\font| command \ctsref{\font}, you can specify a magnification with
-the word `|scaled|'. For example:
-
-\csdisplay
-\font\largerbold = cmbx10 scaled 2000
-|
-defines `|\largerbold|' as a font that is
-twice as big as |cmbx10| (Computer Modern
-Bold Extended $10$-point) and has the character shapes
-uniformly enlarged by a factor of~$2$.
-
-Many computer centers find it convenient to provide fonts scaled by a ratio
-of $1.2$, corresponding to magnification values of $1200$, $1440$, etc.
-\TeX\ has special names for these values:
-^^|\magstep|
-`|\magstep1|' for $1200$,
-`|\magstep2|' for $1440$, and so forth up to `|\magstep5|'. The special
-value `^|\magstephalf|' corresponds to magnification by $\sqrt{1.2}$, which
-is visually halfway between `|\magstep0|' (no magnification) and
-`|\magstep1|'. For example:
-
-\csdisplay
-\font\bigbold = cmbx10 scaled \magstephalf
-|
-
-You can specify a \refterm{dimension} as it will be
-measured in the final document independent of magnification by putting
-`^|true|' in front of the unit. For instance, `|\kern 8 true pt|'
-produces a kern of $8$ points whatever the magnification.
-
-\endconcept
-
-\concept margins
-
-The \refterm{margins}
-of a page define a rectangle that normally
-contains the printed matter on the page.
-You can get \TeX\ to print material outside of this rectangle,
-but only by taking some explicit action that moves the material there.
-\TeX\ considers headers and footers to lie outside the margins.
-
-The rectangle is defined in terms of its upper-left corner, its width, and
-its depth. The location of the upper-left corner is defined by
-the ^|\hoffset|
-and ^|\voffset| parameters
-\ctsref\voffset. The default is to place that corner one inch from the top
-and one inch from the left side of the page, corresponding to a value of
-zero for both |\hoffset| and |\voffset|.%
-\footnote{This seems to us to be an odd convention.
-It would have been more natural to have the $(0,0)$
-point for |\hoffset| and |\voffset| be at the upper-left corner of the
-paper and to have set their default values to one inch.}
-The width of the rectangle is given by ^|\hsize| and the depth by ^|\vsize|.
-
-The implications of these conventions are:
-\ulist\compact
-\li The left margin is given by |\hoffset|\tplus|1in|.
-\li The right margin is given by the width of the paper minus
- |\hoffset|\tplus|1in|\tplus|\hsize|.
-\li The top margin is given by |\voffset|\tplus|1in|.
-\li The bottom margin is given by the length of the paper minus
- |\voff!-set|\tplus|1in|\tplus|\vsize|.
-\endulist
-From this information you can see what parameters you need to
-change in order to change the margins.
-
-Any changes that you make to |\hoffset|, |\voffset|, or |\vsize| become
-effective the next time \TeX\ starts a page. In other words, if you change
-them within a page, the change will affect only the \emph{following} pages.
-If you change |\hsize|, the change will become effective immediately.
-\endconcept
-
-
-\conceptindex{marks}
-\concept mark
-
-A \defterm{mark} is an item that you can insert into a
-horizontal, vertical, or math list and later recover from within your
-output routine. Marks are useful for purposes such as
-keeping track of topics to appear in page headers.
-Each mark has a list of tokens---the ``^{mark text}''---associated with it.
-The ^|\mark| command \ctsref{\mark} expects such a token list as its argument,
-and appends an item containing that token list (after
-expansion) to whatever list \TeX\ is
-currently building. The ^|\topmark|, ^|\firstmark|, and ^|\botmark| commands
-\ctsref{\topmark} can be used to retrieve various marks on a page.
-These commands are most often used in page headers and footers.
-^^{footers//marks used in}
-^^{headers//marks used in}
-
-\margin{This example of {\tt\\mark} replaces the previous explanatory
-paragraph.}
-Here is a simplified example.
-Suppose you define a section heading macro as follows:
-\csdisplay
-\def\section#1{\medskip{\bf#1}\smallskip\mark{#1}}
-% #1 is the name of the section
-|
-^^|\mark|
-This macro, when called, will produce a section heading in boldface and
-will also record the name of the section as a mark.
-You can now define the header for each printed page
-as follows:
-\csdisplay
-\headline = {\ifodd\pageno \hfil\botmark\quad\folio
- \else \folio\quad\firstmark\hfil \fi}
-|
-Each even (left-hand) page will now have the page number followed by the
-name of the first section on that page, while each odd (right-hand) page
-will have the page number followed by the name of the last section on
-that page. Special cases, e.g., no sections starting on a page, will
-generally come out correctly because of how ^|\firstmark|
-and ^|\botmark| work.
-
-When you split a page using the |\vsplit| command \ctsref{\vsplit} you can
-retrieve the mark texts of the first and last marks of the split-off
-portion with the ^|\splitfirstmark| and ^|\splitbotmark| commands
-\ctsref{\splitfirstmark}.
-
-See \knuth{pages~258--260} for a more precise explanation of how
-to create and retrieve marks.
-\endconcept
-
-
-\concept math mode
-
-{\tighten
-A \defterm{math mode} is a \refterm{mode} that \TeX\ is in when it is
-building a math formula. \TeX\ has two different math modes: ^{text
-math mode} for building a formula to be embedded within a line of text,
-and ^{display math mode} for building a formula to appear on a line by
-itself. You indicate text math mode by enclosing the formula in
-|$|'s, and display math mode by enclosing the formula in
-|$$|'s.
-%\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.
-An important property of both
-math modes is that \emph{input spaces don't count}. See
-\knuth{pages~290--293} for details on how \TeX\ responds to different
-commands in math mode.
-\par}
-
-\endconcept
-
-
-\conceptindex{mathcodes}
-\concept mathcode
-
-A \defterm{mathcode} is a number that \TeX\ uses to identify and
-describe a math character,
-^^{math characters//described by mathcodes}
-i.e., a character that has a
-particular role in a math formula. A mathcode conveys three pieces of
-information about a character: its \refterm{font} position, its
-\refterm{family}, and its \refterm{class}.
-Each of the $256$ possible
-input characters has a mathcode, which is defined by the \TeX\ program
-but can be changed.
-
-^^{family//as part of mathcode}
-\TeX\ has sixteen families of fonts, numbered $0$--$15$. Each
-family contains three fonts: one for \refterm{text size}, one for
-\refterm{script size}, and one for \refterm{scriptscript size}. \TeX\
-chooses the size of a particular character, and therefore its font,
-according to the context. The class of a character specifies its role
-in a formula (see \knuth{page~154}). For example, the equals sign `|=|'
-is in class $3$ (Relation). \TeX\ uses its knowledge of character
-classes when it is deciding how much space to put between different
-components of a math formula.
-
-The best way to understand what mathcodes are all about is to see how
-\TeX\ uses them. So we'll show you what \TeX\ does with a
-character token $t$ of \refterm{category code}~11 or~12 in a math
-formula:
-
-\olist\compact
-\li It looks up the character's mathcode.
-\li It determines a family $f$ from the mathcode.
-\li It determines the size $s$ from the context.
-\li It selects a font $F$ by picking the font for size $s$ in family $f$.
-\li It determines a character number $n$ from the mathcode.
-\li It selects as the character $c$ to be typeset the character
-at position $n$ of font $F$.
-\li It adjusts the spacing around $c$ according to the class of $t$ and
-the surrounding context.
-\li It typesets the character $c$.
-\endolist
-
-The context dependence in
-items (3) and (7) implies that \TeX\ cannot typeset a math character
-until it has seen the entire formula containing the
-math character. For example, in the formula
-`|$a\over b$|', \TeX\ doesn't know what size the `|a|' should be until it
-has seen the |\over|.
-
-{\tighten
-The mathcode of a character is encoded according to the formula $4096c
-+ 256f + n$, where $c$ is the class of the character, $f$ is its
-\refterm{family}, and $n$ is its \refterm{\ascii\ character} code within
-the family. You can change \TeX's interpretation of an input character
-in math mode by assigning a value to the ^|\mathcode|
-table entry \ctsref{\mathcode}
-for that character. The character must have a
-\refterm{category code} of $11$ (letter) or $12$ (other) for \TeX\ to
-look at its |\mathcode|.
-}\par
-
-^^{family//variable}
-You can define a mathematical character to have a ``variable'' family by
-giving it a class of $7$. Whenever \TeX\ encounters that character in a
-math formula, it takes the family of the character to be the current
-value of the |\fam| parameter \ctsref{\fam}. A variable family enables
-you to specify the font of ordinary text in a math formula. For
-instance, if the roman characters are in family $0$, the assignment
-|\fam = 0|
-will cause ordinary text in a math formula to be set in roman type
-rather than in something else like math italic type. If the value of
-|\fam| is not in the range from $0$ to $15$, \TeX\ takes the value to be
-$0$, thus making classes $0$ and $7$ equivalent.
-\TeX\ sets |\fam| to $-1$ whenever it enters math mode.
-\endconcept
-
-
-\conceptindex{mathematical units}
-\concept{mathematical unit}
-
-A \defterm{mathematical unit}, denoted by `|mu|', is a unit of distance
-that is used to specify \refterm{glue} in math formulas. See
-\conceptcit{muglue}.
-\endconcept
-
-
-\conceptindex{modes}
-\concept mode
-
-When \TeX\ is processing your input in its stomach \seeconcept{\anatomy},
-it is in one of six \defterm{modes}:
-\ulist\compact
-\li ^{ordinary horizontal mode} (assembling a paragraph)
-\li ^{restricted horizontal mode} (assembling an \refterm{hbox})
-\li ^{ordinary vertical mode} (assembling a page)
-\li ^{internal vertical mode} (assembling a \refterm{vbox})
-\li ^{text math mode} (assembling a formula that appears in text)
-\li ^{display math mode}
-(assembling a formula that appears on a line by~itself)
-^^{horizontal mode}^^{vertical mode}^^{math mode}
-\endulist
-The mode describes the kind of entity that \TeX\ is putting together.
-
-Because you can embed one kind of entity within another, e.g., a vbox
-within a math formula, \TeX\ keeps track not just of one mode but of a
-whole list of modes (what computer scientists call a ``stack'').
-Suppose that \TeX\ is in mode $M$ and encounters something that
-puts it into a new mode \Mprimeperiod. When it finishes its work in
-mode \Mprimecomma, it resumes what it was doing in mode \Mperiod.
-
-\endconcept
-
-
-\concept muglue
-
-\defterm{Muglue} is a kind of \refterm{glue} that you can use only in math
-formulas. It is measured in ^|mu| (\refterm{mathematical
-units:mathematical unit}).
-^^{mathematical units}^^{glue//mathematical}
-One |mu| is equal to \frac1/{18} em, where
-the size of an em is taken from \refterm{family} 2 of the math fonts.
-\TeX\ automatically adjusts the size of muglue according to the context.
-For instance, a glue size of |2mu| is normally smaller within a
-subscript than it is within ordinary text.
-You must use the ^|\mskip| command to produce muglue.
-For example, `|\mskip 4mu plus 5mu|' produces mathematical glue with
-natural space of four |mu| and \refterm{stretch} of five |mu|.
-
-\endconcept
-
-
-\conceptindex{numbers}
-\concept number
-
-In \TeX, a \defterm{number} is a positive or negative integer.
-You can write a number in \TeX\ in four different ways:
-\olist\compact
-\li as an ordinary decimal integer, e.g., |52|
-\li as an octal number, e.g., |'14| ^^{octal numbers}
-\li as a hexadecimal number, e.g., |"FF0| ^^{hexadecimal numbers}
-\li as the code for an \refterm{\ascii\ character}, e.g., |`)|
-or |`\)|
-\endolist
-\noindent
-Any of these forms can be preceded by `|+|' or `|-|'.
-
-An octal number can have only the digits |0|--|7|.
-^^{octal numbers}
-A hexadecimal number can have digits |0|--|9| and
-|A|--|F|, representing
-values from $0$ to $15$.
-^^{hexadecimal numbers}
-You can't, alas, use lowercase letters when you write a hexadecimal number.
-If you need an explanation of octal and hexadecimal numbers,
-you'll find one on \knuth{pages~43--44}.
-
-A decimal, octal, or hexadecimal number
-ends at the first character that can't be part of the number.
-Thus a decimal number ends when \TeX\ sees, say, a letter, even though a
-letter between `|A|' and `|F|' would not end a hexadecimal number.
-You can end a number with one or more spaces and
-\TeX\ will ordinarily ignore them.\footnote{
-When you're defining a macro that ends in a number, you should always
-put a space after that number; otherwise \TeX\ may later combine that
-number with something else.}
-
-The fourth form above specifies a number as the
-\minref{\ascii} code for a character.
-^^{characters//\ascii\ codes for}
-\TeX\ ignores spaces after this form of number also.
-You can write a number in this form either as |`|$c$ or as |`\|$c$.
-The second form, though longer, has the advantage that you can use it
-with \emph{any} character, even `|\|', `|%|', or `|^^M|'.
-It does have one rather technical disadvantage: when \TeX\ is expanding
-a token sequence for a command such as |\edef| or |\write|,
-^^|\edef//expansion of {\tt\\'\it c} in|
-^^|\write//expansion of {\tt\\'\it c} in|
-occurrences of `|\|$c$' within numbers will also be expanded if they can be.
-That's rarely the effect you want.
-
-The following are all valid representations of the decimal number
-$78$:
-\csdisplay
-78 +078 "4E '116 `N `\N
-|
-
-
-You can't use a number in text by itself since a number isn't
-a command.
-However, you can insert the decimal form of a number in text
-by putting a ^|\number| command (\xref\number) in front of it
-or the roman numeral form by putting a ^|\romannumeral| command
-in front of it.
-
-You can also use ^{decimal constant}s, i.e., numbers with a fractional part,
-for specifying dimensions \seeconcept{dimension}.
-A decimal constant has a ^{decimal point}, which
-can be the first character of the constant.
-You can use a comma instead of a period to represent the decimal point.
-A decimal constant can be preceded by a plus or minus sign.
-Thus `|.5in|',
-`|-3.22pt|', and `|+1,5\baselineskip|' are valid dimensions.
-You can't, however, use decimal constants
-in any context \emph{other} than as the ``factor'' part of a dimension,
-i.e., its multiplier.
-
-
-\endconcept
-
-
-\concept{ordinary mode}
-
-An \defterm{ordinary mode} is a \refterm{mode} that \TeX\ is in when it is
-assembling a paragraph into lines or assembling lines
-into a page. See \conceptcit{horizontal mode}, \conceptcit{vertical mode}.
-\endconcept
-
-
-\concept outer
-
-\bix^^{macros//outer}
-An \defterm{outer} macro is one that you can't use in certain contexts
-where \TeX\ is processing tokens at high speed.
-The purpose of making a command outer is to enable \TeX\ to catch
-errors before it's gone too far.
-When you define a macro, you can make it outer with the
-^|\outer| command \ctsref\outer.
-
-You cannot use an outer macro in any of the following contexts:
-\ulist\compact
-\li within an argument to a macro
-\li in the parameter text or replacement text of a definition
-\li in the preamble to an alignment
-\li in the unexecuted part of a conditional test
-\endulist
-\noindent
-An outer context is a context in which you can use an outer macro,
-i.e., it's any context other than the ones just listed.
-
-For example, the following input would be a forbidden use of an
-outer macro:
-\csdisplay
-\leftline{\proclaim Assertion 2. That which is not inner
- is outer.}
-|
-The |\proclaim| macro (\xref{\@proclaim}) is defined in \plainTeX\
-to be outer, but it's being used here in a macro argument to |\leftline|.
-\eix^^{macros//outer}
-
-\endconcept
-
-
-\concept {output routine}
-
-When \TeX\ has accumulated
-at least enough material to fill up a page, it chooses a breakpoint
-and places the material before the breakpoint in |\box255|. It then
-calls the
-current \defterm{output routine}, which processes the material and eventually
-sends it to the \dvifile.
-^^{\dvifile//material from output routine}
-The output routine can perform further
-processing, such as inserting headers, footers, and footnotes.
-\refterm{\PlainTeX:\plainTeX} provides
-a default output routine that inserts a centered page number
-at the bottom of each page.
-By providing a different output routine you can achieve such
-effects as double-column output.
-You can think of the output routine as having a single responsibility:
-disposing of the material in |\box255| one way or another.
-
-The current output routine is defined by the value of ^|\output|
-\ctsref{\output}, which is a list of \refterm{tokens:token}. When \TeX\
-is ready to produce a page, it just expands the token list.
-
-You can make some simple changes to the actions of the \plainTeX\
-output routine without actually modifying it. For example, by assigning
-a list of \refterm{tokens:token} to |\headline| or
-|\footline| \ctsref{\footline} you can have \TeX\ produce a different
-header or footer than it ordinarily would.
-
-The output routine is also
-responsible for collecting any \refterm{insertions:insertion};
-combining those insertions and any
-``decorations'' such as headers and
-footers with the main contents of the page and packaging all
-of this material in a box; and
-eventually sending that box to the \dvifile\
-^^{\dvifile//material from output routine}
-with the ^|\shipout|
-command \ctsref{\shipout}.
-Although this is what an output routine most often does,
-a special-purpose output routine might behave differently.
-\endconcept
-
-
-\conceptindex{output streams}
-\concept {output stream}
-
-\margin{This concept was out of order.}
-See \conceptcit{file}.
-\endconcept
-
-
-\conceptindex{pages}
-\concept page
-
-\TeX\ processes a document by assembling \defterm{pages} one at a time
-and passing them to the output routine.
-As it proceeds through your document, \TeX\ maintains a list of lines
-and other
-items to be placed on the page. (The lines are actually hboxes.)
-This list is called the ``^{main vertical list}''.
-Periodically \TeX\ goes through a process called ``exercising the
-^{page builder}''.
-The items added to the main vertical list between exercises of the
-page builder are called ``^{recent contributions}''.
-
-The page builder first examines the main vertical list to see if it's
-necessary to ship out a page yet, either because the items on the main
-vertical list won't all fit on the page or because of an explicit item,
-such as |\eject| \ctsref\eject, that tells \TeX\ to end the page.
-If it's not necessary to ship out a page, then the page builder is done
-for the time being.
-
-Otherwise the page builder analyzes the main vertical
-list to find what it considers to be the best possible page break.
-It associates penalties with various kinds of unattractive page
-breaks---a break that would leave an
-isolated line at the top or bottom of a page, a break just before a
-math display, and so forth. It then
-chooses the least costly page break,
-where the cost of a break is increased by any penalty associated with that
-break and by the badness of the page that would result
-(see \knuth{page~111} for the cost formula). If it finds several
-equally costly page breaks, it chooses the last one.
-
-{\tighten
-Once the page builder has chosen a page break,
-it places the items on the list that are before that break
-into ^|\box255| and leaves the remaining ones for the next page.
-It then calls the output routine. |\box255| acts as a mailbox, with the
-page builder as the sender and the output routine as the receiver.
-Ordinarily the output routine processes |\box255|, adds
-other items, such as insertions, headers, and footers, to the page, and
-ships out the page to the \dvifile\
-^^{\dvifile//material from output routine}
-with a |\shipout| command.
-(Specialized output routines may behave differently.)
-From \TeX's standpoint, it doesn't matter whether or not the output
-routine ships out a page;
-the only
-responsibility of the output routine is to process |\box255| one way or
-another.
-\par}
-
-{\tighten
-It's important to realize that the best place to break a page isn't
-necessarily the last possible place to break the page.
-Penalties and other considerations may cause the page break
-to come earlier.
-Furthermore, \TeX\ appends items to the main vertical list in batches,
-not just singly.
-The lines of a paragraph are an example of such a batch.
-For these reasons the page builder usually has items left over when it
-breaks a page.
-These leftover items then form the beginning of the main vertical list
-for the next page (possibly in the middle of a batch).
-Because items are carried over from one page to another,
-you can't assume that as \TeX\ is processing
-input, the current page number accurately reflects the page on which the
-corresponding output will appear. See \knuth{pages~110--114} for a full
-description of \TeX's page-breaking rules.
-\par}
-
-\endconcept
-
-
-\conceptindex{page breaks}
-\concept{page break}
-
-A \defterm{page break} is a place in your document where \TeX\ ends a
-page and (except at the end of the document) starts a new one.
-See \conceptcit{page} for the process that \TeX\ goes through in choosing
-a page break.
-
-You can control \TeX's choice of page breaks in several ways:
-\ulist
-\li You can insert a penalty (\xref{vpenalty})
-^^{penalties//in vertical lists}
-between two items in the main vertical list. A positive
-penalty discourages \TeX\ from breaking the page
-there, while a negative penalty---a bonus, in other words---%
-encourages \TeX\ to break the page there. A penalty of $10000$
-or more prevents a
-page break, while a penalty of $-10000$ or less forces a page break.
-You can get the same effects with the |\break| and
-|\nobreak| commands \ctsref{vbreak}.
-
-\li You can adjust the penalties associated with page breaking
-by assigning different values to \TeX's page-breaking
-\refterm{parameters:parameter}.
-
-\li You can enclose a sequence of paragraphs
-or other items in the main vertical list within a \refterm{vbox},
-thus preventing \TeX\ from breaking the page anywhere within the sequence.
-\endulist
-
-Once \TeX\ has chosen a page break, it places the portion of the main vertical
-list that precedes the break into |\box255|.
-It then calls the current \refterm{output routine}
-to process |\box255| and eventually ships its contents to the \dvifile.
-^^{\dvifile//material from output routine}
-The output routine must
-also handle \refterm{insertions}, such as footnotes, that \TeX\ has accumulated
-while processing the page.
-
-It's useful to know the places where \TeX\ can break a page:
-\ulist
-\li At glue, provided that the item preceding the glue is
-a box, a whatsit, a mark, or an insertion.
-When \TeX\ breaks a page at glue, it makes the break at the top
-of the glue space and forgets about the rest of the glue.
-\li At a kern that's immediately followed by glue.
-\li At a penalty, possibly between the lines of a paragraph.
-\endulist
-When \TeX\ breaks a page, it discards any
-sequence of glue, kerns, and penalty items that follows the break point.
-
-
-\endconcept
-
-
-\concept page builder
-
-See \conceptcit{page}.
-\endconcept
-
-
-\concept {page layout}
-
-\bix^^{margins}
-\bix^^{headers}
-\bix^^{footers}
-When you're designing a document, you need to decide on its
-\defterm{page layout}: the page size,
-the margins on all four sides, the headers and footers, if any,
-that appear at the top and bottom of the page,
-and the amount of space between the body of the text and the headers or
-footers. \TeX\ has defaults for all of these. It assumes an $8 \frac1/2$-%
-by-$11$-inch page with margins of approximately one inch
-on all four sides, no header,
-and a footer consisting of a centered page number.
-
-The margins are determined jointly by the four parameters
-^|\hoffset|, ^|\voffset|, ^|\hsize|, and ^|\vsize| (see
-``margins'', \xrefpg{margins},
-for advice on how to adjust them).
-\eix^^{margins}
-The header normally consists of a single line that appears at the top of each
-page, within the top margin area. You can set it by assigning
-a \refterm{token} list to the ^|\headline| parameter (\xref{\headline}).
-Similarly,
-the footer normally consists of a single line that appears at the bottom
-of each
-page, within the bottom margin area. You can set it by assigning
-a \refterm{token} list to the ^|\footline| parameter (\xref{\footline}).
-For example, the input:
-\csdisplay
-\headline = {Baby's First Document\dotfill Page\folio}
-\footline = {\hfil}
-|
-produces a header line like this on each page:
-\vdisplay{
-\dimen0 = \hsize
-\advance \dimen0 by -\parindent
-\hbox to \dimen0{Baby's First Document\dotfill Page 19}}
-\noindent
-and no footer line.
-
-You can use marks to place the current topic of a section
-of text into the header or footer.
-^^{marks//with headers or footers}
-See \conceptcit{mark} for an explanation of how to do this.
-\eix^^{headers}
-\eix^^{footers}
-\endconcept
-
-\conceptindex{paragraphs}
-\concept paragraph
-
-Intuitively, a \defterm{paragraph} is a sequence of input lines that's
-ended by a blank line, by a ^|\par| command \ctsref{\@par},
-^^|\par//ending a paragraph with|
-or by an intrinsically vertical command, such as |\vskip|.
-More precisely, a paragraph is a sequence of commands that \TeX\ processes
-in ordinary horizontal mode.
-When \TeX\ has collected an entire paragraph, it forms it into a sequence of
-lines by choosing line breaks \seeconcept{line break}.
-The result is a list of hboxes with glue, interline penalties,
-and interspersed vertical material between them.
-Each hbox is a single line, and the glue is the interline glue.
-
-\eject
-\TeX\ starts a paragraph when it's in a vertical mode
-and encounters an inherently horizontal command.
-In particular, it's in a vertical mode when it's just finished a paragraph,
-so the horizontal material on the line after a blank input line starts the
-next paragraph in a natural way.
-There are many kinds of inherently horizontal commands, but the most common
-kind is an ordinary character, e.g., a letter.
-
-\looseness = -1
-The ^|\indent| and ^|\noindent| commands
-(\pp\xrefn{\indent},~\xrefn{\noindent})
-are also inherently horizontal commands that tell
-\TeX\ either to indent or not to indent the beginning of a paragraph.
-Any other horizontal command in vertical
-mode causes \TeX\ to do an implicit |\indent|.
-Once \TeX\ has started a paragraph, it's in ordinary horizontal mode.
-It first obeys any commands that are in ^|\everypar|.
-It then proceeds to collect items for the paragraph until it gets a signal
-that the paragraph is ended.
-At the end of the paragraph it
-resets the paragraph shape parameters ^|\parshape|, |\hang!-indent|,
-^^|\hangindent|
-and ^|\looseness|.
-
-\TeX\ ordinarily translates a blank line into |\par|.
-It also
-inserts a |\par| into the input whenever it's in horizontal mode and
-sees an intrinsically vertical command.
-So ultimately the thing that ends a paragraph is always a |\par| command.
-
-When \TeX\ receives a |\par| command, it first
-fills out\footnote{%
-More precisely, it executes the commands:
-\csdisplay
-\unskip \penalty10000 \hskip\parfillskip
-|
-thus appending items for these commands
-to the end of the current horizontal list.}
-the paragraph it's working on.
-It then breaks the paragraph into lines,
-adds the resulting list of items to the enclosing vertical list,
-and exercises the page builder
-(in the case where the enclosing vertical list is the main vertical list).
-If the paragraph was ended by an intrinsically vertical command,
-\TeX\ then executes that command.
-
-\endconcept
-
-\conceptindex{parameters}
-\concept parameter
-
-The term \defterm{parameter} has two different meanings---it can refer
-either to a \TeX\ parameter or to a macro parameter.
-
-A \TeX\ parameter is a \refterm{control sequence} that names
-a value.
-The value of a parameter can be a \refterm{number}, a \refterm{dimension},
-an amount of \refterm{glue} or muglue, or a \refterm{token list}.
-For example, the ^|\parindent| parameter
-specifies the distance that \TeX\ skips at the start of an
-indented paragraph.
-
-You can use the control sequence for a parameter either to retrieve the value
-of the parameter or to set that value. \TeX\ interprets the control sequence
-as a request for a value if it appears in a context where a value is expected,
-and as an \refterm{assignment} otherwise.
-^^{assignments}
-For example:
-\csdisplay
-\hskip\parindent
-|
-produces horizontal \refterm{glue} whose natural size is given by |\parindent|,
-while:
-\csdisplay
-\parindent = 2pc % (or \parindent 2pc)
-|
-sets |\parindent| to a length of two picas. The assignment:
-\csdisplay
-\parindent = 1.5\parindent
-|
-uses |\parindent| in both ways. Its effect is to multiply the value of
-|\parindent| by $1.5$.
-
-You can think of a parameter as a built-in \refterm{register}.
-^^{registers//parameters as}
-You'll find a complete list of the \TeX\ parameters on \knuth{pages~272--275}.
-
-A \refterm{macro} parameter is a placeholder for text that is to be
-plugged into the definition of a macro. See \conceptcit{macro}
-for more information about this kind of parameter.
-
-\endconcept
-
-
-\conceptindex{penalties}
-\concept penalty
-
-A \defterm{penalty} is an item that you can include in a
-horizontal, vertical, or math list
-in order to discourage \TeX\ from breaking the list
-at that point or encourage \TeX\ to break the list there.
-^^{horizontal lists//penalties in}
-^^{vertical lists//penalties in}
-A positive penalty indicates a bad break point, while
-a negative penalty indicates a good break point.
-Breaking an
-ordinary horizontal
-list produces a \refterm{line break}, while breaking an
-ordinary vertical list produces
-a \refterm{page break}.
-(A penalty has no effect in restricted horizontal or
-internal vertical \refterm{mode}.)
-
-You can use the
-|\penalty| command (\pp\xrefn{hpenalty},~\xrefn{vpenalty})
-to insert a penalty explicitly.
-A penalty of $10000$ or more prevents a break, while a penalty of
-$-10000$ or less forces a break.
-\endconcept
-
-
-\concept{\plainTeX}
-
-\defterm{\PlainTeX} is the form of \TeX\ described in this
-book and in \texbook. \PlainTeX\ is part of the standard \TeX\
-system, so documents that use only the facilities of \plainTeX\ can
-usually be transferred from one installation to another without
-difficulty.
-
-\PlainTeX\ consists of the \refterm{primitive} commands together with a
-large collection of macros and
-other definitions. These additional definitions are given in
-\knuth{Appendix~B}. They should also be in the file |plain.tex|
-somewhere in your computer system.
-\endconcept
-
-
-\concept{primitive}
-
-A \defterm{primitive} \refterm{command} is one whose definition is built
-into the \TeX\ computer program. In contrast, a command that is not
-primitive is defined by a \refterm{macro} or some other form of
-definition written in \TeX\ itself. The commands in \refterm{\plainTeX}
-consist of the primitive commands together with
-other commands defined in terms of the
-primitive ones.
-\endconcept
-
-
-\concept {reference point}
-
-^^{baselines}
-^^{boxes//reference point of}
-The \defterm{reference point} of a \refterm{box} is the point where the
-left edge of the box intersects its \refterm{baseline}. When \TeX\ is
-processing a \refterm{horizontal:horizontal list} or \refterm{vertical
-list}, it uses the reference points of the boxes in the list to line up
-those boxes horizontally or vertically \seeconcept{box}.
-\endconcept
-
-\conceptindex{registers}
-\concept register
-
-A \defterm{register} is a named location for storing a value.
-It is much like a variable in a programming language.
-\TeX\ has five kinds of registers, as shown in the following table:
-
-\vdisplay{\tabskip 10pt\halign{\tt #\hfil &#\hfil\cr
-{\it Register type}&{\it Contents}\cr
-box&a \refterm{box} \idxref{box registers}\cr
-count&a \refterm{number} \idxref{count registers}\cr
-dimen&a \refterm{dimension} \idxref{dimension registers}\cr
-muskip&\refterm{muglue} \idxref{muglue registers}\cr
-skip&\refterm{glue} \idxref{glue registers}\cr
-toks&a \refterm{token} list\idxref{token registers}\cr}}
-
-The registers of each type are numbered from $0$ to $255$.
-You can access register $n$ of category $c$ by using the form `|\|$cn$',
-e.g., |\muskip192|.
-You can use a register
-anywhere that information of the appropriate type is called for. For
-instance, you can use |\count12|
-in any context calling for a number or |\skip0|
-in any context calling for glue.
-
-You put information into a register by \refterm{assigning:assignment}
-something to it:
-
-\csdisplay
-\setbox3 = \hbox{lagomorphs are not mesomorphs}
-\count255 = -1
-|
-The first assignment constructs an hbox and assigns it to
-box register~$3$.
-You can
-subsequently use `|\box3|' wherever a box is called for, and you will
-get just that hbox.\footnote{But note carefully: using a box register
-also empties it so that its contents become void. The other kinds of
-registers don't behave that way. You can use the |\copy| command
-\ctsref{\copy} to retrieve the contents of a box register without
-emptying it.}
-The second assignment assigns $-1$ to count register~$255$.
-
-A register of a given type, e.g., a glue register, behaves just like
-a parameter of that type.
-^^{parameters//like registers}
-You retrieve its value or assign to it
-just as you would with a \refterm{parameter}.
-Some \TeX\ parameters, e.g., |\pageno|,
-are implemented as registers, in fact.
-
-\PlainTeX\
-uses many registers for its own purposes, so you should not just
-pick an arbitrary
-register number when you need a register. Instead you should ask
-\TeX\ to reserve a register by using one of the commands
-^|\newbox|, ^|\newcount|, ^|\newdimen|, ^|\newmuskip|, ^|\newskip|,
-or ^|\newtoks|
-\ctsref{\@newbox}. These commands are outer, so you can't
-use them in a macro definition.
-If you could,
-you'd use up a register every time the macro was called and probably run out
-of registers before long.
-
-Nonetheless you can with some caution use any register temporarily
-within a \refterm{group}, even one that \TeX\ is using for something
-else.
-After \TeX\ finishes executing the commands in a group,
-it restores the contents of every register
-to what they were before it started executing the group.
-When you use an explicitly numbered register inside a group,
-you must be sure that the register isn't modified by any
-\refterm{macro}
-that you might call within the group.
-Be especially careful
-about using arbitrary registers in a group that calls macros
-that you didn't write yourself.
-
-{\tighten
-\TeX\ reserves certain registers for special purposes: |\count0| through
-|\count9| for page numbering information and
-^^{page numbering}
-^|\box255| for the contents
-of a page just before it is offered to the \refterm{output routine}.
-Registers |\dimen0|--|\dimen9|, |\skip0|--|\skip9|,
-|\muskip0|--|\mu!-skip9|, |\box0|--|\box9|,
-and the |255| registers other than |\box255|
-are generally available as ``scratch'' registers.
-Thus \plainTeX\ provides only one scratch register, |\count255|, for
-counts.
-See \knuth{pages~122 and 346} for conventions to follow
-in choosing register numbers.
-\par}
-
-You can examine the contents of registers during a \TeX\ run with the
-^|\showthe| command \ctsref\showthe, e.g., with `|\showthe\dimen0|'.
-\endconcept
-
-
-\concept{restricted mode}
-
-A \defterm{restricted mode} is a \refterm{mode} that \TeX\ is in when it is
-assembling an \refterm{hbox} or a \refterm{vbox}.
-We follow \texbook\ in using the term ``internal vertical mode''
-for what you might expect to be ``restricted vertical mode''.
-See \conceptcit{horizontal
-mode} and \conceptcit{vertical mode}.\endconcept
-
-
-\conceptindex{rules}
-\concept rule
-
-A \defterm{rule} is a solid black rectangle.
-A rule, like a \refterm{box},
-has \refterm{width}, \refterm{height}, and \refterm{depth}.
-The vertical dimension of the rectangle
-is the sum of its height and its depth.
-An ordinary horizontal or vertical straight line is a special case of a rule.
-
-\bix^^{horizontal rules}
-\bix^^{vertical rules}
-\bix^^|\hrule|
-\bix^^|\vrule|
-A rule can be either horizontal or vertical. The distinction between a
-horizontal rule and a vertical one has to do with how you produce the
-rule, since a vertical rule can be short and fat (and therefore look
-like a horizontal line), while a horizontal rule can be tall and skinny
-(and therefore look like a vertical line). \TeX's notion of a rule is
-more general than that of typographers, who think of a rule as a line
-and would not usually call a square black box a rule.
-
-You can produce a horizontal rule using the
-|\hrule| command and a vertical rule using
-the |\vrule| command \ctsref{\vrule}.
-For example, the control sequence |\hrule| by itself
-produces a thin rule that runs across the page, like this:
-
-{\offinterlineskip
-\nobreak\medskip
-\hrule
-\medskip}
-
-The command `|\vrule height .25in|' produces a vertical rule
-that runs $.25$~inches down the page like this:
-\nobreak\vskip \abovedisplayskip
-\leftline{\vrule height .25in}
-\vskip \belowdisplayskip
-
-There are two differences between horizontal rules and vertical rules:
-\olist
-\li For a horizontal rule, \TeX\ defaults the width to the width of the
-smallest \refterm{box} or \refterm{alignment} that encloses it. For a
-vertical rule, \TeX\ defaults the height and depth in the same way. (The
-default is the size that you get if you don't give a size explicitly for that
-dimension.)
-
-^^{horizontal lists//rule in}
-^^{vertical lists//rule in}
-\li
-{\tighten
-A horizontal rule is an inherently vertical item that cannot participate in
-a \refterm{horizontal list},
-while a vertical
-rule is an inherently horizontal item
-that cannot participate in a \refterm{vertical list}. This behavior
-may seem strange at first but there is good reason for it:
-a horizontal rule ordinarily runs visually from left
-to right and thus separates items in a vertical list,
-while a vertical rule ordinarily runs visually from top to bottom
-and thus separates items in a horizontal list.
-%(Look at the rules that are shown above.)
-\par}
-\endolist
-
-{\tighten
-If you construct a rule with three explicit dimensions, it will look the
-same whether you make it a horizontal rule or a vertical rule.
-For example, the command `|\vrule height1pt depth2pt width3in|' produces this
-horizontal-looking rule:
-\par}
-
-{\offinterlineskip
-\nobreak\medskip\nobreak\vskip3pt
-\leftline{\vrule height1pt depth2pt width3in}
-\medskip}
-
-You'll find a precise statement of \TeX's treatment of rules on
-\knuth{pages~221--222}.
-\eix^^{horizontal rules}
-\eix^^{vertical rules}
-\eix^^|\hrule|
-\eix^^|\vrule|
-\endconcept
-
-
-\concept {script size}
-
-\defterm{Script size} describes one of the three related
-\refterm{fonts:font} in a family.
-^^{family//script size in}
-Script size is smaller than \refterm{text size} but larger than
-\refterm{scriptscript size}. \TeX\ uses script size for subscripts and
-superscripts, as well as for the numerators and denominators of
-fractions in text.
-\endconcept
-
-
-\concept {scriptscript size}
-
-\defterm{Scriptscript size} describes the smallest of the three related
-\refterm{fonts:font} in a family.
-^^{family//scriptscript size in}
-\TeX\ uses \refterm{scriptscript size} for second-order subscripts,
-superscripts, numerators, and denominators. For example, \TeX\ will use
-scriptscript size for a subscript on a subscript or for a superscript on
-a scriptsize numerator.
-\endconcept
-
-\concept shrink
-
-See \conceptcit{glue}.
-\endconcept
-
-\concept space
-
-You can cause \TeX\ to put \defterm{space} between two items in
-several~ways:
-
-\olist
-^^{end of line}
-\li You can write something that \TeX\ treats as a space
-\refterm{token}: one or more blank characters, the end of a line (the
-end-of-line character acts like a space), or any \refterm{command} that
-expands into a space token. \TeX\ generally treats several consecutive
-spaces as equivalent to a single one, including the case where the
-spaces include a single end-of-line. (An empty line
-indicates the end of a paragraph; it
-causes \TeX\ to generate a |\par| token.)
-^^|\par//from empty line|
-\TeX\ adjusts the size of
-this kind of space to suit the length required by the context.
-
-^^{glue//creating space with}
-\li You can write a skip command that produces the glue
-you specify in the command. The glue can
-\refterm{stretch} or \refterm{shrink},
-producing more or less space. You can have vertical glue as
-well as horizontal glue. Glue disappears whenever it is next to a
-line or page break.
-
-^^{kerns//creating space with}
-\li You can write a \refterm{kern}. A kern produces a fixed amount of
-space that does not stretch or shrink and does not disappear at a line
-or page break (unless it is immediately followed by glue). The most
-common use of a kern is to establish a fixed spatial relationship
-between two adjacent \refterm{boxes}.
-\endolist
-
-Glue and kerns can have negative values. Negative glue or a negative kern
-between adjacent items brings those items closer together.
-\endconcept
-
-
-\concept stretch
-
-See \conceptcit{glue}.
-\endconcept
-
-
-\conceptindex{struts}
-\concept strut
-
-{\tighten
-A \defterm{strut} is an invisible \refterm{box}
-^^{boxes//invisible}
-whose width is zero and whose height and depth are slightly more than
-those of a ``normal''
-line of type in the context. Struts are useful for obtaining
-uniform vertical spacing when \TeX's
-usual line spacing is disabled, e.g., within a math formula
-or within a horizontal alignment where you've specified ^|\offinterlineskip|.
-Because a strut is taller and deeper than everything else on its line,
-it determines the height and depth of the line.
-You can produce a strut with
-the ^|\strut| command \ctsref{\strut} or the ^|\mathstrut| command
-\ctsref\mathstrut.
-You can use |\strut| anywhere, but you can only use |\mathstrut| when
-\TeX\ is in math \refterm{mode}. A strut in \plainTeX\ has height 8.5\pt\ and
-depth 3.5\pt, while a math strut has the height and depth of a left
-parenthesis in the current \refterm{style} (so it's smaller for
-subscripts and superscripts).
-\par}
-
-Here's an example showing how you might use a 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}
-|
-This input yields:
-\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
-Without the struts the \refterm{vboxes:vbox} would be too close
-together. Similarly, in the formula:
-\csdisplay
-$\overline{x\mathstrut} \otimes \overline{t\mathstrut}$
-|
-the math struts cause both bars to be set at the same height even
-though the `$x$' and the `$t$' have different heights:
-\display{
-$\overline{x\mathstrut} \otimes \overline{t\mathstrut}$
-}
-\vskip -\belowdisplayskip
-\endconcept
-\nobreak
-
-\conceptindex{styles}
-\concept {style}
-
-Material in a math formula is set in one of eight \defterm{styles},
-depending on the context. Knowing about styles can be useful if you want to
-set part of a formula in a different size of type than the one
-that \TeX\ has chosen according to its usual rules.
-
-\eject
-The four primary styles are:
-
-\vdisplay{%
-\halign{\refterm{# style}\hfil&\hskip .25in(for #)\hfil\cr
-display&formulas displayed on a line by themselves\cr
-text&formulas embedded in ordinary text\cr
-script&superscripts and subscripts\cr
-scriptscript&superscripts on superscripts, etc.\cr
-}}
-
-The other four styles are so-called ^{cramped variants}. In these
-variants superscripts aren't raised as high as usual, and so the formula
-needs less vertical space than it otherwise would. See
-\knuth{pages~140--141} for the details of how \TeX\ selects the style.
-
-\TeX\ chooses a size of type according to the style:
-
-\ulist\compact
-^^{display style}^^{text style}
-\li Display style and text style are set in \refterm{text size}, like
-`$\rm this$'.
-
-^^{script style}
-\li Script style is set in \refterm{script size}, like `$\scriptstyle
-\rm this$'.
-
-^^{scriptscript style}
-\li Scriptscript style is set in \refterm{scriptscript size}, like
-`$\scriptscriptstyle \rm this$'.
-\endulist
-
-See \conceptcit{family} for more information about these three sizes.
-
-\TeX\ doesn't have a ``scriptscriptscript'' style because such a style
-would usually have to be set in a size of type too small to read. \TeX\
-therefore sets third-order subscripts, superscripts, etc., using the
-scriptscript style.
-
-Once in a while you may find that \TeX\ has set a formula in a different style
-than the one you'd prefer. You can override \TeX's choice with the
-^|\textstyle|, ^|\displaystyle|, ^|\scriptstyle|, and ^|\scriptscriptstyle|
-commands \ctsref{\textstyle}.
-\endconcept
-
-\concept {\TeXMeX}
-
-(a)~A variant of \TeX\ used for mathematical typesetting in
-Central American countries.
-(b)~A spicy cuisine favored by the \TeX\-ni\-cians of ^{El Paso}.
-\endconcept
-
-
-\concept {text math}
-
-We use the term \defterm{text math} to refer to a math formula set within a
-line of text, i.e., enclosed in |$|'s.
-\ttidxref{$}
-\TeX\ sets text math in text math \refterm{mode}.
-\endconcept
-
-
-\concept {text size}
-
-\defterm{Text size} describes the largest of the three related
-\refterm{fonts:font} in a \refterm{family}.
-^^{family//text size in}
-\TeX\ uses text size for ordinary symbols appearing in
-\refterm{math mode}.
-\endconcept
-
-
-\conceptindex{tokens}
-\concept token
-
-A \defterm{token} is either a single character tagged with a
-\refterm{category code}, or a \refterm{control sequence}. \TeX\ reads
-characters from a file using its eyes \seeconcept{\anatomy}
-and groups the characters into tokens using its mouth. When a token
-reaches \TeX's stomach, \TeX\ interprets it as a \refterm{command}
-unless it's part of an argument of a preceding command.
-\endconcept
-
-
-\conceptindex{units of measure}
-\concept {unit of measure}
-
-See \conceptcit{dimension}.
-\endconcept
-
-\conceptindex{vboxes}
-\concept vbox
-
-^^{vertical lists//vboxes formed from}
-A \defterm{vbox} (vertical box) is a \refterm{box} that \TeX\ constructs
-by placing the items of a \refterm{vertical list} one after another, top
-to bottom. A vbox, taken as a unit, is neither inherently horizontal
-nor inherently vertical, i.e., it can appear as an item of either a
-vertical list or a \refterm{horizontal list}. You can construct a vbox
-with the ^|\vbox| or the ^|\vtop| command
-\ctsref{\vtop}. The difference is that for |\vbox|,
-the \refterm{reference point}
-of the constructed vbox is derived from that of the last (and
-usually bottommost) constituent list item, but for |\vtop|, it's that of the
-first (and usually topmost) constituent list item.
-\endconcept
-
-
-\conceptindex{vertical lists}
-\concept{vertical list}
-
-A \defterm{vertical list} is a list of items
-that \TeX\ has produced while it is
-in one of its vertical modes, i.e.,
-assembling either a
-\refterm{vbox} or a page. See ``vertical mode'' below.
-
-\endconcept
-
-
-\concept{vertical mode}
-
-^^{vboxes//vertical mode for} When \TeX\ is assembling either a
-\refterm{vbox} or the main vertical list from which pages are derived,
-it is in one of two \defterm{vertical modes}: ^{ordinary
-vertical mode} for assembling the main vertical list, and ^{internal
-vertical mode} for assembling vboxes. Whenever \TeX\ is in a vertical mode
-its stomach \seeconcept{\anatomy} is constructing a \refterm{vertical
-list} of items (boxes, glue, penalties, etc.).
-\TeX\ typesets the items in the list
-one below another, top to bottom.
-
-A vertical list can't contain any items produced by
-inherently horizontal commands, e.g.,
-^^{vertical lists//can't contain horizontal commands}
-|\hskip| or an ordinary (nonspace) character.
-\footnote{\TeX\ \emph{ignores} any space characters
-that it encounters while it's in a vertical mode.}
-
-\ulist
-\li If \TeX\ is assembling a vertical list in ordinary vertical mode and
-encounters an inherently horizontal command, it switches to ordinary
-\refterm{horizontal mode}.
-\li If \TeX\ is assembling a vertical list in internal vertical mode and
-encounters an inherently horizontal command, it complains.
-\endulist
-
-Two commands that you might at first think are inherently vertical are
-in fact inherently horizontal: |\valign| \ctsref{\valign} and |\vrule|
-\ctsref{\vrule}.
-^^|\valign//inherently horizontal|
-^^|\vrule//inherently horizontal|
-See \knuth{page~283} for a list of the
-inherently horizontal commands.
-
-It's particularly important to be aware that \TeX\ considers an ordinary
-character other than a space character to be inherently horizontal. If
-\TeX\ suddenly starts a new paragraph when you weren't expecting it,
-a likely cause is a
-character that \TeX\ encountered while in vertical mode.
-You can convince \TeX\
-not to treat that character as inherently horizontal by enclosing it in
-an \refterm{hbox} since the |\hbox| command, despite its name, is
-neither inherently horizontal nor inherently vertical.
-\endconcept
-
-
-\concept whatsit
-
-A \defterm{whatsit} is an item of information that
-tells \TeX\ to carry out some action
-that doesn't fit into its ordinary scheme of things.
-A whatsit can appear in a horizontal or vertical list, just like a box
-or a glue item.
-\TeX\ typesets a whatsit
-as a \refterm{box} having zero width, height, and depth---in other
-words, a box that contains nothing and occupies no space.
-
-Three sorts of whatsits are built into \TeX:
-\ulist
-\li The |\openout|, |\closeout|, and |\write| commands
-(\p\xrefn{\openout})
-% (2nd) removed \xref to \write, since it's on the same page
-produce a whatsit for operating on an output file.
-^^|\openout//whatsit produced by|
-^^|\write//whatsit produced by|
-^^|\closeout//whatsit produced by|
-\TeX\ postpones the operation until it next ships out a page
-to the {\dvifile}
-^^{\dvifile//whatsits in}
-(unless the operation is preceded by ^|\immediate|).
-\TeX\ uses a whatsit for these commands because they don't have anything
-to do with what it's typesetting when it encounters them.
-\li The ^|\special| command \ctsref{\special} tells \TeX\ to
-insert certain text directly into the \dvifile.
-As with the |\write| command, \TeX\ postpones the insertion
-until it next ships out a page to the {\dvifile}.
-^^{\dvifile//material inserted by \b\tt\\special\e}
-A typical use of |\special| would be to
-name a graphics file that the device driver should incorporate into
-your final output.
-\li When you change languages with the ^|\language| or ^|\setlanguage|
-commands \ctsref{\language},
-\TeX\ inserts a whatsit that instructs it to use a
-certain set of hyphenation rules later on when it's breaking a paragraph
-into lines.
-\endulist
-\noindent
-A particular implementation of \TeX\ may provide additional whatsits.
-\endconcept
-
-
-\concept width
-
-^^{boxes//width of}
-The \defterm{width} of a \refterm{box} is the amount of horizontal space
-that it occupies, i.e., the distance from its left edge to its
-right edge. The typeset material in a box can be wider than the box itself.
-\endconcept
-
-\endconcepts
-
-\endchapter
-\byebye
diff --git a/Master/texmf-doc/doc/english/impatient/config.tex b/Master/texmf-doc/doc/english/impatient/config.tex
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/Master/texmf-doc/doc/english/impatient/config.tex
+++ /dev/null
diff --git a/Master/texmf-doc/doc/english/impatient/copyrght.tex b/Master/texmf-doc/doc/english/impatient/copyrght.tex
deleted file mode 100644
index 2fe8addc6c9..00000000000
--- a/Master/texmf-doc/doc/english/impatient/copyrght.tex
+++ /dev/null
@@ -1,48 +0,0 @@
-% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
-% See file fdl.tex for copying conditions.
-
-\input macros
-
-
-% Copyright page.
-%
-\noheadlinetrue
-\sinkage
-
-\noindent `\TeX' is a trademark of the American Mathematical Society.
-
-\noindent `\Metafont' is a trademark of Addison-Wesley Publishing Company.
-
-\bigskip
-\noindent This book, \thisbook, contains both tutorial and reference
-information on all features of both plain and primitive \TeX.
-
-\bigskip
-
-\noindent Copyright \copyright{} 2003 Paul~W. Abrahams,
-Kathryn~A. Hargreaves, and Karl Berry.
-
-\bigskip
-\noindent Permission is granted to copy, distribute and/or modify this
-document under the terms of the GNU Free Documentation License, Version
-1.1 or any later version published by the Free Software Foundation; with
-no Invariant Sections, with no Front-Cover texts, and with no Back-Cover
-texts. A copy of the license is included in the chapter entitled ``GNU
-Free Documentation License''.
-
-\medskip\noindent
-Under the terms of the GFDL, anyone is allowed to modify and
-redistribute this material, and it is our hope that others will find it
-useful to do so. That includes translations, either to other natural
-languages, or to other computer source or output formats.
-
-\medskip\noindent
-In our interpretation of the GFDL, you may also extract text from this
-book for use in a new document, as long as the new document is also
-under the GFDL, and as long as proper credit is given (as provided for
-in the license).
-
-
-\pagebreak
-\byebye
diff --git a/Master/texmf-doc/doc/english/impatient/eplain.tex b/Master/texmf-doc/doc/english/impatient/eplain.tex
deleted file mode 100644
index 19ad8cf59f6..00000000000
--- a/Master/texmf-doc/doc/english/impatient/eplain.tex
+++ /dev/null
@@ -1,1196 +0,0 @@
-%% @texfile{
-%% author = "Karl Berry et al.",
-%% version = "1.9a",
-%% date = "28jul03",
-%% filename = "eplain.tex",
-%% email = "karl@cs.umb.edu",
-%% codetable = "ISO/ASCII",
-%% supported = "yes",
-%% docstring = "This file defines macros that expand on plain TeX, and
-%% is used in the production of the book TeX for the Impatient. It was
-%% originally version 1.9 from 11mar91, and differs only in this header
-%% material. Sadly, newer versions of eplain have more
-%% incompatibilities with the features we used to produce TFTI. Of
-%% course new documents should use the latest eplain, available from
-%% http://tug.org/eplain and from http://www.ctan.org/macros/eplain.
-%% ",
-%% }
-\def\makeactive#1{\catcode`#1 = \active \ignorespaces}%
-\chardef\letter = 11
-\chardef\other = 12
-\catcode`@ = \letter
-\def\uncatcodespecials{%
- \def\do##1{\catcode`##1 = \other}%
- \dospecials
-}%
-{%
- \makeactive\^^M
- \long\gdef\letreturn#1{\let^^M = #1}%
-}%
-\def\gobble#1{}%
-\def\gobbletwo#1#2{}%
-\def\gobblethree#1#2#3{}%
-\def\@gobblemeaning#1:->{}%
-\def\sanitize{\expandafter\@gobblemeaning\meaning}%
-\def\futurenonspacelet#1{\def\cs{#1}%
- \afterassignment\@stepone\let\nexttoken=
-}%
-\def\\{\let\@stoken= }%
-\\ % now \@stoken is a space token (\\ is a control symbol, so that
-\def\@stepone{\expandafter\futurelet\cs\@steptwo}%
-\def\@steptwo{\expandafter\ifx\cs\@stoken\let\@@next=\@stepthree
- \else\let\@@next=\nexttoken\fi \@@next}%
-\def\@stepthree{\afterassignment\@stepone\let\@@next= }%
-\let\@plainwlog = \wlog
-\let\wlog = \gobble
-\newlinechar = `^^J
-\def\loggingall{\tracingcommands\tw@\tracingstats\tw@
- \tracingpages\@ne\tracingoutput\@ne\tracinglostchars\@ne
- \tracingmacros\tw@\tracingparagraphs\@ne\tracingrestores\@ne
- \showboxbreadth\maxdimen\showboxdepth\maxdimen
-}%
-\def\tracingboxes{\showboxbreadth = \maxdimen \showboxdepth = \maxdimen}%
-\newdimen\hruledefaultheight \hruledefaultheight = 0.4pt
-\newdimen\hruledefaultdepth \hruledefaultdepth = 0.0pt
-\newdimen\vruledefaultwidth \vruledefaultwidth = 0.4pt
-\def\ehrule{\hrule height\hruledefaultheight depth\hruledefaultdepth}%
-\def\evrule{\vrule width\vruledefaultwidth}%
-\begingroup
- \catcode`\{ = 12 \catcode`\} = 12
- \catcode`\[ = 1 \catcode`\] = 2
- \gdef\lbracechar[{]%
- \gdef\rbracechar[}]%
- \catcode`\% = \other
- \gdef\percentchar[%]\endgroup
-\def^^L{\par}%
-\let\@ifempty = \iffalse
-\ifx\@undefinedmessage\@undefined
- \def\@undefinedmessage
- {No .aux file; I won't warn you about undefined labels.}%
-\fi
-%% @texfile{
-%% author = "Karl Berry and Oren Patashnik",
-%% version = "0.99h",
-%% date = "24 Apr 1991",
-%% filename = "btxmac.tex",
-%% address = "Please use electronic mail",
-%% checksum = "812 4053 30557",
-%% email = "opbibtex@neon.stanford.edu",
-%% codetable = "ISO/ASCII",
-%% supported = "yes",
-%% docstring = "Defines macros that make BibTeX work with plain TeX",
-%% }
-\edef\cite{\the\catcode`@}%
-\catcode`@ = 11
-\let\@oldatcatcode = \cite
-\chardef\@letter = 11
-\chardef\@other = 12
-\def\@innerdef#1#2{\edef#1{\expandafter\noexpand\csname #2\endcsname}}%
-\@innerdef\@innernewcount{newcount}%
-\@innerdef\@innernewdimen{newdimen}%
-\@innerdef\@innernewif{newif}%
-\@innerdef\@innernewwrite{newwrite}%
-\def\@gobble#1{}%
-\ifx\inputlineno\@undefined
- \let\@linenumber = \empty % Pre-3.0.
-\else
- \def\@linenumber{\the\inputlineno:\space}%
-\fi
-\def\@getoptionalarg#1{\let\temp = #1\futurelet\next\@bracketcheck}%
-\def\@bracketcheck{\begingroup
- \if [\next
- \aftergroup\@@getoptionalarg
- \else
- \global\let\@optionalarg = \empty
- \aftergroup\temp
- \fi
-\endgroup}%
-\def\@@getoptionalarg[#1]{%
- \def\@optionalarg{#1}%
- \temp
-}%
-\def\@tokstostring#1{\@ttsA#1 \@ttsmarkA}%
-\def\@ttsA#1 #2\@ttsmarkA{%
- \@ifempty{#1}\else
- \@ttsB #1\@ttsmarkB
- \@ifempty{#2}\else
- \@spacesub\@ttsA#2\@ttsmarkA
- \fi
- \fi
-}%
-\def\@ttsB#1{%
- \ifx #1\@ttsmarkB\else
- \string #1%
- \expandafter\@ttsB
- \fi
-}%
-\def\@ttsmarkB{\@ttsmarkB}% should never be expanded
-\def\@spacesub{+}%
-\def\@ifempty#1{\@@ifempty #1\@emptymarkA\@emptymarkB}%
-\def\@@ifempty#1#2\@emptymarkB{\ifx #1\@emptymarkA}%
-\def\@emptymarkA{\@emptymarkA}% Again, so \ifx won't complain.
-\def\@nnil{\@nil}%
-\def\@fornoop#1\@@#2#3{}%
-\def\@for#1:=#2\do#3{%
- \edef\@fortmp{#2}%
- \ifx\@fortmp\empty \else
- \expandafter\@forloop#2,\@nil,\@nil\@@#1{#3}%
- \fi
-}%
-\def\@forloop#1,#2,#3\@@#4#5{\def#4{#1}\ifx #4\@nnil \else
- #5\def#4{#2}\ifx #4\@nnil \else#5\@iforloop #3\@@#4{#5}\fi\fi
-}%
-\def\@iforloop#1,#2\@@#3#4{\def#3{#1}\ifx #3\@nnil
- \let\@nextwhile=\@fornoop \else
- #4\relax\let\@nextwhile=\@iforloop\fi\@nextwhile#2\@@#3{#4}%
-}%
-\@innernewif\if@fileexists
-\def\@testfileexistence{\@getoptionalarg\@finishtestfileexistence}%
-\def\@finishtestfileexistence#1{%
- \begingroup
- \def\extension{#1}%
- \immediate\openin0 =
- \ifx\@optionalarg\empty\jobname\else\@optionalarg\fi
- \ifx\extension\empty \else .#1\fi
- \space
- \ifeof 0
- \global\@fileexistsfalse
- \else
- \global\@fileexiststrue
- \fi
- \immediate\closein0
- \endgroup
-}%
-\toks0 = {%
-\def\bibliographystyle#1{%
- \@readauxfile
- \@writeaux{\string\bibstyle{#1}}%
-}%
-\let\bibstyle = \@gobble
-\def\bibliography#1{%
- \@readauxfile
- \@writeaux{\string\bibdata{#1}}%
- \@testfileexistence{bbl}%
- \if@fileexists
- \@readbblfile
- \fi
-}%
-\let\bibdata = \@gobble
-\def\nocite#1{%
- \@readauxfile
- \@writeaux{\string\citation{#1}}%
-}%
-\@innernewif\if@notfirstcitation
-\def\cite{\begingroup\catcode`_ = \@letter \@getoptionalarg\@cite}%
-\def\@cite#1{%
- \nocite{#1}%
- \printcitestart
- \@notfirstcitationfalse
- \@for \@citation :=#1\do
- {%
- \expandafter\@onecitation\@citation\@@
- }%
- \ifx\empty\@optionalarg\else
- \printcitenote{\@optionalarg}%
- \fi
- \printcitefinish
- \endgroup
-}%
-\def\@onecitation#1\@@{%
- \if@notfirstcitation
- \printbetweencitations
- \fi
- \expandafter \ifx \csname\@citelabel{#1}\endcsname \relax
- \if@citewarning
- \message{\@linenumber Undefined citation `#1'.}%
- \fi
- \expandafter\gdef\csname\@citelabel{#1}\endcsname{%
- {\tt \nobreak\hskip0pt#1\nobreak\hskip0pt}}%
- \fi
- \csname\@citelabel{#1}\endcsname
- \@notfirstcitationtrue
-}%
-\def\@citelabel#1{\@tokstostring{b@#1}}%
-\def\@citedef#1{%
- \begingroup
- \@resetnumerals
- \@finishcitedef{#1}%
-}%
-\def\@finishcitedef#1#2{%
- \expandafter\gdef\csname\@citelabel{#1}\endcsname{#2}%
- \endgroup
-}%
-\def\@resetnumerals{%
- \catcode`0 = \@other \catcode`1 = \@other \catcode`2 = \@other
- \catcode`3 = \@other \catcode`4 = \@other \catcode`5 = \@other
- \catcode`6 = \@other \catcode`7 = \@other \catcode`8 = \@other
- \catcode`9 = \@other \catcode`" = \@other \catcode`' = \@other
- \catcode`` = \@other \catcode`, = \@other \catcode`. = \@other
-}%
-\def\@readbblfile{%
- \@innernewcount\@itemnum
- \begingroup
- \def\begin##1##2{%
- \setbox0 = \hbox{\biblabelcontents{##2}}%
- \biblabelwidth = \wd0
- }%
- \def\end##1{}% ##1 is `thebibliography' again.
- \@itemnum = 0
- \def\bibitem{\futurelet\next\@bibitem}%
- \def\@bibitem{%
- \begingroup \if [\next
- \aftergroup\@alphabibitem
- \else
- \aftergroup\@numberedbibitem
- \fi \endgroup
- }%
- \def\@alphabibitem[##1]##2{%
- \expandafter \xdef\csname\@citelabel{##2}\endcsname {##1}%
- \@finishbibitem{##2}%
- }%
- \def\@numberedbibitem##1{%
- \advance\@itemnum by 1
- \expandafter \xdef\csname\@citelabel{##1}\endcsname{\number\@itemnum}%
- \@finishbibitem{##1}%
- }%
- \def\@finishbibitem##1{%
- \biblabelprint{\csname\@citelabel{##1}\endcsname}%
- \@writeaux{\string\@citedef{##1}{\csname\@citelabel{##1}\endcsname}}%
- \ignorespaces
- }%
- \let\em = \bblem
- \let\newblock = \bblnewblock
- \let\sc = \bblsc
- \frenchspacing
- \clubpenalty = 4000 \widowpenalty = 4000
- \tolerance = 10000 \hfuzz = .5pt
- \everypar = {\hangindent = \biblabelwidth
- \advance\hangindent by \biblabelextrahang}%
- \bblrm
- \parskip = 1.5ex plus .5ex minus .5ex
- \biblabelextrahang = .5em
- \bblhook
- \input \jobname.bbl
- \endgroup
-}%
-\@innernewdimen\biblabelwidth
-\@innernewdimen\biblabelextrahang
-\def\biblabelprint#1{%
- \noindent\hbox to \biblabelwidth{\biblabelcontents{#1}\hss}\enspace}%
-\def\biblabelcontents#1{\bblrm [#1]}%
-\def\bblrm{\rm}%
-\def\bblem{\it}%
-\def\bblsc{\ifx\@scfont\@undefined
- \font\@scfont = cmcsc10
- \fi
- \@scfont
-}%
-\def\bblnewblock{\hskip .11em plus .33em minus .07em}%
-\let\bblhook = \empty
-\def\printcitestart{[}% left bracket
-\def\printcitefinish{]}% right bracket
-\def\printbetweencitations{, }% comma, space
-\def\printcitenote#1{, #1}% comma, space, note (if it exists)
-\let\citation = \@gobble
-\@innernewcount\@numparams
-\def\newcommand#1{%
- \def\@commandname{#1}%
- \futurelet\@next\@continuenewcommand
-}%
-\def\@continuenewcommand{\begingroup
- \if [\@next
- \aftergroup\@newcommandwithargs
- \else
- \global\@numparams = 0
- \aftergroup\@newcommand
- \fi
-\endgroup}%
-\def\@newcommandwithargs[#1]{%
- \global\@numparams = #1
- \@newcommand
-}%
-\def\@newcommand#1{%
- \def\@startdef{\expandafter\edef\@commandname}%
- \ifnum\@numparams=0
- \let\@paramdef = \empty
- \else
- \ifnum\@numparams>9
- \errmessage{\the\@numparams\space is too many parameters}%
- \else
- \ifnum\@numparams<0
- \errmessage{\the\@numparams\space is too few parameters}%
- \else
- \edef\@paramdef{%
- \ifcase\@numparams
- \empty No arguments.
- \or ####1%
- \or ####1####2%
- \or ####1####2####3%
- \or ####1####2####3####4%
- \or ####1####2####3####4####5%
- \or ####1####2####3####4####5####6%
- \or ####1####2####3####4####5####6####7%
- \or ####1####2####3####4####5####6####7####8%
- \or ####1####2####3####4####5####6####7####8####9%
- \fi
- }%
- \fi
- \fi
- \fi
- \expandafter\@startdef\@paramdef{#1}%
-}%
-}%
-\ifx\nobibtex\@undefined \the\toks0 \fi
-\def\@readauxfile{%
- \if@auxfiledone \else % remember: \@auxfiledonetrue if \noauxfile is defined
- \global\@auxfiledonetrue
- \@testfileexistence{aux}%
- \if@fileexists
- \begingroup
- \endlinechar = -1
- \@setletters
- \input \jobname.aux
- \endgroup
- \else
- \message{\@undefinedmessage}%
- \global\@citewarningfalse
- \fi
- \immediate\openout\@auxfile = \jobname.aux
- \fi
-}%
-\newif\if@auxfiledone
-\ifx\noauxfile\@undefined \else \@auxfiledonetrue\fi
-\def\@setletters{%
- \count255 = 0
- \edef\temp{\ifx\inputlineno\@undefined 128\else 256\fi}%
- \loop
- \ifnum\catcode\count255 = \@other
- \catcode\count255 = \@letter
- \fi
- \advance\count255 by 1
- \ifnum\count255<\temp
- \repeat
- \catcode`\_ = \@letter
-}%
-\@innernewwrite\@auxfile
-\def\@writeaux#1{\ifx\noauxfile\@undefined \write\@auxfile{#1}\fi}%
-\ifx\@undefinedmessage\@undefined
- \def\@undefinedmessage{No .aux file; I won't give you warnings about
- undefined citations.}%
-\fi
-\@innernewif\if@citewarning
-\ifx\noauxfile\@undefined \@citewarningtrue\fi
-\catcode`@ = \@oldatcatcode
-\let\auxfile = \@auxfile
-\let\for = \@for
-\let\getoptionalarg = \@getoptionalarg
-\let\ifempty = \@ifempty
-\def\iffileexists{\if@fileexists}%
-\let\innerdef = \@innerdef
-\let\innernewcount = \@innernewcount
-\let\innernewdimen = \@innernewdimen
-\let\innernewif = \@innernewif
-\let\innernewwrite = \@innernewwrite
-\let\linenumber = \@linenumber
-\let\readauxfile = \@readauxfile
-\let\spacesub = \@spacesub
-\let\testfileexistence = \@testfileexistence
-\let\tokstostring = \@tokstostring
-\let\writeaux = \@writeaux
-\def\innerinnerdef#1{\expandafter\innerdef\csname inner#1\endcsname{#1}}%
-\innerinnerdef{newbox}%
-\innerinnerdef{newfam}%
-\innerinnerdef{newhelp}%
-\innerinnerdef{newinsert}%
-\innerinnerdef{newlanguage}%
-\innerinnerdef{newmuskip}%
-\innerinnerdef{newread}%
-\innerinnerdef{newskip}%
-\innerinnerdef{newtoks}%
-\def\immediatewriteaux#1{%
- \ifx\noauxfile\@undefined
- \immediate\write\@auxfile{#1}%
- \fi
-}%
-\begingroup
- \makeactive\^^M \makeactive\ % No spaces or ^^M's from here on.
-\gdef\obeywhitespace{%
-\makeactive\^^M\def^^M{\par\futurelet\next\@finishobeyedreturn}%
-\makeactive\ \def {\ }%
-\aftergroup\@removebox%
-\futurelet\next\@finishobeywhitespace%
-}%
-\gdef\@finishobeywhitespace{{%
-\ifx\next %
-\aftergroup\@obeywhitespaceloop%
-\else\ifx\next^^M%
-\aftergroup\gobble%
-\fi\fi}}%
-\gdef\@finishobeyedreturn{%
-\ifx\next^^M\vskip\blanklineskipamount\fi%
-\indent%
-}%
-\endgroup
-\def\@obeywhitespaceloop#1{\futurelet\next\@finishobeywhitespace}%
-\def\@removebox{%
- \setbox0 = \lastbox
- \ifdim\wd0=\parindent
- \setbox2 = \hbox{\unhbox0}%
- \ifdim\wd2=0pt
- \ignorespaces
- \else
- \box2 % Put it back: it wasn't empty.
- \fi
- \else
- \box0 % Put it back: it wasn't the right width.
- \fi
-}%
-\newskip\blanklineskipamount
-\blanklineskipamount = 0pt
-\def\frac#1/#2{\leavevmode
- \kern.1em \raise .5ex \hbox{\the\scriptfont0 #1}%
- \kern-.1em $/$%
- \kern-.15em \lower .25ex \hbox{\the\scriptfont0 #2}%
-}%
-\def\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX\null}%
-\def\LaTeX{L\kern -.26em \raise .6ex \hbox{\sevenrm A}\kern -.15em \TeX}%
-\def\AMSTeX{$\cal A\kern -.1667em
- \lower .5ex\hbox{$\cal M$}%
- \kern -.125em S$-\TeX
-}%
-\def\BibTeX{{\rm B\kern-.05em{\sevenrm I\kern-.025em B}\kern-.08em
- T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}%
-\font\mflogo = logo10
-\def\MF{{\mflogo META}{\tenrm \-}{\mflogo FONT}}%
-\def\blackbox{\vrule height .8ex width .6ex depth -.2ex }% square bullet
-\def\makeblankbox#1#2{%
- \ifvoid0
- \errmessage{Box 0 is void}%
- \errhelp = \@makeblankboxhelp
- \fi
- \hbox{\lower\dp0
- \vbox{\hidehrule{#1}{#2}%
- \kern -#1% overlap rules
- \hbox to \wd0{\hidevrule{#1}{#2}%
- \raise\ht0\vbox to #1{}% vrule height
- \lower\dp0\vtop to #1{}% vrule depth
- \hfil\hidevrule{#2}{#1}%
- }%
- \kern-#1\hidehrule{#2}{#1}%
- }%
- }%
-}%
-\newhelp\@makeblankboxhelp{Assigning to the dimensions of a void^^J%
- box has no effect. Do `\string\setbox0=\string\null' before you^^J%
- define its dimensions.}%
-\def\hidehrule#1#2{\kern-#1\hrule height#1 depth#2 \kern-#2}%
-\def\hidevrule#1#2{%
- \kern-#1%
- \dimen0=#1\advance\dimen0 by #2%
- \vrule width\dimen0
- \kern-#2%
-}%
-\newdimen\boxitspace \boxitspace = 3pt
-\def\boxit#1{%
- \vbox{%
- \hrule
- \hbox{%
- \vrule
- \kern\boxitspace
- \vbox{\kern\boxitspace \parindent = 0pt #1\kern\boxitspace}%
- \kern\boxitspace
- \vrule
- }%
- \hrule
- }%
-}%
-\def\numbername#1{\ifcase#1%
- zero%
- \or one%
- \or two%
- \or three%
- \or four%
- \or five%
- \or six%
- \or seven%
- \or eight%
- \or nine%
- \or ten%
- \or #1%
- \fi
-}%
-\def\environment#1{%
- \ifx\@groupname\@undefined\else
- \errhelp = \@unnamedendgrouphelp
- \errmessage{`\@groupname' was not closed by \string\endenvironment}%
- \fi
- \def\@groupname{#1}%
- \begingroup
- \let\@groupname = \@undefined
-}%
-\def\endenvironment#1{%
- \endgroup
- \def\@thearg{#1}%
- \ifx\@groupname\@thearg
- \else
- \ifx\@groupname\@undefined
- \errhelp = \@isolatedendenvironmenthelp
- \errmessage{Isolated \string\endenvironment\space for `#1'}%
- \else
- \errhelp = \@mismatchedenvironmenthelp
- \errmessage{Environment `#1' ended, but `\@groupname' started}%
- \endgroup % Probably a typo in the names.
- \fi
- \fi
- \let\@groupname = \@undefined
-}%
-\newhelp\@unnamedendgrouphelp{Most likely, you just forgot an^^J%
- \string\endenvironment. Maybe you should try inserting another^^J%
- \string\endgroup to recover.}%
-\newhelp\@isolatedendenvironmenthelp{You ended an environment X, but^^J%
- no \string\environment\space to start it is anywhere in sight.^^J%
- You might also be at an \string\endenvironment\space that would match^^J%
- a \string\begingroup, i.e., you forgot an \string\endgroup.}%
-\newhelp\@mismatchedenvironmenthelp{You started an environment X, but^^J%
- you ended it with Y. Maybe you made a typo in one or the other^^J%
- of the names.}%
-\newif\ifenvironment
-\def\checkenv{\ifenvironment \errhelp = \@interwovenenvhelp
- \errmessage{Interwoven environments}%
- \endgroup \fi
-}%
-\newhelp\@interwovenenvhelp{Perhaps you forgot to end the previous^^J%
- environment? I'm finishing off the current group,^^J%
- hoping that will fix it.}%
-\newif\ifeqno
-\newif\ifleqno
-\def\eq{\the\@eqtoks}%
-\def\eqn{\the\@eqnotoks}%
-\newtoks\@eqtoks
-\newtoks\@eqnotoks
-\long\def\displaysetup#1$${%
- \@ddisplaytest#1\eqdef\eqdef\@ddisplaytest
- \expandafter\@displaytest\the\toks0\eqno\eqno\@displaytest
-}%
-\def\@removetrailingspaces#1 #2 \endmark{#1}%
-\long\def\@ddisplaytest#1\eqdef#2\eqdef#3\@ddisplaytest{%
- \if !\noexpand#3!%
- \toks0 = {#1}%
- \else
- \toks2 = {#1}%
- \begingroup
- \def\temp{\@removetrailingspaces #2}%
- \def\\{ }%
- \xdef\temp{{\expandafter\temp\\ \endmark}}%
- \endgroup
- \toks4 = \expandafter\expandafter\expandafter{\expandafter\eqdef\temp}%
- \edef\@setupeq{\toks0 = {\the\toks2 \the\toks4}}%
- \@setupeq
- \fi
-}%
-\long\def\@displaytest#1\eqno#2\eqno#3\@displaytest{%
- \if !\noexpand#3!%
- \@ldisplaytest#1\leqno\leqno\@ldisplaytest
- \else
- \eqnotrue
- \leqnofalse
- \@eqnotoks = {#2}%
- \@eqtoks = {#1}%
- \fi
- \generaldisplay$$%
-}%
-\long\def\@ldisplaytest#1\leqno#2\leqno#3\@ldisplaytest{%
- \@eqtoks = {#1}%
- \if !\noexpand#3!%
- \eqnofalse
- \else
- \eqnotrue
- \leqnotrue
- \@eqnotoks = {#2}%
- \fi
-}%
-\newdimen\leftdisplayindent
-\newtoks\previouseverydisplay
-\newtoks\displayhook
-\def\leftdisplays{%
- \previouseverydisplay = \everydisplay
- \everydisplay = {\the\previouseverydisplay \the\displayhook \displaysetup}%
- \def\generaldisplay{%
- \leftline{%
- \strut
- \indent \hskip\leftskip \hskip\leftdisplayindent
- \dimen0 = \parindent \advance\dimen0 by \leftskip
- \advance\dimen0 by \leftdisplayindent
- \advance\displaywidth by -\dimen0
- \@redefinealignmentdisplays
- \ifeqno\ifleqno
- \kern-\dimen0\rlap{$\displaystyle\eqn$}\kern\dimen0
- \fi\fi
- $\displaystyle\eq$%
- \ifeqno\ifleqno\else
- \hfill $\displaystyle\eqn$%
- \fi\fi
- }%
- }%
-}%
-\def\@redefinealignmentdisplays{%
- \def\displaylines##1{\displ@y
- \vcenter{%
- \let\oldeqprint = \eqprint
- \def\eqprint{\hfill\oldeqprint}%
- \halign{\hbox to\displaywidth{$\@lign\displaystyle####\hfil$}\crcr
- ##1\crcr}}}%
- \def\eqalignno##1{\displ@y
- \vcenter{%
- \halign to\displaywidth{%
- $\@lign\displaystyle{####}$\tabskip\z@skip
- &$\@lign\displaystyle{{}####}$\hfil\tabskip\centering
- &\llap{$\@lign####$}\tabskip\z@skip\crcr
- ##1\crcr}}}%
- \def\leqalignno##1{\displ@y
- \vcenter{%
- \halign to\displaywidth{%
- $\@lign\displaystyle{####}$\tabskip\z@skip
- &$\@lign\displaystyle{{}####}$\hfil\tabskip\centering
- &\kern-\displaywidth
- \rlap{\kern-\parindent\kern-\leftskip$\@lign####$}%
- \tabskip\displaywidth\crcr
- ##1\crcr}}}%
-}%
-\def\centereddisplays{\let\displaysetup = \relax}%
-\def\monthname{%
- \ifcase\month
- \or Jan\or Feb\or Mar\or Apr\or May\or Jun%
- \or Jul\or Aug\or Sep\or Oct\or Nov\or Dec%
- \fi
-}%
-\def\fullmonthname{%
- \ifcase\month
- \or January\or February\or March\or April\or May\or June%
- \or July\or August\or September\or October\or November\or December%
- \fi
-}%
-\def\timestring{\begingroup
- \count0 = \time
- \divide\count0 by 60
- \count2 = \count0 % The hour, from zero to 23.
- \count4 = \time
- \multiply\count0 by 60
- \advance\count4 by -\count0 % The minute, from zero to 59.
- \ifnum\count4<10
- \toks1 = {0}%
- \else
- \toks1 = {}%
- \fi
- \ifnum\count2<12
- \toks0 = {a.m.}%
- \else
- \toks0 = {p.m.}%
- \advance\count2 by -12
- \fi
- \ifnum\count2=0
- \count2 = 12
- \fi
- \number\count2:\the\toks1 \number\count4 \thinspace \the\toks0
-\endgroup}%
-\def\timestamp{\number\day\space\monthname\space\number\year\quad\timestring}%
-\newskip\abovelistskip \abovelistskip = .5\baselineskip
-\newskip\interitemskip \interitemskip = 0pt
-\newskip\belowlistskip \belowlistskip = .5\baselineskip
-\newdimen\listleftindent \listleftindent = 0pt
-\newdimen\listrightindent \listrightindent = 0pt
-\def\listcompact{\interitemskip = 0pt \relax}%
-\newdimen\@listindent
-\def\beginlist{%
- \@listindent = \parindent
- \advance\@listindent by \listleftindent
- \everydisplay = \expandafter{\the\everydisplay
- \advance\displayindent by \@listindent
- \advance\displaywidth by -\@listindent
- \advance\displaywidth by -\listrightindent}%
- \nobreak\vskip\abovelistskip
- \advance\leftskip by \@listindent
- \advance\rightskip by \listrightindent
-}%
-\def\printitem{%
- \par
- \vskip-\parskip
- \noindent
- \llap{\marker \enspace}%
-}%
-\def\endlist{\vskip\belowlistskip}%
-\newcount\numberedlistdepth
-\newcount\itemnumber
-\newcount\itemletter
-\def\numberedmarker{%
- \ifcase\numberedlistdepth
- (impossible)%
- \or \itemnumberout)%
- \or \itemletterout)%
- \else *%
- \fi
-}%
-\def\numberedlist{\environment{@numbered-list}%
- \advance\numberedlistdepth by 1
- \itemnumber = 1
- \itemletter = `a
- \beginlist
- \let\marker = \numberedmarker
- \def\li{%
- \ifnum\itemnumber=1\else
- \vskip\interitemskip
- \fi
- \printitem
- \advance\itemnumber by 1
- \advance\itemletter by 1
- }%
-}%
-\def\itemnumberout{\number\itemnumber}%
-\def\itemletterout{\char\itemletter}%
-\def\endnumberedlist{%
- \par
- \endenvironment{@numbered-list}%
- \endlist
-}%
-\newcount\unorderedlistdepth
-\def\unorderedmarker{%
- \ifcase\unorderedlistdepth
- (impossible)%
- \or \blackbox
- \or ---%
- \else *%
- \fi
-}%
-\def\unorderedlist{\environment{@unordered-list}%
- \advance\unorderedlistdepth by 1
- \beginlist
- \itemnumber = 1
- \let\marker = \unorderedmarker
- \def\li{%
- \ifnum\itemnumber=1\else
- \vskip\interitemskip
- \fi
- \printitem
- \advance\itemnumber by 1
- }%
-}%
-\def\endunorderedlist{%
- \par
- \endenvironment{@unordered-list}%
- \endlist
-}%
-\def\listing#1{%
- \par \begingroup
- \@setuplisting
- \setuplistinghook
- \input #1
- \endgroup
-}%
-\let\setuplistinghook = \empty
-\def\@setuplisting{%
- \uncatcodespecials
- \obeywhitespace
- \makeactive\`
- \makeactive\^^I
- \def^^L{\vfill\eject}%
- \tt
-}%
-{%
- \makeactive\`
- \gdef`{\relax\lq}% Defeat ligatures.
-}%
-{%
- \makeactive\^^I
- \tt
- \gdef^^I{\hskip8\fontdimen2\font \relax}%
-}%
-\newif\if@tocfileopened
-\newwrite\tocfile
-\def\opentocfile{%
- \if@tocfileopened\else
- \global\@tocfileopenedtrue
- \immediate\openout\tocfile = \jobname.toc
- \fi
-}%
-\def\writetocentry#1#2{\writenumberedtocentry{#1}{#2}\empty}%
-\def\writenumberedtocentry#1#2#3{%
- \ifrewritetocfile
- \opentocfile
- \toks0 = {\expandafter\noexpand \csname toc#1entry\endcsname}%
- \def\temp{#2}%
- \def\cs{#3}%
- \edef\@wr{%
- \write\tocfile{%
- \the\toks0
- {\sanitize\temp}%
- \ifx \empty\cs\else{#3}\fi
- {\noexpand\folio}%
- }%
- }%
- \@wr
- \fi
- \ignorespaces
-}%
-\newif\ifrewritetocfile \rewritetocfiletrue
-\def\readtocfile{%
- \testfileexistence{toc}%
- \if@fileexists
- \input \jobname.toc
- \ifrewritetocfile
- \opentocfile
- \fi
- \fi
-}%
-\def\tocchapterentry#1#2{\line{\bf #1 \dotfill\ #2}}%
-\def\tocsectionentry#1#2{\line{\quad\sl #1 \dotfill\ \rm #2}}%
-\def\tocsubsectionentry#1#2{\line{\qquad\rm #1 \dotfill\ #2}}%
-\def\xrdef#1{%
- \@readauxfile
- \begingroup
- \xrlabel{#1}%
- \edef\@wr{\@writexrdef{\the\xrlabeltoks}}%
- \@wr
- \endgroup
- \ignorespaces
-}%
-\def\@writexrdef#1{%
- \@writeaux{%
- \string\gdef\expandafter\string\csname#1\endcsname {\noexpand\folio}%
- }%
-}%
-\newtoks\xrlabeltoks
-\def\xrlabel#1{%
- \begingroup
- \escapechar = `\_
- \edef\tts{\tokstostring{#1_}}%
- \global\xrlabeltoks = \expandafter{\tts}%
- \endgroup
-}%
-\let\ifxrefwarning = \iftrue
-\def\xrefwarningtrue{\@citewarningtrue \let\ifxrefwarning = \iftrue}%
-\def\xrefwarningfalse{\@citewarningfalse let\ifxrefwarning = \iffalse}%
-\def\xrefn#1{%
- \@readauxfile
- \xrlabel{#1}% \xrlabeltoks now has the control sequence name.
- \toks0 = \expandafter{\csname\the\xrlabeltoks\endcsname}%
- \expandafter \ifx\the\toks0\relax
- \if@citewarning
- \message{\linenumber Undefined label `\tokstostring{#1}'.}%
- \fi
- \begingroup
- \let\spacesub = \space
- \expandafter\xdef\the\toks0{`{\tt \tokstostring{#1}}'}%
- \endgroup
- \fi
- \the\toks0 % Always produce something.
-}%
-\def\xref#1{p.\thinspace\xrefn{#1}}%
-\newcount\eqnumber
-\def\eqdefn#1{%
- \@readauxfile
- \global\advance\eqnumber by 1
- \begingroup
- \xrlabel{#1}% \xrlabeltoks now has the control sequence name.
- \edef\@wr{\@writeeqdef{\the\xrlabeltoks}{\the\eqnumber}}%
- \@wr
- \endgroup
- \expandafter\xdef\csname\the\xrlabeltoks\endcsname{\the\eqnumber}%
- \ignorespaces
-}%
-\def\@writeeqdef#1#2{%
- \immediatewriteaux{%
- \string\gdef\expandafter\string\csname#1\endcsname{#2}%
- }%
-}%
-\def\eqdef#1{%
- \@maybedisableeqno
- \eqno \eqdefn{#1}\eqprint{\the\eqnumber}%
- \@mayberestoreeqno
- \ignorespaces
-}%
-\let\@mayberestoreeqno = \empty
-\def\@maybedisableeqno{%
- \ifinner
- \global\let\eqno = \relax
- \global\let\@mayberestoreeqno = \@restoreeqno
- \fi
-}%
-\let\@primitiveeqno = \eqno
-\def\@restoreeqno{%
- \global\let\eqno = \@primitiveeqno
- \global\let\@mayberestoreeqno = \empty
-}%
-\def\eqref#1{%
- \@readauxfile
- \xrlabel{#1}% \xrlabeltoks now has the control sequence name.
- \toks0 = \expandafter{\csname\the\xrlabeltoks\endcsname}%
- \expandafter \ifx\the\toks0\relax
- \if@citewarning
- \message{\linenumber Undefined equation label `\tokstostring{#1}'.}%
- \fi
- \begingroup
- \let\spacesub = \space
- \expandafter\xdef\the\toks0{`{\tt \tokstostring{#1}}'}%
- \endgroup
- \fi
- \eqprint{\the\toks0}%
-}%
-\def\eqprint#1{(#1)}%
-\begingroup
- \catcode `\^^M = \active %
- \globaldefs = 1 %
- \def\flushleft{\beforejustify %
- \aftergroup\@endflushleft %
- \def^^M{\null\hfil\break}%
- \def\@eateol^^M{}%
- \@eateol %
- }%
- \def\flushright{\beforejustify %
- \aftergroup\@endflushright %
- \def^^M{\break\null\hfil}%
- \def\@eateol^^M{\hfil\null}%
- \@eateol %
- }%
- \def\center {\beforejustify %
- \aftergroup\@endcenter %
- \def^^M{\hfil\break\null\hfil}%
- \def\@eateol^^M{\hfil\null}%
- \@eateol %
- }%
-\endgroup
-\def\@endflushleft{\unpenalty{\parfillskip = 0pt plus 1 fil\par}\ignorespaces}%
-\def\@endflushright{% Remove the \hfil\null\break we just put on.
- \unskip \setbox0=\lastbox \unpenalty
- {\parfillskip = 0pt \par}\ignorespaces
-}%
-\def\@endcenter{% Remove the \hfil\null\break we just put on.
- \unskip \setbox0=\lastbox \unpenalty
- {\parfillskip = 0pt plus 1fil \par}\ignorespaces
-}%
-\def\beforejustify{%
- \par\noindent
- \catcode`\^^M = \active
- \checkenv \environmenttrue
-}%
-\newcount\abovecolumnspenalty \abovecolumnspenalty = 10000
-\newcount\@linestogo % Lines remaining to process.
-\newcount\@linestogoincolumn % Lines remaining in column.
-\newcount\@columndepth % Number of lines in a column.
-\newdimen\@columnwidth % Width of each column.
-\newtoks\crtok \crtok = {\cr}%
-\newcount\currentcolumn
-\def\makecolumns#1/#2: {\par \begingroup
- \@columndepth = #1
- \advance\@columndepth by #2
- \advance\@columndepth by -1
- \divide \@columndepth by #2
- \@linestogoincolumn = \@columndepth
- \@linestogo = #1
- \currentcolumn = 1
- \def\@endcolumnactions{%
- \ifnum \@linestogo<2
- \the\crtok \egroup \endgroup \par % End \valign and \makecolumns.
- \else
- \global\advance\@linestogo by -1
- \ifnum\@linestogoincolumn<2
- \global\advance\currentcolumn by 1
- \global\@linestogoincolumn = \@columndepth
- \the\crtok
- \else
- &\global\advance\@linestogoincolumn by -1
- \fi
- \fi
- }%
- \makeactive\^^M
- \letreturn \@endcolumnactions
- \@columnwidth = \hsize
- \advance\@columnwidth by -\parindent
- \divide\@columnwidth by #2
- \penalty\abovecolumnspenalty
- \noindent % It's not a paragraph (usually).
- \valign\bgroup
- &\hbox to \@columnwidth{\strut \hsize = \@columnwidth ##\hfil}\cr
-}%
-\newcount\footnotenumber
-\newdimen\footnotemarkseparation \footnotemarkseparation = .5em
-\newskip\interfootnoteskip \interfootnoteskip = 0pt
-\newtoks\everyfootnote
-\newdimen\footnoterulewidth \footnoterulewidth = 2true in
-\newdimen\footnoteruleheight \footnoteruleheight = 0.4pt
-\newdimen\belowfootnoterulespace \belowfootnoterulespace = 2.6pt
-\let\@plainfootnote = \footnote
-\let\@plainvfootnote = \vfootnote
-\def\vfootnote#1{\insert\footins\bgroup
- \interlinepenalty\interfootnotelinepenalty
- \splittopskip\ht\strutbox % top baseline for broken footnotes
- \advance\splittopskip by \interfootnoteskip
- \splitmaxdepth\dp\strutbox
- \floatingpenalty\@MM
- \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip
- \everypar = {}%
- \the\everyfootnote
- \vskip\interfootnoteskip
- \indent\llap{#1\kern\footnotemarkseparation}\footstrut\futurelet\next\fo@t
-}%
-\def\footnoterule{\dimen0 = \footnoteruleheight
- \advance\dimen0 by \belowfootnoterulespace
- \kern-\dimen0
- \hrule width\footnoterulewidth height\footnoteruleheight depth0pt
- \kern\belowfootnoterulespace
- \vskip-\interfootnoteskip
-}%
-\def\numberedfootnote{%
- \global\advance\footnotenumber by 1
- \@plainfootnote{$^{\number\footnotenumber}$}%
-}%
-\newdimen\paperheight \paperheight = 11in
-\def\topmargin{\afterassignment\@finishtopmargin \dimen0}%
-\def\@finishtopmargin{%
- \dimen2 = \voffset % Remember the old \voffset.
- \voffset = \dimen0 \advance\voffset by -1in
- \advance\dimen2 by -\voffset % Compute the change in \voffset.
- \advance\vsize by \dimen2 % Change type area accordingly.
-}%
-\def\advancetopmargin{%
- \dimen0 = 0pt \afterassignment\@finishadvancetopmargin \advance\dimen0
-}%
-\def\@finishadvancetopmargin{%
- \advance\voffset by \dimen0
- \advance\vsize by -\dimen0
-}%
-\def\bottommargin{\afterassignment\@finishbottommargin \dimen0}%
-\def\@finishbottommargin{%
- \@computebottommargin % Result in \dimen2.
- \advance\dimen2 by -\dimen0 % Compute the change in the bottom margin.
- \advance\vsize by \dimen2 % Change the type area.
-}%
-\def\advancebottommargin{%
- \dimen0 = 0pt \afterassignment\@finishadvancebottommargin \advance\dimen0
-}%
-\def\@finishadvancebottommargin{%
- \advance\vsize by -\dimen0
-}%
-\def\@computebottommargin{%
- \dimen2 = \paperheight % The total paper size.
- \advance\dimen2 by -\vsize % Less the text size.
- \advance\dimen2 by -\voffset % Less the offset at the top.
- \advance\dimen2 by -1in % Less the default offset.
-}%
-\newdimen\paperwidth \paperwidth = 8.5in
-\def\leftmargin{\afterassignment\@finishleftmargin \dimen0}%
-\def\@finishleftmargin{%
- \dimen2 = \hoffset % Remember the old \hoffset.
- \hoffset = \dimen0 \advance\hoffset by -1in
- \advance\dimen2 by -\hoffset % Compute the change in \hoffset.
- \advance\hsize by \dimen2 % Change type area accordingly.
-}%
-\def\advanceleftmargin{%
- \dimen0 = 0pt \afterassignment\@finishadvanceleftmargin \advance\dimen0
-}%
-\def\@finishadvanceleftmargin{%
- \advance\hoffset by \dimen0
- \advance\hsize by -\dimen0
-}%
-\def\rightmargin{\afterassignment\@finishrightmargin \dimen0}%
-\def\@finishrightmargin{%
- \@computerightmargin % Result in \dimen2.
- \advance\dimen2 by -\dimen0 % Compute the change in the right margin.
- \advance\hsize by \dimen2 % Change the type area.
-}%
-\def\advancerightmargin{%
- \dimen0 = 0pt \afterassignment\@finishadvancerightmargin \advance\dimen0
-}%
-\def\@finishadvancerightmargin{%
- \advance\hsize by -\dimen0
-}%
-\def\@computerightmargin{%
- \dimen2 = \paperwidth % The total paper size.
- \advance\dimen2 by -\hsize % Less the text size.
- \advance\dimen2 by -\hoffset % Less the offset at the left.
- \advance\dimen2 by -1in % Less the default offset.
-}%
-\newskip\abovedoublecolumnskip \abovedoublecolumnskip = \bigskipamount
-\newskip\belowdoublecolumnskip \belowdoublecolumnskip = \bigskipamount
-\newdimen\gutter \gutter = 2pc
-\newdimen\doublecolumnhsize
-\newbox\@partialpage \newdimen\singlecolumnhsize \newdimen\singlecolumnvsize
-\newtoks\previousoutput
-\def\doublecolumns{%
- \doublecolumnhsize = \hsize % If \hsize changed, get the new value.
- \par % Shouldn't start in horizontal mode.
- \previousoutput = \expandafter{\the\output}%
- \advance\doublecolumnhsize by -\gutter
- \divide\doublecolumnhsize by 2
- \output = {%
- \global\setbox\@partialpage =
- \vbox{\unvbox255\vskip\abovedoublecolumnskip}%
- }%
- \pagegoal = \pagetotal
- \break % Now expand the \output just above.
- \output = {\doublecolumnoutput}%
- \singlecolumnhsize = \hsize
- \singlecolumnvsize = \vsize
- \hsize = \doublecolumnhsize
- \vsize = 2\vsize
-}%
-\def\@doublecolumnsplit{%
- \splittopskip = \topskip
- \splitmaxdepth = \maxdepth
- \dimen0 = \singlecolumnvsize
- \advance\dimen0 by -\ht\@partialpage
- \advance\dimen0 by -\ht\footins
- \ifvoid\footins\else \advance\dimen0 by -\skip\footins \fi
- \advance\dimen0 by -\ht\topins
- \ifvoid\topins\else \advance\dimen0 by -\skip\topins \fi
- \begingroup
- \vbadness = 10000
- \global\setbox1 = \vsplit255 to \dimen0
- \wd1 = \hsize
- \global\setbox3 = \vsplit255 to \dimen0
- \wd3 = \hsize
- \endgroup
- \global\setbox4 = \vbox{\unvbox255 \penalty\outputpenalty}%
- \global\setbox255
- = \vbox{%
- \unvbox\@partialpage
- \hbox to \singlecolumnhsize{\box1\hfil\box3}%
- }%
-}%
-\def\doublecolumnoutput{%
- \@doublecolumnsplit
- \hsize = \singlecolumnhsize % Local to the \output group.
- \vsize = \singlecolumnvsize
- \the\previousoutput
- \unvbox4
-}%
-\def\singlecolumn{%
- \par % Shouldn't start in horizontal mode.
- \output = {\global\setbox1 = \box255}%
- \pagegoal = \pagetotal
- \break % Exercise the page builder, i.e., \output.
- \setbox255 = \box1 % Retrieve what the fake \output set.
- \begingroup
- \singlecolumnvsize = \ht\@partialpage
- \advance\singlecolumnvsize by \ht\footins
- \ifvoid\footins\else \advance\singlecolumnvsize by \skip\footins\fi
- \advance\singlecolumnvsize by \ht\topins
- \ifvoid\topins\else \advance\singlecolumnvsize by \skip\topins\fi
- \dimen0 = \ht255 \divide\dimen0 by 2
- \advance\singlecolumnvsize by \dimen0
- \advance\singlecolumnvsize by .5\baselineskip
- \@doublecolumnsplit
- \endgroup
- \hsize = \singlecolumnhsize
- \vsize = \singlecolumnvsize
- \output = \expandafter{\the\previousoutput}%
- \unvbox255
- \vskip\belowdoublecolumnskip
- \nointerlineskip
-}%
-\let\wlog = \@plainwlog
-\catcode`@ = \other
-\def\fmtname{eplain}%
-\def\eplain{t}%
-{\edef\plainversion{\fmtversion}%
- \xdef\fmtversion{1.9: 26 April 1991 (and plain \plainversion)}%
-}%
diff --git a/Master/texmf-doc/doc/english/impatient/errata.future b/Master/texmf-doc/doc/english/impatient/errata.future
deleted file mode 100644
index 8b364ffc315..00000000000
--- a/Master/texmf-doc/doc/english/impatient/errata.future
+++ /dev/null
@@ -1,256 +0,0 @@
-$Id: errata.future,v 1.2 2003/09/16 21:17:27 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. :)
-
-
-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/Master/texmf-doc/doc/english/impatient/errors.tex b/Master/texmf-doc/doc/english/impatient/errors.tex
deleted file mode 100644
index f2e59773363..00000000000
--- a/Master/texmf-doc/doc/english/impatient/errors.tex
+++ /dev/null
@@ -1,325 +0,0 @@
-% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
-% See file fdl.tex for copying conditions.
-
-\input macros
-\chapter{Making sense \linebreak of error messages}
-
-\chapterdef{errors}
-
-\codefuzz = 4pc % for this chapter only (in scope of \chapter)
-\bix^^{error messages}
-Interpreting \TeX's error messages can sometimes
-be like going to your physician
-with a complaint that you're feeling fatigued and being handed,
-in response,
-a breakdown of your blood chemistry. The explanation of your distress
-is probably there, but it's not easy to figure out what it is.
-A few simple rules will go a long way in helping you to understand \TeX's
-error messages and get the most benefit from them.
-
-Your first goal should be
-to understand what you did that caused \TeX\ to complain.
-Your second goal (if you're working interactively)
-should be to catch as many errors as you can in a single run.
-
-Let's look at an example. Suppose that your input
-contains the line:
-\csdisplay
-We skip \quid a little bit.
-|
-You meant to type `|\quad|', but you typed `|\quid|' instead.
-Here's what you'll get from \TeX\ in response:
-\csdisplay
-!! Undefined control sequence.
-l.291 We skip \quid
- a little bit.
-?
-|
-This message will appear both at your terminal and in your log file.
-^^{log file//error messages}
-The first line, which always starts with an exclamation point (|!!|),
-tells you what the problem is. The last two lines before the `|?|' prompt
-(which in this case are also
-the next two lines) tell you how far \TeX\ has gotten
-when it found the error.
-It found the error on line $291$ of the current input file,
-and the break between the two message lines indicates
-\TeX's precise position within line $291$, namely, just after |\quid|.
-The current input file is the one just after the most recent unclosed
-left parenthesis in the terminal output of your run (see \xref{infiles}).
-
-This particular error, an undefined control
-sequence, is one of the most common ones you can get.
-If you respond to the prompt with another~`|?|',
-\TeX\ will display the following message:
-{\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.
-|
-}%
-Here's what these alternatives mean:
-\ulist
-\li If you type \asciichar{return},
-\TeX\ will continue processing your document.
-In this case it will just ignore the |\quid|.
-\li If you type `|S|' (or `|s|'---uppercase and lowercase are equivalent
-here), \TeX\ will process your document without stopping \emph{except}
-if it encounters a missing file. Error messages will still appear at your
-terminal and in the log file.
-\li If you type `|R|' or `|r|',
-you'll get the same effect as `|S|' except that
-\TeX\ won't even stop for missing files.
-\li If you type `|Q|' or `|q|',
-\TeX\ will continue processing your document but
-will neither stop for errors nor display them at your terminal. The
-errors will still show up in the log file.
-\li If you type `|X|' or `|x|',
-\TeX\ will clean up as best it can, discard the page
-it's working on, and quit. You can still print or view the
-pages that \TeX\ has already processed.
-\li If you type `|E|' or `|e|', \TeX\ will clean up and terminate
-as it would for `|X|' or `|x|' and then enter your text editor,
-positioning you at the erroneous line.
-(Not all systems support this option.)
-\li If you type `|H|' or `|h|',
-you'll get a further explanation of the error displayed
-at your terminal and
-possibly some advice about what to do about it. This explanation will also
-appear in your log file. For the undefined control sequence above,
-you'll get:
-{\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 If you type `|?|', you'll get this same message again.
-\endulist
-\noindent
-The other two alternatives, typing `|I|' or a small integer, provide ways of
-getting \TeX\ back on the track so that your error won't cause further errors
-later in your document:
-\ulist
-\li If you type `|I|' or `|i|'
-followed by some text, then \TeX\ will insert
-that text as though it had occurred just after the point of the error,
-at the innermost level where \TeX\ is working.
-In the case of the example above, that means at \TeX's
-position in your original input, namely, just after `|\quid|'.
-Later you'll see an example that shows
-the difference between inserting something at the innermost level and
-inserting it into your original input. In the example above of the undefined
-control sequence, if you type:
-\csdisplay
-I\quad
-|
-\TeX\ will carry out the |\quad| command and produce a quad space
-where you intended to have one.
-\li If you type a positive integer less than $100$ (not less than $10$ as the
-message misleadingly suggests),
-\TeX\ will delete that number of tokens from the innermost
-level where it is working.
-(If you type an integer greater than or equal to $100$, \TeX\ will
-delete $10$ tokens!)
-\endulist
-
-Here's an example of another common error:
-\csdisplay
-Skip across \hskip 3cn by 3 centimeters.
-|
-The error message for this is:
-\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>|
-In this case \TeX\ has observed that `|3|' is followed by something that
-isn't a proper unit of measure, and so it's assumed the unit of measure to be
-points. \TeX\ will read the tokens of `|cn|' again and insert them into
-your input, which is not what you want. In this case you can get a better
-result by first typing `|2|' to bypass the `|cn|'.
-You'll get the message:
-\csdisplay
-<recently read> n
-
-l.340 Skip across \hskip 3cn
- by 3 centimeters.
-|
-
-Now you can type
-`|I\hskip 3cm|' to get the skip you wanted (in addition to the |3pt| skip
-that you've already gotten).\footnote
-{By typing `|I\unskip\hskip 3cm|' you can get rid of the |3pt| skip.}
-
-If you type something that's only valid in math mode, \TeX\ will switch over
-to math mode for you whether or not that's what you really wanted.
-For example:
-\csdisplay
-So \spadesuit s are trumps.
-|
-Here's \TeX's error message:
-\csdisplay
-!! Missing $ inserted.
-<inserted text>
- $
-<to be read again>
- \spadesuit
-l.330 So \spadesuit
- s are trumps.
-|
-Since the |\spadesuit| symbol is only allowed in math mode,
-\TeX\ has inserted a `|$|' in front of it.
-After \TeX\ inserts a token, it's positioned in \emph{front} of
-that token, in this case the `|$|', ready to read it.
-Typing `|2|' will cause \TeX\ to skip both the `|$|'
-and the `|\spadesuit|' tokens, leaving it ready to process the `|s|'
-in `|s are trumps.|'.
-(If you just let \TeX\ continue, it will typeset `|s are trumps|'
-in math mode.)
-
-Here's an example where \TeX's error diagnostic is downright wrong:
-\csdisplay
-\hbox{One \vskip 1in two.}
-|
-The error message is:
-\csdisplay
-!! Missing } inserted.
-<inserted text>
- }
-<to be read again>
- \vskip
-l.29 \hbox{One \vskip
- 1in two.}
-|
-^^|<inserted text>|
-The problem is that you can't use |\vskip| when \TeX\ is in
-restricted horizontal mode, i.e, constructing an hbox.
-But instead of rejecting the |\vskip|, \TeX\ has inserted a right brace
-in front of it in an attempt to close out the hbox.
-If you accept \TeX's correction, \TeX\ will complain again
-when it gets to the correct right brace later on. It will also complain
-about anything before that right brace that isn't allowed in vertical mode.
-These additional complaints will be particularly confusing
-because the errors they indicate are bogus, a
-result of the propagated effects of the inappropriate
-insertion of the right brace.
-Your best bet is to type `|5|', skipping past all the tokens
-in `|}\vskip 1in|'.
-
-Here's a similar example in which the error message is longer
-than any we've seen so far:
-\csdisplay
-\leftline{Skip \smallskip a little further.} But no more.
-|
-The mistake here is that |\smallskip| only works in a vertical mode.
-The error message is something like:
-\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.
-|
-The error messages here give you a tour through the macros that are used in
-\plainTeX's implementation of |\leftline|---macros
-that you probably don't care about.
-The first line tells you that \TeX\ intends to cure the problem by
-inserting a right brace.
-\TeX\ hasn't actually read the
-right brace yet, so you can delete it if you choose to.
-Each component of the message after the first line
-(the one with the `!') occupies a pair of lines.
-Here's what the successive pairs of lines mean:
-\olist
-\li The first pair indicates that \TeX\ has inserted, but not yet read,
-a right brace.
-\li The next pair indicates that after reading the right brace, \TeX\ will
-again read a `|\vskip|' command (gotten from the macro definition
-of |\smallskip|).
-\li The third pair indicates that \TeX\ was expanding the |\smallskip|
-macro when it found the error. The pair also displays the definition of
-|\smallskip| and indicates how far \TeX\ has gotten in expanding and
-executing that definition. Specifically, it's just attempted
-unsuccessfully to execute the |\vskip| command. In general, a
-diagnostic line that starts with a control sequence followed by `|->|'
-indicates that \TeX\ has been expanding and executing a macro by that
-name.
-\li The fourth pair indicates that \TeX\ was processing a macro argument
-when it found the |\smallskip| and also indicates \TeX's position in that
-argument, i.e., it's just processed the |\smallskip| (unsuccessfully).
-By looking ahead to the next pair of lines
-we can see that the argument was passed to
-|\leftline|.
-\li The fifth pair indicates that \TeX\ was expanding
-the |\leftline|
-macro when it found the error.
-(In this example the error occurred while \TeX\ was
-in the middle of interpreting several
-macro definitions at different levels of expansion.)
-Its position after |#1| indicates that the last thing it saw was the
-first (and in this case the only) argument to |\leftline|.
-\li The last pair indicates where \TeX\ is positioned in your input file.
-Note that this position is well beyond the position where it's
-inserting the right brace and reading `|\vskip|' again.
-That's because \TeX\ has already read the entire argument to |\leftline|
-from your input file, even though it's only processed part of that argument.
-The dots at the beginning of the pair indicate a preceding part of the
-input line that isn't shown. This preceding part, in fact, includes
-the |\leftline| control sequence that made the |\vskip| illegal.
-\endolist
-\noindent
-In a long message like this, you'll generally find only the first line and the
-last pair of lines to be useful; but it sometimes helps to know what the other
-lines are about. Any text that you insert or delete will be
-inserted or deleted at the
-innermost level. In this example the insertion or deletion would occur
-just before the
-inserted right brace.
-Note in particular that in this case \TeX\ puts any text you might insert
-\emph{not} into your input text but into a macro definition
-several levels down. (The original macro definition is of course not modified.)
-
-You can use the ^|\errorcontextlines| command \ctsref{\errorcontextlines}
-to limit the
-number of pairs of error context lines that \TeX\ produces.
-If you're not interested in all the information that \TeX\ is giving you,
-you can set |\error!-contextlines| to $0$. That will give you just the first
-and last pairs of lines.
-
-Finally,
-we'll mention two other indicators that can appear at the start of a pair
-of error message lines:
-\ulist
-\li ^|<output>| indicates that \TeX\ was in the middle of its output routine
-when this error occurred.
-\li ^|<write>| indicates that \TeX\ was in the middle of executing a
-|\write| command when this error occurred.
-\TeX\ will detect such an error when it is actually doing the |\write|
-(during a |\shipout|), rather than when it first encounters the |\write|.
-\endulist
-
-
-\eix^^{error messages}
-\endchapter
-\byebye
diff --git a/Master/texmf-doc/doc/english/impatient/examples.tex b/Master/texmf-doc/doc/english/impatient/examples.tex
deleted file mode 100644
index 1b244362d61..00000000000
--- a/Master/texmf-doc/doc/english/impatient/examples.tex
+++ /dev/null
@@ -1,56 +0,0 @@
-% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
-% See file fdl.tex for copying conditions.
-
-\input macros
-\chapter{Examples}
-
-\chapterdef{examples}
-
-This section of the book contains a set of examples
-to help get you started and to show you how to do various things with \TeX.
-Each example has \TeX\ output on the left-hand page and the \TeX \
-input that led to that output on the right-hand page.
-You can use these examples both as forms to imitate and
-as a way of finding the
-\TeX\ commands that you need in order to achieve a particular effect.
-However, these examples can illustrate only a few of the
-about $900$ \TeX\ commands.
-
-Some of the examples are self-descriptive---that is, they discuss the very
-features of \TeX\ that they are illustrating. These discussions are
-necessarily sketchy because there isn't room in the examples for all the
-information you'd need. The capsule summary of commands
-(\chapterref{capsule})
-and the index will help you
-locate the complete explanation of every \TeX\ feature shown in the
-examples.
-
-Because we've designed the examples to illustrate
-many things at once, some examples contain a great variety of
-typographical effects. These examples generally are \emph{not} good
-models of typographical practice. For instance, Example~8 has some of its
-equation numbers on the left and some on the right. You'd never want to
-do that in a real publication.
-
-\xrdef{xmphead}
-Each example except for the first one starts with a macro (see
-\xref{macro}) named |\xmpheader|. We've used |\xmpheader| in order to
-conserve space in the input, since without it each example would have
-several lines of material you'd already seen.
-|\xmpheader| produces the title of an example and the
-extra space that goes with it. You can see in the first example
-what |\xmpheader| does, so you can imitate it if you wish.
-Except for |\xmpheader|, every command that we use in these examples is
-defined in \plainTeX.
-
-% The first example does the necessary eject here.
-{%
- \let\bye = \relax % We don't want to obey \bye in the example input.
- % These switches can't be done by a macro since \bye is outer.
- \doexamples {xmptext}% Typeset the actual examples.
-}%
-
-
-\endchapter
-\byebye
diff --git a/Master/texmf-doc/doc/english/impatient/fdl.tex b/Master/texmf-doc/doc/english/impatient/fdl.tex
deleted file mode 100644
index 4ae17d2d753..00000000000
--- a/Master/texmf-doc/doc/english/impatient/fdl.tex
+++ /dev/null
@@ -1,463 +0,0 @@
-% This file is a chapter. It must be included in a larger document to work
-% properly.
-
-\chapter{GNU Free Documentation \linebreak License}
-
-\begingroup
-% pseudo-latex since that's what the original source used.
-\let\label=\eqdefn
-\def\eqprint#1{#1\relax}
-\def\\{\hfil\break}
-\let\ref=\eqref
-
-% we have to have section numbers since we have internal references.
-\def\fdlkludge{\begingroup
- \count255=\eqnumber \advance\count255 by 1
- \the\count255.
-\endgroup}
-
-Version 1.2, November 2002
-
- Copyright \copyright\ 2000,2001,2002 Free Software Foundation, Inc.\\
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\\
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
-\section{PREAMBLE}
-
-The purpose of this License is to make a manual, textbook, or other
-functional and useful document ``free'' in the sense of freedom: to
-assure everyone the effective freedom to copy and redistribute it,
-with or without modifying it, either commercially or noncommercially.
-Secondarily, this License preserves for the author and publisher a way
-to get credit for their work, while not being considered responsible
-for modifications made by others.
-
-This License is a kind of ``copyleft'', which means that derivative
-works of the document must themselves be free in the same sense. It
-complements the GNU General Public License, which is a copyleft
-license designed for free software.
-
-We have designed this License in order to use it for manuals for free
-software, because free software needs free documentation: a free
-program should come with manuals providing the same freedoms that the
-software does. But this License is not limited to software manuals;
-it can be used for any textual work, regardless of subject matter or
-whether it is published as a printed book. We recommend this License
-principally for works whose purpose is instruction or reference.
-
-
-\section{APPLICABILITY AND DEFINITIONS}
-
-\label{applicability}
-
-This License applies to any manual or other work, in any medium, that
-contains a notice placed by the copyright holder saying it can be
-distributed under the terms of this License. Such a notice grants a
-world-wide, royalty-free license, unlimited in duration, to use that
-work under the conditions stated herein. The ``Document'', below,
-refers to any such manual or work. Any member of the public is a
-licensee, and is addressed as ``you''. You accept the license if you
-copy, modify or distribute the work in a way requiring permission
-under copyright law.
-
-A ``Modified Version'' of the Document means any work containing the
-Document or a portion of it, either copied verbatim, or with
-modifications and/or translated into another language.
-
-A ``Secondary Section'' is a named appendix or a front-matter section of
-the Document that deals exclusively with the relationship of the
-publishers or authors of the Document to the Document's overall subject
-(or to related matters) and contains nothing that could fall directly
-within that overall subject. (Thus, if the Document is in part a
-textbook of mathematics, a Secondary Section may not explain any
-mathematics.) The relationship could be a matter of historical
-connection with the subject or with related matters, or of legal,
-commercial, philosophical, ethical or political position regarding
-them.
-
-The ``Invariant Sections'' are certain Secondary Sections whose titles
-are designated, as being those of Invariant Sections, in the notice
-that says that the Document is released under this License. If a
-section does not fit the above definition of Secondary then it is not
-allowed to be designated as Invariant. The Document may contain zero
-Invariant Sections. If the Document does not identify any Invariant
-Sections then there are none.
-
-The ``Cover Texts'' are certain short passages of text that are listed,
-as Front-Cover Texts or Back-Cover Texts, in the notice that says that
-the Document is released under this License. A Front-Cover Text may
-be at most 5 words, and a Back-Cover Text may be at most 25 words.
-
-A ``Transparent'' copy of the Document means a machine-readable copy,
-represented in a format whose specification is available to the
-general public, that is suitable for revising the document
-straightforwardly with generic text editors or (for images composed of
-pixels) generic paint programs or (for drawings) some widely available
-drawing editor, and that is suitable for input to text formatters or
-for automatic translation to a variety of formats suitable for input
-to text formatters. A copy made in an otherwise Transparent file
-format whose markup, or absence of markup, has been arranged to thwart
-or discourage subsequent modification by readers is not Transparent.
-An image format is not Transparent if used for any substantial amount
-of text. A copy that is not ``Transparent'' is called ``Opaque''.
-
-Examples of suitable formats for Transparent copies include plain
-ASCII without markup, Texinfo input format, \LaTeX\ input format, SGML
-or XML using a publicly available DTD, and standard-conforming simple
-HTML, PostScript or PDF designed for human modification. Examples of
-transparent image formats include PNG, XCF and JPG. Opaque formats
-include proprietary formats that can be read and edited only by
-proprietary word processors, SGML or XML for which the DTD and/or
-processing tools are not generally available, and the
-machine-generated HTML, PostScript or PDF produced by some word
-processors for output purposes only.
-
-The ``Title Page'' means, for a printed book, the title page itself,
-plus such following pages as are needed to hold, legibly, the material
-this License requires to appear in the title page. For works in
-formats which do not have any title page as such, ``Title Page'' means
-the text near the most prominent appearance of the work's title,
-preceding the beginning of the body of the text.
-
-A section ``Entitled XYZ'' means a named subunit of the Document whose
-title either is precisely XYZ or contains XYZ in parentheses following
-text that translates XYZ in another language. (Here XYZ stands for a
-specific section name mentioned below, such as ``Acknowledgements'',
-``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title''
-of such a section when you modify the Document means that it remains a
-section ``Entitled XYZ'' according to this definition.
-
-The Document may include Warranty Disclaimers next to the notice which
-states that this License applies to the Document. These Warranty
-Disclaimers are considered to be included by reference in this
-License, but only as regards disclaiming warranties: any other
-implication that these Warranty Disclaimers may have is void and has
-no effect on the meaning of this License.
-
-
-\section{VERBATIM COPYING}
-
-\label{verbatim}
-
-You may copy and distribute the Document in any medium, either
-commercially or noncommercially, provided that this License, the
-copyright notices, and the license notice saying this License applies
-to the Document are reproduced in all copies, and that you add no other
-conditions whatsoever to those of this License. You may not use
-technical measures to obstruct or control the reading or further
-copying of the copies you make or distribute. However, you may accept
-compensation in exchange for copies. If you distribute a large enough
-number of copies you must also follow the conditions in
-section~\ref{copying}.
-
-You may also lend copies, under the same conditions stated above, and
-you may publicly display copies.
-
-
-\section{COPYING IN QUANTITY}
-
-\label{copying}
-
-If you publish printed copies (or copies in media that commonly have
-printed covers) of the Document, numbering more than 100, and the
-Document's license notice requires Cover Texts, you must enclose the
-copies in covers that carry, clearly and legibly, all these Cover
-Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
-the back cover. Both covers must also clearly and legibly identify
-you as the publisher of these copies. The front cover must present
-the full title with all words of the title equally prominent and
-visible. You may add other material on the covers in addition.
-Copying with changes limited to the covers, as long as they preserve
-the title of the Document and satisfy these conditions, can be treated
-as verbatim copying in other respects.
-
-If the required texts for either cover are too voluminous to fit
-legibly, you should put the first ones listed (as many as fit
-reasonably) on the actual cover, and continue the rest onto adjacent
-pages.
-
-If you publish or distribute Opaque copies of the Document numbering
-more than 100, you must either include a machine-readable Transparent
-copy along with each Opaque copy, or state in or with each Opaque copy
-a computer-network location from which the general network-using
-public has access to download using public-standard network protocols
-a complete Transparent copy of the Document, free of added material.
-If you use the latter option, you must take reasonably prudent steps,
-when you begin distribution of Opaque copies in quantity, to ensure
-that this Transparent copy will remain thus accessible at the stated
-location until at least one year after the last time you distribute an
-Opaque copy (directly or through your agents or retailers) of that
-edition to the public.
-
-It is requested, but not required, that you contact the authors of the
-Document well before redistributing any large number of copies, to give
-them a chance to provide you with an updated version of the Document.
-
-
-\section{MODIFICATIONS}
-
-\label{modifications}
-
-You may copy and distribute a Modified Version of the Document under
-the conditions of sections~\ref{verbatim} and \ref{copying} above,
-provided that you release
-the Modified Version under precisely this License, with the Modified
-Version filling the role of the Document, thus licensing distribution
-and modification of the Modified Version to whoever possesses a copy
-of it. In addition, you must do these things in the Modified Version:
-
-%\begin{enumerate}
-\smallskip
-\itemletter = `A
-\def\item{\vskip\interitemskip \char\itemletter. \advance\itemletter by 1}
-\item Use in the Title Page (and on the covers, if any) a title distinct
- from that of the Document, and from those of previous versions
- (which should, if there were any, be listed in the History section
- of the Document). You may use the same title as a previous version
- if the original publisher of that version gives permission.
-\item List on the Title Page, as authors, one or more persons or entities
- responsible for authorship of the modifications in the Modified
- Version, together with at least five of the principal authors of the
- Document (all of its principal authors, if it has fewer than five),
- unless they release you from this requirement.
-\item State on the Title page the name of the publisher of the
- Modified Version, as the publisher.
-\item Preserve all the copyright notices of the Document.
-\item Add an appropriate copyright notice for your modifications
- adjacent to the other copyright notices.
-\item Include, immediately after the copyright notices, a license notice
- giving the public permission to use the Modified Version under the
- terms of this License, in the form shown in the Addendum below.
-\item Preserve in that license notice the full lists of Invariant Sections
- and required Cover Texts given in the Document's license notice.
-\item Include an unaltered copy of this License.
-\item Preserve the section Entitled ``History'', Preserve its Title, and add
- to it an item stating at least the title, year, new authors, and
- publisher of the Modified Version as given on the Title Page. If
- there is no section Entitled ``History'' in the Document, create one
- stating the title, year, authors, and publisher of the Document as
- given on its Title Page, then add an item describing the Modified
- Version as stated in the previous sentence.
-\item Preserve the network location, if any, given in the Document for
- public access to a Transparent copy of the Document, and likewise
- the network locations given in the Document for previous versions
- it was based on. These may be placed in the ``History'' section.
- You may omit a network location for a work that was published at
- least four years before the Document itself, or if the original
- publisher of the version it refers to gives permission.
-\item For any section Entitled ``Acknowledgements'' or ``Dedications'',
- Preserve the Title of the section, and preserve in the section all
- the substance and tone of each of the contributor acknowledgements
- and/or dedications given therein.
-\item Preserve all the Invariant Sections of the Document,
- unaltered in their text and in their titles. Section numbers
- or the equivalent are not considered part of the section titles.
-\item Delete any section Entitled ``Endorsements''. Such a section
- may not be included in the Modified Version.
-\item Do not retitle any existing section to be Entitled ``Endorsements''
- or to conflict in title with any Invariant Section.
-\item Preserve any Warranty Disclaimers.
-
-\smallskip
-%\end{enumerate}
-
-If the Modified Version includes new front-matter sections or
-appendices that qualify as Secondary Sections and contain no material
-copied from the Document, you may at your option designate some or all
-of these sections as invariant. To do this, add their titles to the
-list of Invariant Sections in the Modified Version's license notice.
-These titles must be distinct from any other section titles.
-
-You may add a section Entitled ``Endorsements'', provided it contains
-nothing but endorsements of your Modified Version by various
-parties--for example, statements of peer review or that the text has
-been approved by an organization as the authoritative definition of a
-standard.
-
-You may add a passage of up to five words as a Front-Cover Text, and a
-passage of up to 25 words as a Back-Cover Text, to the end of the list
-of Cover Texts in the Modified Version. Only one passage of
-Front-Cover Text and one of Back-Cover Text may be added by (or
-through arrangements made by) any one entity. If the Document already
-includes a cover text for the same cover, previously added by you or
-by arrangement made by the same entity you are acting on behalf of,
-you may not add another; but you may replace the old one, on explicit
-permission from the previous publisher that added the old one.
-
-The author(s) and publisher(s) of the Document do not by this License
-give permission to use their names for publicity for or to assert or
-imply endorsement of any Modified Version.
-
-
-\section{COMBINING DOCUMENTS}
-
-\label{combining}
-
-You may combine the Document with other documents released under this
-License, under the terms defined in section~\ref{modifications}
-above for modified
-versions, provided that you include in the combination all of the
-Invariant Sections of all of the original documents, unmodified, and
-list them all as Invariant Sections of your combined work in its
-license notice, and that you preserve all their Warranty Disclaimers.
-
-The combined work need only contain one copy of this License, and
-multiple identical Invariant Sections may be replaced with a single
-copy. If there are multiple Invariant Sections with the same name but
-different contents, make the title of each such section unique by
-adding at the end of it, in parentheses, the name of the original
-author or publisher of that section if known, or else a unique number.
-Make the same adjustment to the section titles in the list of
-Invariant Sections in the license notice of the combined work.
-
-In the combination, you must combine any sections Entitled ``History''
-in the various original documents, forming one section Entitled
-``History''; likewise combine any sections Entitled ``Acknowledgements'',
-and any sections Entitled ``Dedications''. You must delete all sections
-Entitled ``Endorsements''.
-
-
-\section{COLLECTIONS OF DOCUMENTS}
-
-\label{collections}
-
-You may make a collection consisting of the Document and other documents
-released under this License, and replace the individual copies of this
-License in the various documents with a single copy that is included in
-the collection, provided that you follow the rules of this License for
-verbatim copying of each of the documents in all other respects.
-
-You may extract a single document from such a collection, and distribute
-it individually under this License, provided you insert a copy of this
-License into the extracted document, and follow this License in all
-other respects regarding verbatim copying of that document.
-
-
-\section{AGGREGATION WITH INDEPENDENT WORKS}
-
-\label{aggregation}
-
-A compilation of the Document or its derivatives with other separate
-and independent documents or works, in or on a volume of a storage or
-distribution medium, is called an ``aggregate'' if the copyright
-resulting from the compilation is not used to limit the legal rights
-of the compilation's users beyond what the individual works permit.
-When the Document is included in an aggregate, this License does not
-apply to the other works in the aggregate which are not themselves
-derivative works of the Document.
-
-If the Cover Text requirement of section~\ref{copying} is applicable to
-these copies of the Document, then if the Document is less than one half
-of the entire aggregate, the Document's Cover Texts may be placed on
-covers that bracket the Document within the aggregate, or the
-electronic equivalent of covers if the Document is in electronic form.
-Otherwise they must appear on printed covers that bracket the whole
-aggregate.
-
-\section{TRANSLATION}
-
-\label{translation}
-
-Translation is considered a kind of modification, so you may
-distribute translations of the Document under the terms of
-section~\ref{modifications}.
-Replacing Invariant Sections with translations requires special
-permission from their copyright holders, but you may include
-translations of some or all Invariant Sections in addition to the
-original versions of these Invariant Sections. You may include a
-translation of this License, and all the license notices in the
-Document, and any Warranty Disclaimers, provided that you also include
-the original English version of this License and the original versions
-of those notices and disclaimers. In case of a disagreement between
-the translation and the original version of this License or a notice
-or disclaimer, the original version will prevail.
-
-If a section in the Document is Entitled ``Acknowledgements'',
-``Dedications'', or ``History'', the requirement
-(section~\ref{modifications}) to Preserve
-its Title (section~\ref{applicability}) will typically require
-changing the actual title.
-
-
-\section{TERMINATION}
-
-\label{termination}
-
-You may not copy, modify, sublicense, or distribute the Document except
-as expressly provided for under this License. Any other attempt to
-copy, modify, sublicense or distribute the Document is void, and will
-automatically terminate your rights under this License. However,
-parties who have received copies, or rights, from you under this
-License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-
-\section{FUTURE REVISIONS OF THIS LICENSE}
-
-\label{future}
-
-The Free Software Foundation may publish new, revised versions
-of the GNU Free Documentation License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns. See
-http://www.gnu.org/copyleft/.
-
-Each version of the License is given a distinguishing version number.
-If the Document specifies that a particular numbered version of this
-License ``or any later version'' applies to it, you have the option of
-following the terms and conditions either of that specified version or
-of any later version that has been published (not as a draft) by the
-Free Software Foundation. If the Document does not specify a version
-number of this License, you may choose any version ever published (not
-as a draft) by the Free Software Foundation.
-
-
-% this section title is so long, it messes up everything.
-% don't put it in the headline and don't write it to the toc
-\let\markinfo=\gobble
-\let\writetocentry=\gobbletwo
-\section{\vtop{\noindent ADDENDUM: How to use this License
- \\for your documents\hfil}}
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and
-license notices just after the title page:
-
-%\begin{quote}
-\smallskip
-{\narrower\obeylines\eightrm\baselineskip=10pt
- Copyright \copyright\ YEAR YOUR NAME.
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.2
- or any later version published by the Free Software Foundation;
- with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
- A copy of the license is included in the section entitled ``GNU
- Free Documentation License''.
-\par}
-%\end{quote}
-\smallskip
-
-If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
-replace the ``with...Texts.'' line with this:
-
-\smallskip
-{\narrower\obeylines\eightrm\baselineskip=10pt
- with the Invariant Sections being LIST THEIR TITLES, with the
- Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
-\par}
-\smallskip
-
-If you have Invariant Sections without Cover Texts, or some other
-combination of the three, merge those two alternatives to suit the
-situation.
-
-If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License,
-to permit their use in free software.
-
-\endgroup
-
-\endchapter\byebye
diff --git a/Master/texmf-doc/doc/english/impatient/fonts.tex b/Master/texmf-doc/doc/english/impatient/fonts.tex
deleted file mode 100644
index ad10cf4e455..00000000000
--- a/Master/texmf-doc/doc/english/impatient/fonts.tex
+++ /dev/null
@@ -1,241 +0,0 @@
-% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
-% See file fdl.tex for copying conditions.
-
-% Fonts for TeX for the Impatient.
-
-% This file is being distributed with the macros because the macro file
-% refers to it. We used a combination of Bitstream and standard TeX
-% fonts for the original printed book, but for the free edition, we
-% stick to Computer Modern.
-% -----------------------------------------------------------------------
-%
-% We used Computer Modern for the main text and math, and Zapf Humanist
-% (i.e., Optima) for heads. (bs00015 is Optima Roman, 16 italic, 17
-% bold, 18 bold italic.)
-%
-% First we define all of the fonts we use for any purpose, in terms of the
-% font files. Later we define fonts functionally, using \let or \def.
-
-% Computer Modern fonts.
-%
-\font\fiverm = cmr5
-\font\eightrm = cmr8
-\font\ninerm = cmr9 % Glue pictures, small caps for ASCII.
-%\font\tenrm = xcmr10 % with our kerning
-\font\tenrm = cmr10 % don't have the xcmr10 source any more
-\font\oldtenrm = cmr10 % straight CM
-\font\twelverm = cmr12
-\font\twentysixrm = cmr10 at 26pt
-%
-\font\eightit = cmti8
-\font\nineit = cmti9
-\font\tenit = cmti10
-%
-\font\eighttt = cmtt8
-\font\eleventt = cmtt10 at 11pt
-\font\twelvett = cmtt10 scaled \magstep2
-%
-\font\tenbt = cmtt10
-%
-\font\elevensf = cmss10 scaled\magstephalf
-\font\fourteensf = cmss10 scaled\magstep2
-%
-\font\eightbf = cmbx8
-\font\tenbf = cmbx10
-\font\elevenbf = cmbx10 scaled \magstephalf
-\font\twelvebf = cmbx12
-\font\thirtysixbf = cmbx10 at 36pt
-%
-\font\tenbi = cmbxti10
-\font\elevenbi= cmbxti10 scaled \magstephalf
-\font\fourteenbi= cmbxti10 scaled \magstep2
-%
-\font\tensc = cmcsc10
-\font\eightsl = cmsl8
-\font\eighti = cmmi8
-\font\eightsy = cmsy8
-
-% % Optima fonts.
-% %
-% \font\eightopt = bs0015 at 8pt
-% \font\nineopt = bs0015 at 9pt
-% \font\twelveopt = bs0015 at 12pt
-% \font\twentysixopt = bs0015 at 26pt
-% \font\nineoptit = bs0016 at 9pt
-% \font\tenoptit = bs0016 at 10pt
-% \font\tenoptbf = bs0017 at 10pt
-% \font\thirtysixoptbf = bs0017 at 36pt
-% \font\tenbt = bs00175 at 10pt
-% \font\tenoptbi = bs0018 at 10pt
-% \font\elevenoptbi = bs0018 at 11pt
-% \font\fourteenoptbi = bs0018 at 14pt
-
-% Palatino fonts.
-%
-\font\tenpal = pplr
-%\font\tenpal = bs0023
-%\font\tenpalit = bs0024
-%\font\tenpalbf = bs0025
-%\font\tenpalbi = bs0026
-
-% Logo and picture fonts.
-%
-\font\eightlogo = logo8
-\font\logosl = logosl10
-\font\handfont = pzdr
-
-% The following changes are to avoid driver overflow
-\ifmsdos
- \font\cnum = cnum % 36-pt bold Optima, numbers only (just for MS-DOS)
- \let\chapternumeralfont = \cnum
- %\let\thirtysixoptbf = \twentysixopt
- %\font\sevensy = cmsy8
- %\font\seveni = cmmi8
-\fi
-
-\def\undefinedfont{\errmessage{Undefined font}}
-
-% This should only be called when \rm et al. are going to be defined
-% directly.
-%
-\def\clearfonts{\let\rm = \undefinedfont \let\bf = \undefinedfont
- \let\it = \undefinedfont \let\bi = \undefinedfont
- \let\tt = \undefinedfont \let\bt = \undefinedfont
- \let\sc = \undefinedfont
- \let\ss = \undefinedfont
-}
-
-% We only need to assign to \fam if the font is going to be used in math
-% mode, which isn't the case with any of these. \rm, \it, \sl, \bf, and
-% \tt are defined in plain.
-%
-\def\bi{\tenbi}
-
-\def\mapquotes{\catcode`` = \active \catcode`' = \active}
-{\mapquotes
- \gdef\bt{% The font change also draws \ ` ' from a different font.
- \tenbt
- \def\\{{\tentt \char92}}%
- \def`{{\tentt \char96}}\def'{{\tentt \char39}}%
- }
-}
-
-\def\bti{\tenbi}
-\def\sc{\tensc}
-
-% Text fonts.
-%
-\def\textfonts{%
- \def\rm{\fam0\tenrm}%
- \textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm
- \textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei
- \textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
- \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
- \def\it{\fam\itfam\tenit}\textfont\itfam=\tenit
- \def\sl{\fam\slfam\tensl}\textfont\slfam=\tensl
- \def\bf{\fam\bffam\tenbf}\textfont\bffam=\tenbf
- \scriptfont\bffam=\sevenbf \scriptscriptfont\bffam=\fivebf
- \def\tt{\fam\ttfam\tentt}\textfont\ttfam=\tentt
- \let\sc = \tensc
- \setbox\strutbox=\hbox{\vrule height8.5pt depth3.5pt width\z@}%
- \normalbaselineskip=12pt
- \normalbaselines \rm
-}
-
-
-% Footnote fonts. We generally use eight point.
-%
-\def\footnotefonts{%
- \def\rm{\fam0\eightrm}%
- \textfont0=\eightrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm
- \textfont1=\eighti \scriptfont1=\seveni \scriptscriptfont1=\fivei
- \textfont2=\eightsy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
- \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
- \def\it{\fam\itfam\eightit}\textfont\itfam=\eightit
- \def\sl{\fam\slfam\eightsl}\textfont\slfam=\eightsl
- \def\bf{\fam\bffam\eightbf}\textfont\bffam=\eightbf
- \scriptfont\bffam=\sevenbf \scriptscriptfont\bffam=\fivebf
- \def\tt{\fam\ttfam\eighttt}\textfont\ttfam=\eighttt
- \let\sc = \eightsc
- \setbox\strutbox=\hbox{\vrule height7pt depth2pt width\z@}%
- \normalbaselineskip=9pt
- \normalbaselines \rm
-}
-
-% Fonts for the example titles. They are defined in the first example,
-% also.
-%
-
-\def\exampletitlefonts{\clearfonts
- \let\bf = \elevenbf
- \let\bi = \elevenbi
- \baselineskip = 13pt \bf
-}
-
-% Fonts for the subsection titles.
-%
-\def\subsectionfonts{\clearfonts \let\sf = \elevensf
- \baselineskip = 12pt \sf
-}
-
-
-% Fonts for the section titles.
-%
-\def\sectionfonts{\clearfonts \let\sf = \fourteensf
- \baselineskip = 16pt \sf
-}
-
-% Fonts for the chapter titles.
-%
-\let\chapternumeralfont = \thirtysixbf
-
-\def\chapterfonts{\clearfonts \let\bf = \twentysixrm
- \baselineskip = 32pt \bf
-}
-
-% Fonts for the table of contents.
-%
-\def\shorttocfonts{\clearfonts \let\rm = \twelverm
- \baselineskip = 20pt \rm
-}
-
-\def\tocfonts{\clearfonts \let\rm = \ninerm
- \let\it = \tenit \let\bf = \tenbf
- \baselineskip = 12pt \rm
-}
-
-% Fonts for the index.
-%
-
-\def\indexfonts{\clearfonts
- \let\rm = \eightrm
- \let\it = \eightit
- \let\tt = \eighttt
- \let\sc = \tensc
- \let\sl = \eightsl
- \textfont2 = \eightsy % For \AMSTeX.
- \let\mflogo = \eightlogo % For \Metafont.
- \normalbaselineskip = 10pt \normallineskip = 1.5pt \normalbaselines
- \setbox\strutbox=\hbox{\vrule height 7.5pt depth2.5pt width0pt}%
- \rm
-}
-
-% Fonts for the inside back cover.
-%
-\def\conceptpagefonts{\clearfonts
- \let\rm = \ninerm
- \let\sc = \eightrm
- \let\sl = \nineit
- \baselineskip = 12pt
- \rm
-}
-
-% We don't want any automatic hyphenation within the code font
-
-\hyphenchar\tentt = -1
-\hyphenchar\eighttt = -1
-
-
-
-\textfonts
diff --git a/Master/texmf-doc/doc/english/impatient/frontm.tex b/Master/texmf-doc/doc/english/impatient/frontm.tex
deleted file mode 100644
index 40a0189f5b5..00000000000
--- a/Master/texmf-doc/doc/english/impatient/frontm.tex
+++ /dev/null
@@ -1,82 +0,0 @@
-% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
-% See file fdl.tex for copying conditions.
-%
-% Front matter.
-
-\input macros
-
-
-% Frontmatter is numbered i, ii, ...
-\pageno = -1
-
-
-% Bastard title.
-%
-% \sinkage
-\leftline{\chapterfonts \TeX\ for the Impatient}
-
-\noheadlinetrue\pagebreak
-
-
-% Title spread.
-%
-%(title page, lhs)
-%\noheadlinetrue\pagebreak
-\blankpage
-
-%(title page, rhs)
-%\noheadlinetrue\pagebreak
-\blankpage
-
-
-{\input copyrght }
-\noheadlinetrue
-
-
-% Dedication.
-%
-\sinkage
-{\it \flushright
- For Jodi.
- ---{\sc p.w.a.}
-
- In memory of my father,
- who had faith in me.
- ---{\sc k.a.h.}
-
- For 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 preface }
-
-% Contents.
-%
-% We never want to empty the file after doing the brief contents.
-%
-\rewritetocfilefalse
-%
-\blankpage
-\frontchapter{Brief\linebreak contents}
-
-\shortcontents
-
-
-\ifcompletebook \global\rewritetocfiletrue \fi
-
-\frontchapter{Contents}
-
-\contents
-
-\blankpage
-{\input read1st }
-
-\byebye
diff --git a/Master/texmf-doc/doc/english/impatient/genops.tex b/Master/texmf-doc/doc/english/impatient/genops.tex
deleted file mode 100644
index 46bc83a1a88..00000000000
--- a/Master/texmf-doc/doc/english/impatient/genops.tex
+++ /dev/null
@@ -1,2827 +0,0 @@
-% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
-% See file fdl.tex for copying conditions.
-
-\input macros
-\chapter {Commands for \linebreak general operations}
-
-\chapterdef{general}
-
-This section covers
-\TeX's ^{programming features} and
-everything else that doesn't fit into the categories
-of commands in the previous chapters.
-For an explanation of the conventions used in this section,
-see \headcit{Descriptions of the commands}{cmddesc}.
-
-\begindescriptions
-
-%==========================================================================
-\section {Naming and modifying fonts}
-
-\begindesc
-\bix^^{fonts//naming and modifying}
-\cts font {}
-\aux\cts font {\<control sequence> = \<fontname>}
-\aux\cts font {\<control sequence> = \<fontname> {\bt scaled} \<number>}
-\aux\cts font {\<control sequence> = \<fontname> {\bt at} \<dimen>}
-\explain
-Used alone, the |\font| control sequence designates the current font.
-|\font| isn't a true command when it's used alone,
-since it then can appear only as an argument to another command.
-
-For the other three forms of |\font|,
-\<font\-name> names a set of files that define a font.
-These forms of |\font| are commands. Each of these forms has two effects:
-{\tighten
-\olist
-\li It defines \<control sequence> as a name that selects
-the font \<font\-name>, possibly magnified (see below).
-\li It causes \TeX\ to load the font ^{metrics file}
-(^{\tfmfile}) for \<fontname>.
-\endolist
-}% end tighten
-
-\noindent
-The name of a font file usually indicates its design size.
-For example, |cmr10| indicates Computer Modern roman with a
-design size of $10$ points.
-The design size of a font is recorded in its metrics file.
-
-If neither |scaled| \<number> nor |at| \<dimen>
-is present, the font is used
-at its design size---the size at which it usually looks best.
-Otherwise, a magnified version of the font is loaded:
-\ulist
-\li If |scaled| \<number>
-is present, the font is magnified by a factor of $\hbox{\<number>}/1000$.
-\li If |at| \<dimen> is present, the font is scaled to \<dimen> by magnifying
-it by $\hbox{\<dimen>}/ds$, where $ds$ is the design size of
-\<fontname>.
-\<dimen> and $ds$ are nearly always given in points.
-\endulist
-\noindent
-Magnifications of less than $1$ are possible; they reduce the size.
-
-You usually need to provide a shape file (\xref{shape}) for each
-magnification of a font that you load.
-However, some ^{device drivers} can utilize fonts that are resident
-in a printer. ^^{resident fonts}
-Such fonts don't need shape files.
-
-See \conceptcit{font} and
-\conceptcit{magnification} for further information.
-
-\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 {\<number> \<font>\param{dimen}}
-\explain
-^^{fonts//parameters of}
-These parameters specify various dimensions associated with
-the font named by the control sequence \<font>
-(as distinguished from the \<font\-name> that names the font files).
-Values of these parameters are specified in the metrics
-file for \<font>, but you can
-retrieve or change their values during a \TeX\ run.
-The numbers and meanings of the parameters are:
-\display{\halign{\hfil#\hfil\quad&#\hfil\cr
-\it Number&\it Meaning\cr
-\noalign{\vskip 1\jot}%
-1&slant per point\cr
-2&interword space\cr
-3&interword stretch\cr
-4&interword shrink\cr
-5&x-height (size of |1ex|)\cr
-6&quad width (size of |1em|)\cr
-7&extra space\cr}}
-\noindent
-\TeX\ uses the slant per point for positioning accents.
-It uses the interword parameters for producing interword spaces
-(see |\spaceskip|, \xref\spaceskip) and the extra space parameter
-for the additional space after a period (see |\xspaceskip|,
-\xref\xspaceskip).
-The values of these parameters for the
-\plainTeX\ fonts are enumerated on \knuth{page~433}.
-Math symbol fonts have $15$ additional parameters, which we won't discuss here.
-
-Beware:
-assignments to these parameters are \emph{not} undone at the end
-of a group.
-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.
-\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 =} \<number>}
-\cts mag {\param{number}}
-\explain
-\margin{{\tt\\mag} and {\tt\\magnification} combined.}
-An assignment to |\magnification| establishes
-the ``^{scale factor}'' $f$ that determines
-the \minref{magnification} ratio of your document \seeconcept{magnification}.
-The assignment to |\magni!-fication| must occur before the first page
-of your document has been shipped out.
-
-The assignment sets $f$ to \<number> and also
-sets |\hsize| and |\vsize|
-^^|\hsize//set by {\tt\\magnification}|
-^^|\vsize//set by {\tt\\magnification}|
-respectively to |6.5true in| and |8.9true in|,
-the values appropriate for an $8 \frac1/2$-%
-by-$11$-inch page.
-$f$ must be between $0$ and $32768$.
-The \minref{magnification} ratio of the
-document is $f/1000$.
-A scale factor
-of $1000$ provides unit magnification, i.e., it leaves the size of your
-document
-unchanged. It's customary to use powers of $1.2$ as scale factors, and
-most libraries of fonts are based on such factors. You can use the
-^|\magstep| and ^|\magstephalf| commands to specify magnifications by
-these factors.
-
-|\magnification| is not a parameter. You can't use it
-to \emph{retrieve} the scale factor. If you write something like
-|\dimen0 = \mag!-nifi!-cation|, \TeX\ will complain about it.
-
-The |\mag| parameter contains the scale factor.
-Changing the value of |\mag| rescales the page dimensions, which is not
-usually what you want.
-Therefore it's usually better to change the magnification by
-assigning to |\magnification| rather than to |\mag|.
-
-\example
-\magnification = \magstep2
-% magnify fonts by 1.44 (=1.2x1.2)
-|
-\endexample
-\enddesc
-
-\begindesc
-\cts magstep {\<number>}
-\explain
-This command expands to the \minref{magnification} ratio needed to
-magnify everything in your document
-(other than |true| dimensions)
-by $1.2^r$, where $r$ is
-the value of \<number>. \<number> must be between $0$ and $5$.
-\example
-\magnification = \magstep1 % Magnify by ratio of 1.2.
-|
-\endexample
-\enddesc
-
-\begindesc
-\cts magstephalf {}
-\explain
-This command expands to the \minref{magnification} ratio needed to
-magnify everything in your document
-(other than |true| dimensions)
-by $\sqrt{1.2}$,
-i.e., halfway between $1$ and $1.2$.
-\example
-\magnification = \magstephalf
-|
-\endexample
-\eix^^{fonts//naming and modifying}
-\enddesc
-
-%==========================================================================
-\section {Converting information to tokens}
-
-\subsection {Numbers}
-
-\begindesc
-\xrdef{convert}
-\bix^^{numbers//converting to characters}
-%
-\cts number {\<number>}
-\explain
-This command produces the representation of a \minref{number}
-as a sequence of
-character \minref{token}s. The number can be either an explicit integer,
-a \<number> parameter, or a \<number> register.
-\example
-\number 24 \quad \count13 = -10000 \number\count13
-|
-\produces
-\number 24 \quad \count13 = -10000 \number\count13
-\endexample
-\enddesc
-
-\begindesc
-^^{Roman numerals}
-\easy\cts romannumeral {\<number>}
-\explain
-This command produces the roman numeral representation of a \minref{number}
-as a sequence of
-character \minref{token}s. The number can be either an explicit integer,
-a \<number> parameter, or a \<number> register.
-If the number is zero or negative, |\romannumeral| produces
-no 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^^{numbers//converting to characters}
-\enddesc
-
-%==========================================================================
-\subsection {Environmental information}
-
-\begindesc
-^^{time of day}
-\cts time {\param{number}}
-\explain
-\TeX\ sets this parameter to the
-number of minutes that have elapsed since midnight (of the current day).
-At noon, for instance, |\time| is $720$.
-This command and the next three make use of the time and date as
-recorded in your computer.
-\TeX\ retrieves them just once, at the beginning of your run, so |\time|
-at the end of the run always has the same value as |\time| at the
-beginning of the run (unless you've explicitly changed it).
-\enddesc
-
-\bix^^{date}
-\begindesc
-\cts day {\param{number}}
-\explain
-\TeX\ sets this parameter to the current day of the month. It is
-a number between $1$ and $31$.
-|\day| is set at the beginning of your run (see the comments on
-|\time| above).
-\enddesc
-
-\begindesc
-\cts month {\param{number}}
-\explain
-\TeX\ sets this parameter to the current month. It is
-a number between $1$ and $12$.
-|\month| is set at the beginning of your run (see the comments on
-|\time| above).
-\enddesc
-
-\begindesc
-\cts year {\param{number}}
-\explain
-\TeX\ sets this parameter to the current year ({\sc A.D.}).
-It is a number such as $1991$.
-|\year| is set at the beginning of your run (see the comments on
-|\time| above).
-
-\eix^^{date}
-\enddesc
-
-\begindesc
-^^{version number}
-\cts fmtname {}
-\cts fmtversion {}
-\explain
-These commands produce the name and version number
-of the \TeX\ format,
-e.g., \minref{\plainTeX} or ^{\LaTeX}, that you're using.
-\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
-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| is most useful when you're
-creating an auxiliary file to be associated with a document.
-^^{auxiliary files}
-\example
-\newwrite\indexfile \openout\indexfile = \jobname.idx
-% For input file `hatter.tex', open index file `hatter.idx'.
-|
-\endexample\enddesc
-
-%==========================================================================
-\subsection {Values of variables}
-
-\begindesc
-\cts meaning {\<token>}
-\explain
-^^{tokens//showing the meaning of}
-This command produces
-the meaning of \<token>. It is useful for diagnostic output.
-You can use the ^|\the| command (\xref\the) in a similar way
-to get information about the values of \minref{register}s and other
-\TeX\ entities.
-\example
-[{\tt \meaning\eject}] [\meaning\tenrm] [\meaning Y]
-|
-\produces
-[{\tt \meaning\eject}] [\meaning\tenrm] [\meaning Y]
-\endexample\enddesc
-
-\begindesc
-\cts string {\<control sequence>}
-\explain
-^^{control sequences//converting to strings}
-This command produces
-the characters that form the name of \<control sequence>,
-including the \minref{escape character}.
-The escape character is represented by the current value of
-^|\escapechar|.
-^^{escape character//represented by \b\tt\\escapechar\e}
-\TeX\ gives the characters in the list a category code of $12$ (other).
-
-You can perform the reverse operation with
-the ^|\csname| command (\xref \csname),
-which turns a string into a control sequence.
-\example
-the control sequence {\tt \string\bigbreak}
-|
-\produces
-the control sequence {\tt \string\bigbreak}
-\endexample\enddesc
-
-\begindesc
-\cts escapechar {\param{number}}
-\explain
-This parameter specifies the \ascii\ code \minrefs{\ascii} of the
-character that \TeX\ uses to represent the \minref{escape character}
-^^{escape character//represented by \b\tt\\escapechar\e}
-when it's
-converting a control sequence name to a sequence of character tokens.
-This conversion occurs when you use the |\string| command and also when
-\TeX\ is producing diagnostic messages. The default value of the escape
-character is $92$, the {\ascii} character code for a ^{backslash}.
-If |\escapechar| is not in the range $0$--$255$,
-\TeX\ does not include an escape character in the result of the conversion.
-\example
-\escapechar = `!!
-the control sequence {\tt \string\bigbreak}
-|
-\produces
-\escapechar = `!
-the control sequence {\tt \string\bigbreak}
-\endexample
-\enddesc
-
-\begindesc
-\cts fontname {\<font>}
-\explain
-^^{fonts//names of}
-This command produces the filename
-for \<font>. The filename is the \<font\-name> that was used to define
-\<font>.
-\example
-\font\myfive=cmr5 [\fontname\myfive]
-|
-\produces
-\font\myfive=cmr5 [\fontname\myfive]
-\endexample
-\enddesc
-
-
-%==========================================================================
-\section {Grouping}
-
-\begindesc
-\bix^^{groups}
-%
-\cts begingroup {}
-\cts endgroup {}
-\explain
-These two commands begin and end a \minref{group}.
-A |\begingroup| does not match up with a right brace,
-nor an |\endgroup| with a left brace.
-
-\TeX\ treats |\begingroup| and |\endgroup| like any other
-\minref{control sequence} when it's scanning its input. In particular,
-you can define a \minref{macro} that contains a |\begingroup|
-but not an |\endgroup|, and conversely.
-^^{macros//using \b\tt\\begingroup\e\ and \b\tt\\endgroup\e\ in}
-This technique is often useful
-when you're defining paired macros, one of which establishes
-an environment and the other of which terminates that environment.
-You can't, however, use |\begingroup| and |\endgroup| as substitutes for
-braces other than the ones that surround a group.
-\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
-The left and right braces are commands that begin and end a
-\minref{group}.
-The |\bgroup| and |\egroup| \minref{control sequence}s are equivalent
-to `|{|' and `|}|', except that
-\TeX\ treats |\bgroup| and |\egroup| like any other
-\minref{control sequence} when it's scanning its input.
-
-|\bgroup| and |\egroup| can be useful when you're
-defining paired macros, one of which
-starts a brace-delimited construct (not necessarily a group)
-and the other one of which ends that construct.
-^^{macros//using \b\tt\\bgroup\e\ and \b\tt\\egroup\e\ in}
-You can't define such macros using ordinary braces---if you try,
-your macro definitions will contain unmatched braces
-and will therefore be unacceptable to \TeX.
-Usually you should use these commands only when you can't use
-ordinary braces.
-
-\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
-This command makes the following definition
-or \minref{assignment} \minref{global} \seeconcept{global} so that it
-becomes effective independent of \minref{group} boundaries.
-You can apply a |\global| prefix to any kind of definition
-or \minref{assignment},
-including a \minref{macro} definition or a \minref{register} assignment.
-\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{number}}
-\explain
-This parameter controls whether or not \TeX\ takes definitions
-and other assignments to be
-\minref{global}:
-\ulist
-\li If |\globaldefs| is zero (as it is by default), a definition is global
-if and only if it is preceded by |\global| either explicitly or implicitly.
-(The ^|\gdef| and ^|\xdef| commands (\xref\gdef) have an implicit
-|\global| prefix).
-\li If |\globaldefs| is greater than zero, all assignments and
-definitions are implicitly prefixed by ^|\global|.
-\li If |\globaldefs| is less than zero, all ^|\global| prefixes are ignored.
-\endulist
-\enddesc
-
-\begindesc
-\margin{Order of {\tt\\aftergroup} and {\tt\\afterassignment} changed.}
-\cts aftergroup {\<token>}
-\explain
-When \TeX\ encounters this command during input,
-it saves \<token>.
-After the end of the current \minref{group},
-it inserts \<token> back into the input and expands it.
-If a group contains several |\aftergroup|s, the corresponding tokens
-are \emph{all} inserted following the end of the group, in the order
-in which they originally appeared.
-
-The example that follows shows how you can use |\aftergroup| to postpone
-processing a token that you generate within a \minref{conditional test}.
-\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^^{groups}
-\enddesc
-
-\begindesc
-\cts afterassignment {\<token>}
-\explain
-When \TeX\ encounters this command it saves \<token> in a special
-place. After it next performs an \minref{assignment}, it inserts
-\<token> into the input and expands it. If you call |\afterassignment|
-more than once before an assignment, only the last call has any effect.
-One use of |\afterassignment|
-is in writing \minref{macro}s for commands intended to be written
-in the
-form of assignments, as in the example below.
-
-See \knuth{page~279} for a precise description
-of the behavior of |\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 {Defining macros}
-
-\begindesc
-\bix^^{macros}
-\bix^^{macros//defining}
-\xrdef{mac1}% begin the section on macros
-%
-\cts def {\<control sequence> \<parameter text> \rqbraces{\<replacement text>}}
-\explain
-This command defines \<control sequence> as a \minref{macro} with the
-specified \<parameter text> and \<replacement text>.
-See \xrefpg{macro} for a full explanation of how to write a macro
-definition.
-\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 {\<control sequence> \<parameter text> \rqbraces{\<replacement text>}}
-\explain
-This command defines a macro in the same general way as |\def|.
-The difference is that \TeX\ expands the \<replacement text>
-of an |\edef| immediately (but still without executing anything).
-Thus any definitions within the \<replacement text> are expanded, but
-assignments and commands that produce things such as boxes and glue
-are left as is. For example, an |\hbox| command within
-the \<replacement text> of an |\edef| remains as a command and is not
-turned into a box as \TeX\ is processing the definition.
-It isn't always obvious what's expanded and what isn't, but you'll
-find a complete list of expandable control sequences on
-\knuth{pages~212--215}.
-
-You can inhibit the expansion of a control sequence that would otherwise
-be expanded by using |\no!-expand| (\xref\noexpand). ^^|\noexpand|
-You can postpone the expansion of a control sequence by using
-^|\expandafter| (\xref\expandafter).
-
-The |\write|, |\message|, |\errmessage|, |\wlog|, and |\csname|
-commands expand their
-token lists using the same rules that |\edef| uses to expand its
-replacement text.
-^^|\write//expanded by {\tt\\edef} rules|
-^^|\message//expanded by {\tt\\edef} rules|
-^^|\errmessage//expanded by {\tt\\edef} rules|
-^^|\wlog//expanded by {\tt\\edef} rules|
-^^|\csname//expanded by {\tt\\edef} rules|
-\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 {\<control sequence> \<parameter text> \rqbraces{\<replacement text>}}
-\explain
-This command is equivalent to |\global\def|.
-\enddesc
-
-\begindesc
-\cts xdef {\<control sequence> \<parameter text> \rqbraces{\<replacement text>}}
-\explain
-This command is equivalent to |\global\edef|.
-\enddesc
-
-\begindesc
-\cts long {}
-\explain
-This command is used as a prefix to a \minref{macro} definition.
-It tells \TeX\ that the arguments to the macro are permitted to include
-|\par| tokens (\xref{\@par}), which normally indicate the end of a paragraph.
-^^|\par//in macro arguments|
-If \TeX\
-tries to expand a macro defined without |\long| and any of
-the macro's arguments include a |\par| token,
-\TeX\ will complain about a runaway argument. The purpose
-of this behavior is to provide you with some protection against unterminated
-macro arguments.
-|\long| gives you a way of bypassing the 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}
-This command is used as a prefix to a \minref{macro} definition.
-It tells \TeX\ that the macro is outer (\xref{outer})
-and cannot be used in certain contexts.
-If the macro is used in a forbidden context, \TeX\ will complain.
-
-\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 {\<control sequence>=\<charcode>}
-\explain
-^^{characters//defined by \b\tt\\chardef\e}
-This command defines \<control sequence>
-to be \<charcode>.
-Although |\chardef| is most often used to define characters, you can also
-use it to give a name to a number in the range $0$--$255$ even when you
-aren't using that number as a character code.
-\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
-^^{math characters}
-^^{mathcodes}
-\cts mathchardef {\<control sequence>=\<mathcode>}
-\explain
-This command defines \<control sequence> as a math character
-with the given \minrefs{mathcode}\<mathcode>.
-The control sequence will only be legal in math mode.
-\example
-\mathchardef\alphachar = "010B % As in plain TeX.
-$\alphachar$
-|
-\produces
-\mathchardef\alphachar = "010B % As in plain TeX.
-$\alphachar$
-\endexample
-\eix^^{macros//defining}
-\enddesc
-
-%==========================================================================
-\subsection {Other definitions}
-
-\begindesc
-\cts let {\<control sequence> = \<token>}
-\explain
-^^{control sequences//defining with \b\tt\\let\e}
-\minrefs{token}
-This command causes
-\<control sequence> to acquire the current meaning of \<token>.
-Even if you redefine \<token> later, the meaning of \<control sequence>
-will not change. Although \<token> is most commonly a control sequence,
-it can also be a \minref{character} token.
-\enddesc
-
-\begindesc
-\cts futurelet {\<control sequence> \<token$_1$> \<token$_2$>}
-\explain
-This command tells \TeX\ to make \<token$_2$> the meaning of
-\<control sequence> (as would be done with |\let|), and then to
-process \<token$_1$> and \<token$_2$> normally.
-|\futurelet| is useful at the end of macro definitions
-because it gives you a way of looking beyond the token that \TeX\
-is about to process before it processes it.
-\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 {\<token list> {\bt \\endcsname}}
-\xrdef{\endcsname}
-\explain
-This command produces a control sequence from \<token list>.
-It provides a way of synthesizing control sequences,
-including ones that you can't normally write.
-\<token list> can itself include control sequences; it is expanded
-in the same way as the replacement text of an |\edef| definition (\xref\edef).
-If the final expansion
-yields anything that isn't a character, \TeX\ will complain.
-|\csname| goes from a list of tokens to a control sequence;
-you can go the other way with ^|\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 {Controlling expansion}
-
-\begindesc
-\bix^^{macros//controlling expansion of}
-\cts expandafter {\<token$_1$> \<token$_2$>}
-\explain
-This command tells \TeX\ to expand \<token$_1$> according to its rules
-for \minref{macro} expansion \emph{after} it has expanded \<token$_2$>
-by one level. It's useful when \<token$_1$> is something like `|{|'
-^^|{//with {\tt\\expandafter}|
-or ^|\string| that inhibits expansion of \<token$_2$>,
-but you want to expand \<token$_2$> nevertheless.
-\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
-This command tells \TeX\ to
-suppress expansion of \<token> if \<token> is a
-\minref{control sequence} that can be expanded.
-If \<token> can't be expanded, e.g., it's a letter,
-\TeX\ acts as though the |\noexpand| wasn't there
-and processes \<token> normally.
-In other words the expansion of `|\noexpand|\<token>'
-is simply \<token> no matter what \<token> happens to be.
-\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
-This command generally expands to a list of \minref{character} tokens
-that represents \<token>. \<token> can be any of the following:
-
-\ulist\compact
-\li a \TeX\ \minref{parameter}, e.g., |\parindent| or |\deadcycles|
-^^{parameters//using \b\tt\\the\e\ with}
-\li a \minref{register}, e.g., |\count0|
-^^{registers//with \b\tt\\the\e}
-\margin{Item for special registers removed}
-\li a code associated with an input character, e.g., |\catcode`(|
-\li a font parameter, e.g., |\fontdimen3\sevenbf|
-\li the ^|\hyphenchar| or ^|\skewchar| of a font, e.g.,
-|\skewchar\teni|
-\li ^|\lastpenalty|, ^|\lastskip|, or ^|\lastkern| (values derived from
-the last item on the current horizontal \minrefs{horizontal list}
-or \minref{vertical list})
-\li a control sequence defined by ^|\chardef| or
-^|\mathchardef|
-\endulist
-
-\noindent
-In addition, |\the| can expand to noncharacter tokens in the following two
-cases:
-\ulist\compact
-\li |\the| \<font>, which expands to the most recently defined
-control sequence that selects
-the same font as the control sequence \<font>
-\li |\the| \<token variable>, which expands to a copy of the value of the
-variable, e.g., |\the\everypar|
-\endulist
-
-See \knuth{pages~214--215} for a more detailed description of what
-|\the| does in various cases.
-\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{Converting information to tokens}{convert},
-|\showthe| (\xref\showthe).
-\par}
-
-\eix^^{macros//controlling expansion of}
-
-%==========================================================================
-\subsection {Conditional tests}
-
-\begindesc
-\xrdef{conds}
-\bix^^{conditional tests}
-%
-\ctspecial if {\<token$_1$> \<token$_2$>}\ctsxrdef{@if}
-\explain
-{\emergencystretch=1em
-This command tests if \<token$_1$> and \<token$_2$>
-have the same \minref{character} code, independent of their
-\minref{category code}s.
-Before performing the test, \TeX\ expands tokens following the |\if|
-until it obtains two tokens that can't be expanded further.
-These two tokens become \<token$_1$> and \<token$_2$>.
-The expansion
-includes replacing a control sequence |\let| equal to a character token
-by that character token.
-A \minref{control sequence} that can't be further expanded is
-considered to have character code $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
-^^{category codes//testing}
-This command tests if \<token$_1$> and \<token$_2$>
-have the same \minref{category code}.
-Before performing the test, \TeX\ expands tokens following the |\ifcat|
-until it obtains two tokens that can't be expanded further.
-These two tokens become \<token$_1$> and \<token$_2$>.
-The expansion
-includes replacing a control sequence |\let| equal to a character token
-by that character token.
-A \minref{control sequence} that can't be further expanded is
-considered to have category code $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
-This command tests if \<token$_1$> and \<token$_2$> agree.
-Unlike |\if| and |\ifcat|, |\ifx| does \emph{not} expand the tokens
-following |\ifx|, so \<token$_1$> and \<token$_2$> are the two
-tokens immediately after |\ifx|.
-There are three cases:
-\olist
-\li If one token is a \minref{macro} and the other one isn't,
-the tokens don't agree.
-\li If neither token is a macro, the tokens agree if:
-\olist
-\li both tokens are characters (or control sequences denoting characters) and
-their \minref{character} codes and \minref{category code}s agree, or
-\li both tokens refer to the same \TeX\ command,
-font, etc.
-\endolist
-\li If both tokens are macros, the tokens agree if:
-\olist\compact
-\li their ``first level'' expansions, i.e.,
-their replacement texts, are identical, and
-\li they have the same status with respect to ^|\long| (\xref\long)
-and ^|\outer| (\xref\outer).
-\endolist
-Note in particular that \emph{any two undefined control
-sequences agree}.
-\endolist
-\noindent
-This test is generally more useful than |\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
-^^{numbers//comparing}
-This command tests if \<number$_1$> and \<number$_2$>
-satisfy \<relation>, which must be either `|<|', `|=|', or `|>|'.
-The numbers can be constants such as |127|, count registers such as
-|\pageno| or |\count22|, or numerical parameters such as |\hbadness|.
-Before performing the test, \TeX\ expands tokens following the |\ifnum|
-until it obtains a sequence of tokens having
-the form \<number$_1$> \<relation> \<number$_2$>, followed by a token
-that can't be part of \<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 {\<number>}\ctsxrdef{@ifodd}
-\explain
-^^{numbers//testing for odd/even}
-This command tests if \<number> is odd.
-Before performing the test, \TeX\ expands tokens following the |\ifodd|
-until it obtains a sequence of tokens having the form \<number>,
-followed by a token that can't be part of \<number>.
-\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//comparing}
-This command tests if \<dimen$_1$> and \<dimen$_2$>
-satisfy \<relation>, which must be either `|<|', `|=|', or `|>|'.
-The dimensions can be constants such as |1in|, dimension registers
-such as |\dimen6|, or dimension parameters such as |\parindent|.
-Before performing the test, \TeX\ expands tokens following the |\ifdim|
-until it obtains a sequence of tokens having
-the form \<dimen$_1$> \<relation> \<dimen$_2$>, followed by a token
-that can't be part of \<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
-^^{horizontal mode//testing for}
-^^{vertical mode//testing for}
-^^{math mode//testing for}
-^^{internal mode//testing for}
-These commands test what \minref{mode} \TeX\ is in:
-\ulist
-\li |\ifhmode| is true if \TeX\ is in ordinary or restricted horizontal mode.
-\li |\ifvmode| is true if \TeX\ is in ordinary or internal vertical mode.
-\li |\ifmmode| is true if \TeX\ is in text math or display math mode.
-\li |\ifinner| is true if \TeX\ is in an ``internal'' mode:
-restricted horizontal, internal vertical, or text math.
-\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 {\<register>}\ctsxrdef{@ifhbox}
-\ctspecial ifvbox {\<register>}\ctsxrdef{@ifvbox}
-\ctspecial ifvoid {\<register>}\ctsxrdef{@ifvoid}
-\explain
-^^{hboxes//testing for}
-^^{vboxes//testing for}
-^^{boxes//testing if void}
-These commands test the contents of
-the box register numbered \<reg\-ister>.
-Let \<register> be $n$. Then:
-\ulist
-\li |\ifhbox| is true if |\box|$\,n$ is an \minref{hbox}.
-\li |\ifvbox| is true if |\box|$\,n$ is an \minref{vbox}.
-\li |\ifvoid| is true if |\box|$\,n$ is void, i.e, doesn't have
-a box in it.
-\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 {\<number>}\ctsxrdef{@ifeof}
-\explain
-^^{end of file, testing for}
-\minrefs{file}
-This command tests an input stream for end of file.
-It is true if input stream \<number> has not been opened,
-or has been opened and the associated file has been entirely read in
-(or doesn't exist).
-\enddesc
-
-\begindesc
-\ctspecial ifcase
-{\<number>\<case$_0$ text> {\bt \\or }\<case$_1$ text> {\bt \\or}
- $\ldots$ {\bt \\or} \<case$_n$ text>\hfil\break
-\hglue 3pc{\bt \\else} \<otherwise text> {\bt \\fi}}
-\ctsxrdef{@ifcase}
-\ctsxrdef{@or}
-\explain
-^^{case testing}
-This command introduces a test with numbered multiple cases.
-If \<num\-ber> has the value $k$, \TeX\ will expand \<case$_k$ text> if
-it exists, and \<other\-wise text> if it doesn't. You can omit the |\else|---%
-in this case, \TeX\ won't expand anything if none of the cases are satisfied.
-\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
-These commands are equivalent to tests that are always true or always
-false. The main use of these commands is in defining macros that keep
-track of the result of a 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
-This command introduces the ``false'' alternative of a conditional test.
-\enddesc
-
-\begindesc
-\ctspecial fi {} \ctsxrdef{@fi}
-\explain
-This command ends the text of a conditional test.
-\enddesc
-
-\begindesc
-\ctspecial newif {{\bt \\if}\<test name>}\ctsxrdef{@newif}
-\explain
-This command names a trio of control sequences with names |\alpha!-true|,
-|\alphafalse|,
-and |\ifalpha|, where |alpha| is \<test name>.
-You can use them to define your own tests by
-creating a logical variable that records
-true\slash false information:
-\ulist\compact
-\li |\alphatrue| sets the logical variable |alpha| true.
-\li |\alphafalse| sets the logical variable |alpha| false
-\li |\ifalpha| is a conditional test that is true if the logical
-variable |alpha| is true and false otherwise.
-\endulist
-The logical variable |alpha| doesn't really exist, but \TeX\ behaves as
-though it did. After |\newif\ifalpha|, the logical variable is initially
-false.
-
-|\newif| is an outer command, so you can't use it inside a macro
-definition.
-\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^^{conditional tests}
-\enddesc
-
-
-%==========================================================================
-\subsection {Repeated actions}
-
-{\def\test{{\bt \\if}$\Omega$}%
-\begindesc
-\bix^^{repeated actions}
-\bix^^{loops}
-\cts loop {$\alpha$ {\test} $\beta$ {\bt \\repeat}}
-\ctspecial repeat {}\ctsxrdef{@repeat}
-\explain
-These commands provide a looping construct for \TeX.
-Here $\alpha$ and $\beta$ are arbitrary sequences of commands
-and \test\ is any of the conditional tests described in
-\headcit{Conditional tests}{conds}.
-The |\repeat| replaces the |\fi| corresponding to the test,
-so you must not write an explicit |\fi| to terminate the test.
-Nor, unfortunately, can you associate an |\else| with the test.
-If you want to use the test in the opposite sense, you need to
-rearrange the test or
-define an auxiliary test with |\newif| (see above) and use that
-test in the sense you want (see the second example below).
-
-\TeX\ expands |\loop| as follows:
-\olist
-\li $\alpha$ is expanded.
-\li {\test} is performed. If the result is false, the loop is terminated.
-\li $\beta$ is expanded.
-\li The cycle is repeated.
-\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^^{repeated actions}
-\eix^^{loops}
-%
-\endexample
-\enddesc
-} % end scope of definition of \test
-
-%==========================================================================
-\subsection {Doing nothing}
-
-\begindesc
-\cts relax {}
-\explain
-This command tells \TeX\ to do nothing. It's useful in a context where
-you need to provide a command but there's nothing that you want \TeX\ to do.
-\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
-This command expands to no tokens at all.
-It differs from |\relax| in that it disappears after macro expansion.
-%
-\xrdef{mac2}% end the section on macros
-\eix^^{macros}
-\enddesc
-
-%==========================================================================
-\section {Registers}
-
-%==========================================================================
-\subsection {Using registers}
-
-\begindesc
-\bix^^{registers}
-\makecolumns 11/2:
-\cts count {\<register> {\bt =} \<number>}
-\cts dimen {\<register> {\bt =} \<dimen>}
-\cts skip {\<register> {\bt =} \<glue>}
-\cts muskip {\<register> {\bt =} \<muglue>}
-\cts toks {\<register> {\bt =} \<token variable>}
-\aux\cts toks {\<register> {\bt =} \rqbraces{\<token list>}}
-\aux\cts count {\<register>}
-\aux\cts dimen {\<register>}
-\aux\cts skip {\<register>}
-\aux\cts muskip {\<register>}
-\aux\cts toks {\<register>}
-\explain
-^^{assignments//of registers}
-The first six commands listed here assign something to a register.
-The |=|'s in the assignments are optional.
-The remaining five control sequences are not true commands
-because they can only appear as part of an argument.
-They yield the contents of the specified register.
-Although you can't use these control sequences by themselves as commands
-in text, you can use ^|\the| to convert them to text so that
-you can typeset their values.
-
-You can name and reserve registers
-with the ^|\newcount| command and its relatives
-(\xref{\@newcount}).
-Using these commands is a safe way to obtain registers that
-are known not to have any conflicting usage.
-
-^^{count registers}
-A |\count| register contains an integer, which can be either positive or
-negative.
-Integers can be as large as you're ever likely to need them to be.\footnote
-{Here's the only exercise in this book: find out what's the largest
-integer that \TeX\ will accept.}
-\TeX\ uses count registers $0$--$9$ to keep track of the
-page number (see \knuth{page~119}).
-|\count255| is the only count register available for use
-without a reservation.
-\example
-\count255 = 17 \number\count255
-|
-\produces
-\count255 = 17 \number\count255
-\endexample
-
-\medskip\noindent
-^^{dimension registers}
-A |\dimen| register contains a dimension.
-Registers |\dimen0| through |\dimen9| and |\dimen255| are available
-for scratch use.
-
-\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
-^^{skip registers}
-A |\skip| register contains the dimensions of glue.
-Unlike a |\dimen| register, it
-records an amount of shrink and stretch as well as a natural size.
-Registers |\skip0| through |\skip9| and |\skip255| are available
-for use without a reservation.
-
-\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
-^^{muskip registers}
-A |\muskip| register is like a |\skip| register,
-but the glue in it is always measured in ^|mu|
-\seeconcept{mathematical unit}.
-The size of a |mu| depends on the current font.
-For example, it's usually a little
-smaller in a subscript than in ordinary text.
-Registers |\muskip0| through |\muskip9| and |\muskip255| are available
-for use without a reservation.
-
-\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
-^^{token registers}
-You can assign either a token variable
-(a register or a parameter) or a token list
-to a |\toks| register.
-When you assign a token list to a token register,
-the tokens in the token list are \emph{not} expanded.
-
-Once the tokens in a token list have been inserted into text
-using ^|\the|, they are
-expanded just like tokens that were read in directly.
-They have the category codes that they received when \TeX\ first
-saw them in the~\hbox{input}.
-
-\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}
-This control sequence yields a \<dimen> that is the
-largest dimension acceptable to \TeX\ (nearly 18 feet).
-It is not a true command because it can only appear as part of an argument
-to another command.
-\example
-\maxdepth = \maxdimen % Remove restrictions on \maxdepth.
-|
-\endexample
-\enddesc
-
-\see |\advance| (\xref\advance), |\multiply|,
-|\divide| (\xref\divide), |\set!-box|, |\box| (\xref\box).
-
-%==========================================================================
-\subsection {Naming and reserving registers, etc.}
-
-\begindesc
-\bix^^{registers//reserving}
-\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
-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.
-}
-^^{count registers//reserved by \b\tt\\newcount\e}
-^^{dimension registers//reserved by \b\tt\\newdimen\e}
-^^{skip registers//reserved by \b\tt\\newskip\e}
-^^{muskip registers//reserved by \b\tt\\newmuskip\e}
-^^{token registers//reserved by \b\tt\\newtoks\e}
-^^{box registers//reserved by \b\tt\\newbox\e}
-\li |\newread| and |\newwrite| reserve an input stream and
-an output stream \minrefs{input stream}\minrefs{output stream}
-respectively.
-^^{input streams//reserved by \b\tt\\newread\e}
-^^{output streams//reserved by \b\tt\\newwrite\e}
-\li |\newfam| reserves a \minref{family} of math fonts.
-^^{family//reserved by \b\tt\\newfam\e}
-\li |\newinsert| reserves an insertion type.
-(Reserving an insertion type involves reserving several different registers.)
-^^{insertions//numbers reserved by \b\tt\\newinsert\e}
-\li |\newlanguage| reserves a set of hyphenation patterns.
-\endulist
-You should use these commands whenever you need one of these entities,
-other than in a very local region,
-in order to avoid numbering conflicts.
-
-There's an important difference among these commands:
-\ulist
-\li The control sequences defined by
-|\newcount|, |\newdimen|, |\newskip|, |\newmuskip|, and |\newtoks|
-each designate an entity of the appropriate type.
-For instance, after the command:
-\csdisplay
-\newdimen\listdimen
-|
-the control sequence |\listdimen| can be used as a dimension.
-\li The control sequences defined by
-|\newbox|, |\newread|, |\newwrite|, |\newfam|, |\newinsert|,
-and |\newlanguage| each
-evaluate to the \emph{number} of an entity of the appropriate type.
-For instance, after the command:
-\csdisplay
-\newbox\figbox
-|
-the control sequence |\figbox| must be used in conjunction with
-a |\box|-like command, e.g.:
-\csdisplay
-\setbox\figbox = \vbox{!dots}
-|
-\endulist
-\enddesc
-
-\begindesc
-\cts countdef {\<control sequence> {\bt =} \<register>}
-\cts dimendef {\<control sequence> {\bt =} \<register>}
-\cts skipdef {\<control sequence> {\bt =} \<register>}
-\cts muskipdef {\<control sequence> {\bt =} \<register>}
-\cts toksdef {\<control sequence> {\bt =} \<register>}
-\explain
-These commands define \<control sequence> to refer to the
-\minref{register} of the indicated category whose number is \<register>.
-Normally you should use the commands in the previous group
-(|\newcount|, etc.) in preference to these commands in order to avoid
-numbering conflicts. The commands in the previous group are
-defined in terms of the commands \hbox{in this group}.
-\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^^{registers//reserving}
-
-%==========================================================================
-\subsection {Doing arithmetic in registers}
-
-\begindesc
-\bix^^{arithmetic}
-\bix^^{registers//arithmetic in}
-%
-\cts advance {\<count register> {\bt by} \<number>}
-\aux\cts advance {\<dimen register> {\bt by} \<dimen>}
-\aux\cts advance {\<skip register> {\bt by} \<glue>}
-\aux\cts advance {\<muskip register> {\bt by} \<muglue>}
-\explain
-This command adds a compatible quantity to a register. For \<glue>
-or \<muglue> all three components (natural value, stretch, and shrink)
-\minrefs{glue} are added.
-Any of the quantities can be negative. For purposes of these calculations
-(and other assignments as well), \<glue> can be converted to a
-\<dimen> by dropping the stretch and shrink, and a \<dimen> can be converted
-to a \<number> by taking its value in scaled points
-\seeconcept{dimension}.
-You can omit the word |by| in these commands---\TeX\ will understand them
-anyway.
-\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 {\<register> {\bt by} \<number>}
-\cts divide {\<register> {\bt by} \<number>}
-\explain
-These commands multiply and divide the value in \<register>
-by \<number> (which can be negative).
-The register can be a ^|\count|, ^|\dimen|, ^|\skip|, or ^|\muskip|
-register.
-For a ^|\skip| or ^|\muskip| register (\xref\skip),
-all three components of the \minref{glue} in the register are modified.
-You can omit the word |by| in these commands---\TeX\ will understand them
-anyway.
-
-You can also obtain a multiple of a \<dimen> by preceding it by a \<number>
-\minrefs{number}
-or decimal constant, e.g.,
-|-2.5\dimen2|.
-You can also use this notation for \<glue>, but watch out---the result
-is a \<dimen>, not \<glue>.
-Thus |2\baselineskip| yields a \<dimen> that is twice the natural size
-of |\baselineskip|, with no stretch or shrink.
-\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^^{arithmetic}
-\eix^^{registers//arithmetic in}
-\eix^^{registers}
-\enddesc
-
-%==========================================================================
-\section {Ending the job}
-
-\begindesc
-^^{ending the job}
-\easy\ctspecial bye \ctsxrdef{@bye}
-\explain
-This command tells \TeX\ to fill out and produce the last page, print
-any held-over \minref{insertion}s, and end the job.
-It is the usual way to end your input file.
-\enddesc
-
-\begindesc
-\cts end {}
-\explain
-This command tells \TeX\ to produce the last page and end the job.
-It does not fill out the page, however,
-so it's usually better to use |\bye| rather than |\end|.
-\enddesc
-
-%==========================================================================
-\section {Input and output}
-
-%==========================================================================
-\subsection {Operations on input files}
-
-\begindesc
-\bix^^{files}
-\bix^^{input files}
-\easy\cts input {\<filename>}
-\explain
-\minrefs{file}\minrefs{file name}
-This command tells \TeX\ to read its input from file \<filename>.
-When that file is exhausted, \TeX\ returns to reading from its previous
-input source. You can nest input files to any level you like
-(within reason).
-
-When you're typesetting a large document, it's usually a good idea to
-structure your main file as a sequence of |\input| commands that refer
-to the subsidiary parts of the document. That way you can process the
-individual parts easily as you're working on drafts. It's also a good
-practice to put all of your \minref{macro} definitions into a separate file and
-summon that file with an |\input| command as the first action in your
-main file.
-
-\TeX\ uses different rules for scanning file names than it does for scanning
-\minref{token}s in general (see \xref{file name}).
-If your implementation expects file names to have extensions (usually
-indicated by a preceding dot), then \TeX\ provides a default extension
-of |.tex|.
-\example
-\input macros.tex
-\input chap1 % equivalent to chap1.tex
-|
-\endexample
-\enddesc
-
-\begindesc
-\cts endinput {}
-\explain
-This command tells \TeX\ to stop reading input from the current file when it
-next reaches the end of a line.
-\enddesc
-
-\begindesc
-\cts inputlineno {}
-\explain
-This command yields a number (not a string) giving the line number of the
-current line, defined to be the number that would appear in an error message
-if an error occurred at this point.
-\enddesc
-
-\begindesc
-\cts openin {\<number> {\bt =} \<filename>}
-\explain
-This command tells \TeX\ to open the file named \<filename>
-and make it available for reading via the input stream
-designated by \<number>.
-^^{input streams//opening}
-\<number> must be between $0$ and $15$.
-Once you've opened a file and connected it to an input stream,
-you can read from the file using the |\read| command
-with the input stream's number.
-
-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}).
-\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 {\<number>}
-\explain
-This command tells \TeX\ to close the \minref{input stream} numbered
-\<number>, i.e.,
-end the association between the input stream and its file.
-The input stream with this number then becomes available for use with a
-different file.
-You should close an input stream once you're finished using its file.
-\example
-\closein\auxfile
-|
-\endexample
-\enddesc
-
-\begindesc\secondprinting{\vglue-.5\baselineskip\vskip0pt}
-\cts read {\<number> {\bt to} \<control sequence>}
-\explain
-^^{input streams//reading with \b\tt\\read\e}
-^^{reading a file}
-This command tells \TeX\ to read a line from the file
-associated with the \minref{input stream}
-designated by \<number> and assign the tokens on that line to
-\<control sequence>. The \minref{control sequence} then becomes a
-parameterless \minref{macro}. No macro expansion takes place
-during the reading operation. If the line contains any unmatched
-left braces, \TeX\ will read additional lines until the braces are
-all matched. If \TeX\ reaches the end of the file without matching all the
-braces, it will complain.
-
-If \<number> is greater than $15$ or hasn't been associated with a file
-using ^|\openin|, \TeX\ prompts you with `\<control sequence> |=|'
-on your terminal and waits for you to type a line of input.
-It then assigns the input line to \<control sequence>.
-If \<number> is less than zero, it reads a line of input from your
-terminal but omits the prompt.
-\example
-\read\auxfile to \holder
-% Expanding \holder will produce the line just read.
-|
-\endexample
-\eix^^{input files}
-\enddesc
-
-\secondprinting{\vfill\eject}
-
-
-%==========================================================================
-\subsection {Operations on output files}
-
-\bix^^{output files}
-\begindesc
-\cts openout {\<number> {\bt =} \<filename>}
-\explain
-^^{output streams//opening}
-This command tells \TeX\ to open the file named \<filename>
-and make it available for writing via the \minref{output stream}
-designated by \<number>.
-\<number> must be between $0$ and $15$.
-Once you've opened a file and connected it to an output stream,
-you can write to the file using the |\write| command
-with the output stream's number.
-
-An |\openout| generates a whatsit that becomes part of a box.
-The |\openout| does not take effect until \TeX\ ships out that box
-to the \dvifile,
-unless you've preceded the |\openout| with ^|\immediate|.
-
-\TeX\ won't complain if you associate more than one output stream with the
-same file, but you'll get garbage in the file if you try it!
-
-You should allocate stream numbers for |\openout| using
-|\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 {\<number>}
-\explain
-^^{output streams//closing}
-This command tells \TeX\ to close the \minref{output stream} numbered
-\<number>. i.e.,
-end the association between the output stream and its file.
-The output stream with this number then becomes available for use with a
-different file.
-You should close an output stream once you're finished using its file.
-
-A |\closeout| generates a whatsit that becomes part of a box.
-The |\closeout| does not take effect until \TeX\ ships out that box
-to the \dvifile,
-unless you've preceded the |\closeout| with ^|\immediate|.
-\example
-\closeout\auxfile
-|
-\endexample
-\enddesc
-
-\begindesc
-\cts write {\<number> \rqbraces{\<token list>}}
-\explain
-^^{output streams//writing}
-^^{writing a file}
-This command tells \TeX\ to write \<token list> to the file
-associated with the \minref{output stream}
-designated by \<number>.
-It generates a whatsit that becomes part of a box.
-The actual writing does not take place until \TeX\ ships out that box
-to the \dvifile,
-unless you've preceded the |\write| with ^|\immediate|.
-
-For a |\write| that is not immediate, \TeX\ does not expand macros in
-\<token list> until the token list is actually written to the file.
-The macro expansions follow the same rules as |\edef| (\xref\edef).
-In particular, any control sequence that is not
-the name of a macro is written as
-^|\escapechar| followed by the control sequence name
-and a space. Any `|#|' tokens
-in \<token list> are doubled, i.e., written as `|##|'.
-
-If \<number> is not in the range from $0$ to $15$, \TeX\ writes
-\<token list> to the log file.
-^^{log file//written by \b\tt\\write\e}
-If \<number> is greater than $15$ or isn't associated with an output
-stream, \TeX\ also writes \<token list> to the 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
-This command should precede an |\openout|, |\closeout|, or |\write|.
-^^|\write//with {\tt\\immediate}|
-^^|\openout//with {\tt\\immediate}|
-^^|\closeout//with {\tt\\immediate}|
-It tells \TeX\ to perform the specified file operation without delay.
-\example
-\immediate\write 16{I'm stuck!!}
-% has the same effect as \message
-|
-\endexample\enddesc
-
-\begindesc
-\cts special {\rqbraces{\<token list>}}
-\explain
-This command tells \TeX\ to
-write \<token list> directly to the \dvifile\ when it next
-ships out a page.
-A typical use of |\special| would be to tell the device driver to incorporate
-the contents of a named graphics file into the output page.
-^^{device drivers//instructions from \b\tt\\special\e}
-The |\special| command produces a whatsit that associates
-\<token list> with a particular position on the page, namely,
-the position that a zero-size box would have had if such a box
-had appeared instead of the |\special| command.
-Any use you might make of |\special| depends strictly on
-the ^{device drivers} that you have available.
-\example
-\special{graphic expic}
-% Display the graphics file `expic' here.
-|
-\endexample
-\enddesc
-
-\begindesc
-\cts newlinechar {\param{number}}
-\explain
-This parameter contains a character that indicates a new line on
-output. When \TeX\ encounters this character
-while reading the argument of
-a |\write|, |\message|, or
-|\errmessage| command, it starts a new line.
-If |\newlinechar| is not in the range $0$--$255$,
-there is no character that indicates
-a new line on output.
-\PlainTeX\ sets |\newlinechar| to $-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^^{files}
-\eix^^{output files}
-
-%==========================================================================
-\subsection {Interpreting input characters}
-
-\begindesc
-\cts catcode {\<charcode> \tblentry{number}}
-\explain
-^^{category codes//in \b\tt\\catcode\e\ table}
-This table entry contains the \minref{category code} of the character
-whose \ascii\ code is \<charcode>.
-The category codes are listed on \xrefpg{catcodes}.
-By changing the category code of a character you can get \TeX\ to treat
-that character differently.
-\example
-\catcode `\[ = 1 \catcode `\] = 2
-% Make [ and ] act like left and right braces.
-|
-\endexample
-\enddesc
-
-\begindesc
-\cts active {}
-\explain
-This command contains the
-category code for an active character, namely, the number $13$.
-\example
-\catcode `\@ = \active % Make @ an active character.
-|
-\endexample
-\enddesc
-
-\begindesc
-\cts mathcode {\<charcode> \tblentry{number}}
-\explain
-This table entry contains the \minref{mathcode} of the character
-whose \ascii\ code is \<charcode> \seeconcept{mathcode}.
-The mathcode specifies that character's interpretation in math mode.
-\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
-^^{delimiter codes}
-This table entry specifies the \minref{delimiter} code for the input character
-whose \ascii\ code is \<charcode>.
-The delimiter code tells \TeX\ how to find the best output character to use
-for typesetting the indicated input character as a delimiter.
-
-\<number> is normally written in hexadecimal notation.
-Suppose that \<number> is the hexadecimal number $s_1s_2s_3\,
-l_1l_2l_3$. Then when the character is used as a delimiter,
-\TeX\ takes the character to have small variant
-$s_1s_2s_3$ and large variant $l_1l_2l_3$. Here $s_1s_2s_3$ indicates
-the math character found in position $s_2s_3$ of family $s_1$, and
-similarly for $l_1l_2l_3$. This is the same convention as the one
-used for ^|\mathcode| (\xref \mathcode),
-except that |\mathcode| also specifies a class.
-\example
-\delcode `( = "028300 % As in plain TeX.
-|
-\endexample
-\enddesc
-
-\begindesc
-\cts endlinechar {\param{number}}
-\explain
-This parameter
-contains the character code for the character that
-\TeX\ appends to the end of each input line.
-^^{input lines}
-A value not in the range $0$--$255$
-indicates that no character should be appended.
-\PlainTeX\ leaves |\end!-line!-char| at
-|`\^^M| (the {\ascii} code for \asciichar{return}).
-\enddesc
-
-\begindesc
-\cts ignorespaces {}
-\explain
-This command tells \TeX\ to read and expand tokens until it finds one that
-is not a space \minref{token}, ignoring any space tokens
-that it finds on the way.
-|\ignorespaces| is often useful at the end of a \minref{macro} as a way
-of making the macro insensitive to any spaces or ends of line
-that might follow calls on it.
-(An empty line after |\ignorespaces| still produces a |\par| token,
-however.)
-\example
-\def\aa#1{yes #1\ignorespaces}
-\aa{may}
-be
-|
-\produces
-\def\aa#1{yes #1\ignorespaces}
-\aa{may}
-be
-\endexample
-\enddesc
-
-%==========================================================================
-\section {Controlling interaction with \TeX}
-
-\begindesc
-\bix^^{controlling \TeX}
-\bix^^{running \TeX}
-\cts errorstopmode {}
-\explain
-This command tells \TeX\
-to stop for interaction whenever it finds an error.
-This is the normal mode of operation.
-\enddesc
-
-\begindesc
-\cts scrollmode {}
-\explain
-This command tells \TeX\
-not to stop for most errors,
-but to continue displaying the error messages on your terminal.
-Typing `|S|' or `|s|' in response to an error message puts you
-into scroll mode.
-\enddesc
-
-\begindesc
-\cts nonstopmode {}
-\explain
-This command tells \TeX\
-not to stop for errors, even those pertaining to files that
-it can't find, but to continue displaying the error messages on your terminal.
-Typing `|R|' or `|r|' in response to an error message puts you
-into nonstop mode.
-\enddesc
-
-\begindesc
-\cts batchmode {}
-\explain
-This command tells \TeX\
-not to stop for errors and to suppress all further output to your terminal.
-Typing `|Q|' or `|q|' in response to an error message puts you
-into batch mode.
-\enddesc
-
-\begindesc
-\cts pausing {\param{number}}
-\explain
-If this parameter is greater than zero, \TeX\ will pause
-at each line of input to give you an opportunity to
-replace it with a different line. If you type in a replacement,
-\TeX\ will use that line instead of the original one; if you respond
-with \asciichar{return}, \TeX\ will use the original line.
-
-Setting |\pausing| to $1$ can be useful as a way of patching a document as
-\TeX\ is processing it. For example,
-you can use this facility to insert ^|\show| commands (see below).
-\eix^^{running \TeX}
-\eix^^{controlling \TeX}
-\enddesc
-
-%==========================================================================
-\section {Diagnostic aids}
-
-\subsection{Displaying internal data}
-
-\begindesc
-\bix^^{tracing}
-\bix^^{debugging}
-\bix^^{diagnostic aids}
-\cts show {\<token>}
-\cts showthe {\<argument>}
-\cts showbox {\<number>}
-\cts showlists {}
-\explain
-These commands record information in the log of your \TeX\ run:
-\ulist
-\li |\show| records the meaning of \<token>.\minrefs{token}
-^^{tokens//displayed by \b\tt\\show\e}
-\li |\showthe| records
- whatever tokens would be produced by
-|\the| \<arg\-u\-ment> (see \xref \the).
-\li |\showbox| records the contents of the \minref{box}
-\minref{register} numbered \<num\-ber>.
-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.
-(These lists are nested one within another.)
-See \knuth{pages~88--89} for further information about interpreting
-the output of |\showlists|.
-\endulist
-For |\show| and |\showthe|, \TeX\ also displays the information at your
-^{terminal}.
-For |\showbox| and |\showlists|, \TeX\ displays the information at your
-terminal only
-if ^|\tracingonline| (\xref \tracingonline) is greater than zero;
-if ^|\tracingonline| is zero or less (the default case),
-the information is not displayed.
-
-Whenever \TeX\ encounters a |\show|-type command it
-stops for interaction. The request for interaction does \emph{not}
-indicate an error, but it does give you an opportunity to ask \TeX\ to
-show you something else. If you don't want to see anything else, just
-press \asciichar{return}.
-
-You can control the amount of output produced by |\showbox| by setting
-|\show!-box!-breadth| and |\show!-box!-depth| (\xref\showboxbreadth).
-^^|\showboxbreadth| ^^|\showboxdepth|
-These parameters respectively have default values of $5$
-and $3$, which is why
-just five items appear for each box described
-in the log output below. (The `|..etc.|' indicates additional items
-within the boxes that aren't displayed.)
-\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{Specifying what is traced}
-
-\begindesc
-\cts tracingonline {\param{number}}
-\explain
-If this parameter is greater than zero,
-\TeX\ will display the results of tracing
-(including ^|\showbox| and ^|\showlists|)
-at your terminal in addition to recording them in the log file.
-\enddesc
-
-\begindesc
-\cts tracingcommands {\param{number}}
-\explain
-If this parameter is $1$ or greater,
-\TeX\ will record in the log file most commands that it executes.
-If ^|\tracingonline| is greater than zero, this information will also appear
-at your terminal.
-Typesetting the first character of a word counts as a command,
-but (for the purposes of the trace only)
-the actions of typesetting the subsequent characters
-and any punctuation following them
-do not count as commands.
-If |\tracingcommands| is $2$ or greater,
-\TeX\ will also record commands that are expanded
-rather than executed, e.g., conditional tests and their outcomes.
-\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{number}}
-\explain
-If this parameter is greater than zero,
-\TeX\ will record an indication in the log file of each time
-that it drops an output character because that character does not exist
-in the current font.
-If ^|\tracingonline| is greater than zero, this information will also appear
-at your terminal.
-\PlainTeX\ defaults it to $1$ (unlike the others).
-\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{number}}
-\explain
-If this parameter is $1$ or greater,
-\TeX\ will record in the log file the expansion and arguments
-of every macro that it executes.
-^^{macros//tracing}
-If |\tracingmacros| is $2$ or greater,
-\TeX\ will record, in addition,
-every expansion of a \minref{token} list such as
-|\output| or |\everycr|.
-If ^|\tracingonline| is greater than zero, this information will also appear
-at your 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{number}}
-\explain
-If this parameter is greater than zero,
-\TeX\ will record in the log file the contents of every box that
-it sends to the \dvifile.
-^^{\dvifile//boxes recorded in log file}
-If ^|\tracingonline| is greater than zero, this information will also appear
-at your terminal.
-The number of leading dots in each line of the trace output indicates
-the nesting level of the box at that line.
-You can control the amount of tracing by setting
-^|\showboxbreadth| and ^|\showboxdepth| (\xref\showboxbreadth).
-
-Setting |\tracingoutput| to $1$ can be particularly helpful when you're trying
-to determine why you've gotten ^{extra space} on a 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{number}}
-\explain
-If this parameter is greater than zero,
-\TeX\ will record in the log file its calculations of the cost of
-various page breaks that it tries.
-^^{page breaks//tracing}
-If |\tracing!-online| ^^|\tracingonline|
-is greater than zero, this information will also appear
-at your terminal.
-\TeX\ produces a line of this output
-whenever it first places a box or \minref{insertion}
-on the current page list, and also whenever it processes a potential
-break point for the page.
-Examining this output can be helpful when you're trying to determine
-the cause of a bad page break.
-See \knuth{pages~112--114} for an illustration and explanation of
-this output.
-
-Some production forms of \TeX\ ignore the value of |\tracingpages|
-so that they can run faster.
-If you need to use this parameter, be sure to use a form that
-responds to it.
-\enddesc
-
-\begindesc
-\cts tracingparagraphs {\param{number}}
-\explain
-If this parameter is greater than zero,
-\TeX\ will record in the log file its calculations of the cost of
-various line breaks that it tries.
-^^{line breaking//tracing}
-If ^|\tracingonline| is greater than zero, this information will also appear
-at your terminal.
-\TeX\ produces this output when it reaches the end of each paragraph.
-See \knuth{pages~98--99} for an illustration and explanation of
-this output.
-
-Some production forms of \TeX\ ignore the value of |\tracing!-para!-graphs|
-so that they can run faster.
-If you need to use this parameter, be sure to use a form that
-responds to it.
-\enddesc
-
-\begindesc
-\cts tracingrestores {\param{number}}
-\explain
-If this parameter is greater than zero,
-\TeX\ will record in the log file
-the values that it restores when it encounters the end of a \minref{group}.
-If ^|\tracingonline| is greater than zero, this information will also appear
-at your terminal.
-
-Some production forms of \TeX\ ignore the value of |\tracing!-restores|
-so that they can run faster.
-If you need to use this parameter, be sure to use a form that
-responds to it.
-\enddesc
-
-\begindesc
-\cts tracingstats {\param{number}}
-\explain
-If this parameter is $1$ or greater, \TeX\ will
-include a report on the resources that it used to run your job
-(see \knuth{page~300} for a list and explanation of these resources).
-Moreover, if |\tracingstats| is $2$ or greater,
-\TeX\ will report on its memory usage whenever it does a
-^|\shipout| (\xref \shipout) for a page.
-The report appears at the end of the log file.
-^^{log file//tracing statistics in}
-If ^|\tracingonline| is greater than zero, the information will also appear
-at your terminal.
-If you're having trouble with \TeX\ exceeding one of its
-capacities, the information provided by |\tracingstats| may help you
-pinpoint the cause of the difficulty.
-
-Some production forms of \TeX\ ignore the value of |\tracingstats|
-so that they can run faster.
-If you need to use this parameter, be sure to use a form that
-responds to it.
-
-The following example shows a sample of
-the tracing output you'd get on one implementation
-of \TeX. It may be different on other implementations.
-{\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
-This command tells \TeX\ to
-turn on every available form of tracing.
-It also sets ^|\tracingonline| to $1$ so that the trace output will appear
-at your terminal.
-\enddesc
-
-\begindesc
-\cts showboxbreadth {\param{number}}
-\explain
-This parameter specifies the maximum number of list items
-that \TeX\ displays for one level of one box when it is producing
-the output for ^|\showbox| or ^|\tracingoutput|.
-\PlainTeX\ sets |\showboxbreadth| to $5$.
-\enddesc
-
-\begindesc
-\cts showboxdepth {\param{number}}
-\explain
-This parameter specifies the
-level of the deepest list that \TeX\ displays when
-it is producing the output for ^|\showbox| or ^|\showlists|.
-\PlainTeX\ sets |\showboxdepth| is $3$.
-\eix^^{tracing}
-\eix^^{debugging}
-\eix^^{diagnostic aids}
-\enddesc
-
-%==========================================================================
-\subsection {Sending messages}
-
-\begindesc
-\bix^^{messages, sending}
-\bix^^{error messages}
-\cts message {\rqbraces{\<token list>}}
-\cts errmessage {\rqbraces{\<token list>}}
-\explain
-These commands display the message given by \<token list> on your
-terminal and also enter it into the log. Any \minref{macro}s in the
-message are expanded, but no commands are executed. This is the same rule
-that \TeX\ uses for |\edef| (\xref \edef).
-
-For |\errmessage|, \TeX\ pauses
-in the same way that it does for one of its own error messages
-and displays the |\errhelp| tokens if you ask for help.
-
-You can generate multiline messages by using the ^|\newlinechar|
-character (\xref \newlinechar).
-\example
-\message{Starting a new section.}
-|
-\endexample
-\enddesc
-
-\begindesc
-\cts wlog {\rqbraces{\<token list>}}
-\explain
-This command writes \<token list> on the log file.
-^^{log file//written by \b\tt\\wlog\e}
-\minrefs{log file}
-\TeX\ expands \<token list> according to the same rules that it uses
-for |\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{token list}}
-\explain
-This parameter contains the token list that \TeX\ displays
-when you ask for help in response to an |\errmessage| command.
-We recommend that when
-you're generating an error message with |\errmessage|, you
-set |\errhelp| to a string that describes the nature of the
-error and use |\newhelp| to produce that string.
-You can use the ^|\newlinechar| character to produce multiline messages.
-\enddesc
-
-\begindesc
-\ctspecial newhelp \ctsxrdef{@newhelp} {\<control sequence>
- \rqbraces{\<help text>}}
-\explain
-This command assigns the ^{help message} given by \<help text> to
-\<control sequence>. It provides an efficient way of defining
-the ^{help text} that further explains an error message.
-Before issuing the error message with the |\errmessage| command,
-you should assign \<control sequence> to ^|\errhelp|. The help text
-will then appear if the user types `|H|'
-or `|h|' in response to the error message.
-\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{number}}
-\explain
-This parameter determines the number of pairs of context lines,
-not counting the top and bottom pairs, that \TeX\ prints when it
-encounters an error. By setting it to $0$ you can get rid of long
-error messages.
-You can still force out the full context by typing something like:
-\csdisplay
-I\errorcontextlines=100\oops
-|
-in response to an error,
-since the undefined control sequence |\oops| will cause another error.
-\PlainTeX\ sets |\error!-context!-lines| to $5$.
-\enddesc
-
-\see |\write| (\xref \write), |\escapechar| (\xref \escapechar).
-\eix^^{messages, sending}
-\eix^^{error messages}
-
-%==========================================================================
-\section {Initializing \TeX}
-
-\begindesc
-\cts dump {}
-\explain
-This command, which must not appear inside a group, dumps the
-contents of \TeX's memory
-to a ^{format file} (\xref{format file}).
-By using ^|virtex|, a special ``virgin'' form of \TeX,
-you can then reload the format file at high speed and
-continue in the same state that \TeX\ was in at the time of the dump.
-|\dump| also ends the run. Since |\dump| can only be used
-in ^|initex|, not in production forms of \TeX, it is only useful
-to people who are installing \TeX.
-\enddesc
-
-\begindesc
-\cts everyjob {\param{token list}}
-\explain
-This parameter contains a \minref{token} list that \TeX\ expands at the
-start of every job. Because an assignment to |\everyjob| cannot affect
-the current run (by the time you've done the assignment it's already too
-late), it is only useful to people who are preparing format files.
-\enddesc
-
-
-\enddescriptions \endchapter \byebye
diff --git a/Master/texmf-doc/doc/english/impatient/index.tex b/Master/texmf-doc/doc/english/impatient/index.tex
deleted file mode 100644
index 54e2e04b384..00000000000
--- a/Master/texmf-doc/doc/english/impatient/index.tex
+++ /dev/null
@@ -1,39 +0,0 @@
-% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
-% See file fdl.tex for copying conditions.
-
-\input macros
-\chapter{Index}
-
-\par
-\kern-\baselineskip
-
-\noindent In the entries of this index, a page number in italics
-indicates a principal or defining entry.
-
-\par
-% Let's try to collect indexing cross-references here.
-%
-\idxsee{diacritical marks}{accents}
-\idxsee{drawing lines}{rules}
-\idxsee{drivers}{device drivers}
-\idxsee{eyes}{\anatomy}
-\idxsee{foreign languages}{European languages}
-\idxsee{intestines}{\anatomy}
-\idxsee{mouth}{\anatomy}
-\idxsee{page footers}{footers}
-\idxsee{page headers}{headers}
-\idxsee{paragraphs//indenting}{indentation}
-\idxsee{recursive macros}{macros, recursive}
-\idxsee{stomach}{\anatomy}
-\idxsee{tables}{alignments}
-\beginindex
-
-\let\+ = 0 % This can't occur in a macro...
-
-\input book.sdx
-
-\endindex
-
-\endchapter
-\byebye
diff --git a/Master/texmf-doc/doc/english/impatient/index1.icn b/Master/texmf-doc/doc/english/impatient/index1.icn
deleted file mode 100644
index 29cc4a6ed61..00000000000
--- a/Master/texmf-doc/doc/english/impatient/index1.icn
+++ /dev/null
@@ -1,90 +0,0 @@
-# This Icon program carries out the first phase of preparing the index for
-# TeX for the Impatient. The input is the .idx file produced by TeX using
-# our macros. The output should be piped through a sort and then to the
-# index2 program.
-#
-# This program was written by Paul Abrahams and is public domain.
-#
-# An index entry has the form:
-# term::type::page suffix
-# where `term' is the index term, `type' is T, N, or C,
-# `page' is either a folio number or *s, where s is a see-string,
-# and `suffix' is either empty or P, E, B, PE, or PB.
-# P indicates a principal entry, B and E begin and end a page range.
-
-
-global printable, specials
-record index_item(term, type, pages)
-record pgrec(number, pflag)
-
-procedure main(a)
- local idx, fn, entry
- fn := a[1]
- printable := &ascii[33:-1]
- specials := string(printable -- (&ucase ++ &lcase ++ &digits))
- every entry := !&input do
- write(key(entry), "@@@", entry)
- write(&errout, "First indexing pass is complete.")
- return
-end
-
-procedure key(entry)
- local symb, symb1, type, page
- static collate, hi, sortsequence
- initial {
- collate := specials || &ucase || &digits
- sortsequence := printable -- &lcase
- hi := repl(char(128), 26)
- }
- entry ? (symb := tab(find("::")), move(2), type := move(1),
- move(2), page := tab(many('-0123456789*')))
- symb := remove_leading_specials(symb)
- symb1 := map(symb, &lcase, &ucase)
- return map(map_term(symb1, type), collate, sortsequence) ||
- map(symb, &ucase, hi) || char(1) || page_key(page)
-end
-
-procedure remove_leading_specials(s)
-# remove leading period, backslash, or less-than
- local a, b, c, k
- static kills
- initial {kills := '\\.<'}
-
-# a one-character special is left unchanged
- c := s[1:upto("//", s) | 0]
- if *c = 1 & any(kills, c) then
- return s
-
- k := 1
- while s ? (a := tab(k), b:= tab(upto(kills)),
- tab(many(kills)), c := tab(0)) do
- {s := a || b || c; k +:= *b}
- return s
-end
-
-procedure map_term(t, c)
-# t is an index term, c is "N", "T", or "C"
-# Encode NTC as char(1), char(2), char(3)
-# Replace each // by the NTC code, then follow t by the NTC code and 1
- local code
-
- code := char(find(c, "NTC") | 4)
- while t[find("//", t)+:2] := code
- return t || code || char(1)
-end
-
-procedure page_key(p)
-# convert p, which may be negative, to a character string key
-# Negative numbers must sort with the smallest closest to 0.
-# A see-string always starts with *; we replace the * with ~
-# so that see references always come last. (They are usually unique.)
- if p == "*" then
- return "~"
- p := integer(p)
- return (
- if p < 0 then
- "-" || right(-p, 4, "0")
- else
- right(p, 5, 0)
- )
-end
diff --git a/Master/texmf-doc/doc/english/impatient/index2.icn b/Master/texmf-doc/doc/english/impatient/index2.icn
deleted file mode 100644
index 19913c42880..00000000000
--- a/Master/texmf-doc/doc/english/impatient/index2.icn
+++ /dev/null
@@ -1,239 +0,0 @@
-# This Icon program is the second pass of the indexing process for TeX for the
-# Impatient. It must be preceded by index1 and by a sort of the intermediate
-# file.
-
-# This program was written by Paul Abrahams and is public domain.
-
-record topic_entry(term, type, groupchar, pages, level)
-record pgrec(number, flags)
-record term_list_record(term_list, start)
-procedure main(a)
- local gen, pages, term, topic
- local groupchar
-
- write(&errout, "Second indexing pass has started.")
-
-# Each pass through this loop produces the entry for a single topic
-# or subtopic, including both the text of the topic and its pages.
-
- every topic := get_topic_info() do {
-
-# If we're starting a new group (initial character), produce the macro
-# for it.
- if topic.level = 1 then { # only primary topics affect the group
- if not(\groupchar == topic.groupchar) then
- write("\\indexgroup ", groupchar := topic.groupchar)
- }
- else
- topic.type := "N" # subtopics are always printed normally
-
-# Write the index term
- writes("\\indexentry {", topic.level - 1, "}{",
- edit_term(topic.term), "}{", topic.type, "}{")
-
-# Write the list of pages
- write(edit_pages(topic.pages, topic.term), "}")
- }
-end
-
-procedure get_topic_info()
- local page, type, full_term, flags # info in an index item
- local term # the index term to be printed (part of full_term)
- local item_text # holds an input item to be parsed
- local topic # the topic we're now working on
- local term_list_info # returned term_list_record from get_term_list
- local term_list # list of index terms extracted from the input item
- local first # position of first thing in term_list to print
- local t # loop variable
- local term1 # first term in full_term, usually the only one
-
- term_list := []
-
-# At the start of each pass through this loop, `topic' contains the text of
-# the index topic most recently seen together with the pages seen so far for
-# that index topic.
-
- every !&input ? (tab(find("@@@")\1), move(3), item_text := tab(0)) do {
-
-# Dissect the original index item, discarding the key
-
- item_text ? (full_term := tab(find("::")), move(2),
- type := tab(find("::")), move(2),
- page := tab(many('-0123456789*')), flags := tab(0))
-# a page of * indicates a see-also
-
- term_list_info := get_term_list(full_term, term_list)
- term_list := term_list_info.term_list
- if type == (\topic).type then # no change of type
- first := term_list_info.start
- else
- first := 1 # change of type, so all terms are different
- term1 := term_list[\first]
-
-# If we've finished the current topic, produce it and start the next one
-
- if \first then {
- suspend \topic
- topic := topic_entry(term1, type, find_groupchar(term1), [], first)
- every t := !term_list[first + 1:0] do {
- suspend topic
- topic.term := t; topic.type := "N"; topic.level +:= 1
- } }
- put(topic.pages,
- if page == "*" then
- flags # flags here is the see-also
- else
- pgrec(page, cset(flags)))
- }
- suspend topic
- fail
-end
-
-procedure edit_term(term)
-# This procedure edits `term' into a proper argument for \indexterm
-
- if term == " " then
- term := "\\visiblespace"
- else if *term = 1 then
- term := "\\char `\\" || term
- else if match("^^", term) then
- term := "\\twocarets " || term[3:0]
- else if term == "$$" then
- term := "\\$\\$"
-# $$ is the only other 2-character sequence that has to be protected.
- return term
-end
-
-procedure edit_pages(l, term)
-# edit_pages removes duplicate pages from the page list, produces the
-# macro call for a principal entry, and coalesces page ranges.
-# It also converts negative numbers to roman numerals.
-# Each element of l is a pgrec, except that the last (and possibly only)
-# element may be a see-also string starting with *.
-# The result is a list of strings
- local pg, n, m, pf, see_also, pagelist
- local l1, k
-
-# If the last element of l is a string, remove it and set it aside.
-# It's a see-also.
- if type(l[-1]) == "string" then
- {see_also := l[-1]; l := l[1:-1]}
-
-
-# First pass through the page list, coalescing duplicates and combining
-# their flags.
-
- l1 := []
- while *l > 0 do {
- pg := pop(l); n := pg.number; pf := pg.flags
-
-# Loop over pages 2..k within a group
-
- while n = l[1].number do
- pf ++:= pop(l).flags
-
- if *(pf ** 'BE') = 2 then # delete B and E if they both occur
- pf --:= 'BE'
- put(l1, pgrec(n, pf))
- }
-
-# Now l1 has no duplicates and no trivial page ranges. Replace each
-# page range by a single entry, inverting the order for negative page
-# numbers since those indicate roman numerals.
-# When we're done, l1 has a list of strings rather than a list of pgrecs.
-
- l := l1; l1 := []
- while *l > 0 do {
- pg := pop(l); n := pg.number; pf := pg.flags
- if *(pf ** 'E') > 0 then {
- every write(errfiles(), "Unmatched end of page range, page ",
- integer(n), ", index term `", term, "'!")
- pf --:= 'E'
- }
- if *(pf ** 'B') > 0 then { # beginning a page range
- every k := 1 to *l do {
- pf ++:= l[k].flags
- if *(pf ** 'E') > 0 then break
- }
- if *(pf ** 'E') = 0 then {
- every write(errfiles(), "Unmatched beginning of page range, page ",
- integer(n), ", index term `", term, "'!")
- pf := pg.flags
- }
- else {
- m := l[k].number
- if m < 0 then { # roman numerals
- m := "\\r" || -m
- n := "\\r" || -n
- }
- n := string(n || "--" || m)
- l := l[k+ 1:0]
- } }
- else if n < 0 then
- n := "\\r" || -n
- if *(pf ** 'P') > 0 then
- n := "\\pp{" || n || "}"
- put(l1, n)
- }
-
-# Now l1 is a list of page numbers and page ranges.
-# If it's empty and we have a see-also, make it a \see and return it.
-
- if *l1 = 0 then
- return "\\see{" || \see_also || "}" | ""
-
-# Turn l1 into a string and insert the comma commands \ic and \c
-# \ic goes at the beginning, \c between the remaining elements.
-
- pagelist := "\\ic " || pop(l1) | ""
- every pagelist ||:= "\\c " || !l1
-
-# Now attach the see-also to pagelist if we had one and return the result
-
- return pagelist || ("\\seealso{" || \see_also || "}" | "")
-end
-
-procedure find_groupchar(t)
-# This procedure finds the character that heads the group containing
-# the index term `t'. We want all special characters in a single group
-# and all digits in a single group.
-# A term that begins with `\<c' or `\c' or `.c' is grouped as `c'.
- local c
- static printable, specials
- initial {
- printable := &ascii[33:-1]
- specials := string(printable -- (&ucase ++ &lcase ++ &digits))
- }
-
- return map(
- if t ? (tab(many('\\.<')), c := move(1)) then c
- else if any(specials, t[1]) then "+"
- else if any(&digits, t[1]) then "0"
- else t[1] | "",
- &lcase, &ucase)
-end
-
-procedure get_term_list(ft, tl)
-# `ft' is the full term just read in, `tl' is the current term list
-# return a record containing all the terms and the position of the first
-# one that's different from the previous full term
- local tl1, pos, pos1, first, k
-
- tl1 := []
- pos := 1
- every pos1 := (find("//", ft) | 0) do
- {put(tl1, ft[pos:pos1]); pos := pos1 + 2}
-
- first := &null
- every k := 1 to *tl1 do
- if not(tl1[k] == tl[k]) then
- {first := k; break}
- return term_list_record(tl1, first)
-end
-
-procedure errfiles()
- static errf
- initial
- errf := open("index.err", "w")
- suspend &errout | errf
-end
diff --git a/Master/texmf-doc/doc/english/impatient/macros.tex b/Master/texmf-doc/doc/english/impatient/macros.tex
deleted file mode 100644
index e3a84adac70..00000000000
--- a/Master/texmf-doc/doc/english/impatient/macros.tex
+++ /dev/null
@@ -1,2295 +0,0 @@
-% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
-% See file fdl.tex for copying conditions.
-%
-% 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.
-
-
-% An embedded file should end with \byebye.
-%
-\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".
-\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
- \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 -\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
-\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
- \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\ for the 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 = .3pt % line thickness
-\newdimen\edgespacing \edgespacing = .9pt % 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}%
- \advance\chapterno by 1
- %
- \setbox0 = \hbox{\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{Chapter ends on a verso page.}%
- \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 #1}}%
- %
- \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 #1}}%
- \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
- \ifpix P\fi\ifbix B\fi\ifeix E\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 \chaptername}%
- }%
- \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{Example #1:\quad \bi#2}}%
- \vglue .5\baselineskip
- \count255 = \pageno
- \xdef\examplepage{\number\count255}%
- \markinfo{Example #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{see \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
- %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 #1.\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{List of 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 Example:}%
- \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 produces\ifexamplelog\ in the 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
- See also: %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}{parameter}}
-\def\tblentry#1{\printparam{#1}{table entry}}
-\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\see##1{.\quad{\it See} ##1 }
- \def\seealso##1{\hfil\break{\it See also} ##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{anatomy of \TeX}
-\def\ascii{{\ninerm ASCII}}
-\def\asciichar#1{$\langle \rm #1\rangle$}
-\def\bblfile{{\tt .bbl} file}
-\def\bibfile{{\tt .bib} file}
-\def\bstfile{{\tt .bst} file}
-\def\didotpt{did\^ot point}
-\def\dvifile{{\tt .dvi} file}
-\def\em{\thinspace {\rm em}}
-\def\emph#1{{\it #1}\itcorr} % Emphasize.
-\def\ftp{{\tt ftp}}
-\def\gffile{{\tt .gf} file}
-\def\hand{{\handfont A}}
-\def\ifatest{{\tt \\if} test}
-\chardef\inches = "7D
-\def\knuth#1{#1 of \texbook}
-\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{new \TeX}
-\def\p{p.\thinspace}
-\def\pkfile{{\tt .pk} file}
-\def\plainTeX{plain \TeX}
-\def\PlainTeX{Plain \TeX}
-\def\pp{p\p}
-\def\pt{\thinspace {\rm pt}}
-\def\pxlfile{{\tt .pxl} file}
-\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{{\tt .tfm} file}
-\def\thisbook{{\sl \TeX\ for the 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{Undefined chapter `#1'.}%
- \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{(see ``{\rm #1}'', \xref{#1})}
-
-
-
-
-% 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.
diff --git a/Master/texmf-doc/doc/english/impatient/math.tex b/Master/texmf-doc/doc/english/impatient/math.tex
deleted file mode 100644
index 31d7f1aa157..00000000000
--- a/Master/texmf-doc/doc/english/impatient/math.tex
+++ /dev/null
@@ -1,2190 +0,0 @@
-% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
-% See file fdl.tex for copying conditions.
-
-\input macros
-\chapter {Commands \linebreak for composing \linebreak math formulas}
-
-\bix^^{math}
-\chapterdef{math}
-
-This section covers commands for constructing math formulas.
-For an explanation of the conventions used in this section,
-see \headcit{Descriptions of the commands}{cmddesc}.
-
-\begindescriptions
-%==========================================================================
-\section {Simple parts of formulas}
-
-%==========================================================================
-\subsection {Greek letters}
-
-\begindesc
-\bix^^{Greek letters}
-\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
-These commands produce Greek letters suitable for mathematics.
-You can only use them
-within a math formula, so if you need a Greek letter within ordinary
-text you must enclose it in dollar signs (|$|). \TeX\ does not have
-commands for Greek letters that look like their roman
-counterparts, since you can get them by using those roman
-counterparts. For example, you can get a lowercase
-^{omicron} in a formula by writing the letter `o', i.e.,
-`|{\rm o}|' or an uppercase ^{beta} (`B') by writing
-`|{\rm B}|'.
-
-Don't confuse the following letters:
-\ulist \compact
-\li |\upsilon| (`$\upsilon$'), |{\rm v}| (`v'), and |\nu| (`$\nu$').
-\li |\varsigma| (`$\varsigma$') and |\zeta| (`$\zeta$').
-\endulist
-
-You can get slanted capital Greek letters by using the math italic
-(|\mit|) \minref{font}.
-
-\TeX\ treats Greek letters as ordinary symbols when it's figuring how
-much space to put around them.
-
-\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^^{Greek letters}
-\enddesc
-
-%==========================================================================
-\subsection {Miscellaneous ordinary math symbols}
-
-\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
-^^{music symbols} ^^{card suits}
-These commands produce various symbols. They are called
-``^{ordinary symbol}s'' to distinguish them from other classes of
-symbols such as relations. You can only use
-an ordinary symbol
-within a math formula, so if you need an ordinary symbol within ordinary text
-you must enclose it in dollar signs (|$|).
-
-The commands |\imath| and |\jmath| are useful when you need to put an
-accent on top of an `$i$' or a `$j$'.
-
-An apostrophe (|'|) is a short way of writing a superscript |\prime|. (The
-|\prime| command by itself generates a big ugly prime.)
-
-The |\!|| and ^|\Vert| commands are synonymous, as
-are the ^|\neg| and ^|\lnot| commands.
-\margin{explanation of {\tt\\vert} added}
-The |\vert| command produces the same result as `|!||'.
-\indexchar |
-
-The symbols produced by |\backslash|, |\vert|, and |\Vert|
-are \minref{delimiter}s. These symbols can be produced in larger sizes
-by using ^|\bigm| et al.\ (\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 {Binary operations}
-
-\begindesc
-\bix^^{operations}
-\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
-These commands produce the symbols for various binary operations.
-Binary operations are one of \TeX's \minref{class}es of math symbols.
-\TeX\ puts different amounts of space around different classes of math
-symbols. When \TeX\ needs to break a line of text within a math
-formula, \minrefs{line break} it will consider placing the break
-after a binary operation---but only if
-the operation is at the outermost level of
-the formula, i.e., not enclosed in~a~group.
-
-In addition to these commands, \TeX\ also treats `|+|' and `|-|'
-as binary operations. It considers `|/|' to be an ordinary symbol,
-despite the fact that mathematically it is a binary operation,
-because it looks better with less space around it.
-
-\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
-The |\*| command indicates a discretionary multiplication symbol
-($\times$), which is a binary operation. This multiplication symbol
-behaves like a discretionary hyphen when it appears in a formula within
-text\minrefs{text math}. That is, \TeX\ will typeset the |\times|
-symbol \emph{only} if the formula needs to be broken at that point.
-There's no point in using |\*| in a displayed formula \minrefs{display
-math} since \TeX\ never breaks displayed formulas on its own.
-
-\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^^{operations}
-\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
-These commands produce the symbols for various relations.
-Relations are one of \TeX's \minref{class}es of math symbols.
-\TeX\ puts different amounts of space
-around different \minref{class}es of math symbols.
-When \TeX\ needs to break a line of text
-within a math formula, \minrefs{line break} it will consider
-placing the break after a relation---but only if
-the relation is at the outermost level of the formula,
-i.e., not enclosed in a group.
-
-In addition to the commands listed here, \TeX\ treats `^|=|' and the
-``arrow'' commands (\xref{arrows}) as relations.
-
-Certain relations have more than one command that you can use
-to produce them:
-\ulist \compact
-\li `$\ge$' (|\ge| and |\geq|).
-\li `$\le$' (|\le| and |\leq|).
-\li `$\ne$' (|\ne|, |\neq|, and |\not=|).
-\li `$\ni$' (|\ni| and |\owns|).
-\endulist
-
-\xrdef{\not}
-You can produce negated relations by prefixing them with |\not|, as follows:
-
-\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 {Left and right delimiters}
-
-\begindesc
-\bix^^{delimiters}
-%
-\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
-These commands produce left and right \minref{delimiter}s.
-Mathematicians use delimiters to indicate the boundaries between parts
-of a formula. Left delimiters are also called ``^{opening}s'', and
-right delimiters are also called ``^{closing}s''. Openings and closings
-are two of \TeX's \minref{class}es of math symbols. \TeX\ puts
-different amounts of space around different \minref{class}es of math
-symbols. You might expect the space that \TeX\ puts around openings and
-closings to be symmetrical, but in fact it isn't.
-
-Some left and right delimiters have more than one command that you can
-use to produce them:
-
-\ulist\compact
-\li `$\{$' (|\lbrace| and |\{|)
-\li `$\}$' (|\rbrace| and |\}|)
-\li `$[$' (|\lbrack| and `|[|')
-\li `$]$' (|\rbrack| and `|]|')
-\endulist
-\noindent You can also use the left and right bracket characters
-(in either form) outside of math mode.
-
-In addition to these commands, \TeX\ treats `|(|' as a left
-delimiter and `|)|' as a right delimiter.
-
-You can have \TeX\
-choose the size for a delimiter by using |\left| and |\right| (\xref\left).
-Alternatively,
-you can get a delimiter of a specific size by using one of the |\big|$x$
-commands (see |\big| et al., \xref{\big}).
-
-\example
-The set $\{\,x \mid x>0\,\}$ is empty.
-|
-\produces
-The set $\{\,x \mid x>0\,\}$ is empty.
-
-\eix^^{delimiters}
-\endexample
-\enddesc
-
-%==========================================================================
-\subsection {Arrows}
-
-\begindesc
-\bix^^{arrows}
-\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
-These commands provide arrows of different kinds. They
-are classified as relations (\xref{relations}).
-The vertical arrows in the list are also \minref{delimiter}s, so you can make
-them larger by using |\big| et al.\ (\xref \big).
-
-The command |\iff| differs from |\Longleftrightarrow| in that
-it produces extra space to the left and right of the arrow.
-
-You can place symbols or other legends on top of a left or right arrow
-with |\buildrel| (\xref \buildrel).
-
-\example
-$$f(x)\mapsto f(y) \iff x \mapsto y$$
-|
-\dproduces
-$$f(x)\mapsto f(y) \iff x \mapsto y$$
-
-\eix^^{arrows}
-\endexample
-\enddesc
-
-%==========================================================================
-\subsection {Named mathematical functions}
-
-\begindesc
-\xrdef{namedfns}
-\bix^^{functions, names of}
-{\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
-These commands set the names of various mathematical functions
-in roman type, as is customary.
-If you apply a superscript or subscript to one of these commands,
-\TeX\ will in most cases typeset it in the usual place.
-In display style, \TeX\ typesets superscripts and subscripts
-on |\det|, |\gcd|, |\inf|, |\lim|, |\liminf|,
-|\limsup|, |\max|, |\min|, |\Pr|, and |\sup|
-as though they were limits,
-i.e., directly above or directly below the function name.
-
-\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
-This command produces a binary operation for indicating a ^{modulus}
-within a formula.
-\example
-$$x = (y+1) \bmod 2$$
-|
-\dproduces
-$$x = (y+1) \bmod 2$$
-\endexample
-\enddesc
-
-\begindesc
-\cts pmod {}
-\explain
-This command provides a notation for indicating a ^{modulus} in parentheses
-at the end of a formula.
-\example
-$$x \equiv y+1 \pmod 2$$
-|
-\dproduces
-$$x \equiv y+1 \pmod 2$$
-
-\eix^^{functions, names of}
-\endexample
-\enddesc
-
-%==========================================================================
-\subsection {Large operators}
-
-\begindesc
-\bix^^{operators//large}
-\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
-These commands produce various large operator symbols.
-\TeX\ produces the smaller size when it's in ^{text style}
-\minrefs{math mode} and the larger size when it's in ^{display style}.
-Operators are one of \TeX's \minref{class}es of math symbols.
-\TeX\ puts different amounts of space
-around different classes of math symbols.
-
-The large operator symbols with `|big|' in their names are different
-from the corresponding binary operations (see \xref{binops}) such as
-|\cap| ($\cap$) since they usually appear at the beginning
-of a formula. \TeX\ uses different spacing for a large operator
-than it does for a binary operation.
-
-Don't confuse `$\sum$' (|\sum|) with `$\Sigma$'^^|\Sigma| (|\Sigma|)
-or confuse `$\prod$' (|\prod|) with `$\Pi$' ^^|\Pi| (|\Pi|).
-|\Sigma| and |\Pi| produce capital Greek letters, which are smaller and
-have a different appearance.
-
-A large operator can have ^{limits}. The lower limit is specified as a
-subscript and the upper limit as a superscript.
-
-\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
-When it's in text style, \TeX\ normally places limits after a large operator.
-This command tells \TeX\ to place
-limits above and below a large operator rather than after it.
-
-If you specify more than one of |\limits|, |\nolimits|,
-and |\display!-limits|, the last command rules.
-
-\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
-When it's in display
-style, \TeX\ normally places limits above and below a large operator.
-(The |\int| operator is an exception---\TeX\
-places limits for |\int| after the operator in all cases.)
-^^|\int//limits after|
-This command tells \TeX\ to place
-limits after a large operator rather than above and below it.
-
-If you specify more than one of |\limits|, |\nolimits|,
-and |\display!-limits|, the last command rules.
-
-\example
-$$\bigcap\nolimits_{i=1}^Nq_i$$
-|
-\dproduces
-$$\bigcap\nolimits_{i=1}^Nq_i$$
-\endexample
-\enddesc
-
-\begindesc
-\cts displaylimits {}
-\explain
-This command tells \TeX\ to
-follow its normal rules for placement of limits:
-\olist\compact
-\li Limits on ^|\int| are placed after the operator.
-\li Limits on other large operators are placed after the
-operator in text style.
-\li Limits on other large operators are placed above and below the operator
-in display style.
-\endolist
-It's usually simpler to use |\limits| or |\nolimits|
-to produce a specific effect, but |\display!-limits| is sometimes
-useful in \minref{macro} definitions.
-
-Note that \plainTeX\ defines ^|\int| as a macro that sets |\nolimits|,
-so |\int\displaylimits| in text style restores the |\limits|
-convention.
-
-If you specify more than one of |\limits|, |\nolimits|,
-and |\display!-limits|, the last command rules.
-
-\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^^{operators//large}
-\endexample
-\enddesc
-
-
-%==========================================================================
-\subsection {Punctuation}
-
-\begindesc
-\bix^^{punctuation in math formulas}
-\cts cdotp {}
-\cts ldotp {}
-\explain
-These two commands respectively produce a centered dot and a dot
-positioned on the \minref{baseline}. They are valid only in math
-\minref{mode}. \TeX\ treats them as punctuation, putting no extra space in
-front of them but a little extra space after them.
-In contrast, \TeX\ puts an equal amount of space on both sides
-of a centered dot generated by the ^|\cdot| command (\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
-This command produces a colon punctation symbol.
-It is valid only in math mode.
-The difference between |\colon| and the colon character (|:|) is that
-`|:|' is an operator, so \TeX\ puts extra space to the left of it whereas
-it doesn't put extra space to the left of |\colon|.
-\example
-$f \colon t \quad f : t$
-|
-\produces
-$f \colon t \quad f : t$
-
-\eix^^{punctuation in math formulas}
-\endexample
-\enddesc
-
-
-%==========================================================================
-\secondprinting{\vfill\eject\null\vglue-30pt\vskip0pt}
-\section {Superscripts and subscripts}
-
-\begindesc
-\margin{Two groups of commands have been combined here.}
-\bix^^{superscripts}
-\bix^^{subscripts}
-\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
-The commands in each column are equivalent. The commands in the first
-column typeset \<argument> as a subscript, and those in the second
-column typeset \<argument> as a superscript. The |\sb| and |\sp|
-commands are mainly useful if you're working on a terminal that lacks an
-underscore or caret, or if you've redefined `|_|' or `|^|' and need
-access to the original definition. These commands are also used for
-setting lower and upper limits on summations and integrals. ^^{lower
-limits} ^^{upper limits}
-
-If a subscript or superscript is not a single \minref{token}, you need
-to enclose it in a \minref{group}. \TeX\ does not prioritize subscripts
-or superscripts, so it will reject formulas such as |a_i_j|, |a^i^j|, or
-|a^i_j|.
-
-Subscripts and superscripts are normally typeset in ^{script style}, or
-in ^{scriptscript style} if they are second-order, e.g., a subscript on
-a subscript or a superscript on a a subscript. You can set \emph{any}
-text in a math formula in a script or scriptscript \minref{style} with
-the ^|\scriptstyle| and ^|\scriptscriptstyle| commands (\xref
-\scriptscriptstyle).
-
-You can apply a subscript or superscript to any of the commands that
-produce named mathematical functions in roman type (see
-\xref{namedfns}). In certain cases (again, see \xref{namedfns}) the
-subscript or superscript appears directly above or under the function
-name as shown in the examples of ^|\lim| and ^|\det| below.
-
-\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^^{superscripts}
-\eix^^{subscripts}
-\endexample
-\enddesc
-
-\secondprinting{\vfill\eject}
-
-%==========================================================================
-\subsection {Selecting and using styles}
-
-\begindesc
-\bix^^{styles}
-\cts textstyle {}
-\cts scriptstyle {}
-\cts scriptscriptstyle {}
-\cts displaystyle {}
-\explain
-^^{text style} ^^{script style} ^^{scriptscript style} ^^{display style}
-These commands override the normal \minref{style} and hence the
-font that \TeX\ uses in setting a formula. Like
-font-setting commands such as |\it|, they are in
-effect until the end of the group containing them.
-They are useful when \TeX's choice of style is inappropriate for the formula
-you happen to be setting.
-\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
-This command tells \TeX\ to typeset one of the subformulas
-\<math$_1$>, \<math$_2$>, \<math$_3$>, or \<math$_4$>, making its choice
-according to the current \minref{style}.
-That is, if \TeX\ is in
-display style it sets the |\mathchoice| as \<math$_1$>; in text style it sets
-it as \<math$_2$>; in script style it sets it as \<math$_3$>;
-and in scriptscript style it sets it as \<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
-^^{math symbols}
-This command provides a convenient way of
-producing a math construct that works in all four \minref{style}s.
-To use it, you'll normally need to define an additional macro,
-which we'll call |\build|.
-The call on |\math!-palette| should then have the form
-|\mathpalette|\allowbreak|\build|\<argument>.
-
-|\build| tests what style \TeX\ is in and typesets \<argu\-ment> accordingly.
-It should be defined to have two parameters.
-When you call |\math!-palette|, it will in turn call |\build|,
-with |#1| being a
-command that selects the current style and |#2| being \<argument>.
-Thus, within the definition of |\build| you can typeset something
-in the current style by preceding it with `|#1|'.
-See \knuth{page~360} for examples of using |\mathpalette|
-and \knuth{page~151} for a further explanation of how it works.
-
-\eix^^{styles}
-\enddesc
-
-%==========================================================================
-\section {Compound symbols}
-
-%==========================================================================
-\subsection {Math accents}
-
-\begindesc
-\xrdef{mathaccent}
-^^{accents}
-^^{math//accents}
-%
-\easy\ctsx acute {^{acute accent} as in $\acute x$}
-\ctsx b {^{bar-under accent} as in $\b x$}
-\ctsx bar {^{bar accent} as in $\bar x$}
-\ctsx breve {^{breve accent} as in $\breve x$}
-\ctsx check {^{check accent} as in $\check x$}
-\ctsx ddot {^{double dot accent} as in $\ddot x$}
-\ctsx dot {^{dot accent} as in $\dot x$}
-\ctsx grave {^{grave accent} as in $\grave x$}
-\ctsx hat {^{hat accent} as in $\hat x$}
-\ctsx widehat {^{wide hat accent} as in $\widehat {x+y}$}
-\ctsx tilde {^{tilde accent} as in $\tilde x$}
-\ctsx widetilde {^{wide tilde accent} as in $\widetilde {z+a}$}
-\ctsx vec {^{vector accent} as in $\vec x$}
-\explain
-These commands produce accent marks in math formulas. You'll ordinarily
-need to leave a space after any one of them.
-A wide accent can be applied to a multicharacter subformula;
-\TeX\ will center the accent over the subformula.
-The other accents are usefully applied only to a single character.
-
-\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
-This command tells \TeX\ to typeset a math accent
-whose family and character code are given by \<mathcode>. (\TeX\ ignores
-the class of the \minref{mathcode}.)
-See \knuth{Appendix~G} for the details of how \TeX\ positions such an accent.
-The usual way to use |\mathaccent| is to put it in a macro definition
-that gives a name to a math accent.
-\example
-\def\acute{\mathaccent "7013}
-|
-\endexample
-\enddesc
-
-\see ``Accents'' (\xref {accents}).
-\enddesc
-
-%==========================================================================
-\subsection {Fractions and other stacking operations}
-
-\begindesc
-\bix^^{fractions}
-\bix^^{stacking subformulas}
-\easy\cts over {}
-\cts atop {}
-\cts above {\<dimen>}
-\cts choose {}
-\cts brace {}
-\cts brack {}
-\explain
-{\def\fri{\<formula$_1$>}%
-\def\frii{\<formula$_2$>}%
-These commands stack one subformula on top of another one. We will explain how
-|\over| works, and then relate the other commands to it.
-
-|\over| is the command that you'd normally use to produce a fraction.
-^^{fractions//produced by \b\tt\\over\e}
-If you write something in one of the following forms:
-\csdisplay
-$$!fri\over!frii$$
-$!fri\over!frii$
-\left!<delim>!fri\over!frii\right!<delim>
-{!fri\over!frii}
-|
-you'll get a fraction with numerator \fri\ and denominator \<for\-mu\-la$_2$>,
-i.e., \fri\ over \frii.
-In the first three of
-these forms the |\over| is not implicitly contained in a group;
-it absorbs
-everything to its left and to its right until it comes to a boundary,
-namely, the beginning or end of a group.
-
-You can't use |\over| or any of the other commands in this group
-more than once in a formula.
-Thus a formula such as:
-\csdisplay
-$$a \over n \choose k$$
-|
-isn't legal.
-This is not a severe restriction because
-you can always enclose one of the commands in braces.
-The reason for the restriction is that if you had two of these commands
-in a single formula, \TeX\ wouldn't know how to group them.
-
-The other commands are similar to |\over|, with the following exceptions:
-\ulist\compact
-\li |\atop| leaves out the fraction bar.
-\li |\above| provides a fraction bar of thickness \<dimen>.
-\li |\choose|
-leaves out the fraction bar and encloses the construct in parentheses.
-(It's called ``choose'' because $n \choose k$ is the notation for the
-number of ways of choosing $k$ things out of $n$ things.)
-\li |\brace| leaves out the fraction bar and encloses the construct in braces.
-\li |\brack|
-leaves out the fraction bar and encloses the construct in brackets.
-\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$> \<dimen>}
-\explain
-Each of these commands stacks one subformula on top of another one and
-surrounds the entire construct with \<delim$_1$> on the left and
-\<delim$_2$> on the right. These commands follow the same rules as
-|\over|, |\atop|, and |\above|. The \<dimen> in |\abovewithdelims|
-specifies the thickness of the fraction bar.
-\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
-^^{combinations, notation for}
-This command produces the mathematical form that denotes a choice among
-several cases.
-Each case has two parts, separated by `|&|'.
-\TeX\ treats the first part as a math formula
-and the second part as ordinary text. Each
-case must be followed by |\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
-These commands place extensible ^{braces}, lines, or ^{arrows}
-over or under the subformula given by \<argument>.
-\TeX\ will make these constructs as wide as they need to be for
-the context.
-When \TeX\ produces the extended braces, lines, or arrows, it considers
-only the dimensions of the \minref{box} containing \<argument>.
-If you use more than one of these commands in a single formula, the
-braces, lines, or arrows they produce
-may not line up properly with each other.
-You can use the |\mathstrut| command (\xref \mathstrut)
-to overcome this difficulty.
-\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 {\<formula> {\bt \\over} \<relation>}
-\explain
-^^{relations//putting formulas above}
-This command produces a \minref{box} in which \<formula>
-is placed on top of \<relation>. \TeX\ treats the result as a relation
-for spacing purposes \seeconcept{class}.
-\example
-$\buildrel \rm def \over \equiv$
-|
-\produces
-$\buildrel \rm def \over \equiv$
-
-\eix^^{fractions}
-\eix^^{stacking subformulas}
-\endexample
-\enddesc
-
-\secondprinting{\vfill\eject}
-
-
-%==========================================================================
-\subsection {Dots}
-
-\begindesc
-\bix^^{dots}
-\easy\cts ldots {}
-\cts cdots {}
-\explain
-These commands produce three ^{dots} in a row. For |\ldots|, the dots
-are on the baseline; for |\cdots|, the dots are centered with respect to
-the axis (see the explanation of |\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
-This command produces three vertical dots.
-\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
-This command produces three dots on a diagonal.
-Its most common use is to indicate repetition along the diagonal of a matrix.
-\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^^{dots}
-\endexample
-\enddesc
-
-\see |\dots| \ctsref\dots.
-
-%==========================================================================
-\subsection {Delimiters}
-
-\begindesc
-\bix^^{delimiters}
-%
-\cts lgroup {}
-\cts rgroup {}
-\explain
-These commands produce large left and right ^{parentheses}
-that are defined as opening and closing \minref{delimiter}s.
-The smallest available size for these delimiters is |\Big|.
-If you use smaller sizes, you'll get weird characters.
-\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
-These commands must be used together in the pattern:
-\display
-{{\bt \\left} \<delim$_1$> \<subformula> {\bt \\right} \<delim$_2$>}
-This construct causes \TeX\ to produce \<subformula>,
-enclosed in the \minref{delimiter}s \<delim$_1$> and \<delim$_2$>.
-The vertical size of the delimiter is adjusted to fit the
-vertical size (height plus depth) of \<subformula>. \<delim$_1$> and
-\<delim$_2$> need not correspond.
-For instance, you could use `|]|' as a left delimiter
-and `|(|' as a right delimiter in a single use of |\left|
-and |\right|.
-
-|\left| and |\right| have the important property that they define a
-group, i.e., they act like left and right braces. This grouping
-property is particularly useful when you put ^|\over| (\xref{\over}) or
-a related command between |\left| and |\right|, since you don't need to
-put braces around the fraction constructed by |\over|.
-
-If you want a left delimiter but not a right delimiter, you can use `|.|' in
-place of the delimiter you don't want and it will turn into empty space
-(of width ^|\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 {\<number>}
-\explain
-This command produces a delimiter whose characteristics are given by
-\<number>. \<number> is normally written in hexadecimal notation.
-You can use the |\delimiter| command instead of a character in any context
-where \TeX\ expects a delimiter (although the command is rarely used
-outside of a macro definition).
-Suppose that \<number> is the hexadecimal number $cs_1s_2s_3
-l_1l_2l_3$. Then \TeX\ takes the delimiter to have
-\minref{class} $c$, small variant
-$s_1s_2s_3$, and large variant $l_1l_2l_3$. Here $s_1s_2s_3$ indicates
-the math character found in position $s_2s_3$ of family $s_1$, and
-similarly for $l_1l_2l_3$. This is the same convention as the one
-used for ^|\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{number}}
-\cts delimitershortfall {\param{number}}
-\explain
-^^{delimiters//height of}
-These parameters together tell \TeX\ how the height of a \minref{delimiter}
-should be related to the vertical size of the subformula
-with which the delimiter is associated.
-|\delimiterfactor| gives the minimum
-ratio of the delimiter size to the vertical size of the subformula, and
-|\delimitershortfall| gives the maximum by which the height of the
-delimiter will be reduced from that of the vertical size of the subformula.
-
-Suppose that the \minref{box} containing the subformula
-has height $h$ and depth $d$, and let $y=2\,\max(h,d)$.
-Let the value of |\delimiterfactor| be $f$ and the value of
-|\delimitershortfall| be $\delta$.
-Then \TeX\ takes the minimum delimiter size to be at least $y \cdot
-f/1000$ and at least $y-\delta$. In particular, if |\delimiterfactor|
-is exactly $1000$ then \TeX\ will try to make a delimiter at least as tall
-as the formula to which it is attached.
-See \knuth{page~152 and page~446 (Rule 19)}
-for the exact details of how \TeX\ uses these parameters.
-\PlainTeX\ sets |\delimiter!-factor| to $901$ and
-|\delimiter!-shortfall| to |5pt|.
-\enddesc
-
-\see |\delcode| (\xref\delcode), |\vert|, |\Vert|,
-and |\backslash| (\xref\vert).
-\eix^^{delimiters}
-
-%==========================================================================
-\subsection {Matrices}
-
-\begindesc
-\cts matrix
- {{\bt \rqbraces{\<line> \\cr $\ldots$ \<line> \\cr}}}
-\cts pmatrix
- {{\bt \rqbraces{\<line> \\cr $\ldots$ \<line> \\cr}}}
-\cts bordermatrix
- {{\bt \rqbraces{\<line> \\cr $\ldots$ \<line> \\cr}}}
-\explain
-Each of these three commands produces a ^{matrix}.
-The elements of each row of the input matrix
-are separated by `|&|' and each row in turn is ended
-by |\cr|.
-(This is the same form that is used for an
-\minref{alignment}.)
-The commands differ in the following ways:
-\ulist\compact
-\li |\matrix| produces a matrix without any surrounding or inserted
-\minref{delimiter}s.
-\li |\pmatrix| produces a matrix surrounded by parentheses.
-\li |\bordermatrix| produces a matrix in which the first row and the first
-column are treated as labels. (The first element of the first row is
-usually left blank.) The rest of the matrix is enclosed in
-parentheses.
-\endulist
-\TeX\ can make the parentheses for |\pmatrix| and |\bordermatrix| as large as
-they need to be by inserting vertical extensions. If you want a matrix
-to be surrounded by delimiters other than parentheses, you should use
-|\matrix| in conjunction with |\left| and |\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 {Roots and radicals}
-
-\begindesc
-\easy\cts sqrt {\<argument>}
-\explain
-This command produces the notation for the square root of \<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
-This command produces the notation for a root of \<argument$_2$>, where the
-root is given by \<argument$_1$>.
-\example
-$\root \alpha \of {r \cos \theta}$
-|
-\produces
-$\root \alpha \of {r \cos \theta}$
-\endexample
-\enddesc
-
-\begindesc
-\cts radical {\<number>}
-\explain
-This command produces a radical sign
-whose characteristics are given by
-\<number>. It uses the same representation as the delimiter code
-^^{delimiter codes}
-in the ^|\delcode| command (\xref \delcode).
-
-\example
-\def\sqrt{\radical "270370} % as in plain TeX
-|
-\endexample
-\enddesc
-
-%==========================================================================
-\section {Equation numbers}
-
-\begindesc
-\easy\cts eqno {}
-\cts leqno {}
-\explain
-These commands attach an equation number to a displayed formula.
-|\eqno| puts the equation number on the right and |\leqno| puts it on
-the left.
-The commands must be given at the end of the formula.
-If you have a multiline display and you want to number more than one
-of the lines, use the |\eq!-alignno| or |\leq!-alignno| command
-(\xref \eqalignno).
-
-These commands are valid only in display math mode.
-
-\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 {Multiline displays}
-
-\begindesc
-\bix^^{displays//multiline}
-\cts displaylines
- {{\bt \rqbraces{\<line>\ths\\cr$\ldots$\<line>\ths\\cr}}}
-\explain
-This command produces a multiline math display in which each line is
-centered independently of the other lines.
-You can use the |\noalign| command (\xref \noalign) to change the amount
-of space between two lines of a multiline display.
-
-If you want to attach equation numbers to some or all of the equations
-in a multiline math display, you should use |\eqalignno| or
-|\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{\<line> \\cr $\ldots$ \<line> \\cr}}}
-\cts eqalignno {}
- {{\bt \rqbraces{\<line> \\cr $\ldots$ \<line> \\cr}}}
-\cts leqalignno {}
- {{\bt \rqbraces{\<line> \\cr $\ldots$ \<line> \\cr}}}
-\explain
-^^{equation numbers}
-These commands produce a multiline math display
-in which certain corresponding parts of the lines are lined up vertically.
-The |\eqalignno| and |\leqalignno| commands also let you
-provide equation numbers for some or all of the lines.
-|\eqalignno| puts the equation numbers on the right and
-|\leqalignno| puts them on the left.
-
-Each line in the display is ended by |\cr|. Each of the parts to be aligned
-(most often an equals sign) is preceded by
-`|&|'. An `|&|' also precedes each equation number, which comes at the
-end of a line.
-You can put more than one of these commands in a single display in order
-to produce several groups of equations. In this case, only the rightmost
-or leftmost group can be produced by |\eqalignno| or |\leqalignno|.
-
-You can use the |\noalign| command (\xref \noalign) to change the amount
-of space between two lines of a multiline display.
-\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^^{displays//multiline}
-\endexample
-\enddesc
-
-%==========================================================================
-\section {Fonts in math formulas}
-
-\begindesc
-^^{fonts}
-\xrdef{mathfonts}
-%
-\easy\ctsx cal {use calligraphic uppercase font}
-\ctsx mit {use math italic font}
-\ctsx oldstyle {use old style digit font}
-\explain
-These commands cause \TeX\ to typeset the following text in the
-specified font. You can only use them in \minref{math mode}.
-The |\mit| command is useful for producing slanted capital ^{Greek letters}.
-You can also use the commands given in
-\headcit{Selecting fonts}{selfont} to change fonts in math mode.
-\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
-
-^^{type styles}
-\begindesc
-\ctsx itfam {family for italic type}
-\ctsx bffam {family for boldface type}
-\ctsx slfam {family for slanted type}
-\ctsx ttfam {family for typewriter type}
-\explain
-These commands define type families \minrefs{family} for use in
-\minref{math mode}. Their principal use is in defining the
-|\it|, |\bf|, |\sl|, and |\tt| commands so that they work in math mode.
-\enddesc
-
-\begindesc
-\cts fam {\param{number}}
-\explain
-When \TeX\ is in \minref{math mode}, it ordinarily typesets a character
-using the font family ^^{class} given in its \minref{mathcode}.
-^^{family//given by \b\tt\\fam\e}
-However, when \TeX\ is in math mode and encounters a character whose
-\minref{class} is $7$ (Variable), it typesets that character using
-the font \minref{family} given by the value of |\fam|, provided that the
-value of |\fam| is between $0$ and $15$.
-If the value of |\fam| isn't in that range, \TeX\ uses the family in
-the character's mathcode as in the ordinary case.
-\TeX\ sets |\fam| to $-1$ whenever it enters math mode.
-Outside of math mode, |\fam| has no effect.
-
-By assigning a value to
-|\fam| you can change the way that \TeX\ typesets ordinary
-characters such as variables.
-For instance, by setting |\fam| to |\ttfam|, you cause \TeX\ to typeset
-variables using a typewriter font.
-\PlainTeX\ defines |\tt| as a \minref{macro} that, among other things,
-sets |\fam| to |\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
-^^{text style}
-^^{script style}
-^^{scriptscript style}
-Each of these parameters specifies the font that \TeX\ is to use for
-typesetting the indicated \minref{style} in the indicated \minref{family}.
-These choices have no effect outside of \minref{math mode}.
-\example
-\scriptfont2 = \sevensy % As in plain TeX.
-|
-\endexample
-\enddesc
-
-\see ``Type styles'' (\xref{seltype}).
-%==========================================================================
-\section {Constructing math symbols}
-
-%==========================================================================
-\subsection {Making delimiters bigger}
-
-\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
-^^{delimiters//enlarging}
-These commands make \minref{delimiter}s bigger than their normal size.
-The commands in the four columns
-produce successively larger sizes. The difference between |\big|,
-|\bigl|, |\bigr|, and |bigm| has to do with the \minref{class} of the
-enlarged delimiter:
-\ulist\compact
-\li |\big| produces an ordinary symbol.
-\li |\bigl| produces an opening symbol.
-\li |\bigr| produces a closing symbol.
-\li |\bigm| produces a relation symbol.
-\endulist
-\noindent
-\TeX\ uses the class of a symbol in order to decide how much space to put
-around that symbol.
-
-These commands, unlike |\left| and |\right|,
-do \emph{not} define a group.
-
-\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 {Parts of large symbols}
-
-\begindesc
-\cts downbracefill {}
-\cts upbracefill {}
-\explain
-These commands respectively produce upward-pointing
-and downward-pointing extensible ^{horizontal braces}. ^^{braces}
-\TeX\ will make the braces as wide as necessary.
-These commands
-are used in the definitions of ^|\overbrace| and ^|\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
-These commands produce portions of certain large
-delimiters
-^^{delimiters//parts of}
-and can themselves be used as delimiters.
-They refer to characters in the ^|cmex10| math font.
-\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 {Aligning parts of a formula}
-
-%==========================================================================
-\subsection {Aligning accents}
-
-\begindesc
-\bix^^{accents//aligning}
-\cts skew {\<number> \<argument$_1$> \<argument$_2$>}
-\explain
-This command shifts the accent \<argument$_1$> by
-\<number> \minref{mathematical unit}s to the right of its normal position
-with respect to \<argu\-ment$_2$>.
-The most common use of this command is for
-modifying the position of an accent that's over
-another 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
-The |\skewchar| of a font
-is the character in the font whose kerns,
-as defined in the font's metrics file, determine the positions
-of math accents. That is, suppose that \TeX\ is applying a math accent
-to the character `|x|'. \TeX\ checks if the character pair
-`|x\skewchar|' has a kern; if so, it moves the accent by the amount of
-that kern. The complete algorithm that \TeX\ uses to position math
-accents (which involves many more things) is in \knuth{Appendix~G}.
-
-If the value of |\skewchar| is not in the range $0$--$255$,
-\TeX\ takes the kern value to be zero.
-
-Note that \<font> is a control sequence
-that names a font, not a \<font\-name> that names font files.
-Beware:
-an assignment to |\skewchar| is \emph{not} undone at the end
-of a group.
-If you want to change |\skewchar| locally, you'll need to
-save and restore its original value explicitly.
-\enddesc
-
-\begindesc
-\cts defaultskewchar {\param{number}}
-\explain
-When \TeX\ reads the metrics file
-^^{metrics file//default skew character in}
-for a font in response to a
-^|\font| command, it sets the font's ^|\skewchar| to
-|\default!-skewchar|.
-If the value of |\default!-skewchar| is
-not in the range $0$--$255$, \TeX\ does not assign any
-skew characters by default.
-\PlainTeX\ sets |\defaultskewchar| to $-1$, and it's usually best
-to leave it there.
-\margin{Misleading example deleted.}
-\eix^^{accents//aligning}
-\enddesc
-
-%==========================================================================
-\subsection {Aligning material vertically}
-
-\begindesc
-\cts vcenter {\rqbraces{\<vertical mode material>}}
-\ctsbasic {\\vcenter to \<dimen> \rqbraces{\<vertical mode material>}}{}
-\ctsbasic {\\vcenter spread \<dimen> \rqbraces{\<vertical mode material>}}{}
-\explain
-Every math formula has an invisible
-``^{axis}'' that \TeX\ treats as a kind of
-horizontal centering line for that formula.
-For instance, the axis of a formula consisting of a
-fraction is at the center of the fraction bar.
-The |\vcenter| command tells \TeX\ to place the \<vertical mode material>
-in a \minref{vbox} and to center the vbox
-with respect to the axis of the formula it is currently constructing.
-
-The first form of the command
-centers the material as given. The second and third
-forms expand or shrink the material vertically as in the |\vbox| command
-(\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 {Producing spaces}
-
-%==========================================================================
-\subsection {Fixed-width math spaces}
-
-\begindesc
-\bix^^{space//in math formulas}
-\ctspecial ! \ctsxrdef{@shriek}
-\ctspecial , \ctsxrdef{@comma}
-\ctspecial > \ctsxrdef{@greater}
-\ctspecial ; \ctsxrdef{@semi}
-\explain
-These commands produce various amounts of ^{extra space} in formulas. They
-are defined in terms of \minref{mathematical unit}s, so \TeX\ adjusts
-the amount of space according to the current \minref{style}.
-\ulist
-\li |\!!| produces a negative thin space, i.e., it reduces the space
-between its neighboring subformulas by the amount of a thin space.
-\li |\,| produces a thin space.
-\li |\>| produces a medium space.
-\li |\;| produces a thick space.
-\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
-These parameters define thin, medium, and thick spaces in
-math mode.
-\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{dimen}}
-\explain
-This parameter defines a distance that is equal to three points (unless
-you change it).
-The |\jot| is a convenient unit of measure for opening up \hbox{math displays}.
-\enddesc
-
-%==========================================================================
-\subsection {Variable-width math spaces}
-
-\begindesc
-\cts mkern {\<mudimen>}
-\explain
-^^{kerns//in math formulas}
-This command
-produces a \minref{kern}, i.e., blank space, of width \<mudimen>.
-The kern is measured
-in \minref{mathematical unit}s, which vary according to the style.
-Aside from its unit of measurement, this command behaves just like
-|\kern| (\xref \kern) does in horizontal mode.
-
-\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
-^^{glue}
-This command produces horizontal \minref{glue}
-that has natural width \<mu\-dimen$_1$>, stretch \<mudimen$_2$>,
-and shrink \<mudimen$_3$>.
-The glue is measured in \minref{mathematical unit}s, which vary according
-to the style. Aside from its units of measurement, this command behaves
-just like |\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
-When \TeX\ is currently typesetting in script or scriptscript
-\minref{style} and encounters this command
-immediately in front of glue or a kern,
-it cancels the glue or kern.
-|\nonscript| has no effect in the other styles.
-
-This command provides a way of ``tightening up'' the spacing in
-script and scriptscript styles, which generally are set in smaller type.
-It is of little use outside of macro definitions.
-\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^^{space//in math formulas}
-
-
-%==========================================================================
-\subsection {Spacing parameters for displays}
-
-\begindesc
-\bix^^{displays//spacing parameters for}
-\cts displaywidth {\param{dimen}}
-\explain
-This parameter specifies the maximum width that
-\TeX\ allows for a math display. If \TeX\ cannot fit the display
-into a space of this width, it sets an overfull \minref{hbox}
-and complains.
-\TeX\ sets the value of |\displaywidth| when it encounters the `|$$|'
-that starts the display. This initial value is
-|\hsize| (\xref \hsize) unless it's overridden by changes to the
-paragraph shape.
-See \knuth{pages~188--189} for a more detailed explanation of this parameter.
-\enddesc
-
-\begindesc
-\cts displayindent {\param{dimen}}
-\explain
-This parameter specifies the space by which \TeX\ indents a
-math display.
-\TeX\ sets the value of |\displayindent| when it encounters the `|$$|'
-that starts the display. Usually this initial value is zero,
-but if the paragraph shape indicates that the display should
-be shifted by an amount $s$,
-\TeX\ will set |\displayindent| to $s$.
-See \knuth{pages~188--189} for a more detailed explanation of this parameter.
-\enddesc
-
-\begindesc
-\cts predisplaysize {\param{dimen}}
-\explain
-\TeX\ sets this parameter to the width of the line preceding
-a math display.
-\TeX\ uses |\predisplaysize| to determine whether or not
-the display starts to
-the left of where the previous line ends, i.e., whether or not it visually
-overlaps the previous line.
-If there is overlap, it uses the |\abovedisplayskip| and
-|\belowdisplayskip| glue in setting the display;
-otherwise it uses the |\abovedisplay!-shortskip| and
-|\belowdisplay!-shortskip| glue.
-See \knuth{pages~188--189} for a more detailed explanation of this parameter.
-\enddesc
-
-\begindesc
-\cts abovedisplayskip {\param{glue}}
-\explain
-This parameter specifies the amount of vertical glue that
-\TeX\ inserts before a display when the display starts to
-the left of where the previous line ends, i.e., when it visually
-overlaps the previous line.
-\PlainTeX\ sets |\abovedisplayskip| to |12pt plus3pt minus9pt|.
-See \knuth{pages~188--189} for a more detailed explanation of this parameter.
-\enddesc
-
-\begindesc
-\cts belowdisplayskip {\param{glue}}
-\explain
-This parameter specifies the amount of vertical glue that
-\TeX\ inserts after a display when the display starts to
-the left of where the previous line ends, i.e., when it visually
-overlaps the previous line.
-\PlainTeX\ sets |\belowdisplay!-skip| to |12pt plus3pt minus9pt|.
-See \knuth{pages~188--189} for a more detailed explanation of this parameter.
-\enddesc
-
-\begindesc
-\cts abovedisplayshortskip {\param{glue}}
-\explain
-This parameter specifies the amount of vertical glue that
-\TeX\ inserts before a math display
-when the display starts to
-the right of where the previous line ends, i.e., when it does not visually
-overlap the previous line.
-\PlainTeX\ sets |\abovedisplay!-shortskip| to |0pt plus3pt|.
-See \knuth{pages~188--189} for a more detailed explanation of this parameter.
-\enddesc
-
-\begindesc
-\cts belowdisplayshortskip {\param{glue}}
-\explain
-This parameter specifies the amount of vertical glue that
-\TeX\ inserts after a display
-when the display starts to
-the right of where the previous line ends, i.e., when it does not visually
-overlap the previous line.
-\PlainTeX\ sets |\belowdisplay!-shortskip| to |7pt plus3pt minus4pt|.
-See \knuth{pages~188--189} for a more detailed explanation of this parameter.
-
-\eix^^{displays//spacing parameters for}
-\enddesc
-
-
-%==========================================================================
-\subsection {Other spacing parameters for math}
-
-\begindesc
-\cts mathsurround {\param{dimen}}
-\explain
-This parameter specifies the amount of space that \TeX\
-inserts before and after a math formula in text mode (i.e., a formula
-surrounded by single |$|'s). See \knuth{page~162} for further details about
-its behavior.
-\PlainTeX\ leaves |\mathsurround| at |0pt|.
-\enddesc
-
-\begindesc
-\cts nulldelimiterspace {\param{dimen}}
-\explain
-^^{delimiters//null, space for}
-This parameter specifies the width of the
-space produced by a null \minref{delimiter}.
-\PlainTeX\ sets |\nulldelimiterspace| to |1.2pt|.
-\enddesc
-
-\begindesc
-\cts scriptspace {\param{dimen}}
-\explain
-This parameter specifies the amount of space that \TeX\
-inserts before and after a subscript or superscript.
-The |\nonscript| command (\xref\nonscript) ^^|\nonscript|
-after a subscript or superscript cancels this space.
-\PlainTeX\ sets |\script!-space| to |0.5pt|.
-\enddesc
-
-%==========================================================================
-\section {Categorizing math constructs}
-
-\begindesc
-\makecolumns 7/2:
-\cts mathord {}
-\cts mathop {}
-\cts mathbin {}
-\cts mathrel {}
-\cts mathopen {}
-\cts mathclose {}
-\cts mathpunct {}
-\explain
-These commands tell \TeX\ to treat the construct that follows as belonging
-to a particular ^{class} (see \knuth{page~154} for the definition
-of the classes). They are listed here in the order of the class numbers,
-from $0$ to $6$. Their primary
-effect is to adjust the spacing around the construct
-to be whatever it is for the specified class.
-
-\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
-This command tells \TeX\ to treat the construct that follows
-as an ``inner formula'', e.g., a fraction, for spacing purposes.
-It resembles the class commands given just above.
-\enddesc
-
-%==========================================================================
-\section {Special actions for math formulas}
-
-\begindesc
-\cts everymath {\param{token list}}
-\cts everydisplay {\param{token list}}
-\explain
-^^{displays//actions for every display}
-These parameters specify \minref{token} lists that \TeX\ inserts
-at the start of every text math or display math formula, respectively.
-You can
-take special actions at the start of each math formula by
-assigning those actions to |\everymath| or
-|\everydisplay|. Don't forget that if you want both kinds of formulas to
-be affected, you need to set \emph{both} parameters.
-\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}
-\endchapter
-\byebye
diff --git a/Master/texmf-doc/doc/english/impatient/modes.tex b/Master/texmf-doc/doc/english/impatient/modes.tex
deleted file mode 100644
index 1adce6a950a..00000000000
--- a/Master/texmf-doc/doc/english/impatient/modes.tex
+++ /dev/null
@@ -1,2078 +0,0 @@
-% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
-% See file fdl.tex for copying conditions.
-
-\input macros
-\chapter {Commands for \linebreak horizontal and \linebreak vertical modes}
-
-\chapterdef{hvmodes}
-
-This section covers commands that have corresponding or identical
-forms for both horizontal and vertical modes.
-These commands provide boxes, spaces, rules, leaders,
-and alignments.
-For an explanation of the conventions used in this section,
-see \headcit{Descriptions of the commands}{cmddesc}.
-
-\begindescriptions
-
-%==========================================================================
-\section {Producing space}
-
-%==========================================================================
-
-\subsection {Fixed-width horizontal space}
-
-\begindesc
-\bix^^{space//producing}
-\bix^^{horizontal space}
-\cts thinspace {}
-\explain
-This command produces a positive \minref{kern}
-whose width is one-sixth of an em
-(\xref{dimdefs})
-i.e., it causes \TeX\ to move its position right by that amount.
-It is useful
-when you have a nested quotation, for example,
-and you want to separate the levels of quotes.
-\TeX\ won't break a line at
-a |\thinspace|.\minrefs{line break}
-
-\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
-This command
-produces a negative kern whose width is one-sixth of an em
-(\xref{dimdefs}),
-i.e., it causes \TeX\ to move its position left by that amount.
-It is useful for bringing together characters that are a little too
-far apart.
-\TeX\ won't break a line at a |\negthinspace|.\minrefs{line break}
-\example
-The horror, the horror\negthinspace, the horror of it all!!
-|
-\produces
-The horror, the horror\negthinspace, the horror of it all!
-\endexample
-\enddesc
-
-\begindesc
-\cts enspace {}
-\explain
-This command produces a \minref{kern} whose width is one ^{en}
-(half of an em, see \xrefpg{dimdefs}).
-\TeX\ won't break a line
-at an |\enspace| unless it's followed by glue.
-In a bulleted list, the bullets are usually separated from the following
-text by an |\enspace|.
-\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}
-Each of these commands
-produces a glob of horizontal \minref{glue}
-that can neither stretch nor shrink.
-\TeX\ can break a line \minrefs{line break} at such glue.
-The width of these glues (which are relative to the current font)
-are as follows for |cmr10|, the default \plainTeX\ font:
-\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 Command}&{\it Space}&{\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^^{horizontal space}
-\enddesc
-
-%==========================================================================
-\subsection {Fixed-length vertical space}
-
-\begindesc
-\bix^^{vertical space}
-\easy\cts smallskip {}
-\cts medskip {}
-\cts bigskip {}
-\explain
-These commands produce successively larger
-amounts of vertical space:
-\display{{\def\bar{\kern 2pt\hrule width 5pc}
-\def\lbl#1{\hbox to 5pc{\hfil #1skip\hfil}}
-\leavevmode
-\vtop{\lbl{small}\bar\smallskip\bar}\quad
-\vtop{\lbl{med}\bar\medskip\bar}\quad\vtop{\lbl{big}\bar\bigskip\bar}}}
-\noindent
-|\smallskip| skips by $3$ points and can stretch or
-shrink by $1$ point. |\med!-skip| is equivalent to two |\smallskip|s
-and |\bigskip| is equivalent to two |\medskip|s.
-
-These commands end a paragraph since they are inherently vertical.
-The skips that they produce
-are in addition to the normal interparagraph skip.
-\example
-Hop \smallskip skip \medskip and \bigskip jump.
-|
-\produces
-Hop \smallskip skip \medskip and \bigskip jump.
-\endexample
-\enddesc
-
-\begindesc
-\cts smallskipamount {\param{glue}}
-\cts medskipamount {\param{glue}}
-\cts bigskipamount {\param{glue}}
-\explain
-These parameters specify the amounts of glue produced by
-the |\small!-skip|, |\med!-skip|, and |\big!-skip| commands.
-By changing these parameters you change the effect of the commands.
-The default values (for \plainTeX)
-correspond to a quarter of a linespace, half a linespace,
-and a full linespace.
-We recommend that you maintain this ratio by changing
-these values whenever
-you change |\baselineskip| (\xref\baselineskip).
-^^|\baselineskip//and {\tt\\smallskipamount}, etc.|
-\eix^^{vertical space}
-
-\enddesc
-
-%==========================================================================
-\subsection {Variable-size space}
-
-\begindesc
-\easy\cts hskip {\<dimen$_1$> {\bt plus} \<dimen$_2$> {\bt minus} \<dimen$_3$>}
-\cts vskip {\<dimen$_1$> {\bt plus} \<dimen$_2$> {\bt minus} \<dimen$_3$>}
-^^{vertical skip}^^{vertical glue}
-^^{horizontal skip}^^{horizontal glue}
-\bix^^{horizontal space}
-\bix^^{vertical space}
-\explain
-These commands produce horizontal and vertical glue respectively.
-In the simplest and most common case when only \<dimen$_1$> is present,
-|\hskip| skips to the right by \<dimen$_1$>
-and |\vskip| skips down the page by \<dimen$_1$>.
-More generally, these commands
-produce \minref{glue} whose natural size is
-\<dimen$_1$>, whose stretch is \<dimen$_2$>, and whose shrink is \<dimen$_3$>.
-Either the |plus| \<dimen$_2$>, the |minus |\<dimen$_3$>,
-or both can be omitted.
-If both are present, the |plus| must come before the |minus|.
-An omitted value
-is taken to be zero. Any of the \<dimen>s can be negative.
-
-You can use |\hskip| in math mode, but you can't use |mu| units
-\seeconcept{mathematical unit}
-for any of the dimensions. If you want |mu| units, use |\mskip|
-(\xref\mskip) instead.
-
-\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 {\<glue>}
-\cts vglue {\<glue>}
-^^{vertical glue}
-^^{horizontal glue}
-\explain
-The |\hglue| command produces horizontal \minref{glue} that won't disappear at
-a line break; the |\vglue| command
-produces vertical \minref{glue} that won't disappear at a page break.
-In other respects these commands are just like |\hskip| and |\vskip|.
-You can use |\vglue| to produce blank space at the top of a page,
-e.g., above a title on the first page of a document, but
-^|\topglue| (next) is usually better for this purpose.
-\enddesc
-
-\begindesc
-\cts topglue {\<glue>}
-\explain
-\margin{Command added; recent addition to \TeX}
-This command\footnote{|\topglue| was added to \TeX\ in version 3.0,
-later than the other enhancements introduced by ^{\newTeX}
-(\xref{newtex}). It is first described in the \emph{eighteenth\/}
-edition of \texbook.} causes the space from the top of the page to the
-top of the first box on the page to be \<glue> precisely.
-The top of the page is considered to be at the baseline of an
-imaginary line of text just above the top line of the page.
-More precisely, it's a distance |\topskip| above the origin as given by
-|\hoffset| and |\voffset|.
-
-This command is useful because \TeX\ ordinarily adjusts the glue
-produced by |\topskip| in a complex way. By using |\topglue| you can
-control the position of the first box on the page without worrying about
-those adjustments.
-
-\enddesc
-
-\begindesc
-\cts kern {\<dimen>}
-\explain
-The effect of this command depends on the mode that \TeX\ is in when
-it encounters it:
-\ulist
-
-\li In a horizontal mode, \TeX\ moves its position to the right (for a positive
-kern) or to the left (for a negative kern).
-
-\li In a vertical mode, \TeX\ moves its position down the page (for a positive
-kern) or up the page (for a negative kern).
-
-\endulist
-\noindent
-Thus a positive kern produces empty space while a negative kern
-causes \TeX\ to back up over something that it's already produced.
-This notion of a kern ^^{kerns}
-is different from the notion of a kern in some computerized
-typesetting systems---in \TeX, positive kerns push two letters \emph{apart}
-instead of bringing them closer together.
-
-A kern is similar to
-\minref{glue}, except that (a)~a kern can neither stretch nor shrink,
-and (b)~\TeX\ will only break a line or a page at a kern if the kern
-is followed by glue and is not part of a math formula.
-If \TeX\ finds a kern at the
-end of a line or a page, it discards the kern.
-If you want to get the effect of a kern that never disappears,
-use ^|\hglue| or ^|\vglue|.
-
-You can use |\kern| in math mode, but you can't use |mu| units
-\seeconcept{mathematical unit}
-for \<dimen>. If you want |mu| units, use |\mkern|
-(\xref\mkern) instead.
-^^{line breaks//kerns at}
-^^{page breaks//kerns at}
-
-\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^^{glue//infinitely stretchable}
-These commands produce infinitely stretchable horizontal
-and vertical glue that
-overwhelms any finite stretch that may be present.
-|\hfil| and |\hfill| produce horizontal glue, while
-|\vfil| and |\vfill| produce vertical glue.
-
-|\hfill| is infinitely larger than |\hfil|.
-If both |\hfill| and |\hfil| appear in the same \minref{box},
-the |\hfill| will consume all the available extra space
-and the |\hfil| will be effectively ignored.
-|\hfill| can in turn be overwhelmed by |\hskip 0pt plus 1filll|.
-The glue produced by
-|\hfil| and |\hfill| never shrinks.
-
-The behavior of |\vfil| and |\vfill| is analogous.
-
-\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^^{glue//infinitely stretchable}
-\enddesc
-
-\begindesc
-\cts hss {}
-\cts vss {}
-\explain
-These commands produce horizontal and vertical glue
-that is both infinitely stretchable and
-infinitely shrinkable. The glue can shrink
-to a negative distance, producing the effect of backspacing along a line
-(for |\hss|) or moving back up a page (for |\vss|).
-
-\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
-^^{glue//negative}
-These commands cancel the effect of a preceding |\hfil|
-or |\vfil|. While |\hfil| and |\vfil|
-produce infinitely stretchable positive \minref{glue}, |\hfilneg|
-and |\vfilneg| produce infinitely stretchable negative glue.
-(Thus, $n$ |\hfilneg|s cancel $n$ ^|\hfil|s, and similarly for
-|\vfilneg|.)
-The main use of |\hfilneg| and |\vfilneg|
-is to counteract the effect of an |\hfil| or |\vfil|
-inserted by a \minref{macro}.
-
-|\hfilneg| and |\vfilneg| have
-the curious property that if they are the only infinitely stretchable
-glue in a box, they produce exactly the same effect as |\hfil|
-and |\vfil|.
-
-\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| and |\vbadness| (\xref \vbadness),
-|\hfuzz| and |\vfuzz| (\xref \vfuzz),
-\conceptcit{leaders}.\par}
-\eix^^{space//producing}
-\eix^^{horizontal space}
-\eix^^{vertical space}
-
-%==========================================================================
-\section {Manipulating boxes}
-
-%==========================================================================
-\subsection {Constructing hboxes and vboxes}
-
-\begindesc
-\bix^^{box commands}
-^^{hboxes//constructing with \b\tt\\hbox\e}
-%
-\cts hbox {\rqbraces{\<horizontal mode material>}}
-\aux\cts hbox {{\bt to} \<dimen> \rqbraces{\<horizontal mode material>}}
-\aux\cts hbox {{\bt spread} \<dimen> \rqbraces{\<horizontal mode material>}}
-\explain
-This command produces an hbox
-(horizontal \minref{box}) containing \<horizontal mode material>.
-The braces around \<horizontal mode material> define a group.
-\TeX\ doesn't break the \<horizontal mode material> into lines,
-since it's in restricted horizontal mode when it's assembling the box.
-\TeX\ won't change the size of the box once it's been produced.
-
-|\hbox| is often useful when you want to keep some text all on one line.
-If your use of |\hbox| prevents \TeX\ from breaking lines in an acceptable
-way, \TeX\ will complain about an overfull hbox.
-
-The width of the hbox depends on the arguments to |\hbox|:
-\ulist\compact
-\li If you specify only \<horizontal mode material>,
-the hbox will have its natural \minref{width}.
-\li If you specify |to| \<dimen>, the width of the hbox will be \<dimen>.
-\li If you specify |spread| \<dimen>, the width of the hbox will be
-its natural width plus \<dimen>, i.e., the hbox will be spread out by
-\<dimen>.
-\endulist
-
-The ^|\hfil| command (\xref\hfil) is useful for filling out an
-hbox with empty space when the material in the box isn't as wide as
-the width of the box.
-\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 {\<vertical mode material>}
-\aux\cts vtop {{\bt to} \<dimen> \rqbraces{\<vertical mode material>}}
-\aux\cts vtop {{\bt spread} \<dimen> \rqbraces{\<vertical mode material>}}
-\cts vbox {\rqbraces{\<vertical mode material>}}
-\aux\cts vbox {{\bt to} \<dimen> \rqbraces{\<vertical mode material>}}
-\aux\cts vbox {{\bt spread} \<dimen> \rqbraces{\<vertical mode material>}}
-\explain
-^^{hbox//constructing with \b\tt\\hbox\e}
-These commands
-produce a \minref{vbox} (vertical \minref{box})
-containing \<vertical mode material>.
-The braces around \<vertical mode material> define a group.
-\TeX\ is in internal vertical mode when it's assembling the box.
-\TeX\ won't change the size of the box once it's been produced.
-
-The difference between |\vtop| and |\vbox| lies in where \TeX\ puts
-the reference point of the constructed vbox.
-Ordinarily, the reference point gotten from |\vtop| tends to be at or near
-the top of the constructed vbox,
-while
-the reference point gotten from |\vbox| tends to be at or near
-the bottom of the constructed vbox.
-Thus a row of vboxes all constructed with |\vtop|
-will tend to have their tops nearly in a line,
-while a row of vboxes all constructed with |\vbox|
-will tend to have their bottoms nearly in a line.
-
-|\vtop| and |\vbox| are often useful
-when you want to keep some text together on a single page.
-(For this purpose, it usually doesn't matter which command you use.)
-If your use of these commands
-prevents \TeX\ from breaking pages in an acceptable
-way, \TeX\ will complain that it's found an overfull or underfull vbox while
-|\output| is active.
-
-The height of a vbox depends on
-the arguments to |\vtop| or |\vbox|.
-For |\vbox|, \TeX\ determines the height as follows:
-\ulist\compact
-\li If you specify only \<vertical mode material>,
-the vbox will have its natural height.
-\li If you specify |to| \<dimen>,
-the height of the vbox will be \<dimen>.
-\li If you specify |spread| \<dimen>, the height of the vbox will be
-its natural height plus \<dimen>, i.e.,
-the height of the vbox will be stretched vertically by \<dimen>.
-\endulist
-\noindent
-For |\vtop|,
-\TeX\ constructs the box using its rules for |\vbox| and then
-apportions the vertical extent between the height and the depth as
-described below.
-
-Ordinarily, the width of a constructed vbox is the width of the widest
-item inside it.\footnote
-{More precisely, it's the distance from the reference point to the rightmost
-edge of the constructed vbox. Therefore,
-if you move any of the items right using ^|\moveright| or
-^|\moveleft| (with a negative distance),
-the constructed vbox might be wider.}
-The rules for apportioning the vertical extent between the
-height and the depth are more complicated:
-\ulist
-\li For |\vtop|,
-the height is the height of its first item, if that item is a box or rule.
-Otherwise the height is zero. The depth is whatever vertical
-extent remains after the height is subtracted.
-\li For |\vbox|,
-the depth is the depth of its last item, if that item is a box or rule.
-Otherwise the depth is zero. The height is whatever vertical
-extent remains after the depth is subtracted.%
-\footnote{In fact, there's a further complication.
-Suppose that after the depth has been determined
-using the two rules just given, the depth turns out to be greater than
-^|\boxmaxdepth|.
-Then the depth is reduced to |\boxmaxdepth| and the height is adjusted
-accordingly.}
-\endulist
-
-The |\vfil| command (\xref\vfil) is useful for filling out a vbox
-^^|\vfil//filling a vbox|
-with empty space when the material in the box isn't as tall as
-the vertical extent of the box.
-\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{dimen}}
-\explain
-This parameter contains a dimension $D$.
-\TeX\ will not construct a box whose depth exceeds $D$.
-If you produce a box whose depth $d$ would exceed $D$,
-\TeX\ will transfer the
-excess depth to the height of the box, effectively moving the
-\minref{reference point} of the box down by $d-D$.
-If you set |\boxmaxdepth| to zero, \TeX\ will line up a row of vboxes
-so that their bottom boundaries all lie on the same horizontal line.
-\PlainTeX\ sets |\boxmaxdepth| to |\maxdimen| \ctsref{\maxdimen},
-so |\boxmaxdepth| won't affect your boxes unless you change it.
-\enddesc
-
-\begindesc
-\cts underbar {\<argument>}
-\explain
-This command puts \<argument> into an \minref{hbox}
-and underlines it without regard to anything that protrudes below the
-\minref{baseline} of the box.
-\example
-\underbar{Why not learn \TeX?}
-|
-\produces
-\underbar{Why not learn \TeX?}
-\endexample
-\enddesc
-
-\begindesc
-\cts everyhbox {\param{token list}}
-\cts everyvbox {\param{token list}}
-\explain
-These parameters contain token lists that \TeX\ expands at the start of
-every \minref{hbox} or \minref{vbox} that it constructs.
-Any items resulting from the expansion then become
-the beginning of the list of items for the box.
-By default these token lists are empty.
-\enddesc
-
-%==========================================================================
-\subsection {Setting and retrieving the contents of boxes}
-
-\begindesc
-\bix^^{box registers}
-%
-\cts setbox {\<register>\thinspace{\bt =}\thinspace\<box>}
-\cts box {\<register>}
-\explain
-^^{assignments//of boxes}
-These commands respectively set and retrieve the contents
-of the box register
-whose number is \<register>.
-Note that you set a box register a little differently than
-you set the other kinds of registers: you use
-|\setbox|$\,n$~|=| rather than |\box|$\,n$~|=|.
-
-\emph{Retrieving the contents of a box register
-with these commands has the side effect of emptying it,
-so that the box register become void.} If you don't want that to happen,
-you can use |\copy| (see below) to retrieve the contents.
-You should use |\box| in preference to |\copy|
-when you don't care about what's in a box register after you've used it,
-so as not to exhaust \TeX's memory by filling it with obsolete boxes.
-\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 {\<register>}
-\explain
-^^{boxes//copying}\minrefs{box}
-This command
-produces a copy of box register \<register>.
-This command is useful when you want to retrieve the contents of a box
-register but don't want to destroy the contents.
-(Retrieving the register contents with ^|\box| makes the register void.)
-\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 {\<register>}
-\cts unvbox {\<register>}
-^^{boxes//extracting contents of}
-\explain
-These commands produce the list contained in box register \<register> and make
-that box register void.
-|\unhbox| applies to box registers containing
-hboxes and |\unvbox| applies to box registers containing vboxes.
-You should use these commands in preference to |\unhcopy| and |\unvcopy|
-(see below)
-when you don't care about what's in the box register after you've used it,
-so as not to exhaust \TeX's memory by filling it with obsolete boxes.
-\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 {\<register>}
-\cts unvcopy {\<register>}
-^^{boxes//extracting contents of}
-^^{boxes//copying }\minrefs{box}
-\explain
-These commands produce the list contained in box register \<register> and
-leave the contents of the register undisturbed.
-|\unhcopy| applies to box registers containing hboxes
-and |\unvcopy| applies to box registers containing vboxes.
-\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^^{box registers}
-
-%==========================================================================
-\subsection {Shifting boxes}
-
-\begindesc
-\cts moveleft {\<dimen> \<box>}
-\cts moveright {\<dimen> \<box>}
-\bix^^{boxes//shifting}
-\minrefs{box}
-\explain
-These commands move \<box> left or right by \<dimen> (which can be
-negative). You can only apply |\moveleft| and |\moveright| to a box
-that's in a \minref{vertical list}.
-\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 {\<dimen> \<box>}
-\cts raise {\<dimen> \<box>}
-\explain
-These commands move \<box> up or down by \<dimen>
-(which can be negative).
-You can only apply |\raise| and |\lower| to a box
-that's in a \minref{horizontal list}.
-\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^^{boxes//shifting}
-\enddesc
-
-%==========================================================================
-\subsection {Dimensions of box registers}
-
-\begindesc
-\bix^^{box registers}
-\bix^^{dimensions//of box registers}
-\cts ht {\<register>\param{dimen}}
-\cts dp {\<register>\param{dimen}}
-\cts wd {\<register>\param{dimen}}
-\explain
-These parameters refer to the ^{height}, ^{depth}, and ^{width}
-respectively of \minref{box} \minref{register} \<register>.
-You can use them to find out the dimensions of a box.
-You can also change the dimensions of a box, but it's a tricky business;
-if you want to be adventurous you can
-learn all about it from \knuth{pages~388--389}.
-\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^^{box registers}
-\eix^^{dimensions//of box registers}
-\enddesc
-
-%==========================================================================
-\subsection {Struts, phantoms, and empty boxes}
-
-\begindesc
-\margin{This subsection is a merger of two previous subsections.
-The commands have also been reordered.}
-\bix^^{struts}
-\cts strut {}
-\explain
-This command produces a box whose width is zero
-and whose height (|8.5pt|) and depth (|3.5pt|)
-are those of a more or less typical line of type in |cmr10|,
-the default \plainTeX\ font.
-Its main use is in forcing lines to have the same height
-when you've disabled \TeX's interline glue with
-|\offinter!-lineskip| ^^|\offinterlineskip| or a similar command,
-e.g., when you're constructing an alignment.
-If the natural height of a line is
-too short, you can bring it up to standard by including a |\strut|
-in the line. The strut will force the height and depth of the line
-to be larger, but it won't print anything or consume any horizontal
-space.
-
-If you're setting type in a font that's bigger or smaller than |cmr10|,
-you should redefine |\strut| for that context.
-\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
-This command produces a phantom formula whose width is zero
-and whose height and depth are the same as those of a left parenthesis.
-|\mathstrut| is in fact defined as `|\vphantom(|'.
-Its main use is for getting radicals, underbars, and overbars to line
-up with other radicals, underbars, and overbars in a formula.
-It is much like ^|\strut| (\xref \strut),
-except that it adjusts itself to the different \minref{style}s
-that can occur in math formulas.
-\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^^{boxes//phantom}
-\bix^^{phantoms}
-This command produces an empty \minref{box}
-having the same size and placement
-that \<argument> would have were it typeset.
-One use of |\phantom| is for reserving space for a symbol that for some
-reason needs to be drawn in by hand.
-\example
-$1\phantom{9}2$
-|
-\produces
-$1\phantom{9}2$
-\endexample
-\enddesc
-
-\begindesc
-\cts hphantom {\<argument>}
-\cts vphantom {\<argument>}
-\explain
-These commands produce phantom boxes\minrefs{box}\ that
-don't print anything:
-\ulist\compact
-\li |\hphantom| produces a box with the same width as \<argument>
-but zero height and depth.
-\li |\vphantom| produces a box with the same height and depth as \<argu\-ment>
-but zero width.
-\endulist
-\noindent
-Their main purpose is to force a subformula to have a certain minimum
-horizontal or vertical dimension.
-\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
-This command typesets \<argument>,
-but forces the height and depth of its containing \minref{box} to be zero.
-You can use |\smash| and |\vphantom| in combination to give a subformula
-any height and depth that you wish.
-\example
-$${\smash{r_m \brace r_n}\vphantom{r}} \Longrightarrow r$$
-|
-\dproduces
-\kern 4pt
-$${\smash{r_m \brace r_n}\vphantom{r}} \Longrightarrow r$$
-\endexample
-\eix^^{boxes//phantom}
-\eix^^{phantoms}
-\enddesc
-
-\begindesc
-^^{boxes//empty}
-\cts null {}
-\explain
-This command produces an empty \minref{hbox}.
-\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 {Parameters pertaining to malformed boxes}
-
-\begindesc
-\bix^^{boxes//overfull}
-\bix^^{boxes//underfull}
-\cts overfullrule {\param{dimen}}
-\explain
-This parameter specifies the width of the rule
-that \TeX\ appends to an overfull \minref{hbox}.
-\PlainTeX\ sets it to |5pt|.
-\enddesc
-
-\begindesc
-\cts hbadness {\param{number}}
-\cts vbadness {\param{number}}
-\explain
-These parameters specify the thresholds of horizontal and vertical
-\minref{badness} for reporting underfull or overfull boxes.
-|\hbadness| applies to hboxes and |\vbadness| applies to vboxes.
-If the badness of a constructed box exceeds the threshold,
-\TeX\ will report an error. If you raise the thresholds
-(the \plainTeX\ defaults are both $1000$),
-\TeX\ will be less likely to complain.
-Note that the settings of |\hbadness| and |\vbadness| have no effect on
-the appearance of your typeset document; they only affect the error
-messages that you get.
-See \knuth{page~302} for a precise description
-of how \TeX\ decides when to complain about an overfull or underfull
-box.
-
-\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
-This command yields the numerical value of the badness of the \minref{box}
-(either horizontal or vertical) that \TeX\ has most recently produced.
-If the box was overfull, |\badness| will be $1000000$; in all other cases
-it will be between $0$ and $10000$.
-\enddesc
-
-\begindesc
-\cts hfuzz {\param{dimen}}
-\cts vfuzz {\param{dimen}}
-\explain
-These parameters specify the amount that
-a \minref{box} can exceed its natural size before \TeX\ considers it to be
-overfull. ^^{boxes//overfull}
-|\hfuzz| applies to hboxes and |\vfuzz| applies to vboxes.
-\PlainTeX\ sets both parameters to |0.1pt|.
-\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^^{boxes//overfull}
-\eix^^{boxes//underfull}
-\eix^^{box commands}
-\enddesc
-
-\see |\tolerance| \ctsref{\tolerance}.
-%==========================================================================
-\section {Retrieving the last item from a list}
-
-\begindesc
-^^{boxes//last box in a list}
-^^{kerns//last kern in a list}
-^^{penalties//last penalty in a list}
-^^{glue//last glue item in a list}
-\margin{This section has been moved in its entirety from the chapter
-(`Commands for general operations')}
-\cts lastkern {}
-\cts lastskip {}
-\cts lastpenalty {}
-\cts lastbox {}
-\explain
-These control sequences yield the value of the last item on the current
-list. They aren't true commands because they can only appear as
-part of an argument.
-If the last item on the list isn't of the indicated type,
-they yield a zero value (or an empty box, in the case of |\lastbox|).
-For example,
-if the last item on the current list is a \minref{kern},
-|\lastkern| yields the dimension of that kern; if it
-isn't a kern, it yields a dimension of $0$.
-
-Using |\lastbox| has the additional effect of removing the last box from
-the list.
-If you want the original |\last!-box| to remain on the list, you
-have to add a copy of it to the list.
-|\last!-box| is not permitted in a math list or in the main
-vertical~list.
-
-These control sequences are
-most useful after macro calls that might have inserted entities of
-the indicated kinds.
-
-\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
-If the last item on the current list is of type \minref{kern},
-\minref{glue}, or \minref{penalty} respectively, these commands remove it
-from that list. If the item isn't of the right type, these commands have
-no effect. Like ^|\lastbox|, you can't apply them to lists in math mode or to
-the main vertical list.
-These commands
-are most useful after a macro call that is known to have inserted
-a specific item that you don't want there.
-\TeX\ doesn't provide an ^|\unbox| command because |\lastbox| produces
-nearly the same effect.
-\enddesc
-
-
-%==========================================================================
-\section {Rules and leaders}
-
-\begindesc
-\bix^^{rules}
-\bix^^{horizontal rules}
-\bix^^{vertical rules}
-%
-\cts hrule {}
-\aux\cts hrule {\bt height \<dimen> width \<dimen> depth \<dimen>}
-\cts vrule {}
-\aux\cts vrule {{\bt width \<dimen> height \<dimen> depth \<dimen>}}
-\explain
-The |\hrule| command produces a horizontal rule; the |\vrule| command
-produces a vertical rule. You can specify any or all of the width,
-height, and depth of the rule---\TeX\ supplies default values for those
-that you omit. You can give the dimensions of the rule in any order;
-the forms listed above show just two of the possible combinations. You
-can even give a dimension of a given kind more than once---if you do,
-the last one is the one that counts.
-
-If you don't specify the width of a horizontal rule, the rule is
-extended horizontally to the boundaries of the innermost \minref{box} or
-\minref{alignment} that contains the rule. If you don't specify the
-height of a horizontal rule, it defaults to |0.4pt|; if you don't
-specify the depth of a horizontal rule, it defaults to |0pt|.
-
-If you don't specify the width of a vertical rule, it defaults to
-|0.4pt|. If you don't specify the height or the depth of a vertical
-rule, the rule is extended to the boundary of the innermost \minref{box}
-or \minref{alignment} that contains the rule.
-
-\TeX\ treats a horizontal rule as an inherently vertical item
-and a vertical rule as an inherently horizontal item.
-Thus a horizontal rule is legal only in a \minref{vertical mode},
-while a vertical rule is legal only in a \minref{horizontal mode}.
-^^{horizontal mode//rules in}
-^^{vertical mode//rules in}
-If this seems surprising, visualize it---a horizontal rule runs
-from left to right and separates vertical items in a sequence, while
-a vertical rule runs up and down and
-separates horizontal items in a sequence.
-
-\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^^{rules}
-\eix^^{horizontal rules}
-\eix^^{vertical rules}
-\enddesc
-
-\begindesc
-\bix^^{leaders}
-\easy\cts leaders {\<box or rule> \<skip command>}
-\cts cleaders {\<box or rule> \<skip command>}
-\cts xleaders {\<box or rule> \<skip command>}
-\explain
-These commands produce \minref{leaders}, i.e., they fill a
-horizontal or vertical space with
-copies of a pattern \seeconcept{leaders}.
-The \<box> or \<rule> specifies a leader,
-i.e., a single copy of the pattern,
-while the \<skip command> specifies a
-window to be filled with a
-row or a column of the leaders.
-The pattern is repeated as many times as will fit into the window.
-If \<skip command> is a horizontal skip, the window
-contains a row of leaders and \TeX\ must be in a horizontal mode;
-if \<skip command> is a vertical skip, the window
-contains a column of leaders and \TeX\ must be in a vertical mode.
-
-The commands differ in how they arrange the repeated pattern in the space
-and where they put any leftover space:
-
-\ulist\compact
-\li For |\leaders|, \TeX\ aligns a row of leaders with the left end of
-the innermost \minref{box} $B$ that is to contain the result of the
-|\leaders| command.
-It aligns a column of leaders with the top of $B$.
-Those leaders that fall entirely within the window are retained.
-Any leftover space at the top and bottom of the window is left empty.
-\li For |\cleaders|, the leaders are centered within the window.
-\li For |\xleaders| the pattern is uniformly distributed throughout the window.
-If the leftover space is $l$ and the leader is repeated $n$ times,
-\TeX\ puts space of width or height $l/(n+1)$ between adjacent leaders and
-at the two ends (left and right or top and bottom) of the leaders.
-\endulist
-
-\example
-\def\pattern{\hbox to 15pt{\hfil.\hfil}}
-\line{Down the Rabbit-Hole {\leaders\pattern\hfil} 1}
-\line{The Pool of Tears {\leaders\pattern\hfil} 9}
-\line{A Caucus-Race and a Long Tale {\cleaders\pattern
- \hfil} 19}
-\line{Pig and Pepper {\xleaders\pattern\hfil} 27}
-|
-\produces
-\def\pattern{\hbox to 15pt{\hfil.\hfil}}\par
-\line{Down the Rabbit-Hole {\leaders\pattern\hfil} 1}
-\line{The Pool of Tears {\leaders\pattern\hfil} 9}
-\line{A Caucus-Race and a Long Tale {\cleaders\pattern
- \hfil} 19}
-\line{Pig and Pepper {\xleaders\pattern\hfil} 27}
-\nextexample
-\def\bulletfill{\vbox to 3ex{\vfil\hbox{$\bullet$}\vfil}}%
-\def\mybox{\vbox to 1in}
-\def\myrule{\hrule width 4pt}\hsize=2in
-\hrule \line{%
- \mybox{\myrule depth 8pt \leaders\bulletfill\vfill}
- \hfil
- \mybox{\myrule depth 15pt \leaders\bulletfill\vfill}
- \hfil
- \mybox{\myrule depth 18pt \cleaders\bulletfill\vfill}
- \hfil
- \mybox{\myrule depth 12pt \xleaders\bulletfill\vfill}%
-}\hrule
-|
-\produces
-\medskip
-\def\bulletfill{\vbox to 3ex{\vfil\hbox{$\bullet$}\vfil}}%
-\def\mybox{\vbox to 1in}\def\myrule{\hrule width 4pt}\hsize=2in
-\hrule \line{%
- \mybox{\myrule depth 8pt \leaders\bulletfill\vfill}
- \hfil
- \mybox{\myrule depth 15pt \leaders\bulletfill\vfill}
- \hfil
- \mybox{\myrule depth 18pt \cleaders\bulletfill\vfill}
- \hfil
- \mybox{\myrule depth 12pt \xleaders\bulletfill\vfill}%
-}\hrule
-\endexample\enddesc
-
-\begindesc
-\cts dotfill {}
-\cts hrulefill {}
-\explain
-^^{fill}
-These commands respectively fill the enclosing horizontal space with
-a row of dots on the baseline and with
-a horizontal line on the baseline.
-It's usually a good idea to leave a space between
-|\dotfill| or |\hrulefill|
-and any text that precedes or follows it (see the example below).
-\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
-^^{fill}
-These commands fill the enclosing horizontal space with
-left-pointing or right-pointing ^{arrows}.
-\example
-\hbox to 3in{\vrule \rightarrowfill \ 3 in
- \leftarrowfill\vrule}
-|
-\produces
-\medskip
-\hbox to 3in{\vrule \rightarrowfill \ 3 in
- \leftarrowfill\vrule}
-\endexample
-
-\eix^^{leaders}
-\enddesc
-
-%==========================================================================
-\section {Alignments}
-
-%==========================================================================
-\subsection {Tabbing alignments}
-
-\begindesc
-\bix^^{tabbing alignments}
-\bix^^{alignments//commands for}
-%
-\ctspecial + {{\bt \<text>\thinspace\&\thinspace\<text>%
- \thinspace\& $\cdots$ \\cr}}
-\ctsxrdef{@plus}
-\cts tabalign {}
-\explain
-These commands begin a single line in a tabbed \minref{alignment}.
-The only difference between |\+| and |\tabalign| is that
-|\+| is an outer macro---you can't use it when \TeX\ is reading tokens at
-high speed \seeconcept{outer}.
-
-If you place an `|&|' at a position
-to the right of all existing tabs in a tabbing alignment,
-the `|&|' establishes a new tab at that 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 {\<number> {\bt \\columns}}
-\aux\cts settabs {{\bt \\+} \<sample line> {\bt \\cr}}
-\explain
-The first form of
-this command defines a set of tab stops ^^{tabs}
-for a tabbing \minref{alignment}.
-It tells \TeX\ to set the tab stops so as to divide each line into
-\<number> equal parts. \TeX\ takes the length of a line to be
-|\hsize|, as usual. You can make the alignment narrower by decreasing
-|\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
-
-The second form of this command defines tab stops by setting the tab stops
-at the positions indicated by the `|&|'s in the sample line.
-The sample line itself does not appear in the output. When you
-use this form you'll usually want to put material into the sample line that is
-somewhat wider than the widest corresponding material in the alignment,
-in order to produce space between the columns.
-That's what we've done in the
-example below. The material following the last tab
-stop is irrelevant, since \TeX\ does not need to position
-anything at the place where the |\cr|~appears.
-
-The tab settings established by |\settabs| remain in effect until
-you issue a new |\settabs| command or end a group containing
-the |\settabs| command.
-This is true for both forms of the command.
-
-\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
-This command clears all the tabs to the right of the current column.
-Its main use is in applications such as typesetting computer programs
-in which the tab positions change from line to line.
-\enddesc
-
-\see |\cr|, |\endline|, |\crcr| (\xref \endline).
-\eix^^{tabbing alignments}
-
-%==========================================================================
-\subsection {General alignments}
-
-\begindesc
-\cts halign {{\bt \rqbraces{\<preamble> \\cr \<row> \\cr $\ldots$ \<row> \\cr}}}
- \xrdef{@and}\xrdef{@pound}
-\aux\cts halign {{\bt to \<dimen>%
- \rqbraces{\<preamble> \\cr \<row> \\cr $\ldots$ \<row> \\cr}}}
-\aux\cts halign {{\bt spread \<dimen>%
- \rqbraces{\<preamble> \\cr \<row> \\cr $\ldots$ \<row> \\cr}}}
-\explain
-This command produces a horizontal \minref{alignment} consisting of a
-sequence of rows, where each row in turn contains a sequence of column
-entries. \TeX\ adjusts the widths of the column entries to accommodate
-the widest one in each column.
-
-A horizontal alignment can only appear when \TeX\ is in a vertical
-\minref{mode}. We recommend that you first study alignments in general
-(\xref{alignment}) before you attempt to use this command.
-
-An alignment consists of a ^{preamble}
-followed by the text to be aligned. The preamble,
-which describes the layout of the rows that follow, consists of a
-sequence of column templates, separated by `|&|' and ended
-by |\cr|.
-\bix^^{template}
-\bix^^{entry (column or row)}
-Each row consists of a sequence of column
-entries, also separated by `|&|' and ended by |\cr|. Within
-a template, `|#|' indicates where \TeX\ should insert the
-corresponding text of a column entry.
-In contrast, |\settabs| uses a fixed implicit template of `|#|',
-i.e., it just inserts the text as is.
-
-\TeX\ typesets each column entry in restricted horizontal mode,
-i.e., as the contents of an \minref{hbox},
-and implicitly encloses it in a group.
-
-The |to| form of this command instructs \TeX\
-to make the width of the alignment be \<dimen>,
-adjusting the space between columns as necessary.
-The |spread| form of this command instructs \TeX\
-to make the alignment wider by \<dimen> than its natural width.
-These forms are like the corresponding forms of |\hbox| \ctsref\hbox.
-
-See |\tabskip| \ctsref\tabskip{} for an example using the
-|to| form.
-
-\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{\<preamble>\\cr \<column>\\cr $\ldots$
- \<column>\\cr}}}
-\aux\cts valign {{\bt to \<dimen>%
- \rqbraces{\<preamble>\\cr \<column>\\cr $\ldots$ \<column>\\cr}}}
-\aux\cts valign {{\bt spread \<dimen>%
- \rqbraces{\<preamble>\\cr \<column>\\cr $\ldots$ \<column>\\cr}}}
-\par}
-\explain
-This command produces a vertical \minref{alignment}
-consisting of
-a sequence of columns, where each column in turn contains a sequence
-of row entries.
-\TeX\ adjusts the heights of the row entries to accommodate the tallest one
-in each row.
-
-A vertical alignment
-can only appear when \TeX\ is in a horizontal \minref{mode}.
-Because vertical alignments are (a)~conceptually somewhat difficult and
-(b)~not often used, we recommend that you learn about
-alignments in general
-(\xref{alignment}) and the |\halign| command (see above) before
-you attempt to use the |\valign| command.
-
-An alignment consists of a ^{preamble}
-followed by the text to be aligned. The preamble,
-which describes the layout of the columns that follow,
-consists of a
-sequence of row templates, separated by `|&|' and ended
-by |\cr|.
-\bix^^{template}
-Each column consists of a sequence of ^{row}
-entries, also separated by `|&|' and ended by |\cr|. Within
-a template, `|#|' indicates where \TeX\ should insert the
-corresponding text of a row entry.
-
-\TeX\ typesets each row entry in internal vertical
-mode, i.e., as the contents of a \minref{vbox},
-and implicitly encloses the entry in a group.
-It always gives the vbox zero depth.
-Any text or other horizontal mode material in a row entry then puts \TeX\
-into ordinary horizontal mode.
-(This is just an application of the general rules for \TeX's behavior
-in internal vertical mode.)
-The usual paragraphing parameters apply in this case:
-the row entry has an initial
-indentation of |\parindent| (\xref\parindent) and
-its lines have the
-|\leftskip| and |\rightskip| (\xref\leftskip) \minref{glue}
-appended to~them.
-
-Note in particular that a row entry containing text has
-a width of |\hsize| (\xref\hsize). Unless you reset
-|\hsize| to the row width that you want, you're likely to
-encounter overfull \minref{hbox}es, or find that
-the first column takes up the width of the entire page, or both.
-\eix^^{entry (column or row)}
-
-Normally, you need to include a \minref{strut}
-^^{struts//in vertical alignments}
-in each
-template so that the rows don't come out crooked as a result
-of the varying heights of the entries in the alignment. You
-can produce a strut with the |\strut| command.
-
-The |to| form of this command instructs \TeX\
-to make the vertical extent of the alignment be \<dimen>,
-adjusting the space between rows as necessary.
-The |spread| form of this command instructs \TeX\
-to make the alignment taller by \<dimen> than its natural height.
-These forms are like the corresponding forms of |\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
-This command behaves just like ^|\halign|,
-except that it first sets the |\tabskip| glue to zero and
-sets |\everycr| empty.
-\enddesc
-
-\begindesc
-\cts cr {}
-\explain
-This command ends the preamble of a horizontal or vertical
-alignment, a row of a horizontal or tabbing alignment,
-or a column of a vertical alignment.
-You can cause \TeX\ to take certain actions whenever it sees a |\cr|
-by setting the value of the ^|\everycr| parameter \ctsref\everycr.
-\enddesc
-
-\begindesc
-\cts endline {}
-\explain
-This command is a synonym for the ^|\cr| command. It is useful when
-you've redefined |\cr| but still need access to the original definition.
-\enddesc
-
-\begindesc
-\cts crcr {}
-\explain
-This command behaves just like ^|\cr|, except that \TeX\ ignores it if
-it comes immediately after a |\cr| or a ^|\noalign|.
-Its main application is as a safety measure to avoid a misleading error
-message caused by a \minref{macro} that expects an argument ending in |\cr|.
-If you put |\crcr| after the `|#|$n$' that denotes such an argument
-in the macro's definition, the
-macro will work properly whether or not the argument ends with |\cr|.
-\enddesc
-
-\begindesc
-\cts omit {}
-\explain
-This command tells \TeX\ to ignore a template in a horizontal or vertical
-\minref{alignment} while processing a particular column or row entry
-respectively.
-|\omit| must appear as the first item in a column or row entry; in effect,
-it overrides the template from the preamble with the simple
-template `|#|'.
-
-
-\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
-The meaning of this command depends on whether it appears in a preamble
-or in an alignment entry.
-\ulist
-\li Normally, \TeX\ does not expand tokens in the preamble
-when it reads them.
-Putting |\span| in front of a token in the preamble causes
-that token to be expanded immediately according to \TeX's usual rules
-of \minref{macro} expansion.
-\li Putting |\span| instead of `|&|' between two column or row entries
-causes those columns or rows to be combined.
-For a horizontal alignment,
-the width of the combined column is the sum of the
-widths of the component columns.
-For a vertical alignment,
-the height of the combined row is the sum of the
-heights of the component rows.
-The template of the combined column or combined row forms a single group,
-so font-setting commands preceding a |\span| affect everything up to
-the next `|&|'.
-\endulist
-\noindent
-|\span| is rarely useful by itself outside of a template,
-but it provides the basic mechanism
-for defining ^|\multispan|.
-\enddesc
-
-\begindesc
-\cts multispan {\<number>}
-\explain
-This command tells \TeX\ that the following
-\<number> columns in a row of a horizontal alignment,
-or
-\<number> rows in a column of a vertical alignment,
-should be combined into a single column or row (as with
-|\span|) and that their templates should be omitted (as with |\omit|).
-
-\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^^{template}
-\enddesc
-
-\begindesc
-\cts noalign {\rqbraces{\<vertical mode material>}}
-\aux\cts noalign {\rqbraces{\<horizontal mode material>}}
-\explain
-This command inserts
-\<vertical mode material>
-after the current row of a horizontal \minref{alignment} or
-\<horizontal mode material> after the current column of a vertical
-\minref{alignment}.
-The material can be text, glue, a rule, or anything else.
-
-The most common use of |\noalign|
-is to put extra space after a row or column.
-If you want to put extra space after \emph{every\/} row of a horizontal
-alignment, use ^|\openup| (\xref\openup).
-
-\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{glue}}
-\explain
-This parameter specifies the amount of horizontal or vertical glue
-that \TeX\ puts between the
-columns of a horizontal alignment or between the
-rows of a vertical alignment.
-\TeX\ also puts the |\tabskip| glue
-to the left of the first column and to the right of the last column
-of a horizontal alignment, and
-above the first row
-and below the last row of a vertical alignment.
-You can change |\tabskip| within a template---%
-the change will affect the glue associated with all the following
-|&|'s as well as the glue after the last row or column.
-\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
-This command tells \TeX\ to ignore the width of the next column entry in a
-horizontal alignment. It's useful when you have an entry that is longer
-than most of the others in the same column,
-and you'd rather have that entry stick out of the column than
-make all the entries
-in the column wider. If the |\hidewidth| is at the left of the
-entry, the entry sticks out to the left; if the |\hidewidth| is at the
-right of the entry, the entry sticks out to the~right.
-\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{token list}}
-\explain
-\TeX\ expands \<token list> whenever it executes
-a |\cr|---at the end of every preamble,
-at the end of every row of a horizontal alignment,
-and at the end of every column of a vertical alignment.
-The |\everycr| commands are expanded just after the |\cr|.
-Thus you can cause \TeX\ to
-execute certain commands at the end of a preamble, row, or column by
-assigning a list of those commands to |\everycr|.
-
-The |\everycr| tokens shouldn't include any commands other than |\no!-align|.
-That's because
-the |\everycr| tokens will reappear after the last
-|\cr| of the alignment. A command other than
-|\noalign| will then make \TeX\ think that it's starting a new
-row or column.
-\TeX\ will complain about a missing |\cr|, insert
-a |\cr|, insert the |\everycr| tokens again, and repeat these actions
-indefinitely.
-\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^^{alignments//commands for}
-\enddesc
-
-\enddescriptions
-
-
-\endchapter
-\byebye
diff --git a/Master/texmf-doc/doc/english/impatient/pages.tex b/Master/texmf-doc/doc/english/impatient/pages.tex
deleted file mode 100644
index 230802e9b5f..00000000000
--- a/Master/texmf-doc/doc/english/impatient/pages.tex
+++ /dev/null
@@ -1,1153 +0,0 @@
-% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
-% See file fdl.tex for copying conditions.
-
-\input macros
-\chapter {Commands for \linebreak composing pages}
-
-\chapterdef{pages}
-
-This section covers commands that deal with
-pages, their components, and the output routine.
-For an explanation of the conventions used in this section,
-see \headcit{Descriptions of the commands}{cmddesc}.
-
-\begindescriptions
-
-%==========================================================================
-\section {Interline and interparagraph spaces}
-
-\begindesc
-\cts baselineskip {\param{glue}}
-\cts lineskiplimit {\param{dimen}}
-\cts lineskip {\param{glue}}
-\explain
-^^{line spacing}
-\bix^^{interline glue}
-\bix^^|\baselineskip|
-\bix^^|\lineskip|
-\bix^^|\lineskiplimit|
-These three parameters jointly determine how much space \TeX\ leaves between
-consecutive \minref{box}es of an ordinary \minref{vertical list},
-e.g., the lines of a paragraph.
-This space is called ``\minref{interline glue}''.
-It is also inserted between the component boxes of a vbox constructed in
-internal vertical mode.
-^^{vboxes//interline glue for}
-
-In the usual case, when the boxes aren't abnormally high or deep, \TeX\
-makes the distance from the baseline of one box to the baseline of the
-next one equal to |\baselineskip|. It does this by inserting interline
-glue equal to |\baselineskip| minus the depth of the upper box (as given
-by ^|\prevdepth|) and the height of the lower box. But if this
-interline glue would be less than |\lineskiplimit|, indicating that the
-two boxes are too close together, \TeX\ inserts the |\lineskip| glue
-instead.\footnote
-{\TeX\ actually accounts for the beginning of a
-vertical list by setting |\prevdepth| to $-1000$\pt\ and testing
-|\prevdepth| before \emph{every} box. If |\prevdepth|$\>\le-1000$\pt\
-it does not insert any interline glue.} See \knuth{pages~79--80} for a
-precise description.
-
-Note that |\baselineskip| and |\lineskip| measure \emph{different
-things}: the distance between baselines on the one hand and the distance
-between the bottom of one box and the top of the next box on the other
-hand. See \knuth{page~78} for further details. The first example below
-shows the effects of |\lineskiplimit|.
-
-You can obtain the effect of ^{double spacing} by doubling the value
-of |\baselineskip| as illustrated in the second example below.
-A change to |\baselineskip| at any point before the end of a paragraph affects
-the entire paragraph.
-
-\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^^{interline glue}
-\eix^^|\baselineskip|
-\eix^^|\lineskip|
-\eix^^|\lineskiplimit|
-\enddesc
-
-\begindesc
-\cts prevdepth {\param{dimen}}
-\explain
-When \TeX\ adds a box to a vertical list, it sets |\prevdepth| to the
-depth of that box. \TeX\ sets |\prevdepth| to $-1000$\pt\ at the start
-of a vertical list, indicating that the usual interline glue should be
-suppressed.
-\enddesc
-
-\begindesc
-\cts normalbaselineskip {\param{glue}}
-\cts normallineskiplimit {\param{dimen}}
-\cts normallineskip {\param{glue}}
-\cts normalbaselines {}
-\explain
-The three parameters contain values for |\base!-line!-skip|,
-|\line!-skip|, and |\line!-skip!-limit| respectively.
-^^|\baselineskip| ^^|\lineskip| ^^|\lineskiplimit|
-The |\normalbaselines| command sets |\base!-line!-skip|,
-|\line!-skip|, and |\line!-skip!-limit| to the values contained in the
-three parameters.
-\enddesc
-
-\begindesc
-\cts offinterlineskip {}
-\explain
-This command tells \TeX\ to stop inserting interline glue from
-now on. Unless you want it to be in effect for the rest of the document
-(which you probably don't), you should enclose it in a group
-together with the text you want it to affect.
-Its main purpose is to let you do interline spacing yourself,
-e.g., using ^{struts},
-without interference from \TeX's normal interline glue.
-|\offinterlineskip| is often useful when
-you're constructing a horizontal \minref{alignment}.
-^^{alignments//using \b\tt\\offinterlineskip\e\ in}
-\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
-This command tells \TeX\ not to insert interline glue in front of the
-next line.
-It has no effect on subsequent lines.
-\enddesc
-
-\begindesc
-\cts openup {\<dimen>}
-\explain
-This command increases ^|\baselineskip| by \<dimen>.
-An |\openup| command before the end of a paragraph affects
-the entire paragraph, so you shouldn't use |\openup| to
-change |\baseline!-skip| within a paragraph. |\openup| is
-most useful for typesetting tables and math displays---a
-little extra space between rows often makes them more readable.
-^^{alignments//space between rows of}
-\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 {Page breaks}
-
-%==========================================================================
-\subsection {Encouraging or discouraging page breaks}
-
-\begindesc
-\bix^^{page breaks}
-\bix^^{page breaks//encouraging or discouraging}
-\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.}
-%
-This command forces a page break.
-Unless you do something to fill out the page, you're likely to
-get an underfull vbox.
-|\break| can also be used in horizontal mode.
-\enddesc
-
-\begindesc
-\ctspecial nobreak {} \xrdef{vnobreak}
-\explain
-This command prevents a page break where it
-otherwise might occur.
-|\nobreak| can also be used in horizontal mode.
-\enddesc
-
-\begindesc
-\ctspecial allowbreak {} \xrdef{vallowbreak}
-\explain
-This command tells \TeX\ to
-allow a page break where one could not ordinarily occur.
-|\allowbreak| can also be used in horizontal mode.
-\enddesc
-
-\begindesc
-\ctspecial penalty {\<number>} \xrdef{vpenalty}
-\explain
-This command produces a \minref{penalty} item.
-The penalty item makes \TeX\ more or less willing to break a page
-at the point where that item occurs.
-A negative penalty, i.e., a bonus, encourages a page break;
-a positive penalty discourages a page break.
-A penalty of $10000$ or more prevents a break altogether,
-while a penalty of $-10000$ or less forces a break.
-|\penalty| can also be used in horizontal mode.
-\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
-This command ends a paragraph and also indicates to \TeX\ that
-this is a good place to break the page.
-\enddesc
-
-\begindesc
-\cts smallbreak {}
-\cts medbreak {}
-\cts bigbreak {}
-\explain
-These commands indicate increasingly desirable places for \TeX\ to
-break a page. They also cause \TeX\ to
-insert a ^|\smallskip|, ^|\medskip|, or
-^|\bigskip| (\xref \smallskip) if the page break doesn't actually
-happen. \TeX\ suppresses this skip if it occurs just after an
-equal or larger skip.
-\enddesc
-
-\begindesc
-\easy\cts eject {}
-\cts supereject {}
-\explain
-These commands force a page break at the current position
-and end the current paragraph.
-If you don't precede them with |\vfil| (\xref \vfil),
-^^|\vfil//needed with {\tt\\eject}|
-\TeX\ will try to stretch out the page contents
-(and will probably complain about an underfull vbox).
-The |\supereject| command, in addition,
-instructs the \plainTeX\ output routine to
-force out any leftover insertions,
-^^{insertions//forced out by \b\tt\\supereject\e}
-such as long footnotes,
-so that they are produced before any more input
-is processed. Thus |\supereject| is a good command to use at the end of each
-chapter or other major unit of your document.
-\enddesc
-
-\begindesc
-\cts filbreak {}
-\explain
-This command provides a kind of conditional page break.
-It tells \TeX\ to
-break the page---but not if the text up to a later |\filbreak| also
-fits on the same page.
-By enclosing a paragraph in a pair of |\filbreak|s,
-you can ensure that \TeX\ will keep a paragraph on a single page if it can.
-You should not use |\filbreak| within a paragraph, since it
-forces \TeX\ into vertical mode and thus ends the paragraph.
-See \xrefpg{filbreak} for more advice on this subject.
-\enddesc
-
-\begindesc
-\cts raggedbottom {}
-\cts normalbottom {}
-\explain
-Normally \TeX\ tries hard to ensure that all pages have the same depth,
-i.e., that their bottom margins are equal.
-The |\raggedbottom| command tells \TeX\ to
-allow some variability among the bottom margins on different pages.
-It's often appropriate to use |\raggedbottom| when you have material that
-contains large blocks of material that should not be split across pages.
-The |\normalbottom| command cancels the effect of |\raggedbottom|.
-
-\eix^^{page breaks//encouraging or discouraging}
-\enddesc
-
-%==========================================================================
-\subsection {Page breaking parameters}
-
-\bix^^{page breaks//parameters for}
-\begindesc
-\cts interlinepenalty {\param{number}}
-\explain
-This parameter specifies the \minref{penalty} for
-breaking a page between the lines of a paragraph.
-By setting it to $10000$ you can force all page breaks to occur
-between paragraphs, provided that the pages have enough stretch so
-that \TeX\ can still compose them decently.
-\PlainTeX\ leaves |\inter!-linepenalty| at~$0$.
-\enddesc
-
-\begindesc
-\cts clubpenalty {\param{number}}
-\explain
-^^{club line}
-This parameter specifies the \minref{penalty} for
-breaking a page just after the first line of a paragraph.
-A line by itself at the bottom of a page is called a ``club line''.
-\PlainTeX\ sets |\clubpenalty| to $150$.
-\enddesc
-
-\begindesc
-\cts widowpenalty {\param{number}}
-\explain
-^^{widow line}
-This parameter specifies the \minref{penalty} for
-breaking a page just before the last line of a paragraph.
-A line by itself at the top of a page is called a ``widow line''.
-\PlainTeX\ sets |\widowpenalty| to $150$.
-\enddesc
-
-\begindesc
-\cts displaywidowpenalty {\param{number}}
-\explain
-^^{widow line}^^{math display}
-This parameter specifies the \minref{penalty} for
-breaking a page just before the last line of a partial paragraph
-that immediately precedes a math display.
-\PlainTeX\ sets |\displaywidowpenalty| to $50$.
-
-\enddesc
-
-\begindesc
-\cts predisplaypenalty {\param{number}}
-\explain
-^^{math display}
-This parameter specifies the \minref{penalty} for
-breaking a page just before a math display.
-\PlainTeX\ sets |\predisplaypenalty| to $10000$.
-\enddesc
-
-\begindesc
-\cts postdisplaypenalty {\param{number}}
-\explain
-^^{math display}
-This parameter specifies the \minref{penalty} for
-breaking a page just after a math display.
-\PlainTeX\ leaves |\postdisplaypenalty| at $0$.
-\enddesc
-
-\begindesc
-\cts brokenpenalty {\param{number}}
-\explain
-This parameter specifies the \minref{penalty} for
-breaking a page just after a line that ends in
-a discretionary item (usually a hyphen).
-^^{hyphenation}
-|\brokenpenalty| applies to page breaking, while
-^|\hyphenpenalty| \ctsref{\hyphenpenalty} applies to line breaking.
-\PlainTeX\ sets |\brokenpenalty| to $100$.
-\enddesc
-
-\begindesc
-\cts insertpenalties {\param{number}}
-\explain
-\bix^^{insertions//penalties for}
-\bix^^{floating material}
-This parameter contains the sum of certain penalties \minrefs{penalty}
-that \TeX\ accumulates as it is placing insertions onto the
-current page.
-These penalties are incurred when \TeX\ is processing an |\insert|
-command
-and discovers that a previous insertion of the same kind on this page has
-been split, leaving part of it for subsequent pages.
-See \knuth{pages~123--125} for the details of this
-calculation.
-
-\margin{Material moved from a footnote to the main text.}
-|\insertpenalties| has an entirely different meaning during an
-^^{output routine//meaning of \b\tt\\insertpenalties\e\ in}
-output routine---it's the number of insertions that have been seen
-but that don't fit on the current page (see \knuth{page~125}).
-\enddesc
-
-\begindesc
-\cts floatingpenalty {\param{number}}
-\explain
-This parameter specifies the \minref{penalty} that
-\TeX\ adds to |\insertpenalties|
-^^|\insertpenalties|
-when the page builder is adding an insertion to the current page
-and discovers that a previous insertion of the same kind on this page has
-been split, leaving part of it for subsequent pages.
-\PlainTeX\ leaves |\floatingpenalty| at~$0$.
-\eix^^{insertions//penalties for}
-\eix^^{floating material}
-
-\enddesc
-
-\begindesc
-\cts pagegoal {\param{dimen}}
-\explain
-This parameter specifies the
-desired height for the current page.
-\TeX\ sets
-|\pagegoal| to the current value of |\vsize|
-when it first puts a box or an insertion on the current page.
-You can shorten a page while \TeX\ is working on it by
-changing the value of |\pagegoal|---even if the new value is
-less than the height of the material already on that page.
-\TeX\ will just put the extra material on the next page.
-But remember---|\pagegoal| is reset to |\vsize| again when \TeX\
-starts the next page.
-\enddesc
-
-\begindesc
-\cts pagetotal {\param{dimen}}
-\explain
-This parameter specifies the
-accumulated natural height of the current page.
-\TeX\ updates |\pagetotal| as it adds
-items to the main \minref{vertical list}.
-
-
-\enddesc
-
-\begindesc
-\cts pagedepth {\param{dimen}}
-\explain
-This parameter specifies the depth of the current page.
-\TeX\ updates |\pagedepth| as it adds
-items to the main \minref{vertical list}.
-\enddesc
-
-\begindesc
-\cts pageshrink {\param{dimen}}
-\explain
-This parameter specifies the amount of \minref{shrink}
-in the accumulated \minref{glue} on the current page.
-\TeX\ updates |\pageshrink| as it adds
-items to the main \minref{vertical list}.
-\enddesc
-
-\begindesc
-\cts pagestretch {\param{dimen}}
-\cts pagefilstretch {\param{dimen}}
-\cts pagefillstretch {\param{dimen}}
-\cts pagefilllstretch {\param{dimen}}
-\explain
-These four parameters together specify the amount of \minref{stretch}
-in the \minref{glue} on the current page. The amount of stretch has
-the form
-{\def\f#1{\hbox{\tt fi#1}}%
-$n_0 + n_1\f{l} + n_2\f{ll} + n_3\f{lll}$}, with the four parameters
-giving the values of the four $n_i$.
-\TeX\ updates these parameters as it adds
-items to the main \minref{vertical list}.
-
-\eix^^{page breaks//parameters for}
-\eix^^{page breaks}
-\enddesc
-
-%==========================================================================
-\section{Page layout}
-
-\subsection {Page description parameters}
-
-\begindesc
-\bix^^{page dimensions}
-\margin{This command was also described in the `Paragraphs' section.
-The combined description now appears there.}
-\aux\cts hsize {\param{dimen}}
-\explain
-This parameter specifies the current line length.
-See \xrefpg{\hsize} for a more complete explanation.
-\enddesc
-
-\begindesc
-\cts vsize {\param{dimen}}
-\explain
-This parameter specifies the current vertical extent of a page.
-\TeX\ examines it only when it is starting a page. Thus if you change
-|\vsize| in the
-middle of a page, your change won't affect anything until the following page.
-If you want to change the vertical extent of a page when
-you're in the middle of it, you should assign the new
-height to ^|\pagegoal| (\xref \pagegoal) instead. (If you
-want the change to affect the following pages too, you should
-change \emph{both} |\vsize| and |\pagegoal|.)
-\PlainTeX\ sets |\vsize| to |8.9in|.
-\eix^^{page dimensions}
-\enddesc
-
-\begindesc
-\cts hoffset {\param{dimen}}
-\cts voffset {\param{dimen}}
-\margin{These commands were moved up from later in the subsection.}
-^^{page origin}
-\idxsee{origin}{page origin}
-\explain
-\TeX\ normally takes the ``origin'' of a page, that is, the point where
-it starts printing, as being one inch down from the top of the page and one
-inch to the right of the left end of the page.\footnote{
-\TeX\ itself is indifferent to where the origin of the page is,
-but this information has to be built into the device drivers
-^^{device drivers//page origin known to}
-that convert \dvifile s into printable form so that different devices
-will yield the same results.}
-The values of |\hoffset| and
-|\voffset| give the horizontal and vertical offset of the actual origin
-from this point. Thus if |\hoffset| and |\voffset| are both
-zero, \TeX\ uses its normal origin.
-\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{glue}}
-\explain
-\TeX\ inserts glue at the top of each
-page in order to ensure that the baseline of the first box on the page
-always is the same distance $d$ from the top of the page.
-|\topskip| determines the amount of that glue,
-called the ``|\topskip| glue'', by specifying
-what $d$ should be (provided that the first box
-on the page isn't too tall).
-$d$ is given by the natural size of the |\topskip| glue.
-If the height of the first box on the page exceeds $d$,
-so that the glue would be negative, \TeX\ simply inserts no
-|\topskip| glue at all on that page.
-
-To understand better the effect of these rules, assume that |\topskip|
-has no stretch or shrink and that the first item on the page is indeed a box.
-Then if the height of that box is no greater than |\topskip|,
-its baseline will be |\topskip|
-from the top of the page independently of its height. On the other hand,
-if the height of the box is $e$ greater than |\topskip|, its baseline will be
-|\topskip|\tplus$e$ from the top of the page.
-See \knuth{pages~113--114} for the remaining details of how
-|\topskip| works.
-\PlainTeX\ sets |\topskip| to |10pt|.
-\enddesc
-
-
-\begindesc
-\cts parskip {\param{glue}}
-\explain
-This parameter specifies the ``^{paragraph skip}'', i.e., the
-vertical glue that \TeX\ inserts at the start of a paragraph.
-^^{paragraphs//glue between}
-See |\par| (\xref{\@par}) for more information about what happens
-when \TeX\ starts a paragraph.
-\PlainTeX\ sets |\parskip| to |0pt plus 0.1pt|.
-\enddesc
-
-\begindesc
-\cts maxdepth {\param{dimen}}
-\explain
-This parameter specifies the maximum depth of the bottom \minref{box} on
-a page. It is related to |\boxmaxdepth| (\xref \boxmaxdepth). If the
-depth of the bottom box on a page exceeds |\maxdepth|, \TeX\ moves the
-box's reference point down so that it's
-|\maxdepth| from the bottom of that box.
-Without this adjustment, the bottom box on
-a page could extend well into the bottom margin or even off
-the page entirely. \PlainTeX\ sets |\maxdepth| to |4pt|.
-\enddesc
-
-%==========================================================================
-\subsection{Page numbers}
-
-\begindesc
-\bix^^{page numbering}
-\cts pageno {\param{number}}
-\explain
-This parameter contains the current page number as an integer. The page
-number is normally negative for front-matter pages that are numbered
-with small roman numerals instead of arabic numerals. If you change the
-page number within a page,
-the changed number will be used in any headers or footers that
-appear on that page.
-The actual
-printing of page numbers is handled by \TeX's \minref{output routine},
-which you can modify.
-
-\PlainTeX\ keeps the page number in the \minref{register} ^|\count0|.
-(|\pageno| is, in fact, a synonym for |\count0|.)
-Whenever it ships out a page to the \dvifile,
-^^|\shipout//{\tt\\count} registers displayed at|
-\TeX\ displays the current value of |\count0| on your
-terminal so that you can tell which page it is working on.
-It's possible to use registers |\count1|--|\count9| for nested
-levels of page numbers (you must program this yourself).
-If any of these registers are nonzero, \TeX\ displays them on your
-terminal also.\footnote{
-More precisely, it displays all registers in sequence from
-|\count0| to |\count9|, but omits trailing zero registers.
-For instance, if the values of |\count0|--|\count3|
-are $(17, 0 , 0, 7)$ and the others are $0$,
-\TeX\ displays the page number as {\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
-This command adds $1$ to the page number
-$n$ in |\pageno| if $n\ge0$
-and subtracts $1$ from it if $n<0$.
-\enddesc
-
-\begindesc
-\easy\cts nopagenumbers {}
-\explain
-By default, \plainTeX\ produces a footer containing a centered page number.
-This command tells \TeX\ to produce a blank footer instead.
-\enddesc
-
-\begindesc
-\cts folio {}
-\explain
-This command produces the current page number, whose value is the number
-$n$ contained in ^|\pageno|.
-If $n\ge0$,
-\TeX\ produces $n$ as a decimal number,
-while if $n<0$,
-\TeX\ produces $-n$ in lowercase roman numerals.
-\example
-This explanation appears on page \folio\ of the book.
-|
-\produces
-This explanation appears on page \folio\ of the book.
-\endexample
-
-\eix^^{page numbering}
-\enddesc
-
-
-%==========================================================================
-\subsection{Header and footer lines}
-
-\begindesc\secondprinting{\vglue-.75\baselineskip\vskip0pt}
-\cts headline {\param{token list}}
-\cts footline {\param{token list}}
-\explain
-These parameters
-contain, respectively, the current headline (header) and the current
-footline (footer).
-The \plainTeX\ output routine
-places the headline at the top of each page and the footline
-at the bottom of each page.
-The default headline is empty and the default footline is a centered
-page number.
-
-The headline and footline should both
-be as wide as |\hsize| (use |\hfil|, \xref{\hfil}, for this
-if necessary).
-You should always include a font-setting command in these lines, since
-the current font is unpredictable when \TeX\ is calling the
-output routine. If you don't set the font explicitly,
-you'll get whatever font \TeX\ was using when it broke the page.
-
-You shouldn't try to use |\headline| or |\footline|
-to produce multiline headers or footers.
-Although \TeX\ won't complain, it will give you something that's very ugly.
-See \xrefpg{bighead} for a method of creating multiline headers or
-footers.
-\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 {Marks}
-
-\begindesc
-\cts mark {\rqbraces{\<text>}}
-\explain
-\bix^^{marks}
-This command causes \TeX\ to append a mark
-containing \<mark text>
-to whatever list it is currently constructing.
-Generally you shouldn't use |\mark| within an
-``inner'' construct such as a math formula or a \minref{box}
-you've built with an |\hbox|, |\vbox|, or |\vtop| command, because
-\TeX\ won't see the mark when it's constructing the main box of the page. But
-if you use |\mark| in ordinary horizontal \minref{mode}
-or directly in an hbox that's part of the main vertical list,
-the mark migrates out
-to the main \minref{vertical list}.
-See \knuth{pages~259--260} for examples showing how |\mark| can be used.
-\enddesc
-
-\begindesc
-\cts firstmark {}
-\cts botmark {}
-\cts topmark {}
-\explain
-These commands expand to the mark text in an item generated by an earlier
-^|\mark| command.
-The mark text has the form of a token list.
-\TeX\ sets the values of these commands when it
-finishes placing the contents of a page into ^|\box255|,
-just before calling the \minref{output routine}
-as part of its \minref{page break}ing actions. \TeX\ determines
-these values as follows:
-\ulist\compact
-\li |\firstmark| contains the tokens of the first mark on the page.
-\li |\botmark| contains the tokens of the last mark on the page.
-\li |\topmark| contains the tokens of the mark that is in effect at
-the very top of the page.
-That mark is the last mark
-that \emph{preceded} the page,
-i.e., the |\botmark| of the previous page.
-It is empty if no marks preceded the page.
-\endulist
-\noindent
-If a page has no marks on it, \TeX\ will set |\firstmark| and |\botmark| to
-the same mark as |\topmark|, i.e., the most recent preceding mark.
-The table at the bottom of \knuth{page~258} illustrates the relation among
-|\firstmark|, |\botmark|, and |\topmark|.
-\enddesc
-
-\begindesc
-\cts splitfirstmark {}
-\cts splitbotmark {}
-\explain
-^^{marks//for split lists}
-These commands expand to the ^{mark text} generated by an earlier
-^|\mark| command that produced an item in the item list of a vbox $V$.
-The mark text has the form of a token list.
-When \TeX\
-splits $V$ in response to a ^|\vsplit| command (\xref \vsplit),
-it sets the values of these commands as follows:
-\ulist\compact
-\li |\splitfirstmark| contains the tokens of the first mark in
-the item list of $V$.
-\li |\splitbotmark| contains the tokens of the last mark in
-the item list of $V$.
-\endulist
-These commands produce no tokens if there was no preceding |\vsplit|,
-or if the most recent preceding |\vsplit| didn't contain any marks.
-\eix^^{marks}
-\enddesc
-
-%==========================================================================
-\section {Insertions}
-
-\subsection {Footnotes}
-
-\begindesc
-\easy\cts footnote {\<argument$_1$> \<argument$_2$>}
-\cts vfootnote {\<argument$_1$> \<argument$_2$>}
-\explain
-These commands produce footnotes.
-\<argument$_1$> is the ``^{reference mark}''
-for the footnote and \<argument$_2$> is its text.
-The text can be several paragraphs long if necessary and can contain
-constructs such as math displays, but it shouldn't contain any
-\minref{insertion}s (such as other footnotes).
-
-You shouldn't use these commands inside a subformula of a math formula,
-in a box within a box being contributed to a page,
-or in an insertion of any kind.
-If you're unsure whether these restrictions apply, you can be safe by
-only using |\footnote| and |\vfootnote| directly within a paragraph or
-between paragraphs.
-
-These restrictions aren't as severe as they seem because you can use
-|\vfootnote| to footnote most anything.
-Both |\foot!-note| and |\vfoot!-note| insert the reference mark in front of the
-footnote itself, but |\vfoot!-note| doesn't insert the reference mark into the
-text.
-Thus, when you use |\vfoot!-note| you can
-explicitly insert the reference mark
-wherever it belongs without concern about the context
-and place the |\vfootnote| in the next paragraph.
-If you find that the footnote lands on
-the page following the one where it belongs, move the |\vfootnote| back
-to the previous paragraph.
-There are rare circumstances where you'll need to
-alter the text of your document in order to get a footnote to appear on
-the same page as its reference mark.
-\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 {General insertions}
-
-\begindesc
-\bix^^{insertions//commands for}
-\cts topinsert {\<vertical mode material> {\bt \\endinsert}}
-\cts midinsert {\<vertical mode material> {\bt \\endinsert}}
-\cts pageinsert {\<vertical mode material> {\bt \\endinsert}}
-\explain
-These commands produce different forms of insertions that
-instruct
-(or allow) \TeX\ to relocate the \<vertical mode material>:
-\ulist
-\li |\topinsert| attempts to put the material at the top of the current page.
-If it won't fit there, |\topinsert|
-will move the material to the next available top of page.
-\li |\midinsert| attempts to put the material at the current position.
-If it won't fit there, |\midinsert|
-will move the material to the next available top of page.
-\li |\pageinsert| puts the material by itself on the next page.
-To avoid an underfull page, be sure to end the inserted material with
-|\vfil| or fill out the excess space some other way.
-% 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
-The \<vertical mode material>
-is said to be ``floating'' ^^{floating material} because \TeX\
-can move it from one place to another.
-Insertions are very useful for material such as figures and tables because
-you can position such material where you want it without knowing where the
-page breaks will fall.
-
-Each of these commands implicitly ends the current paragraph, so
-you should use them only between paragraphs.
-You should not use them within a box or within another insertion.
-If you have several insertions competing for
-the same space, \TeX\ will retain their relative order.
-\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
-This command ends an insertion started by
-|\topinsert|, |\midinsert|, or |\pageinsert|.
-\enddesc
-
-\begindesc
-\cts insert {\<number> \rqbraces{\<vertical mode material>}}
-\explain
-\minrefs{insertion}
-This primitive command provides the
-underlying mechanism for constructing insertions, but
-it is hardly ever used outside of a \minref{macro} definition.
-The definitions of the
-|\foot!-note|, |\vfoot!-note|,
-|\top!-insert|, |\mid!-insert|, and |\page!-insert| commands are
-all built around |\insert|.
-^^|\topinsert|
-^^|\midinsert| ^^|\pageinsert| ^^|\footnote| ^^|\vfootnote|
-
-When you design insertions for a document, you should assign a different
-integer code\footnote
-{\texbook{} uses the term ``class'' for a code.
-We use a different term to avoid confusion with the other meaning of
-``class'' (\xref{class}).}
-$n$ to each kind of insertion,
-using the ^|\newinsert| command (\xref{\@newinsert}) to obtain the
-integer codes.
-The |\insert| command itself appends the \<vertical mode material>
-to the current horizontal or \minref{vertical list}.
-Your \minref{output routine} is responsible for
-moving the inserted material from where it resides in |\box|$\,n$
-to an output page.
-^^{output routine}
-
-\TeX\ groups together all insertions having the same code
-number. Each insertion
-code $n$ has four \minref{register}s associated with it:
-\ulist
-\li |\box|$\,n$ is where \TeX\ accumulates the material for insertions
-with code $n$. When \TeX\ breaks a page, it puts into |\box|$\,n$
-as much insertion $n$ material as will fit on the page.
-Your output routine should then move this material to the actual page.
-You can use ^|\ifvoid| \ctsref{\@ifvoid}
-to test if there is any material in |\box|$\,n$.
-If not all the material fits, \TeX\ saves the leftovers for the next page.
-\li |\count|$\,n$ is a magnification factor $f.$ When \TeX\ is computing
-the vertical space occupied on the page
-by insertion $n$ material, it multiplies the
-vertical extent of this material by $f/1000$.
-Thus you would ordinarily set $f$ to $500$ for a double-column insertion
-and to $0$ for a marginal~note.
-\li |\dimen|$\,n$ specifies the maximum amount
-of insertion $n$ material that \TeX\ will put on a single page.
-\li |\skip|$\,n$ specifies extra space that \TeX\ allocates on the page
-if the page contains any insertion $n$ material.
-This space is in addition to the space occupied by the insertion itself.
-For example, it would account for the space on a page above the footnotes
-(if there are~any).
-\endulist
-\noindent
-\TeX\ sets |\box|$\,n$, and you should set the other three registers
-so that \TeX\ can correctly compute the vertical space required by the
-insertion.
-See \knuth{pages~122--125} for further details of how \TeX\ processes this
-command and of how insertions interact with page breaking.
-\xrdef{endofinsert}
-\enddesc
-
-\see |\floatingpenalty| (\xref \floatingpenalty).
-\eix^^{insertions//commands for}
-
-
-%==========================================================================
-\section{Modifying the output routine}
-
-\bix^^{output routine}
-\begindesc
-\cts output {\param{token list}}
-\explain
-This parameter contains the current \minref{output routine}, i.e.,
-the token list that \TeX\ expands when it finds a page break.
-\TeX\ puts the page into ^|\box255|, so |\output| is responsible
-for doing something with |\box255|---either shipping it out or
-putting it somewhere else.
-The output routine is also responsible for attaching things such as
-headers and footers.
-\enddesc
-
-\begindesc
-\cts plainoutput {}
-\explain
-This command invokes \plainTeX's output routine.
-^^{output routine//default in \plainTeX}
-\PlainTeX\ defines ^|\output| as
-a token list containing the single token |\plainoutput|.
-\enddesc
-
-\begindesc
-\cts shipout {\<box>}
-\explain
-This command instructs \TeX\ to send \<box> to the \dvifile.
-^^{\dvifile//receives boxes from \b\tt\\shipout\e}
-\TeX\ expands any |\write| command in \<box> as part of |\shipout|.
-^^|\write//expanded during {\tt\\shipout}|
-The principal use of |\shipout| is in the output routine, but you can
-use it anywhere.
-\enddesc
-
-\begindesc
-\cts deadcycles {\param{number}}
-\explain
-This parameter contains the number of times that \TeX\ has initiated
-the \minref{output routine} since the last time it did a
-^^|\shipout| |\ship!-out|.\footnote{
-More precisely, \TeX\ sets |\dead!-cyles| to $0$ whenever it executes
-|\ship!-out|
-and increments it by $1$ whenever it executes |\output|.}
-If |\deadcycles| gets too big, you've probably gotten
-\TeX\ into a loop, e.g., one where the page builder is trying the same page
-break over and over again.
-\enddesc
-
-\begindesc
-\cts maxdeadcycles {\param{number}}
-\explain
-If the value of |\deadcycles| exceeds the value of |\maxdeadcycles|,
-\TeX\ assumes that the output routine has gotten into a loop.
-\TeX\ then complains and runs its own simple output routine,
-equivalent to |\shipout!allowbreak\box255|,
-that is likely to break the loop.
-\PlainTeX\ sets |\maxdeadcycles| \hbox{to $25$}.
-\enddesc
-
-\begindesc
-\cts outputpenalty {\param{number}}
-\explain
-\TeX\ sets this parameter when it breaks a page. If the breakpoint was at a
-\minref{penalty} item, \TeX\ removes the penalty item and
-sets |\outputpenalty| to the penalty value at
-the breakpoint; otherwise it sets |\outputpenalty| \hbox{to $0$}.
-
-Suppose that you are undoing a page break
-in order to break the page at a different place than the one that \TeX\
-has just chosen. In order to reconstruct the page, you need to recreate
-the penalty at \TeX's chosen breakpoint.
-You can accomplish this with the command
-|\penalty!allowbreak\outputpenalty|.
-\enddesc
-
-\begindesc
-\cts holdinginserts {\param{number}}
-\explain
-If this parameter is greater than $0$ when \TeX\
-is processing a page break, \TeX\ will refrain from processing insertions.
-Setting this parameter to $1$
-can be useful when you're writing an output routine
-that needs to reprocess the contents of the page, e.g.,
-an output routine that uses a value of |\vsize| (\xref \vsize) different from
-the one used by the page builder.
-
-\eix^^{output routine}
-\enddesc
-
-%==========================================================================
-\section {Splitting vertical lists}
-
-\begindesc
-\cts vsplit {\<number> {\bt to} \<dimen>}
-\explain
-This command causes \TeX\ to split the \minref{box} numbered
-\<number>, which we'll call $B_2$, into two parts.
-It uses the same algorithm that it would use if $B_2$ was a page
-and it was breaking that page;
-the division point then corresponds to the page break that it would find.
-The box $B_2$ must be a vbox, not an hbox.
-% we avoid starting the previous sentence with a symbol, a copyediting no-no.
-\TeX\ puts the material preceding the division point into
-another box $B_1$ and leaves the material after the division point in $B_2$.
-The |\vsplit| command then produces $B_1$.
-Normally you'd assign $B_1$ to a different
-box register, as in the example below.
-If the division point is at the end of $B_2$,
-$B_2$ will be empty after the |\vsplit|.
-
-\TeX\ employs its usual page-breaking algorithm
-^^{page breaks//in split lists}
-for the split.
-It uses \<dimen> for ^|\pagegoal|, the desired height of $B_1$.
-The vertical extent of $B_1$ may not be exactly
-\<dimen> because \TeX\ may not be able to achieve its page goal perfectly.
-\TeX\ does not consider insertions in calculating the split,
-so insertions in the original vertical list of $B_2$ will be retained
-but won't affect the split point.
-
-\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{dimen}}
-\explain
-This parameter specifies the
-maximum allowable depth of a box resulting from a |\vsplit|.
-|\splitmaxdepth| plays the
-same role that ^|\maxdepth| (\xref \maxdepth) plays for a page.
-\enddesc
-
-\begindesc
-\cts splittopskip {\param{glue}}
-\explain
-This parameter specifies the glue that \TeX\ inserts at the top of
-a box resulting from a |\vsplit|.
-|\splittopskip| plays the
-same role that ^|\topskip| (\xref \topskip) plays for a page.
-\enddesc
-
-\see |\splitbotmark|, |\splitfirstmark| (\xref \splitfirstmark).
-
-\enddescriptions \endchapter \byebye
diff --git a/Master/texmf-doc/doc/english/impatient/paras.tex b/Master/texmf-doc/doc/english/impatient/paras.tex
deleted file mode 100644
index 81501f57721..00000000000
--- a/Master/texmf-doc/doc/english/impatient/paras.tex
+++ /dev/null
@@ -1,2166 +0,0 @@
-% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
-% See file fdl.tex for copying conditions.
-
-\input macros
-\chapter {Commands \linebreak for composing \linebreak paragraphs}
-
-\chapterdef{paras}
-
-This section covers commands that
-deal with characters, words, lines, and entire paragraphs.
-For an explanation of the conventions used in this section,
-see \headcit{Descriptions of the commands}{cmddesc}.
-
-\begindescriptions
-
-\section {Characters and accents}
-
-%==========================================================================
-\subsection {Letters and ligatures for European alphabets}
-
-\begindesc
-\xrdef{fornlets}
-\bix^^{ligatures}
-^^{special symbols}
-^^{European alphabets}
-%
-\ctsx AA {Scandinavian letter \AA}
-\ctsx aa {Scandinavian letter \aa}
-\ctsx AE {\AE\ ligature}
-\ctsx ae {\ae\ ligature}
-\ctsx L {Polish letter \L}
-\ctsx l {Polish letter \l}
-\ctsx O {Danish/Norwegian letter \O}
-\ctsx o {Danish/Norwegian letter \o}
-\ctsx OE {\OE\ ligature}
-\ctsx oe {\oe\ ligature}
-\ctsx ss {German letter \ss}
-\explain
-These commands produce various letters and ligatures from European
-alphabets.
-They are useful for occasional words and phrases in these
-languages---but if you need to typeset a large amount of text in a European
-language, you should probably be using a version of \TeX\ adapted
-to that language.\footnote{The \TeX\ Users Group (\xref{resources}) can
-provide you with information about European language versions of \TeX.}
-
-You'll need a space after these commands when you use them within a word,
-so that
-\TeX\ will treat the following letters as part of the word
-rather than as part of the command.
-You needn't be in \minref{math mode} to use these commands.
-\example
-{\it les \oe vres de Moli\`ere}
-|
-\produces
-{\it les \oe vres de Moli\`ere}
-\endexample
-\eix^^{ligatures}
-\enddesc
-
-%==========================================================================
-\subsection {Special symbols}
-
-\begindesc
-^^{special characters}
-%
-\easy\ctspecialx # \ctsxrdef{@pound} {pound sign \#}
-\ctspecialx $ \ctsxrdef{@bucks} {dollar sign \$}
-\ctspecialx % \ctsxrdef{@percent} {percent sign \%}
-\ctspecialx & \ctsxrdef{@and} {ampersand \&}
-\ctspecialx _ \ctsxrdef{@underscore} {underscore \_}
-\ctsx lq {left quote \lq}
-\ctsx rq {right quote \rq}
-\aux\ctsx lbrack left bracket [
-\aux\ctsx rbrack right bracket ]
-\ctsx dag {dagger symbol \dag}
-\ctsx ddag {double dagger symbol \ddag}
-\ctsx copyright {copyright symbol \copyright}
-\ctsx P {paragraph symbol \P}
-\ctsx S {section symbol \S}
-\explain
-These commands produce various special characters and marks. The first
-five commands are necessary because \TeX\ by default
-attaches special meanings to
-the characters (|#|, |$|, |%|, |&|, |_|).
-You needn't be in \minref{math mode} to use these commands.
-
-You can use the dollar sign in the Computer Modern
-italic fonts to get the ^{pound
-sterling} symbol, as shown in the example below.
-
-\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
-This command produces the \TeX\ logo. Remember to follow it by
-|\!vs| or to enclose it in a \minref{group} when you want a space
-after it.
-
-\example
-A book about \TeX\ is in your hands.
-|
-\produces
-A book about \TeX\ is in your hands.
-\endexample
-\enddesc
-
-\begindesc
-\cts dots {}
-\explain
-^^{dots}
-This command produces an ^{ellipsis}, i.e., three dots, in ordinary text.
-It's intended for use in mathematical writing; for an ellipsis
-between ordinary words, you should use |$\ldots$| \ctsref{\ldots} instead.
-Since |\dots| includes its own space, you shouldn't follow it by
-|\!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 ``Miscellaneous ordinary math symbols'' (\xref{specsyms}).
-%==========================================================================
-\subsection {Arbitrary characters}
-
-\begindesc
-\bix^^{characters}
-\cts char {\<charcode>}
-\explain
-This command produces the character located at position \<charcode>
-of the current font.
-\example
-{\char65} {\char `A} {\char `\A}
-|
-\produces
-{\char65} {\char `A} {\char `\A}
-\endexample
-\enddesc
-
-\begindesc
-\cts mathchar {\<mathcode>}
-\explain
-This command produces the math character whose class, family, and
-font position are given by \<mathcode>.
-It is only legal in math mode.
-\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^^{characters}
-
-%==========================================================================
-\subsection {Accents}
-
-\begindesc
-^^{accents}
-\xrdef{accents}
-%
-\ctspecialx ' \ctsxrdef{@prime} {^{acute accent} as in \'e}
-\ctspecialx . \ctsxrdef{@dot} {^{dot accent} as in \.n}
-\ctspecialx = \ctsxrdef{@equal} {^{macron accent} as in \=r}
-\ctspecialx ^ \ctsxrdef{@hat} {^{circumflex accent} as in \^o}
-\ctspecialx ` \ctsxrdef{@lquote} {^{grave accent} as in \`e}
-\ctspecialx " \ctsxrdef{@quote} {^{umlaut accent} as in \"o}
-\ctspecialx ~ \ctsxrdef{@not} {^{tilde accent} as in \~a}
-\ctsx c {^{cedilla accent} as in \c c}
-\ctsx d {^{underdot accent} as in \d r}
-\ctsx H {^{Hungarian umlaut accent} as in \H o}
-\ctsx t {^{tie-after accent} as in \t uu}
-\ctsx u {^{breve accent} as in \u r}
-\ctsx v {^{check accent} as in \v o}
-\explain
-These commands produce accent marks in ordinary text. You'll usually
-need to leave a space after the ones denoted by a single letter
-(see ``Spaces'', \xref{spaces}).
-
-\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
-These commands produce dotless versions of the letters `i' and `j'.
-You should use them instead of the ordinary `i' and `j' when you are putting
-an accent above those letters in ordinary text.
-^^{dotless letters}
-Use the ^|\imath| and ^|\jmath| commands (\xref\imath)
-for dotless `i's and `j's in math formulas.
-\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}
-This command puts an accent over the character following this command.
-The accent is the character at position \<charcode> in the current font.
-\TeX\ assumes that the accent has been designed to fit over a character
-$1$\thinspace ex high in the same font as the accent. If the
-character to be accented
-is taller or shorter, \TeX\ adjusts the position accordingly. You can
-change \minref{font}s between the accent and the next character, thus
-drawing the accent character and the character to be accented
-from different fonts. If
-the accent character isn't really intended to be
-an accent, \TeX\ won't complain; it
-will just typeset something ridiculous.
-\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 Math accents (\xref{mathaccent}).
-\enddesc
-%==========================================================================
-\subsection {Defeating boundary ligatures}
-
-\begindesc
-\bix^^{ligatures}
-\cts noboundary {}
-\explain
-You can defeat a ligature
-or kern that \TeX\ applies to the
-first or last character of a word by putting |\noboundary| just before
-or just after the word.
-Certain fonts intended for languages other than English
-contain a special boundary
-character that \TeX\ puts at the beginning
-and end of each word.
-The boundary character occupies no space and is invisible when printed.
-It enables \TeX\ to provide different typographical
-treatment to characters at the beginning or end of a word,
-since
-the boundary character can be part of a sequence of
-characters to be kerned or replaced by a ligature.
-(None of the standard \TeX\ fonts contain this boundary character.)
-The effect of |\noboundary| is to delete the
-boundary character if it's there, thus preventing \TeX\
-from recognizing the ligature or kern.
-\eix^^{ligatures}
-\enddesc
-
-%==========================================================================
-\section {Selecting fonts}
-
-\xrdef{selfont}
-
-%==========================================================================
-\subsection {Particular fonts}
-
-\begindesc
-^^{fonts}
-%
-\ctsx fivebf {use $5$-point bold font}
-\ctsx fivei {use $5$-point math italic font}
-\ctsx fiverm {use $5$-point roman font}
-\ctsx fivesy {use $5$-point math symbol font}
-\ctsx sevenbf {use $7$-point bold font}
-\ctsx seveni {use $7$-point math italic font}
-\ctsx sevenrm {use $7$-point roman font}
-\ctsx sevensy {use $7$-point math symbol font}
-\ctsx tenbf {use $10$-point bold text font}
-\ctsx tenex {use $10$-point math extension font}
-\ctsx teni {use $10$-point math italic font}
-\ctsx tenrm {use $10$-point roman text font}
-\ctsx tensl {use $10$-point slanted roman font}
-\ctsx tensy {use $10$-point math symbol font}
-\ctsx tenit {use $10$-point italic font}
-\ctsx tentt {use $10$-point typewriter font}
-\explain
-These commands cause \TeX\ to typeset the following text in the
-specified font. Normally you would enclose
-one of these font-selecting commands in a
-group, together with the text to be set in the selected font.
-Outside of a group a font-selecting command is
-effective until the end of the document
-(unless you override it with another such command).
-\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
-This command selects a font, built into \TeX,
-that has no characters in it. \TeX\ uses it
-as a replacement for an undefined font in a family of math fonts.
-\enddesc
-
-%==========================================================================
-\subsection {Type styles}
-
-\xrdef{seltype}
-\begindesc
-^^{type styles}
-\easy\ctsx bf {use boldface type}
-\ctsx it {use italic type}
-\ctsx rm {use roman type}
-\ctsx sl {use slanted type}
-\ctsx tt {use typewriter type}
-\explain
-These commands select a type style without changing the typeface or
-the point size.\footnote{
-\TeX\ does not provide predefined commands for changing just the point
-size, e.g., |\eightpoint|.
-Supporting such commands would require a great number of fonts,
-most of which would never be used.
-Such commands were, however, used in typesetting \texbook.}
-Normally you would enclose
-one of these type style commands in a
-group, together with the text to be set in the selected font.
-Outside of a group a type style command is
-effective until the end of the document
-(unless you override it with another such command).
-\example
-The Dormouse was {\it not} amused.
-|
-\produces
-The Dormouse was {\it not} amused.
-\endexample
-\enddesc
-
-\see ``Fonts in math formulas'' (\xref{mathfonts}).
-%==========================================================================
-\section {Uppercase and lowercase}
-
-\begindesc
-\bix^^{case conversion}
-\bix^^{uppercase//conversion to}
-\bix^^{lowercase//conversion to}
-\cts lccode {\<charcode> \tblentry{number}}
-\cts uccode {\<charcode> \tblentry{number}}
-\explain
-The |\lccode| and |\uccode| values for the $256$ possible input
-characters specify the correspondence between the lowercase and
-uppercase forms of letters. These values are used by the |\lowercase|
-and |\uppercase| commands respectively and by \TeX's hyphenation
-algorithm.
-
-\TeX\ initializes the values of |\lccode| and |\uccode| as follows:
-
-\ulist\compact
-\li The |\lccode| of a lowercase letter is the {\ascii} code for that letter.
-\li The |\lccode| of an uppercase letter is the {\ascii} code for the
-corresponding lowercase letter.
-\li The |\uccode| of an uppercase letter is the {\ascii} code for that letter.
-\li The |\uccode| of a lowercase letter is the {\ascii} code for the
-corresponding uppercase letter.
-\li The |\lccode| and |\uccode| of a nonletter are both zero.
-\endulist
-
-Most of the time there's no reason to change these values,
-but you might want to change them if you're using a language
-that has more letters than English.
-\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{\<token list>}}
-\cts uppercase {\rqbraces{\<token list>}}
-\explain ^^{case conversion}
-These commands convert the letters in \<token list>,
-i.e., those tokens with category code $11$, to their lowercase
-and uppercase forms.
-The conversion of a letter is defined by its |\lccode| (for lowercase)
-or |\uccode| (for uppercase) table value.
-Tokens in the list that are not letters are not affected---even if the
-tokens are \minref{macro} calls or other commands that expand into letters.
-\example
-\def\x{Cd} \lowercase{Ab\x} \uppercase{Ab\x}
-|
-\produces
-\def\x{Cd} \lowercase{Ab\x} \uppercase{Ab\x}
-
-\eix^^{case conversion}
-\eix^^{uppercase//conversion to}
-\eix^^{lowercase//conversion to}
-\endexample
-\enddesc
-
-%==========================================================================
-\section {Interword spacing}
-
-\begindesc
-\bix^^{spaces//interword}
-\easy\ctsbasic {\\\vs}{}
-\blankidxref\ctsxrdef{@space}
-\explain
-This command explicitly produces an interword
-space called a ``^{control space}''.
-A control space is useful when a
-letter occurs immediately after a control sequence, or in any other
-circumstance where you don't want two tokens to be run together in the
-output.
-The amount of space produced by |\!vs|
-is independent of preceding punctuation, i.e., its space factor
-(\xref\spacefactor) is $1000$.
-
-Incidentally, if you want to print the `\vs' ^^{visible space}
-character that we've used here to denote a space, you can get it by typing
-|{\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
-This command is equivalent to an input space character.
-It differs from ^|\ | in that its
-width \emph{can} be affected by preceding punctuation.
-\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
-This construct produces the ^{end of line} character.
-It normally has two effects when \TeX\ encounters it in
-your input:
-\olist
-\li It acts as a command, producing either an input space
-(if it comes at the end of a nonblank line)
-or a |\par| token (if it comes at the end of a blank line).
-^^|\par//from empty line|
-\li It ends the input line, causing \TeX\ to ignore the remaining
-characters on the line.
-\endolist
-\noindent
-However, |^^M| does \emph{not} end the line when it appears in the
-context |`\^^M|, denoting the ASCII code for control-M (the number $13$).
-You can change the meaning of |^^M|
-by giving it a different \minref{category code}.
-See \xrefpg{twocarets} for a more general explanation of the |^^| 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
-The \minref{active character} `|~|', called a ``^{tie}'',
-produces a normal interword space
-between two words and links those words so that
-a line break will not occur between them.
-You should use a tie in any context where a line break would be confusing,
-e.g., before a middle initial, after an abbreviation such as ``Dr.'',
-or after ``Fig.'' in ``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
-Every character in a \TeX\ \minref{font}
-has an ``^{italic correction}'' associated with it, although
-the italic correction
-is normally zero for a character in an unslanted (upright) font.
-The italic correction specifies the extra space that's needed
-when you're switching from a slanted font (not necessarily
-an italic font) to an unslanted font.
-The extra
-space is needed because a slanted character projects into the
-space that follows it, making the space look too small when the
-next character is unslanted.
-The metrics file for a font includes the italic correction of each
-character in the font.
-^^{metrics file//italic correction in}
-
-The |\/| command
-produces an ^{italic correction} for the preceding character.
-You should insert an italic correction when you're switching from
-a slanted font to an unslanted font,
-except when the next character is a period or comma.
-\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
-^^{interword spacing}
-\TeX\ normally adjusts the spacing between words to account for
-punctuation marks. For example, it inserts extra space at the end of a
-sentence and adds some stretch to the \minref{glue} following any
-punctuation mark there. The |\frenchspacing| command tells \TeX\ to make
-the interword spacing independent of punctuation, while the
-|\nonfrenchspacing| command tells \TeX\ to use its normal spacing rules.
-If you don't specify
-|\frenchspacing|, you'll get \TeX's normal spacing.
-
-See \xrefpg{periodspacing} for advice on how to control \TeX's treatment
-of punctuation at the end of sentences.
-
-\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\ normally condenses a sequence of several spaces to a single space.
-|\obeyspaces| instructs \TeX\ to produce a space in the output
-for each space in the input.
-|\obeyspaces| does not cause spaces at the beginning of a line
-to show up, however; for that we recommend the |\obey!-white!-space|
-command defined in |eplain.tex|
-(\xref{ewhitesp}).
-^^|\obeywhitespace|
-|\obeyspaces| is often useful when you're typesetting something,
-computer input for example,
-in a monospaced font (one in which each character takes up the
-same amount of space)
-and you want to show exactly what each line of input looks like.
-
-You can use the |\obeylines| command (\xref{\obeylines}) to get \TeX\
-to follow the line boundaries of your input. |\obeylines| is often
-used in combination with |\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{number}}
-\cts spaceskip {\param{glue}}
-\cts xspaceskip {\param{glue}}
-\cts sfcode {\<charcode> \tblentry{number}}
-\explain
-These primitive \minref{parameter}s affect how much space \TeX\
-puts between two adjacent words, i.e., the ^{interword spacing}.
-The normal interword spacing is supplied by the current font.
-As \TeX\ is processing a \minref{horizontal list}, it keeps track of the
-^{space factor} $f$ in |\spacefactor|.
-As it processes each input character $c$, it updates $f$ according to the
-value of $f_c$, the space factor code of $c$ (see below).
-For most characters, $f_c$ is $1000$ and \TeX\ sets $f$ to $1000$.
-(The initial value of $f$ is also $1000$.)
-When \TeX\ sees an interword space, it adjusts the size of that space
-by multiplying the stretch and shrink of that space by
-$f/1000$ and $1000/f$ respectively.
-Thus:
-\olist\compact
-\li If $f=1000$, the interword space keeps its normal value.
-\li If $f<1000$, the interword space gets less \minref{stretch}
-and more \minref{shrink}.
-\li If $f>1000$, the interword space gets more \minref{stretch}
-and less \minref{shrink}.
-\endolist
-% > changed to \ge on the next line after second edition was typeset.
-% Correction made by A-W production.
-In addition, if $f\ge2000$ the interword space is further increased by the
-``extra space'' parameter associated with the current font.
-
-Each
-input character $c$ has an entry in the |\sfcode| (space factor code)
-table.
-The |\sfcode| table entry is independent of the font.
-Usually \TeX\ just sets $f$ to $f_c$ after it processes $c$.
-However:
-\ulist
-\li If $f_c$ is zero, \TeX\ leaves $f$ unchanged.
-Thus a character such as `|)|' in \plainTeX,
-for which $f_c$ is zero, is essentially transparent to
-the interword space calculation.
-\li If $f<1000<f_c$, \TeX\ sets $f$ to $1000$ rather than to $f_c$,
-i.e., it refuses to raise $f$ very rapidly.
-\endulist
-The |\sfcode| value for a period is normally $3000$,
-which is why \TeX\ usually puts extra space after a period
-% > to \ge here, too, as above.
-(see the rule above for the case $f\ge2000$).
-Noncharacter items in a horizontal list, e.g., vertical rules,
-generally act like characters with a space factor of $1000$.
-
-You can change the space factor explicitly by assigning
-a different numerical value to |\spacefactor|.
-You can also override the normal
-interword spacing by assigning a different numerical
-value to |\xspaceskip| or to |\spaceskip|:
-\ulist
-\li |\xspaceskip| specifies the glue to be used when $f\ge2000$;
-in the case where
-|\xspaceskip| is zero, the normal rules apply.
-\li |\spaceskip| specifies the glue to be used when $f<2000$ or when
-\hbox{|\xspaceskip|} is zero; if |\spaceskip| is zero, the normal rules apply.
-The stretch and shrink of
-the |\spaceskip| glue, like that of the ordinary interword glue,
-is modified according to the value of $f$.
-\endulist
-
-See \knuth{page~76} for the precise rules that \TeX\ uses in calculating
-interword \minref{glue}, and \knuth{pages~285--287} for the adjustments
-made to |\spacefactor| after various items in a horizontal list.
-\eix^^{spaces//interword}
-\enddesc
-
-%==========================================================================
-\section {Centering and justifying lines}
-
-\begindesc
-\bix^^{centering}
-\bix^^{flush left}
-\bix^^{flush right}
-\bix^^{justification}
-\easy\cts centerline {\<argument>}
-\cts leftline {\<argument>}
-\cts rightline {\<argument>}
-\explain
-The |\centerline| command produces an \minref{hbox} exactly as wide
-as the current line and places \<argument> at the center of the box.
-The |\leftline| and |\rightline| commands are analogous; they
-place \<argument> at the left end or at the right end of the box.
-If you want to apply one of these commands to
-several consecutive lines, you must apply
-it to each one individually.
-See \xrefpg{eplaincenter} for an alternate approach.
-
-Don't use these commands within a paragraph---if you do,
-\TeX\ probably won't be able to break the paragraph into lines and
-will complain about an 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^^{centering}
-\eix^^{flush left}
-\eix^^{flush right}
-\eix^^{justification}
-
-\endexample
-\enddesc
-
-\begindesc
-\easy\cts line {\<argument>}
-\explain
-This command produces an \minref{hbox} containing \<argument>.
-The hbox is exactly as wide as the current line, i.e., it
-extends from the right margin to the left margin.
-\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
-^^{overlapping text}
-\cts llap {\<argument>}
-\cts rlap {\<argument>}
-\explain
-These commands enable you to produce text that overlaps
-whatever happens to be to the left or to the right of the current
-position. |\llap| backspaces by the width of \<argument> and then
-typesets \<argument>. |\rlap| is similar, except that it typesets
-\<argument> first and then backspaces. |\llap| and |\rlap| are useful for
-placing text outside of the current margins.
-Both |\llap| and |\rlap| do their work by creating
-a \minref{box} of zero~width.
-
-You can also use |\llap| or |\rlap| to construct special characters by
-^{overprinting}, but don't try it unless you're sure that the characters
-you're using have the same width (which is the case for a monospaced
-font such as ^|cmtt10|, the Computer Modern $10$-point ^{typewriter font}).
-^^{Computer Modern fonts}
-\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 {Shaping paragraphs}
-
-\subsection {Starting, ending, and indenting paragraphs}
-
-\begindesc
-\bix^^{paragraphs//shaping}
-\ctspecial par \ctsxrdef{@par}
-\explain
-This command ends a paragraph and puts \TeX\ into \minref{vertical mode},
-ready to add more items to the page. Since \TeX\ converts a blank line in
-your input file into a |\par| \minref{token}, you don't ordinarily need to
-type an explicit |\par| in order to end a paragraph.
-
-An important point is that |\par| doesn't tell
-\TeX\ to start a paragraph; it only tells \TeX\ to end a paragraph.
-\TeX\ starts a paragraph when it is in ordinary vertical mode (which it
-is after a |\par|) and encounters an inherently horizontal item such as
-a letter. As part of its ceremony for starting a paragraph, \TeX\
-^^{paragraphs//starting}
-inserts an amount of vertical space given by the parameter |\parskip|
-(\xref{\parskip}) and indents the paragraph by a horizontal space given
-by |\parindent| (\xref{\parindent}).
-
-You can usually cancel any interparagraph space produced by a |\par| by giving
-the command |\vskip -\lastskip|. It can often
-be helpful to do this when you're writing a \minref{macro} that is
-supposed to work the same way whether or not it is preceded by a blank
-line.
-
-You can get \TeX\ to take some special action at the start of each paragraph
-by placing the instructions in ^|\everypar| (\xref\everypar).
-
-See \knuth{pages~283 and 286} for the precise effect of |\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
-This command is a synonym for the ^|\par| primitive command.
-It is useful when you've redefined ^|\par| but still want access to the
-original definition of |\par|.
-\enddesc
-
-\begindesc
-\cts parfillskip {\param{glue}}
-\explain
-^^{paragraphs//glue at end of}
-This parameter specifies the horizontal glue that
-\TeX\ inserts at the end of a paragraph.
-The default value of |\parfillskip| is |0pt plus 1fil|,
-which causes the last line of a paragraph to be
-filled out with blank space. A value of |0pt| forces
-\TeX\ to end the last line of a paragraph at the right margin.
-\enddesc
-
-\bix^^{indentation}
-\begindesc
-\easy\cts indent {}
-\explain
-If \TeX\ is in vertical mode, as it is after ending a paragraph,
-this command inserts the ^|\parskip| interparagraph glue,
-puts \TeX\ into horizontal mode, starts a paragraph, and
-indents that paragraph by |\parindent|.
-If \TeX\ is already in horizontal mode, this command merely produces
-a blank space of width |\parindent|.
-Two |\indent|s in a row
-produce two indentations.
-^^{indentation}
-
-As the example below shows, an |\indent| at a point where \TeX\
-would start a paragraph anyway is redundant.
-When \TeX\ is in vertical mode and sees a letter or some other
-inherently horizontal command, it starts a paragraph by
-switching to horizontal mode,
-doing an |\indent|, and processing the horizontal command.
-
-\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
-If \TeX\ is in vertical mode, as it is after ending a paragraph,
-this command inserts the ^|\parskip| interparagraph glue,
-puts \TeX\ into horizontal mode, and starts an unindented paragraph.
-It has no effect in horizontal mode, i.e., within a paragraph.
-Starting a paragraph with |\noindent| thus cancels
-the indentation by |\parindent|
-that would normally occur there.
-^^{indentation}
-
-A common use of |\noindent| is to cancel the indentation of
-the first line of a
-paragraph when the paragraph follows some displayed material.
-
-\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}
-This command tells \TeX\ to start a paragraph and indent it by
-|\par!-indent|,
-as usual.
-\TeX\ then right-justifies \<argument> within the indentation
-and
-follows it with an en space (half an em).
-\PlainTeX\ uses this command to typeset footnotes (\xref\footnote)
-^^{footnotes//using \b\tt\\textindent\e\ with}
-and items in lists (see |\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{dimen}}
-\explain
-This \minref{parameter} specifies the amount by which
-the first line of each paragraph is to be indented. ^^{indentation}
-As the example below shows, it's a bad idea to set both |\parindent|
-and ^|\parskip| to zero since then the paragraph breaks are
-no longer apparent.
-\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{token list}}
-\explain
-\TeX\ performs the commands in \<token list> whenever it
-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
-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 {Shaping entire paragraphs}
-
-\begindesc
-\margin{This command was also described in the `Pages' chapter. The
-description here now combines the two earlier descriptions.}
-\bix^^{line breaks//and paragraph shape}
-\easy\cts hsize {\param{dimen}}
-\explain
-This \minref{parameter} specifies the current ^{line length},
-i.e., the usual width of lines in a paragraph
-starting at the left margin.
-A great many \TeX\ commands, e.g., |\centerline| (\xref{\centerline})
-and |\hrule| (\xref{\hrule}), implicitly use the value of
-|\hsize|. By changing |\hsize| within a group
-you can change the width of the constructs produced by such commands.
-
-If you
-set |\hsize| within a \minref{vbox} that contains text, the vbox will
-have whatever width you've given to |\hsize|.
-^^{vboxes//width determined by \b\tt\\hsize\e}
-
-\PlainTeX\ sets |\hsize| to |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
-^^{paragraphs//narrow}
-This command makes paragraphs narrower, increasing the left and right
-margins by |\parindent|, the
-current paragraph ^{indentation}.
-It achieves this by increasing
-both |\leftskip| and |\rightskip| by |\parindent|.
-Normally you place |\narrower| at the
-beginning of a \minref{group} containing the paragraphs that you want to
-make narrower. If you forget to enclose |\narrower| within a group,
-you'll find that all the rest of your document will have narrow
-paragraphs.
-
-|\narrower| affects just those paragraphs that end after you invoke it.
-If you end a |\narrower| group before you've ended
-a paragraph, \TeX\ won't make that paragraph narrower.
-
-\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{glue}}
-\cts rightskip {\param{glue}}
-\explain
-These parameters tell \TeX\ how much glue to place
-at the left and at the right end of each line of the current
-paragraph. We'll just explain how |\leftskip| works since |\rightskip|
-is analogous.
-
-^^{indentation} You can increase the left margin by setting |\leftskip|
-to a fixed nonzero \minref{dimension}. If you give |\leftskip| some
-stretch, you can produce ^{ragged left} text, i.e.,
-text that has an uneven left margin.
-
-Ordinarily, you should enclose any \minref{assignment} to |\leftskip|
-in a \minref{group} together with the affected text
-in order to keep its effect from continuing to
-the end of your document. However, it's pointless to change
-|\leftskip|'s value inside a group that is in turn
-contained within a paragraph---the value of |\leftskip| at the
-\emph{end} of a paragraph
-is what determines how \TeX\ breaks the paragraph into lines. \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
-These commands cause \TeX\ to typeset your document
-``^{ragged right}''. Interword spaces all
-have their natural size, i.e., they all have the same width and
-don't stretch or shrink.
-Consequently the right margin is generally not even.
-The alternative, which is \TeX's default, is to typeset your document
-justified,
-^^{justification}
-i.e., with uniform left and right margins.
-In justified text, interword spaces are stretched in order to
-make the right margin even.
-Some typographers prefer ragged right because
-it avoids distracting ``rivers'' of white space on the printed page.
-\minrefs{justified text}
-
-You should use the |\ttraggedright| command when typesetting text in a
-monospaced font and the |\raggedright| command when typesetting text in any
-other font.
-
-Most of the time you'll want to apply these commands to an entire document,
-but you can limit their effects by enclosing them
-in a \minref{group}.
-\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
-This command indents the second and subsequent lines of a paragraph
-by |\parindent|, the paragraph ^{indentation}
-(\xref{\parindent}).
-Since the first line is already indented by |\parindent|
-(unless you've cancelled the indentation with |\noindent|), the
-entire paragraph appears to be indented by |\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{number}}
-\cts hangindent {\param{dimen}}
-
-\explain
-These two \minref{parameter}s jointly
-specify ``^{hanging indentation}'' for a paragraph.
-The hanging indentation indicates to \TeX\ that certain lines
-of the paragraph should
-be indented and the remaining lines should have their normal width.
-^^{indentation}
-|\hangafter| determines which lines
-are indented, while |\hangindent| determines the amount of indentation
-and whether it occurs on the left or on the right:
-
-\ulist
-\li Let $n$ be the value of |\hangafter|. If $n < 0$,
-the first $-n$ lines of the paragraph will be indented.
-If $n\ge0$, all but the first $n$ lines of the paragraph will be
-indented.
-
-\li Let $x$ be the value of |\hangindent|.
-If $x\ge0$, the lines will be indented
-by $x$ on the left. If $x<0$ the lines will be indented by $-x$ on
-the right.
-\endulist
-
-When you specify hanging indentation, it applies
-only to the next paragraph (if you're in vertical mode) or to
-the current paragraph (if you're in horizontal mode).
-\TeX\ uses the values of |\hangafter| and |\hangindent| at the end of a
-paragraph, when it breaks that paragraph into lines.\minrefs{line
-break}
-
-Unlike most of the other paragraph-shaping parameters,
-|\hangafter| and |\hangindent| are reset to their default values
-at the start of each paragraph, namely,
-$1$ for |\hangafter| and $0$ for |\hangindent|.
-If you want to typeset a sequence of paragraphs with hanging
-indentation, use |\everypar| (\xref{\everypar}).
-^^|\everypar//for hanging indentation|
-If you specify |\hangafter| and |\hangindent| as well as ^|\parshape|,
-\TeX\ ignores the |\hangafter| and |\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
-This command specifies the shape of the first $n$ lines of a paragraph---
-the next paragraph if you're in vertical mode and the current paragraph
-if you're in horizontal mode.
-The $i$'s and $l$'s are all
-dimensions. The first line is indented by $i_1$ and has length $l_1$,
-the second line is indented by $i_2$ and has length $l_2$, and so forth.
-If the paragraph has more than $n$ lines, the last indentation\slash
-length pair is used for the extra lines.
-To achieve special effects such as the one
-shown here, you usually have to experiment a lot, insert kerns here and
-there, and choose your words to fit the shape.
-
-|\parshape|, like ^|\hangafter| and ^|\hangindent|, is effective only for one
-paragraph.
-If you specify |\hangafter| and |\hangindent| as well as |\par!-shape|,
-\TeX\ ignores the ^|\hangafter| and ^|\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
-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!!
-|
-%\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
-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!
-\endexample
-\eix^^{indentation}
-\enddesc
-
-\begindesc
-\cts prevgraf {\param{number}}
-\explain
-In horizontal mode, this parameter specifies the
-number of lines in the paragraph so far; in vertical mode,
-it specifies the number of lines in the previous paragraph.
-\TeX\ only sets |\prevgraf| after it has finished breaking some text into
-lines, i.e., at a math display or at the end of a paragraph.
-See \knuth{page~103} for more details about it.
-\enddesc
-
-\begindesc
-\cts vadjust {\rqbraces{\<vertical mode material>}}
-\explain
-This command inserts the specified \<vertical mode material> just after the
-output line containing the position where the command occurs.
-^^{vertical lists//inserting in paragraphs}
-You can use it, for instance, to cause a page eject or to insert extra
-space after a certain line.
-
-\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), |\everypar| (\xref\everypar).
-\eix^^{line breaks//and paragraph shape}
-\eix^^{paragraphs//shaping}
-
-%==========================================================================
-\section {Line breaks}
-
-%==========================================================================
-\subsection {Encouraging or discouraging line breaks}
-
-\begindesc
-\bix^^{line breaks}
-\bix^^{line breaks//encouraging or discouraging}
-\ctspecial break {} \xrdef{hbreak}
-\explain
-This command forces a line break.
-Unless you do something to fill out the line, you're likely to
-get an ``underfull hbox'' complaint.
-|\break| can also be used in vertical mode.
-\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
-This command prevents a line break where it
-otherwise might occur.
-|\nobreak| can also be used in vertical mode.
-\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
-This command tells \TeX\ to
-allow a line break where one could not ordinarily occur.
-It's most often useful within a math formula, since \TeX\
-is reluctant to break lines there. ^^{line breaks//in math formulas}
-|\allowbreak| can also be used in vertical mode.
-\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 {\<number>} \xrdef{hpenalty}
-\explain
-This command produces a \minref{penalty} item.
-The penalty item makes \TeX\ more or less willing to break a line
-at the point where that item occurs.
-A negative penalty, i.e., a bonus, encourages a line break;
-a positive penalty discourages a line break.
-A penalty of $10000$ or more prevents a break altogether,
-while a penalty of $-10000$ or less forces a break.
-|\penalty| can also be used in vertical mode.
-\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
-
-\secondprinting{\vglue-\baselineskip\vskip0pt}
-\begindesc
-\cts obeylines {}
-\explain
-\TeX\ normally treats an end of line as a space.
-|\obeylines| instructs \TeX\ to treat each end of line as
-an end of paragraph, thus forcing a line break.
-|\obeylines| is often useful when you're typesetting verse or
-computer programs.
-^^{verse, typesetting}^^{poetry, typesetting}^^{computer programs, typesetting}
-If any of your lines are longer than the effective line length
-(|\hsize|\tminus|\parindent|),
-however,
-you may get an extra line break within those lines.
-
-Because \TeX\ inserts the |\parskip| glue (\xref\parskip)
-between lines controlled by |\obeylines| (since it thinks each line is a
-paragraph), you should normally set |\parskip| to zero when you're using
-|\obeylines|.
-
-You can use the ^|\obeyspaces| command (\xref{\obeyspaces}) to get
-\TeX\ to take spaces within a line literally. |\obeylines| and |\obeyspaces|
-are often used together.
-\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
-This command produces a ^{solidus} (/) and also tells \TeX\ that it can
-break the line after the solidus, if necessary.
-\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^^{line breaks//encouraging or discouraging}
-\enddesc
-
-\secondprinting{\vfill\eject}
-
-
-%==========================================================================
-\subsection {Line breaking parameters}
-
-\begindesc
-\bix^^{line breaks//parameters affecting}
-%
-\cts pretolerance {\param{number}}
-\cts tolerance {\param{number}}
-\explain
-These parameters determine the \minref{badness} that \TeX\ will tolerate
-on each line when it is choosing line breaks
-for a paragraph.
-The badness is a measure of how far the interword spacing deviates from
-the ideal.
-|\pretolerance| specifies the tolerable badness for
-line breaks without hyphenation;
-|\tolerance| specifies the tolerable badness for line breaks with
-hyphenation.
-The tolerable badness can be exceeded in either of two ways:
-a line is too tight (the interword spaces are too
-small) or it is too loose (the interword spaces are too big).
-
-\ulist
-\li If \TeX\ must set a line too loosely, it
-complains about an ``underfull hbox''.
-\li If \TeX\ must set a line too rightly,
-it lets the line run past the right margin and
-complains about an ``overfull \minref{hbox}''.
-\endulist
-
-\noindent \TeX\ chooses line breaks in the following steps:
-\olist
-\li It attempts to choose line breaks without hyphenating.
-If none of the
-resulting lines have a badness exceeding |\pretolerance|, the
-line breaks are acceptable and the paragraph can now be set.
-\li Otherwise, it tries another set of line breaks, this
-time allowing hyphenation. If none of the resulting lines have a badness
-exceeding |\tolerance|, the new set of line breaks is
-acceptable and the paragraph can now be set.
-\li Otherwise, it adds ^|\emergencystretch| (see below) to the stretch
-of each line and tries again.
-\li If none of these attempts have produced an acceptable
-set of line breaks,
-it sets the paragraph with one or more overfull hboxes
-and complains about them.
-\endolist
-
-\PlainTeX\ sets |\tolerance| to $200$ and |\pretolerance| to $100$.
-If you set |\tolerance| to $10000$, \TeX\
-becomes infinitely tolerant and accepts any spacing, no matter how bad
-(unless it encounters a word that won't fit on a line, even with
-hyphenation). Thus by changing |\tolerance| you can avoid
-overfull and underfull hboxes, but at the cost of making the spacing worse.
-By making |\pretolerance| larger you can get \TeX\ to avoid hyphenation
-(and also run faster),
-again at the cost of possibly worse spacing.
-If you set |\pretolerance| to $-1$,
-\TeX\ will not even try to set the paragraph without hyphenation.
-
-The ^|\hbadness| parameter (\xref \hbadness) determines the level of badness
-that \TeX\ will tolerate before it complains, but |\hbadness| does not affect
-the way that \TeX\ typesets your document.
-The ^|\hfuzz| parameter (\xref \hfuzz) determines the amount that
-an hbox can exceed its specified width before \TeX\ considers it to be
-erroneous.
-\enddesc
-
-\begindesc
-\cts emergencystretch {\param{dimen}}
-\explain
-By setting this parameter to be greater than zero,
-you can make it easier for \TeX\
-to typeset your document without generating overfull hboxes.
-^^{overfull boxes}
-This is a better alternative than setting |\tolerance=10000|,
-since that tends to produce really ugly lines.
-If \TeX\ can't typeset a paragraph without exceeding ^|\tolerance|,
-it will try again, adding |\emergencystretch| to the stretch of each
-line.
-The effect of the change is to scale down the badness of each
-line, enabling \TeX\ to make spaces wider than they would otherwise be
-and thus choose line breaks that are as
-good as possible under the circumstances.
-\enddesc
-
-\begindesc
-\cts looseness {\param{number}}
-\explain
-\minrefs{line break}
-This parameter gives you a way
-to change the total number of lines in a paragraph from what they
-optimally would be.
-|\looseness| is so named because it's a
-measure of how loose the paragraph is, i.e., how much extra space there is in
-it.
-
-Normally, |\looseness| is $0$ and
-\TeX\ chooses line breaks in its usual way. But if
-|\looseness| is, say, $3$, \TeX\ does the following:
-\olist
-\li It chooses line breaks normally, resulting in a paragraph of $n$ lines.
-\li It discards these line breaks and
-tries to find a new set of line breaks that gives the paragraph $n+3$ lines.
-(Without the previous step, \TeX\ wouldn't know the value of $n$.)
-\li If the previous attempt results in lines whose badness exceeds
-|\tol!-er!-ance|,
-^^|\tolerance|
-it tries to get $n+2$ lines---and if that also fails,
-$n+1$ lines, and finally $n$ lines again.
-\endolist
-\noindent
-Similarly, if looseness is $-n$,
-\TeX\ attempts to set the paragraph with $n$
-fewer lines than normal.
-The easiest way for \TeX\ to make a paragraph one line longer is to put
-a single word on the excess line. You can prevent this by
-putting a tie (\xref{@not}) between the last two words of the paragraph.
-
-Setting |\looseness| is the best way to force a paragraph
-to occupy a given number of lines.
-Setting it to a negative value is useful when you're trying to
-increase the amount of text you can fit on a page.
-Similarly, setting it to a positive
-value is useful when you're trying to
-decrease the amount of text on a page.
-
-\TeX\ sets |\looseness| to $0$ when it ends a paragraph, after breaking
-the paragraph into lines.
-If you want to change the looseness of several paragraphs, you must do it
-individually for each one or put the change into |\everypar|
-\ctsref\everypar.
-^^|\everypar//for setting \b\tt\\looseness\e|
-\enddesc
-
-\begindesc
-\cts linepenalty {\param{number}}
-\explain
-\minrefs{line break}
-This parameter specifies \minref{demerits} that \TeX\ assesses for each line
-break when it is breaking a paragraph into lines.
-The penalty is independent of where the line break occurs.
-Increasing the value
-of this parameter causes \TeX\ to try harder to set a paragraph with a
-minimum number of lines, even at the cost of other aesthetic considerations
-such as avoiding overly tight interword spacing.
-Demerits are in units of \minref{badness} squared, so
-you need to assign a rather large value to this parameter (in the
-thousands) for it to have any effect.
-\PlainTeX\ sets |\linepenalty| to $10$.
-\enddesc
-
-\begindesc
-\cts adjdemerits {\param{number}}
-\explain
-\minrefs{line break}
-^^{hyphenation//penalties for}
-{\tighten
-This parameter specifies additional \minref{demerits} that \TeX\ attaches to a
-breakpoint between two adjacent lines that are
-``visually incompatible''.
-Such a pair of lines makes a paragraph appear uneven.
-Incompatibility is evaluated in terms of the tightness or looseness
-of lines:
-}
-\olist\compact
-\li A line is tight if its \minref{glue} needs to shrink by at least $50\%$.
-\li A line is decent if its badness is $12$ or less.
-\li A line is loose if its glue needs to stretch by more than $50\%$.
-\li A line is very loose if its glue needs to stretch so much
-that its badness exceeds $100$.
-\endolist
-Two adjacent lines are visually incompatible
-if their categories are not adjacent, e.g., a tight line is next to a loose one
-or a decent line is next to a very loose one.
-
-Demerits are in units of \minref{badness} squared, so
-you need to assign a rather large value to this parameter (in the
-thousands) for it to have any effect.
-\PlainTeX\ sets |\adjdemerits| to~$10000$.
-\enddesc
-
-\begindesc
-\bix^^{hyphenation//penalties for}
-\cts exhyphenpenalty {\param{number}}
-\explain
-\minrefs{line break}
-This parameter specifies the \minref{penalty} that \TeX\ attaches to a
-breakpoint at an explicit hyphen such as the one in
-``helter-skelter''. Increasing this parameter has the effect of discouraging
-\TeX\ from ending a line at an explicit hyphen.
-\PlainTeX\ sets |\exhyphenpenalty| to $50$.
-\enddesc
-
-\begindesc
-\cts hyphenpenalty {\param{number}}
-\explain
-\minrefs{line break}
-This parameter specifies the \minref{penalty} that \TeX\ attaches to a
-breakpoint at an implicit hyphen.
-Implicit hyphens can come from \TeX's hyphenation dictionary or
-from ^{discretionary hyphens} that you've inserted with |\-|~(\xref{\@minus}).
-^^|-//leads to {\tt\\hyphenpenalty}|
-Increasing this parameter has the effect of discouraging
-\TeX\ from hyphenating words.
-\PlainTeX\ sets |\hyphenpenalty| to $50$.
-\enddesc
-
-\begindesc
-\cts doublehyphendemerits {\param{number}}
-\explain
-\minrefs{line break}
-{\tighten
-This parameter specifies additional \minref{demerits} that \TeX\
-attaches to a breakpoint when that breakpoint leads to
-two consecutive lines that end in a hyphen.
-Increasing the value of this parameter has the effect of discouraging
-\TeX\ from hyphenating two lines in a row.
-Demerits are in units of \minref{badness} squared, so
-you need to assign a rather large value to this parameter (in the
-thousands) for it to have any effect.
-\PlainTeX\ sets |\doublehyphendemerits| to $10000$.
-}
-\enddesc
-
-\begindesc
-\cts finalhyphendemerits {\param{number}}
-\explain
-\minrefs{line break}
-{\tighten
-This parameter specifies additional \minref{demerits} that \TeX\
-attaches to a breakpoint that causes
-the next to last line of a paragraph to end with a hyphen.
-Such a hyphen is generally considered to be unaesthetic
-because of the possible blank space from a short last line beneath it.
-Increasing the value of this parameter has the effect of discouraging
-\TeX\ from ending the next to the last line with a hyphen.
-Demerits are in units of \minref{badness} squared, so
-you need to assign a rather large value to this parameter (in the
-thousands) for it to have any effect.
-\PlainTeX\ sets |\finalhyphendemerits| to $5000$.
-}
-\eix^^{hyphenation//penalties for}
-\enddesc
-
-\begindesc
-\cts binoppenalty {\param{number}}
-\explain
-^^{operators}
-This parameter specifies the penalty for breaking a math formula
-after a binary operator when the formula appears in a paragraph.
-\PlainTeX\ sets |\binoppenalty| to $700$.
-\enddesc
-
-\begindesc
-\cts relpenalty {\param{number}}
-\explain
-^^{relations}
-This parameter specifies the penalty for breaking a math formula
-after a relation when the formula appears in a paragraph.
-\PlainTeX\ sets |\rel!-penal!-ty| to~$500$.
-
-\eix^^{line breaks//parameters affecting}
-\enddesc
-
-%==========================================================================
-\subsection {Hyphenation}
-
-\begindesc
-\bix^^{hyphenation}
-%
-\easy\ctspecial - \ctsxrdef{@minus}
-\explain
-The |\-| command inserts a ``discretionary hyphen''
-^^{discretionary hyphens}
-into a word.
-The discretionary hyphen allows \TeX\ to hyphenate the word at that
-place. \TeX\ isn't obliged to hyphenate there---it does so
-only if it needs to. This command is useful when a word
-that occurs in one or two places in your document
-needs to be hyphenated,
-but \TeX\ can't find an appropriate hyphenation point on its own.
-\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}
-^^{hyphenation}
-This command specifies a ``discretionary break'', namely,
-a place where \TeX\ can break a line.
-It also tells \TeX\ what text to put on either side of the break.
-\ulist
-\li If \TeX\ does not break there, it uses the \<no-break text>.
-\li If \TeX\ does break there, it puts the \<pre-break text> just before
-the break and the \<post-break text> just after the break.
-\endulist
-\noindent
-Just as with |\-|,
-\TeX\ isn't obligated to break a line at a discretionary break.
-In fact, |\-| is ordinarily equivalent to |\discretionary!allowbreak{-}{}{}|.
-
-\TeX\ sometimes inserts discretionary breaks on its own.
-For example, it inserts |\discretionary!allowbreak{}{}{}| after
-an explicit hyphen or dash.
-
-{\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''
-|
-^^{hyphenation//German}
-\endexample}
-
-\enddesc
-
-\begindesc
-\cts hyphenation {\rqbraces{\<word>\thinspace\vs\ $\ldots$\ \vs
- \thinspace\<word>}}
-\explain
-\TeX\ keeps a dictionary of exceptions to its ^{hyphenation} rules.
-Each dictionary entry indicates how a particular word should
-be hyphenated.
-The |\hyphenation| command adds words to the dictionary.
-Its argument is a sequence of words separated by blanks.
-Uppercase and lowercase letters are equivalent.
-The hyphens in each word indicate the places
-where \TeX\ can hyphenate that word.
-A word with no hyphens in it will never be hyphenated.
-However, you can still override the hyphenation dictionary by
-using |\-| in a particular occurrence of a word.
-You need to provide all the grammatical forms of a word
-that you want \TeX\ to handle, e.g., both the singular and the plural.
-
-\example
-\hyphenation{Gry-phon my-co-phagy}
-\hyphenation{man-u-script man-u-scripts piz-za}
-|
-\endexample
-\enddesc
-
-\begindesc
-\cts uchyph {\param{number}}
-\explain
-A positive value of |\uchyph| (uppercase hyphenation)
-permits hyphenation of words, such as proper names,
-that start with a capital letter.
-A zero or negative
-value inhibits such hyphenation. \PlainTeX\ sets |\uchyph| to $1$,
-so \TeX\ normally tries to hyphenate words that start with a capital letter.
-\enddesc
-
-\begindesc
-\cts showhyphens {\rqbraces{\<word>\thinspace\vs\ $\ldots$\ \vs
- \thinspace\<word>}}
-\explain
-This command isn't normally used in documents, but you can use it at
-your terminal to see how \TeX\ would hyphenate some random set of words.
-The words, with hyphenations indicated, appear both in the log and at
-your terminal. You'll get a complaint about an underfull hbox---just
-ignore it.
-\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
-Different languages have different sets of hyphenation rules.
-This parameter determines the set of ^{hyphenation rules} that \TeX\ uses.
-By changing |\language| you can get \TeX\
-to hyphenate portions of text or entire documents according to the
-hyphenation rules appropriate to a particular language.
-^^{European languages}
-Your ^{local information} about \TeX\ will tell you if any
-additional sets of hyphenation rules are available (besides the
-ones for English)
-and what the appropriate values of |\language| are.
-The default value of |\language| is $0$.
-
-\TeX\ sets the current language to $0$ at the start of every paragraph,
-and compares |\language| to the current language whenever it adds
-a character to the current paragraph.
-If they are not the same, \TeX\ adds a ^{whatsit} indicating the
-language change.
-This whatsit is the clue in later processing that the language rules
-should change.
-\enddesc
-
-\begindesc
-\cts setlanguage {\<number>}
-\explain
-This command sets the current language to \<number>
-by inserting the same whatsit that you'd get by changing ^|\language|.
-However, it does not change the value of |\language|.
-\enddesc
-
-\begindesc
-\cts lefthyphenmin {\param{number}}
-\cts righthyphenmin {\param{number}}
-\explain
-These parameters specify the smallest word fragments that \TeX\ allows
-at the left and at the right end of a hyphenated word.
-\PlainTeX\ defaults them to $2$ and $3$ respectively;
-these are the recommended values for English.
-\enddesc
-
-\begindesc
-\bix^^{fonts//hyphenation characters for}
-\cts hyphenchar {\<font>\param{number}}
-\explain
-\TeX\ doesn't necessarily use the `-' character at hyphenation points.
-Instead, it uses the |\hyphenchar| of the current font, which is usually
-`-' but need not be. If a font has a negative |\hyphenchar| value,
-\TeX\ won't hyphenate words in that font.
-
-Note that \<font> is a control sequence
-that names a font, not a \<font\-name> that names font files.
-Beware:
-an assignment to |\hyphenchar| is \emph{not} undone at the end
-of a group.
-If you want to change |\hyphenchar| locally, you'll need to
-save and restore its original value explicitly.
-
-\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{number}}
-\explain
-When \TeX\ reads the metrics file
-^^{metrics file//default hyphen in}
-for a font in response to a
-^|\font| command, it sets the font's ^|\hyphenchar| to
-|\default!-hyphen!-char|.
-If the value of |\default!-hyphen!-char| is
-not in the range $0$--$255$ when you load a font,
-\TeX\ won't hyphenate any words in that font unless you
-override the decision by setting the font's |\hyphenchar| later on.
-\PlainTeX\ sets |\default!-hyphen!-char| to $45$, the \ascii\ code
-for `|-|'.
-\example
-\defaulthyphenchar = `-
- % Assume `-' is the hyphen, unless overridden.
-\defaulthyphenchar = -1
- % Don't hyphenate, unless overridden.
-|
-\endexample
-
-\eix^^{fonts//hyphenation characters for}
-\enddesc
-
-\see |\pretolerance| (\xref \pretolerance).
-\eix^^{hyphenation}
-\eix^^{line breaks}
-
-%==========================================================================
-\section {Section headings, lists, and theorems}
-
-\begindesc
-^^{section headings}
-\easy\ctspecial beginsection {\<argument>\thinspace{\bt\\par}}
- \ctsxrdef{@beginsection}
-\explain
-You can use this command to begin a major subdivision of your document.
-\<argument> is intended to serve as a section title.
-|\beginsection| surrounds \<argument>
-by extra vertical space and sets it in
-boldface, left-justified.
-You can produce the |\par| that ends \<argument> with a blank line.
-\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
-^^{itemized lists}
-These commands are useful for creating ^{itemized lists}. The entire paragraph
-following \<argument> is indented by |\parindent|
-^^|\parindent//indentation for itemized lists|
-(for |\item|) or by |2\parindent| (for |\itemitem|).
-(See \xrefpg{\parindent} for an explanation of |\parindent|.)
-Then \<argument>,
-followed by an en space, is placed just to
-the left of the text of the
-first line of the paragraph so that it falls within the paragraph indentation
-as specified by |\parindent|.
-
-If you want to include more than one
-paragraph in an item, put |\item{}| in front of the additional paragraphs.
-\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
- \<general text>\thinspace{\bt\\par}}
- \ctsxrdef{@proclaim}
-\explain
-^^{theorems}
-^^{lemmas}
-^^{hypotheses}
-This command ``proclaims'' a theorem, lemma, hypothesis, etc.
-It sets \<argument> in boldface type and the following paragraph in
-italics. \<arg\-u\-ment> must be followed by a period and a space token,
-which serve
-to set off \<argument> from \<general text>.
-\<general text> consists of the text up to the next paragraph
-boundary, except that you can include multiple paragraphs by putting them
-within braces and ending a paragraph after the closing right brace.
-\example
-\proclaim Theorem 1.
-What I say is not to be believed.
-
-\proclaim Corollary 1. Theorem 1 is false.\par
-|
-\produces
-\proclaim Theorem 1.
-What I say is not to be believed.
-
-\proclaim Corollary 1. Theorem 1 is false.\par
-\endexample
-\enddesc
-
-\enddescriptions
-\endchapter
-\byebye
diff --git a/Master/texmf-doc/doc/english/impatient/preface.tex b/Master/texmf-doc/doc/english/impatient/preface.tex
deleted file mode 100644
index b48193d749a..00000000000
--- a/Master/texmf-doc/doc/english/impatient/preface.tex
+++ /dev/null
@@ -1,157 +0,0 @@
-% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
-% See file fdl.tex for copying conditions.
-
-\input macros
-\frontchapter{Preface}
-
-{\tighten
-Donald Knuth's \TeX, a computerized typesetting system,
-provides nearly everything
-needed for high-quality typesetting of mathematical
-notations as well as of ordinary text.
-It is particularly notable for its flexibility, its superb hyphenation, and its
-ability to choose aesthetically satisfying line breaks.
-Because
-of its extraordinary capabilities, \TeX\ has become the leading typesetting
-system for mathematics, science, and engineering and has been adopted as
-a standard by the American Mathematical Society. A companion program,
-^{\Metafont},
-can construct arbitrary letterforms including, in particular, any symbols that
-might be needed in mathematics.
-Both \TeX\ and \Metafont\ are widely available within the
-scientific and engineering community and have been implemented on a
-variety of computers.
-\TeX\ isn't perfect---it lacks integrated support for graphics, and
-some effects such as ^{revision bars} are very difficult to produce---%
-but these drawbacks are far outweighed by its advantages.
-\par}
-
-\thisbook\/ is intended to serve scientists, mathematicians, and
-technical typists for whom \TeX\ is a useful tool rather than a primary
-interest, as well as computer people who have a strong interest in \TeX\
-for its own sake. We also intend it to serve both newcomers to \TeX\
-and those who are already familiar with \TeX. We assume that our
-readers are comfortable working with computers and that they want to get
-the information they need as quickly as possible. Our aim is to provide
-that information clearly, concisely, and accessibly.
-
-{\tighten This book therefore provides a bright searchlight, a stout
-walking-stick, and detailed maps for exploring and using \TeX. It will
-enable you to master \TeX\ at a rapid pace through inquiry and
-experiment, but it will not lead you by the hand through the entire
-\TeX\ system. Our approach is to provide you with a handbook for \TeX\
-that makes it easy for you to retrieve whatever information you need.
-We explain both the full repertoire of \TeX\ commands and the concepts
-that underlie them. You won't have to waste your time plowing through
-material that you neither need nor want. \par}
-
-In the early sections we also provide you with enough orientation so
-that you can get started if you haven't used \TeX\ before. We assume
-that you have access to a \TeX\ implementation and that you know how to
-use a text editor, but we don't assume much else about your background.
-Because this book is organized for ready reference, you'll continue to
-find it useful as you become more familiar with \TeX. If you prefer to
-start with a carefully guided tour, we recommend that you first read
-Knuth's ^{\texbook} (see \xrefpg{resources} for a citation), passing
-over the ``dangerous bend'' sections, and then return to this book for
-additional information and for reference as you start to use \TeX. (The
-dangerous bend sections of \texbook\ cover advanced topics.)
-
-The structure of \TeX\ is really quite simple: a \TeX\ input document
-consists of ordinary text interspersed with commands that give \TeX\
-further instructions on how to typeset your document. Things like math
-formulas contain many such commands, while expository text contains
-relatively few of them.
-
-The time-consuming part of learning \TeX\ is learning the commands and
-the concepts underlying their descriptions. Thus we've devoted most of
-the book to defining and explaining the commands and the concepts.
-We've also provided examples showing \TeX\ typeset output and the
-corresponding input, hints on solving common problems, information about
-error messages, and so forth. We've supplied extensive cross-references
-by page number and a complete index.
-
-We've arranged the descriptions of the commands so that you can look
-them up either by function or alphabetically. The functional
-arrangement is what you need when you know what you want to do but you
-don't know what command might do it for you. The alphabetical arrangement
-is what you need when you know the name of a command but you don't know exactly
-what it does.
-
-We must caution you that we haven't tried to provide a complete
-definition of \TeX. For that you'll need ^{\texbook}, which is the
-original source of information on \TeX. \texbook\ also contains a lot
-of information about the fine points of using \TeX, particularly on the
-subject of composing math formulas. We recommend it highly.
-
-In 1989 Knuth made a major revision to \TeX\ in order to adapt it to
-$8$-bit character sets, needed to support typesetting for languages
-other than English. The description of \TeX\ in this book incorporates
-that revision (see \xref{newtex}).
-
-{\tighten You may be using a specialized form of \TeX\ such as ^{\LaTeX}
-or ^{\AMSTeX} (see \xref{resources}). Although these specialized forms
-are self-contained, you may still want to use some of the facilities of
-\TeX\ itself now and then in order to gain the finer control that only
-\TeX\ can provide. This book can help you to learn what you need to
-know about those facilities without having to learn about a lot of other
-things that you aren't interested~in. \par}
-
-Two of us (K.A.H. and K.B.) were generously supported by the
-University of Massachusetts at Boston during the preparation of this
-book. In particular, Rick Martin kept the machines running, and
-Robert~A. Morris and Betty O'Neil made the machines available. Paul
-English of Interleaf helped us produce proofs for a cover design.
-
-We wish to thank the reviewers of our book: Richard Furuta of the
-University of Maryland, John Gourlay of Arbortext, Inc., Jill Carter
-Knuth, and Richard Rubinstein of the Digital Equipment Corporation. We
-took to heart their perceptive and unsparing criticisms of the original
-manuscript, and the book has benefitted greatly from their insights.
-
-We are particularly grateful to our editor, Peter Gordon of
-Addison-Wesley. This book was really his idea, and throughout its
-development he has been a source of encouragement and valuable
-advice. We thank his assistant at Addison-Wesley, Helen Goldstein, for
-her help in so many ways, and Loren Stevens of Addison-Wesley for her
-skill and energy in shepherding this book through the production
-process. Were it not for our copyeditor, Janice Byer, a number of small
-but irritating errors would have remained in this book. We appreciate
-her sensitivity and taste in correcting what needed to be corrected
-while leaving what did not need to be corrected alone. Finally, we wish
-to thank Jim Byrnes of Prometheus Inc. for making this collaboration
-possible by introducing us to each other.
-\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 Preface to the free edition:} This book was originally
-published in 1990 by Addison-Wesley. In 2003, it was declared out of
-print and Addison-Wesley generously reverted all rights to us, the
-authors. We decided to make the book available in source form, under
-the GNU Free Documentation License, as our way of supporting the
-community which supported the book in the first place. See the
-copyright page for more information on the licensing.
-
-The illustrations which were part of the original book are not included
-here. Some of the fonts have also been changed; now, only
-freely-available fonts are used. We left the cropmarks and galley
-information on the pages, to serve as identification. An old version of
-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.
-
-Our distribution of the book is at {\tt
-ftp://tug.org/tex/impatient}. You can reach us by email at {\tt
-impatient@tug.org}.
-
-\pagebreak
-\byebye
diff --git a/Master/texmf-doc/doc/english/impatient/read1st.tex b/Master/texmf-doc/doc/english/impatient/read1st.tex
deleted file mode 100644
index fddaed637e6..00000000000
--- a/Master/texmf-doc/doc/english/impatient/read1st.tex
+++ /dev/null
@@ -1,45 +0,0 @@
-% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
-% See file fdl.tex for copying conditions.
-
-\input macros
-\frontchapter{Read this first}
-
-% We don't need anything but \rm here.
-{\font\rm = cmr10 scaled \magstephalf \baselineskip = 1.1\baselineskip
-If you're new to \TeX:
-\ulist
-\li Read Sections \chapternum{usebook}--\chapternum{usingtex} first.
-\li Look at the examples in \chapterref{examples}
-for things that resemble what you want to do.
-Look up any related commands in ``Capsule summary of commands'',
-\chapterref{capsule}.
-Use the page references there to find the more complete descriptions of
-those commands and others that are similar.
-\li Look up unfamiliar words in ``Concepts'', \chapterref{concepts},
-using the list on the back cover of the book to find the
-explanation quickly.
-\li Experiment and explore.
-\endulist
-\bigskip
-\noindent
-If you're already familiar with \TeX, or if you're editing or
-otherwise modifying a \TeX\ document that someone else has created:
-\ulist
-\li For a quick reminder of what a command does, look in
-\chapterref{capsule}, ``Capsule summary of commands''. It's
-alphabetized and has page references for more complete descriptions of
-the commands.
-\li Use the functional groupings of command descriptions
-to find those related to a
-particular command that you already know, or to find a command that serves a
-particular purpose.
-\li Use \chapterref{concepts}, ``Concepts'', to get an explanation of
-any concept that you don't understand, or need to understand more
-precisely, or have forgotten.
-Use the list on the inside back cover of the book to find a concept quickly.
-\endulist
-}
-\pagebreak
-
-\byebye
diff --git a/Master/texmf-doc/doc/english/impatient/tips.tex b/Master/texmf-doc/doc/english/impatient/tips.tex
deleted file mode 100644
index b55408f71d4..00000000000
--- a/Master/texmf-doc/doc/english/impatient/tips.tex
+++ /dev/null
@@ -1,1011 +0,0 @@
-% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
-% See file fdl.tex for copying conditions.
-
-\input macros
-\chapter{Tips and techniques}
-
-\chapterdef{tips}
-
-\TeX\ is a complex program that occasionally works its will in
-mysterious ways. In this section we offer some tips on solving
-problems that you might encounter and explain some handy techniques.
-
-
-\section Correcting bad page breaks
-
-\bix^^{page breaks//bad}
-Sometimes \TeX\ breaks a page right in the middle of material that you
-want to keep together---for example,
-a section heading and the text that follows it,
-or a short list of related items. There are two ways to correct the
-situation:
-\ulist\compact
-\li You can force the material to be kept together.
-\li You can force a page break at a different place.
-\endulist
-
-The simplest way to force \TeX\ to keep material together on a page is
-to enclose the material in a vbox using the |\vbox| command \ctsref{\vbox}.
-^^|\vbox//fixing page breaks with|
-A vbox is ordinarily better than an hbox for this purpose because most
-often the material to be kept together,
-e.g., a sequence of paragraphs, will be vertical mode material.
-You should
-precede and follow the vbox by an implicit or explicit paragraph command
-(either a blank line or |\par|); otherwise
-\TeX\ may try to make the vbox part of an an adjacent paragraph.
-The vbox method has an important limitation:
-you can't apply it to portions of text smaller than a paragraph.
-
-You can sometimes keep the lines of a single paragraph together by enclosing
-the paragraph in a group and assigning |\interlinepenalty|
-\ctsref{\interlinepenalty}
-a value of $10000$ at the start of the group (or elsewhere before the
-end of the paragraph).
-This method causes \TeX\ to consider page breaks within that paragraph to be
-infinitely undesirable.
-However, if all the page breaks that \TeX\ can find are infinitely undesirable,
-it may break the page within the paragraph anyway.
-
-A ^|\nobreak| command (\xref{vnobreak})
-after the end of a paragraph prevents \TeX\
-from breaking the page at the following item
-(unless that item happens to be a penalty of less than $10000$).
-This is also the best way to prevent a page break after a heading,
-since a heading usually behaves like a paragraph.
-The |\nobreak| must follow the blank line or |\par| that ends
-the paragraph so that \TeX\ won't treat the |\nobreak| as part of the
-paragraph.
-For the |\nobreak| to be effective, it must also come before
-any legal breakpoint at the end of the paragraph.
-The glue that \TeX\ inserts
-before the next paragraph is such a breakpoint,
-and so is any vertical glue that you insert explicitly after a paragraph.
-Thus the |\nobreak| should usually be
-the very first thing after the end of the paragraph or heading.
-
-You can use the ^|\eject| command \ctsref{\eject}
-to force \TeX\ to break a page at a
-particular place. Within a paragraph, you can use the combination
-`|\vadjust{\vfill\eject}|'
-\ctsref{\vadjust}
-^^|\vadjust|
-to force a break after the next complete output line.
-The reason for preceding |\eject| by ^|\vfill|
-\ctsref{\vfill} is to
-get \TeX\ to fill out the page with blank space.
-However, using |\eject| to fix page break problems
-has a major disadvantage:
-if the page boundaries in your document change,
-the page breaks that you've inserted may no longer be where you want them.
-
-If you don't provide \TeX\ with a |\vfill| command to fill out the page
-after an |\eject|,
-\TeX\ redistributes the extra blank space as best it can and then usually
-complains that ``an
-underfull |\vbox| (badness $10000$) has occurred while |\output| is active.''
-You may encounter a similar problem with
-any of the methods mentioned above for enclosing
-material that you want to keep together.
-
-The ^|\filbreak| command \ctsref\filbreak{}
-\xrdef{filbreak}
-provides a way of keeping the lines of one or more paragraphs
-(or other vertical mode material) together on
-a page. If you enclose a paragraph in |\filbreak|s, \TeX\ will effectively
-ignore the |\filbreak|s if the paragraph fits on the current page and
-break the page before the first |\filbreak| if the paragraph doesn't fit.
-If you put |\filbreak|s around each paragraph in a sequence of paragraphs,
-like this:
-{\obeylines\display{
-{\tt \\filbreak}
-\<paragraph>
-{\tt \\filbreak}
-\<paragraph>
-{\tt \\filbreak}
-\leavevmode\indent\vdots
-\<paragraph>
-{\tt \\filbreak}
-}}
-\vfil\eject
-\noindent
-\TeX\ will keep the lines of each paragraph together on a page.
-If \TeX{} breaks a page at a |\filbreak|, it will fill the bottom of the
-page with blank space.
-
-Sometimes you can get \TeX\ to modify the length of a page by changing
-the ^|\looseness| parameter \ctsref\looseness{} for one or more paragraphs.
-Setting |\looseness| negative within a paragraph causes \TeX\ to try to squeeze
-the paragraph into fewer lines; setting it positive causes \TeX\ to try to
-expand the paragraph into more lines. The disadvantage of changing |\looseness|
-is that the interword spacing in the affected region won't be optimal.
-You can get further information about \TeX's attempted line breaks by
-setting |\tracingpages| (\xref\tracingpages) to $1$.
-
-
-\section Preserving the end of a page
-
-Sometimes you need to modify something on a single page and you want to avoid
-reprinting the entire document. If your modification doesn't
-change the page length too much, there's hope. You need to fix the end
-of the page so that it falls in the same place;
-the methods are similar to the ones for fixing a bad page break.
-
-If the original end of page came between paragraphs, you can
-force a page break at the same place
-using any of the methods we've described above. Otherwise,
-you must force \emph{both} a line break and a page break at a particular
-place. If the new page is shorter than the old one, the sequence:
-\csdisplay
-\vadjust{\vfill\eject}\break
-|
-^^|\vadjust|
-should do the trick.
-But if the new page is longer,
-the problem is far more difficult because \TeX\ has probably already
-squeezed the page as tightly as it can. Your only hopes in this case are
-to set ^|\looseness| \ctsref\looseness{} to a negative value,
-to shorten some of the vertical skips on the page, to add some shrink to
-^|\parskip| (\xref\parskip) if it was nonzero, or, as a last resort,
-to decrease |\baselineskip| \ctsref{\baselineskip} ever so slightly.
-^^|\baselineskip//and preserving end of page|
-
-\section Leaving space at the top of a page
-
-\null
-^^{vertical space//reserving at top of page}
-You can usually use the |\vskip| command \ctsref\vskip{}
-to leave vertical space on a page.
-That doesn't work at the top of a page, however, since
-\TeX\ discards glue, kerns, and penalties that occur just after a page break.
-^^{page breaks//glue at}
-Use the ^|\topglue| command \ctsref\topglue\ instead; it produces glue that
-never disappears.
-\eix^^{page breaks//bad}
-
-
-
-\section Correcting bad line breaks
-
-\null
-\bix^^{line breaks//bad}
-If \TeX\ breaks a line in the middle of material that you wanted to keep
-on a single line, there are several ways to correct the situation:
-\ulist\compact
-\li You can force a break in a nearby place with the
-|\break| command (\xref{hbreak}).
-^^|\break//correcting line breaks with|
-\li You can insert a tie (|~|) between two words
-(see \xref{@not}) to prevent a break between them.\ttidxref{~}
-\li You can tell \TeX\ about hyphenations that it wouldn't
-otherwise consider by
-inserting one or more discretionary hyphens in various words
-(see |\-|, \xref{\@minus}).
-\ctsidxref{-//in line breaking}
-^^{discretionary hyphens//bad line breaks, correcting with}
-\li You can enclose several words in an hbox using the ^|\hbox|
-command \ctsref{\hbox}.
-\endulist
-
-The disadvantage of all of these methods, except for inserting discretionary
-hyphens, is that they may make it impossible for \TeX\ to find a
-satisfactory set of line breaks. Should that happen, \TeX\ will
-set one or more underfull or overfull boxes and complain about it.
-^^{underfull boxes} ^^{overfull boxes}
-The hbox method has a further disadvantage: because \TeX\ sets an hbox
-as a single unit without considering its context, the interword space
-within the hbox may not be consistent with the interword space in the rest of
-the line.
-\eix^^{line breaks//bad}
-
-
-\section Correcting overfull or underfull boxes
-
-\null
-\bix^^{overfull boxes}
-\bix^^{underfull boxes}
-\bix^^{boxes//overfull}
-\bix^^{boxes//underfull}
-If \TeX\ complains about an overfull box, it means you've put
-more material into a box than that box has room for.
-Similarly, if \TeX\ complains about an underfull box, it means you
-haven't put enough material into the box. You can encounter
-these complaints under many different circumstances, so let's look at the more
-common ones:
-
-\ulist
-\li An overfull hbox that's a line of a paragraph indicates that the line was
-too long and that
-\TeX\ couldn't rearrange the paragraph
-to make the line shorter. If you set ^|\emergencystretch|
-\ctsref{\emergencystretch} to some nonzero
-value, that may cure the problem by allowing \TeX\ to put more space between
-words. Another solution is to set |\tolerance| \ctsref{\tolerance}
-to $10000$, but that's likely
-to yield lines with far too much space in them. Yet another solution is to
-insert a discretionary hyphen
-^^{discretionary hyphens//overfull boxes, correcting with}
-in a critical word that \TeX\ didn't know how to hyphenate.
-If all else fails, you might try rewording the paragraph.
-A solution that is rarely satisfactory is increasing ^|\hfuzz| \ctsref\hfuzz,
-allowing \TeX\ to construct lines that project beyond the right margin.
-
-\li An underfull hbox that's a line of a paragraph indicates that the line was
-too short and that \TeX\ couldn't rearrange the paragraph to
-make the line longer.
-\TeX\ will set such a line by stretching its interword spaces
-beyond their normal
-limits. Two of the cures for overfull lines mentioned above
-also apply to underfull lines:
-inserting discretionary hyphens and rewording the paragraph.
-Underfull lines
-won't trouble you if you're using ragged right formatting, which you can get
-with the ^|\raggedright| command \ctsref\raggedright.
-
-\li The complaint:
-\csdisplay
-Underfull \vbox (badness 10000) has occurred
- while \output is active
-|
-indicates that \TeX\ didn't have enough material to fill up a page. The
-likely cause is that you've been using vboxes to keep material together
-and \TeX\ has encountered a vbox near the bottom of a page that wouldn't fit on
-that page.
-It has put the vbox on the next page, but in doing so has left too much
-empty space in the current page.
-In this case you'll either have to insert some more space
-elsewhere on the current page or break up the vbox into smaller parts.
-
-Another possible cause of this complaint is having a long paragraph
-that occupies an entire page without a break.
-Since \TeX\ won't ordinarily vary the spacing between lines,
-it may be unable to fill a gap at the bottom of the page
-amounting to a fraction of the line spacing.
-This can happen if |\vsize| \ctsref{\vsize}, the page length,
-is not an even multiple of |\baselineskip| \ctsref{\baselineskip},
-the space between consecutive
-baselines.
-
-Yet another cause of this complaint,
-similar to the previous one, is setting ^|\parskip| \ctsref{\parskip},
-the interparagraph glue, to a value that doesn't have any
-stretch or shrink. You can fix these last two problems by increasing ^|\vfuzz|
-\ctsref\vfuzz.
-
-\li The complaint
-\csdisplay
-Overfull \vbox (296.30745pt too high) has occurred
- while \output is active
-|
-indicates that you constructed a vbox that was longer than the page. You'll
-just have to make it shorter.
-
-\li
-\bix^^|\hbox//overfull box from|
-\bix^^|\vbox//overfull box from|
-The only cures for an overfull hbox or vbox that you've constructed
-with the |\hbox| or |\vbox| commands
-(\pp\xrefn\hbox, \xrefn\vbox)
-are to take something out of the box, to insert some negative glue
-with ^|\hss| or ^|\vss| (\xref\hss), or to increase the size
-of the box.
-
-\li If you encounter an underfull hbox or vbox that you've constructed
-with |\hbox| or |\vbox|,
-you're usually best off to fill out the box with ^|\hfil|
-or ^|\vfil| (\xref\hfil).
-\eix^^|\hbox//overfull box from|
-\eix^^|\vbox//overfull box from|
-
-\endulist
-\eix^^{boxes//overfull}
-\eix^^{boxes//underfull}
-\eix^^{overfull boxes}
-\eix^^{underfull boxes}
-
-
-\section Recovering lost interword spaces
-
-\null
-^^{space//lost}
-^^{words run together}
-If you find that \TeX\ has run two words together, the likely cause is a
-control sequence that's absorbed the spaces after it.
-Put a ^{control space} (|\!visiblespace|) after the control
-sequence.
-
-
-\section Avoiding unwanted interword spaces
-
-\null
-\bix^^{space//unwanted}\xrdef{unwantedspace}
-If you get a space in your document where you don't want and don't
-expect one, the most likely cause, in our experience,
-is an end of line or a space following a brace.
-^^{braces//space after}
-(If you're doing fancy things with category codes,
-^^{category codes//cause of unwanted spaces}
-you've introduced lots of other likely causes.)
-\TeX\ ordinarily translates an end-of-line into a space,
-and it considers a space after a right or left brace to be significant.
-
-If the unwanted space is caused by a space after a brace within
-an input line, then remove that space.
-If the unwanted space is caused by a brace at the end of an input line,
-put a `|%|' immediately after the brace.
-{\recat!ttidxref[%//to eliminate unwanted spaces]]
-The `|%|' starts a comment, but this comment needn't
-have any text.
-
-A macro definition can also
-introduce unwanted spaces if you haven't written it
-carefully. If you're getting unwanted spaces when you call a macro, check
-its definition to be sure that you don't have an unintended space after a
-brace and that you haven't ended a line of the definition immediately
-after a brace.
-People often end lines of macro definitions after braces in order to make
-the definitions more readable.
-To be safe, put a `|%|' after any brace that ends a line of a macro
-definition.
-It may not be needed, but it won't do any harm.\footnote{
-Admittedly there are rare cases where you really do want an end of line
-after a brace.}
-
-When you're having trouble locating the source of an unwanted space,
-try setting |\tracingcommands| \ctsref{\tracingcommands} to $2$.
-You'll get a |{blank space}| command in the log file for each space
-that \TeX\ sees.
-
-It helps to know \TeX's rules for spaces:
-
-\olist
-\li Spaces are ignored at the beginnings of input lines.
-\li Spaces at the ends of input lines are ignored under \emph{all}
-circumstances, although the end of line itself is treated like a space.
-(A completely blank line, however, generates a |\par| token.)
-\li Multiple spaces are treated like a single space, but
-only if they appear together in your input.
-Thus a space following the arguments of a macro call is not combined
-with a final space produced by the macro call. Instead, you get two spaces.
-\li Spaces are ignored after control words.
-\li Spaces are in effect ignored after numbers, dimensions,
-and the `|plus|' and `|minus|' in glue specifications.%
-\footnote{Actually, \TeX\ ignores only a
-single space in these places.
-Since multiple spaces ordinarily reduce to a single space, however, the
-effect is that of ignoring any number of spaces.}
-\endolist
-\noindent If you've changed the category code of the space or the end-of-line
-character, all bets are off.
-\eix^^{space//unwanted}
-
-
-\section Avoiding excess space around a display
-
-\null
-^^{math display}
-If you're getting too much space above a math display, it may be because
-you've left a blank line in your input above the display.
-The blank line starts a new paragraph and puts \TeX\ into
-vertical mode. When
-\TeX\ sees a `|$|' in vertical mode, it switches back to horizontal mode
-and inserts the interparagraph glue (|\parskip|) followed by
-the interline glue (|\baselineskip|).
-Then, when it starts the display itself,
-it inserts \emph{more} glue (either ^|\abovedisplayskip|
-or ^|\abovedisplayshortskip|, depending on the length of the preceding
-line).
-This last glue is the only glue that you want.
-To avoid getting the interparagraph glue as well, don't leave a blank line above a
-math display or otherwise
-end a paragraph (with |\par|, say) just before a math display.
-
-Similarly,
-if you're getting too much space below a math display, it may be because
-you've left a blank line in your input below the display.
-Just remove it.
-
-
-\section Avoiding excess space after a paragraph
-
-If you get too much vertical space after a paragraph that was produced by a
-macro, you may be getting the interparagraph glue produced by the macro,
-an empty paragraph, and then more interparagraph glue.
-You can get rid of the second paragraph skip by inserting:
-\csdisplay
-\vskip -\parskip
-\vskip -\baselineskip
-|
-just after the macro call.
-If you always get this problem with a certain macro, you can put these
-lines at the end of the macro definition instead.
-You may also be able to cure the problem by never leaving a blank line
-after the macro call---if you want a blank line just to make your input
-more readable, start it with a `|%|'.
-
-
-\section Changing the paragraph shape
-
-\null
-\bix^^{paragraphs//shaping}
-Several \TeX\ parameters---^|\hangindent|, ^|\leftskip|, etc.---%
-affect the way that \TeX\ shapes paragraphs and breaks them into lines.
-^^{line breaking}
-These parameters are used indirectly in \plainTeX{} commands such as
-^|\narrower| and ^|\hang|; you can also assign to them directly.
-If you've used one of these commands (or changed one of these parameters),
-but the command or parameter change
-does not seem to be having any effect on a paragraph,
-the problem may be that you've ended a group before you've ended the
-paragraph. For example:
-\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.}
-|
-This paragraph won't be set narrower because the right brace at the end
-terminates the |\narrower| group before \TeX\ has had a chance to
-break the paragraph into lines. Instead, put a |\par| before the
-right brace; then you'll get the effect you want.
-^^|\par//when changing paragraph shape|
-\eix^^{paragraphs//shaping}
-
-
-\section Putting paragraphs into a box
-
-Suppose you have a few paragraphs of text that you want to put in a
-particular place on the page. The obvious way to do it is to enclose
-the paragraphs in an hbox of an appropriate size, and then place the hbox
-where you want it to be. Alas, the obvious way doesn't work because
-\TeX\ won't do line breaking in restricted horizontal mode.
-^^{restricted mode//horizontal}
-If you try it,
-you'll get a misleading error message that suggests you're
-missing the end of a group.
-The way around this restriction is to write:
-\csdisplay
-\vbox{\hsize = !<dimen> !dots !<paragraphs> !dots}
-|
-where \<dimen> is the line length that you want for the paragraphs.
-This is what you need to do, in particular, when you want to enclose some
-paragraphs in a box (a box enclosed in ruled lines, not a \TeX\ box).
-
-\section Drawing lines
-
-\null
-\bix^^{rules}
-You can use the ^|\hrule| and ^|\vrule| commands (\xref\hrule)
-to draw lines, i.e., rules. You'll need to
-know (a)~where you can use each command and
-(b)~how \TeX\ determines the lengths of rules when
-you haven't given the lengths explicitly.
-\ulist
-\li You can only use |\hrule| when \TeX\ is in a vertical mode and |\vrule|
-when \TeX\ is in a horizontal mode.
-This requirement means that
-you can't put a horizontal rule into an hbox or a vertical rule
-into a vbox.
-You can, however, construct a horizontal rule that looks vertical by
-specifying all three dimensions and making it tall and skinny.
-Similarly, you can construct a vertical rule that looks horizontal
-by making it short and fat.
-
-\li A horizontal rule inside a vbox
-has the same width as does the vbox if you haven't
-given the width of the rule explicitly.
-Vertical rules
-inside hboxes behave analogously.
-If your rules are coming out too long or too short,
-check the dimensions of the enclosing box.
-\endulist
-
-As an example, suppose we want to produce:
-\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}}
-The following input will do it:
-\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}
-|
-We need to put the text into a vbox in order to get \TeX\ to process it
-as a paragraph.
-The four levels of boxing are really
-necessary---if you doubt it, try to run this example with fewer levels.
-\eix^^{rules}
-
-
-\section Creating multiline headers or footers
-
-\null
-\xrdef{bighead}
-\bix^^{headers//multiple-line}
-\bix^^{footers//multiple-line}
-You can use
-the ^|\headline| and ^|\footline| commands
-(\xref\footline) to produce headers and footers, but they don't work properly
-for headers and footers having more than one line. However, you can get
-multiline headers and footers by redefining some of the subsidiary
-macros in \TeX's output routine.
-
-For a multiline header, you need to do three things:
-\olist\compact
-\li Redefine the ^|\makeheadline| macro that's called from \TeX's
-output routine.
-\li Increase ^|\voffset| by the amount of vertical space consumed by the
-extra lines.
-\li Decrease ^|\vsize| by the same amount.
-\endolist
-\noindent The following example shows how you might do this:
-\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}
-|
-You can usually follow the pattern of this definition quite closely, just
-substituting your own header lines and choosing an appropriate multiple
-of |\baselineskip| (one less than the number of lines in the header).
-
-For a multiline footer, the method is similar:
-\olist
-\li Redefine the ^|\makefootline| macro that's called from \TeX's
-output routine.
-\li Decrease ^|\vsize| by the amount of vertical space consumed by the
-extra lines.
-\endolist
-\noindent The following example shows how you might do this:
-\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}}
-|
-Again, you can usually follow the pattern of this definition quite closely.
-The value of |\lineskip| determines the amount of space between the
-baseline of the last line
-of the main text on the page and the baseline of the first line of the footer.
-\eix^^{headers//multiple-line}
-\eix^^{footers//multiple-line}
-
-
-\section Finding mismatched braces
-
-\bix^^{braces//mismatched}
-\xrdef{mismatched}
-Most times when your \TeX\ input suffers from mismatched braces, you'll
-get a diagnostic from \TeX\ fairly near the place where you actually
-made the mistake.
-But one of the most frustrating errors you can get from a \TeX\ run,
-just before \TeX\ quits, is
-the following:
-\csdisplay
-(\end occurred inside a group at level 1)
-|
-This indicates that there is an extra left brace
-or a missing right brace somewhere
-in your document, but it gives you no hint at all
-about where the problem might be. So how can you find it?
-
-A debugging trick we've found useful
-is to insert the following line or its equivalent
-at five or six places equally spaced within the document (and not within
-a known group):
-\csdisplay
-}% a fake ending
-|
-Let's assume the problem is an extra left brace.
-If the extra left brace
-is, say, between the third and fourth fake ending,
-you'll get error messages from the first three fake endings but not from
-the fourth one. The reason is that \TeX\ will ignore the first three
-fake endings after complaining about them,
-but the fourth fake ending will match
-the extra left brace.
-Thus you know that the extra left brace
-is somewhere between the third and fourth
-fake ending.
-If the region of the error
-is still too large for you to find it,
-just remove the original set of fake endings and
-repeat the process within that region.
-If the problem is a missing right brace rather than an extra left brace,
-you should be able to track it down once you've found its mate.
-
-This method doesn't work under all circumstances. In particular, it doesn't
-work if your document consists of several really large groups. But often
-you can find some variation on this method that will lead you to that
-elusive brace.
-
-If all else fails, try shortening your input by removing
-the last half of the file
-(after stashing away the original version first!) or inserting a
-|\bye| command in the middle.
-If the error persists, you know it's in the first half; if it goes away,
-you know it's in the second half.
-By repeating this process you'll eventually find the error.
-\eix^^{braces//mismatched}
-
-
-\section Setting dimensions
-
-\null
-\bix^^{\<dimen>}
-The simplest way to set a dimension is to specify it directly, e.g.:
-\csdisplay
-\hsize = 6in
-|
-You can also specify a dimension in terms of other dimensions or as a mixture
-of different units, but it's a little more work. There are two ways
-to construct a dimension as such a combination:
-\olist\compact
-\li You can add a dimension to a dimension parameter or to a dimension
-register.
-For example:
-\csdisplay
-\hsize = 6in \advance\hsize by 3pc % 6in + 3pc
-|
-\li You can indicate a dimension as a multiple of a dimension
-or glue parameter or register.
-In this case, \TeX\ converts glue to a dimension by throwing away
-the stretch and shrink. For example:
-\csdisplay
-\parindent = .15\hsize
-\advance\vsize by -2\parskip
-|
-\endolist
-\eix^^{\<dimen>}
-
-
-\section Creating composite fonts
-
-\null
-\bix^^{fonts//composite}
-It's sometimes useful to create a ``composite font'',
-named by a control sequence $\cal F$, in which all the characters
-are taken from a font $f_1$ except for a few that are
-borrowed from another font $f_2$.
-You can then set text in the composite font by using $\cal F$ just as
-you'd use any other font identifier.
-
-You can create such a composite font by defining $\cal F$ as a macro.
-In the definition of $\cal F$, you first select font $f_1$ and then
-define control sequences that produce the borrowed characters,
-set in $f_2$.
-For example, suppose that you want to
-create a composite font |\britrm| which has all the characters of |cmr10|
-except for the dollar sign, for which you want to borrow
-the pound sterling symbol
-from font |cmti10|.
-The pound sterling symbol in |cmti10| happens to be in the same font position
-as the dollar sign in |cmr10|.
-Here's how to do it:
-\csdisplay
-\def\britrm{%
- \tenrm % \tenrm names the cmr10 font
- \def\${{\tenit\char `\$}}% \tenit names the cmti10 font.
-}
-|
-Now whenever you start the font named |\britrm|,
-|\$| will produce a pound sterling symbol.
-
-You can also get the same effect by changing the category codes
-of the characters in question to make those characters active and then
-providing a definition for the character. For example:
-\csdisplay
-\catcode `* = \active
-\def*{{\tentt \char `\*}}
-|
-In this case the asterisk will be taken from the |\tentt| font.
-If you then type the input line:
-\csdisplay
-Debbie was the * of the show.
-|
-it will be set as:
-{\font\tentt=cmtt10%
-\catcode `* = \active
-\def*{{\tentt \char `\*}}%
-\display{Debbie was the * of the show.}}
-\noindent
-
-\eix^^{fonts//composite}
-
-
-\section Reproducing text verbatim
-
-\null
-^^{verbatim text}\xrdef{verbatim}
-Verbatim text is text that is reproduced in a typeset
-document just as it appeared in the input.
-The most common use of verbatim text is in typesetting
-computer input,
-including both computer programs and input to \TeX\ itself.
-^^{computer programs, typesetting}
-Computer input is not easy to produce verbatim for two reasons:
-\olist\compact
-\li Some characters (control symbols, escape characters, braces,
-etc.) have
-special meanings to \TeX.
-\li Ends of line and multiple spaces are translated to single spaces.
-\endolist
-\noindent
-In order to produce verbatim text, you have to cancel the special meanings
-and disable the translation. This is best done with macros.
-
-To cancel the special meanings, you need to change the category codes
-of those characters that have special meanings.
-^^{category codes//for verbatim text}
-The following macro illustrates how you might do it:
-\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
-}
-|
-But beware! Once you've changed the category codes in this way, you've lost
-the ability to use control sequences since there's no longer an escape
-character. You need some way of getting back to the normal mode of
-operation. We'll explain how to do that in a moment, after considering
-the other problem: disabling the translation of spaces and ends of line.
-
-\PlainTeX\ has two commands that together nearly solve the problem:
-^|\obeyspaces| \ctsref{\obeyspaces} and ^|\obeylines| \ctsref{\obeylines}.
-The two things that they don't do are to preserve spaces at the start of
-a line
-and to preserve blank lines.
-For that you need stronger measures---which are provided by
-the ^|\obeywhitespace| macro that we are about to define.
-
-\TeX\ normally insists on collecting lines into paragraphs. One way to
-convince it to take line boundaries literally is to turn individual lines
-into paragraphs.\footnote{%
-Another way is to turn the end of line character into a |\break|
-command and provide infinite glue at the end of each line.
-^^|\break//end of line as|
-}
-You can do this by redefining the end of line character to produce
-the |\par| control sequence. The following three macro definitions
-show how:
-
-^^{whitespace, preserving}
-\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}
-
-|
-A subtle point about the definition of |\obeywhitespace| is that
-|^^M| must be made active both
-when |\obeywhitespace| is being \emph{defined} and when
-it is being \emph{used}.
-
-In order to be able to get back to normal operation after verbatim text,
-you need to choose a character that
-appears rarely if at all in the verbatim text. This character serves as
-a temporary escape character.
-The vertical bar (|!||) is sometimes a good choice.
-With this choice, the macros:
-\csdisplay
-\def\verbatim{\par\begingroup\deactivate\obeywhitespace
- \catcode `\!| = 0 % Make !| the new escape character.
-}
-
-\def\endverbatim{\endgroup\endpar}
-
-\def\!|{!|}
-|
-will do the trick. Within the verbatim text, you can use a double
-vertical bar (|!|!||) to denote a single one, and you end the verbatim text
-with |!|endverbatim|.
-
-There are many variations on this technique:
-\ulist
-\li If a programming language has keywords, you can turn
-each keyword into a command that typesets
-that keyword in boldface. Each keyword in the input should then be
-preceded by the temporary escape character.
-\li If you have a character (again, let's assume it's the vertical bar)
-that
-\emph{never} appears in the verbatim text, you can make it active and
-cause it to end the verbatim text. The macro definitions then go like
-this:
-\csdisplay
-{\catcode `\!| = \active
-\gdef\verbatim{%
- \par\begingroup\deactivate\obeywhitespace
- \catcode `!| = \active
- \def !|{\endgroup\par}%
-}}
-|
-\endulist
-
-The ideas presented here provide only a simple approach to typesetting
-computer programs.
-Verbatim reproduction is often not as revealing or easy to read as a version
-that uses typographical conventions to reflect the syntax
-and even the semantics of the program.
-If you'd like to pursue this subject further, we recommend the following book:
-
-\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 Using outer macros
-
-\null
-^^{forbidden control sequence}^^{incomplete conditional}
-If \TeX\ complains about a ``forbidden control sequence'',
-you've probably used an outer macro in a non-outer context
-\seeconcept{outer}.
-^^{macros//outer}
-An outer macro is one whose definition is
-preceded by ^|\outer|.
-An outer macro can't be used in a macro argument, in a macro definition,
-in the preamble of an alignment, or in conditional
-text, i.e., text that will be expanded only when a conditional test
-has a particular outcome.
-^^{alignments//outer control sequence in}
-Certain macros have been defined as outer because they aren't
-intended to be used in these contexts and such a use is probably an error.
-The only ways around this problem are to redefine the
-macro or to move its use to an acceptable context.
-
-Using an outer macro in an improper context can also cause
-\TeX\ to complain about a runaway situation or an incomplete conditional.
-The problem can be hard to diagnose because the error message
-gives no hint as to what it is.
-If you get such an error message, look around for a call on an outer macro.
-You may not always know that a particular macro is outer, but the
-command `^|\show||\a|' \ctsref{\show}
-will show you the definition of |\a| and also tell you
-if |\a| is outer.
-
-
-\section Changing category codes
-
-\null
-\bix^^{category codes//changing}
-Sometimes it's useful to make local changes to the category code of a
-character in some part of your document. For instance, you might be
-typesetting a computer program
-^^{computer programs, typesetting}
-or something else that uses normally active
-characters for special purposes. You'd then want to deactivate those
-characters so that \TeX\ will treat them as being like any other character.
-
-If you make such a local change to the category code of a character,
-you may sometimes be dismayed to find that
-\TeX\ seems to be paying no attention whatsoever to your change.
-Two aspects of \TeX's behavior are likely causes:
-\olist
-\li \TeX\ determines the category code of an input character
-^^{input characters}
-and attaches it to the character when it reads in the character.
-Let's say you read in a tilde (|~|) and later
-change the category code of tildes,
-but make the change
-before \TeX's stomach has actually processed that \emph{particular\/}
-tilde \seeconcept{\anatomy}.
-\TeX\ will still respond to that
-tilde using the category code as it was before the change.
-This difficulty typically arises
-when the tilde is part of an argument to a macro
-and the macro itself changes the category code of tilde.
-
-\li When \TeX\ is matching a call of a macro to the definition of that macro,
-it matches not just the characters in the parameter pattern but also their
-category codes.
-^^{macros//arguments of}
-^^{macros//parameters of}
-If the category code of a pattern character isn't equal to
-the category code of the same character in the call, \TeX\ won't consider
-the characters as matching.
-This effect can produce mysterious results because it
-\emph{looks} as though the pattern should match.
-For example, if you've defined a macro:
-\csdisplay
-\def\eurodate#1/#2/#3{#2.#1.#3}
-|
-then the slash character must have the same category code when you
-call |\eurodate| as it had when you defined |\eurodate|.
-\endolist
-If the problem arises because the troublesome character is an argument to
-a macro, then
-the usual cure is to redefine the macro as a pair
-of macros |\mstart| and |\mfinish|, where
-|\mstart| is to be called before the argument text
-and |\mfinish| is to be called after it.
-|\mstart| then sets up the category codes and |\mfinish| undoes the change,
-perhaps just by ending a group.
-\eix^^{category codes//changing}
-
-
-\section Making macro files more readable
-
-\null
-\bix^^{macros//making readable}
-You can make a file of macros more readable by
-setting the category codes of space to $9$ (ignored
-character) and ^|\endlinechar| \ctsref{\endlinechar} to $-1$
-at the beginning of the file.
-Then you can use spaces and ends of line freely in the
-macro definitions without getting
-unwanted spaces when you call the macros.
-The ignored characters won't generate spaces, but they'll still
-act as terminators for control sequences.
-If you really do want a space, you can still get it with the ^|\space|
-command \ctsref\space.
-
-Of course you'll need to restore the category codes of space and end of line
-to their normal values ($10$ and $5$, respectively) at the end of the file.
-You can do this either by enclosing the entire file in a group or by
-restoring the values explicitly. If you choose to enclose the file in a group,
-then you should also set ^|\globaldefs| to $1$ so that
-all the macro definitions will be global and thus visible outside of the group.
-
-A miniature example of a macro file of this form is:
-
-\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
-Without the changed category codes,
-these macros would have to be written much more compactly, using fewer
-spaces and more `|%|'s at the ends of lines.
-\eix^^{macros//making readable}
-
-\endchapter\byebye
diff --git a/Master/texmf-doc/doc/english/impatient/usebook.tex b/Master/texmf-doc/doc/english/impatient/usebook.tex
deleted file mode 100644
index e9d01c6841f..00000000000
--- a/Master/texmf-doc/doc/english/impatient/usebook.tex
+++ /dev/null
@@ -1,243 +0,0 @@
-% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
-% See file fdl.tex for copying conditions.
-
-\input macros
-\chapter{Using this book}
-
-\chapterdef{usebook}
-
-This book is a do-it-yourself guide and handbook for \TeX.
-Here in this section we tell you how to use the book to maximum advantage.
-
-We recommend that you first either read or skim in sequence Sections
-\chapternum{usebook} through \chapternum{examples},
-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
-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,
-you'll find that it \emph{is} possible to proceed sequentially if you're
-willing to take a lot of detours at first.
-
-In \chapterref{usingtex}, ``Using \TeX'',
-we explain how to produce a \TeX\ document from a
-\TeX{} input file.
-We also describe the conventions for preparing that input file,
-explain a little about how \TeX{} works, and tell you about additional
-resources that are available.
-Reading this section will help you understand
-the examples in the next section.
-
-\chapterref{examples}, ``Examples'',
-contains a sequence of
-examples that illustrate the use of \TeX.
-Each example consists of a page of output
-together with the input that we used to create it.
-These examples will orient you and help you
-locate the more detailed material that you'll need as you go.
-By seeing which commands are used in the input, you'll know
-where to look for more detailed information on how to achieve
-the effects shown in the output.
-The
-examples can also serve as models for simple documents, although we must
-caution you that
-because we've tried to pack a variety of \TeX\ commands into a small
-number of pages,
-the examples are not necessarily illustrations of good or complete
-document~design.
-
-As you read the explanation of a command, you may encounter
-some unfamiliar technical terms.
-In \chapterref{concepts}, ``Concepts'',
-we define and explain these terms.
-We also discuss other topics that aren't covered
-elsewhere in the book.
-The inside back cover of the book contains a list of all the
-concepts and the pages where they are described.
-We suggest that you make a copy of this list and keep it nearby
-so that you'll be able to identify and look up an unfamiliar
-concept immediately.
-
-\TeX's commands are its primary vocabulary,
-and the largest part of this book is
-devoted to explaining them. In Sections~\chapternum{paras}
-through~\chapternum{general} we describe the commands.
-You'll find general information about the command descriptions
-on \xrefpg{cmddesc}.
-The command descriptions are arranged
-functionally, rather like a thesaurus, so if you know what you want to
-do but you don't know which command does it for you, you can use the
-table of contents to guide you to the right group of commands.
-Commands that we think are both particularly useful and easy to understand
-are indicated with a pointing~hand~(\hand).
-
-\chapterref{capsule}, ``Capsule summary of commands'', is a
-specialized index that complements the more complete descriptions
-in Sections~\chapternum{paras}--\chapternum{general}.
-It lists \TeX's commands
-alphabetically, with a brief explanation of each command
-and a reference to the page
-where it is described more completely. The capsule summary
-will help you when you just want a quick reminder of what a command
-does.
-
-\TeX\ is a complex program that occasionally works its will in
-mysterious ways.
-In \chapterref{tips}, ``Tips and techniques'',
-we provide advice on solving a variety of specific
-problems that you may encounter from time to time.
-And if you're stumped by
-\TeX's error messages, you'll find succor in \chapterref{errors},
-``Making sense of error messages''.
-
-The gray tabs on the side of the book will help you locate parts of the
-book quickly. They divide the book into the following major parts:
-\olist
-\li general explanations and examples
-\li concepts
-\li descriptions of commands (five shorter tabs)
-\li advice, error messages, and the |eplain.tex| macros
-\li capsule summary of commands
-\li index
-\endolist
-
-In many places we have provided page references to
-^{\texbook} (see \xrefpg{resources} for a citation).
-These references apply to the seventeenth edition of \texbook.
-For other editions, some references may be off by a page or two.
-
-
-\section Syntactic conventions
-
-In any book about preparing input for a computer,
-it's necessary to indicate clearly the literal characters that should be typed
-and to distinguish those characters from the explanatory text.
-We use the Computer Modern typewriter font for {\tt literal input
-like this}, and also for the names of \TeX{} commands.
-When there's any possibility of confusion, we enclose \TeX\
-input in single quotation marks, `{\tt like this}'.
-However, we occasionally use parentheses when we're indicating single
-characters such as (|`|) (you can see why).
-
-For the sake of your eyes we usually just put spaces
-where you should put spaces. In some places where
-we need to emphasize the space, however,
-we use a `\visiblespace' character
-{\catcode `\ =\other\pix^^| |}%
-to indicate it.
-Naturally enough, this character is called a \emph{visible space}.
-\pix^^{spaces//visible}
-
-
-\section Descriptions of the commands
-
-\xrdef{cmddesc}
-Sections~\chapternum{paras}--\chapternum{general} contain
-a description of what nearly every \TeX\ command does. ^^{commands}
-Both the primitive commands ^^{primitive//command}
-and those of ^{\plainTeX} are covered.
-The primitive commands are those built into the \TeX\ computer program, while
-the \plainTeX{} commands are defined in a standard file of
-auxiliary definitions (see \xref\plainTeX).
-The only commands we've omitted are those that are used purely locally
-in the definition of \plainTeX\ (\knuth{Appendix~B}).
-The commands are organized as follows:
-\ulist\compact
-\li ``Commands for composing paragraphs'', \chapterref{paras},
-deal with characters, words, lines, and entire paragraphs.
-\li ``Commands for composing pages'', \chapterref{pages},
-deal with pages, their components, and the output routine.
-\li ``Commands for horizontal and vertical modes'', \chapterref{hvmodes},
-have corresponding or identical
-forms for both horizontal modes (paragraphs and hboxes) and vertical
-modes (pages and vboxes).
-These commands provide boxes, spaces, rules, leaders,
-and alignments.
-\li ``Commands for composing math formulas'', \chapterref{math},
-provide capabilities for constructing math formulas.
-\li ``Commands for general operations'', \chapterref{general},
-provide
-\TeX's programming features and
-everything else that doesn't fit into any of the other sections.
-\endulist
-You should think of these categories as being suggestive rather than
-rigorous, because the commands don't really fit neatly into these
-(or any other) categories.
-
-Within each section, the descriptions of the commands are organized
-by function. When several commands are closely related, they are described as
-a group; otherwise, each command has its own explanation.
-The description of each command
-includes one or more examples and the output
-produced by each example when examples are appropriate (for
-some commands they aren't).
-When you are looking at a subsection containing functionally related
-commands, be sure to check the end of a subsection for a ``see also''
-item that refers you to related commands that are described elsewhere.
-
-Some commands are closely related to certain concepts.
-For instance, the |\halign| and |\valign| commands are related to
-``alignment'', the |\def|
-command is related to ``macro'',
-and the |\hbox| and |\vbox| commands are related to ``box''.
-In these cases we've usually given a bare-bones des\-crip\-tion of the
-commands themselves and explained the underlying ideas
-in the concept.
-
-The examples associated with the commands have been typeset with
-^|\parindent|, the paragraph indentation, set to zero so that
-paragraphs are normally unindented.
-This convention makes the examples easier to read.
-In those examples where the paragraph indentation is essential,
-we've set it explicitly to a nonzero value.
-
-The pointing hand in front of a command or a group of commands indicates
-that we judged this command or group of commands to be particularly useful
-and easy to understand.
-
-Many commands expect ^{arguments} of one kind or another
-(\xref{arg1}). The arguments of
-a command give \TeX\ additional information that it needs in order to
-carry out the command. Each argument is indicated by an italicized
-term in angle brackets that indicates what kind of argument it~is:
-
-\display{%
-\halign{\<#>\quad&#\hfil\cr
-argument&a single token or some text enclosed in braces\cr
-charcode&a character code, i.e., an integer between $0$ and $255$\cr
-dimen&a dimension, i.e., a length\cr
-glue&glue (with optional stretch and shrink)\cr
-number&an optionally signed integer (whole number)\cr
-register&a register number between $0$ and $255$\cr
-}}
-^^{\<dimen>}
-^^{\<argument>}
-^^{\<charcode>}
-^^{\<glue>}
-^^{\<number>}
-^^{\<register>}
-
-\noindent
-All of these terms are explained in more detail in \chapterref{concepts}.
-In addition, we sometimes use terms such as \<token list> that are either
-self-explanatory or explained in the description of the command.
-Some commands have special formats that require either braces or
-particular words.
-These are set in the same bold font that we use
-for the command headings.
-
-Some commands are parameters (\xref{introparms}) or table entries.
-^^{parameters//as commands}
-This is indicated in the command's listing.
-You can either use a parameter as an argument or assign a value to it.
-The same holds for table entries.
-We use the term ``parameter'' to refer to entities such as |\pageno|
-that are actually registers but behave just like parameters.
-^^{registers//parameters as}
-
-
-\endchapter
-\byebye
diff --git a/Master/texmf-doc/doc/english/impatient/usermacs.tex b/Master/texmf-doc/doc/english/impatient/usermacs.tex
deleted file mode 100644
index 71d8d64bc26..00000000000
--- a/Master/texmf-doc/doc/english/impatient/usermacs.tex
+++ /dev/null
@@ -1,1168 +0,0 @@
-% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
-% See file fdl.tex for copying conditions.
-
-\input macros
-\chapter{A compendium \linebreak of useful macros}
-
-\chapterdef{eplain}
-
-This section describes |eplain.tex|, a collection of macros and other
-definitions that extend plain \TeX.
-\bix^^|eplain.tex|
-The descriptions of the various macros explain their purposes,
-but usually do not explain how they
-work or provide explicit details on
-how to use them. That information is contained in the source files for
-|eplain.tex| and in the documentation that comes with it.
-See \headcit{Resources}{resources} for how to obtain |eplain.tex|.
-
-
-\section{Preliminaries}
-
-We start with some macros for changing category codes and convenient
-definitions for two of the commonly used ones.
-^^{category codes//useful definitions for}
-
-\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.
-|
-
-In order to define `|^^M|' as an active character, you need to encase
-the definition in a group and invoke some extra machinery.
-\ttidxref{^^M}
-The \pix^|\letreturn| macro lets you define `|^^M|' without that
-extra machinery (which you can see in the definition below).
-
-\csdisplay
-{\makeactive\^^M \long\gdef\letreturn#1{\let^^M = #1}}%
-|
-
-These macros consume one, two, or three arguments.
-
-\pix^^|\gobble|
-\pix^^|\gobbletwo|
-\pix^^|\gobblethree|
-\csdisplay
-\def\gobble#1{}\def\gobbletwo#1#2{}%
-\def\gobblethree#1#2#3{}%
-|
-
-Now we establish some conventions for reading the rest of the file.
-Within the file we allow ``private'' control sequences that contain
-`|@|' in their names.
-These control sequences aren't accessible outside of this file (unless
-you change the category code of `|@|' again).
-\xrdef{eplainconv}
-
-\csdisplay
-\catcode`@ = \letter % Allow control sequences with @.
-\let\@plainwlog = \wlog % Don't log register allocations.
-\let\wlog = \gobble
-\newlinechar = `^^J
-|
-
-The next two macros provide convenient forms of diagnostic output.
-\pix^|\loggingall| turns on all tracing, but causes the trace
-output to appear only in the log file and not at your terminal.
-\pix^|\tracingboxes| causes boxes to be displayed completely when
-they're traced. (\TeX\ normally shows only three levels of boxing
-and five items within each box.)
-
-
-\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}%
-|
-
-
-The default thickness of rules is $0.4$\pt.
-You can produce rules of any default thickness you choose by redefining
-|\vruledefaultwidth|, |\hruledefaultheight|, and |\hruledefaultdepth|
-and then using
-\pix^^|\ehrule|
-|\eh!-rule|
-and \pix^|\evrule|
-instead of |\hrule| and |\vrule|. (The `e' stands for
-``eplain''.)
-^^{rules//thickness of}
-If you give an explicit
-dimension (e.g., |\ehrule height 16pt|), \TeX\ will use it.
-
-\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}%
-|
-
-The |\%| convention for writing a `|%|' character doesn't work when you
-want to include that character in the token list of |\write|.
-^^|\write//writing \b\tt\%\e\ with|
-^^|%//writing out|
-You can use ^|\percentchar| to achieve this.
-We also redefine ^|^^L| to be nonouter so that you can use it in a
-macro definition or argument.
-
-\csdisplay
-{\catcode`\% = \other \gdef\percentchar{%}}%
- \def^^L{\par
-}%
-|
-
-\pix^|\tokstostring| converts its argument into a list of ^{character
-tokens}.
-It uses only expansions that are handled in \TeX's gullet.
-This property is necessary
-for it to work with |\edef|. It is used by the cross-referencing
-macros (\xref{xrefs}).
-
-In order to split the argument up at spaces, we have to use two
-subsidiary macros. |\@ttsA| finds the spaces, and |\@ttsB| handles a
-token sequence without any spaces. Each space is replaced by the
-expansion of \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| tests if its argument is empty.
-
-\csdisplay
-\def\ifempty#1{\@ifempty #1\@emptymarkA\@emptymarkB}%
-\def\@ifempty#1#2\@emptymarkB{\ifx #1\@emptymarkA}%
-\def\@emptymarkA{\@emptymarkA}%
-|
-
-The ^|\for| macro implements a \TeX\ version of the ^{for loop} in
-traditional programming languages. These macros come directly from
-\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| is useful for reproducing line breaks, blank lines,
-and spaces in your input. It combines the effects of |\obey!-lines| and
-|\obey!-spaces|,
-^^|\obeylines| ^^|\obeyspaces|
-and also causes spaces at the start of a line to
-be printed. Tab characters are not affected by this; they still produce
-normal glue.
-\xrdef{ewhitesp}
-^^{space characters}
-^^|\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| is a good way to print fractions in text when you don't
-want to use |\over| and
-``1/2'' just doesn't look right. This macro is the answer to
-\knuth{Exercise~11.6}.^^{fractions//slashed form}
-
-\csdisplay
-\def\frac#1/#2{\leavevmode
- \kern.1em \raise .5ex \hbox{\the\scriptfont0 #1}%
- \kern-.1em $/$%
- \kern-.15em \lower .25ex \hbox{\the\scriptfont0 #2}}%
-|
-
-The following macros produce logos that are useful in the \TeX\ world.
-The \AMSTeX\ logo is from \knuth{page~420}. The \LaTeX\ logo is
-slightly modified from the one in |latex.tex| (we use a different font
-for the `A'); similarly, the \BibTeX\ logo uses |\sevenrm| instead of a
-true caps-and-small-caps font. The |.mf| source file for the \MF\ logo
-is given in the \MF\ manual:
-\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}}%
-|
-
-The next two macros produce boxes. \pix^|\blackbox| produces a ``square
-bullet'', used in the list macros (\xref{listmacs}).
-\pix^|\makeblankbox| (from \knuth{page~311}) produces an unfilled
-rectangle, with the thickness of the border rules given by the
-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| produces the written-out form of a number. (If the
-number is greater than ten, the macro just reproduces the numerals
-of its 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| determines whether a file |\jobname.#1| is
-non\-empty and sets |\if!-fileexists| appropriately.
-^^{files//testing for existence of}
-The file name in the argument need not end in a space token since
-the macro provides the space token.
-
-\csdisplay
-\newif\iffileexists
-\def\testfileexistence#1{\begingroup
- \immediate\openin0 = \jobname.#1\space
- \ifeof 0\global\fileexistsfalse
- \else \global\fileexiststrue\fi
- \immediate\closein0
- \endgroup}%
-|
-
-
-\section Displays
-
-By default, \TeX\ centers displayed material (the material between
-|$$|'s). ^^{displays, formatting} \pix^|\leftdisplays| causes displays
-to be left-justified by default. You can return to centered displays
-with \pix^|\centereddisplays|.
-
-The macros here are more general than they need to be just for doing
-left-justified displays. For every display,
-\pix^|\ifeqno| will be true if an |\eqno| occurred in the display.
-\pix^|\ifleqno| will be true if an |\leqno| occurred. If either
-kind of equation number occurred, \pix^|\eqn| produces the text of the
-equation number. \pix^|\eq| always produces the text of the
-equation itself.
-
-These macros are based on the code on \knuth{page~376}.
-
-\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}%
-|
-
-You can format displays differently by defining your own macro,
-analogous to \pix^|\leftdisplays|.
-The macro definition must
-place a call on |\display!-setup| in |\every!-display| ^^|\everydisplay|
-so as to ensure
-that |\dis!-play!-setup| ^^|\displaysetup| is called at the start of
-every display. The macro definition must also include a definition of
-^|\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| must go to some pains to make sure that
-|\dis!-play!-lines|, ^^|\displaylines|
-^|\eqalignno|, and ^|\leqalignno| still work properly.
-|\eq| is typeset in math mode,
-and |\halign| is illegal in math mode.
-^^|\halign//illegal in math mode|
-We use ^|\vcenter| to change the context so that |\halign| becomes
-legal again. We also remove the |\hfil| commands at the left of the template
-to obtain the flush left formatting. Other than those changes, the macros
-are the same as in |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 Time of day
-
-When \TeX\ starts up, it sets the values of the
-^|\time|, ^|\day|, ^|\month|, and ^|\year| parameters.
-^^{time of day}^^{date}
-\pix^|\monthname|
-produces the name of the month, abbreviated to three letters.
-\pix^|\timestring| produces the current time, as in ``1:14\thinspace
-p.m.''. \pix^|\timestamp| produces the text of the complete date, as
-in ``23 Apr 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 Lists
-
-\null
-\xrdef{listmacs}
-\bix^^{itemized lists}
-\bix^^{enumerations}
-\pix^|\numberedlist| produces numbered lists; |\endnumberedlist| ends
-them.
-\pix^|\unorderedlist| is analogous.
-For either of these, items inside the lists begin
-with \pix^|\li| (``list item''). You can put \pix^|\listcompact|
-at the beginning of a list if
-you don't want any additional space between the items of that list.
-Lists can be nested arbitrarily.
-
-You can control the spacing between the items more generally by
-assigning values to the registers listed below. If the items in
-your lists tend to be long, you might want to make |\interitemskip|
-nonzero.
-The left indentation of each list item is given by |\par!-indent| plus
-|\list!-left!-indent|; the right indentation of each list item
-is given by |\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}%
-|
-
-Both numbered and unnumbered lists use the macros that follow.
-We don't change |\parindent|, since many existing macros, e.g.,
-|\footnote|, depend on |\parindent|.
-We must account for the
-possibility that items are more than one paragraph long. In this case, all
-paragraphs after the first will be indented.
-We use
-|\leftskip| and |\rightskip| to indent the list items.
-Indentation of displays is accounted for by changes to |\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
-You can change the way the item labels are typeset by
-redefining the |\numbered!-marker| macro.
-\pix^^|\numberedmarker|
-
-\csdisplay
-\newcount\numberedlistdepth \newcount\itemnumber
-\newcount\itemletter
-\def\numberedmarker{%
- \ifcase\numberedlistdepth
- (impossible)%
- \or \itemnumberout)%
- \or \itemletterout)%
- \else *%
- \fi}%
-|
-
-\noindent Here are the definitions of |\numberedlist| and
-|\unorderedlist|.
-Both definitions have the same 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^^{itemized lists}
-\eix^^{enumerations}
-
-
-\section Verbatim listing
-
-The \pix^|\listing| macro produces a verbatim listing of a specified
-file in the |\tt| font.
-It is based on the code on \knuth{page~380}.
-Tabs produce a fixed amount of space, and form
-feeds produce a page break. Other control characters produce whatever
-happens to be at that font position, which is generally not very useful.
-By redefining |\setup!-listing!-hook|,
-\pix^^|\setuplistinghook|
-you can take additional actions that are appropriate for your particular
-fonts and\slash or environment before the file is read in.
-
-\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 Tables of contents
-
-\null ^^{table of contents}
-The macro \pix^|\writetocentry| writes a macro call to the file
-|\jobname.toc|. The first argument of |\writetocentry|, e.g.,
-``chapter'', is used to compose the name of the called macro. The second
-argument is the text to appear in the table of contents entry.
-|\writetocentry| appends the page number to the macro call. For
-example:
-\csdisplay
-\writetocentry{chapter}{Introduction}
-|
-\noindent
-will produce the line:
-\csdisplay
-\tocchapterentry{Introduction}{2}
-|
-\noindent in the |.toc| file, indicating
-that `Introduction' started on page 2.
-
-You can use |\writenumberedtocentry| to provide a third parameter, such
-as a chapter number. For example:
-\csdisplay
-\writenumberedtocentry{chapter}{The second chapter}{2}
-|
-\noindent will write a line:
-\csdisplay
-\tocchapterentry{The second chapter}{2}{14}
-|
-\noindent
-You can also |\write| to |\tocfile| yourself.
-
-\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}%
-|
-
-To produce a table of contents, read the |.toc| file with
-\pix^|\readtocfile|. You should call |\read!-tocfile| before the first
-|\write!-toc!-entry|. When you're processing the table of contents
-without regenerating it, you should not rewrite
-the |.toc| file---if you do, its contents will be lost.
-The command
-|\rewrite!-tocfile!-false| will prevent the rewrite.
-
-\csdisplay
-\newif\ifrewritetocfile \rewritetocfiletrue
-\def\readtocfile{\testfileexistence{toc}%
- \iffileexists
- \input \jobname.toc
- \ifrewritetocfile \opentocfile \fi
- \fi}%
-|
-
-Here are some definitions of possible |\toc|\dots|entry| macros. These
-definitions are meant only as examples---running leaders across the line
-is usually not the best way to typeset a table of contents.
-
-\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 Cross-references
-
-\null ^^{cross-references}
-\xrdef{xrefs}
-The macros that follow provide symbolic
-cross-referencing, so that you can refer to something in another part of
-a document by name instead of by its actual page number.
-\pix^|\xrdef||{foo}| defines a label |foo| to be the current page
-number, and \pix^|\xrefn||{foo}| produces that page number, e.g., $77$.
-More often you'll want to say something like ``see p.\thinspace77'', so
-\pix^|\xref||{foo}| produces ``p.\thinspace 77''. If |foo| is not
-defined, a warning message will be given. |\xrefwarningfalse|
-suppresses the warning.
-
-These macros provide no protection against duplicate definitions. You can
-check for duplicate definitions by sorting the cross-reference file and
-checking, either mechanically or by eye, for adjacent definitions of
-the same symbol.
-
-\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}}%
-|
-
-This macro turns a label into a list of character tokens in the token
-register |\labeltoks|. A label can include blanks and control sequences in
-it as well as normal characters, but it can't include braces.
-
-\csdisplay
-\newtoks\@xrlabeltoks
-\def\xrlabel#1{\begingroup
- \escapechar = `\_ \edef\tts{\tokstostring{#1_}}%
- \global\@xrlabeltoks = \expandafter{\tts}%
- \endgroup}%
-|
-
-It takes two passes to get the cross-references right, since the
-definitions are written out to the auxiliary file |\jobname.aux|.
-\pix^|\readreffile| reads them back in. If you don't issue this command
-before the first definition, you'll lose all the definitions from the
-previous run.
-
-\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, labelling}
-You can give symbolic names to equations in a similar way, using
-\pix^|\eqdef| and \pix^|\eqref|. |\eqdef| inserts its own |\eqno|
-command, so it must be invoked in a place where |\eqno| is legal.
-
-\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| produces ``(equation number)''. You can handle fancier
-formatting by redefining \pix^|\eqprint|. For example, you could redefine
-it so that the equation numbers include
-the chapter number.
-
-\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 Environments
-
-\null ^^{environments} These macros let you define your own named groups
-(environments) for parts of your manuscript. Like \TeX\ groups, these
-groups can be nested, and in fact their nesting can be intertwined with
-the nesting of \TeX\ groups. If the names at the beginning and end of
-an environment don't match, you'll get an error message. The macros are
-designed so that the message you get when such an error occurs will give
-you a good chance of localizing the cause of the error easily.
-
-You begin an environment with
-\pix^^|\environment|
-|\envi!-ron!-ment| |{foo}| and end it with |\endenvironment{foo}|, where
-|foo| is the name of the environment. Our macros slightly improve on
-the answer to Exercise~5.7 of \texbook, by doing some checks on
-|\begingroup| and |\endgroup| pairs, as well as making sure
-|\environment| and |\endenvironment| pairs match.
-
-\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}%
-|
-
-We also define help messages for each of the errors above.
-^^|\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.}%
-|
-
-Some environments should not be allowed to occur within
-another environment. Let's call these environments
-``outer environments''. |\check!-env| checks that no outer environment
-is currently in effect and complains if one is. To use |\check!-env|, you
-must issue the command |\environment!-true| at the beginning of every
-outer environment.
-
-\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^^{flush left}
-\bix^^{flush right}
-\bix^^{centered text}
-The three macros \pix^|\flushleft|, \pix^|\flushright|, and
-\xrdef{eplaincenter}
-\pix^|\center| justify the text on the following lines in the indicated way.
-The command should appear on a line by itself.
-Both the command and the text should be enclosed in a group---%
-the end of the group indicates the end of the text.
-The entire group is set as a single paragraph, with lines filled out
-on one side or another as appropriate. Blank lines are reproduced.
-
-\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
-|
-
-The following commands are called as a result of the |\after!-group|
-^^|\aftergroup|
-in the definitions of |\flush!-left|, |\flush!-right|, and |\center|.
-They perform the necessary cleanup operations.
-
-\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^^{flush left}
-\eix^^{flush right}
-\eix^^{centered text}
-
-
-\section Tables
-
-The \pix^|\makecolumns| macro enables you to give all the entries in a
-table without having to worry about where the columns break. For
-example, if you're typing a long alphabetical list that will be
-formatted in several columns, you usually won't know in advance where
-one column ends and the next begins. Moreover, if another item gets
-added, the column breaks will change.
-
-|\makecolumns| takes two (delimited) arguments: the total number of
-entries in the table and the number of columns in the table. For
-example, `|\makecolumns 37/3:|' specifies a three-column table whose
-entries are the next $37$ lines. You can adjust the positioning of the
-table on the page by changing |\parindent|, which determines the space
-to the left, and |\hsize|, which determines the space from the left
-margin of the page to the right of the block. You can allow a page
-break above the |\valign|
-^^|\valign//used in {\tt\\makecolumns}|
-by changing
-\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 Footnotes
-
-\null ^^{footnotes}
-Footnotes are most commonly typeset by using a raised number as the
-reference mark. We define the \pix^|\numberedfootnote| macro to do
-this. It also redefines ^|\vfootnote| to allow slightly more general
-formatting of footnotes than \plainTeX\ does. The dimension register
-\pix^^|\footnotemarkseparation| |\foot!-note!-mark!-sepa!-ra!-tion|
-controls the space between the footnote mark (e.g., the number) and the
-beginning of the text. The \pix^|\everyfootnote| tokens are inserted
-before producing the footnote.
-
-The \plainTeX\ definitions of |\footnote| and |\vfootnote| are
-preserved in |\@plain!-footnote| and |\@plain!-vfootnote| in case you should
-need them.
-\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 columns
-
-\null ^^{double columns} The |\doublecolumns| command begins
-double-column output, while the |\single!-column|
-\pix^^|\singlecolumn|
-command restores
-single-column output. You can switch back and forth between them
-on a single page.
-The glue specified by |\above!-double!-column!-skip| and
-|\below!-double!-column!-skip| is inserted before and after the
-double-column material.
-
-The approach is derived from \knuth{page~417}.
-
-\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}%
-|
-
-The |\@double!-column!-split| macro does the actual splitting.
-Insertions are assumed to be single-column material. If you don't want
-this to be the case, you'll have to modify the output routine. After
-|\@double!-column!-split| has done its work, |\box255| will have the
-double-column material. The double-column material will be preceded by
-any single-column material that was typeset before |\doublecolumns| was
-invoked. |\box4| will have the material that didn't fit on the 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| is the real output routine. We call the old
-|\output| to do the work of actually shipping out the box.
-
-\csdisplay
-\def\doublecolumnoutput{\@doublecolumnsplit
- \hsize = \singlecolumnhsize \vsize = \singlecolumnvsize
- \previousoutput \unvbox4}%
-|
-
-|\singlecolumn| resumes typesetting in one column. It assumes that
-|\doublecolumns| has been called.
-
-\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 Finishing up
-
-We now must undo the changes that we made when we started (see
-\xref{eplainconv}). We also give a version identification, which is
-subsequently available in |\fmt!-name| and |\fmt!-version|.
-
-\csdisplay
-\let\wlog = \@plainwlog \catcode`@ = \other
-\def\fmtname{eplain}%
-{\edef\plainversion{\fmtversion}%
- \xdef\fmtversion{1.0: 15 May 1990
- (and plain \plainversion)}%
-}%
-|
-
-\eix^^|eplain.tex|
-
-\endchapter
-\byebye
diff --git a/Master/texmf-doc/doc/english/impatient/usingtex.tex b/Master/texmf-doc/doc/english/impatient/usingtex.tex
deleted file mode 100644
index 35ec5310d23..00000000000
--- a/Master/texmf-doc/doc/english/impatient/usingtex.tex
+++ /dev/null
@@ -1,822 +0,0 @@
-% This is part of the book TeX for the Impatient.
-% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
-% See file fdl.tex for copying conditions.
-
-\input macros
-\chapter{Using \TeX}
-
-\chapterdef{usingtex}
-
-% Avoid underfull box complaint about the empty paragraph
-% that precedes the first section heading.
-%
-\def\par{{\parfillskip = 0pt plus 1fil\endgraf}\let\par=\endgraf}
-\vglue-\abovesectionskip % we've skipped enough already
-\vskip0pt % Make \combineskips work.
-
-\section Turning input into ink
-
-\subsection Programs and files you need
-
-In order to produce a \TeX\ document, you'll need to run the \TeX\
-program and several related programs as well. You'll also need
-supporting files for \TeX\ and possibly for these other programs. In
-this book we can tell you about \TeX, but we can't tell you about the
-other programs and the supporting files except in very general terms
-because they depend on your local \TeX\ environment. The people who
-provide you with \TeX\ should be able to supply you with what we call
-\emph{local information}.
-\pix^^{local information}
-The local information tells you how to
-start up \TeX, how to use the related programs, and how to gain access
-to the supporting files.
-
-Input to \TeX\ consists of a file of ordinary text that you can prepare
-with a ^{text editor}. A \TeX\ input file, unlike an input file for a
-typical word processor, doesn't ordinarily contain any invisible
-^{control characters}.
-Everything that \TeX\ sees is visible to you too if you
-look at a listing of the file.
-
-Your input file may turn out to be little more than a skeleton that
-calls for other input files. \TeX\ users often organize large documents
-such as books this way. You can use the ^|\input| command (\xref\input)
-to embed one input file within another. In particular, you can use
-|\input| to incorporate files containing \emph{macro definitions}---%
-^^{macros//in auxiliary files}
-auxiliary definitions that enhance \TeX's capabilities.
-If any macro files are available at your \TeX\ installation, the local
-information about \TeX\ should tell you how to get at the macro files
-and what they can do for you. The standard form of \TeX,
-the one described in this book, incorporates a
-collection of macros and other definitions known as ^{\plainTeX}
-(\xref{\plainTeX}).
-
-When \TeX\ processes your document, it produces a file called the
-^{\dvifile}. The abbreviation ``|dvi|'' stands for ``device
-independent''. The abbreviation was chosen because the information in
-the \dvifile\ is independent of the device that you use to print or
-display your document.
-
-To print your document or view it with a \emph{previewer},
-^^{previewer}
-you need to process the ^{\dvifile} with
-a \emph{device driver\/} program.
-^^{device drivers}
-(A previewer is a program that
-enables you to see on a screen some approximation of what the typeset
-output will look like.)
-Different output devices usually
-require different device drivers.
-After running the device driver,
-you may also need to transfer the output of the device driver to the
-printer or other output device.
-^^{printers} ^^{output devices}
-The local information about \TeX\ should tell
-you how to get the correct device driver and use it.
-
-Since \TeX\ has no built-in knowledge of particular fonts, it uses
-\emph{font files}
-^^{font files}
-to obtain information about the fonts used in your
-document. The font files should also be part of your local \TeX\
-environment. Each font normally requires two files: one containing the
-dimensions of the characters in the font (the \emph{metrics file})
-^^{metrics file}
-and one containing the shapes of the characters (the \emph{shape file}).
-^^{shape file}
-Magnified versions of a font share the metrics file but have
-different shape files. ^^{magnification} Metrics files are sometimes
-referred to as ^{\tfmfile}s, and the different varieties of shape files
-are sometimes referred to as ^{\pkfile}s, ^{\pxlfile}s, and ^{\gffile}s.
-These names correspond to the names of the files that \TeX\ and its
-companion programs use. For example, |cmr10.tfm| is the metrics file
-for the |cmr10| font (10-point Computer Modern Roman).
-
-\TeX\ itself uses only the metrics file, since it doesn't care what the
-characters look like but only how much space they occupy. The device
-driver ordinarily uses the shape file, since it's responsible for
-creating the printed image of each typeset character. Some device
-drivers need to use the metrics file as well. Some device drivers can
-utilize fonts that are resident in a printer and don't need shape files
-for those fonts.
-\secondprinting{\vfill\eject}
-
-
-\subsection Running {\TeX}
-
-\bix^^{running \TeX}
-You can run \TeX\ on an input file |screed.tex| by typing
-^^{input files}
-something like `|run tex|' or just `|tex|' (check your local information).
-\TeX\ will respond with something like:
-% 4/23/90 is Shakespeare's 426th birthday, and Karl's 26th.
-\csdisplay
-This is TeX, Version 3.0 (preloaded format=plain 90.4.23)
-**
-|
-The ``preloaded format'' here refers to a predigested form of the
-^{\plainTeX} macros that come with \TeX.
-You can now type `|screed|' to get \TeX\ to process your file.
-When it's done, you'll see something like:
-\csdisplay
-(screed.tex [1] [2] [3] )
-Output written on screed.dvi (3 pages, 400 bytes).
-Transcript written on screed.log.
-|
-displayed on your terminal, or printed in the record of your
-run if you're not working at a terminal. Most of this output is
-self-explanatory.
-The numbers in brackets are page numbers that \TeX\ displays when it
-ships out each page of your document to the \dvifile.
-\TeX\ will usually assume an
-extension `|.tex|' to an input file name
-if the input file name you gave doesn't
-have an extension. For some forms of \TeX\ you may be able to
-invoke \TeX\ directly for an input file by typing:
-\csdisplay
-tex screed
-|
-or something like this.
-
-Instead of providing your \TeX\ input from a file, you can type it directly at
-your terminal. To do so, type `^|\relax|' instead of `|screed|' at the
-`|**|' prompt.
-\TeX\ will now prompt you with a `|*|' for each line of input and interpret
-each line of input as it sees it.
-To terminate the input, type a command such as `|\bye|' that tells \TeX\
-you're done.
-Direct input is sometimes a handy way of experimenting with \TeX.
-
-When your input file contains other embedded input files, the displayed
-information indicates when \TeX\ begins and ends processing each
-embedded file.
-^^{input files//embedded}
-\xrdef{infiles}
-\TeX\ displays a left parenthesis and the file name
-when it starts working on a file and displays the corresponding right
-parenthesis when it's done with the file.
-If you get any ^{error messages} in the displayed output, you can match
-them with a file by looking for the most recent unclosed left parenthesis.
-
-For a more complete explanation of how to run \TeX,
-see \knuth{Chapter~6} and your ^{local information}.
-\eix^^{running \TeX}
-
-
-\section Preparing an input file
-
-In this section we explain some of the conventions that you must follow in
-preparing input for \TeX\null. Some of the information given here also
-appears in the examples in \chapterref{examples} of this book.
-^^{input, preparing}
-
-\subsection Commands and control sequences
-
-\bix^^{commands}
-\bix^^{control sequences}
-Input to \TeX\ consists of a sequence of commands that tell \TeX\ how to
-typeset your document. Most characters act as commands of a particularly
-simple kind: ``typeset me''. The letter `|a|', for instance, is a
-command to typeset an `a'. But there's another kind of command---a
-\emph{control sequence}---that gives \TeX\ a more elaborate
-instruction. A control sequence ordinarily starts with a backslash
-(|\|), though you can change that convention if you need to.
-\xrdef{@backslash}
-For instance, the input:
-
-\csdisplay
-She plunged a dagger (\dag) into the villain's heart.
-|
-contains the control sequence |\dag|; it produces the typeset output:
-\display{%
-She plunged a dagger (\dag) into the villain's heart.
-}
-\noindent Everything in this example except for the |\dag| and the spaces
-acts like a ``typeset me'' command. We'll explain more about spaces
-on \xrefpg{spaces}.
-
-There are two kinds of control sequences: \emph{control words}
-^^{control words}
-and \emph{control symbols}:
-^^{control symbols}
-\ulist\compact
-\li A control word consists of a
-backslash followed by one or more letters, e.g., `|\dag|'.
-The first character that isn't a letter marks the end
-of the control word.
-\li A control symbol consists of a backslash followed by a single character
-that isn't a letter, e.g., `|\$|'.
-The character can be a space or even the end of a line (which is a perfectly
-legitimate character).
-\endulist
-\noindent
-A control word (but not a control symbol)
-absorbs any spaces or ends of line that follow it.
-^^{control sequences//absorbing spaces}
-If you don't want to lose a space after a control word,
-follow the control sequence with a ^{control space}
-(|\!visiblespace|) or with `|{}|'. Thus either:
-\csdisplay
-The wonders of \TeX\!visiblespace!.shall never cease!!
-|
-or:\hfil\
-\csdisplay
-The wonders of \TeX{} shall never cease!!
-|
-produces:
-\display{%
-The wonders of \TeX{} shall never cease!
-}
-\noindent rather than:
-\display{%
-The wonders of \TeX shall never cease!
-}
-\noindent
-which is what you'd get if you left out the `|\|\visiblespace'
-or the `|{}|'.
-
-Don't run a control word together with the text that follows it---\TeX\
-won't know where the control word ends. For instance, the |\c| control
-sequence places a cedilla accent on the character that follows it. The
-French word {\it gar\c con\/} must be typed as
-`|gar\c!visiblespace!.con|', not `|gar\ccon|'; if you write the latter,
-\TeX\ will complain about an undefined control sequence |\ccon|.
-
-A control symbol, on the other hand, doesn't absorb anything that
-follows it. Thus you must type `\$13.56' as `|\$13.56|', not
-`|\$!vs13.56|'; the latter form would produce `\hbox{\$ 13.56}'.
-However, those accenting commands that are named by control symbols are
-defined in such a way that they produce the effect of absorbing a
-following space. Thus, for example, you can type the French word {\it
-d\'eshabiller\/} either as `|d\'eshabiller|' or as
-`|d\'!visiblespace!.eshabiller|'.
-
-Every control sequence is also a command,
-but not the other way around.
-^^{commands//versus control sequences}
-^^{control sequences//versus commands}
-For instance, the letter `|N|'
-is a command, but it isn't a control sequence.
-In this book we ordinarily use ``command'' rather than
-``control sequence'' when either term would do.
-We use ``control sequence'' when we want to emphasize aspects of \TeX\
-syntax that don't apply to commands in general.
-
-\eix^^{control sequences}
-\eix^^{commands}
-
-
-\subsection Arguments
-
-\xrdef{arg1}
-Some commands need to be followed by one or more
-\emph{arguments} ^^{arguments}
-that help to determine what the command does.
-For instance, the |\vskip| command, which
-tells \TeX\ to skip down (or up) the page,
-expects an argument specifying how much space to skip. To skip
-down two inches, you would type `|\vskip 2in|', where |2in|
-is the argument of |\vskip|.
-
-Different commands expect different kinds of arguments. Many commands
-expect dimensions, such as the |2in| in the example above.
-Some commands, particularly those defined by macros,
-expect arguments that are either a single character or some
-text enclosed in braces.
-Yet others require that their arguments be enclosed in braces, i.e.,
-they don't accept single-character arguments.
-The description of each command in this book tells you what kinds of arguments,
-if any, the command expects.
-In some cases, required braces define a group (see \xref{bracegroup}).
-
-\secondprinting{\vfill\eject}
-
-
-\subsection Parameters
-
-\xrdef{introparms}
-Some commands are parameters (\xref{parameter}).
-^^{parameters//as commands}
-You can use a parameter in either of two ways:
-\olist
-\li You can use the value of a parameter
-as an argument to another command. For example, the command
-\hbox{|\vskip\parskip|}
-causes a vertical skip by the value of the |\parskip| (paragraph skip)
-glue parameter.
-\li You can change the value of the parameter by assigning
-something to it. For example, the assignment \hbox{|\hbadness=200|}
-causes the value of the |\hbadness| number parameter to be $200$.
-\endolist
-\noindent
-We also use the term ``parameter'' to refer to entities such as |\pageno|
-that are actually registers but behave just like parameters.
-^^{registers//parameters as}
-
-Some commands are names of tables. These commands are used like
-parameters, except that they require an additional argument that
-specifies a particular entry in the table. For example, |\catcode| names
-a table of category codes (\xref{category code}). Thus
-the command
-\hbox{|\catcode`~=13|} sets the category code of the `|~|'
-character to $13$.
-
-
-\subsection Spaces
-
-\xrdef{spaces}
-\bix^^{spaces}
-You can freely use extra spaces in your input. Under nearly all circumstances
-\TeX\ treats several spaces in a row as being equivalent to a
-single space. For instance, it doesn't matter whether you put one space
-or two spaces after a ^{period} in your input. Whichever you do, \TeX\
-performs its end-of-sentence maneuvers and leaves the appropriate
-(in most cases) amount of space after the period.
-\TeX\ also treats the end of an input line as equivalent to a space.
-Thus you can end your input lines wherever it's convenient---%
-\TeX\ makes input
-lines into
-paragraphs in the same way no matter where the line breaks are in your
-input.
-
-A blank line in your input marks the end of a paragraph.
-^^{paragraphs//ending}
-Several blank lines are equivalent to a single one.
-
-\TeX\ ignores input spaces within math formulas (see below). Thus you can
-include or omit spaces anywhere within a math formula---\TeX\ doesn't care.
-Even within a math formula, however,
-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.
-We discuss this problem elsewhere since it's somewhat
-technical; see \xrefpg{unwantedspace}.
-
-A space or its equivalent between two words in your input doesn't simply turn
-into a space character in your output.
-A few of these input spaces turn into ends of lines
-in the output,
-since input lines generally don't correspond to output lines.
-The others turn into spaces of variable width called ``glue'' (\xref{glue}),
-which has a natural size (the size it ``wants to be'')
-but can stretch or shrink.
-When \TeX\ is typesetting a paragraph
-that is supposed to have an even right margin (the usual
-case), it adjusts the widths of the glue in each line
-to get the lines to end at the margin.
-(The last line of a paragraph is an exception, since it isn't ordinarily
-required to end at the right margin.)
-
-You can prevent an input space from turning into an end of line by using a
-^{tie} (^|~|).
-For example, you wouldn't want \TeX\ to put a line break between the
-`Fig.' and `8' of `Fig.~8'.
-By typing `|Fig.~8|' you can prevent such a line break.
-\eix^^{spaces}
-\needspace{2in}
-
-\subsection Comments
-
-\xrdef{comments}
-\pix\bix^^{comments}
-You can include comments in your \TeX\ input.
-When \TeX\ sees a comment it just passes over it, so
-what's in a comment doesn't affect your typeset document in any way.
-Comments are useful for
-providing extra information about what's in your input file.
-For example:
-\csdisplay
-% ========= Start of Section `Hedgehog' =========
-|
-
-{\indexchar % }%
-A comment starts with a percent sign (|%|) and extends to the end of the
-input line.
-\TeX\ ignores not just the comment but the end of the line as well, so
-comments have another very
-important use: connecting two lines so that the end of line
-^^{line breaks//deleting}
-between them is invisible to \TeX\ and doesn't generate
-an output space or an end of line.
-For instance, if you type:
-\csdisplay
-A fool with a spread%
-sheet is still a fool.
-|
-you'll get:
-\display{
-A fool with a spread%
-sheet is still a fool.
-}
-\eix^^{comments}
-
-
-\subsection Punctuation
-
-\null
-\xrdef{periodspacing}
-\TeX\ normally adds some extra space after what it thinks is a
-^{punctuation} mark at the end of a sentence,
-namely, `^|.|', `^|?|', or `|!!|' \indexchar !
-^^{period} ^^{question mark} ^^{exclamation point}
-followed by an input space.
-\TeX\ doesn't add
-the extra space if the punctuation mark follows
-a capital letter, though, because it assumes the capital
-letter to be an initial in someone's name.
-You can force the extra space where it wouldn't otherwise occur by
-typing something like:
-\csdisplay
-A computer from IBM\null?
-|
-The |\null| doesn't produce any output, but it does prevent \TeX\
-from associating the capital `M' with the question mark.
-On the other hand, you can cancel the
-extra space where it doesn't belong by typing a control space
-after the punctuation mark, e.g.:
-\csdisplay
-Proc.\!visiblespace!.Royal Acad.\!visiblespace!.of Twits
-|
-so that you'll get:
-\display{Proc.\ Royal Acad.\ of Twits}
-\noindent rather than:
-\display{Proc. Royal Acad. of Twits}
-
-Some people prefer not to leave more space after punctuation at the
-end of a sentence. You can get this effect with the
-^|\frenchspacing| command (\xref\frenchspacing).
-|\frenchspacing| is often recommended for ^{bibliographies}.
-
-For single ^{quotation marks}, you should use the left and right
-single quotes
-(|`| and |'|) on your keyboard. For left and right
-double quotation marks, use two left single
-quotes or two right single quotes (|``| or |''|) rather
-than the double quote (|"|) on your keyboard.
-The keyboard double quote
-will in fact give you a right double quotation mark in
-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.
-\par ``Talk, child,'' said the Unicorn.
-\par She said, ``\thinspace`Enough!', he said.''
-}
-\noindent
-The |\thinspace| in the third input line prevents
-the single quotation mark from coming
-too close to the double quotation marks.
-Without it, you'd just see three
-nearly equally spaced quotation marks in a row.
-
-\TeX\ has three kinds of ^{dashes}:
-\ulist\compact
-\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
-\noindent
-Typically you'd use hyphens to indicate compound words like
-``will-o'-the-wisp'',
-en-dashes to indicate
-page ranges such as ``pages~81--87'', and em-dashes to indicate
-a break in continuity---like this.
-
-
-\subsection Special characters
-
-Certain characters have special meaning to \TeX, so you shouldn't use them
-in ordinary text. They are:
-
-\csdisplay
- $ # & % _ ^ ~ { } \
-|
-^^|$//in ordinary text|
-^^|#//in ordinary text|
-^^|&//in ordinary text|
-^^|_//in ordinary text|
-^^|^//in ordinary text|
-^^|~//in ordinary text|
-^^|%//in ordinary text|
-^^|{//in ordinary text|
-^^|}//in ordinary text|
-{\recat!ttidxref[\//in ordinary text]]
-\noindent
-In order to produce them in your typeset document,
-you need to use circumlocutions. For the first five,
-you should instead type:
-^^|\$|
-^^|\#|
-^^|\&|
-^^|\%|
-^^|\_|
-\csdisplay
- \$ \# \& \% \_
-|
-
-\noindent
-For the others, you need something more elaborate:
-
-\csdisplay
- \^{!visiblespace} \~{!visiblespace} $\{$ $\}$ $\backslash$
-|
-
-
-\subsection Groups
-
-\bix^^{groups}
-A \emph{group}
-consists of material enclosed in matching left and right braces (|{| and
-|}|).
-^^|{//starting a group|
-^^|}//ending a group|
-By placing a command within a group, you can limit its effects to
-the material within the group.
-For instance, the |\bf| command tells \TeX\ to set
-something in {\bf boldface} type. If you were to put |\bf| into your input
-and do nothing else to counteract it, everything in your document following the
-|\bf| would be set in boldface.
-By enclosing |\bf| in a group,
-you limit its effect to the group. For example, if you type:
-\csdisplay
-We have {\bf a few boldface words} in this sentence.
-|
-\noindent you'll get:
-\display{We have {\bf a few boldface words} in this sentence.}
-
-\noindent You can also use a group to limit the effect of
-an assignment to one of \TeX's parameters.
-These parameters contain values that affect how \TeX\ typesets your document.
-For example, the value of the |\parindent|
-parameter specifies the indentation at the beginning of a paragraph.
-The assignment |\parindent = 15pt|
-sets the indentation to $15$ printer's points.
-By placing this assignment at the beginning
-of a group containing a few paragraphs, you can change
-the indentation of just those paragraphs. If you don't enclose
-the assignment in a group,
-the changed indentation will apply to the rest of the document (or up to the
-next assignment to |\parindent|, if there's a later one).
-
-\xrdef{bracegroup}
-Not all pairs of braces indicate a group.
-In particular, the braces associated with an argument for which the
-braces are \emph{not} required don't indicate a group---they just
-serve to delimit the argument.
-Of those commands that do require braces for their arguments,
-some treat the braces as defining a group
-and the others interpret the argument in some special way that depends on
-the command.\footnote
-{More precisely, for primitive commands either
-the braces define a group or they enclose tokens that aren't processed in
-\TeX's stomach.
-For |\halign| and |\valign| the group has a trivial
-effect because everything within the braces either doesn't reach the stomach
-(because it's in the template) or is enclosed in a further inner group.
-^^|\halign//grouping for|
-^^|\valign//grouping for|
-}
-\eix^^{groups}
-
-
-\subsection Math formulas
-
-\bix^^{math}
-\xrdef{mathform}
-A math formula can appear in text (\emph{text math})
-^^{text math}
-or set off on a line by itself
-with extra vertical space around it (\emph{display math}).
-^^{display math}
-You enclose a text formula in single dollar signs (|$|)
-and a displayed formula in double dollar signs (|$$|).
-\ttidxref{$}\ttidxref{$$}
-For example:
-
-\csdisplay
-If $a<b$, then the relation $$e^a < e^b$$ holds.
-|
-\noindent This input produces:
-\display{\centereddisplays
-If $a<b$, then the relation $$e^a < e^b$$ holds.}
-\smallskip
-\noindent \chapterref{math} describes the commands that are useful
-in math formulas.
-\eix^^{math}
-
-
-\section How \TeX\ works
-
-In order to use \TeX\ effectively, it helps to
-have some idea of how \TeX\ goes about
-its activity of transmuting input into output.
-You can imagine \TeX\ as a kind of organism with ``eyes'',
-``mouth'', ``gullet'',
-``stomach'', and ``intestines''.
-Each part of the organism transforms its input in some way and passes
-the transformed input to the next stage.
-
-The ^{eyes} transform an input file into a sequence of characters.
-The ^{mouth} transforms the sequence of characters into a sequence of
-\emph{tokens},
-^^{tokens}
-where each token is either a single character or a control sequence.
-^^{control sequences//as tokens}
-The gullet expands the tokens into a sequence of
-\emph{primitive commands}, which are also tokens.
-^^{expanding tokens}
-The ^{stomach} carries out the operations specified by the primitive commands,
-producing a sequence of pages.
-Finally, the ^{intestines} transform each page into the form required
-for the \dvifile\ and send it there.
-^^{\dvifile//created by \TeX's intestines}
-These actions are described in more detail
-in \chapterref{concepts} under \conceptcit{\anatomy}.
-^^{\anatomy}
-
-The real typesetting goes on in the stomach.
-The commands instruct \TeX\ to typeset such-and-such a character in
-such-and-such a font, to insert an interword space, to end a paragraph, and
-so on.
-Starting with individual typeset characters and other simple typographic
-elements, \TeX\ builds up a page ^^{pages} as a nest of
-^{boxes} within boxes within boxes \seeconcept{box}.
-Each typeset character occupies a box, and so does an entire page.
-A box can contain not just smaller boxes but also \emph{glue} ^^{glue}
-(\xref{glue}) and a few other things.
-The glue produces
-space between the smaller boxes.
-An important property of glue is that it can stretch and shrink;
-thus \TeX\ can make a box
-larger or smaller by stretching or shrinking
-the glue within~it.
-
-Roughly speaking, a line is a box containing a sequence of character boxes,
-and a page is a box containing a sequence of line boxes.
-There's glue between the words of a line and between the lines of a page.
-\TeX\ stretches or shrinks
-the glue on each line so as to make the right margin
-of the page come out even and the glue on each page
-so as to make the bottom margins of different pages be equal.
-Other kinds of typographical elements can also appear in a line or in a page,
-but we won't go into them here.
-
-As part of the process of assembling pages, \TeX\ needs to break paragraphs
-into lines and lines into pages. The stomach first sees a paragraph as one
-long line, in effect. It inserts \emph{line breaks}
-^^{line breaking}
-in order to transform
-the paragraph into a sequence of lines of the right length, performing a
-rather elaborate analysis in order to choose the set of breaks
-that makes the paragraph look best
-\seeconcept{line break}.
-The stomach carries out a similar
-but simpler process in order to transform a sequence of lines into a page.
-Essentially the stomach accumulates lines until no more lines can fit on the
-page. It then chooses a single place to break the page, putting the lines
-before the break on the current page
-and saving the lines after the break for the
-next page \seeconcept{page break}. ^^{page breaks//inserted by \TeX's stomach}
-
-When \TeX\ is assembling an entity from a list of items (boxes, glue, etc.),
-it is in one of six
-\emph{modes} ^^{modes} (\xref{mode}).
-The kind of entity it is assembling defines the mode that it is in.
-There are two ordinary modes: ordinary horizontal mode for assembling
-paragraphs (before they are broken into lines)
-and ordinary vertical mode for assembling pages.
-There are two restricted modes:
-restricted horizontal mode for appending items horizontally to form
-a horizontal box
-and internal vertical mode for appending items vertically to form
-a vertical box (other than a page).
-Finally, there are two math modes: text math mode for assembling math formulas
-within a paragraph and display math mode for assembling math formulas that are
-displayed on lines by themselves (see ``Math formulas'', \xref{mathform}).
-
-
-\section New \TeX\ versus old {\TeX}
-
-\xrdef{newtex}
-In 1989 Knuth made a major revision to \TeX\ in order to
-adapt it to the
-character sets needed to support typesetting for languages other than
-English.\space ^^{foreign languages}
-The revision included a few minor extra features that could be added
-without disturbing anything else.
-This book describes ``^{\newTeX}''.
-If you're still using an older version
-of \TeX\ (version $2.991$ or earlier),
-you'll want to know what features of {\newTeX} you can't use.
-The following features aren't available in the older versions:
-\ulist\compact
-\li ^|\badness| (\xref\badness)
-\li ^|\emergencystretch| (\xref\emergencystretch)
-\li ^|\errorcontextlines| (\xref\errorcontextlines)
-\li ^|\holdinginserts| (\xref\holdinginserts)
-\li ^|\language|, ^|\setlanguage|, and |\new!-lan!-guage|
-(\pp\xrefn\language, \xrefn{\@newlanguage}) ^^|\newlanguage|
-\li ^|\lefthyphenmin| and ^|\righthyphenmin| (\xref\lefthyphenmin)
-\li ^|\noboundary| (\xref\noboundary)
-\li ^|\topglue| (\xref\topglue)
-\li The |^^|$xy$ notation for hexadecimal digits (\xref{hexchars})
-\endulist
-\noindent
-We recommend that you obtain new \TeX\ if you can.
-
-\section Resources
-
-\xrdef{resources}
-A number of resources are available to help you in using \TeX.
-\texbook\ is the definitive source of information on \TeX:
-
-\smallskip
-{\narrower\noindent
-^{Knuth, Donald E.}, \texbook. Reading, Mass.: Addison-Wesley, 1984.\par}
-\smallskip
-\noindent
-Be sure to get the seventeenth printing (January 1990) or later;
-the earlier printings don't cover the features of new \TeX.
-
-^{\LaTeX} is a very popular collection of commands designed to simplify the use
-of \TeX. It is described in:
-\smallskip
-{\narrower\noindent\frenchspacing\spaceskip = 3.33pt plus 2pt minus 1.2pt
-^{Lamport, Leslie}, {\sl The \LaTeX\ Document Preparation System}.
-Reading, Mass.: Addison-Wesley, 1986.\par}
-\smallskip
-\noindent
-^{\AMSTeX} is the collection of commands adopted by the American Mathematical
-Society as a standard for submitting mathematical man\-u\-scripts
-electronically.
-It is described in:
-\smallskip
-{\narrower\noindent
-^{Spivak, Michael~D.}, {\sl The Joy of \TeX}. Providence, R.I.:
-American Mathematical Society, 1986.
-\par}
-\smallskip
-\noindent
-You can join the ^{\TUG} (TUG), which publishes a newsletter
-called {\it ^{TUGBoat}}.
-TUG is an excellent source not only for information about \TeX\ but also
-for collections of macros, including \AMSTeX.
-Its address is:
-\smallskip
-{\obeylines
-^{\TUG}
-c/o American Mathematical Society
-P.O. Box 9506
-Providence, RI 02940
-U.S.A.
-}
-\smallskip
-\noindent
-Finally, you can obtain copies of the ^|eplain.tex| macros
-described in \chapterref{eplain} as well as the macros used in typesetting
-this book.
-They are available through the Internet network by anonymous \ftp\ from the
-following hosts:
-{\obeylines\display{\tt
-labrea.stanford.edu [36.8.0.47]
-ics.uci.edu [128.195.1.1]
-june.cs.washington.edu [128.95.1.4]}}
-
-The electronic version includes additional macros
-that format input for the
-^{\BibTeX}\ computer program, written by Oren Patashnik at Stanford
-University, ^^{Patashnik, Oren}
-and print the output from that program.
-If you find bugs in the macros, or think of improvements, you can send
-electronic mail to Karl at {\tt karl@cs.umb.edu}.
-
-The macros are also available for US \$10.00 on $5\frac1/4$\inches\
-or $3\frac1/2$\inches\ PC-format diskettes from:
-\smallskip
-{\obeylines
-Paul Abrahams
-214 River Road
-Deerfield, MA 01342
-\vskip\tinyskipamount
-Email: {\tt Abrahams\%Wayne-MTS@um.cc.umich.edu}
-}
-\smallskip
-\noindent
-These addresses are correct as of June 1990; please be aware that they may
-change after that, particularly the electronic addresses.
-
-\endchapter\byebye
diff --git a/Master/texmf-doc/doc/english/impatient/xmptext.tex b/Master/texmf-doc/doc/english/impatient/xmptext.tex
deleted file mode 100644
index 47599421fde..00000000000
--- a/Master/texmf-doc/doc/english/impatient/xmptext.tex
+++ /dev/null
@@ -1,449 +0,0 @@
-~% This is part of the book TeX for the Impatient.
-~% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
-~% See file fdl.tex for copying conditions.
-% TeX ignores anything on a line after a %
-% The next two lines define fonts for the title
-\font\xmplbx = cmbx10 scaled \magstephalf
-\font\xmplbxti = cmbxti10 scaled \magstephalf
-% Now here's the title.
-\leftline{\xmplbx Example !xmpnum:\quad\xmplbxti Entering simple text}
-\vglue .5\baselineskip % skip an extra half line
-~\count255 = \pageno
-~\xdef\examplepage{\number\count255}
-~\markinfo{Example 1: Entering simple text}
-~\ifrewritetocfile
-~\write\tocfile{\string\tocsectionentry{Entering simple text}{}{\examplepage}}%
-~\fi
-~^^{footnotes} ^^{comments} ^^{punctuation} ^^{quotation marks}
-~^^{space characters} ^^{dashes} ^^{paragraphs//ending}
-~\edef\examplepageno{\number\count255}%
-It's easy to prepare ordinary text for \TeX\ since
-\TeX\ usually doesn't care about how you break up your input into
-lines. It treats the end of a line of text like a space.%
-\footnote \dag{\TeX\ treats a tab like a space too, as we point
-out in this {\it footnote}.} If you don't want a space there,
-put a per%
-cent sign (the comment character) at the end of the line.
- \TeX\ ignores spaces at the start of a line, and treats more
-than one space as equivalent to a single space,
-even after a period. You indicate a new paragraph by
-skipping a line (or more than one line).
-
-
-When \TeX\ sees a period followed by a space (or the end of the
-line, which is equivalent), it ordinarily assumes you've ended a
-sentence and inserts a little extra space after the period. It
-treats question marks and exclamation points the same way.
-
- But \TeX's rules for handling periods sometimes need fine
-tuning. \TeX\ assumes that a capital letter before a period
-doesn't end the sentence, so you have to do something a little
-different if, say, you're writing about DNA\null.
-% The \null prevents TeX from perceiving the capital `A'
-% as being next to the period.
-It's a good idea to tie words together in references such as
-``see Fig.~8'' and in names such as V.~I\null. Lenin and in
-$\ldots$ so that \TeX\ will never split them in an awkward place
-between two lines. (The three dots indicate an ellipsis.)
-
-You should put quotations in pairs of left and right
-single ``quotes'' so that you get the correct left and right
-double quotation marks. ``For adjacent single and double
-quotation marks, insert a `thinspace'\thinspace''. You can
-get en-dashes--like so, and em-dashes---like so.
-
-\bye % end the document
-:::
-\xmpheader !xmpnum/{Indentation}% !xmpheaddef
-~^^{indentation} ^^{margins} ^^{paragraphs//narrow}
-\noindent Now let's see how to control indentation. If an
-ordinary word processor can do it, so surely can \TeX. Note
-that this paragraph isn't indented.
-
-Usually you'll either want to indent paragraphs or to leave
-extra space between them. Since we haven't changed anything
-yet, this paragraph is indented.
-
-{\parindent = 0pt \parskip = 6pt
-% The left brace starts a group containing the unindented text.
-Let's do these two paragraphs a different way,
-with no indentation and six printer's points of extra space
-between paragraphs.
-
-So here's another paragraph that we're typesetting without
-indentation. If we didn't put space between these paragraphs,
-you would have a hard time knowing where one ends
-and the next begins.
-\par % The paragraph *must* be ended within the group.
-}% The right brace ends the group containing unindented text.
-
-It's also possible to indent both sides of entire paragraphs.
-The next three paragraphs illustrate this:
-\smallskip % Provide a little extra space here.
-% Skips like this and \vskip below end a paragraph.
-{\narrower
-``We've indented this paragraph on both sides by the paragraph
-indentation. This is often a good way to set long quotations.
-
-``You can do multiple paragraphs this way if you choose. This
-is the second paragraph that's singly indented.''\par}
-
-{\narrower \narrower You can even make paragraphs doubly narrow
-if that's what you need. This is an example of a doubly
-narrowed paragraph.\par}
-\vskip 1pc % Skip down one pica for visual separation.
-In this paragraph we're back to the normal margins, as you can
-see for yourself. We'll let it run on a little longer so that
-the margins are clearly visible.
-
-{\leftskip .5in Now we'll indent the left margin by half
-an inch and leave the right margin at its usual position.\par}
-{\rightskip .5in Finally, we'll indent the right margin by half
-an inch and leave the left margin at its usual position.\par}
-\bye % end the document
-:::
-\xmpheader !xmpnum/{Fonts and special characters}% !xmpheaddef
-\chardef \\ = `\\ % Let \\ denote a backslash.
-~^^{fonts} ^^{characters//special} ^^{accents}
-~^^{music symbols} ^^{card suits}
-~^^|$| ^^|&| ^^|#| ^^|_| ^^|%| ^^|^| ^^|~| ^^|{| ^^|}| \indexchar \
-{\it Here are a few words in an italic font}, {\bf a
-few words in a boldface font}, {\it and a\/ {\bf mixture}
-of the two, with two\/ {\rm roman words} inserted}.
-Where an italic font is followed by a nonitalic font, we've
-inserted an ``italic correction'' ({\tt \\/}) to make the
-spacing look right.
-Here's a {\sevenrm smaller} word---but the standard \TeX\
-fonts won't give you anything smaller than {\fiverm this}.
-
-If you need any of the ten characters:
-\medskip
-\centerline{\$ \quad \& \quad \# \quad \_ \quad \% \quad
- \char `\^ \quad \char `\~ \quad $\{$ \quad
- $\}$ \quad $\backslash$}
-% The \quad inserts an em space between characters.
-\medskip
-\noindent you'll need to write them a special way. Look at
-the facing page to see how to do it.
-
-\TeX\ has the accents and letters that you'll need
-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].
-
-You can also get Greek letters such as ``$\alpha$'' and
-``$\Omega$'' for use in math, card suits such as
-``$\spadesuit$'' and ``$\diamondsuit$'', music symbols
-such as ``$\sharp$'' and ``$\flat$'', and many other special
-symbols that you'll find listed on !xrefdelim[specsyms].
-\TeX\ will only accept these sorts of special symbols in its
-``math mode'', so you'll need to enclose them
-within `{\tt \$}' characters.
-\bye % end the document
-:::
-\xmpheader !xmpnum/{Interline spacing}% !xmpheaddef
-~^^{spacing//interline} ^^{baselines}
-\baselineskip = 2\baselineskip % double spacing
-\parskip = \baselineskip % Skip a line between paragraphs.
-\parindent = 3em % Increase indentation of paragraphs.
-
-% The following macro definition gives us nice inline
-% fractions. You'll find it in our eplain macros.
-\def\frac#1/#2{\leavevmode
- \kern.1em \raise .5ex \hbox{\the\scriptfont0 #1}%
- \kern-.1em $/$%
- \kern-.15em \lower .25ex \hbox{\the\scriptfont0 #2}%
-}%
-
-Once in a while you may want to print a document with extra
-space between the lines. For instance, bills before Congress
-are printed this way so that the legislators can mark them up.
-For the same reason, book publishers usually insist that
-manuscripts be double-spaced. Double spacing is rarely
-appropriate for finished documents, however.
-
-A baseline is an imaginary line that acts like the lines
-on a pad of ruled paper. You can control the interline
-spacing---what printers call ``leading''---%
-by setting the amount of space between baselines. Take a
-look at the input to see how to do it. You could use
-the same method for $1\;1/2$ spacing as well, using {\tt 1.5}
-instead of {\tt 2}. (You can also write $1\frac 1/2$
-a nicer way.)
-% Here we've used the macro definition given above.
-
-For this example we've also increased the paragraph indentation
-and skipped an extra line between paragraphs.
-
-\bye % end the document
-:::
-\xmpheader !xmpnum/{Spacing, rules, and boxes}% !xmpheaddef
-~^^{description lists} ^^{boxes//drawing} ^^{revision bars}
-Here's an example of a ``description list''. In practice you'd
-be better off using a macro to avoid the repetitive constructs
-and to make sure that the subhead widths are wide enough:
-\bigskip
-% Call the indentation for descriptions \descindent
-% and set it to 8 picas.
-\newdimen\descindent \descindent = 8pc
-% Indent paragraphs by \descindent.
-% Skip an additional half line between paragraphs.
-{\noindent \leftskip = \descindent \parskip = .5\baselineskip
-% Move the description to the left of the paragraph.
-\llap{\hbox to \descindent{\bf Queen of Hearts\hfil}}%
-An ill-tempered woman, prone to saying ``Off with his
-head!!''\ at the slightest provocation.\par
-\noindent\llap{\hbox to \descindent{\bf Cheshire Cat\hfil}}%
-A cat with an enormous smile that Alice found
-in a tree.\par
-\noindent\llap{\hbox to \descindent{\bf Mock Turtle\hfil}}%
-A lachrymose creature, quite a storyteller, who was a
-companion to the Gryphon. Reputedly the principal ingredient
-of Mock Turtle Soup.
-\par}
-\bigskip\hrule\bigskip % A line with vertical space around it.
-Here's an example of some words in a ruled box, just as
-Lewis Carroll wrote them:
-\bigskip
-% Put 8pt of space between the text and the surrounding rules.
-\hbox{\vrule\vbox{\hrule
- \hbox spread 8pt{\hfil\vbox spread 8pt{\vfil
- \hbox{Who would not give all else for twop}%
- \hbox{ennyworth only of Beautiful Soup?}%
- \vfil}\hfil}
-\hrule}\vrule}%
-
-\bigskip\line{\hfil\hbox to 3in{\leaders\hbox{ * }\hfil}\hfil}
-\bigskip
-
-\line{\hskip -4pt\vrule\hfil\vbox{
-Here we've gotten the effect of a revision bar on the material
-in this paragraph. The revision bar might indicate a change.}}
-\bye % end the document
-:::
-\xmpheader !xmpnum/{Odds and ends}% !xmpheaddef
-~^^{hyphenation} ^^{theorems} ^^{lemmas} ^^{itemized lists}
-~^^{flush left} ^^{flush right} ^^{centering}
-\chardef \\ = `\\ % Let \\ denote a backslash.
-\footline{\hfil{\tenit - \folio -}\hfil}
-~\global\footline{\hfil{\tenit - \folio\ -}\hfil}
-% \footline provides a footer line.
-% Here it's a centered, italicized page number.
-\TeX\ knows how to hyphenate words, but it isn't infallible.
-If you are discussing the chemical
-${\it 5}$-[p-(Flouro\-sul\-fonyl)ben\-zoyl]-l,%
-$N^6$-ethe\-no\-adeno\-sine
-and \TeX\ complains to you about an ``overfull hbox'', try
-inserting some ``discretionary hyphens''. The notation
-`{\tt \\-}' tells \TeX\ about a dis\-cre\-tion\-ary hyphen,
-that is, one that it might not have inserted otherwise.
-\medskip
-{\raggedright You can typeset text unjustified, i.e., with
-an uneven right margin. In the old days, before word
-processors were common, typewritten documents were
-unjustified because there was no convenient alternative.
-Some people prefer text to be unjustified so that the
-spacing between words can be uniform. Most books are set
-with justified margins, but not all. \par}
-
-\proclaim Assertion 27. There is an easy way to typeset
-the headings of assertions, lemmas, theorems, etc.
-
-Here's an example of how to typeset an itemized list two
-levels deep. If you need more levels, you'll have to
-program it yourself, alas.
-\smallskip
-\item {1.} This is the first item.
-\item {2.} This is the second item. It consists of two
-paragraphs. We've indented the second paragraph so that
-you can easily see where it starts.
-
-\item{} \indent The second paragraph has three subitems
-underneath it.
-\itemitem {(a)} This is the first subitem.
-\itemitem {(b)} This is the second subitem.
-\itemitem {(c)} This is the third subitem.
-\item {$\bullet$} This is a strange-looking item because it's
-completely different from the others.
-\smallskip
-\leftline{Here's a left-justified line.$\Leftarrow$}
-\rightline{$\Rightarrow$Here's a right-justified line.}
-\centerline{$\Rightarrow$Here's a centered line.$\Leftarrow$}
-% Don't try to use these commands within a paragraph.
-\bye % end the document
-:::
-\xmpheader !xmpnum/{Using fonts from other sources}% !xmpheaddef
-~\xrdef{palatino}
-~\idxref{Palatino fonts}
-~\idxref{Zapf, Hermann}
-~\idxref{Computer Modern fonts} ^^{\Metafont}
-\font\tenrm = pplr % Palatino
-% Define a macro for invoking Palatino.
-\def\pal{\let\rm = \tenrm \baselineskip=12.5pt \rm}
-\pal % Use Palatino from now on.
-
-You aren't restricted to using the Computer Modern fonts that
-come with \TeX. Other fonts are available from many sources,
-and you may prefer them. For instance, we've set this page
-in 10-point Palatino Roman. Palatino was designed by
-Hermann Zapf, considered to be one of the greatest type
-designers of the twentieth century. This page will
-give you some idea of what it looks like.
-
-Fonts can be provided either as outlines or as bitmaps. An
-outline font describes the shapes of the characters, while a
-bitmap font specifies each pixel (dot) that makes up each
-character. A font outline can be used to generate many
-different sizes of the same font. The Metafont program
-that's associated with \TeX\ provides a particularly
-powerful way of generating bitmap fonts, but it's not the
-only way.
-
-The fact that a single outline can generate a great range of
-point sizes for a font tempts many vendors of digital
-typefaces to provide just one set of outlines for a typeface
-such as Palatino Roman. This may be a sensible economic
-decision, but it is an aesthetic sacrifice. Fonts cannot be
-scaled up and down linearly without loss of quality.
-Larger sizes of letters should not, in general, have the
-same proportions as smaller sizes; they just don't look
-right. For example, a font that's linearly scaled down will
-tend to have too little space between strokes, and its
-x-height will be too~small. % tie added to avoid widow word
-
-A type designer can compensate for these changes by
-providing different outlines for different point sizes, but
-it's necessary to go to the expense of designing these
-different outlines. One of the great advantages of Metafont
-is that it's possible to parameterize the descriptions of
-characters in a font. Metafont can then maintain the
-typographical quality of characters over a range of point
-sizes by adjusting the character shapes accordingly.
-\bye % end the document
-:::
-~\idxref{mushrooms}
-\xmpheader !xmpnum/{A ruled table}% !xmpheaddef
-\bigskip
-\offinterlineskip % So the vertical rules are connected.
-% \tablerule constructs a thin rule across the table.
-\def\tablerule{\noalign{\hrule}}
-% \tableskip creates 9pt of space between entries.
-\def\tableskip{\omit&height 9pt&&&\omit\cr}
-% & separates templates for each column. TeX substitutes
-% the text of the entries for #. We must have a strut
-% present in every row of the table; otherwise, the boxes
-% won't butt together properly, and the rules won't join.
-\halign{\tabskip = .7em plus 1em % glue between columns
-% Use \vtop for short multiline entries in the first column.
-% Typeset the lines ragged right, without hyphenation.
- \vtop{\hsize=6pc\pretolerance = 10000\hbadness = 10000
- \normalbaselines\noindent\it#\strut}%
- &\vrule #&#\hfil &\vrule #% the rules and middle column
-% Use \vtop to get whole paragraphs in the last column.
- &\vtop{\hsize=11pc \parindent=0pt \normalbaselineskip=12pt
- \normalbaselines \rightskip=3pt plus2em #}\cr
-% The table rows begin here.
-\noalign{\hrule height2pt depth2pt \vskip3pt}
- % The header row spans all the columns.
- \multispan5\bf Some Choice Edible Mushrooms\hfil\strut\cr
-\noalign{\vskip3pt} \tablerule
- \omit&height 3pt&\omit&&\omit\cr
- \bf Botanical&&\bf Common&&\omit \bf Identifying \hfil\cr
-\noalign{\vskip -2pt}% close up lines of heading
- \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
- pink-gray oyster-shaped caps, stem short or absent.\cr
-\tableskip Lactarius hygrophoroides&&Milky hygroph&&
- Butterscotch-brown cap and stem, copious white latex,
- often on ground in woods near streams.\cr
-\tableskip Morchella esculenta&&White morel&&Conical cap
- with black pits and white ridges; no gills. Often found
- near old apple trees and dying elms in the spring.\cr
-\tableskip Boletus edulus&&King bolete&&Reddish-brown to
- tan cap with yellow pores (white when young),
- bulbous stem, often near conifers, birch, or~aspen.\cr
-\tableskip \tablerule \noalign{\vskip 2pt} \tablerule
-}\bye
-:::
-\xmpheader !xmpnum/{Typesetting mathematics}% !xmpheaddef
-~^^{math}
-For a spherical triangle with sides $a$, $b$, and $c$, and
-opposite angles $\alpha$, $\beta$, and $\gamma$, we have:
-$$\cos \alpha = -\cos \beta \cos \gamma +
- \sin \beta \sin \gamma \cos \alpha \quad
- \hbox{(Law of Cosines)}$$
-and:
-$$\tan {\alpha \over 2} = \sqrt{
- {- \cos \sigma \cdot \cos(\sigma - \alpha)} \over
- {\cos (\sigma - \beta) \cdot \cos (\sigma - \gamma)}},\quad
- \hbox{where $\sigma = {1 \over 2}(a+b+c)$}$$
-We also have:$$\sin x = {{e^{ix}-e^{-ix}}\over 2i}$$
-and:
-$$\int _0 ^\infty {{\sin ax \sin bx}\over{x^2}}\,dx
-% The \, above produces a thin space
- = {\pi a\over 2}, \quad \hbox{if $a < b$}$$
-
-\noindent The number of combinations ${}_nC_r$ of $n$
-things taken $r$ at a time is:
-$$C(n,r) = {}_nC_r = {n \choose r} =
- {{n(n-1) \cdots (n-r+1)} \over {r(r-1) \cdots (1)}} =
- {{n!!}\over {r!!(n-r)!!}}$$
-
-\noindent
-The value of the determinant $D$ of order $n$:
-$$D = \left|\matrix{a_{11}&a_{12}&\ldots&a_{1n}\cr
- a_{21}&a_{22}&\ldots&a_{2n}\cr
- \vdots&\vdots&\ddots&\vdots\cr
- a_{n1}&a_{n2}&\ldots&a_{nn}\cr}\right| $$
-is defined as the sum of $n!!$ terms:
-$$\sum\>(\pm)\>a_{1i}a_{2j} \ldots a_{nk}$$
-% The \> above produces a medium space.
-where $i$, $j$, \dots,~$k$\/ take on all possible values
-between $1$ and $n$, and the sign of the product is
-$+$ if the sequence $i$, $j$, \dots,~$k$\/ is an
-even permutation and $-$ otherwise. Moreover:
-$$Q(\xi) = \lambda_1 y_1^2 \sum_{i=2}^n \sum_{j=2}^n y_i
-b_{ij} y_j,\qquad B = \Vert b_{ij} \Vert = B'$$
-\bye
-:::
-\xmpheader !xmpnum/{More mathematics}% !xmpheaddef
-~^^{math}
-The absolute value of $X$, $|x|$, is defined by:
-$$|x| = \cases{x, &if $x\ge 0$;\cr
--x,&otherwise.\cr}$$
-Now for some numbered equations.
-It is the case that for $k \ge 0$:
-$$x^{k^2}=\overbrace{x\>x\>\cdots\> x}^{2k\ \rm times}
- \eqno (1)$$
-
-Here's an example that shows some spacing controls, with
-a number on the left:
-$$[u]!negthin[v][w]\,[x]\>[y]\;[z]\leqno(2a)$$
-The amount of space between the items in brackets
-gradually increases from left to right. (We've made
-the space between the first two items be {\it less\/}
-than the natural space.)
-It is sometimes the case that $$\leqalignno{
-u'_1 + tu''_2 &= u'_2 + tu''_1&(2b)\cr
-\hat\imath &\ne \hat \jmath&(2c)\cr
-\vec {\vphantom{b}a}&\approx \vec b\cr}$$
-% The \vphantom is an invisible rule as tall as a `b'.
-The result is of order $O(n \log\log n)$. Thus
-$$\sum_{i=1}^n x_i = x_1+x_2+\cdots+x_n
-= {\rm Sum}(x_1,x_2,\ldots,x_n). \eqno(3)$$
-and
-$$dx\,dy = r\,dr\,d\theta!negthin.\eqno(4)$$
-The set of all $q$ such that $q\le0$ is written as:
-$$\{\,q\mid q\le0\, \}$$
-Thus
-$$\forall x\exists y\;P(x,y)\Rightarrow
-\exists x\exists y\;P(x,y)$$
-where
-$$P(x,y) \buildrel \rm def \over \equiv
-\hbox{\rm any predicate in $x$ and $y$} . $$
-\bye
-:::