打印词汇表(不包括某些类型)

打印词汇表(不包括某些类型)

我怎样才能从 printglossaries 宏中排除“主要”词汇表,因为我希望能够对主要词汇表使用一种格式,而对其余词汇表使用另一种格式。

即我希望能够做这样的事情:

%Print the main glossary
\glossarystyle{altlist}
\printglossary[type=main]

%Print the remaining glossaries
\glossarystyle{list}
\printglossaries

因此,在上述命令中,\printglossaries应打印除主词汇表之外的其余词汇表(例如,缩写词、术语、符号和用户定义的词汇表)

我还有一个“隐藏”词汇表,用于一些内部文件术语,我根本不想打印出来。

目前,在上面,主要词汇表是重复的。

答案1

\printglossaries只是定义为使用以下方法迭代所有词汇表:

\forallglossaries{\@@glo@type}{\printglossary[type=\@@glo@type]}

此命令有一个可选参数,可用于指定要迭代的词汇表子集,因此\printglossaries,您可以执行以下操作:

\forallglossaries[foo,bar,baz]{\glotype}{\printglossary[type=\glotype]}

仅打印标签为foobar和的词汇表baz

这是一个更通用的方法:

\documentclass{article}

\usepackage{etoolbox}
\usepackage[acronym,symbols,numbers,index]{glossaries}

\makeglossaries

\newglossaryentry{sample1}{name={sample1},description={}}
\newglossaryentry{sample2}{type={symbols},name={sample2},description={}}
\newglossaryentry{sample3}{type={numbers},name={sample2},description={}}

\newacronym{abc}{ABC}{an example acronym}
\newterm{sample}

\newcommand*{\shownlist}{}
\renewcommand*{\glossarypreamble}{\listxadd\shownlist{\currentglossary}}

\newcommand*{\printremaining}{%
  \renewcommand*{\glossarypreamble}{}%
  \forallglossaries{\glotype}{%
    \xifinlist{\glotype}{\shownlist}{}{\printglossary[type=\glotype]}%
  }%
}

\begin{document}

\glsaddall

\printglossary
\printindex

\printremaining

\end{document}

得出的结果为:

所有词汇表的图片

相关内容