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 0.9
- New TeX-like programs, e-tex, omega,
pdftex and their LaTeX variants.
- 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.
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 \specials. 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.
- KOMA-script
- A drop-in replacement for the article/report/book classes with
emphasis on European rules of typography and paper formats as laid
down by Jan Tschichold. The article class, for example, becomes scrartcl.
- dinbrief
- The dinbrief document class (in German).
- german
- The german and ngerman document classes.
- french
- The french document class (in french).
- 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.
- 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/drftcopy/ 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
- 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.
- 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.)
- amslatex
- 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/amslatex/.
- 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.
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
- foiltex
- LaTeX class for making "foils", ie overhead
transparencies. There are license conditions which prohibit
commercial use.
seminar is a good
alternative. There is also an example document.
- 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.
- 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.
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.
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. See also
Makeinfo
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. Documentation includes a short reference manual
and a full reference manual.
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.
Last modified: Mon Mar 29 11:16:45 BST 1999