帶有術語表包的排序和未排序術語表?

帶有術語表包的排序和未排序術語表?

使用該glossaries包,是否可以有兩個術語表:

  1. 一個未排序的(即,按照出現/使用的順序),例如符號索引,以及

  2. 另一個按字母順序排序,例如術語表?

    如果是這樣,怎麼辦?

注意:我還要求將符號詞彙表細分為幾組。我知道如何僅使用一種術語表來做到這一點,但是如果我還有第二種術語表,通常的方法會幹擾嗎?

如果重要的話,我正在使用memoir文檔類。

答案1

如果您想要不同的排序規則,則需要使用\makenoidxglossariesand\printnoidxglossary代替\makeglossariesand 。\printglossarynoidx變體使用 TeX 進行排序和整理,而不是使用makeindexor 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=defor 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

相關內容