This part of the TeX Catalogue eventually
will list all packages available from the "Comprehensive TeX
Archive Network", or
CTAN, for using
plain TeX,
LaTeX,
ConTeXt, etc. by topic. We also try to give some
advice that might help you in getting software and guides not
available on CTAN.

Every systematical order is arbitrary in some way or
another. This is why entries may appear in more than one place. The
following order generally tries to keep to that of "The
LaTeX Companion", 2nd. ed., and to The LaTeX
Graphics Companion, 2nd ed., by Mittelbach, Goossens,
et al.

Contrary to the other parts of the TeX Catalogue, the Topic Index is
not (yet) compiled automatically. This is very much a work in
progress, so suggestions are quite welcome. As every complex
document, the Topic Index
is full of errors, so please do not hesitate to report them to the
maintainer.

References and Manuals

You should refer to "lshort" for
the basic rules for writing correct LaTeX2e.
On the other hand, the most common mistakes in using LaTeX2e and
how to avoid them are listed in Mark Trettin's guide
"l2tabu" available in
German,
English,
French, and
Italian.

Below are some TeX resources online mostly outside CTAN
that deserve to be mentioned, too:

A comprehensive commented reference of the commands available
both in LaTeX and the most popular packages can be found at Michael
Wiedmann's
tex-refs
project.

Frequently asked questions:

For practical tips on how to use LaTeX
in general as well as hints for using particular packages refer to the
"Frequently Asked Questions" lists of local TeX User Groups
available on the WWW in
Czech / Slovak,
Dutch,
English,
French (old
and new version),
German,
Italian,
Polish,
Spanish,
or on CTAN:

gleitobjekte
- Tutorial from a DANTE meeting in November 1997 on floats and
their placement, captions, inclusion of graphics, lettering of
graphics, layout of tables and large amounts of numerical data

Components of TeX:

components
- An introduction to the components and files users of TeX
get in contact with by Joachim Schrod

Publicity for (La)TeX:

Donald E. Knuth's Own Documentation of TeX and Metafont:

knuth-base
- Knuth's own documentation, including the TeX book and the
MetaFont book

knuth-errata
- Details of problems reported in the Computers and
Typesetting series of books

Alternative Document Classes

These class files provide an alternative to the
usual LaTeX article, report,
or book classes. They are used to change document
layout in general and they usually provide
some special features, as well. You should check the class file
documentation first to make sure whether you can use options or
commands that are part of the respective class file before considering
the use of one of the packages listed below in alphabetical order.

Memoir:

NCC-LaTeX:

ncclatex
- Another extended general-purpose class whose extensions are
provided in a package which may be used with
the standard classes themselves

ncctools
- A bundle of packages loaded by the
ncclatex document class
that may also be used independently with other classes

NTG Class:

ntgclass
- Versions of the standard LaTeX article and report classes,
rewritten to reflect a more European design

Octavo:

octavo
- A modification of the standard LaTeX book class to typeset
books following classical layout and design principles,
implementing many of the proposals and insights of especially
Jan Tschichold and Hugh Williamson

Refman:

refman
- A document class for writing technical reference manuals
offering a wide left margin for notes to the reader, like some
of the manuals distributed by Adobe, available for articles
and reports

Document Structure

Document and Section Titles:

alnumsec
- Alphanumeric section numbering similar to
alphanum, but you may use
the standard LaTeX sectioning commands

fnpara
- Typeset footnotes in run-on paragraphs, instead of one above
another

fnpara-pln
- Typeset footnotes in run-on paragraphs, instead of one above
another

fnpos
- Controls the positions of footnotes, in circumstances where
the footnote would ordinarily attach itself to the bottom of
the text (rather than the bottom of the page) as in the
bottom option of
the footmisc package

fnbreak
- Detects footnotes that are split over several pages, and
writes a warning to the log file

fnlineno
- Extends the lineno
package so that even lines within a
\footnote are numbered and may be referred to

grid-system
- provides the means for LaTeX to implement a grid system as
known from CSS grid systems, useful for creating box layouts
as used in brochures

gridset
- Helps to get the information needed for grid setting, also
known as strict in-register setting. It does not implement
auto grid setting, but there is a command \vskipnextgrid, that
moves to the next grid position.

lpic - Defines a
convenient interface to put any LaTeX material on top of
included graphics. In a draft mode, the package en­ables you
to draw a coordinate grid over the picture for easy adjustment
of positions of the annotations.

ltxgrid
- Provides commands that switch to one- or two-column setting,
balancing columns on exit from two-column setting and, other
than the
multicol package, imposing
no restrictions on the insertion of floats

overpic
- LaTeX
commands can be placed on the graphic of an overpic
environment at defined positions; a grid for orientation is
available.

pagegrid
- Puts a grid on the paper for developers of a class or
package who have to put elements on definite locations on a
page (e.g. letter class), allowing for a faster optical
check, whether the positions are correct

pas-tableur
- Provides commands for creating a grid of rectangles, and
commands for populating locations in the grid using
PGF/TikZ

placeat
- Allows LuaLaTeX users to position arbitrary content on an
absolute coordinate system anywhere on a page

textpos
- Place boxes at arbitrary positions on the LaTeX page, e.g.,
to help the creation of large-format conference posters

typogrid
- Draws a grid on every page of the document; the grid
di­vides the page into columns, and may be used for fixing
measurements of layout

vgrid
- Overlay a grid on the printed page whose spacing is
\baselineskip, which offers guidelines for considering
the "rhythm" of the document on the page

pageno
- A package that can re-define the plain page style under the
control of options, so you can have page numbers: at the top
or bottom of the page; in the inside corner, outside corner,
or in the middle

bibtex
- Bibliography management for LaTeX which allows the user to
store his citation data in generic form, while printing
citations in a document in the form specified by a
BibTeX style, to be specified in
the document itself

biblatex-source-division
- Enables the user to make reference to "division marks" (such
as book, chapter, section), in the document being referenced,
in addition to the page-based references that BibTeX-based
citations have always had

The Concrete Fonts:

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. The files support OT1, T1, TS1, and
Concrete math including AMS fonts

PostScript Type1 Fonts:

cmbright
- A family of sans serif fonts for TeX and LaTeX, based on
Donald Knuth's CM fonts. It comprises OT1, T1 and TS1 encoded
text fonts of various shapes as well as all the fonts
necessary for mathematical typesetting, incl. AMS
symbols. This collection provides all the necessary files for
using the fonts with LaTeX

rsfs
- Contains MetaFont sources for fonts of uppercase script
letters for use as symbols in scientific and mathematical
typesetting, in contrast to the informal script fonts such as
that used for the `calligraphic' symbols in the TeX math
symbol font

wsuipa2tipa
- A filter that translates an old LaTeX document, replacing
all wsuipa font commands
with tipa font commands

The "Euro" Currency Symbol €:

euro
- Converts arbitrary national currency amounts using the Euro
as base unit, and typesets monetary amounts in almost any
desired way; automatically. Conversion rates for the so-called
Euro-zone countries are already built-in

Typesetting Initials:

capparmode
- Typeset paragraphs with the first letter of the paragraph in
a large font with the first few lines of the paragraph
indented to make room for this first large letter with Plain
TeX, very much like
lettrine for LaTeX

hieroglf
- A Metafont version of about 75 Egyptian hieroglyphs, but the
package is not for serious Egyptologists

hieroglyph
- A package for typesetting ancient egyptian
hieroglyphs which contains a hieroglyphic font, a number of
style files, and an helper program in C that allows one to
type hieroglyphic texts using the so-called "manuel de
codage", which is the current standard for encoding
ancient egyptian; also includes the Type 1 fonts for creating
PDF files.

rsfs
- Contains MetaFont sources for fonts of uppercase script
letters for use as symbols in scientific and mathematical
typesetting, in contrast to the informal script fonts such as
that used for the 'calligraphic' symbols in the TeX math
symbol font

psnfss
- Font support for common PostScript fonts, including font
definition files, macros and font metrics for common
PostScript fonts using the New Font Selection Scheme, or
NFSS2, originally implemented by Sebastian Rahtz. Implements
the following style files: avant, bookman, chancery,
charter,
courier, helvet, mathpazo, mathptmx, newcent, pifont, and fourier

psnfss-source
- Sources (makefiles and fontinst scripts) of the PSNFSS

psnfssx
- Extra styles and encodings for PS fonts, including Y&Y
encoding support

Misc:

epstool
- Epstool is a utility to create or extract preview images in
EPS files, fix bounding boxes and convert to bitmaps

pslatex
- A small package that makes LaTeX default to
"standard" PostScript fonts. It is basically a
merger of the obsolete times
and mathptm styles from
the psnfss suite of
packages, and hence should not be used any more

luatex
- A Unicode-aware re-implementation of (pdf)TeX, which can use
modern (Open Type) fonts, and whose operation is supported by
the ability to call up a built-in Lua interpreter, still
unstable and apt to change

prelim2e
- Allows the marking of preliminary versions of a document, by
default marking the document as draft and putting a timestamp on
it. Can be used together with e.g. the
vrsion,
rcs, and
rcsinfo packages and it may
be used with the scrtime package from the
koma-script bundle.

Managing large Documents

chapterfolder
- Provides a macro to define chapter/ section/ subsection
folders that contain the files for chapter/section/subsection,
and provides a macro that allows inclusion without using the
full path

collect
- Provides a 'collect' environment, that typesets text and
saves it for later re-use. (A variant collects text in a
macro.)

ed
- Defines a couple of editorial notes that simplify
collaboration on a LaTeX text

import
- Allow input of a file with its own inputs from another
directory

progress
- A package which. when compiling TeX and LaTeX documents,
generates a HTML file showing an overview of a documents'
state (of how finished it is)

Multilingual Support

Try the parallel
package for typesetting bilingual versions of a text side by side in
two columns. parrun may be useful
for typesetting two streams of text running parallel one above the
other.
There are packages for typesetting
critical editions too.
You may also typeset two-language
dictionaries using LaTeX2e.

czhyph2e
- A Perl script czhyph2e.pl by Werner Lemberg which converts
the Czech hyphenation pattern as distributed on the CTAN
network from the PC encoding into a form usable by LaTeX2e
with T1 fontencoding (DC fonts)

Epi-Olmec:

epiolmec
- Typesetting the Epi-Olmec language used in Southern Middle
America until about 500 AD

Ethiopian:

ethiop
- Ethiopian language support for the babel package, including
a collection of fonts and TeX macros for typesetting the
characters of the languages of Ethiopia, with fonts based on
EthTeX originally distributed by Abass B. Alamnehe

French:

aeguill
- A package adding several kinds of guillemets (polish cmr,
cyrillic cmr, lasy and ec) to the
ae fonts. It is useful if
you are using the ae fonts to produce
PDF files, since the
additional guillemets exist in Type 1 versions

block
- A style file for use with the letter class that overwrites
the \opening and \closing macros so that letters can be styled
with the block letter style instead of the default
style. Thus, the return address, the closing, and the
signature appear flushed on the left margin

Calendars, Date and Time:

There are two more packages for working with the current date and
time. scrdate yields the name of current day of the week, and
scrtime yields the current time as a document is
processed. Both packages are part of the
koma-script bundle.

advdate
- Provides macros which can add a specified number of days to
the current date (as specified in \today) and print
it. Intended for use, for example, in invoices payable within
14 days from today etc

Writing Invoices:

There is also
rechnung.sty
for writing invoices which is not available from CTAN although it is
rather popular among German-speaking users.

advdate
- Provides macros which can add a specified number of days to
the current date (as specified in \today) and print
it. Intended for use, for example, in invoices payable within
14 days from today etc.

amslatex
- A collection of loosely related files that are distributed
together by the American Mathematical Society, hese files are
miscellaneous enhancements to LaTeX whose aim is superior
information structure of mathematical documents and superior
printed output

amscd
- Part of the amslatex
distribution, this package adapts the commutative diagram
macros of AMS-TeX for use in LaTeX

onlyamsmath
- Inhibits the usage of plain TeX and on demand of standard
LaTeX math environments which is useful for class writers who
want to force their clients to use the environments provided
by the amsmath package

chemarr
- Analogous to amsmath's \xrightarrow and \xleftarrow this
package provides a macro for a longer version of reaction
arrows with the possibility to put text above and below; it
requires AMS-LaTeX

bytefield
- Helps the user create illustrations for network protocol
specifications and anything else that utilizes fields of
data in order to show how the bits and bytes are laid
out in a packet or in memory

Humanities:

For typesetting ancient Greek use the
babel package
with the option polutonikogreek.
For typesetting Latin you may also use the
babel package with the option
latin.
There are packages for typesetting
Poetry and Drama.

Law:

advdate
- Provides macros which can add a specified number of days to
the current date (as specified in \today) and print
it. Intended for use, for example, in invoices payable within
14 days from today etc

alnumsec
- Alphanumeric section numbering similar to
alphanum, but you may use
the standard LaTeX sectioning commands

alphanum
- Permits alphanumeric section numbering as part of the
jura package

biblatex-dw
- A small collection of styles for the
biblatex package
designed for citations in the Humanities

biblatex-jura
- Provides biblatex support for citations in the format
specified by the Nomos-Verlag for German legal citations

Electric Circuit Diagrams:

circuit-macros
- A set of macros for drawing high-quality electric circuits
containing fundamental elements, amplifiers, transistors, and
basic logic gates to include in TeX, LaTeX, or similar
documents

exams
- Exam questions can be multiple choice or free form
long/short answer questions. Options include the typesetting
of the exam itself, an exam showing all the answers and a
collection of questions and answers. Questions can be
parameterized. Use of a random generator provides for
automatic shuffling of multiple choice items

Developing and Documenting LaTeX Packages

afterpage
- Implements a command that causes the commands specified in
its argument to be expanded after the curent page is output

at
- A package to remove a lot of tedious typing that ends up in
LaTeX documents by expanding the number of short command names
available. The new command names begin with the "@"
character, rather than the conventional backslash, so you can
tell them apart

blindtext
- Provides `blind', or dummy text for testing purposes,
similar to lipsum

bophook
- Using the \AtBeginPage hook, you can add material in the
background of a page

capparmode
- Typeset paragraphs with the first letter of the paragraph in
a large font with the first few lines of the paragraph
indented to make room for this first large letter with Plain
TeX, very much like

(La)TeX Distributions

The TeX User Groups'
TeX Collection includes
texlive for Unices, and for MS
Windows, as well as
MacTeX for the Macintosh.
Windows users may also refer to
MikTeX, or
ProTeXt, the latter being a more
comprehensive distribution that is easy to install, including a number
of additional applications.

LaTeX 3

LaTeX3 development code is
published on the project's
website and can be discussed on the
LaTeX-L mailing list.

l3experimental
- The l3experimental packages are a collection of experimental
implementations for aspects of the LaTeX3 kernel, dealing with
higher-level ideas such as the Designer Interface. Some of
them work as stand alone packages, providing new
functionality, and can be used on top of LaTeX2e with no
changes to the existing kernel

l3kernel
- The expl3 bundle provides an implementation of the LaTeX3
programmers' interface, as a set of packages that run under
LaTeX 2e. The interface provides the foundation on which the
LaTeX3 kernel and other future code are built: it is an API
for TeX programmers. The packages are set up so that the
LaTeX3 conventions can be used with regular LaTeX 2e
packages

l3packages
- The bundle holds prototype implementations of concepts for a
LaTeX designer interface, to be used with the experimental
LaTeX kernel as programming tools and kernel support

ConTeXt

ConTeXt is another macro package for using TeX, so it
supplies an alternative to LaTeX. The
ConTeXt project has a rather lively
mailing list.
For those speaking German there is a comprehensive
paper
by Günter Partosch summarising his talk on ConTeXt vs. LaTeX held
at a Dante meeting in 2003.

Omega

omega
- A development of TeX, which deals in multi-octet Unicode
characters, to enable native treatment of a wide range of
languages without changing character-set; work on Omega seems,
more or less, to have ceased

LyX

lyx
- is not an editor, but a frontend to
LaTeX available for all platforms,
offering a "what-you-see-is-what-you-mean"
approach to working with text, different to the
"what-you-see-is-what-you-get" way common to
word processors

MicroIMP

MicroIMP
- Unlike lyx which pursues a
"what-you-see-is-what-you-mean" approach,
MicroIMP is a true
"what-you-see-is-what-you-get" word
processor based on a LaTeX system by Micropress Inc.

Previewers and Plugins

autoview
- While you are editing your file.tex, autoview will (run in a
separate emacs and) continually, intelligently, and
automatically keep processing your latex file, generate a .ps
file and gv (view) the file for you