Package Recommendations

  • KPrevious lesson
  • FSearch lessons
  • EscClear search

A curated list of packages organized by purpose. Every package listed here is actively maintained and available in TeX Live.

Essential (Load in Every Document)

  • Package: amsmath | Purpose: Advanced math environments (align, gather, cases, etc.)

  • Package: amssymb | Purpose: Extended math symbols (\( \mathbb{R} \), \( \therefore \), etc.)

  • Package: graphicx | Purpose: Image inclusion (\includegraphics)

  • Package: hyperref | Purpose: Clickable links and PDF bookmarks

  • Package: xcolor | Purpose: Color support

  • Package: microtype | Purpose: Micro-typographic refinements

    Math

  • Package: mathtools | Purpose: Extends amsmath with fixes and extra features

  • Package: amsthm | Purpose: Theorem environments (theorem, proof)

  • Package: bm | Purpose: Bold math symbols

  • Package: cancel | Purpose: Cancellation marks in equations

  • Package: siunitx | Purpose: SI units and number formatting

  • Package: physics | Purpose: Physics notation shortcuts

  • Package: tikz-cd | Purpose: Commutative diagrams

  • Package: nicematrix | Purpose: Enhanced matrix environments

    Fonts (XeLaTeX / LuaLaTeX)

  • Package: fontspec | Purpose: System font loading (OpenType/TrueType)

  • Package: unicode-math | Purpose: Unicode math fonts

  • Package: microtype | Purpose: Character protrusion and font expansion

    Fonts (pdfLaTeX)

  • Package: newtxtext/newtxmath | Purpose: Times-like text and math

  • Package: libertinus | Purpose: Libertinus text and math

  • Package: mathpazo | Purpose: Palatino math

  • Package: lmodern | Purpose: Latin Modern (improved Computer Modern)

    Page Layout

  • Package: geometry | Purpose: Page margins and dimensions

  • Package: fancyhdr | Purpose: Custom headers and footers

  • Package: titlesec | Purpose: Section title formatting

  • Package: titletoc | Purpose: Table of contents formatting

  • Package: setspace | Purpose: Line spacing

  • Package: multicol | Purpose: Multi-column layouts

  • Package: parskip | Purpose: Paragraph spacing (no indentation)

    Tables

  • Package: booktabs | Purpose: Professional table rules (\toprule, \midrule)

  • Package: tabularx | Purpose: Full-width tables with flexible columns

  • Package: longtable | Purpose: Tables spanning multiple pages

  • Package: multirow | Purpose: Cells spanning multiple rows

  • Package: array | Purpose: Extended column types

  • Package: colortbl | Purpose: Cell background colors

    Figures and Graphics

  • Package: tikz | Purpose: Programmatic vector graphics

  • Package: pgfplots | Purpose: Plots and charts (built on TikZ)

  • Package: caption | Purpose: Caption customization

  • Package: subcaption | Purpose: Sub-figures (a), (b), (c)

  • Package: wrapfig | Purpose: Text wrapping around figures

  • Package: float | Purpose: Extra float placement options ([H])

  • Package: svg | Purpose: Direct SVG inclusion (via Inkscape)

    Code and Listings

  • Package: listings | Purpose: Code listings with syntax highlighting

  • Package: minted | Purpose: Advanced syntax highlighting (via Pygments)

  • Package: fancyvrb | Purpose: Enhanced verbatim environments

  • Package: algorithm2e | Purpose: Algorithm pseudocode

  • Package: algpseudocode | Purpose: Algorithm pseudocode (alternative)

    Boxes and Styling

  • Package: tcolorbox | Purpose: Feature-rich colored boxes (tips, warnings, code)

  • Package: mdframed | Purpose: Framed environments (simpler alternative)

  • Package: framed | Purpose: Basic framed boxes

    Lists

  • Package: enumitem | Purpose: Full control over list formatting

  • Package: tasks | Purpose: Multi-column exercise lists

    References and Citations

  • Package: biblatex | Purpose: Modern bibliography system (use with Biber)

  • Package: natbib | Purpose: Author-year citations (legacy, widely used)

  • Package: cleveref | Purpose: Smart cross-references (\cref auto-adds “Figure”, “Equation”)

  • Package: varioref | Purpose: Page-aware references (“on the next page”)

    Utilities

  • Package: qrcode | Purpose: QR code generation

  • Package: pdfpages | Purpose: Include pages from external PDFs

  • Package: makeidx | Purpose: Index generation

  • Package: glossaries | Purpose: Glossary and acronym management

  • Package: todonotes | Purpose: Margin and inline TODO notes

  • Package: comment | Purpose: Block comments

  • Package: lipsum | Purpose: Dummy text for testing layouts

    Tip: Start with the essentials. Add packages only when you need them. Every package you load increases compilation time and the chance of conflicts. A document with 5 well-chosen packages is better than one with 30 “just in case” imports.