使用 \glsaddallunused 导致的虚假逗号

使用 \glsaddallunused 导致的虚假逗号

我正在使用词汇表 v4.11 编写以下文档:

\documentclass[a4paper]{report}

\usepackage{glossaries}
\makeglossaries

\newglossaryentry{foo}{name={foo},description={Foo}}
\newglossaryentry{bar}{name={bar},description={Bar}}
\newglossaryentry{baz}{name={baz},description={Baz}}

\begin{document}

\gls{foo} \glsadd{bar}

\printglossaries

\glsaddallunused

\end{document}

条目“foo”和“baz”按预期出现,但在使用以下命令添加的“bar”条目中有一个虚假逗号\glsadd

带有虚假逗号的词汇表

删除后\glsaddallunused问题得到解决,但是“baz”条目不再出现。

答案1

该条目bar被添加了两次,但没有使用\glsadd{bar}\glsaddallunused。在后者的描述中,文档说:

如果要使用\glsaddallunused,最好将命令放在文档末尾,以确保要使用的所有命令都已使用过。否则,位置列表中可能会出现虚假的逗号或破折号。

显然,当一个条目被添加两次时,这也适用。

可能的解决方法:bar将其放入未使用的盒子中:\sbox0{\gls{bar}}\glsunset{bar}将其标记为已使用:

\documentclass[a4paper]{report}

\usepackage{glossaries}
\makeglossaries

\newglossaryentry{foo}{name={foo},description={Foo}}
\newglossaryentry{bar}{name={bar},description={Bar}}
\newglossaryentry{baz}{name={baz},description={Baz}}

\begin{document}

\gls{foo} \glsadd{bar}\glsunset{bar}

\printglossaries

\glsaddallunused

\end{document}

结果

相关内容