Home > Computing and Information Technology > Business applications > Word processing software > TeX in Practice: Volume 3(Monographs in Visual Communication)
TeX in Practice: Volume 3(Monographs in Visual Communication)

TeX in Practice: Volume 3(Monographs in Visual Communication)

          
5
4
3
2
1

Available


Premium quality
Premium quality
Bookswagon upholds the quality by delivering untarnished books. Quality, services and satisfaction are everything for us!
Easy Return
Easy return
Not satisfied with this product! Keep it in original condition and packaging to avail easy return policy.
Certified product
Certified product
First impression is the last impression! Address the book’s certification page, ISBN, publisher’s name, copyright page and print quality.
Secure Checkout
Secure checkout
Security at its finest! Login, browse, purchase and pay, every step is safe and secured.
Money back guarantee
Money-back guarantee:
It’s all about customers! For any kind of bad experience with the product, get your actual amount back after returning the product.
On time delivery
On-time delivery
At your doorstep on time! Get this book delivered without any delay.
Quantity:
Add to Wishlist

About the Book

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.

Table of Contents:
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


Best Sellers


Product Details
  • ISBN-13: 9780387975979
  • Publisher: Springer-Verlag New York Inc.
  • Publisher Imprint: Springer-Verlag New York Inc.
  • Height: 248 mm
  • No of Pages: 656
  • Series Title: Monographs in Visual Communication
  • Sub Title: Volume 3
  • Width: 165 mm
  • ISBN-10: 0387975977
  • Publisher Date: 23 Jul 1993
  • Binding: Hardback
  • Language: English
  • Returnable: N
  • Spine Width: mm
  • Weight: 1110 gr


Similar Products

How would you rate your experience shopping for books on Bookswagon?

Add Photo
Add Photo

Customer Reviews

REVIEWS           
Click Here To Be The First to Review this Product
TeX in Practice: Volume 3(Monographs in Visual Communication)
Springer-Verlag New York Inc. -
TeX in Practice: Volume 3(Monographs in Visual Communication)
Writing guidlines
We want to publish your review, so please:
  • keep your review on the product. Review's that defame author's character will be rejected.
  • Keep your review focused on the product.
  • Avoid writing about customer service. contact us instead if you have issue requiring immediate attention.
  • Refrain from mentioning competitors or the specific price you paid for the product.
  • Do not include any personally identifiable information, such as full names.

TeX in Practice: Volume 3(Monographs in Visual Communication)

Required fields are marked with *

Review Title*
Review
    Add Photo Add up to 6 photos
    Would you recommend this product to a friend?
    Tag this Book
    Read more
    Does your review contain spoilers?
    What type of reader best describes you?
    I agree to the terms & conditions
    You may receive emails regarding this submission. Any emails will include the ability to opt-out of future communications.

    CUSTOMER RATINGS AND REVIEWS AND QUESTIONS AND ANSWERS TERMS OF USE

    These Terms of Use govern your conduct associated with the Customer Ratings and Reviews and/or Questions and Answers service offered by Bookswagon (the "CRR Service").


    By submitting any content to Bookswagon, you guarantee that:
    • You are the sole author and owner of the intellectual property rights in the content;
    • All "moral rights" that you may have in such content have been voluntarily waived by you;
    • All content that you post is accurate;
    • You are at least 13 years old;
    • Use of the content you supply does not violate these Terms of Use and will not cause injury to any person or entity.
    You further agree that you may not submit any content:
    • That is known by you to be false, inaccurate or misleading;
    • That infringes any third party's copyright, patent, trademark, trade secret or other proprietary rights or rights of publicity or privacy;
    • That violates any law, statute, ordinance or regulation (including, but not limited to, those governing, consumer protection, unfair competition, anti-discrimination or false advertising);
    • That is, or may reasonably be considered to be, defamatory, libelous, hateful, racially or religiously biased or offensive, unlawfully threatening or unlawfully harassing to any individual, partnership or corporation;
    • For which you were compensated or granted any consideration by any unapproved third party;
    • That includes any information that references other websites, addresses, email addresses, contact information or phone numbers;
    • That contains any computer viruses, worms or other potentially damaging computer programs or files.
    You agree to indemnify and hold Bookswagon (and its officers, directors, agents, subsidiaries, joint ventures, employees and third-party service providers, including but not limited to Bazaarvoice, Inc.), harmless from all claims, demands, and damages (actual and consequential) of every kind and nature, known and unknown including reasonable attorneys' fees, arising out of a breach of your representations and warranties set forth above, or your violation of any law or the rights of a third party.


    For any content that you submit, you grant Bookswagon a perpetual, irrevocable, royalty-free, transferable right and license to use, copy, modify, delete in its entirety, adapt, publish, translate, create derivative works from and/or sell, transfer, and/or distribute such content and/or incorporate such content into any form, medium or technology throughout the world without compensation to you. Additionally,  Bookswagon may transfer or share any personal information that you submit with its third-party service providers, including but not limited to Bazaarvoice, Inc. in accordance with  Privacy Policy


    All content that you submit may be used at Bookswagon's sole discretion. Bookswagon reserves the right to change, condense, withhold publication, remove or delete any content on Bookswagon's website that Bookswagon deems, in its sole discretion, to violate the content guidelines or any other provision of these Terms of Use.  Bookswagon does not guarantee that you will have any recourse through Bookswagon to edit or delete any content you have submitted. Ratings and written comments are generally posted within two to four business days. However, Bookswagon reserves the right to remove or to refuse to post any submission to the extent authorized by law. You acknowledge that you, not Bookswagon, are responsible for the contents of your submission. None of the content that you submit shall be subject to any obligation of confidence on the part of Bookswagon, its agents, subsidiaries, affiliates, partners or third party service providers (including but not limited to Bazaarvoice, Inc.)and their respective directors, officers and employees.

    Accept

    New Arrivals


    Inspired by your browsing history


    Your review has been submitted!

    You've already reviewed this product!
    ASK VIDYA