Commits

Zou Hu committed fb4d16a

add source code of tex for the impatient

  • Participants

Comments (0)

Files changed (47)

+# 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
+$Id: README,v 1.3 2011/01/27 22:16:24 karl Exp $
+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 is through CTAN:
+   http://mirror.ctan.org/info/impatient/
+
+TeX for the Impatient is also a GNU package, and the development sources,
+contact information, and other project details are available at
+http://www.gnu.org/software/teximpatient.
+
+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 ideas.
+
+
+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 also 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 TeXing.

artwork/0cover.png

Added
New image

artwork/0watchrock.png

Added
New image
+$Id: README,v 1.1 2011/01/27 22:16:26 karl Exp $
+These original drawings by Kathryn Hargreaves are released under the
+GFDL, version 1.2 or later, just like the text of the book.
+
+Updates to the book source to incorporate these images would be very welcome.

artwork/ch01-usingbook.png

Added
New image

artwork/ch02-usingtex.png

Added
New image

artwork/ch03-examples.png

Added
New image

artwork/ch04-concepts.png

Added
New image

artwork/ch05-para.png

Added
New image

artwork/ch06-pages.png

Added
New image

artwork/ch07-horizvert.png

Added
New image

artwork/ch08-math.png

Added
New image

artwork/ch09-general.png

Added
New image

artwork/ch10-tips.png

Added
New image

artwork/ch11-errors.png

Added
New image

artwork/ch12-compendium.png

Added
New image

artwork/ch13-summary.png

Added
New image
+% 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
+% 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
+% 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
+% 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