1 Before We Get Started.- 1.1 What Is TEX?.- 1.2 Complexity and Power of Systems.- 1.3 Summary.- 2 Processing with TEX.- 2.1 Properties and Capabilities of TEX.- 2.1.1 A Convention About Input and Output of TEX.- 2.1.2 The Structure of TEX’s Input.- 2.1.3 The Extensibility of TEX.- 2.1.4 Processing a Document with TEX.- 2.2 Macros, Macro Packages and Formats.- 2.2.1 Some Basic Terminology.- 2.2.2 The Different Meanings of the Word TEX.- 2.2.3 Standard Macro Packages (Formats) of TEX.- 2.3 Files Accessed by TEX.- 2.4 Preparations for Using TEX Efficiently.- 2.4.1 Maintaining Your Own TEX Notebook and File.- 2.4.2 Choosing a Good Text Editor Is Important.- 2.5 Utilities.- 2.6 Information about TEX.- 2.6.1 The Original Books Describing TEX and METAFONT.- 2.6.2 TUG, the TEX Users Group.- 2.6.3 TEX is a Public Domain Software Product.- 2.6.4 Electronic Mailing Lists.- 2.7 Entering Text.- 2.7.1 Letters and Digits.- 2.7.2 Special Characters in TEX.- 2.7.3 Minus Sign, Hyphen, En-Dash and Em-Dash.- 2.8 The Space, Tab and End-of-Line Characters.- 2.8.1 Related Definitions.- 2.8.2 Rules Governing Spaces, Tabs and End-of-Line Characters.- 2.9 Organizing Your TEX Sources.- 2.10 How to Experiment with TEX.- 2.11 Summary.- 3 Registers, Numbers, and Counter Registers In Particular.- 3.1 Registers in General.- 3.2 Register Arithmetic.- 3.2.1 Assignments of Values to Registers.- 3.2.2 Arithmetic in TEX.- 3.3 Numbers and Counter Registers in TEX.- 3.3.1 Numerical Constants.- 3.3.2 Characters, Character-Based Constants, etc.- 3.3.3 The Different Notations of Numerical Constants.- 3.3.4 Printing Numerical Values, \number, \romannumeral.- 3.3.5 Printing a Character Based on Its Character Code, \char, \PrintAlph.- 3.3.6 Counter Registers, \newcount.- 3.3.7 Assign a Name to a Counter Register, \countdef.- 3.3.8 Arithmetic with Counter Registers.- 3.3.9 Modulo Arithmetic, the Definition of Macro \ModuloOneAdvanceNumCond.- 3.3.10 Counter Parameters.- 3.3.11 Numerical Conditionals, \ifnum, \ifcase.- 3.3.12 Computing the Absolute Value.- 3.3.13 Modulo Computation, \IModN.- 3.3.14 Compute the Value in a Certain Position, \ValueOfDecimalPosition.- 3.3.15 The Definition of Macro \LargestDecimalPlace and Its Use.- 3.3.16 Printing a Number in Textual Form.- 3.4 Generic Counter Register Macros.- 3.4.1 Printing Counter Registers, \arabic, \roman, \Roman, \alph, \Alph.- 3.4.2 Macros to Administer Counter Registers.- 3.4.3 The Definition of Macro \ReassignCounter.- 3.4.4 Examples Using the Counter Register Macros.- 3.5 Summary.- 4 More on Registers, Dimensions.- 4.1 Dimensions and Dimension Units.- 4.1.1 “Absolute” Dimension Units.- 4.1.2 “Font Relative” Dimension Units.- 4.1.3 Writing Dimensions in TEX.- 4.1.4 “Infinite” Dimension Units.- 4.1.5 True Dimensions and Global Magnification.- 4.1.6 Saving Tokens When Writing Dimension Values.- 4.1.7 Dimension Registers, \dimen.- 4.1.8 The Largest Legal Dimension, \maxdimen.- 4.1.9 Dimension Parameters.- 4.1.10 A Rounding Error Problem.- 4.1.11 Computing an Absolute Dimension.- 4.2 Glue Registers.- 4.2.1 Glue Registers in General.- 4.2.2 Glue Parameters.- 4.3 Math Glue Registers.- 4.4 Mixing Counter, Dimension and Glue Registers.- 4.5 Box Registers.- 4.5.1 Allocating a New Box Register, \newbox.- 4.5.2 Box Register States.- 4.5.3 Retrieving the Content of a Box Register, \box, \copy.- 4.5.4 Loading Box Registers, \setbox.- 4.5.5 Exchanging Two Box Registers, \SwapBoxRegs.- 4.5.6 Clearing a Box Register, \ClearBoxReg.- 4.5.7 Conditionals Related to Box Registers, \ReportBoxType.- 4.5.8 Accessing the Dimensions of a Box Register’s Content, \ht, \dp, \wd.- 4.5.9 Modifying the Dimensions of a Box Stored in a Box Register.- 4.5.10 Arithmetic with Dimensions of Box Registers, \AdvanceBoxDimension, \OverallSize.- 4.5.11 Dimensions of Void Box Registers.- 4.5.12 Generating an Empty Box, \EmptyBox.- 4.5.13 Setting All Dimensions of a Box Register to Zero, \ZeroBox, \ZeroBoxOut.- 4.5.14 Dumping the Contents of a Box Register into the Log File: \showbox, \showboxdepth, \showboxbreadth.- 4.5.15 The Definitions of Macros \ShowBoxAll, \ShowBoxDepthOne and \ShowBoxDepthTwo.- 4.5.16 Grouping and Box Register Dimensions.- 4.6 Summary of the \new… Macros.- 4.6.1 A List of All \new… Macros.- 4.6.2 \outer-free Definitions of the \new… Macros.- 4.6.3 Name Conflicts in \new… Macros.- 4.7 Dumping All Parameters into the Logfile.- 4.8 Summary.- 5 Glue, Leaders and Rules.- 5.1 Basic Properties of Glue.- 5.2 Horizontal Glue.- 5.2.1 Glue Without Stretch- and Shrinkability, Negative Glue.- 5.2.2 Getting Glue to Stretch and Shrink.- 5.2.3 Stretching, Overstretching, Shrinking and Overshrinking of Glue.- 5.3 Badness of Boxes.- 5.3.1 Computing the Badness.- 5.3.2 Computing the Badness When Shrinking Occurs.- 5.3.3 The Counter Parameter \badness.- 5.3.4 Examples of TEX’s Badness Computations.- 5.3.5 Overfull and Underfull Boxes, \hbadness, \vbadness.- 5.3.6 The Marking of Overfull Horizontal Boxes, \overfullrule.- 5.3.7 Dimension Parameters \hfuzz, \vfuzz.- 5.3.8 Stretching of Multiple Glues.- 5.4 Glue with Infinite Stretchability and Shrinkability.- 5.4.1 “Infinite” Units of Dimension.- 5.4.2 More on the Use of Infinite Units.- 5.4.3 \hfil, \hfill, \hss, \hfilneg.- 5.4.4 The Hierarchy in the Dimensions Units of the Stretchability and Shrinkability of Glues.- 5.4.5 Examples Involving Glue with Infinite Stretchabilities.- 5.4.6 Glue Is a Discardable Item.- 5.4.7 Zero Glue Versus No Glue.- 5.4.8 Kern, \kern.- 5.4.9 Macros of the Plain Format Relating to Horizontal Glue and Kern.- 5.5 Vertical Glue, \vskip.- 5.5.1 Implicit Vertical Glues, Glue Parameters.- 5.5.2 Macros of the Plain Format Generating Vertical Glue, \smallskip, \medskip, \bigskip.- 5.5.3 \vfil, \vfill, \vss, \vfilneg.- 5.5.4 Examples of Explicit Vertical Glue.- 5.6 Leaders.- 5.6.1 Leader Definitions Based on Rules, “Visible Glue”.- 5.6.2 Leaders Based on Boxes.- 5.6.3 Leader Example Macros.- 5.6.4 Sample Figure Source Codes.- 5.6.5 Leader Related Macro Definitions in the Plain Format of TEX.- 5.7 Rules.- 5.7.1 Rule Dimensions.- 5.7.2 Keywords height, depth and width.- 5.7.3 Examples of Rules.- 5.8 Penalties.- 5.8.1 Penalty Values.- 5.8.2 Macros Involving Penalties.- 5.9 Summary.- 6 Boxes.- 6.1 Basics About Boxes, Box Types.- 6.1.1 Coding a Box.- 6.1.2 Reference Point and Dimensions of Boxes.- 6.2 Horizontal Boxes (Hboxes).- 6.2.1 Making Boxes Visible.- 6.2.2 The Contents of an Hbox.- 6.2.3 The Building of an Hbox.- 6.2.4 Implicit Grouping and Hboxes.- 6.2.5 Characters Are Almost Hboxes.- 6.2.6 The \null Macro.- 6.2.7 How to Structure the Source Code of an \hbox Command.- 6.2.8 \hbox\bgroup… \egroup.- 6.3 Examples of Building Horizontal Boxes.- 6.3.1 Characters in Hboxes.- 6.3.2 Other Boxes Inside an Hbox.- 6.3.3 Using Boxes Stored in Box Registers.- 6.3.4 Raising and Lowering Boxes, \raise, \lower.- 6.3.5 More \raise and \lower Examples.- 6.3.6 Vertical Boxes Inside Horizontal Boxes.- 6.3.7 Horizontal Glue Inside Hboxes.- 6.3.8 Vertical Rules Inside Hboxes.- 6.3.9 Mathematical Formulas Inside Hboxes.- 6.4 Determining the Dimensions of Hboxes.- 6.4.1 A Little Bit of Theory.- 6.4.2 Examples of Width Computations of Hboxes.- 6.4.3 Computing Height and Depth of an Hbox.- 6.4.4 Empty Hboxes Built with \hbox to ?dimen?.- 6.5 Hboxes of Zero or Nearly Zero Width, \hbox to Opt {…}.- 6.5.1 The Problem of Overprinting Two Characters.- 6.5.2 Macros \rlap and \llap.- 6.5.3 Poor Man’s Boldface, Macro \BoldfaceFake.- 6.5.4 Constructing a Special Symbol.- 6.5.5 Solving the Same Problem Using Box Registers.- 6.6 \…line Macros \line, \leftline, \rightline and \centerline.- 6.6.1 The Definitions of the \… line Macros.- 6.6.2 The Definitions of Macros \LeftLeaderLine, \RightLeaderLine, and \CenterLeaderLine.- 6.6.3 Examples.- 6.6.4 Paragraphs Preceding \… line Calls.- 6.6.5 \line… Macros and Glue Used.- 6.6.6 Using the \line… Macros Inside a Vbox.- 6.7 Generating More Hboxes.- 6.7.1 Hboxes Prevent Hyphenation.- 6.7.2 Generating t