TEX in Practice: Volume 1: Basics / Edition 1

TEX in Practice: Volume 1: Basics / Edition 1

by Stephan v. Bechtolsheim

ISBN-10: 0387975950

ISBN-13: 9780387975955

Pub. Date: 07/09/1993

Publisher: Springer New York

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 PCs putting TEX on the desks of many people: writers, designers, desktop publishers, engineers, and consequently, the interest in TEX…  See more details below


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 PCs putting TEX on the desks of many people: writers, designers, desktop publishers, engineers, and consequently, the 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 by meaningful examples. This is exactly what S.v. Bechtolsheim's book does. It is a tutorial and guide for the first-time users of TEX, as well as a reference for the most experienced "TEXpert." TEX in Practice will appear as a four volume set, starting with volume 1 Basics, followed by volume 2 Paragraphs, Math and Fonts, volume 3 Tokens, Macros and volume 4 Output Routines, Tables. TEX in Practice will be an indispensable reference for the TEX community and a guide through the first steps for the TEX novice.

Read More

Product Details

Springer New York
Publication date:
Monographs in Visual Communication Series
Edition description:
Product dimensions:
6.10(w) x 9.25(h) x 0.04(d)

Table of Contents

1 Before We Get Started.- 1.1 What Is TEX?.- 1.2 Complexity and Power of Systems.- 1.3 Summary.- 2 Processing with TEX.- 2.1 Properties and Capabilities of TEX.- 2.1.1 A Convention About Input and Output of TEX.- 2.1.2 The Structure of TEX’s Input.- 2.1.3 The Extensibility of TEX.- 2.1.4 Processing a Document with TEX.- 2.2 Macros, Macro Packages and Formats.- 2.2.1 Some Basic Terminology.- 2.2.2 The Different Meanings of the Word TEX.- 2.2.3 Standard Macro Packages (Formats) of TEX.- 2.3 Files Accessed by TEX.- 2.4 Preparations for Using TEX Efficiently.- 2.4.1 Maintaining Your Own TEX Notebook and File.- 2.4.2 Choosing a Good Text Editor Is Important.- 2.5 Utilities.- 2.6 Information about TEX.- 2.6.1 The Original Books Describing TEX and METAFONT.- 2.6.2 TUG, the TEX Users Group.- 2.6.3 TEX is a Public Domain Software Product.- 2.6.4 Electronic Mailing Lists.- 2.7 Entering Text.- 2.7.1 Letters and Digits.- 2.7.2 Special Characters in TEX.- 2.7.3 Minus Sign, Hyphen, En-Dash and Em-Dash.- 2.8 The Space, Tab and End-of-Line Characters.- 2.8.1 Related Definitions.- 2.8.2 Rules Governing Spaces, Tabs and End-of-Line Characters.- 2.9 Organizing Your TEX Sources.- 2.10 How to Experiment with TEX.- 2.11 Summary.- 3 Registers, Numbers, and Counter Registers In Particular.- 3.1 Registers in General.- 3.2 Register Arithmetic.- 3.2.1 Assignments of Values to Registers.- 3.2.2 Arithmetic in TEX.- 3.3 Numbers and Counter Registers in TEX.- 3.3.1 Numerical Constants.- 3.3.2 Characters, Character-Based Constants, etc.- 3.3.3 The Different Notations of Numerical Constants.- 3.3.4 Printing Numerical Values, \number, \romannumeral.- 3.3.5 Printing a Character Based on Its Character Code, \char, \PrintAlph.- 3.3.6 Counter Registers, \newcount.- 3.3.7 Assign a Name to a Counter Register, \countdef.- 3.3.8 Arithmetic with Counter Registers.- 3.3.9 Modulo Arithmetic, the Definition of Macro \ModuloOneAdvanceNumCond.- 3.3.10 Counter Parameters.- 3.3.11 Numerical Conditionals, \ifnum, \ifcase.- 3.3.12 Computing the Absolute Value.- 3.3.13 Modulo Computation, \IModN.- 3.3.14 Compute the Value in a Certain Position, \ValueOfDecimalPosition.- 3.3.15 The Definition of Macro \LargestDecimalPlace and Its Use.- 3.3.16 Printing a Number in Textual Form.- 3.4 Generic Counter Register Macros.- 3.4.1 Printing Counter Registers, \arabic, \roman, \Roman, \alph, \Alph.- 3.4.2 Macros to Administer Counter Registers.- 3.4.3 The Definition of Macro \ReassignCounter.- 3.4.4 Examples Using the Counter Register Macros.- 3.5 Summary.- 4 More on Registers, Dimensions.- 4.1 Dimensions and Dimension Units.- 4.1.1 “Absolute” Dimension Units.- 4.1.2 “Font Relative” Dimension Units.- 4.1.3 Writing Dimensions in TEX.- 4.1.4 “Infinite” Dimension Units.- 4.1.5 True Dimensions and Global Magnification.- 4.1.6 Saving Tokens When Writing Dimension Values.- 4.1.7 Dimension Registers, \dimen.- 4.1.8 The Largest Legal Dimension, \maxdimen.- 4.1.9 Dimension Parameters.- 4.1.10 A Rounding Error Problem.- 4.1.11 Computing an Absolute Dimension.- 4.2 Glue Registers.- 4.2.1 Glue Registers in General.- 4.2.2 Glue Parameters.- 4.3 Math Glue Registers.- 4.4 Mixing Counter, Dimension and Glue Registers.- 4.5 Box Registers.- 4.5.1 Allocating a New Box Register, \newbox.- 4.5.2 Box Register States.- 4.5.3 Retrieving the Content of a Box Register, \box, \copy.- 4.5.4 Loading Box Registers, \setbox.- 4.5.5 Exchanging Two Box Registers, \SwapBoxRegs.- 4.5.6 Clearing a Box Register, \ClearBoxReg.- 4.5.7 Conditionals Related to Box Registers, \ReportBoxType.- 4.5.8 Accessing the Dimensions of a Box Register’s Content, \ht, \dp, \wd.- 4.5.9 Modifying the Dimensions of a Box Stored in a Box Register.- 4.5.10 Arithmetic with Dimensions of Box Registers, \AdvanceBoxDimension, \OverallSize.- 4.5.11 Dimensions of Void Box Registers.- 4.5.12 Generating an Empty Box, \EmptyBox.- 4.5.13 Setting All Dimensions of a Box Register to Zero, \ZeroBox, \ZeroBoxOut.- 4.5.14 Dumping the Contents of a Box Register into the Log File: \showbox, \showboxdepth, \showboxbreadth.- 4.5.15 The Definitions of Macros \ShowBoxAll, \ShowBoxDepthOne and \ShowBoxDepthTwo.- 4.5.16 Grouping and Box Register Dimensions.- 4.6 Summary of the \new… Macros.- 4.6.1 A List of All \new… Macros.- 4.6.2 \outer-free Definitions of the \new… Macros.- 4.6.3 Name Conflicts in \new… Macros.- 4.7 Dumping All Parameters into the Logfile.- 4.8 Summary.- 5 Glue, Leaders and Rules.- 5.1 Basic Properties of Glue.- 5.2 Horizontal Glue.- 5.2.1 Glue Without Stretch- and Shrinkability, Negative Glue.- 5.2.2 Getting Glue to Stretch and Shrink.- 5.2.3 Stretching, Overstretching, Shrinking and Overshrinking of Glue.- 5.3 Badness of Boxes.- 5.3.1 Computing the Badness.- 5.3.2 Computing the Badness When Shrinking Occurs.- 5.3.3 The Counter Parameter \badness.- 5.3.4 Examples of TEX’s Badness Computations.- 5.3.5 Overfull and Underfull Boxes, \hbadness, \vbadness.- 5.3.6 The Marking of Overfull Horizontal Boxes, \overfullrule.- 5.3.7 Dimension Parameters \hfuzz, \vfuzz.- 5.3.8 Stretching of Multiple Glues.- 5.4 Glue with Infinite Stretchability and Shrinkability.- 5.4.1 “Infinite” Units of Dimension.- 5.4.2 More on the Use of Infinite Units.- 5.4.3 \hfil, \hfill, \hss, \hfilneg.- 5.4.4 The Hierarchy in the Dimensions Units of the Stretchability and Shrinkability of Glues.- 5.4.5 Examples Involving Glue with Infinite Stretchabilities.- 5.4.6 Glue Is a Discardable Item.- 5.4.7 Zero Glue Versus No Glue.- 5.4.8 Kern, \kern.- 5.4.9 Macros of the Plain Format Relating to Horizontal Glue and Kern.- 5.5 Vertical Glue, \vskip.- 5.5.1 Implicit Vertical Glues, Glue Parameters.- 5.5.2 Macros of the Plain Format Generating Vertical Glue, \smallskip, \medskip, \bigskip.- 5.5.3 \vfil, \vfill, \vss, \vfilneg.- 5.5.4 Examples of Explicit Vertical Glue.- 5.6 Leaders.- 5.6.1 Leader Definitions Based on Rules, “Visible Glue”.- 5.6.2 Leaders Based on Boxes.- 5.6.3 Leader Example Macros.- 5.6.4 Sample Figure Source Codes.- 5.6.5 Leader Related Macro Definitions in the Plain Format of TEX.- 5.7 Rules.- 5.7.1 Rule Dimensions.- 5.7.2 Keywords height, depth and width.- 5.7.3 Examples of Rules.- 5.8 Penalties.- 5.8.1 Penalty Values.- 5.8.2 Macros Involving Penalties.- 5.9 Summary.- 6 Boxes.- 6.1 Basics About Boxes, Box Types.- 6.1.1 Coding a Box.- 6.1.2 Reference Point and Dimensions of Boxes.- 6.2 Horizontal Boxes (Hboxes).- 6.2.1 Making Boxes Visible.- 6.2.2 The Contents of an Hbox.- 6.2.3 The Building of an Hbox.- 6.2.4 Implicit Grouping and Hboxes.- 6.2.5 Characters Are Almost Hboxes.- 6.2.6 The \null Macro.- 6.2.7 How to Structure the Source Code of an \hbox Command.- 6.2.8 \hbox\bgroup… \egroup.- 6.3 Examples of Building Horizontal Boxes.- 6.3.1 Characters in Hboxes.- 6.3.2 Other Boxes Inside an Hbox.- 6.3.3 Using Boxes Stored in Box Registers.- 6.3.4 Raising and Lowering Boxes, \raise, \lower.- 6.3.5 More \raise and \lower Examples.- 6.3.6 Vertical Boxes Inside Horizontal Boxes.- 6.3.7 Horizontal Glue Inside Hboxes.- 6.3.8 Vertical Rules Inside Hboxes.- 6.3.9 Mathematical Formulas Inside Hboxes.- 6.4 Determining the Dimensions of Hboxes.- 6.4.1 A Little Bit of Theory.- 6.4.2 Examples of Width Computations of Hboxes.- 6.4.3 Computing Height and Depth of an Hbox.- 6.4.4 Empty Hboxes Built with \hbox to ?dimen?.- 6.5 Hboxes of Zero or Nearly Zero Width, \hbox to Opt {…}.- 6.5.1 The Problem of Overprinting Two Characters.- 6.5.2 Macros \rlap and \llap.- 6.5.3 Poor Man’s Boldface, Macro \BoldfaceFake.- 6.5.4 Constructing a Special Symbol.- 6.5.5 Solving the Same Problem Using Box Registers.- 6.6 \…line Macros \line, \leftline, \rightline and \centerline.- 6.6.1 The Definitions of the \… line Macros.- 6.6.2 The Definitions of Macros \LeftLeaderLine, \RightLeaderLine, and \CenterLeaderLine.- 6.6.3 Examples.- 6.6.4 Paragraphs Preceding \… line Calls.- 6.6.5 \line… Macros and Glue Used.- 6.6.6 Using the \line… Macros Inside a Vbox.- 6.7 Generating More Hboxes.- 6.7.1 Hboxes Prevent Hyphenation.- 6.7.2 Generating the TEX Logo.- 6.7.3 Building Letterheads.- 6.7.4 Removing Glue from a Horizontal List, \unskip.- 6.8 A Table Generated with Hboxes.- 6.8.1 An Outline of Printing a Table Using Hboxes.- 6.8.2 An Example Table Built Using Hboxes.- 6.8.3 Adding Headers to an Hbox-Based Table.- 6.8.4 Adding Vertical Glue to an Hbox-Built Table.- 6.8.5 Using a Macro Building Table Rows.- 6.8.6 Adding Horizontal Rules.- 6.8.7 Modifications to the Discussed Table.- 6.9 Building Tables Using \settabs.- 6.10 More Hbox Examples.- 6.10.1 Underlining, \underbar.- 6.10.2 A Macro for Signature Lines, \SignatureLine.- 6.10.3 A Form Line Macro, \FormLine.- 6.10.4 Another Interesting Example.- 6.11 \hidevidth.- 6.12 Infinite Glues and Hboxes.- 6.13 Token Parameters \everyhbox and \everyvbox.- 6.14 Summary.- 7 Vertical Boxes.- 7.1 Basics of Vertical Boxes.- 7.1.1 Primitives \vbox, \vtop and \vcenter for the Generation of Vboxes.- 7.1.2 Making Vboxes Visible.- 7.1.3 Comparing Hboxes and Vboxes.- 7.1.4 The Vertical List of a Vbox.- 7.2 Building Simple Vboxes.- 7.2.1 A Paragraph Inside a Vbox, Centering a Vbox.- 7.2.2 Vertical Glue and Other Boxes Inside Vboxes.- 7.2.3 More on Boxes Inside Vboxes, \leavevmode.- 7.2.4 Moving Items Inside a Vbox Horizontally, \moveleft, \moveright.- 7.3 Line Spacing and Interline Glue.- 7.3.1 Overlapping of Lines Is Prevented.- 7.3.2 Changing \baselineskip.- 7.3.3 Typical Settings of \baselineskip.- 7.3.4 Explaining \baselineskip, \lineskiplimit, and \lineskip.- 7.3.5 Computing the Interline Glue.- 7.3.6 An Example of Interline Glue Computations.- 7.3.7 Visualizing Interline Glue Computations.- 7.3.8 Interline Glue Computations and \vskips.- 7.3.9 The Depth of the Preceding Box or Line, \prevdepth.- 7.3.10 Suppressing Interline Glue Using \nointerlineskip.- 7.3.11 How to Disable and Enable Interline Glue, \offinterlineskip, \normalbaselines.- 7.3.12 Comparing \offinterlineskip and \nointerlineskip.- 7.3.13 The Definition of Macro \AlwaysBaselineskip.- 7.3.14 Interline Glue and Horizontal Rules.- 7.3.15 Increasing Interline Spacing Using Macro \openup.- 7.4 Struts.- 7.4.1 Different Ways to Generate Struts and Strut-Like Constructs.- 7.4.2 Strut Examples.- 7.4.3 Automatic Strut Computations, Macros \ComputeStrut, \HigherStrut and \DeeperStrut.- 7.4.4 Macro \ReduceToStrut to Generate a Strut Based on Some Arbitrary Text.- 7.5 The Dimensions of Vboxes.- 7.5.1 The Width of Vboxes.- 7.5.2 The Height and Depth Computations of Vboxes.- 7.5.3 Some More Examples of Vbox Dimension Computations.- 7.5.4 Limiting the Depth of a Vbox, \boxmaxdepth.- 7.5.5 A Discussion of \vcenter and Its Restrictions, Macro \VcenterX.- 7.5.6 Predefined Heights or Depths in Vboxes: \vbox, \vtop and \vcenter to or spread ?dimen?.- 7.5.7 A Macro to Shift the Reference Point of a Box Up or Down, \ShiftRefPointUpOrDown.- 7.5.8 Alignment Problems in Vboxes.- 7.6 Summary.- 8 More on Vertical Boxes.- 8.1 Unwrapping Boxes Using \un… Primitives.- 8.1.1 Showing the Workings of \unhbox, etc..- 8.1.2 Interline Glue and \unvbox.- 8.1.3 Determining the Natural Height or Depth of a Vbox, \NaturalHeight, \NaturalDepth.- 8.1.4 The Macro \Vtbox to Move the Reference Point of a Vbox.- 8.2 Splitting Vboxes, \vsplit.- 8.2.1 The Syntax of \vsplit.- 8.2.2 The First \vsplit Example.- 8.2.3 Glue Is Removed at a Break Point.- 8.2.4 Protecting Glue at a Break Point.- 8.2.5 Protecting Glue at a Break Point, Exceptions.- 8.2.6 Leaders Are Removed at a Break Point.- 8.2.7 The Insertion of \splittopskip Glue by TEX.- 8.2.8 Using a Penalty in \vsplit.- 8.2.9 The ‹dimen› of \vsplit ?dimen?.- 8.2.10 Splitting Requires Glue or Penalty (or Both).- 8.2.11 The Dimension Parameter \splitmaxdepth.- 8.2.12 Applying \vsplit: Adding Line Numbers to the Beginning of Every Line of a Paragraph.- 8.3 Making a Box Larger, \BoxLarger.- 8.4 Another More Complicated Vbox Example.- 8.5 Removing Items from a Box Related List.- 8.5.1 The \lastbox Primitive.- 8.5.2 Examples of \lastskip, \lastkern, \lastpenalty.- 8.5.3 An Example of Using \unskip.- 8.6 Vertical Spacing Macros.- 8.7 Summary.- 9 Boxes and Rules.- 9.1 Rule Placement and Borderline of Boxes.- 9.2 Macros to Draw Simple Graphs.- 9.2.1 The Macro Source Code.- 9.2.2 An Example Applying the Presented Macros.- 9.3 Drawing Rules Around a Box.- 9.3.1 A Simple Macro to Draw Rules Around a Box (\BoxingA).- 9.3.2 An Example Application of \BoxingA: Reserving Space for a Figure, \FigureBox.- 9.3.3 A Macro for Drawing Rules Around Boxes with User-Controlled Thickness of those Rules, \BoxingB.- 9.3.4 Macros Including the Marking of Reference Points of Boxes, \BoxingC, and Baseline, \BoxingD.- 9.3.5 Correcting Reference Point and Dimensions.- 9.3.6 Rule Macros for Marking Boxes.- 9.3.7 The Definition of Macro \BoxingE.- 9.3.8 An Example of Using \BoxingE.- 9.3.9 Replacing \hbox by \HboxR, \vbox by \VboxR, etc..- 9.3.10 Examples.- 9.3.11 Empty Ruled Boxes, \EmptyRuledBox.- 9.3.12 Eliminating Ruled Boxes, \EliminateRuledBoxes.- 9.3.13 \LineR, \LeftLineR, \RightLineR and \CenterLineR.- 9.3.14 The Combined Loading of the Most Important Box-Related Macros.- 9.4 Summary.- Source Code File Index.

Read More

Customer Reviews

Average Review:

Write a Review

and post it to your social network


Most Helpful Customer Reviews

See all customer reviews >