# pdflatex says glossary entry is undefined when it is defined

I am writing my thesis and for months it has been compiling without a problem. Now when I attempt to compile (I use pdflatex) it gives the following error.

[78 <./chapters/the_reductome/images/growth_division_and_kos.png>]
Underfull \vbox (badness 10000) has occurred while \output is active

! Package glossaries-extra Error: Glossary entry GDS' has not been defined.

See the glossaries-extra package documentation for explanation.
Type  H <return>  for immediate help.
...

l.146

? H
You need to define a glossary entry before you can reference it.
?


The thing is that that I have been using this glossary term for months without a problem for months (it is probably the most commonly used term). Furthermore, line 146 is a blank line.

The definition is \newacronym{gds}{GDS}{genome design suite}

The usage is normally \gls{gds}

The error reoccurs two more times at other blank lines (not every blank line though).

I have tried looking up-stream of the first error to see if there is any unclosed braces or equations etc but can't find anything.

I have tried pressing enter to the errors and then checking the resulting PDF. The document appears to be created with no problems as I can't find any strange behaviour caused by the errors.

I copied the main tex file of the thesis into a new directory and then modified it so that there was only one chapter tex file. In the chapter tex file I used the \gls{gds} glossary term with no problem and cannot find a way of recreating the error.

Can anyone please help explain this strange error, or suggest ways in which I might be able to recreate the error in a smaller example or suggest ways to better understand the problem or search for a solution to the problem? I'm completely stuck here...

• Welcome to TeX.SX! In the first compilation you have to use pdflatex -interaction=nonstopmode <FileName> in order to get a pdf output and the first aux file... after that pdflatex <FileName> will use the created .aux file(s) and will compile without errors – koleygr Jan 31 at 10:39
• you have not shown enough of the log to know which file the line 146 refers to. I would expect it has \gls{GDS} rather than \gls{gds} either because it was entered that way or because it has been through some uppercase section handling code without being protected against uppercasing. – David Carlisle Jan 31 at 10:43
• @koleygr pdflatex -interaction=nonstopmode <FileName> runs without error as you say but then if I run pdflatex <FileName then it errors as before. Any suggestions why that might be? – ojunk Jan 31 at 10:52
• @DavidCarlisle I'm not sure which bit of the log you need to see and it's a very large log. Can you expand a bit please? It references pictures in a specific chapter just before and just after, is this enough to know? This chapter is the one with the blank line I was talking about in the question. I did have a quick look at that line in other chapters and there was nothing obviously wrong with them. – ojunk Jan 31 at 10:56
• each time a file is opened the log has (/full/path/to/file  and each time it is closed the log has ) so to see which file the line number refers to work backwards up the log to find the nearest unclosed file open marker. – David Carlisle Jan 31 at 11:27

The log file will confirm the file in which the problem occurs.

Assuming that you do not have a simple typo of \gls{GDS} the usual cause of such an error is using \gls{gds} in a section heading or title that is uppercased. (You see a similar problem with \ref in such a place.)

One way to avoid the problem is to use

\newcommand\glsgds{\gls{gds}}


in the preamble and then

\section{...\protect\glsgds\ ...}


in the heading and that (most likely, depending on how the uppercasing is implemented in your heading code) will protect the argument of \gls` from being uppercased.