# LaTeX/Package Reference

* LaTeX
* Getting Started
* Introduction
* Installation
* Installing Extra Packages
* Basics
* How to get help
* Common Elements
* Document Structure
* Text Formatting
* Paragraph Formatting
* Colors
* Fonts
* List Structures
* Special Characters
* Internationalization
* Rotations
* Tables
* Title creation
* Page Layout
* Customizing Page Headers and Footers‎
* Importing Graphics
* Floats, Figures and Captions
* Footnotes and Margin Notes
* Hyperlinks
* Labels and Cross-referencing
* Initials
* Mechanics
* Errors and Warnings
* Lengths
* Counters
* Boxes
* Rules and Struts
* Technical Text
* Mathematics
* Advanced Mathematics
* Theorems
* Chemical Graphics
* Algorithms
* Source Code Listings
* Linguistics
* Special Pages
* Indexing
* Glossary
* Bibliography Management
* More Bibliographies
* Special Documents
* Scientific Reports (Bachelor Report, Master Thesis, Dissertation)
* Letters
* Presentations
* Teacher's Corner
* Curriculum Vitae
* Academic Journals (MLA, APA, etc.)
* Creating Graphics
* Introducing Procedural Graphics
* MetaPost
* Picture
* PGF/TikZ
* PSTricks
* Xy-pic
* Creating 3D graphics
* Programming
* Macros
* Plain TeX
* Creating Packages
* Creating Package Documentation
* Themes
* Miscellaneous
* Modular Documents
* Collaborative Writing of LaTeX Documents
* Export To Other Formats
* Help and Recommendations
* FAQ
* Tips and Tricks
* Appendices
* Authors
* Links
* Package Reference
* Sample LaTeX documents
* Index
* Command Glossary
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 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 \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 | 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: \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 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. |