# A Documentation Guide

This page is an attempt at a guided tour around the huge amount of TeX and LaTeX documentation which comes as part of teTEX, the unix TeX and LaTeX system assembled by Thomas Esser. It is contributed by Keith Refson and all comments, suggestions and flames should be directed to him. Queries about installing and maintaining the teTEX installation itself should be directed to the teTEX mailing list: (See the teTEX Homepage for instructions) --- but check the frequently-asked questions list first. Questions about using LaTeX, TeX etc are best posted to the usenet newsgroup comp.text.tex where they will receive attention from a worldwide readership.

Much of the documentation is in the form of dvi and PostScript files which should display using xdvi or ghostscript front ends such as ghostview or gv from a properly configured web browser. Alternatively you may download and print them. The original LaTeX sources can be found in the documentation tree which is rooted at $TEXMFMAIN/doc. The command `texdoc` [package-name] will attempt to display documentation for that package from the shell command line.

## What's New in teTEX 1.0

- New TeX-like programs, e-tex, omega, pdftex and their LaTeX variants.
- New format ConTeXt
- Computer Modern fonts in Adobe Postscript Type 1 form (courtesy of Blue Sky Research.) See the entry for dvips.
- Based on Web2C 7.3. This allows the size of TeX's tables to be set in the configuration file texmf.cnf and easily adjusted.
- Updated release of LaTeX and many of its packages. See the release notes.
- Xdvi is now hypertext-capable when. Especially useful in conjunction with the new hyperref package.
- Many new packages including bm, colortbl, fancyvrb, hyperref, prettyref, picins, sidecap, footmisc, and the MDW tools.
- T2 font encoding, support for Cyrillic and LH fonts.
- Better support for installing new fonts

## Guides to TeX and LaTeX

LaTeX2e is the recommended version of LaTeX, and the older version LaTeX 2.09 is obsolete. If you know LaTeX2.09 read about LaTeX2e vs LaTeX2.09 and why you should switch. There are two manuals describing the LaTeX language itself, which may at a pinch substitute for a book, a concise manual entitled Essential LaTeX an a fuller "not so short" Introduction to LaTeX2e. There is also a full reference manual of LaTeX2e commands -- ideal for looking up a particular piece of formatting while writing a document (also available in dvi format) and a table of available mathematical symbols.

Useful information in a questions and answers format is provided by the UK TeX users group Frequently Asked Questions list.

Most LaTeX books refer to a local guide to describe operating-system and implementation-dependent aspects, notably the commands to invoke LaTeX and how to preview and print documents. The document Running LaTeX and utilities on a Unix system (also in PostScript form) is a good introduction to most of these topics.

There are errata lists available for two well-known books, the LaTeX Book and the LaTeX Companion. (A complete revision of Chapter 8 of The LaTeX Companion is also available from CTAN courtesy of the publisher, Addison-Wesley.)

## Graphics and Colour

A very common requirement is to include some kind of graphics as an external file (usually PostScript) into a LaTeX document. The definitive manual on how to do this is Keith Reckdahl's excellent Using EPS graphics in LaTeX2e. The document Packages in the graphics bundle is the documentation on the recommended LaTeX2e graphics package, which includes information on how to use colours in the output.

A very powerful additional capability is provided by the psfrag system. This allows you to import PostScript figures from any other package, but use LaTeX's power for all of the mathematical and textual annotations. (But note that xfig(1) allows you to do this anyway).

## Graph and Diagram Drawing

Probably the best way to draw a simple diagram is to use the xfig program (see the unix man page for details). However there are programmatic ways for more sophisticated work. These are

eepic
  A macro package for a much enhanced LaTeX "picture mode". Requires driver support for tpic `\special`s. Some drawing programs such as xfig can write their output as eepic macros.
curves
  An enhancement of LaTeX's picture mode to improve curve drawing.
xypic
  there is also a reference manual.
texdraw
  There are examples in the directory generic/texdraw/.
pspicture
  Extend LaTeX `picture` drawing environment using PostScript \specials.
Pstricks
  a set of macros for performing fancy twiddles using PostScript, such as drawing of geometrical objects, diagrams, fancy boxes, grayscales etc. There is a User Guide ( part 1, part 2, part 3, part 4), and a quick reference card.
METAPOST
  a development of Donald Knuth's METAFONT program which produces PostScript rendition of fonts, diagrams etc rather than bitmapped versions. Documentation includes a manual and a guide to plotting graphs (dvi) using METAPOST.
trees
  Macros for drawing "tree" diagrams.
overpic
  This package defines the `overpic` environment for overlaying a picture environment on top of an included graphic defined by an includegraphics command. Examples in opic-abs.tex and opic-rel.tex.

## LaTeX Packages

These packages control the visual appearance and formatting of LaTeX documents. Many of them are described in the book The LaTeX Companion and they are grouped here in accordance with the headings defined there.

This installation contains the packages listed below. Many more have been written to provide additional capabilities and are available for download from the Comprehensive TeX Archive Network server, abbreviated to CTAN. Here is the Catalogue of packages available from CTAN. LaTeX itself and most of these packages are released under the LaTeX Project Public License.

### Document Structure

xr
  Page references to external documents.
varioref
  "Intelligent" page references.
lastpage
  Reference the number of pages in your LaTeX document (as in a page footer that says: Page N of M)
hyperref
  Create hypertext documents in dvi, postscript or PDF form. Contents listings, references, bibliographic citations and URLs are converted to hyperlinks.
dinbrief
  The `dinbrief` document class (in German).
german
  The `german` and `ngerman` document classes.
ntgclass
  Dutch document classes.
minitoc
  Package to add a mini-"table of contents" to each chapter. Example 1, example 2.
titlesec
  Customize the sectioning format of a document.
sectsty
  Macros to customize sectional headings (section, chapter etc)
tocloft
  Customize the table of contents or lists of figures or tables.
tocbibind
  Add document elements such as a bibliography or index to the table of contents.

### Formatting Tools

bm
  The right way to make bold mathematical symbols.
xspace
  Define commands that don't eat spaces.
verbatim
  A more robust implementation of the `verbatim` environment.
moreverb
  An extension to the verbatim package that can handle `TAB` expansion, can number lines in an included file, can produce boxed verbatims, etc.
fancyvrb
  A comprehensive and customizable re-implementation of the `verbatim` environment. Allows specification of fonts, colours etc., line numbering, framing, `TAB` handling and conditional processing.
fvrb-ex
  An extension to fancyvrb.
prettyref
  Improved formatting of references.
enumerate
  Adds an optional argument to the enumerate environment which determines the style in which the counter is printed.
`comma`
  `\usepackage{comma}` defines the command `\commaform{number}` which typesets number with a comma every third digit. If you want something other than a comma, for instance a thin space, or a full word space, redefine `\commaformtoken` for instance `\renewcommand\commaformtoken{\,}`.
indentfirst
  Indent first paragraph after section header.
algorithms
  Defines a floating algorithm environment designed to work with the algorithmic package.
program
  This package is for typesetting computer programs and algorithms. There is an example in program-demo.tex.
listings
  Typeset source code listings.
textfit
  Package to support fitting of text to a given width of height by scaling the font.
typehtml
  Typeset HTML (i.e., World Wide Web documents) directly from LaTeX.
plain
  Allows the inclusion of plain tex markup in a LaTeX document. It defines the LaTeX environment `plain` which is used to enclose the plain tex to be included.
natbib
  Customizable citations. Can do almost any variant of numerical or author-date style citations. There's also a quick reference
bibentry
  Insert formatted bibliographic references inline in the text.
footbib
  Set bibliographic references as footnotes.
  paralist
Typeset lists within paragraphs.
MDW tools
  A collection of packages written by Mark Wooding
  at.sty
    Allows you to use `@' as a sort of `command-introducing' character, a bit like `\' is already.
  cmtt.sty
    Provides an `mTT' encoding for the Computer Modern Typewriter font, which solves lots of messy problems.
  doafter.sty
    Provides a TeX programmer's utility \doafter <token> <group> which does the <token> after the group is complete, including any \aftergroup things.
  mathenv.sty
    A collection of mathematical environments with a theme of aligning things in columns.
  mdwmath.sty
    Contains a few trivial definitions for mathematical things. The main thing is that the \sqrt command for doing square roots has been improved
  mdwlist.sty
    Various list related environments. There's a more versatile `description' environment, and some stuff for making `compacted' lists (with no extra space between items).
  mdwtab.sty
    A complete ground-up rewrite of LaTeX's `tabular' and `array' environments. Has lots of advantages over the standard version, and over the version in `array.sty'.
  footnote.sty
    Provides commands for saving executing footnotes.
  sverb.sty
    A bunch of macros for doing verbatim things.
  syntax.sty
    A load of commands for describing syntax. There's an environment for typesetting BNF grammars.
acronym
  Make sure all acronyms used are spelt out at least once.
hyphenat
  Improved control over hyphenation.
ragged2e
  Provides commands and environments for setting ragged text which are easy to configure to allow hyphenation.
nomencl
  Package for preparing tables of nomenclature or glossaries.
SIunits
  Macros for typesetting SI units.
units
  Typesetting of physical/metric units.
soul
  Typeset text in a spaced-out or underlined fashion.

### Page Layout

geometry
  Customize page layout (page sizes) using an easy and flexible user interface. Example gtest.tex generates a testpage.
`fancyheadings`
  This package has been renamed to fancyhdr.
fancyhdr
  Support for sophisticated control of page headers and footers in LaTeX2e. It supercedes fancyheadings.
footmisc
  Customize footnote numbering, style and presentation.
footnpag
  Allows footnotes on individual pages to be numbered from 1, rather than being numbered sequentially through the document.
`nopageno`
  `\usepackage{nopageno}` suppresses all page numbering including that on title and frontmatter pages.
chappg
  The `chappg` package causes pages to be numbered in the style chapter-pagenumber. So the pages of chapter 3 will be numbered 3-1, 3-2, ..., and the pages of appendix B will be numbered B-1, B-2, ...
layout
  Generate a test page showing the page layout.
layouts
  Draw display of page layout parameters.
a4
  Mostly superceded by LaTeX2e support for a4 paper but defines the extra option of widemargins. The geometry package is much more flexible.
scale
  Rescales an entire document by 1.414 for photographic reduction.
anysize
  Another package to set page sizes. Superceded by geometry.
fix2col
  Improves some deficiencies in LaTeX's built-in two column output.
multicol
  LaTeX package to mix single and multiple columns. Allows you to shift between two and one columns anywhere.
multitoc.dvi
  Typeset tables of contents and lists of figures and tables in multi-column mode.
ftnright
  Customize placement of footnotes in two column documents.
picinpar
  Insert pictures into paragraphs. (NOTE: Piet van Oostrum does not recommend this package. Picins is recommended instead.
picins
  Insert pictures into paragraphs.
rotating
  Environment to rotate text, figures etc. There are examples, as LaTeX source and dvi or PostScript output.
eso-pic
  This package makes it easy to add some picture commands to every page.

### Modifying document appearance

showkeys
  Print label, ref, cite and bib keys.
showlabels
  Print `\label` arguments or equation numbers in margin at point of definition.
changebar
  Add "change bars" in a document margin using dvi \specials.
crop
  Print crop marks.
draftcopy
  Overprint `DRAFT` on each page of document to indicate draft copy. The directory latex/draftcopy/ has a number of examples.
count1to
  Sets some new counters for section selection.
prelim2e.dvi
  Allows marking of preliminary versions of a document in the output.
thumbpdf
  Support of thumbnails with pdfTeX, plain/LaTeX formats.

### Tables

array
  An extended implementation of the array and tabular environments which implements options to format columns.
longtable
  Support for tables longer than a page
delarray
  Add delimiters (parentheses etc.) around arrays.
supertabular
  A multi-page tables package.
dcolumn
  Align on the decimal point of numbers in tabulars.
hhline
  Better horizontal lines in tabulars and arrays.
tabularx
  Tabulars that widen automatically.
ltxtable
  Longtable combined with tabularx.
colortbl
  Add colour to LaTeX tables.
booktabs
  A package to lay out tables in high-quality (according to the author's opinion) book form.
slashbox
  Typeset a box with a diagonal divider for table headings.

### Floats

Floats are environments like `figure` and `table` which move text etc around in the document.

afterpage
  Implements a command that causes the commands specified in its argument to be expanded after the current page is output. Useful to flush floats, for example
float
  Improves the interface for defining floating objects such as figures and tables. Introduces the boxed float and the ruled float.
fltpage
  Put captions to floats on neighbouring page if space is tight.
subfigure
  Figures divided into subfigures.
endfloat
  Place all figures on pages by themselves at the end of the document.
placeins
  Keeps floats `in their place', preventing them from floating past a `\FloatBarrier` command into another section.
caption
  Extends caption capabilities for figures and tables, such as the caption width, style, font.
sidecap
  Defines new LaTeX environments called SCfigure and SCtable (analogous to figure and table), to typeset captions sideways. leftcaption and rightcaption.
floatflt
  Float text around figures and tables which do not span the full width of a page. This is an improved version of floatfig. Examples, latex source,precursor package floatfig.
rotfloat
  Combines `rotating` package with enhanced float facilities of `float`. Examples: LaTeX source and output.

### Fonts and Supporting Packages

In addition to the preinstalled fonts, see the section on using fontinst to install new fonts, especially PostScript Type 1 fonts and the font naming conventions.

ae
  A set of virtual fonts designed to be a close approximation to a T1-encoded set based on the CM fonts. This should make it possible to use the existing Type1 versions of the CM fonts to produce PDF files even when one needs hyphenation patterns other than English. See also aecompl
fontsmpl
  Print a sample of a font.
rawfonts
  Emulation of LaTeX 2.09 low-level font commands, eg \tenrm.
beton
  Typeset a LaTeX2e document with the Concrete fonts designed by Don Knuth and used in his book ``Concrete Mathematics''.
ccfonts
  LaTeX font definition files for the Concrete fonts and a LaTeX package for typesetting documents using Concrete as the default font family.
cmbright
  Use the "Computer Modern bright" font family.
mathtime
  Package to support the `mathtime` fonts, a mathematical font set complementary to Times-Roman. N.B. These fonts are not included in teTeX.
lucidabr
  Package to use the Lucidea Bright font set from Y & Y. N.B. The fonts are not part of teTeX and must be purchased separately.
LY1
  This font encoding package supports the `texnansi' encoding as used by default in the Y&Y TeX system. There is also an option to support the `ansinew' encoding that is the default encoding in Microsoft Windows.
dsfont
  Double-stroke maths fonts. Declares the macro `\mathds{}` to use double-stroke roman fonts. Package option `sans` uses sans-serif version.
`dotlessj`
  This package declares the macros `\j` and `\jmath` to insert a dotless j in text and math mode.
mflogo
  LaTeX package and font definition file to access the Knuthian `logo' fonts described in `The MetaFontbook' and the MetaFont and logos in LaTeX documents.
Concrete Math fonts
  A set of math fonts for use with Donald Knuth's concrete text fonts.
`concrete`
  This package simply includes the beton and euler packages for an approximation of the style in Concrete Mathematics.
mathcomp
  A package for using the Text Companion fonts in math mode. (For example to get an upright "mu".)
type1cm
  Allows the use of Computer Modern fonts at arbitrary type sizes instead of the usual discrete magsteps.
pandora
  The Pandora fonts.
yfonts
  A LaTeX interface to the old-german fonts designed by Yannis Haralambous.
oldgerm
  Old German fonts.
suet
  German handwriting fonts.
wasysym
  This package defines LaTeX commands to insert the symbols in the wasysym font set.
stmaryrd
  The "St Mary's Road" symbol fonts.
marvodoc
  The martin Vogel symbol fonts.

### AMS Maths

A very useful guide to the American Mathematical Society extensions to LaTeX is provided in Chapter 8 of The LaTeX Companion. A revised version is available online from a CTAN archive in directory `info/companion-rev/` as PostScript or PDF courtesy of the publisher, Addison-Wesley.)

amsmath
  User guide for AMS-LaTeX as implemented in the amsmath package.
  Also see the frequently-asked-questions list , various Tex and LaTeX examples in the directory latex/amsmath/.
theorem
  Enhancements to the theorem environments, giving more choice in theorem layout.
bbm
  Blackboard variant fonts for Computer Modern, with LaTeX support . Font sample
euler
  Provides a setup for using the AMS Euler family of fonts for math in LaTeX documents.
eufrak
  Use the Euler Fraktur symbols.
euscript
  Substitute the usual math calligraphic characters with Euler script equivalents.
mathrsfs
  This package defines the command `\mathscr{ABC}` which typesets symbols such as Hamiltonians using the Ralph Smith Formal Script (rsfs) calligraphic fonts.
amsguide
  User guide for AMS-TeX (the original plain TeX maths package).
joyerr.tex
  Errata for The Joy of TeX.
AMS Fonts
  Documentation for the AMS mathematical font set. See also the package documentation, the bug list and the frequently-asked questions list.

### Multilingual LaTeX

Multilingual support for LaTeX.

babel
  This package supports multilingual documents in many language.
inputenc
  Allows use of 8-bit character sets in source documents.
tb1202, tb1401, tb1604
  Some articles on Babel which appeared in tugboat.
cyrillic
  Package for using cyrillic fonts.
T2
  Another font encoding for Cyrillic.
MLTeX
  MLTeX is a modification of TeX version that allows the hyphenation of words with accented letters using ordinary Computer Modern (CM) fonts. There are instructions on how to use MLTeX's \charsubdef extension with LaTeX .

### Additional or alternative "document" types

seminar
  A LaTeX style for overhead transparencies and notes. Example 1, Example 2. List of frequently asked questions. List of known bugs.
examdoc
  Style for preparing examination papers.
labels
  A package for making sticky labels in LaTeX.
textmerg
  Package for creating "text merges" (like wordprocessor mail merge letters) in LaTeX. The directory latex/textmerg contains examples.
eplain
  Extended plain text format.

### Programming and Package Authoring

ifthen
  Defines if/then/else macros for conditional text.
calc
  Package for infix arithmetic notation in LaTeX.
fp
  Fixed-point arithmetic package forTeX and LaTeX
keyval
  Provides support for writing keyword-style arguments to packages. Used by graphics.
somedefs
  A "programmer's toolkit" for package writers.
fileerr
  Implementation of an error handler for "file-not-found" errors.
localloc
  Enhanced register-allocation macros.
doc
  Literate Programming for package writers -- The combined LaTeX package-code/documentation suite.
docstrip
  Package to build stripped-down version of package files for speed.
everysel
  This package provides hooks into the NFSS command \selectfont called \EverySelectfont and \AtNextSelectfont analogous to \AtBeginDocument.
everyshi
  This package defines a new command \EveryShipout analogous to \AtBeginDocument.
stdclsdv
  Macros to interact with sectional divisions of standard LaTeX classes.

## Web2C implementation

teTEX is based on the web2c implementation of TeX, metafont etc. Information on running the various programs is contained in web2c.dvi. All programs use a common, configurable, library for searching for files. The file kpathsea.dvi gives details. The file tree is built in compliance with the TeX directory structure

## Ancillary Programs

### Bibtex

Bibtex is a separate program for managing databases of bibliographic references and selecting for citation in a LaTeX document. It is described in chapter 13 of The LaTeX Companion and online in the documents entitled BibTexing and Designing BibTeX Styles.

The latter document, Designing BibTeX Styles is a guide to customizing the format of the reference list. The non-expert may find it more useful to use the ancillary program makebst which semi-automates the design of a new bibliography style.

natbib is a LaTeX package which allows customization of the citation style in the text (rather than the format of the reference list). It works with almost all bibliography styles, even those which define their own citation macros.

### Makeindex

The makeindex program which provides facilities for generating an index is described in the documents Index Preparation and Processing and the Makeindex user guide.

### Dvips

The full documentation for the dvips DVI -> PostScript translator. N.B. The advice concerning including PostScript graphics has been superceded by the standard LaTeX2e graphics package.

To use the new Type I versions of the computer-modern fonts, use dvips with the extra argument `-Pcmz` or (`-Pcm` which does not download the fonts in the PostScript output.) Mathematical documents will probably also require `-Pamz` (or `-Pams`) for the AMS math fonts. eg

    dvips -Pcmz -Pamz -P myprinter mydoc.dvi

Type 1 fonts are scaleable so the resulting PostScript does not include bitmapped fonts and is therefore resolution-independent. This is very useful if the postscript is to be scaled up or down or the final destination printer is not known.

### Xdvi

The online documentation for `xdvi` only available as a unix "man" page and is not accessible through this WWW page. Use `man xdvi` to read it.

### Texinfo

Texinfo is a macro package for TeX used by the GNU system for producing printed manuals.

## TeX and LaTeX Variants

This distribution includes several new developments of TeX (which are also supplied with LaTeX macros.

pdftex and pdflatex
  Han the Thanth's variant which can generate output in Adobe PDF format as well as the usual DVI. Documentation is in the PDFTeX manual and there is a list of frequently-asked questions.
omega and lambda
  The Omega system extends TeX for mixed multi-lingual typesetting using unicode. See the omega home page.
etex and elatex
  e-TeX adds several extensions to TeX notably right-to-left typesetting.
ConTeXt
  A new macro package for TeX. See also the full list of commands.

# Local Additions

Your system administrator may have added additional packages and documentation as well as those which come with teTEX.

## Other sources of Information

Here are some other useful sources of information on LaTeX, TeX and related program on the World-Wide Web.

- The teTEX home page.
- The TeX user's group.
- Cambridge university's Text Processing using LaTeX site. This contains a mine of useful information.
- The LaTeX Navigator.

Last modified: Mon Apr 19 14:42:32 BST 1999