LaTeX/Package Reference

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.


Getting Started
  1. Introduction
  2. Installation
  3. Installing Extra Packages
  4. Basics
  5. How to get help

Common Elements

  1. Document Structure
  2. Text Formatting
  3. Paragraph Formatting
  4. Colors
  5. Fonts
  6. List Structures
  7. Special Characters
  8. Internationalization
  9. Rotations
  10. Tables
  11. Title creation
  12. Page Layout
  13. Customizing Page Headers and Footers‎
  14. Importing Graphics
  15. Floats, Figures and Captions
  16. Footnotes and Margin Notes
  17. Hyperlinks
  18. Labels and Cross-referencing
  19. Initials


  1. Errors and Warnings
  2. Lengths
  3. Counters
  4. Boxes
  5. Rules and Struts

Technical Text

  1. Mathematics
  2. Advanced Mathematics
  3. Theorems
  4. Chemical Graphics
  5. Algorithms
  6. Source Code Listings
  7. Linguistics

Special Pages

  1. Indexing
  2. Glossary
  3. Bibliography Management
  4. More Bibliographies

Special Documents

  1. Scientific Reports (Bachelor Report, Master Thesis, Dissertation)
  2. Letters
  3. Presentations
  4. Teacher's Corner
  5. Curriculum Vitae
  6. Academic Journals (MLA, APA, etc.)

Creating Graphics

  1. Introducing Procedural Graphics
  2. MetaPost
  3. Picture
  4. PGF/TikZ
  5. PSTricks
  6. Xy-pic
  7. Creating 3D graphics


  1. Macros
  2. Plain TeX
  3. Creating Packages
  4. Creating Package Documentation
  5. Themes


  1. Modular Documents
  2. Collaborative Writing of LaTeX Documents
  3. Export To Other Formats

Help and Recommendations

  1. FAQ
  2. Tips and Tricks


  1. Authors
  2. Links
  3. Package Reference
  4. Sample LaTeX documents
  5. Index
  6. Command Glossary

edit this boxedit the TOC

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 in 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 ex­tra com­mands as well as be­hind-the-scenes op­ti­mi­sa­tion for producing tables. Guide­lines are given as to what con­sti­tutes a good ta­ble 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} or \cancelto{0}{x}

chemmacros Part of a bundle to typeset chemistry easily and consistent.
changepage To easily change the margins of pages. The syntax is

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

cleveref En­hances LaTeX's cross-ref­er­enc­ing fea­tures, al­low­ing the for­mat of ref­er­ences to be de­ter­mined au­to­mat­i­cally ac­cord­ing to

the type of ref­er­ence.

dcolumn The package defines a new "D" column format in tab­u­lar en­vi­ron­ments 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 and 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 Im­proves the in­ter­face for defin­ing float­ing ob­jects such as fig­ures and ta­bles, 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 Pro­vides generic com­mands \de­gree, \cel­sius, \pert­hou­sand, \mi­cro 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 pro­cess­ing of graphic/graphicx pack­ages to sup­port 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.
longtable Al­lows you to write ta­bles that con­tinue 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 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 ty­po­graphic ex­ten­sions, improvements in such areas as char­ac­ter pro­tru­sion and font ex­pan­sion, in­ter­word spac­ing and ad­di­tional kern­ing, and hy­phen­at­able letter-spacing
multicol provides the mul­ti­cols 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. An example of a reference to a section is . This way you can easily keep track of the labels you add or use, simply looking at the preview (both dvi or pdf). Just before the final version, remove it.
showidx It prints out all index entries in the left margin of the text. 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:

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 of 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, ...
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.

Previous: Links Index Next: Sample LaTeX documents