hyperref
hyperref — Hyperlinks, Cross-References & PDF Metadata
CTAN: https://ctan.org/pkg/hyperref
Manual: texdoc hyperref
Setup
% LOAD HYPERREF LAST (or near last) — it redefines many commands
\usepackage[
colorlinks=true,
linkcolor=blue,
citecolor=green!50!black,
urlcolor=blue!70!black,
pdftitle={My Document Title},
pdfauthor={Author Name},
]{hyperref}
% If using cleveref, load it AFTER hyperref:
\usepackage{cleveref}
Common Setup Options
| Option | Default | Description |
|---|---|---|
colorlinks |
false |
Color link text (vs boxes) |
linkcolor |
red |
Internal links (refs, TOC) |
citecolor |
green |
Citation links |
urlcolor |
magenta |
URL links |
filecolor |
cyan |
File links |
allcolors |
— | Set all link colors at once |
hidelinks |
— | No color, no boxes (for print) |
bookmarks |
true |
Generate PDF bookmarks |
bookmarksnumbered |
false |
Include section numbers in bookmarks |
bookmarksopen |
false |
Expand bookmarks by default |
pdfborder |
{0 0 1} |
Link border (set {0 0 0} to remove) |
breaklinks |
true |
Allow links to break across lines |
unicode |
true (modern) |
Unicode in bookmarks |
PDF Metadata Options
| Option | Description |
|---|---|
pdftitle |
Document title |
pdfauthor |
Author name(s) |
pdfsubject |
Subject |
pdfkeywords |
Keywords (comma-separated) |
pdfcreator |
Creating application |
pdfproducer |
PDF producer |
% Or set after loading:
\hypersetup{
pdftitle={My Paper},
pdfauthor={Jane Doe},
pdfsubject={LaTeX Tutorial},
pdfkeywords={LaTeX, hyperref, tutorial},
}
Link Commands
% External URL
\href{https://example.com}{Click here}
\href{mailto:user@example.com}{Email me}
\href{file:./report.pdf}{Local file}
% URL (typewriter, breakable)
\url{https://example.com/path?query=value}
% Internal reference with custom text
\hyperref[sec:intro]{see the introduction}
% Standard cross-references (auto-linked by hyperref)
\ref{fig:plot} % "3"
\pageref{tab:data} % "12"
\eqref{eq:main} % "(1)" — from amsmath
% Auto-named references
\autoref{fig:plot} % "Figure 3"
\autoref{tab:data} % "Table 2"
\autoref{sec:intro} % "section 1"
\autoref{eq:main} % "equation 1"
% Name reference (prints the title/caption)
\nameref{sec:intro} % "Introduction"
\autoref Names
| Counter | Default name |
|---|---|
figure |
Figure |
table |
Table |
equation |
equation |
section |
section |
chapter |
chapter |
theorem |
Theorem |
page |
page |
Customize: \renewcommand{\sectionautorefname}{Section}
cleveref Integration
\usepackage{hyperref}
\usepackage{cleveref} % MUST be after hyperref
% Automatic type detection + ranges
\cref{fig:a} % "fig. 1"
\Cref{fig:a} % "Figure 1" (capitalized)
\cref{fig:a,fig:b,fig:c} % "figs. 1 to 3"
\cref{eq:1,eq:2} % "eqs. (1) and (2)"
\crefrange{fig:a}{fig:d} % "figs. 1 to 4"
% Customize names
\crefname{equation}{eq.}{eqs.}
\Crefname{equation}{Equation}{Equations}
\crefname{figure}{fig.}{figs.}
Bookmarks
% Manual bookmark entry
\pdfbookmark[level]{Text}{anchor}
\pdfbookmark[0]{Title Page}{title}
% Current bookmark (without section command)
\currentpdfbookmark{Appendix A}{appendixA}
% Bookmark with section:
\belowpdfbookmark{Subsection text}{anchor} % below current level
Link Appearance
% Colored text links (preferred for screen)
\hypersetup{colorlinks=true, allcolors=blue}
% Boxed links (default)
\hypersetup{colorlinks=false, pdfborder={0 0 1}}
% Hidden links (for print)
\hypersetup{hidelinks}
% Custom: colored + no underline
\hypersetup{
colorlinks=true,
linkcolor={blue!80!black},
citecolor={green!60!black},
urlcolor={red!70!black},
}
Common Patterns
Clickable TOC with Print-Friendly Style
\usepackage[
colorlinks=true,
linkcolor=black, % TOC/internal links in black
citecolor=blue!50!black,
urlcolor=blue!70!black,
bookmarks=true,
bookmarksnumbered=true,
]{hyperref}
Thesis/Dissertation Setup
\usepackage[
hidelinks, % clean for printing
bookmarks=true,
bookmarksnumbered=true,
bookmarksopen=true,
bookmarksopenlevel=2,
pdftitle={PhD Thesis},
pdfauthor={Name},
]{hyperref}
\usepackage{cleveref}
Back-References in Bibliography
\usepackage[backref=page]{hyperref}
% Adds "Cited on page(s) X, Y" to bibliography entries
Common Pitfalls
| Problem | Cause | Fix |
|---|---|---|
| Broken cross-references | hyperref loaded too early | Load hyperref last (before cleveref) |
\autoref says "section" lowercase |
Default names | \renewcommand{\sectionautorefname}{Section} |
| Bookmark errors with math | Math in section titles | \texorpdfstring{$E=mc^2$}{E=mc2} |
| "Token not allowed" | Special chars in PDF strings | Use \texorpdfstring{LaTeX}{LaTeX} |
| Links in headers/footers | Fragile commands | Use \protect or \texorpdfstring |
| cleveref not working | Loaded before hyperref | Load order: hyperref → cleveref |
| Link boxes overlap text | Default border style | Use colorlinks=true or hidelinks |
\url breaks wrong |
Long URLs | hyperref handles this; check breaklinks=true |
| Conflicts with other packages | Package redefines same commands | Load hyperref after most packages |
Load Order Guide
% Safe order (most common packages):
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{...} % other packages
\usepackage[options]{hyperref} % near last
\usepackage{cleveref} % very last
Tips
- Always use
colorlinksfor screen PDFs;hidelinksfor print \texorpdfstring{LaTeX version}{plain text}for anything fancy in section titles\phantomsectionbefore\addcontentslinefor correct hyperlinks in unnumbered sections\hypersetup{}can be called multiple times to change settings mid-document- Use
\nohyperpagein index entries to prevent hyperref page linking
More from igbuend/grimbard
tikz
LaTeX TikZ/PGF package for programmatic vector graphics and diagrams. Use when helping users draw flowcharts, trees, graphs, automata, circuits, geometric figures, or any custom diagram in LaTeX.
91latex
Comprehensive LaTeX reference for document creation, formatting, mathematics, tables, figures, bibliographies, and compilation. Use when helping users write, edit, debug, or compile LaTeX documents.
37pgfplots
LaTeX pgfplots package for data visualization and plotting. Use when helping users create line plots, bar charts, scatter plots, histograms, 3D surfaces, or any scientific/data plot in LaTeX.
31biblatex
LaTeX biblatex/biber packages for modern bibliography management. Use when helping users cite references, manage .bib files, choose citation styles, or troubleshoot bibliography compilation.
24ethical-hacking-ethics
Legal and ethical guidelines for bug bounties, pentesting, and security research. Use when conducting authorized security testing.
12codebase-discovery
Generate security-focused DISCOVERY.md for code review and threat modeling. Use when assessing unfamiliar codebases.
11