我对首字母缩略词和词汇表(定义)使用了分离列表。我想显示所有首字母缩略词,甚至未使用的首字母缩略词(没有数字列表就更好了。我想我们需要使用 nonumberlist 选项)。但是,我只想显示使用过的词汇表和数字列表。这是我的代码的一部分:
\usepackage[xindy,acronym,toc]{glossaries}
\makeglossaries
\loadglsentries{glossaire}
.
.
.
\printglossary[type=\acronymtype,nonumberlist] % displays the Acronyms without the number list
\glsaddall % displays all the entries before it
\printglossary %displays the glossary
但它并没有实现我对词汇表的要求。它甚至显示词汇表中未使用的项目,并为所有项目添加一个奇怪的数字列表(首字母缩略词的页码!)
我怎样才能这样做?
谢谢
答案1
\glsaddall
有一个可选参数,即以逗号分隔的词汇表列表。默认为所有定义的词汇表。因此,如果您只想添加特定词汇表中的所有条目,只需在可选参数中指定该词汇表的标签即可。
此命令迭代列表中的每个词汇表,并执行\glsadd{
标签}
对于该列表中的每个条目。这会使用当前位置(默认为当前页码)对每个条目进行索引。这意味着对于位置列表中出现的每个条目,您都会获得相同的数字。(如果有,nonumberlist
那么这不是问题,因为它会抑制位置列表。)这就是您的列表中出现虚假数字的原因。
有一个类似的命令\glsaddallunused
,其工作原理类似\glsaddall
(并且再次有一个可选参数),但它确实\glsadd[format=glsignore]{
标签}
对于尚未标记为已使用的条目,并且对于已标记为已使用的条目不执行任何操作。该glsignore
格式是一种特殊的位置格式,它只是忽略其参数。由于和都makeindex
需要xindy
一个位置(因为它们都是通用索引应用程序),因此这将被添加到位置列表中\glsignore{
地点}
。如果它是列表中的唯一位置,那么它就不会引人注意。但是,如果列表中还有其他位置,那么您最终会得到一个虚假的逗号。因此,\glsaddallunused
如果需要,最好将其放在文档末尾:
\documentclass{article}
\usepackage[xindy,acronym,toc]{glossaries}
\makeglossaries
\loadglsentries{example-glossaries-brief}% dummy entries
\loadglsentries[\acronymtype]{example-glossaries-acronym}% dummy entries
\begin{document}
\gls{lorem} and \gls{avf}.
\printglossary
\printglossary[type=\acronymtype]
\glsaddallunused[\acronymtype]
\end{document}
上述示例使用glossaries
包中提供的虚拟条目并生成一个两页的文档,其开头为:
只有文档中实际使用过的条目才有位置(在本例中为 1,因为它们都在第 1 页)。
如果你希望切换到glossaries-extra
和bib2gls
thenglsignore
被识别为一种特殊的位置格式,表示应选择条目,但不会将任何位置添加到位置列表中。但是,在这种情况下,您可以使用该selection=all
选项选择所有条目,而不管它们是否已在文档中使用。(事实上,像\glsaddall
和这样的迭代命令\glsaddallunused
不适用于,bib2gls
因为在第一次运行 LaTeX 时列表始终为空。)
bib2gls
与上述等价的是:
\documentclass{article}
\usepackage[record,% using bib2gls
postdot,% add a full stop after the descriptions
acronym]{glossaries-extra}
\GlsXtrLoadResources[
src={example-glossaries-brief}% data provided in example-glossaries-brief.bib
]
\GlsXtrLoadResources[
src={example-glossaries-acronym},% data provided in example-glossaries-acronym.bib
selection=all
]
\begin{document}
\gls{lorem} and \gls{avf}.
\printunsrtglossary
\printunsrtglossary[type=\acronymtype]
\end{document}