I use the glossaries package and have a list of acronyms as well as a glossary. The acronyms are set to have a footnote at first use. For the glossary I use longtable format (actually I build my own style based on longtable but the following problem also occurs with the predefined style 'long').
Want I want to do is to refer to an (before unused) acronym inside the description of the glossary. Unfortunately, the footnote appears wrong. The footnote does not refer to the used acronym in the glossary description but to the last referred acronym before the glossaries.
The following example produces the error:
\documentclass{scrreprt}
\usepackage{ragged2e}
\usepackage[table, dvipsnames]{xcolor}
\usepackage[backref=page,plainpages=false,pdfpagelabels,colorlinks]{hyperref}
\usepackage[style=listgroup,footnote,acronym,toc,hyperfirst]{glossaries}
\setglossarystyle{long}
\makeglossaries
% arconyms
\newacronym{FPGA}{FPGA}{Field-Programmable Gate Array}
\newacronym{DD}{DD}{\glslink{displacement damage}{Displacement Damage}}
\newacronym{DDD}{DDD}{Displacement Damage Dose}
% glossary
\newglossaryentry{displacement damage}{
name = {Displacement Damage},
description = {Displacement damage description}
}
\newglossaryentry{displacement damage dose}{
name = {Displacement Damage Dose},
description = {\Gls{DD} dose description}
}
\newglossaryentry{interconnect}{
name = {Interconnect},
description = {The wiring resources in an \gls{FPGA}}
}
%\glsaddall
\begin{document}
page 1
\clearpage
\newpage
page 2\\
What does \gls{interconnect} mean?
\Gls{DDD}, \gls{displacement damage dose} and again \gls{DDD}.\\
\clearpage
\newpage
page 3
%\glsunsetall
\glsaddall
\printglossary[type=\acronymtype, title=Abbreviations]
\printglossary[type=main, title=Glossary]
\end{document}
On page 5:
You can see that both acronyms have the same footnote text and wrong hyperlink. I assume that there is a problem to have a footnote inside a longtable but I do not know how to fix it.
I can use \glsunsetall
to suppress any footnotes but this is not what I want.
Another problem is that all glossary entries have page 3 as a reference, which is not correct. If I place \glsaddall
before \begin{document}
, all entries have page 1 as a reference. How can I suppress this entry produced by \glsaddall
, e.g. some entries do not have any page reference but those used do have?
EDIT1:
after compiling with:
- pdflatex
- makeglossaries
- pdflatex
I get two warnings:
name{Hfootnote.3} has been referenced but does not exist, replaced by a fixed one name{Hfootnote.2} has been referenced but does not exist, replaced by a fixed one
\footnote
inside a tabular-like environment. Switching to a different style (such aslist
) seems to fix the problem. I'm not sure of a workaround if you really need to use a style that useslongtable
.longtable
environment. So really, I was just thinking out loud ;-) Yourhyperref
warnings may be due to a related problem of having\footnote
within alongtable
, but I'm not sure.