The LaTeX companion


The LaTeX companion
by Frank Mittelbach, Michel Goossens
Pages count :1121 pages
Size :9280 ko

Contents

List of Figures

List of Tables

Preface

1 Introduction

  • 1.1 A brief history
  • 1.2 Today’s system
  • 1.3 Working with this book
  • 1.3.1 What’s here.
  • 1.3.2 Typographic conventions
  • 1.3.3 Using the examples.

2 The Structure of a LATEX Document

  • 2.1 The structure of a source file.
  • 2.1.1 Processing of options and packages
  • 2.1.2 Splitting the source file into parts
  • 2.1.3 Combining several files
  • 2.1.4 optional—Providing variants in the document source
  • 2.2 Sectioning commands
  • 2.2.1 Numbering headings.
  • 2.2.2 Formatting headings.
  • 2.2.3 Changing fixed heading texts.
  • 2.2.4 fncychap—Predefined chapter heading layouts.
  • 2.2.5 quotchap—Mottos on chapters.
  • 2.2.6 titlesec—A different approach to headings
  • 2.3 Table of contents structures
  • 2.3.1 Entering information into the contents files
  • 2.3.2 Typesetting a contents list
  • 2.3.3 Combining contents lists
  • 2.3.4 Providing additional contents files
  • 2.3.5 shorttoc—Summary table of contents
  • 2.3.6 minitoc—Multiple tables of contents56
  • 2.3.7 titletoc—A different approach to contents lists
  • 2.4 Managing references.66
  • 2.4.1 showkeys—Displaying the reference keys
  • 2.4.2 varioref—More flexible cross-references
  • 2.4.3 prettyref—Adding frills to references
  • 2.4.4 titleref—Non-numerical references
  • 2.4.5 hyperref—Active references
  • 2.4.6 xr—References to external documents

3 Basic Formatting Tools

  • 3.1 Phrases and paragraphs
  • 3.1.1 xspace—Gentle spacing after a macro
  • 3.1.2 ellipsis, lips—Marks of omission
  • 3.1.3 amsmath—Nonbreaking dashes
  • 3.1.4 relsize—Relative changes to the font size
  • 3.1.5 textcase—Change case of text intelligently
  • 3.1.6 ulem—Emphasize via underline
  • 3.1.7 soul—Letterspacing or stealing sheep
  • 3.1.8 url—Typesetting URLs, path names, and the like
  • 3.1.9 euro—Converting and typesetting currencies
  • 3.1.10 lettrine—Dropping your capital
  • 3.1.11 Paragraph justification in LaTEX
  • 3.1.12 ragged2e—Enhancing justification
  • 3.1.13 setspace—Changing interline spacing
  • 3.1.14 picinpar—Making rectangular holes
  • 3.2 Footnotes, endnotes, and marginals
  • 3.2.1 Using standard footnotes
  • 3.2.2 Customizing standard footnotes
  • 3.2.3 ftnright—Right footnotes in a two-column environment
  • 3.2.4 footmisc—Various footnotes styles
  • 3.2.5 perpage—Resetting counters on a “per-page” basis
  • 3.2.6 manyfoot—Independent footnotes
  • 3.2.7 endnotes—An alternative to footnotes
  • 3.2.8 Marginal notes
  • 3.3 List structures
  • 3.3.1 Modifying the standard lists
  • 3.3.2 paralist—Extended list environments.
  • 3.3.3 amsthm—Providing headed lists.
  • 3.3.4 Making your own lists.
  • 3.4 Simulating typed text.
  • 3.4.1 Simple verbatim extensions
  • 3.4.2 upquote—Computer program style quoting.
  • 3.4.3 fancyvrb—Highly customizable verbatim environments
  • 3.4.4 listings—Pretty-printing program code
  • 3.5 Lines and columns
  • 3.5.1 lineno—Numbering lines of text.
  • 3.5.2 parallel—Two text streams aligned.
  • 3.5.3 multicol—A flexible way to handle multiple columns.
  • 3.5.4 changebar—Adding revision bars to documents

4 The Layout of the Page

  • 4.1 Geometrical dimensions of the layout
  • 4.2 Changing the layout.
  • 4.2.1 layouts—Displaying your layout.
  • 4.2.2 A collection of page layout packages
  • 4.2.3 typearea—A traditional approach.
  • 4.2.4 geometry—Layout specification with auto-completion.
  • 4.2.5 lscape—Typesetting individual pages in landscape mode
  • 4.2.6 crop—Producing trimming marks.
  • 4.3 Dynamic page data:page numbers and marks
  • 4.3.1 LaTEX page numbers
  • 4.3.2 lastpage—A way to reference it.
  • 4.3.3 chappg—Page numbers by chapters
  • 4.3.4 LaTEX mark commands.
  • 4.3.5 extramarks—Providing new marks.
  • 4.4 Page styles.
  • 4.4.1 The low-level page style interface.
  • 4.4.2 fancyhdr—Customizing page styles
  • 4.4.3 truncate—Truncate text to a given length.
  • 4.5 Visual formatting
  • 4.5.1 nextpage—Extensions to \clearpage
  • 4.6 Doing layout with class.
  • 4.6.1 KOMA-Script—A drop-in replacement for article et al
  • 4.6.2 memoir—Producing complex publications.

5 Tabular Material

  • 5.1 Standard LaTEX environments
  • 5.1.1 Using the tabbing environment.
  • 5.1.2 Using the tabular environment.
  • 5.2 array—Extending the tabular environments
  • 5.2.1 Examples of preamble commands.
  • 5.2.2 Defining new column specifiers.
  • 5.3 Calculating column widths
  • 5.3.1 Explicit calculation of column widths
  • 5.3.2 tabularx—Automatic calculation of column widths.
  • 5.3.3 tabulary—Column widths based on content.
  • 5.3.4 Differences between tabular*, tabularx, and tabulary 255
  • 5.4 Multipage tabular material
  • 5.4.1 supertabular—Making multipage tabulars.
  • 5.4.2 longtable—Alternative multipage tabulars.
  • 5.5 Color in tables.
  • 5.6 Customizing table rules and spacing
  • 5.6.1 Colored table rules
  • 5.6.2 Variable-width rules
  • 5.6.3 hhline—Combining horizontal and vertical lines
  • 5.6.4 arydshln—Dashed rules.
  • 5.6.5 tabls—Controlling row spacing.
  • 5.6.6 booktabs—Formal ruled tables.
  • 5.7 Further extensions
  • 5.7.1 multirow—Vertical alignment in tables
  • 5.7.2 dcolumn—Decimal column alignments
  • 5.8 Footnotes in tabular material.
  • 5.8.1 Using minipage footnotes with tables
  • 5.8.2 threeparttable—Setting table and notes together
  • 5.9 Applications.
  • 5.9.1 Managing tables with wide entries.
  • 5.9.2 Tables inside tables

6 Mastering Floats

  • 6.1 Understanding float parameters.
  • 6.2 Float placement control.
  • 6.2.1 placeins—Preventing floats from crossing a barrier.
  • 6.2.2 afterpage—Taking control at the page boundary
  • 6.2.3 endfloat—Placing figures and tables at the end
  • 6.3 Extensions to LaTEX’s float concept
  • 6.3.1 float—Creating new float types.
  • 6.3.2 caption—For nonfloating figures and tables.
  • 6.3.3 rotating—Rotating floats.
  • 6.3.4 rotfloat—Combining float and rotating
  • 6.4 Inline floats.
  • 6.4.1 wrapfig—Wrapping text around a figure.
  • 6.4.2 picins—Placing pictures inside the text
  • 6.5 Controlling the float caption
  • 6.5.1 caption—Customizing your captions
  • 6.5.2 subfig—Substructuring floats
  • 6.5.3 subfloat—Sub-numbering floats
  • 6.5.4 sidecap—Place captions sideways
  • 6.5.5 fltpage—Captions on a separate page.

7 Fonts and Encodings

  • 7.1 Introduction
  • 7.1.1 The history of LaTEX’s font selection scheme (NFSS)
  • 7.1.2 Input and output encodings.
  • 7.2 Understanding font characteristics.
  • 7.2.1 Monospaced and proportional fonts.
  • 7.2.2 Serifed and sans serif fonts.
  • 7.2.3 Font families and their attributes
  • 7.2.4 Font encodings
  • 7.3 Using fonts in text.
  • 7.3.1 Standard LaTEX font commands
  • 7.3.2 Combining standard font commands.
  • 7.3.3 Font commands versus declarations.
  • 7.3.4 Accessing all characters of a font
  • 7.3.5 Changing the default text fonts
  • 7.3.6 LaTEX 2.09 font commands.
  • 7.4 Using fonts in math
  • 7.4.1 Special math alphabet identifiers
  • 7.4.2 Text font commands in math.
  • 7.4.3 Mathematical formula versions
  • 7.5 Standard LaTEX font support.
  • 7.5.1 Computer Modern—The LaTEX standard fonts.
  • 7.5.2 inputenc—Selecting the input encoding.
  • 7.5.3 fontenc—Selecting font encodings
  • 7.5.4 textcomp—Providing additional text symbols.
  • 7.5.5 exscale—Scaling large operators
  • 7.5.6 tracefnt—Tracing the font selection.
  • 7.5.7 nfssfont.tex—Displaying font tables and samples
  • 7.6 PSNFSS—PostScript fonts with LaTEX.
  • 7.6.1 Font samples for fonts supported by PSNFSS.
  • 7.6.2 mathptmx—Times Roman in math and text
  • 7.6.3 mathpazo—Palatino in math and text.
  • 7.6.4 pifont—Accessing Pi and Symbol fonts.
  • 7.7 A collection of font packages
  • 7.7.1 eco—Old-style numerals with Computer Modern.
  • 7.7.2 ccfonts, concmath—The Concrete fonts.
  • 7.7.3 cmbright—The Computer Modern Bright fonts.
  • 7.7.4 luximono—A general-purpose typewriter font.
  • 7.7.5 txfonts—Alternative support for Times Roman.
  • 7.7.6 pxfonts—Alternative support for Palatino
  • 7.7.7 The Fourier-GUTenberg fonts.
  • 7.7.8 The URW Antiqua and Grotesk fonts
  • 7.7.9 yfonts—Typesetting with Old German fonts
  • 7.7.10 euler, eulervm—Accessing the Euler fonts
  • 7.8 The LaTEX world of symbols
  • 7.8.1 dingbat—A selection of hands
  • 7.8.2 wasysym—Waldi’s symbol font
  • 7.8.3 marvosym—Interface to the MarVoSym font
  • 7.8.4 bbding—A METAFONT alternative to Zapf Dingbats
  • 7.8.5 ifsym—Clocks, clouds, mountains, and other symbols
  • 7.8.6 tipa—International Phonetic Alphabet symbols
  • 7.8.7 Typesetting the euro symbol (€)
  • 7.9 The low-level interface
  • 7.9.1 Setting individual font attributes
  • 7.9.2 Setting several font attributes.
  • 7.9.3 Automatic substitution of fonts
  • 7.9.4 Using low-level commands in the document
  • 7.10 Setting up new fonts
  • 7.10.1 Overview
  • 7.10.2 Naming those thousands of fonts
  • 7.10.3 Declaring new font families and font shape groups
  • 7.10.4 Modifying font families and font shape groups
  • 7.10.5 Declaring new font encoding schemes
  • 7.10.6 Internal file organization
  • 7.10.7 Declaring new fonts for use in math
  • 7.10.8 Example:Defining your ownfd files
  • 7.10.9 The order of declaration
  • 7.11 LaTEX’s encoding models
  • 7.11.1 Character data within the LaTEX system.
  • 7.11.2 LaTEX’s internal character representation (LICR)
  • 7.11.3 Input encodings
  • 7.11.4 Output encodings
  • 7.12 Compatibility packages for very old documents.
  • 7.12.1 oldlfont, rawfonts, newlfont—Processing old documents
  • 7.12.2 latexsym—Providing symbols from LaTEX 2.09 lasy fonts

8 Higher Mathematics

  • 8.1 Introduction to AMS-LaTEX
  • 8.2 Display and alignment structures for equations.
  • 8.2.1 Comparison with standard LaTEX
  • 8.2.2 A single equation on one line.
  • 8.2.3 A single equation on several lines:no alignment.
  • 8.2.4 A single equation on several lines:with alignment
  • 8.2.5 Equation groups without alignment
  • 8.2.6 Equation groups with simple alignment.
  • 8.2.7 Multiple alignments:align and flalign.
  • 8.2.8 Display environments as mini-pages
  • 8.2.9 Interrupting displays:\intertext
  • 8.2.10 Vertical space and page breaks in and around displays
  • 8.2.11 Equation numbering and tags.
  • 8.2.12 Fine-tuning tag placement
  • 8.2.13 Subordinate numbering sequences
  • 8.2.14 Resetting the equation counter.
  • 8.3 Matrix-like environments
  • 8.3.1 The cases environment
  • 8.3.2 The matrix environments
  • 8.3.3 Stacking in subscripts and superscripts.
  • 8.3.4 Commutative diagrams.
  • 8.3.5 delarray—Delimiters surrounding an array.
  • 8.4 Compound structures and decorations.
  • 8.4.1 Decorated arrows
  • 8.4.2 Continued fractions.
  • 8.4.3 Boxed formulas
  • 8.4.4 Limiting positions
  • 8.4.5 Multiple integral signs.
  • 8.4.6 Modular relations
  • 8.4.7 Fractions and generalizations.
  • 8.4.8 Dottier accents
  • 8.4.9 amsxtra—Accents as superscripts
  • 8.4.10 Extra decorations
  • 8.5 Variable symbol commands.
  • 8.5.1 Ellipsis
  • 8.5.2 Horizontal extensions.
  • 8.5.3 Vertical extensions
  • 8.6 Words in mathematics.
  • 8.6.1 The \text command.
  • 8.6.2 Operator and function names.
  • 8.7 Fine-tuning the mathematical layout
  • 8.7.1 Controlling the automatic sizing and spacing
  • 8.7.2 Sub-formulas.
  • 8.7.3 Big-g delimiters
  • 8.7.4 Radical movements.
  • 8.7.5 Ghostbusters™
  • 8.7.6 Horizontal spaces
  • 8.8 Fonts in formulas
  • 8.8.1 Additional math font commands.
  • 8.8.2 bm—Making bold
  • 8.8.3 A collection of math font set-ups.
  • 8.9 Symbols in formulas
  • 8.9.1 Mathematical symbol classes
  • 8.9.2 Letters, numerals, and other Ordinary symbols
  • 8.9.3 Mathematical accents
  • 8.9.4 Binary operator symbols
  • 8.9.5 Relation symbols
  • 8.9.6 Punctuation
  • 8.9.7 Operator symbols
  • 8.9.8 Opening and Closing symbols

9 LATEX in a Multilingual Environment

  • 9.1 TEX and non-English languages.
  • 9.1.1 Language-related aspects of typesetting
  • 9.1.2 Culture-related aspects of typesetting
  • 9.1.3 Babel—LaTEX speaks multiple languages
  • 9.2 The babel user interface
  • 9.2.1 Setting or getting the current language
  • 9.2.2 Handling shorthands
  • 9.2.3 Language attributes
  • 9.3 User commands provided by language options
  • 9.3.1 Translations
  • 9.3.2 Available shorthands
  • 9.3.3 Language-specific commands
  • 9.3.4 Layout considerations
  • 9.3.5 Languages and font encoding
  • 9.4 Support for non-Latin alphabets
  • 9.4.1 The Cyrillic alphabet
  • 9.4.2 The Greek alphabet
  • 9.4.3 The Hebrew alphabet
  • 9.5 Tailoring babel
  • 9.5.1 Hyphenating in several languages
  • 9.5.2 The package file
  • 9.5.3 The structure of the babel language definition file
  • 9.6 Other approaches
  • 9.6.1 More complex languages
  • 9.6.2 Omega

10 Graphics Generation and Manipulation

  • 10.1 Producing portable graphics and ornaments
  • 10.1.1 boxedminipage—Boxes with frames
  • 10.1.2 shadow—Boxes with shadows
  • 10.1.3 fancybox—Ornamental boxes
  • 10.1.4 epic—An enhanced picture environment.
  • 10.1.5 eepic—Extending the epic package
  • 10.1.6 Special-purpose languages
  • 10.2 LaTEX’s device-dependent graphics support.
  • 10.2.1 Options for graphics and graphicx.
  • 10.2.2 The \includegraphics syntax in the graphics package
  • 10.2.3 The \includegraphics syntax in the graphicx package
  • 10.2.4 Setting default key values for the graphicx package.
  • 10.2.5 Declarations guiding the inclusion of images
  • 10.2.6 A caveat:Encapsulation is important
  • 10.3 Manipulating graphical objects in LaTEX.
  • 10.3.1 Scaling a LaTEX box
  • 10.3.2 Resizing to a given size.
  • 10.3.3 Rotating a LaTEX box
  • 10.3.4 rotating—Revisited
  • 10.4 Display languages:PostScript, PDF, and SVG
  • 10.4.1 The PostScript language.
  • 10.4.2 The dvips PostScript driver
  • 10.4.3 pspicture—An enhanced picture environment for dvips
  • 10.4.4 The Portable Document Format.
  • 10.4.5 Scalable Vector Graphics.

11 Index Generation

  • 11.1 Syntax of the index entries
  • 11.1.1 Simple index entries
  • 11.1.2 Generating subentries.
  • 11.1.3 Page ranges and cross-references.
  • 11.1.4 Controlling the presentation form.
  • 11.1.5 Printing special characters
  • 11.1.6 Creating a glossary
  • 11.1.7 Defining your own index commands
  • 11.1.8 Special considerations.
  • 11.2 makeindex—A program to format and sort indexes.
  • 11.2.1 Generating the formatted index.
  • 11.2.2 Detailed options of the MakeIndex program.
  • 11.2.3 Error messages.
  • 11.2.4 Customizing the index with MakeIndex
  • 11.2.5 MakeIndex pitfalls
  • 11.3 xindy—An alternative to MakeIndex
  • 11.3.1 Generating the formatted index with xindy.
  • 11.3.2 International indexing with xindy.
  • 11.3.3 Modules for common tasks
  • 11.3.4 Style files for individual solutions.
  • 11.4 Enhancing the index with LaTEX features.
  • 11.4.1 Modifying the layout.
  • 11.4.2 showidx, repeatindex, tocbibind, indxcite—Little helpers
  • 11.4.3 index—Producing multiple indexes

12 Managing Citations

  • 12.1 Introduction
  • 12.1.1 Bibliographical reference schemes
  • 12.1.2 Markup structure for citations and bibliography
  • 12.1.3 Using BIBTEX to produce the bibliography input.
  • 12.2 The number-only system
  • 12.2.1 Standard LaTEX—Reference by number.
  • 12.2.2 cite—Enhanced references by number.
  • 12.2.3 notoccite—Solving a problem with unsorted citations
  • 12.3 The author-date system
  • 12.3.1 Early attempts
  • 12.3.2 natbib—Customizable author-date references
  • 12.3.3 bibentry—Full bibliographic entries in running text
  • 12.4 The author-number system.
  • 12.4.1 natbib—Revisited.
  • 12.5 The short-title system
  • 12.5.1 jurabib—Customizable short-title references
  • 12.5.2 camel—Dedicated law support
  • 12.6 Multiple bibliographies in one document
  • 12.6.1 chapterbib—Bibliographies per included file
  • 12.6.2 bibunits—Bibliographies for arbitrary units
  • 12.6.3 bibtopic—Combining references by topic
  • 12.6.4 multibib—Separate global bibliographies

13 Bibliography Generation

  • 13.1 The BIBTEX program and some variants
  • 13.1.1 bibtex8—An 8-bit reimplementation of BIBTEX
  • 13.1.2 Recent developments
  • 13.2 The BIBTEX database format.
  • 13.2.1 Entry types and fields
  • 13.2.2 The text part of a field explained
  • 13.2.3 Abbreviations in BIBTEX
  • 13.2.4 The BIBTEX preamble
  • 13.2.5 Cross-referencing entries
  • 13.3 On-line bibliographies
  • 13.4 Bibliography database management tools
  • 13.4.1 biblist—Printing BIBTEX database files.
  • 13.4.2 bibtools—A collection of command-line tools.
  • 13.4.3 bibclean, etc.—A second set of command-line tools
  • 13.4.4 bibtool—A multipurpose command-line tool
  • 13.4.5 pybliographer—An extensible bibliography manager
  • 13.4.6 JBibtexManager—A BIBTEX database manager in Java
  • 13.4.7 BibTexMng—A BIBTEX database manager for Windows
  • 13.5 Formatting the bibliography with BIBTEX styles.
  • 13.5.1 A collection of BIBTEX style files
  • 13.5.2 custom-bib—Generate BIBTEX styles with ease.
  • 13.6 The BIBTEX style language
  • 13.6.1 The BIBTEX style file commands and built-in functions
  • 13.6.2 The documentation style btxbst.doc.
  • 13.6.3 Introducing small changes in a style file

14 LATEX Package Documentation Tools

  • 14.1 doc—Documenting LaTEX and other code
  • 14.1.1 General conventions for the source file
  • 14.1.2 Describing new macros and environments
  • 14.1.3 Cross-referencing all macros used
  • 14.1.4 The documentation driver
  • 14.1.5 Conditional code in the source
  • 14.2 docstrip.tex—Producing ready-to-run code
  • 14.2.1 Invocation of the docstrip utility
  • 14.2.2 docstrip script commands.
  • 14.2.3 Installation support and configuration
  • 14.2.4 Using docstrip with other languages.
  • 14.3 ltxdoc—A simple LaTEX documentation class
  • 14.3.1 Extensions provided by ltxdoc
  • 14.3.2 Customizing the output of documents that use ltxdoc
  • 14.4 Making use of version control tools.
  • 14.4.1 rcs—Accessing individual keywords
  • 14.4.2 rcsinfo—Parsing the $Id$ keyword

A A LATEX Overview for Preamble, Package, and Class Writers

  • A.1 Linking markup and formatting
  • A.1.1 Command and environment names
  • A.1.2 Defining new commands
  • A.1.3 Defining new environments.
  • A.1.4 Defining and changing counters
  • A.1.5 Defining and changing space parameters
  • A.2 Page markup—Boxes and rules
  • A.2.1 LR boxes.
  • A.2.2 Paragraph boxes
  • A.2.3 Rule boxes
  • A.2.4 Manipulating boxed material
  • A.2.5 Box commands and color
  • A.3 Control structure extensions
  • A.3.1 calc—Arithmetic calculations
  • A.3.2 ifthen—Advanced control structures.
  • A.4 Package and class file structure.
  • A.4.1 The identification part.
  • A.4.2 The initial code part.
  • A.4.3 The declaration of options
  • A.4.4 The execution of options
  • A.4.5 The package loading part
  • A.4.6 The main code part.
  • A.4.7 Special commands for package and class files
  • A.4.8 Special commands for class files.
  • A.4.9 A minimal class file.

B Tracing and Resolving Problems

  • B.1 Error messages
  • B.1.1 Dying with memory exceeded.
  • B.2 Warnings and informational messages.
  • B.3 TEX and LaTEX commands for tracing
  • B.3.1 Displaying command definitions and register values.
  • B.3.2 Diagnosing page-breaking problems
  • B.3.3 Diagnosing and solving paragraph-breaking problems
  • B.3.4 Other low-level tracing tools
  • B.3.5 trace—Selectively tracing command execution

C LATEX Software and User Group Information

  • C.1 Getting help.
  • C.2 How to get those TEX files?
  • C.3 Using CTAN.
  • C.3.1 Finding files on the archive
  • C.3.2 Using the TEX file catalogue
  • C.3.3 Getting multiple files.
  • C.4 Finding the documentation on your TEX system.
  • C.4.1 texdoc—Command-line interface for a search by name
  • C.4.2 texdoctk—Panel interface for a search by subject.
  • C.5 TEX user groups

D TLC2 TEX CD

Bibliography

Index of Commands and Concepts

People

Biographies

Production Notes


Download