RefScout

\newacronym vs \gls — the short version

If you're new to the glossaries package in LaTeX, the two-command setup trips people up for a genuinely simple reason: they look like they should do the same thing, and they don't.

\newacronym{key}{short}{long} is a definition. You do it once, usually near the top of the document or in a separate file, and it doesn't print anything — it just tells LaTeX "this acronym exists and here's what it expands to."

\gls{key} is a usage. Every time you write \gls{key} in the text, it prints the acronym — expanded the first time it's used in the document, abbreviated after that — automatically, without you tracking which instance is the "first" one by hand.

The part that actually causes bugs: if you use \gls{key} somewhere before \newacronym{key}{...} is defined (wrong file order, wrong include order, a typo in the key), you get a compile error or a ?? in the output instead of your acronym, and it's not always obvious why from the error message alone.

The other common mistake is defining the same acronym twice with slightly different keys — nn and neuralnet both meaning "neural network" — which either causes an "acronym already defined" warning or, worse, silently prints inconsistently depending on which key got used where.

If you're retrofitting this into a paper that's already full of manually-typed acronyms ("CNN", "SNR", "BER" scattered everywhere as plain text), going through by hand to convert every instance is exactly the kind of tedious, error-prone task worth automating. Glossary scans your .tex for abbreviations, generates the \newacronym definitions, and wraps the in-text usages in \gls{} for you — you paste it back in and check it compiles.

Turn your plain-text acronyms into a real glossary → Glossary