reine Buchbestellungen ab 5 Euro senden wir Ihnen Portofrei zuDiesen Artikel senden wir Ihnen ohne weiteren Aufpreis als PAKET

TEX in Practice
(Englisch)
Volume III: Tokens, Macros
Stephan v. Bechtolsheim

Print on Demand - Dieser Artikel wird für Sie gedruckt!

84,45 €

inkl. MwSt. · Portofrei
Dieses Produkt wird für Sie gedruckt, Lieferzeit ca. 14 Werktage
Menge:

Produktbeschreibung

TEX has always been regarded as the most elegant and powerful system for computer typesetting. However, its widespread use beyond academia was hampered by its complexity. Recently, fairly good TEX implementations have come out for PC's putting TEX on the disks of many people including writers, designers, desktop publishers, and engineers. Consequently, interest in TEX has surged. What is needed at this point is a book that teaches step-by-step how to use TEX, illustrating each step with relevant examples. This is exactly what S. v. Bechtolsheim's book does. It is a tutorial and guide for the first-time user of TEX, as well as a reference for the more experienced "TEXpert." TEX in Practice will appear as a four volume set, starting with TEX in Practice, Volume 1: Basics; TEX in Practice, Volume 2: Paragraphs, Math and Fonts; TEX in Practice, Volume 3: Tokens, Macros; TEX in Practice, Volume 4: Output Routines, Tables. TEX in Practice will be an indispensable reference for the TEX community and a guide through the first step for the TEX novice.

18 Tokens, Category Codes, Verbatim Modes.- 18.1 Tokens.- 18.1.1 The Basic Structure of the TEX Program.- 18.1.2 What Are Tokens?.- 18.1.3 Token Types.- 18.1.4 Spaces and Control Sequences.- 18.1.5 Character Codes.- 18.1.6 Category Codes, ?catcode.- 18.1.7 Experiments with Category Codes.- 18.1.8 Initial Category Codes.- 18.1.9 What Is a Letter in TEX?.- 18.1.10 string and Category Codes.- 18.1.11 the and Category Codes, DropPoints.- 18.1.12 The "At” Sign ("@”).- 18.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 Usesafterassignment.- 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” Macros.- 31.2.9 Section, Subsection, and Subsubsection Heading Macros.- 31.2.10 More Header-Related Macros.- 31.2.11 Cross-Referencing Macros for this Series.- 31.2.12 Version NUmber.- 31.2.13 The Macro Source Code File ts-set. tip.- 31.3 The TEXIP Format.- 31.4 Summary.
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 Usesafterassignment.- 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” Macros.- 31.2.9 Section, Subsection, and Subsubsection Heading Macros.- 31.2.10 More Header-Related Macros.- 31.2.11 Cross-Referencing Macros for this Series.- 31.2.12 Version NUmber.- 31.2.13 The Macro Source Code File ts-set. tip.- 31.3 The TEXIP Format.- 31.4 Summary.

18 Tokens, Category Codes, Verbatim Modes.- 18.1 Tokens.- 18.2 Active Characters.- 18.3 Verbatim Modes.- 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.2 Array Macros.- 19.3 Cross-Referencing Using csname...endcsname.- 19.4 Curly Braces.- 19.5 Summary.- 20 Token Registers, TfeX List Processing.- 20.1 Token Registers.- 20.2 TEX Lists.- 20.3 Using TfeK Lists for the Emulation of Arrays.- 20.4 Summary.- 21 Macros.- 21.1 Assigning a Meaning to a Control Sequence.- 21.2 Primitive Control Sequences.- 21.3 Macros.- 21.4 Some Simple Macro Examples.- 21.5 The Theory of Macro Definitions.- 21.6 Macro Definitions Using outer.- 21.7 Macros with Parameters.- 21.8 Macros with Undelimited Parameters.- 21.9 Macros with Delimited Parameters.- 21.10 Mixed Parameter Types.- 21.11 Spaces after Macro Calls, ignorespaces.- 21.12 Summary.- 22 Macros, Expansion Issues.- 22.1 Expanded Macro Definitions, edef.- 22.2 Macro Expansion.- 22.3 Placement of Macro Calls and Arguments.- 22.4 Category Codes and Parameters.- 22.5 Nested Macro Definitions.- 22.6.Defining "long"Macros.- 22.7.Organizing Your Own Macros.- 22.8 Keyword Parameters.- 22.9 Summary.- 23 More on Macro-Related Items.- 23.1 afterassignment.- 23.2 Let: Making Control Sequences Equivalent.- 23.3. let and Undefined Tokens.- 23.4 Looking Ahead with futurelet.- 23.5 Summary.- Advanced Macro Concepts.- 24.1 Changing the Order of Expansion, expandafetr.- 24.2 Suppressing Expansion with noexpand.- 24.3 The Almighty the.- 24.4 When No Exoansion Takes Place.- 24.5 Summary.- Conditional and Their Applications.- 25.1 Conditionals.- 25.2 Conforming Conditionals.- 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.2. Enumeration Macro Definitions.- 27.3. Box Register Queue Macros.- 27.4 relax.- 27.5 jobname.- 27.6 Environments.- 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.2 Reading from a File on a Line-By-Line Basis.- 28.3 Reading-In a Complete File, input.- 28.4 More input Related MAcros.- 28.5Writing to a File.- 28.6 Summary.- More on Input and Output.- 29.1 Index File Writing.- 29.2 Writing Table of Contents Files.- 29.3 Verbatim Writing to Files.- 29.4 Macros to Write Endnotes.- 29.5 Writing to the Log File and the Terminal.- 29.6 Protocol File Writing.- 29.7 Comparing Two Files.- 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.4 Administrative Files.- 30.5 The Generation of a Table of Contents.- 30.6 Putting the Pieces Together.- 30.7 Macros Source Files.- 30.8 Cross-Referencing Macros for Partial Processing Macros.- 30.9 Summary.- More on the Partial Processing of a Documents.- 31.1 An Example Application.- 31.2 The Partial Processing Macros Used to Typeset This Series.- 31.3 The TEXIP Format.- 31.4 Summary.

Inhaltsverzeichnis



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 Usesafterassignment.- 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" Macros.- 31.2.9 Section, Subsection, and Subsubsection Heading Macros.- 31.2.10 More Header-Related Macros.- 31.2.11 Cross-Referencing Macros for this Series.- 31.2.12 Version NUmber.- 31.2.13 The Macro Source Code File ts-set. tip.- 31.3 The TEXIP Format.- 31.4 Summary.




Springer Book Archives



Datenschutz-Einstellungen