Discover the must-have LaTeX packages that will transform your academic writing workflow, from enhanced formatting and mathematical typesetting to powerful automation tools and bibliography management.
The LaTeX ecosystem is vast, with thousands of packages available. But which ones are truly essential for academic writing? After years of watching academics struggle with basic formatting tasks that could be solved with a single package, we’ve compiled this definitive guide to the packages that will revolutionize your LaTeX workflow.
These packages should be in every LaTeX document you create. Think of them as the academic equivalent of wearing pants to a conference – technically optional, but highly recommended.
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
These ensure your document handles special characters properly. Without them, you’ll discover that café becomes caf, and your German colleagues’ names look like someone sneezed on the keyboard.
\usepackage[english]{babel}
% Or for multilingual documents:
\usepackage[english,french,german]{babel}
Handles hyphenation, date formats, and language-specific typographical conventions. Essential for international collaboration.
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
The holy trinity of mathematical typesetting. If you’re writing anything with equations more complex than 2+2=4, you need these. For comprehensive mathematical typesetting techniques, see our guide on LaTeX Math Mode Mastery.
\usepackage{graphicx}
% Usage:
\includegraphics[width=0.8\textwidth]{figure.png}
Because a picture is worth a thousand words, but only if you can actually include it in your document.
\usepackage[colorlinks=true,linkcolor=blue]{hyperref}
Transforms your PDF into a modern, clickable document. URLs, cross-references, and citations become interactive. Welcome to the 21st century!
\usepackage{cleveref}
% Instead of: see Figure~\ref{fig:example}
% Use: see \cref{fig:example}
Automatically determines whether you’re referencing a figure, table, or equation. It’s like having a tiny editor checking your cross-references.
\usepackage[margin=1in,a4paper]{geometry}
Stop fighting with LaTeX’s default margins. This package gives you complete control over page dimensions.
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead[L]{Chapter \thechapter}
\fancyhead[R]{\leftmark}
Perfect for thesis writing or any document requiring professional headers and footers.
\usepackage{setspace}
\doublespacing % For those journals stuck in the typewriter era
Because sometimes reviewers demand double spacing, despite living in an age where we can zoom PDFs.
\usepackage{booktabs}
\begin{tabular}{@{}lcc@{}}
\toprule
Method & Accuracy & Speed \\
\midrule
Our Method & 95\% & Fast \\
Their Method & 60\% & Slow \\
\bottomrule
\end{tabular}
Creates publication-quality tables. Say goodbye to ugly vertical lines and hello to typographical elegance.
\usepackage{tabularx}
\begin{tabularx}{\textwidth}{lXr}
% X columns expand to fill available space
\end{tabularx}
For when you need tables that actually fit your page width.
\usepackage{enumitem}
\begin{enumerate}[label=(\alph*)]
\item First item
\item Second item
\end{enumerate}
Complete control over list formatting. Because sometimes you need (a), (b), (c) instead of 1., 2., 3.
% Traditional approach:
\usepackage{natbib}
\citep{smith2020} % (Smith, 2020)
\citet{smith2020} % Smith (2020)
% Modern approach:
\usepackage{biblatex}
\addbibresource{references.bib}
Choose your fighter: natbib for compatibility, biblatex for power. For comprehensive bibliography management, see our article on LaTeX Bibliography Management.
\usepackage{csquotes}
\enquote{This quote will be formatted correctly for your language}
Handles quotation marks according to language conventions. No more manual quote wrestling.
% listings (no external dependencies):
\usepackage{listings}
\lstset{language=Python,basicstyle=\ttfamily}
% minted (requires Python Pygments):
\usepackage{minted}
\begin{minted}{python}
def hello():
print("Hello, LaTeX!")
\end{minted}
For including beautiful, syntax-highlighted code in your documents.
\usepackage{algorithm2e}
\begin{algorithm}
\SetAlgoLined
\KwData{Training set $\mathcal{D}$}
\KwResult{Trained model}
\While{not converged}{
Update weights\;
}
\end{algorithm}
Professional algorithm presentation that reviewers will love.
\usepackage{siunitx}
\SI{3.14159}{\meter\per\second}
\num{1234567.89} % Properly formatted: 1,234,567.89
Handles units and number formatting consistently. Essential for scientific writing.
\usepackage{subcaption}
\begin{figure}
\begin{subfigure}{0.5\textwidth}
\includegraphics[width=\textwidth]{fig1}
\caption{First result}
\end{subfigure}
\begin{subfigure}{0.5\textwidth}
\includegraphics[width=\textwidth]{fig2}
\caption{Second result}
\end{subfigure}
\caption{Comparison of results}
\end{figure}
For those times when one figure just isn’t enough.
\usepackage{xcolor}
\textcolor{red}{Important!}
\definecolor{myblue}{RGB}{0,102,204}
Adds color to your documents. Use sparingly – this isn’t a rainbow factory.
\usepackage{lipsum}
\lipsum[1-3] % Generates Lorem Ipsum paragraphs
Perfect for testing layouts without getting distracted by content. Also useful for making documents look finished when they’re not.
Some packages need to be loaded in specific orders:
% Load these early:
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
% Load these before hyperref:
\usepackage{graphicx}
\usepackage{amsmath}
% Load hyperref late:
\usepackage{hyperref}
% Load these after hyperref:
\usepackage{cleveref}
Some packages don’t play well together:
Many packages accept options that dramatically change their behavior:
% Hyperref with custom colors:
\usepackage[colorlinks=true,
linkcolor=blue,
citecolor=green,
urlcolor=red]{hyperref}
% Geometry for US Letter with narrow margins:
\usepackage[letterpaper,margin=0.75in]{geometry}
\usepackage{geometry}
\usepackage{setspace}
\usepackage{fancyhdr}
\usepackage{hyperref}
\usepackage{cleveref}
\usepackage{biblatex}
\usepackage{amsmath,amssymb,amsthm}
\usepackage{mathtools}
\usepackage{thmtools}
\usepackage{tikz}
\usepackage{algorithm2e}
\usepackage{listings}
\usepackage{tikz}
\usepackage{pgfplots}
Loading too many packages can slow compilation. Consider:
When you need functionality not covered here:
These 20 packages form the foundation of productive academic LaTeX writing. Start with the essentials, add packages as needed, and always read the documentation. Remember: the best package is the one that solves your specific problem.
With modern collaborative platforms like inscrive.io, package management becomes even easier – no local installation required, just include and use. The platform handles compatibility and ensures all packages are available and up-to-date.
Now stop reading about packages and start writing that paper. Your deadline isn’t going to extend itself!
Discover the must-have LaTeX packages that will transform your academic writing workflow, from enhanced formatting and mathematical typesetting to powerful automation tools and bibliography management.
Read in 16 minutesLearn everything about managing bibliographies in LaTeX, from basic BibTeX usage to advanced citation styles, automated reference management, and collaborative bibliography workflows.
Read in 14 minutesMaster the basics of LaTeX with this comprehensive beginner guide. Learn essential commands, document structure, mathematical expressions, citations, and best practices for academic writing.
Read in 20 minutesDiscover the top alternatives to Overleaf for LaTeX editing. Compare features, pricing, and collaboration tools of inscrive.io, Crixet, TeXPage, and other powerful online LaTeX editors for academic writing.
Read in 12 minutesStay up to date with the roadmap progress, announcements and exclusive discounts feel free to sign up with your email.
We care about the protection of your data. Read our Privacy Policy.