我正在写我的硕士论文。当我在 Ubuntu 上编译并运行 Tex 文件时,一切正常。当我在 OSX 和 Windows 上执行此操作时,它返回错误:
Package glossaries Error: Glossary entry `...' has not been defined.
对于所有\gls{}
插入的条目。
我确实按照控制台中的 makeindex 程序进行操作。(makeindex main_body.glo -s main_body.ist -t main_body.glg -o main_body.gls
)。
有什么提示吗?提前谢谢您。
最小工作示例
\documentclass[11pt,a4paper,bibtotoc,idxtotoc,headsepline,footsepline,
footexclude,BCOR12mm,DIV13]{scrbook}
\input{components/info}
% include settings
\input{components/settings}
% include commands
\input{components/commands}
\makeindex
\makeglossary
\begin{document}
\frontmatter
\input{components/cover}
\clearemptydoublepage
\input{components/titlepage}
\input{components/abstract}
\tableofcontents
\input{components/outline}
\part[Introduction, Motivation and Backdrop]{Introduction, Motivation and Backdrop}
\part[Handbook and its Application]{Handbook and its Application}
\part*{Appendix}
\addcontentsline{toc}{part}{Appendix}
\input{chapters/7_Glossary/Acronyms}
\input{chapters/7_Glossary/Glossary}
\glsaddall
\printglossaries
\addcontentsline{toc}{chapter}{Glossary and Acronyms}
\clearemptydoublepage
\bibliography{bibliography/literature}
\end{document}
答案1
这与平台无关。差异是由于使用不同版本的glossaries
包造成的。您基本上是在定义之前使用条目。以下是 MWE:
\documentclass{article}
\usepackage{glossaries}
\makeglossaries
\begin{document}
\gls{sample}
\newglossaryentry{sample}{name={sample},description={an example}}
\printglossary
\end{document}
第一次编译此文档时,会出现以下错误:
! Package glossaries Error: Glossary entry `sample' has not been defined.
使用旧版本(3.08a 之前)glossaries
,您将总是尝试使用尚未定义的条目时,会出现此错误。使用较新版本的glossaries
,第一次运行 LaTeX 时会出现错误,但后续运行不会出现错误(除非删除文件.glsdefs
)。因此,我怀疑您的 Ubuntu 平台使用的是较新的 版本glossaries
,因此它似乎可以工作,而您的其他平台使用的是较旧的 3.08a 之前的版本,因此它无法工作。
最简单的,受到推崇的,解决方案是在序言中定义所有条目。