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 bookmarksPackage:
xcolor| Purpose: Color supportPackage:
microtype| Purpose: Micro-typographic refinementsMath
Package:
mathtools| Purpose: Extendsamsmathwith fixes and extra featuresPackage:
amsthm| Purpose: Theorem environments (theorem,proof)Package:
bm| Purpose: Bold math symbolsPackage:
cancel| Purpose: Cancellation marks in equationsPackage:
siunitx| Purpose: SI units and number formattingPackage:
physics| Purpose: Physics notation shortcutsPackage:
tikz-cd| Purpose: Commutative diagramsPackage:
nicematrix| Purpose: Enhanced matrix environmentsFonts (XeLaTeX / LuaLaTeX)
Package:
fontspec| Purpose: System font loading (OpenType/TrueType)Package:
unicode-math| Purpose: Unicode math fontsPackage:
microtype| Purpose: Character protrusion and font expansionFonts (pdfLaTeX)
Package:
newtxtext/newtxmath| Purpose: Times-like text and mathPackage:
libertinus| Purpose: Libertinus text and mathPackage:
mathpazo| Purpose: Palatino mathPackage:
lmodern| Purpose: Latin Modern (improved Computer Modern)Page Layout
Package:
geometry| Purpose: Page margins and dimensionsPackage:
fancyhdr| Purpose: Custom headers and footersPackage:
titlesec| Purpose: Section title formattingPackage:
titletoc| Purpose: Table of contents formattingPackage:
setspace| Purpose: Line spacingPackage:
multicol| Purpose: Multi-column layoutsPackage:
parskip| Purpose: Paragraph spacing (no indentation)Tables
Package:
booktabs| Purpose: Professional table rules (\toprule,\midrule)Package:
tabularx| Purpose: Full-width tables with flexible columnsPackage:
longtable| Purpose: Tables spanning multiple pagesPackage:
multirow| Purpose: Cells spanning multiple rowsPackage:
array| Purpose: Extended column typesPackage:
colortbl| Purpose: Cell background colorsFigures and Graphics
Package:
tikz| Purpose: Programmatic vector graphicsPackage:
pgfplots| Purpose: Plots and charts (built on TikZ)Package:
caption| Purpose: Caption customizationPackage:
subcaption| Purpose: Sub-figures (a), (b), (c)Package:
wrapfig| Purpose: Text wrapping around figuresPackage:
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 highlightingPackage:
minted| Purpose: Advanced syntax highlighting (via Pygments)Package:
fancyvrb| Purpose: Enhanced verbatim environmentsPackage:
algorithm2e| Purpose: Algorithm pseudocodePackage:
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 boxesLists
Package:
enumitem| Purpose: Full control over list formattingPackage:
tasks| Purpose: Multi-column exercise listsReferences 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 (\crefauto-adds “Figure”, “Equation”)Package:
varioref| Purpose: Page-aware references (“on the next page”)Utilities
Package:
qrcode| Purpose: QR code generationPackage:
pdfpages| Purpose: Include pages from external PDFsPackage:
makeidx| Purpose: Index generationPackage:
glossaries| Purpose: Glossary and acronym managementPackage:
todonotes| Purpose: Margin and inline TODO notesPackage:
comment| Purpose: Block commentsPackage:
lipsum| Purpose: Dummy text for testing layoutsTip: 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.