TeX in Practice
Springer-Verlag New York Inc.
978-0-387-97597-9 (ISBN)
- Titel erscheint in neuer Auflage
- Artikel merken
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? |
aus dem Bereich