我正在写论文,几个月来编译都没有问题。现在当我尝试编译时(我使用 pdflatex),它给出了以下错误。
[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.
?
事实是,几个月来我一直在使用这个词汇表术语,没有任何问题(它可能是最常用的术语)。此外,第 146 行是空白行。
定义是
\newacronym{gds}{GDS}{genome design suite}
通常使用
\gls{gds}
该错误在其他空白行(但不是每个空白行)中再次出现两次。
我尝试查找第一个错误的上游,看是否有未闭合的括号或方程式等,但什么也没找到。
我尝试按 Enter 键来清除错误,然后检查生成的 PDF。文档似乎创建没有问题,因为我没有发现由错误引起的任何异常行为。
我将论文的主 tex 文件复制到一个新目录中,然后对其进行修改,以便只有一个章节 tex 文件。在章节 tex 文件中,我使用\gls{gds}
词汇表术语没有任何问题,并且找不到重现错误的方法。
有人能帮忙解释一下这个奇怪的错误吗?或者建议我如何在一个较小的例子中重现这个错误,或者建议我如何更好地理解这个问题或寻找问题的解决方案?我完全被困在这里了……
答案1
日志文件将确认问题发生的文件。
假设您没有犯简单的拼写错误,\gls{GDS}
这种错误的常见原因是\gls{gds}
在章节标题或标题中使用了大写字母。(您会\ref
在这样的地方看到类似的问题。)
避免这个问题的一种方法是使用
\newcommand\glsgds{\gls{gds}}
在序言中,然后
\section{...\protect\glsgds\ ...}
在标题中,并且(最有可能的是,取决于标题代码中大写的实现方式)将保护参数\gls
不被大写。