使用该glossaries
包,是否可以有两个词汇表:
一种是未分类的(即按出现/使用顺序),例如符号索引,以及
另一个按字母顺序排序,例如术语表?
如果是,怎么办?
注意:我还需要将符号词汇表细分为几组。我知道如何只用一个词汇表来实现这一点,但如果我还有第二种词汇表,通常的方法会不会造成干扰?
如果有关系的话,我会使用memoir
documentclass。
答案1
如果您想要不同的排序规则,则需要使用\makenoidxglossaries
and\printnoidxglossary
而不是\makeglossaries
and 。变体使用 TeX 进行排序和整理,而不是使用or\printglossary
noidx
makeindex
xindy
。如果有一个最小工作示例(MWE)来说明您拥有的条目类型。以下示例使用测试文件中提供的虚拟条目example-glossaries-brief.tex
,example-glossaries-symbols.tex
应使用 进行安装glossaries.sty
:
\documentclass{memoir}
\usepackage[symbols]{glossaries}
\usepackage{glossary-mcols}
\makenoidxglossaries
\loadglsentries{example-glossaries-brief}
\loadglsentries[symbols]{example-glossaries-symbols}
\begin{document}
\glsaddall
\printnoidxglossary[sort=word,style=mcolindexgroup]
\printnoidxglossary[type=symbols,sort=def,style=index]
\end{document}
主要词汇表按词序排序:
符号词汇表未排序,尽管在本例中它看起来已排序,因为示例条目是按该顺序定义的。另一个选项是sort=use
按照文档中的首次使用对条目进行排序。有许多不同的预定义词汇表样式可供选择。
请注意noidx
方法按字母顺序排序效率很低,并且仅适用于 ASCII。glossaries-extra
扩展包允许混合搭配方法,因此makeindex
/xindy
可用于按字母顺序排序,\printnoidxglossary
并可用于定义顺序或使用顺序。(使用sort=def
或sort=use
,\printnoidxglossary
只是遍历内部列表,这意味着不执行实际排序)。
调整示例:
\documentclass{memoir}
\usepackage[symbols]{glossaries-extra}
\usepackage{glossary-mcols}
\makeglossaries[main]
\loadglsentries{example-glossaries-brief}
\loadglsentries[symbols]{example-glossaries-symbols}
\begin{document}
\glsaddall
\printglossary[style=mcolindexgroup]
\printnoidxglossary[type=symbols,sort=def,style=index]
\end{document}
如果您使用makeglossaries
,它将检测到makeindex
只需要main
词汇表。