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.- ...
"Descrizione articolo" può appartenere a un’altra edizione di questo titolo.