Für diesen Artikel ist leider kein Bild verfügbar.

TeX in Practice

Buch | Hardcover
656 Seiten
1993
Springer-Verlag New York Inc.
978-0-387-97597-9 (ISBN)
85,55 inkl. MwSt
zur Neuauflage
  • Titel erscheint in neuer Auflage
  • Artikel merken
Zu diesem Artikel existiert eine Nachauflage
TEX has always been regarded as the most elegant and powerful system for computer typesetting. However, its widespread use beyond academia was hampered by its complexity. Recently, fairly good TEX implementations have come out for PC's putting TEX on the disks of many people including writers, designers, desktop publishers, and engineers. Consequently, interest in TEX has surged. What is needed at this point is a book that teaches step-by-step how to use TEX, illustrating each step with relevant examples. This is exactly what S. v. Bechtolsheim's book does. It is a tutorial and guide for the first-time user of TEX, as well as a reference for the more experienced "TEXpert." TEX in Practice will appear as a four volume set, starting with TEX in Practice, Volume 1: Basics; TEX in Practice, Volume 2: Paragraphs, Math and Fonts; TEX in Practice, Volume 3: Tokens, Macros; TEX in Practice, Volume 4: Output Routines, Tables. TEX in Practice will be an indispensable reference for the TEX community and a guide through the first step for the TEX novice.

18 Tokens, Category Codes, Verbatim Modes.- 18.1 Tokens.- 18.1.1 The Basic Structure of the TEX Program.- 18.1.2 What Are Tokens?.- 18.1.3 Token Types.- 18.1.4 Spaces and Control Sequences.- 18.1.5 Character Codes.- 18.1.6 Category Codes, ?catcode.- 18.1.7 Experiments with Category Codes.- 18.1.8 Initial Category Codes.- 18.1.9 What Is a Letter in TEX?.- 18.1.10 /string and Category Codes.- 18.1.11 /the and Category Codes, /DropPoints.- 18.1.12 The "At" Sign ("@"18 Tokens, Category Codes, Verbatim Modes.- 18.1 Tokens.- 18.1.1 The Basic Structure of the TEX Program.- 18.1.2 What Are Tokens?.- 18.1.3 Token Types.- 18.1.4 Spaces and Control Sequences.- 18.1.5 Character Codes.- 18.1.6 Category Codes, ?catcode.- 18.1.7 Experiments with Category Codes.- 18.1.8 Initial Category Codes.- 18.1.9 What Is a Letter in TEX?.- 18.1.10 /string and Category Codes.- 18.1.11 /the and Category Codes, /DropPoints.- 18.1.12 The "At" Sign ("@").- 18.1.13 The Return Character, /endlinechar.- 18.2 Active Characters.- 18.2.1 The Tilde Is Usually an Active Character.- 18.2.2 Making the Space Character Active, ?space, /obeyspaces.- 18.2.3 The Definition of Macro /ObeySpaces.- 18.2.4 Making the End-Of-Line Character Active, ?obeylines.- 18.2.5 The Definition of Macro /Obeylines.- 18.2.6 Ignoring Active End-of-Line Characters.- 18.2.7 Undoing the Effect of the /obey and /0bey Commands.- 18.2.8 Counting the Number of Lines in a File, /NumberOfLinesInFile.- 18.2.9 Active Characters in Math Mode.- 18.3 Verbatim Modes.- 18.3.1 Auxiliary Macros for Verbatim Modes.- 18.3.2 A Simple Inline Verbatim Mode.- 18.3.3 Showing the Works of /Verb.- 18.3.4 An Improved Inline Verbatim Mode, /Verb.- 18.3.5 Display Verbatim Modes.- 18.3.6 /BeginVerbatim /EndVerbatim Enclose Verbatim Text.- 18.3.7 The Source Code of the Display Verbatim Mode.- 18.3.8 Verbatim Listings of External Files: /ListVerb.- 18.3.9 The Definition of Macro /ListVerbIf FileExists.- 18.3.10 The Definition of Macro /ListVerbAndSource.- 18.3.11 An Example Using Macro /ListVerbAndSource.- 18.3.12 Improving the Display Verbatim Mode.- 18.3.13 The Source Code of the New Verbatim Mode.- 18.3.14 The Verbatim Macros Used for this Series.- 18.3.15 Verbatim Macros for this Series.- 18.3.16 Input as Verbatim Text and IfeX Source.- 18.4 Uppercase and Lowercase Characters, /uccode, /lccode, /uppercase, etc.- 18.5 Summary.- 19 More on Tokens.- 19.1 Converting Character Strings to Tokens, and Tokens Back to Character Strings.- 19.1.1 Token to String Conversions, /string.- 19.1.2 /escapechar.- 19.1.3 /string, /uppercase and Category Codes.- 19.1.4 Converting Strings to Tokens, /csname /endcsname.- 19.1.5 Overview of Applications of /csname.- 19.1.6 /csname... /endcsname and /relax.- 19.1.7 Macro Calls Inside a /csname, /endcsname Sequence.- 19.1.8 Macro Definitions Based on /csname, /NameDef, etc.- 19.1.9 Examples Using the Above Macros.- 19.1.10 An Associative Memory.- 19.2 Array Macros.- 19.2.1 Overview of the Provided Array Functions.- 19.2.2 Beginning of the Source Code.- 19.2.3 The Definition of /CCreateArray to Create an Array.- 19.2.4 The Definition of Macro /ConvertStringIntoArray.- 19.2.5 The Definition of Macro /CCheckIndex.- 19.2.6 Retrieving an Array Element Value.- 19.2.7 Retrieving an Interval of Array Element Values.- 19.2.8 Loading an Array Element Value.- 19.2.9 Loading an Array Element Value Using /edef.- 19.2.10 The Definition of Macro /CShowArray.- 19.2.11 An Example of Using the Array Macros.- 19.3 Cross-Referencing Using /csname.../endcsname.- 19.3.1 Overview of the Cross-Reference Macros.- 19.3.2 General Overview of Processing a Document with Symbolic Cross-References.- 19.3.3 The Source Code of the Cross-Reference Macros.- 19.3.4 Defining a Label, /QNewLabel, /also Label.- 19.3.5 Referring to Entity Numbers and Page Numbers, /Ref, /PageRef.- 19.3.6 Defining A Label, /Label.- 19.3.7 An Example Using the Cross-Reference Macros.- 19.3.8 Default Labels for /Ref and /PageRef.- 19.3.9 Testing for Duplicate Labels, a New /NewLabel.- 19.3.10 Checking Whether Labels Changed, /CheckLabels.- 19.3.11 Extending Cross-References.- 19.3.12 Is There An Alternative to a Two-Pass Approach?.- 19.4 Curly Braces.- 19.4.1 Overview.- 19.4.2 The Idea of Grouping.- 19.4.3 Nested Grouping.- 19.4.4 The Category Codes of Curly Braces.- 19.4.5 Empty Groups.- 19.4.6 /bgroup and /egroup.- 19.4.7 /bgroup and /egroup in Boxes, Insertions and Tables Built by /haligns.- 19.4.8 Using Grouping to Keep Track of the Correct Nesting of Environments.- 19.4.9 Forming Groups Using /begingroup and /endgroup.- 19.4.10 Implicit Grouping.- 19.4.11 Global Assignments (/global) and Global Definitions (/gdef, /xdef).- 19.4.12 Global Changes and /globaldefs.- 19.4.13 Nested Groups and /global.- 19.4.14 Grouping and Box Registers.- 19.4.15 /aftergroup.- 19.4.16 What Does Not Follow Grouping in TEK?.- 19.4.17 Tracing Group Computations, /tracingrestores.- 19.5 Summary.- 20 Token Registers, TfeX List Processing.- 20.1 Token Registers.- 20.1.1 /toksdef, /newtoks.- 20.1.2 Loading Token Registers.- 20.1.3 Token Parameters.- 20.1.4 Collecting Information with Token Registers, /AddInf o, /CollectTokens.- 20.1.5 List Processing with Token Registers, /ForEachToken.- 20.2 TEX Lists.- 20.2.1 Executing a List.- 20.2.2 Overview List Macros.- 20.2.3 The Definition of Macro /EmptyListConditional.- 20.2.4 The Definition of Macros /LeftAppendElement, /RightAppendElement.- 20.2.5 The Definitions of Macro /Car0f List, /Cdr0f List.- 20.2.6 The Definition of Macro /DropFirstElementOf List.- 20.2.7 The Definition of Macro /CarCar0f List.- 20.2.8 The Definition of Macro /ForEveryListElement.- 20.2.9 The Definition of Macro /Member0f ListConditional.- 20.2.10 Reversing a List.- 20.2.11 Accessing the Last Element of a List.- 20.2.12 Dropping the Last Element of a List.- 20.2.13 Determining the Number of List Elements.- 20.2.14 Combining Two Lists.- 20.2.15 TEK-List Processing Examples.- 20.2.16 A Macro to Convert a List of Arguments into a "TEX-List," /ConvertArgsToListAndAppend.- 20.2.17 Converting a List of Words to a "TEX-List,"18 Tokens, Category Codes, Verbatim Modes.- 18.1 Tokens.- 18.1.1 The Basic Structure of the TEX Program.- 18.1.2 What Are Tokens?.- 18.1.3 Token Types.- 18.1.4 Spaces and Control Sequences.- 18.1.5 Character Codes.- 18.1.6 Category Codes, ?catcode.- 18.1.7 Experiments with Category Codes.- 18.1.8 Initial Category Codes.- 18.1.9 What Is a Letter in TEX?.- 18.1.10 /string and Category Codes.- 18.1.11 /the and Category Codes, /DropPoints.- 18.1.12 The "At" Sign ("@").- 18.1.13 The Return Character, /endlinechar.- 18.2 Active Characters.- 18.2.1 The Tilde Is Usually an Active Character.- 18.2.2 Making the Space Character Active, ?space, /obeyspaces.- 18.2.3 The Definition of Macro /ObeySpaces.- 18.2.4 Making the End-Of-Line Character Active, ?obeylines.- 18.2.5 The Definition of Macro /Obeylines.- 18.2.6 Ignoring Active End-of-Line Characters.- 18.2.7 Undoing the Effect of the /obey and /0bey Commands.- 18.2.8 Counting the Number of Lines in a File, /NumberOfLinesInFile.- 18.2.9 Active Characters in Math Mode.- 18.3 Verbatim Modes.- 18.3.1 Auxiliary Macros for Verbatim Modes.- 18.3.2 A Simple Inline Verbatim Mode.- 18.3.3 Showing the Works of /Verb.- 18.3.4 An Improved Inline Verbatim Mode, /Verb.- 18.3.5 Display Verbatim Modes.- 18.3.6 /BeginVerbatim /EndVerbatim Enclose Verbatim Text.- 18.3.7 The Source Code of the Display Verbatim Mode.- 18.3.8 Verbatim Listings of External Files: /ListVerb.- 18.3.9 The Definition of Macro /ListVerbIf FileExists.- 18.3.10 The Definition of Macro /ListVerbAndSource.- 18.3.11 An Example Using Macro /ListVerbAndSource.- 18.3.12 Improving the Display Verbatim Mode.- 18.3.13 The Source Code of the New Verbatim Mode.- 18.3.14 The Verbatim Macros Used for this Series.- 18.3.15 Verbatim Macros for this Series.- 18.3.16 Input as Verbatim Text and IfeX Source.- 18.4 Uppercase and Lowercase Characters, /uccode, /lccode, /uppercase, etc.- 18.5 Summary.- 19 More on Tokens.- 19.1 Converting Character Strings to Tokens, and Tokens Back to Character Strings.- 19.1.1 Token to String Conversions, /string.- 19.1.2 /escapechar.- 19.1.3 /string, /uppercase and Category Codes.- 19.1.4 Converting Strings to Tokens, /csname /endcsname.- 19.1.5 Overview of Applications of /csname.- 19.1.6 /csname... /endcsname and /relax.- 19.1.7 Macro Calls Inside a /csname, /endcsname Sequence.- 19.1.8 Macro Definitions Based on /csname, /NameDef, etc.- 19.1.9 Examples Using the Above Macros.- 19.1.10 An Associative Memory.- 19.2 Array Macros.- 19.2.1 Overview of the Provided Array Functions.- 19.2.2 Beginning of the Source Code.- 19.2.3 The Definition of /CCreateArray to Create an Array.- 19.2.4 The Definition of Macro /ConvertStringIntoArray.- 19.2.5 The Definition of Macro /CCheckIndex.- 19.2.6 Retrieving an Array Element Value.- 19.2.7 Retrieving an Interval of Array Element Values.- 19.2.8 Loading an Array Element Value.- 19.2.9 Loading an Array Element Value Using /edef.- 19.2.10 The Definition of Macro /CShowArray.- 19.2.11 An Example of Using the Array Macros.- 19.3 Cross-Referencing Using /csname.../endcsname.- 19.3.1 Overview of the Cross-Reference Macros.- 19.3.2 General Overview of Processing a Document with Symbolic Cross-References.- 19.3.3 The Source Code of the Cross-Reference Macros.- 19.3.4 Defining a Label, /QNewLabel, /also Label.- 19.3.5 Referring to Entity Numbers and Page Numbers, /Ref, /PageRef.- 19.3.6 Defining A Label, /Label.- 19.3.7 An Example Using the Cross-Reference Macros.- 19.3.8 Default Labels for /Ref and /PageRef.- 19.3.9 Testing for Duplicate Labels, a New /NewLabel.- 19.3.10 Checking Whether Labels Changed, /CheckLabels.- 19.3.11 Extending Cross-References.- 19.3.12 Is There An Alternative to a Two-Pass Approach?.- 19.4 Curly Braces.- 19.4.1 Overview.- 19.4.2 The Idea of Grouping.- 19.4.3 Nested Grouping.- 19.4.4 The Category Codes of Curly Braces.- 19.4.5 Empty Groups.- 19.4.6 /bgroup and /egroup.- 19.4.7 /bgroup and /egroup in Boxes, Insertions and Tables Built by /haligns.- 19.4.8 Using Grouping to Keep Track of the Correct Nesting of Environments.- 19.4.9 Forming Groups Using /begingroup and /endgroup.- 19.4.10 Implicit Grouping.- 19.4.11 Global Assignments (/global) and Global Definitions (/gdef, /xdef).- 19.4.12 Global Changes and /globaldefs.- 19.4.13 Nested Groups and /global.- 19.4.14 Grouping and Box Registers.- 19.4.15 /aftergroup.- 19.4.16 What Does Not Follow Grouping in TEK?.- 19.4.17 Tracing Group Computations, /tracingrestores.- 19.5 Summary.- 20 Token Registers, TfeX List Processing.- 20.1 Token Registers.- 20.1.1 /toksdef, /newtoks.- 20.1.2 Loading Token Registers.- 20.1.3 Token Parameters.- 20.1.4 Collecting Information with Token Registers, /AddInf o, /CollectTokens.- 20.1.5 List Processing with Token Registers, /ForEachToken.- 20.2 TEX Lists.- 20.2.1 Executing a List.- 20.2.2 Overview List Macros.- 20.2.3 The Definition of Macro /EmptyListConditional.- 20.2.4 The Definition of Macros /LeftAppendElement, /RightAppendElement.- 20.2.5 The Definitions of Macro /Car0f List, /Cdr0f List.- 20.2.6 The Definition of Macro /DropFirstElementOf List.- 20.2.7 The Definition of Macro /CarCar0f List.- 20.2.8 The Definition of Macro /ForEveryListElement.- 20.2.9 The Definition of Macro /Member0f ListConditional.- 20.2.10 Reversing a List.- 20.2.11 Accessing the Last Element of a List.- 20.2.12 Dropping the Last Element of a List.- 20.2.13 Determining the Number of List Elements.- 20.2.14 Combining Two Lists.- 20.2.15 TEK-List Processing Examples.- 20.2.16 A Macro to Convert a List of Arguments into a "TEX-List," /ConvertArgsToListAndAppend.- 20.2.17 Converting a List of Words to a "TEX-List," /WordsToTeXList.- 20.3 Using TfeK Lists for the Emulation of Arrays.- 20.3.1 The Definitions of Macros /IndexLastElement and /ArrayIndexCheck.- 20.3.2 Accessing and Modifying Array Elements.- 20.3.3 Modifying an ArrayElement.- 20.3.4 Inserting an Array Element.- 20.3.5 Deleting an Array Element, /DeleteArrayElement.- 20.3.6 Deleting a Group of Array Elements, /DeleteArrayEle-mentRange.- 20.3.7 Extracting a Subarray, /ExtractSubArray.- 20.3.8 Sample Code.- 20.4 Summary.- 21 Macros.- 21.1 Assigning a Meaning to a Control Sequence.- 21.2 Primitive Control Sequences.- 21.2.1 Examples of Primitive Control Sequences.- 21.2.2 Characters and Primitives.- 21.2.3 Primitives Versus Macros.- 21.2.4 Redefining Primitive Control Sequences.- 21.2.5 /show and /meaning Used with Primitives.- 21.3 Macros.- 21.3.1 Why Use Macros?.- 21.3.2 The Main Token List.- 21.3.3 Macro Definitions: Macro Names and Replacement Text.- 21.3.4 Expansion, Macro Calls, Macro Invocations.- 21.4 Some Simple Macro Examples.- 21.4.1 A Simple Macro to Print a Letterhead, /LetterHead.- 21.4.2 A Letterhead Macro with One Parameter, /LetterHeadA.- 21.4.3 Another Letterhead Macro with Two Parameters, /LetterHeadB.- 21.4.4 The Maximum Number of Parameters.- 21.4.5 Some Other Macro Examples.- 21.4.6 Printing Register Names and Values.- 21.4.7 Printing Multiple Spaces.- 21.4.8 /mac, a Macro to Print Control Sequences.- 21.4.9 Printing Logos.- 21.4.10 Macros Can Be for Lazy People.- 21.4.11 Other Series-Related Macros.- 21.5 The Theory of Macro Definitions.- 21.5.1 Separating Macro Definition and Macro Call.- 21.5.2 The Replacement Text of Macros.- 21.5.3 The Replacement Text of a Macro Does Not Form a Group.- 21.5.4 Redefining Macros.- 21.5.5 Macro Definitions Inside Groups, /gdef.- 21.5.6 Testing Whether a Token Is Defined, /Def inedConditional.- 21.5.7 The Definition of Macro /NewDef.- 21.5.8 The Definition of Macro /ReDef.- 21.5.9 /NewDef and /ReDef Examples.- 21.5.10 Undefined Macros.- 21.5.11 /show and /meaning with Macro Definitions.- 21.6 Macro Definitions Using /outer.- 21.6.1 /outer-Based Definitions in the Plain Format.- 21.6.2 Redefining /bye.- 21.7 Macros with Parameters.- 21.8 Macros with Undelimited Parameters.- 21.8.1 Macro Calls of Macros with Undelimited Parameters.- 21.8.2 The Curly Braces of Arguments of Undelimited Parameters.- 21.8.3 Empty Arguments.- 21.8.4 One More Look at Curly Braces of Arguments.- 21.8.5 Spaces and Undelimited Arguments.- 21.8.6 Gobbling Macros.- 21.9 Macros with Delimited Parameters.- 21.9.1 Some Initial Examples.- 21.9.2 Parameter Text Tokens Preceding the First Parameter.- 21.9.3 Choosing Delimiters of Delimited Parameters.- 21.9.4 Errors in Arguments with Delimited Parameters.- 21.9.5 Space, Return, and the Tab Character as Delimiters of Parameters.- 21.9.6 An Active End-Of-Line Character as a Delimiter.- 21.9.7 A Generic Macro for Defining Macros with a Parameter Delimited by an Active End-Of-Line Character, /GenAeol.- 21.9.8 Curly Braces in Delimited Parameters.- 21.9.9 Empty Arguments of Delimited Parameters.- 21.9.10 Gobbling Macros with Delimited Parameters.- 21.9.11 A Generic Gobbling Macro, /GobbleDoMore.- 21.9.12 More on Delimited Parameters.- 21.9.13 /everydisplay and Delimited Parameters.- 21.9.14 A Special Delimiter for Delimited Parameters.- 21.10 Mixed Parameter Types.- 21.10.1 Some Simple Examples.- 21.10.2 Another Example of Mixing Parameter Types, /ParFl.- 21.11 Spaces after Macro Calls, /ignorespaces.- 21.12 Summary.- 22 Macros, Expansion Issues.- 22.1 Expanded Macro Definitions, /edef.- 22.1.1 Some Initial /edef Macro Examples.- 22.1.2 The Expansion is Pushed All the Way Through.- 22.1.3 Suppressing Expansion in /edef-Based Macro Definitions with /noexpand.- 22.1.4 Undefined Tokens in /edef-Based Macro Definitions.- 22.1.5 /the and /edef-Based Macro Definitions.- 22.1.6 Comparing /def and /edef.- 22.1.7 Applications of /edef.- 22.1.8 Collecting Information with /edef.- 22.1.9 Conditionals Expanded in /edef.- 22.1.10 /edef and /char.- 22.1.11 /edef, /uppercase and /lowercase.- 22.1.12 /edef, Counter Registers, /the, /number, etc.- 22.1.13 Repeated Expansion.- 22.1.14 Redefining Macros Based on /edef.- 22.1.15 Global /edefs: /xdef.- 22.2 Macro Expansion.- 22.2.1 Tracing Macro Expansion, /tracingmacros.- 22.2.2 Tracing Memory Use and Other Usage Values, /tracingstats.- 22.2.3 Tracing Command Execution, /tracingcommands.- 22.2.4 Controlling the Output Generated by /tracing... Commands, /tracingonline.- 22.3 Placement of Macro Calls and Arguments.- 22.3.1 Examples.- 22.3.2 Macros with More Than Nine Parameters.- 22.4 Category Codes and Parameters.- 22.5 Nested Macro Definitions.- 22.5.1 A Simple Macro Definition Inside Another Macro Definition.- 22.5.2 A Nested Macro Definition with Parameters.- 22.5.3 A Table Defined Inside a Macro Definition.- 22.5.4 Self-Redefining Macros.- 22.6.Defining "/long"Macros.- 22.7.Organizing Your Own Macros.- 22.7.1 The Writing of Macros.- 22.7.2 Loading Macros from Separate Macro Source Files.- 22.7.3 The Dynamic Loading of Macros.- 22.7.4 Spurious Space in Macro Definitions.- 22.7.5 Compact Glue and Rule Specifications.- 22.8 Keyword Parameters.- 22.9 Summary.- 23 More on Macro-Related Items.- 23.1 /afterassignment.- 23.1.1 /magnificant Uses/afterassignment.- 23.1.2 What Is /afterassignment Good For?.- 23.1.3 The Lifetime of /afterassignment.- 23.1.4 Multiple /afterassignments.- 23.1.5 What Is an Assignment for /afterassignment.- 23.1.6 /afterassignment And Grouping.- 23.1.7 Using /afterassignment to Gobble an Opening Curly Brace.- 23.1.8 Macros, Parameters, and /afterassignment.- 23.2 /Let: Making Control Sequences Equivalent.- 23.2.1 List of Application of /let.- 23.2.2 /let and Macro Tokens.- 23.2.3 /let to Duplicate Primitives, /endgraf.- 23.3. /let and Undefined Tokens.- 23.3.1 /let and Grouping.- 23.3.2 The Pitfalls of /let: Spaces and Equal Signs.- 23.3.3 Recursively Picking Up One Token at a Time.- 23.3.4 Suppressing the Expansion of Tokens in /edefs Using /let.- 23.4 Looking Ahead with /futurelet.- 23.4.1 Application Ahead with /futurelet.- 23.4.2 Using /futurelet in Macros with Optional Arguments.- 23.4.3 /future-Related Macros, /DoFuturelet, /DoLongFuture.- 23.4.4 A Generic Macro for Macros with Optional Arguments /DblArg.- 23.4.5 /OptArgX, Another Macro for Generic Optional Argument Handling.- 23.4.6 A Generic Macro to Support Macros with "Modification Indicators,"18 Tokens, Category Codes, Verbatim Modes.- 18.1 Tokens.- 18.1.1 The Basic Structure of the TEX Program.- 18.1.2 What Are Tokens?.- 18.1.3 Token Types.- 18.1.4 Spaces and Control Sequences.- 18.1.5 Character Codes.- 18.1.6 Category Codes, ?catcode.- 18.1.7 Experiments with Category Codes.- 18.1.8 Initial Category Codes.- 18.1.9 What Is a Letter in TEX?.- 18.1.10 /string and Category Codes.- 18.1.11 /the and Category Codes, /DropPoints.- 18.1.12 The "At" Sign ("@").- 18.1.13 The Return Character, /endlinechar.- 18.2 Active Characters.- 18.2.1 The Tilde Is Usually an Active Character.- 18.2.2 Making the Space Character Active, ?space, /obeyspaces.- 18.2.3 The Definition of Macro /ObeySpaces.- 18.2.4 Making the End-Of-Line Character Active, ?obeylines.- 18.2.5 The Definition of Macro /Obeylines.- 18.2.6 Ignoring Active End-of-Line Characters.- 18.2.7 Undoing the Effect of the /obey and /0bey Commands.- 18.2.8 Counting the Number of Lines in a File, /NumberOfLinesInFile.- 18.2.9 Active Characters in Math Mode.- 18.3 Verbatim Modes.- 18.3.1 Auxiliary Macros for Verbatim Modes.- 18.3.2 A Simple Inline Verbatim Mode.- 18.3.3 Showing the Works of /Verb.- 18.3.4 An Improved Inline Verbatim Mode, /Verb.- 18.3.5 Display Verbatim Modes.- 18.3.6 /BeginVerbatim /EndVerbatim Enclose Verbatim Text.- 18.3.7 The Source Code of the Display Verbatim Mode.- 18.3.8 Verbatim Listings of External Files: /ListVerb.- 18.3.9 The Definition of Macro /ListVerbIf FileExists.- 18.3.10 The Definition of Macro /ListVerbAndSource.- 18.3.11 An Example Using Macro /ListVerbAndSource.- 18.3.12 Improving the Display Verbatim Mode.- 18.3.13 The Source Code of the New Verbatim Mode.- 18.3.14 The Verbatim Macros Used for this Series.- 18.3.15 Verbatim Macros for this Series.- 18.3.16 Input as Verbatim Text and IfeX Source.- 18.4 Uppercase and Lowercase Characters, /uccode, /lccode, /uppercase, etc.- 18.5 Summary.- 19 More on Tokens.- 19.1 Converting Character Strings to Tokens, and Tokens Back to Character Strings.- 19.1.1 Token to String Conversions, /string.- 19.1.2 /escapechar.- 19.1.3 /string, /uppercase and Category Codes.- 19.1.4 Converting Strings to Tokens, /csname /endcsname.- 19.1.5 Overview of Applications of /csname.- 19.1.6 /csname... /endcsname and /relax.- 19.1.7 Macro Calls Inside a /csname, /endcsname Sequence.- 19.1.8 Macro Definitions Based on /csname, /NameDef, etc.- 19.1.9 Examples Using the Above Macros.- 19.1.10 An Associative Memory.- 19.2 Array Macros.- 19.2.1 Overview of the Provided Array Functions.- 19.2.2 Beginning of the Source Code.- 19.2.3 The Definition of /CCreateArray to Create an Array.- 19.2.4 The Definition of Macro /ConvertStringIntoArray.- 19.2.5 The Definition of Macro /CCheckIndex.- 19.2.6 Retrieving an Array Element Value.- 19.2.7 Retrieving an Interval of Array Element Values.- 19.2.8 Loading an Array Element Value.- 19.2.9 Loading an Array Element Value Using /edef.- 19.2.10 The Definition of Macro /CShowArray.- 19.2.11 An Example of Using the Array Macros.- 19.3 Cross-Referencing Using /csname.../endcsname.- 19.3.1 Overview of the Cross-Reference Macros.- 19.3.2 General Overview of Processing a Document with Symbolic Cross-References.- 19.3.3 The Source Code of the Cross-Reference Macros.- 19.3.4 Defining a Label, /QNewLabel, /also Label.- 19.3.5 Referring to Entity Numbers and Page Numbers, /Ref, /PageRef.- 19.3.6 Defining A Label, /Label.- 19.3.7 An Example Using the Cross-Reference Macros.- 19.3.8 Default Labels for /Ref and /PageRef.- 19.3.9 Testing for Duplicate Labels, a New /NewLabel.- 19.3.10 Checking Whether Labels Changed, /CheckLabels.- 19.3.11 Extending Cross-References.- 19.3.12 Is There An Alternative to a Two-Pass Approach?.- 19.4 Curly Braces.- 19.4.1 Overview.- 19.4.2 The Idea of Grouping.- 19.4.3 Nested Grouping.- 19.4.4 The Category Codes of Curly Braces.- 19.4.5 Empty Groups.- 19.4.6 /bgroup and /egroup.- 19.4.7 /bgroup and /egroup in Boxes, Insertions and Tables Built by /haligns.- 19.4.8 Using Grouping to Keep Track of the Correct Nesting of Environments.- 19.4.9 Forming Groups Using /begingroup and /endgroup.- 19.4.10 Implicit Grouping.- 19.4.11 Global Assignments (/global) and Global Definitions (/gdef, /xdef).- 19.4.12 Global Changes and /globaldefs.- 19.4.13 Nested Groups and /global.- 19.4.14 Grouping and Box Registers.- 19.4.15 /aftergroup.- 19.4.16 What Does Not Follow Grouping in TEK?.- 19.4.17 Tracing Group Computations, /tracingrestores.- 19.5 Summary.- 20 Token Registers, TfeX List Processing.- 20.1 Token Registers.- 20.1.1 /toksdef, /newtoks.- 20.1.2 Loading Token Registers.- 20.1.3 Token Parameters.- 20.1.4 Collecting Information with Token Registers, /AddInf o, /CollectTokens.- 20.1.5 List Processing with Token Registers, /ForEachToken.- 20.2 TEX Lists.- 20.2.1 Executing a List.- 20.2.2 Overview List Macros.- 20.2.3 The Definition of Macro /EmptyListConditional.- 20.2.4 The Definition of Macros /LeftAppendElement, /RightAppendElement.- 20.2.5 The Definitions of Macro /Car0f List, /Cdr0f List.- 20.2.6 The Definition of Macro /DropFirstElementOf List.- 20.2.7 The Definition of Macro /CarCar0f List.- 20.2.8 The Definition of Macro /ForEveryListElement.- 20.2.9 The Definition of Macro /Member0f ListConditional.- 20.2.10 Reversing a List.- 20.2.11 Accessing the Last Element of a List.- 20.2.12 Dropping the Last Element of a List.- 20.2.13 Determining the Number of List Elements.- 20.2.14 Combining Two Lists.- 20.2.15 TEK-List Processing Examples.- 20.2.16 A Macro to Convert a List of Arguments into a "TEX-List," /ConvertArgsToListAndAppend.- 20.2.17 Converting a List of Words to a "TEX-List," /WordsToTeXList.- 20.3 Using TfeK Lists for the Emulation of Arrays.- 20.3.1 The Definitions of Macros /IndexLastElement and /ArrayIndexCheck.- 20.3.2 Accessing and Modifying Array Elements.- 20.3.3 Modifying an ArrayElement.- 20.3.4 Inserting an Array Element.- 20.3.5 Deleting an Array Element, /DeleteArrayElement.- 20.3.6 Deleting a Group of Array Elements, /DeleteArrayEle-mentRange.- 20.3.7 Extracting a Subarray, /ExtractSubArray.- 20.3.8 Sample Code.- 20.4 Summary.- 21 Macros.- 21.1 Assigning a Meaning to a Control Sequence.- 21.2 Primitive Control Sequences.- 21.2.1 Examples of Primitive Control Sequences.- 21.2.2 Characters and Primitives.- 21.2.3 Primitives Versus Macros.- 21.2.4 Redefining Primitive Control Sequences.- 21.2.5 /show and /meaning Used with Primitives.- 21.3 Macros.- 21.3.1 Why Use Macros?.- 21.3.2 The Main Token List.- 21.3.3 Macro Definitions: Macro Names and Replacement Text.- 21.3.4 Expansion, Macro Calls, Macro Invocations.- 21.4 Some Simple Macro Examples.- 21.4.1 A Simple Macro to Print a Letterhead, /LetterHead.- 21.4.2 A Letterhead Macro with One Parameter, /LetterHeadA.- 21.4.3 Another Letterhead Macro with Two Parameters, /LetterHeadB.- 21.4.4 The Maximum Number of Parameters.- 21.4.5 Some Other Macro Examples.- 21.4.6 Printing Register Names and Values.- 21.4.7 Printing Multiple Spaces.- 21.4.8 /mac, a Macro to Print Control Sequences.- 21.4.9 Printing Logos.- 21.4.10 Macros Can Be for Lazy People.- 21.4.11 Other Series-Related Macros.- 21.5 The Theory of Macro Definitions.- 21.5.1 Separating Macro Definition and Macro Call.- 21.5.2 The Replacement Text of Macros.- 21.5.3 The Replacement Text of a Macro Does Not Form a Group.- 21.5.4 Redefining Macros.- 21.5.5 Macro Definitions Inside Groups, /gdef.- 21.5.6 Testing Whether a Token Is Defined, /Def inedConditional.- 21.5.7 The Definition of Macro /NewDef.- 21.5.8 The Definition of Macro /ReDef.- 21.5.9 /NewDef and /ReDef Examples.- 21.5.10 Undefined Macros.- 21.5.11 /show and /meaning with Macro Definitions.- 21.6 Macro Definitions Using /outer.- 21.6.1 /outer-Based Definitions in the Plain Format.- 21.6.2 Redefining /bye.- 21.7 Macros with Parameters.- 21.8 Macros with Undelimited Parameters.- 21.8.1 Macro Calls of Macros with Undelimited Parameters.- 21.8.2 The Curly Braces of Arguments of Undelimited Parameters.- 21.8.3 Empty Arguments.- 21.8.4 One More Look at Curly Braces of Arguments.- 21.8.5 Spaces and Undelimited Arguments.- 21.8.6 Gobbling Macros.- 21.9 Macros with Delimited Parameters.- 21.9.1 Some Initial Examples.- 21.9.2 Parameter Text Tokens Preceding the First Parameter.- 21.9.3 Choosing Delimiters of Delimited Parameters.- 21.9.4 Errors in Arguments with Delimited Parameters.- 21.9.5 Space, Return, and the Tab Character as Delimiters of Parameters.- 21.9.6 An Active End-Of-Line Character as a Delimiter.- 21.9.7 A Generic Macro for Defining Macros with a Parameter Delimited by an Active End-Of-Line Character, /GenAeol.- 21.9.8 Curly Braces in Delimited Parameters.- 21.9.9 Empty Arguments of Delimited Parameters.- 21.9.10 Gobbling Macros with Delimited Parameters.- 21.9.11 A Generic Gobbling Macro, /GobbleDoMore.- 21.9.12 More on Delimited Parameters.- 21.9.13 /everydisplay and Delimited Parameters.- 21.9.14 A Special Delimiter for Delimited Parameters.- 21.10 Mixed Parameter Types.- 21.10.1 Some Simple Examples.- 21.10.2 Another Example of Mixing Parameter Types, /ParFl.- 21.11 Spaces after Macro Calls, /ignorespaces.- 21.12 Summary.- 22 Macros, Expansion Issues.- 22.1 Expanded Macro Definitions, /edef.- 22.1.1 Some Initial /edef Macro Examples.- 22.1.2 The Expansion is Pushed All the Way Through.- 22.1.3 Suppressing Expansion in /edef-Based Macro Definitions with /noexpand.- 22.1.4 Undefined Tokens in /edef-Based Macro Definitions.- 22.1.5 /the and /edef-Based Macro Definitions.- 22.1.6 Comparing /def and /edef.- 22.1.7 Applications of /edef.- 22.1.8 Collecting Information with /edef.- 22.1.9 Conditionals Expanded in /edef.- 22.1.10 /edef and /char.- 22.1.11 /edef, /uppercase and /lowercase.- 22.1.12 /edef, Counter Registers, /the, /number, etc.- 22.1.13 Repeated Expansion.- 22.1.14 Redefining Macros Based on /edef.- 22.1.15 Global /edefs: /xdef.- 22.2 Macro Expansion.- 22.2.1 Tracing Macro Expansion, /tracingmacros.- 22.2.2 Tracing Memory Use and Other Usage Values, /tracingstats.- 22.2.3 Tracing Command Execution, /tracingcommands.- 22.2.4 Controlling the Output Generated by /tracing... Commands, /tracingonline.- 22.3 Placement of Macro Calls and Arguments.- 22.3.1 Examples.- 22.3.2 Macros with More Than Nine Parameters.- 22.4 Category Codes and Parameters.- 22.5 Nested Macro Definitions.- 22.5.1 A Simple Macro Definition Inside Another Macro Definition.- 22.5.2 A Nested Macro Definition with Parameters.- 22.5.3 A Table Defined Inside a Macro Definition.- 22.5.4 Self-Redefining Macros.- 22.6.Defining "/long"Macros.- 22.7.Organizing Your Own Macros.- 22.7.1 The Writing of Macros.- 22.7.2 Loading Macros from Separate Macro Source Files.- 22.7.3 The Dynamic Loading of Macros.- 22.7.4 Spurious Space in Macro Definitions.- 22.7.5 Compact Glue and Rule Specifications.- 22.8 Keyword Parameters.- 22.9 Summary.- 23 More on Macro-Related Items.- 23.1 /afterassignment.- 23.1.1 /magnificant Uses/afterassignment.- 23.1.2 What Is /afterassignment Good For?.- 23.1.3 The Lifetime of /afterassignment.- 23.1.4 Multiple /afterassignments.- 23.1.5 What Is an Assignment for /afterassignment.- 23.1.6 /afterassignment And Grouping.- 23.1.7 Using /afterassignment to Gobble an Opening Curly Brace.- 23.1.8 Macros, Parameters, and /afterassignment.- 23.2 /Let: Making Control Sequences Equivalent.- 23.2.1 List of Application of /let.- 23.2.2 /let and Macro Tokens.- 23.2.3 /let to Duplicate Primitives, /endgraf.- 23.3. /let and Undefined Tokens.- 23.3.1 /let and Grouping.- 23.3.2 The Pitfalls of /let: Spaces and Equal Signs.- 23.3.3 Recursively Picking Up One Token at a Time.- 23.3.4 Suppressing the Expansion of Tokens in /edefs Using /let.- 23.4 Looking Ahead with /futurelet.- 23.4.1 Application Ahead with /futurelet.- 23.4.2 Using /futurelet in Macros with Optional Arguments.- 23.4.3 /future-Related Macros, /DoFuturelet, /DoLongFuture.- 23.4.4 A Generic Macro for Macros with Optional Arguments /DblArg.- 23.4.5 /OptArgX, Another Macro for Generic Optional Argument Handling.- 23.4.6 A Generic Macro to Support Macros with "Modification Indicators," /NextCharTest.- 23.4.7 Using /futurelet in a Macro with a Variable Number of Parameters, /VarArgs.- 23.4.8 Default Arguments, /DefaultArg.- 23.4.9 Testing the Presence of an Opening Curly Brace: Another /input Instruction.- 23.4.10 A Version of /futurelet Skipping Spaces.- 23.4.11 Testing on the Presence of a /Par, /ParLookAhead.- 23.4.12 Ignoring Spaces and /pars in /futurelet.- 23.4.13 Avoiding Using /futurelet.- 23.5 Summary.- Advanced Macro Concepts.- 24.1 Changing the Order of Expansion, /expandafetr.- 24.1.1 A Simple First Example.- 24.1.2 Macro Calls and /expandafetrr.- 24.1.3 /expandafter and /edef.- 24.1.4 Another /expandafter Example Involving Macros.- 24.1.5 Solving the Same Problems Not Using /expandfter.- 24.1.6 Another Example.- 24.1.7 Selecting Arguments.- 24.1.8 /expandafter and Reading from Files.- 24.1.9 Primitives and /expandafter.- 24.1.10 /expandafter and Register Indices.- 24.1.11 Reversing the Expansion of More Than Two Tokens.- 24.1.12 Even More Multiple /expandafters.- 24.1.13 /expandafter to Temporarily Suppress an Opening Curly Brace.- 24.1.14 Extracting a Substring.- 24.1.15 Testing the Presence of a Substring, /SubStringConditional.- 24.1.16 Replacing SubStrings, /ReplaceSubStrings.- 24.1.17 Reversing a String, /ReverseString.- 24.1.18 Prefixes of Strings.- 24.1.19 Testing Whether a Sting Has a Specific Suffix, /SuffixConditional.- 24.1.20 The Removal of Leading and Trailing Spaces from a String.- 24.1.21 /expandafter in Conditionals.- 24.2 Suppressing Expansion with /noexpand.- 24.3 The Almighty /the.- 24.3.1 /the-Generating Character Tokens.- 24.3.2 /the-Generating Non-character Tokens.- 24.4 When No Exoansion Takes Place.- 24.5 Summary.- Conditional and Their Applications.- 25.1 Conditionals.- 25.1.1 The First Example.- 25.1.2 Some More Remarks on Conditionals.- 25.1.3 TEX Has No Boolean Data Type.- 25.1.4 The List of TEX's Conditionals.- 25.1.5 Grouping and Conditionals.- 25.1.6 Skipping Text in Conditionals.- 25.1.7 /newif Allows User-Defined Conditionals.- 25.1.8 The Application of /ifnum in /folio.- 25.1.9 The Definition of Macros /CheckTange and /CheckZeroOneRange.- 25.1.10 An /if and /ifcat Example.- 25.1.11 An /ifcase Example, the Definition of /PrintMonthQ.- 25.1.12 Another /ifcase Example.- 25.1.13 Printing Dollar Amounts, /PrintInDollar.- 25.1.14 An /ifdim Example, /MaxDimen, /MinDimen.- 25.1.15 Another /ifdim Example,/CenterOrParagraph.- 25.1.16 An /if Example Comparing Characters.- 25.1.17 Using /ifx for String Comparison.- 25.1.18 Testings Whether a Token is a Control Sequence.- 25.1.19 A String-Based Switch Macro, /StringSwitch.- 25.1.20 /ifx to Compare Lists of Tokens.- 25.1.21 /ifx and Underfined Tokens.- 25.1.22 Normalizing Arguments in Macro Calls.- 25.1.23 /ifhmode, /ifvmode, /ifmmode and /ifinner Examples.- 25.2 Conforming Conditionals.- 25.2.1 User-Defined Macros Expanding to Conditionals.- 25.2.2 Conditionals Defined In "TEX"in Practice.- 25.2.3 The Definition of /NumberConditional.- 25.2.4 The Definition of /LetterConditional.- 25.2.5 Conforming Conditionals with Macros Producing Numerical Values.- 25.3 Summary.- Date and Calendar Macros.- 26.1 The Earliest Date Accommodated by the Presented Macros.- 26.2 Copying Date, /CopyDate.- 26.3 Codes for the Days of a Week.- 26.4 Print a Month, /ProvideMonth.- 26.5 Check for the Legality of a Year: /CheckLegalYear.- 26.6 Check for the Legality of Month: /CheckLegalMonth.- 26.7 Compute the Number of Days in a Month, /NumberOfDaysInMonth.- 26.8 Check for the Validity of a Date.- 26.9 Is a Year a Leap Year?.- 26.10 Compute the Number of Days in Year.- 26.11 Compute the Date of the Following Day.- 26.12 Compute the Date of the Previous Day.- 26.13 Compute the Same Day of the Week in the Next or Previous Week.- 26.14 Compute the Next Month.- 26.15 Compute the Previous Month.- 26.16 Compute the Day of the Week of an Arbitrary Date.- 26.17 Printing Today'#8221; /NextCharTest.- 23.4.7 Using /futurelet in a Macro with a Variable Number of Parameters, /VarArgs.- 23.4.8 Default Arguments, /DefaultArg.- 23.4.9 Testing the Presence of an Opening Curly Brace: Another /input Instruction.- 23.4.10 A Version of /futurelet Skipping Spaces.- 23.4.11 Testing on the Presence of a /Par, /ParLookAhead.- 23.4.12 Ignoring Spaces and /pars in /futurelet.- 23.4.13 Avoiding Using /futurelet.- 23.5 Summary.- Advanced Macro Concepts.- 24.1 Changing the Order of Expansion, /expandafetr.- 24.1.1 A Simple First Example.- 24.1.2 Macro Calls and /expandafetrr.- 24.1.3 /expandafter and /edef.- 24.1.4 Another /expandafter Example Involving Macros.- 24.1.5 Solving the Same Problems Not Using /expandfter.- 24.1.6 Another Example.- 24.1.7 Selecting Arguments.- 24.1.8 /expandafter and Reading from Files.- 24.1.9 Primitives and /expandafter.- 24.1.10 /expandafter and Register Indices.- 24.1.11 Reversing the Expansion of More Than Two Tokens.- 24.1.12 Even More Multiple /expandafters.- 24.1.13 /expandafter to Temporarily Suppress an Opening Curly Brace.- 24.1.14 Extracting a Substring.- 24.1.15 Testing the Presence of a Substring, /SubStringConditional.- 24.1.16 Replacing SubStrings, /ReplaceSubStrings.- 24.1.17 Reversing a String, /ReverseString.- 24.1.18 Prefixes of Strings.- 24.1.19 Testing Whether a Sting Has a Specific Suffix, /SuffixConditional.- 24.1.20 The Removal of Leading and Trailing Spaces from a String.- 24.1.21 /expandafter in Conditionals.- 24.2 Suppressing Expansion with /noexpand.- 24.3 The Almighty /the.- 24.3.1 /the-Generating Character Tokens.- 24.3.2 /the-Generating Non-character Tokens.- 24.4 When No Exoansion Takes Place.- 24.5 Summary.- Conditional and Their Applications.- 25.1 Conditionals.- 25.1.1 The First Example.- 25.1.2 Some More Remarks on Conditionals.- 25.1.3 TEX Has No Boolean Data Type.- 25.1.4 The List of TEX's Conditionals.- 25.1.5 Grouping and Conditionals.- 25.1.6 Skipping Text in Conditionals.- 25.1.7 /newif Allows User-Defined Conditionals.- 25.1.8 The Application of /ifnum in /folio.- 25.1.9 The Definition of Macros /CheckTange and /CheckZeroOneRange.- 25.1.10 An /if and /ifcat Example.- 25.1.11 An /ifcase Example, the Definition of /PrintMonthQ.- 25.1.12 Another /ifcase Example.- 25.1.13 Printing Dollar Amounts, /PrintInDollar.- 25.1.14 An /ifdim Example, /MaxDimen, /MinDimen.- 25.1.15 Another /ifdim Example,/CenterOrParagraph.- 25.1.16 An /if Example Comparing Characters.- 25.1.17 Using /ifx for String Comparison.- 25.1.18 Testings Whether a Token is a Control Sequence.- 25.1.19 A String-Based Switch Macro, /StringSwitch.- 25.1.20 /ifx to Compare Lists of Tokens.- 25.1.21 /ifx and Underfined Tokens.- 25.1.22 Normalizing Arguments in Macro Calls.- 25.1.23 /ifhmode, /ifvmode, /ifmmode and /ifinner Examples.- 25.2 Conforming Conditionals.- 25.2.1 User-Defined Macros Expanding to Conditionals.- 25.2.2 Conditionals Defined In "TEX"in Practice.- 25.2.3 The Definition of /NumberConditional.- 25.2.4 The Definition of /LetterConditional.- 25.2.5 Conforming Conditionals with Macros Producing Numerical Values.- 25.3 Summary.- Date and Calendar Macros.- 26.1 The Earliest Date Accommodated by the Presented Macros.- 26.2 Copying Date, /CopyDate.- 26.3 Codes for the Days of a Week.- 26.4 Print a Month, /ProvideMonth.- 26.5 Check for the Legality of a Year: /CheckLegalYear.- 26.6 Check for the Legality of Month: /CheckLegalMonth.- 26.7 Compute the Number of Days in a Month, /NumberOfDaysInMonth.- 26.8 Check for the Validity of a Date.- 26.9 Is a Year a Leap Year?.- 26.10 Compute the Number of Days in Year.- 26.11 Compute the Date of the Following Day.- 26.12 Compute the Date of the Previous Day.- 26.13 Compute the Same Day of the Week in the Next or Previous Week.- 26.14 Compute the Next Month.- 26.15 Compute the Previous Month.- 26.16 Compute the Day of the Week of an Arbitrary Date.- 26.17 Printing Today'18 Tokens, Category Codes, Verbatim Modes.- 18.1 Tokens.- 18.1.1 The Basic Structure of the TEX Program.- 18.1.2 What Are Tokens?.- 18.1.3 Token Types.- 18.1.4 Spaces and Control Sequences.- 18.1.5 Character Codes.- 18.1.6 Category Codes, ?catcode.- 18.1.7 Experiments with Category Codes.- 18.1.8 Initial Category Codes.- 18.1.9 What Is a Letter in TEX?.- 18.1.10 /string and Category Codes.- 18.1.11 /the and Category Codes, /DropPoints.- 18.1.12 The "At" Sign ("@").- 18.1.13 The Return Character, /endlinechar.- 18.2 Active Characters.- 18.2.1 The Tilde Is Usually an Active Character.- 18.2.2 Making the Space Character Active, ?space, /obeyspaces.- 18.2.3 The Definition of Macro /ObeySpaces.- 18.2.4 Making the End-Of-Line Character Active, ?obeylines.- 18.2.5 The Definition of Macro /Obeylines.- 18.2.6 Ignoring Active End-of-Line Characters.- 18.2.7 Undoing the Effect of the /obey and /0bey Commands.- 18.2.8 Counting the Number of Lines in a File, /NumberOfLinesInFile.- 18.2.9 Active Characters in Math Mode.- 18.3 Verbatim Modes.- 18.3.1 Auxiliary Macros for Verbatim Modes.- 18.3.2 A Simple Inline Verbatim Mode.- 18.3.3 Showing the Works of /Verb.- 18.3.4 An Improved Inline Verbatim Mode, /Verb.- 18.3.5 Display Verbatim Modes.- 18.3.6 /BeginVerbatim /EndVerbatim Enclose Verbatim Text.- 18.3.7 The Source Code of the Display Verbatim Mode.- 18.3.8 Verbatim Listings of External Files: /ListVerb.- 18.3.9 The Definition of Macro /ListVerbIf FileExists.- 18.3.10 The Definition of Macro /ListVerbAndSource.- 18.3.11 An Example Using Macro /ListVerbAndSource.- 18.3.12 Improving the Display Verbatim Mode.- 18.3.13 The Source Code of the New Verbatim Mode.- 18.3.14 The Verbatim Macros Used for this Series.- 18.3.15 Verbatim Macros for this Series.- 18.3.16 Input as Verbatim Text and IfeX Source.- 18.4 Uppercase and Lowercase Characters, /uccode, /lccode, /uppercase, etc.- 18.5 Summary.- 19 More on Tokens.- 19.1 Converting Character Strings to Tokens, and Tokens Back to Character Strings.- 19.1.1 Token to String Conversions, /string.- 19.1.2 /escapechar.- 19.1.3 /string, /uppercase and Category Codes.- 19.1.4 Converting Strings to Tokens, /csname /endcsname.- 19.1.5 Overview of Applications of /csname.- 19.1.6 /csname... /endcsname and /relax.- 19.1.7 Macro Calls Inside a /csname, /endcsname Sequence.- 19.1.8 Macro Definitions Based on /csname, /NameDef, etc.- 19.1.9 Examples Using the Above Macros.- 19.1.10 An Associative Memory.- 19.2 Array Macros.- 19.2.1 Overview of the Provided Array Functions.- 19.2.2 Beginning of the Source Code.- 19.2.3 The Definition of /CCreateArray to Create an Array.- 19.2.4 The Definition of Macro /ConvertStringIntoArray.- 19.2.5 The Definition of Macro /CCheckIndex.- 19.2.6 Retrieving an Array Element Value.- 19.2.7 Retrieving an Interval of Array Element Values.- 19.2.8 Loading an Array Element Value.- 19.2.9 Loading an Array Element Value Using /edef.- 19.2.10 The Definition of Macro /CShowArray.- 19.2.11 An Example of Using the Array Macros.- 19.3 Cross-Referencing Using /csname.../endcsname.- 19.3.1 Overview of the Cross-Reference Macros.- 19.3.2 General Overview of Processing a Document with Symbolic Cross-References.- 19.3.3 The Source Code of the Cross-Reference Macros.- 19.3.4 Defining a Label, /QNewLabel, /also Label.- 19.3.5 Referring to Entity Numbers and Page Numbers, /Ref, /PageRef.- 19.3.6 Defining A Label, /Label.- 19.3.7 An Example Using the Cross-Reference Macros.- 19.3.8 Default Labels for /Ref and /PageRef.- 19.3.9 Testing for Duplicate Labels, a New /NewLabel.- 19.3.10 Checking Whether Labels Changed, /CheckLabels.- 19.3.11 Extending Cross-References.- 19.3.12 Is There An Alternative to a Two-Pass Approach?.- 19.4 Curly Braces.- 19.4.1 Overview.- 19.4.2 The Idea of Grouping.- 19.4.3 Nested Grouping.- 19.4.4 The Category Codes of Curly Braces.- 19.4.5 Empty Groups.- 19.4.6 /bgroup and /egroup.- 19.4.7 /bgroup and /egroup in Boxes, Insertions and Tables Built by /haligns.- 19.4.8 Using Grouping to Keep Track of the Correct Nesting of Environments.- 19.4.9 Forming Groups Using /begingroup and /endgroup.- 19.4.10 Implicit Grouping.- 19.4.11 Global Assignments (/global) and Global Definitions (/gdef, /xdef).- 19.4.12 Global Changes and /globaldefs.- 19.4.13 Nested Groups and /global.- 19.4.14 Grouping and Box Registers.- 19.4.15 /aftergroup.- 19.4.16 What Does Not Follow Grouping in TEK?.- 19.4.17 Tracing Group Computations, /tracingrestores.- 19.5 Summary.- 20 Token Registers, TfeX List Processing.- 20.1 Token Registers.- 20.1.1 /toksdef, /newtoks.- 20.1.2 Loading Token Registers.- 20.1.3 Token Parameters.- 20.1.4 Collecting Information with Token Registers, /AddInf o, /CollectTokens.- 20.1.5 List Processing with Token Registers, /ForEachToken.- 20.2 TEX Lists.- 20.2.1 Executing a List.- 20.2.2 Overview List Macros.- 20.2.3 The Definition of Macro /EmptyListConditional.- 20.2.4 The Definition of Macros /LeftAppendElement, /RightAppendElement.- 20.2.5 The Definitions of Macro /Car0f List, /Cdr0f List.- 20.2.6 The Definition of Macro /DropFirstElementOf List.- 20.2.7 The Definition of Macro /CarCar0f List.- 20.2.8 The Definition of Macro /ForEveryListElement.- 20.2.9 The Definition of Macro /Member0f ListConditional.- 20.2.10 Reversing a List.- 20.2.11 Accessing the Last Element of a List.- 20.2.12 Dropping the Last Element of a List.- 20.2.13 Determining the Number of List Elements.- 20.2.14 Combining Two Lists.- 20.2.15 TEK-List Processing Examples.- 20.2.16 A Macro to Convert a List of Arguments into a "TEX-List," /ConvertArgsToListAndAppend.- 20.2.17 Converting a List of Words to a "TEX-List," /WordsToTeXList.- 20.3 Using TfeK Lists for the Emulation of Arrays.- 20.3.1 The Definitions of Macros /IndexLastElement and /ArrayIndexCheck.- 20.3.2 Accessing and Modifying Array Elements.- 20.3.3 Modifying an ArrayElement.- 20.3.4 Inserting an Array Element.- 20.3.5 Deleting an Array Element, /DeleteArrayElement.- 20.3.6 Deleting a Group of Array Elements, /DeleteArrayEle-mentRange.- 20.3.7 Extracting a Subarray, /ExtractSubArray.- 20.3.8 Sample Code.- 20.4 Summary.- 21 Macros.- 21.1 Assigning a Meaning to a Control Sequence.- 21.2 Primitive Control Sequences.- 21.2.1 Examples of Primitive Control Sequences.- 21.2.2 Characters and Primitives.- 21.2.3 Primitives Versus Macros.- 21.2.4 Redefining Primitive Control Sequences.- 21.2.5 /show and /meaning Used with Primitives.- 21.3 Macros.- 21.3.1 Why Use Macros?.- 21.3.2 The Main Token List.- 21.3.3 Macro Definitions: Macro Names and Replacement Text.- 21.3.4 Expansion, Macro Calls, Macro Invocations.- 21.4 Some Simple Macro Examples.- 21.4.1 A Simple Macro to Print a Letterhead, /LetterHead.- 21.4.2 A Letterhead Macro with One Parameter, /LetterHeadA.- 21.4.3 Another Letterhead Macro with Two Parameters, /LetterHeadB.- 21.4.4 The Maximum Number of Parameters.- 21.4.5 Some Other Macro Examples.- 21.4.6 Printing Register Names and Values.- 21.4.7 Printing Multiple Spaces.- 21.4.8 /mac, a Macro to Print Control Sequences.- 21.4.9 Printing Logos.- 21.4.10 Macros Can Be for Lazy People.- 21.4.11 Other Series-Related Macros.- 21.5 The Theory of Macro Definitions.- 21.5.1 Separating Macro Definition and Macro Call.- 21.5.2 The Replacement Text of Macros.- 21.5.3 The Replacement Text of a Macro Does Not Form a Group.- 21.5.4 Redefining Macros.- 21.5.5 Macro Definitions Inside Groups, /gdef.- 21.5.6 Testing Whether a Token Is Defined, /Def inedConditional.- 21.5.7 The Definition of Macro /NewDef.- 21.5.8 The Definition of Macro /ReDef.- 21.5.9 /NewDef and /ReDef Examples.- 21.5.10 Undefined Macros.- 21.5.11 /show and /meaning with Macro Definitions.- 21.6 Macro Definitions Using /outer.- 21.6.1 /outer-Based Definitions in the Plain Format.- 21.6.2 Redefining /bye.- 21.7 Macros with Parameters.- 21.8 Macros with Undelimited Parameters.- 21.8.1 Macro Calls of Macros with Undelimited Parameters.- 21.8.2 The Curly Braces of Arguments of Undelimited Parameters.- 21.8.3 Empty Arguments.- 21.8.4 One More Look at Curly Braces of Arguments.- 21.8.5 Spaces and Undelimited Arguments.- 21.8.6 Gobbling Macros.- 21.9 Macros with Delimited Parameters.- 21.9.1 Some Initial Examples.- 21.9.2 Parameter Text Tokens Preceding the First Parameter.- 21.9.3 Choosing Delimiters of Delimited Parameters.- 21.9.4 Errors in Arguments with Delimited Parameters.- 21.9.5 Space, Return, and the Tab Character as Delimiters of Parameters.- 21.9.6 An Active End-Of-Line Character as a Delimiter.- 21.9.7 A Generic Macro for Defining Macros with a Parameter Delimited by an Active End-Of-Line Character, /GenAeol.- 21.9.8 Curly Braces in Delimited Parameters.- 21.9.9 Empty Arguments of Delimited Parameters.- 21.9.10 Gobbling Macros with Delimited Parameters.- 21.9.11 A Generic Gobbling Macro, /GobbleDoMore.- 21.9.12 More on Delimited Parameters.- 21.9.13 /everydisplay and Delimited Parameters.- 21.9.14 A Special Delimiter for Delimited Parameters.- 21.10 Mixed Parameter Types.- 21.10.1 Some Simple Examples.- 21.10.2 Another Example of Mixing Parameter Types, /ParFl.- 21.11 Spaces after Macro Calls, /ignorespaces.- 21.12 Summary.- 22 Macros, Expansion Issues.- 22.1 Expanded Macro Definitions, /edef.- 22.1.1 Some Initial /edef Macro Examples.- 22.1.2 The Expansion is Pushed All the Way Through.- 22.1.3 Suppressing Expansion in /edef-Based Macro Definitions with /noexpand.- 22.1.4 Undefined Tokens in /edef-Based Macro Definitions.- 22.1.5 /the and /edef-Based Macro Definitions.- 22.1.6 Comparing /def and /edef.- 22.1.7 Applications of /edef.- 22.1.8 Collecting Information with /edef.- 22.1.9 Conditionals Expanded in /edef.- 22.1.10 /edef and /char.- 22.1.11 /edef, /uppercase and /lowercase.- 22.1.12 /edef, Counter Registers, /the, /number, etc.- 22.1.13 Repeated Expansion.- 22.1.14 Redefining Macros Based on /edef.- 22.1.15 Global /edefs: /xdef.- 22.2 Macro Expansion.- 22.2.1 Tracing Macro Expansion, /tracingmacros.- 22.2.2 Tracing Memory Use and Other Usage Values, /tracingstats.- 22.2.3 Tracing Command Execution, /tracingcommands.- 22.2.4 Controlling the Output Generated by /tracing... Commands, /tracingonline.- 22.3 Placement of Macro Calls and Arguments.- 22.3.1 Examples.- 22.3.2 Macros with More Than Nine Parameters.- 22.4 Category Codes and Parameters.- 22.5 Nested Macro Definitions.- 22.5.1 A Simple Macro Definition Inside Another Macro Definition.- 22.5.2 A Nested Macro Definition with Parameters.- 22.5.3 A Table Defined Inside a Macro Definition.- 22.5.4 Self-Redefining Macros.- 22.6.Defining "/long"Macros.- 22.7.Organizing Your Own Macros.- 22.7.1 The Writing of Macros.- 22.7.2 Loading Macros from Separate Macro Source Files.- 22.7.3 The Dynamic Loading of Macros.- 22.7.4 Spurious Space in Macro Definitions.- 22.7.5 Compact Glue and Rule Specifications.- 22.8 Keyword Parameters.- 22.9 Summary.- 23 More on Macro-Related Items.- 23.1 /afterassignment.- 23.1.1 /magnificant Uses/afterassignment.- 23.1.2 What Is /afterassignment Good For?.- 23.1.3 The Lifetime of /afterassignment.- 23.1.4 Multiple /afterassignments.- 23.1.5 What Is an Assignment for /afterassignment.- 23.1.6 /afterassignment And Grouping.- 23.1.7 Using /afterassignment to Gobble an Opening Curly Brace.- 23.1.8 Macros, Parameters, and /afterassignment.- 23.2 /Let: Making Control Sequences Equivalent.- 23.2.1 List of Application of /let.- 23.2.2 /let and Macro Tokens.- 23.2.3 /let to Duplicate Primitives, /endgraf.- 23.3. /let and Undefined Tokens.- 23.3.1 /let and Grouping.- 23.3.2 The Pitfalls of /let: Spaces and Equal Signs.- 23.3.3 Recursively Picking Up One Token at a Time.- 23.3.4 Suppressing the Expansion of Tokens in /edefs Using /let.- 23.4 Looking Ahead with /futurelet.- 23.4.1 Application Ahead with /futurelet.- 23.4.2 Using /futurelet in Macros with Optional Arguments.- 23.4.3 /future-Related Macros, /DoFuturelet, /DoLongFuture.- 23.4.4 A Generic Macro for Macros with Optional Arguments /DblArg.- 23.4.5 /OptArgX, Another Macro for Generic Optional Argument Handling.- 23.4.6 A Generic Macro to Support Macros with "Modification Indicators," /NextCharTest.- 23.4.7 Using /futurelet in a Macro with a Variable Number of Parameters, /VarArgs.- 23.4.8 Default Arguments, /DefaultArg.- 23.4.9 Testing the Presence of an Opening Curly Brace: Another /input Instruction.- 23.4.10 A Version of /futurelet Skipping Spaces.- 23.4.11 Testing on the Presence of a /Par, /ParLookAhead.- 23.4.12 Ignoring Spaces and /pars in /futurelet.- 23.4.13 Avoiding Using /futurelet.- 23.5 Summary.- Advanced Macro Concepts.- 24.1 Changing the Order of Expansion, /expandafetr.- 24.1.1 A Simple First Example.- 24.1.2 Macro Calls and /expandafetrr.- 24.1.3 /expandafter and /edef.- 24.1.4 Another /expandafter Example Involving Macros.- 24.1.5 Solving the Same Problems Not Using /expandfter.- 24.1.6 Another Example.- 24.1.7 Selecting Arguments.- 24.1.8 /expandafter and Reading from Files.- 24.1.9 Primitives and /expandafter.- 24.1.10 /expandafter and Register Indices.- 24.1.11 Reversing the Expansion of More Than Two Tokens.- 24.1.12 Even More Multiple /expandafters.- 24.1.13 /expandafter to Temporarily Suppress an Opening Curly Brace.- 24.1.14 Extracting a Substring.- 24.1.15 Testing the Presence of a Substring, /SubStringConditional.- 24.1.16 Replacing SubStrings, /ReplaceSubStrings.- 24.1.17 Reversing a String, /ReverseString.- 24.1.18 Prefixes of Strings.- 24.1.19 Testing Whether a Sting Has a Specific Suffix, /SuffixConditional.- 24.1.20 The Removal of Leading and Trailing Spaces from a String.- 24.1.21 /expandafter in Conditionals.- 24.2 Suppressing Expansion with /noexpand.- 24.3 The Almighty /the.- 24.3.1 /the-Generating Character Tokens.- 24.3.2 /the-Generating Non-character Tokens.- 24.4 When No Exoansion Takes Place.- 24.5 Summary.- Conditional and Their Applications.- 25.1 Conditionals.- 25.1.1 The First Example.- 25.1.2 Some More Remarks on Conditionals.- 25.1.3 TEX Has No Boolean Data Type.- 25.1.4 The List of TEX's Conditionals.- 25.1.5 Grouping and Conditionals.- 25.1.6 Skipping Text in Conditionals.- 25.1.7 /newif Allows User-Defined Conditionals.- 25.1.8 The Application of /ifnum in /folio.- 25.1.9 The Definition of Macros /CheckTange and /CheckZeroOneRange.- 25.1.10 An /if and /ifcat Example.- 25.1.11 An /ifcase Example, the Definition of /PrintMonthQ.- 25.1.12 Another /ifcase Example.- 25.1.13 Printing Dollar Amounts, /PrintInDollar.- 25.1.14 An /ifdim Example, /MaxDimen, /MinDimen.- 25.1.15 Another /ifdim Example,/CenterOrParagraph.- 25.1.16 An /if Example Comparing Characters.- 25.1.17 Using /ifx for String Comparison.- 25.1.18 Testings Whether a Token is a Control Sequence.- 25.1.19 A String-Based Switch Macro, /StringSwitch.- 25.1.20 /ifx to Compare Lists of Tokens.- 25.1.21 /ifx and Underfined Tokens.- 25.1.22 Normalizing Arguments in Macro Calls.- 25.1.23 /ifhmode, /ifvmode, /ifmmode and /ifinner Examples.- 25.2 Conforming Conditionals.- 25.2.1 User-Defined Macros Expanding to Conditionals.- 25.2.2 Conditionals Defined In "TEX"in Practice.- 25.2.3 The Definition of /NumberConditional.- 25.2.4 The Definition of /LetterConditional.- 25.2.5 Conforming Conditionals with Macros Producing Numerical Values.- 25.3 Summary.- Date and Calendar Macros.- 26.1 The Earliest Date Accommodated by the Presented Macros.- 26.2 Copying Date, /CopyDate.- 26.3 Codes for the Days of a Week.- 26.4 Print a Month, /ProvideMonth.- 26.5 Check for the Legality of a Year: /CheckLegalYear.- 26.6 Check for the Legality of Month: /CheckLegalMonth.- 26.7 Compute the Number of Days in a Month, /NumberOfDaysInMonth.- 26.8 Check for the Validity of a Date.- 26.9 Is a Year a Leap Year?.- 26.10 Compute the Number of Days in Year.- 26.11 Compute the Date of the Following Day.- 26.12 Compute the Date of the Previous Day.- 26.13 Compute the Same Day of the Week in the Next or Previous Week.- 26.14 Compute the Next Month.- 26.15 Compute the Previous Month.- 26.16 Compute the Day of the Week of an Arbitrary Date.- 26.17 Printing Today's Date.- 26.18 Compute The Monday of the Same Week of Some Given Date.- 26.19 Small Monthly Calendars.- 26.20 Printing a Group of Three Monthly Calendars.- 26.21 A Yearly Calendar Macro.- 26.22 Compute the Week Number of a Date Within a Year.- 26.23 Loading All Date-Related Macros.- 26.24 Summary.- Recursion, Loop Constructs, Modes, testing of TEX Code and Related Items.- 27.1 Recursive Macros and Loops in TEX.- 27.1.1 A First Example.- 27.1.2 A Generic Macro for Recursive Macros, /Recursion-MacroEnd.- 27.1.3 A Generic Loop Macro of the Plain Format, /Loop.- 27.1.4 Converting a NUmber to Hexadecimal or Octal Notation.- 27.1.5 A Numerical Expression While Loop Construct.- 27.1.6 A General While Loop Construct.- 27.1.7 Pickng Up Characters Recursively.- 27.1.8 A DO Loop Macro, /Doloop.- 27.1.9 The Printing of Inverted Pyramids, /InvertedPyramid.- 27.2. Enumeration Macro Definitions.- 27.3. Box Register Queue Macros.- 27.3.1 Indices and Counters for the folowing Macros.- 27.3.2 Some Auxiliary Macros.- 27.3.3 The Definition of SetUpBoxRegisterQueue.- 27.3.4 The Definitions of /AddBoxToQueue.- 27.3.5 The Definition of /CopyFirstBoxFromQueue.- 27.3.6 The Definition of /DropFirstBoxOfQueue.- 27.3.7 The Definition of /EmptyBoxRegisterQueueConditional.- 27.3.8 An Example Application.- 27.4 /relax.- 27.5 /jobname.- 27.6 /Environments.- 27.6.1 Why the Idea of Environment Was Developed.- 27.6.2 Resulting Consistency When Using Environments.- 27.6.3 Nested Environment.- 27.6.4 Macros To Start and End Environments, /B and /E.- 27.6.5 Style Files.- 27.7 Modes.- 27.8 LATEX and the Plain Format.- 27.9 Debugging TEX MAcros and TEX Code in General.- 27.10 User Macro Error Messages, /errmessage, /errhelp.- 27.11 The Definition of Macro /tracingall.- 27.12 Writing to the Log File and the Terminal, /pausing.- 27.13 Summary.- Reading From and Writing To Files.- 28.1 File Names in TEX.- 28.1.1 File Names With and Without Extensions in TEX.- 28.1.2 /jobname and File Names.- 28.2 Reading from a File on a Line-By-Line Basis.- 28.2.1 Input Streams Numbers.- 28.2.2 Commands to Read from a File, /newread, /openin, /read, /ifeof, /closein.- 28.2.3 An Example for reading from a File.- 28.2.4 /par Appended to the End of Every File.- 28.2.5 A Recursive Macro to Read from a file.- 28.2.6 An Example of Reading from a Terminal.- 28.2.7 An Example of Reading Numbers from a File.- 28.3 Reading-In a Complete File, /input.- 28.3.1 Applications of /input.- 28.3.2 The Syntax of /input.- 28.3.3 Tracking Files Read-In by /input in the Log File.- 28.3.4 Nested /input.- 28.3.5 Line Numbers of Files Read-in Using /input, /inputlineno.- 28.3.6 Missing Files and /input, File null. tex.- 28.3.7 The Definition of Macro /InputAt.- 28.3.8 Premature Ending of Input, /endinput.- 28.3.9 An Application of /endinput.- 28.4 More /input Related MAcros.- 28.4.1 Testing the Presence of a File, /FileExistsConditional.- 28.4.2 Conditional Input Macro, /InputC, /InputCWithat.- 28.4.3 A Macro To Prevent Reading-In an Already Read-In File, /InputD, /ListInputD.- 28.5 Writing to a File.- 28.5.1 Stream Numbers Writing Files.- 28.5.2 Instructions to Write to Files, /newwrite, /openout, /write, /closeout.- 28.5.3 A Generic Output Stream Definition.- 28.5.4 An Immediate Write Example.- 28.5.5 Delayed and Immediate Write.- 28.5.6 Writing Control Sequences to a File.- 28.5.7 More on Writing Control Sequences to a File.- 28.5.8 Verbatim Writing of a Macro Argument.- 28.5.9 Writing and Reading Lines of Excessie Lengths.- 28.6 Summary.- More on Input and Output.- 29.1 Index File Writing.- 29.1.1 Debugging an Index.- 29.1.2 A Quick Look at makeindex.- 29.1.3 Composing an Index.- 29.1.4 An Overview over the Provided Index Macros.- 29.1.5 The Beginning of Index Macro Definitions.- 29.1.6 The Definitions of Macros /OpenIndexFiles and /CloseIndexFiles.- 29.1.7 Determining to Which Index File Output Goes.- 29.1.8 Writing to the Index File: /Index.- 29.1.9 Additional Index Entry Generating Macros.- 29.1.10 Specialized Index Term Macros.- 29.1.11 Special Formatting for the Page Number in the Index.- 29.2 Writing Table of Contents Files.- 29.2.1 How to Organize the Writing of a Table of Contents File.- 29.2.2 A Two-Pass Approach.- 29.2.3 Details of Writing a Table of Contents File, /WriteToc, /TocEntry.- 29.2.4 Discussing /WriteToc.- 29.2.5 Example of Writing a Table of Contents File.- 29.2.6 Writing Lists of Table Files.- 29.3 Verbatim Writing to Files.- 29.3.1 Writing Tab Characters to a File.- 29.3.2 General Macros for Verbatim Writing.- 29.3.3 Generating TEX Sources from Within Another TEX Sources.- 29.3.4 An Example for Verbatim Writing TEX Source.- 29.4 Macros to Write Endnotes.- 29.4.1 The Definition of /StarEndNoteWriting.- 29.4.2 The Definition of /BeginEndNote ... /EndEndNOte.- 29.4.3 The Definition of /EndEndNoteWriting.- 29.4.4 The Definition of /ReadInEndNotes.- 29.4.5 An Example of EndNote Writing and Reading.- 29.5 Writing to the Log File and the Terminal.- 29.5.1 Commands to Show Registers, Definitions, etc., /show, /showthe.- 29.5.2 Writing to the Terminal, /message.- 29.5.3 Forcing a New Line Inside /message, /newlinechar.- 29.5.4 The Definition of /NewLineMessage.- 29.5.5 The Definition of /wlog.- 29.5.6 /message, /wlog and /show, etc., Looked At Together.- 29.6 Protocol File Writing.- 29.6.1 Initializations.- 29.6.2 The Definitions of /InitProtWrite.- 29.6.3 The Definition of /CloseProtWrite.- 29.6.4 The Definition of /WriteProtocol.- 29.6.5 The Definition of Macro /BoxToProtocol.- 29.6.6 An Example.- 29.7 Comparing Two Files.- 29.7.1 The Definition of /CompareFilesConditional.- 29.7.2 An Example.- 29.8 /shipout, /tracingoutput, /deadcycles, /maxdeadcycles.- 29.9 /special.- 29.10 Summary.- Partial Processing of a Document.- 30.1 A General Overview of the Macros of this Chapter.- 30.2 Main Document and Part Source Files, Auxiliary Files.- 30.3 Macros for the Partial Processing of a Document.- 30.3.1 Macros for the Main Document File.- 30.3.2 Organizing the Partial Processing of Documents.- 30.3.3 Macros for the Part Source Files.- 30.4 Administrative Files.- 30.4.1 The Main Temporary File.- 30.4.2 The Auxiliary Part Files.- 30.5 The Generation of a Table of Contents.- 30.6 Putting the Pieces Together.- 30.6.1 The Basic Setup.- 30.6.2 Hints of How to Use the Presented Macros Safely.- 30.7 Macros Source Files.- 30.7.1 The Top Level Macro Source File.- 30.7.2 Basic Definitions Source Code File.- 30.7.3 Macros Invoked in the Main Document File.- 30.7.4 Writing Invoked in the Main Document File.- 30.7.5 Table of Contents Files, etc., Processing.- 30.7.6 Robust Macros.- 30.7.7 Writing Comments to Part Auxiliary Files.- 30.7.8 Page Number Handling.- 30.8 Cross-Referencing Macros for Partial Processing Macros.- 30.8.1 The Beginning of the Cross-Reference Macro Source File.- 30.8.2 The Definition of /@NewLabel.- 30.8.3 The Definition of /Ref, /PageRef, /@ref.- 30.8.4 The Definition of Macro /ref.- 30.8.5 A Different Definition of /Pageref.- 30.8.6 Changing /Pageref To Print "This, Previous or Next Page" Where Applicable.- 30.8.7 The Definition of /@Label.- 30.8.8 The Definition of /CheckLabels.- 30.8.9 The Definition of /@NewCompare.- 30.8.10 The Definition of /@StopCheckingLabels.- 30.9 Summary.- More on the Partial Processing of a Documents.- 31.1 An Example Application.- 31.1.1 Macros Specific to the Example.- 31.1.2 Additional Macro Definitions.- 31.1.3 Source Code of the Part Source Files.- 31.1.4 The Part Auxiliary Files as Generated by the Part Processing Macros.- 31.1.5 The Table of Contents File of the Complete Document.- 31.1.6 The Main Temporary File.- 31.1.7 Sample Output.- 31.2 The Partial Processing Macros Used to Typeset This Series.- 31.2.1 Steps in Processing This Series.- 31.2.2 Special Included Source Code Files.- 31.2.3 The Main Source File of this Series.- 31.2.4 "TEX in Practice" Related Dimensions.- 31.2.5 Loading All Heading-Generating Macros.- 31.2.6 Volume and Page Number-Related Set-up.- 31.2.7 The Chapter and Appendix Heading Macros, /Chapter, /Appendix.- 31.2.8 "Generating Notes"#8217;s Date.- 26.18 Compute The Monday of the Same Week of Some Given Date.- 26.19 Small Monthly Calendars.- 26.20 Printing a Group of Three Monthly Calendars.- 26.21 A Yearly Calendar Macro.- 26.22 Compute the Week Number of a Date Within a Year.- 26.23 Loading All Date-Related Macros.- 26.24 Summary.- Recursion, Loop Constructs, Modes, testing of TEX Code and Related Items.- 27.1 Recursive Macros and Loops in TEX.- 27.1.1 A First Example.- 27.1.2 A Generic Macro for Recursive Macros, /Recursion-MacroEnd.- 27.1.3 A Generic Loop Macro of the Plain Format, /Loop.- 27.1.4 Converting a NUmber to Hexadecimal or Octal Notation.- 27.1.5 A Numerical Expression While Loop Construct.- 27.1.6 A General While Loop Construct.- 27.1.7 Pickng Up Characters Recursively.- 27.1.8 A DO Loop Macro, /Doloop.- 27.1.9 The Printing of Inverted Pyramids, /InvertedPyramid.- 27.2. Enumeration Macro Definitions.- 27.3. Box Register Queue Macros.- 27.3.1 Indices and Counters for the folowing Macros.- 27.3.2 Some Auxiliary Macros.- 27.3.3 The Definition of SetUpBoxRegisterQueue.- 27.3.4 The Definitions of /AddBoxToQueue.- 27.3.5 The Definition of /CopyFirstBoxFromQueue.- 27.3.6 The Definition of /DropFirstBoxOfQueue.- 27.3.7 The Definition of /EmptyBoxRegisterQueueConditional.- 27.3.8 An Example Application.- 27.4 /relax.- 27.5 /jobname.- 27.6 /Environments.- 27.6.1 Why the Idea of Environment Was Developed.- 27.6.2 Resulting Consistency When Using Environments.- 27.6.3 Nested Environment.- 27.6.4 Macros To Start and End Environments, /B and /E.- 27.6.5 Style Files.- 27.7 Modes.- 27.8 LATEX and the Plain Format.- 27.9 Debugging TEX MAcros and TEX Code in General.- 27.10 User Macro Error Messages, /errmessage, /errhelp.- 27.11 The Definition of Macro /tracingall.- 27.12 Writing to the Log File and the Terminal, /pausing.- 27.13 Summary

Reihe/Serie Monographs in Visual Communication
Zusatzinfo biography
Verlagsort New York, NY
Sprache englisch
Maße 165 x 248 mm
Gewicht 1110 g
Einbandart gebunden
Themenwelt Mathematik / Informatik Informatik Office Programme
ISBN-10 0-387-97597-7 / 0387975977
ISBN-13 978-0-387-97597-9 / 9780387975979
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich