Appendices

Package Reference

An alphabetical reference of commonly used LaTeX packages with descriptions of their functionality.

This is an incomplete list of useful packages that can be used for a wide range of different kind of documents. Each package has a short description next to it and, when available, there is a link to a section describing such package in detail. All of them (unless stated) should be included in your LaTeX distribution as package_name.sty. For more information, refer to the documentation of the single packages, as described in Installing Extra Packages.

The list is in alphabetical order.

amsmath

It contains the advanced math extensions for LaTeX. The complete documentation should be in your LaTeX distribution; the file is called amsdoc, and can be dvi or pdf. For more information, see the chapter about Mathematics. Supplemented by mathtools package described below.

amssymb

It adds new symbols to be used in math mode.

amsthm

It introduces the proof environment and the \theoremstyle command. For more information see the Theorems section.

array

It extends the possibility of LaTeX to handle tables, fixing some bugs and adding new features. Using it, you can create very complicated and customized tables. For more information, see the Tables section.

babel

It provides the internationalization of LaTeX. It has to be loaded in any document, and you have to give as an option the main language you are going to use in the document. For more information see the Internationalization section.

biblatex

Advanced bibliography handling. It is the package to use for writing a thesis.

bm

Allows use of bold greek letters in math mode using the \bm{...} command. This supersedes the amsbsy package.

booktabs

Provides extra commands as well as behind-the-scenes optimisation for producing tables. Guidelines are given as to what constitutes a good table in the package documentation.

boxedminipage

It introduces the boxedminipage environment, that works exactly like minipage but adds a frame around it.

caption

Allows customization of appearance and placement of captions for figures, tables, etc.

cancel

Provides commands for striking out mathematical expressions. The syntax is:

\cancel{x} \quad \text{or} \quad \cancelto{0}{x}

chemmacros

Part of a bundle to typeset chemistry easily and consistently.

changepage

To easily change the margins of pages. The syntax is:

\changepage{textheight}{textwidth}%
  {evensidemargin}{oddsidemargin}%
  {columnsep}{topmargin}%
  {headheight}{headsep}%
  {footskip}

All the arguments can be both positive and negative numbers; they will be added (keeping the sign) to the relative variable.

cleveref

Enhances LaTeX's cross-referencing features, allowing the format of references to be determined automatically according to the type of reference.

dcolumn

The package defines a new "D" column format in tabular environments for aligning the numbers in columns on the decimal point.

enumitem

Adds support for arbitrarily-deep nested lists (useful for outlines). See List Structures.

epstopdf

Provides an option to convert EPS images to PDF and include them with \includegraphics{}.

esint

Adds additional integral symbols, for integrals over squares, clockwise integrals over sets, etc.

eucal

Other mathematical symbols.

fancyhdr

To change header and footer of any page of the document. It is described in the Page Layout section.

float

Improves the interface for defining floating objects such as figures and tables, introduces new floating objects types (boxed, ruled, plaintop) and provides an ability to define custom ones.

fontenc

To choose the font encoding of the output text. You might need it if you are writing documents in a language other than English. Check in the Fonts section.

gensymb

Provides generic commands \degree, \celsius, \perthousand, \micro and \ohm which work both in text and maths mode.

geometry

For easy management of document margins and the document page size. See Page Layout.

glossaries

For creation of glossaries and list of acronyms. For more information, see the relevant chapter.

graphicx

Allows you to insert graphic files within a document.

grffile

Improves the file name processing of graphic/graphicx packages to support a larger range of file names (spaces, multiple dots, etc.).

hyperref

It gives LaTeX the possibility to manage links within the document or to any URL when you compile in PDF. For more information, see the relevant section.

indentfirst

Once loaded, the beginning of any chapter/section is indented by the usual paragraph indentation.

inputenc

To choose the encoding of the input text. You might need it if you are writing documents in a language other than English. Check in the Special Characters section.

latexsym

Other mathematical symbols.

listings

To insert programming code within the document. Many languages are supported and the output can be customized. For more information, see the Source Code Listings section.

longtable

Allows you to write tables that continue to the next page. You can also define a header and a footer which will be shown on every page the table occupies, for example cont. from last page.

mathptmx

Sets the default font of the entire document (including math formulae) to Times (the Adobe/URW Times clone TeX distributions ship, metric-compatible with but distinct from Microsoft's Times New Roman), which is a more familiar font, and useful in saving space when fighting against page limits.

mathrsfs

Other mathematical symbols.

mathtools

Supplements amsmath, some additional functionality, some bugs fixed.

mhchem

Allows you to easily type chemical species and equations. It automatically formats chemical species so you don't have to use subscript commands. It also allows you to draw chemical formulas.

microtype

It provides an improvement to LaTeX's default typographic extensions, improvements in such areas as character protrusion and font expansion, interword spacing and additional kerning, and hyphenatable letter-spacing.

multicol

Provides the multicols environment which typesets text into multiple columns.

natbib

Gives additional citation options and styles. Often used for journal submission.

pdfpages

This package simplifies the insertion of external multi-page PDF or PS documents.

rotating

It lets you rotate any kind of object. It is particularly useful for rotating tables. For more information, see the relevant section.

setspace

Lets you change line spacing, e.g. provides the \doublespacing command for making double spaced documents. For more information, see the relevant section.

showkeys

A useful package related to referencing. If you wish to reference an image or formula, you have to give it a name using \label{...} and then you can recall it using \ref{...}. When you compile the document these will be replaced only with numbers, and you can't know which label you had used unless you take a look at the source. If you have loaded the showkeys package, you will see the label just next or above the relevant number in the compiled version. Just before the final version, remove it.

showidx

It prints out all index entries in the margin next to the text (the outer margin in two-sided documents). This is quite useful for proofreading a document and verifying the index. For more information, see the Indexing section.

subfiles

The "root" and "child" document can be compiled at the same time without making changes to the "child" document. For more information, see the Modular Documents section.

subcaption

It allows to define multiple floats (figures, tables) within one environment giving individual captions and labels in the form 1a, 1b.

syntonly

If you add the following code in your preamble:

\usepackage{syntonly}
\syntaxonly

LaTeX skims through your document only checking for proper syntax and usage of the commands, but doesn't produce any (DVI or PDF) output. As LaTeX runs faster in this mode you may save yourself valuable time. If you want to get the output, you can simply comment out the second line.

textcomp

Provides extra symbols, e.g. arrows like \textrightarrow, various currencies (\texteuro,...), things like \textcelsius and many others.

theorem

You can change the style of newly defined theorems. For more information see the Theorems section.

todonotes

Lets you insert notes of stuff to do with the syntax \todo{Add details.}.

siunitx

Helps you typeset SI-units correctly. For example \SI{12}{\mega\hertz}. Automatically handles the correct spacing between the number and the unit. Note that even non-SI-units are set, like dB, rad, etc.

ulem

It allows to underline text (either with straight or wavy line). Few examples of usage are added to the Fonts chapter.

url

It defines the \url{...} command. URLs often contain special character such as '_' and '&', in order to write them you should escape them inserting a backslash, but if you write them as an argument of \url{...}, you don't need to escape any special character and it will take care of proper formatting for you. If you are using hyperref, you don't need to load url because it already provides the \url{...} command.

verbatim

It improves the verbatim environment, fixing some bugs. Moreover, it provides the comment environment, that lets you add multiple-line comments or easily comment out big parts of the code.

xcolor

It adds support for colored text. For more information, see the relevant section.

xypic

It is used to create trees, graphs, (commutative) diagrams, and similar things. See Xy-pic.

Copyright © 2026