
使用該glossaries
包,是否可以有兩個術語表:
一個未排序的(即,按照出現/使用的順序),例如符號索引,以及
另一個按字母順序排序,例如術語表?
如果是這樣,怎麼辦?
注意:我還要求將符號詞彙表細分為幾組。我知道如何僅使用一種術語表來做到這一點,但是如果我還有第二種術語表,通常的方法會幹擾嗎?
如果重要的話,我正在使用memoir
文檔類。
答案1
如果您想要不同的排序規則,則需要使用\makenoidxglossaries
and\printnoidxglossary
代替\makeglossaries
and 。\printglossary
該noidx
變體使用 TeX 進行排序和整理,而不是使用makeindex
or 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
or 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
。