Theses and long reports often need a glossary and a list of abbreviations. The glossaries package handles both. You define each term once, refer to it with \gls, and LaTeX prints only the entries you actually used, with page numbers.
Short answer
Load \usepackage[acronym]{glossaries}, add \makenoidxglossaries, define entries with \newglossaryentry and \newacronym, use them with \gls{label}, and print with \printnoidxglossaries. Compile twice.
A complete working example
This version needs no extra tool, so it compiles the same way locally and on Overleaf:
\documentclass{article}
\usepackage[acronym,toc]{glossaries}
\makenoidxglossaries
\newglossaryentry{latex}{
name={LaTeX},
description={A document preparation system built on TeX}
}
\newglossaryentry{matrix}{
name={matrix},
plural={matrices},
description={A rectangular array of numbers}
}
\newacronym{svm}{SVM}{support vector machine}
\begin{document}
\Gls{latex} is used here, with two \glspl{matrix}.
We trained a \gls{svm}. Later the \gls{svm} was tuned.
\printnoidxglossaries
\end{document}The first \gls{svm} prints "support vector machine (SVM)" and later uses print "SVM". \Gls capitalises the first letter, and \glspl gives the plural. The toc option adds the glossary and acronym list to the table of contents.
Watch the article before an acronym. The first use expands to the long form, so write the article that fits the long form ("a support vector machine"), since that is what the reader sees first.
Commands you will use
| Command | Prints |
|---|---|
\gls{label} | The term (and the long form on first use, for acronyms) |
\Gls{label} | The same, capitalised |
\glspl{label} | The plural |
\acrshort{label} | The abbreviation only |
\acrlong{label} | The long form only |
\acrfull{label} | Long form with the abbreviation in brackets |
\glsresetall | Treats every acronym as unused again, for example at the start of a chapter |
Faster sorting with makeglossaries
\makenoidxglossaries sorts inside LaTeX, which slows down with hundreds of entries. For large glossaries, use \makeglossaries and \printglossaries, and run the makeglossaries tool between two LaTeX runs:
\documentclass{article}
\usepackage[acronym]{glossaries}
\makeglossaries
\newglossaryentry{latex}{name={LaTeX}, description={A document preparation system}}
\newacronym{svm}{SVM}{support vector machine}
\begin{document}
\gls{latex} and a \gls{svm}.
\printglossaries
\end{document}The build sequence is pdflatex main, then makeglossaries main, then pdflatex main again. Overleaf and latexmk run makeglossaries for you. If the lists are empty locally, that step was skipped.
Common problems
- The glossary does not appear: you used
\makeglossarieswithout running makeglossaries, or nothing was referenced with\gls. Only used entries are printed. - "Glossary entry
xhas not been defined": the label in\glsdoes not match the definition, or the definition comes after\begin{document}in a file that is read too late. Keep definitions in the preamble or in a file loaded there. - Links do not work: load hyperref before glossaries.
- You want the acronyms in the main glossary: drop the
acronymoption and both kinds of entry go into one list.
For larger projects, the glossaries-extra extension adds more abbreviation styles and the bib2gls tool, which keeps entries in a .bib-style file. The commands above work with it too.
Frequently Asked Questions
How do I make a list of abbreviations in LaTeX?
Load glossaries with the acronym option, define each abbreviation with \newacronym{label}{ABBR}{long form}, use \gls{label} in the text and print the list with \printnoidxglossaries or \printglossaries.
Why is my LaTeX glossary empty?
Either the makeglossaries step was not run (if you used \makeglossaries) or no entry was used with \gls. Switch to \makenoidxglossaries to avoid the extra step.
Does the glossaries package work on Overleaf?
Yes. Overleaf runs makeglossaries automatically, and \makenoidxglossaries needs no extra step at all.
More LaTeX Guides
Written by Dr. Meng Zhao
Physician-Scientist · Founder, LabCat AI
MD · Former Neurosurgeon · Medical AI Researcher
Dr. Meng Zhao is a former neurosurgeon turned medical-AI researcher. After years in the operating room, he moved into applied AI for clinical workflows and now leads LabCat AI, a medical-AI company working on decision support and research tooling for clinicians. He built Journal Metrics as a free resource for researchers who need reliable journal metrics without paid database subscriptions.
Related Articles
LaTeX Page Numbering: Roman Numerals, Page X of Y, and Removing Page Numbers
How to change page numbering in LaTeX: switch between roman and arabic numerals, start at any number, move the number, show "Page X of Y", and remove the number from the title page.
7 min readLaTeXLaTeX Footnotes: Add, Reuse and Customize Footnotes (Including in Tables)
How to use footnotes in LaTeX: \footnote, footnotes in tables and minipages, referring to the same footnote twice, symbols instead of numbers, unnumbered notes and endnotes.
7 min readLaTeXLaTeX Hyperlinks with hyperref: \href, \url, Link Colors and Internal Links
How to add hyperlinks in LaTeX with hyperref: \href and \url, email links, links to sections and pages, colored links instead of boxes, breaking long URLs, and PDF metadata.
7 min read