我正在尝试为我的文档创建一个词汇表,但无法让它显示出来。
我的文档的最后三行是:
\newpage
\printglossaries
\end{document}
我还有:
\makeglossaries
前
\begin{document}
我尝试运行:
makeindex -l -s 报告.ist -o 报告.gls 报告.glo
并且:
制作词汇表报告.glo
两次的输出都是:
This is makeindex, version 2.15 [TeX Live 2013] (kpathsea + Thai support).
Scanning style file ./report.ist.............................done (29 attributes redefined, 0 ignored).
Scanning input file report.glo...done (0 entries accepted, 0 rejected).
Nothing written in report.gls.
Transcript written in report.ilg.
我尝试过教程。我还看了新手指南,实际上显示\printglossary
为命令。我尝试了两者,但都没有用。我在文档中定义的首字母缩略词表现如预期,我只是没有在报告末尾看到记录它们的词汇表。你能给我一些提示吗?
答案1
没有最小工作示例(MWE)这只是猜测,但正如您所提到的,您已经定义了首字母缩略词,并且它们的行为符合预期,我怀疑您已经使用了acronym
包选项,如下所示:
\usepackage[acronym]{glossaries}
这将产生二词汇表。默认main
词汇表和acronym
词汇表。在这种情况下,任何使用 定义的首字母缩略词\newacronym
都将分配给acronym
词汇表(除非您明确更改词汇表类型)。任何使用 定义的条目\newglossaryentry
(未指定类型)都将自动分配给main
词汇表。
每个词汇表都有自己的关联文件,用于存储makeindex
(或xindy
)要处理的信息。用于main
词汇表的文件扩展名为.glo
。用于词汇表的文件acronym
扩展名为.acn
。
Scanning input file report.glo...done (0 entries accepted, 0 rejected).
此消息makeindex
表示.glo
文件为空。这意味着您尚未引用主要的词汇表。如果您在文档中定义并引用了首字母缩略词,那么它们位于另一个文件中,而该文件需要由 处理makeindex
。确保所有文件都得到处理的最简单方法是使用makeglossaries
不指定扩展名:
makeglossaries report
你写道你尝试过
makeglossaries report.glo
它告诉makeglossaries
仅处理该.glo
文件并忽略任何其他词汇表文件。
以下是 MWE:
\documentclass{article}
\usepackage[acronym]{glossaries}
\makeglossaries
\newacronym{abc}{ABC}{a contrived acronym}
\begin{document}
\gls{abc}
\printglossaries
\end{document}
如果此文件名为test.tex
,pdflatex test
则将创建(在其他文件中)test.glo
(为空)和test.acn
(只有一行)。现在,makeglossaries test
将创建一个名为 的文件test.acr
,并且会抱怨该文件test.glo
为空。下次运行 时pdflatex test
,\printglossaries
将输入test.acr
并显示首字母缩略词列表。
如果您不打算使用main
词汇表,那么我建议您使用nomain
包选项来抑制其创建。这将防止创建不必要的文件,并停止makeglossaries
抱怨空.glo
文件。
答案2
\glsaddall
在 之前添加\printglossaries
。