为什么 newglossaryentry 不会根据位置产生影响

为什么 newglossaryentry 不会根据位置产生影响
\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(对于某些索引选项不可用);

atomrestricted创建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}才能使其工作。

相关内容