\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{lipsum}
\usepackage[toc,nomain,acronym,automake]{glossaries-extra}
\newglossary[tmg]{mygloss}{tms}{tmo}{My Glossy}
\makeglossaries
\begin{document}
\newglossaryentry{test}{
name=test,
description={Some text},
type=mygloss
}
% I EXPECT TO SHOW ALSO ENTRIES FROM BELOW, i.e. test2
\glsaddall[types={mygloss}]
\printglossary[type=mygloss,title=My Weird Glossary]
\section{Something}
\lipsum[1]
\newglossaryentry{test2}{
name=test2,
description={Some text 2},
type=mygloss
}
Text immediately after newglossaryentry.
\end{document}
生成的词汇表缺少词汇表条目test2
。为什么?
答案1
因为默认情况下,glossaries-extra
宏\newglossaryentry
不允许在文档主体内使用。请参阅该docdef
选项的文档:
docdef={⟨value⟩}
(词汇表-extra.sty)此选项控制 的使用
\newglossaryentry
。可用值:
false
\newglossaryentry
在文档环境中是不允许的(glossaries-extra
对于仅使用基础glossaries
包的选项 1,这是默认的);
restricted
\newglossaryentry
仅当它出现在之前时才允许在文档环境中出现\printglossary
(对于某些索引选项不可用);
atom
但restricted
创建docdefs
文件供使用atom
(不受限制docdef=true
);
true
\newglossaryentry
在文档环境中是允许的,而基础包通常会允许它glossaries
。这将创建docdefs
文件
(摘自glossaries-user.pdf
,第 65 页,第 2.1 节)
因此,如果您正在使用,glossaries-extra
则必须使用\usepackage[docdef=restricted]{glossaries-extra}
或\usepackage[docdef=true]{glossaries-extra}
才能使其工作。