
Используя glossaries
пакет, возможно ли иметь два глоссария:
один несортированный (т.е. в порядке появления/использования), например, для индекса обозначений, и
другой сортируется в алфавитном порядке, например, для глоссария терминов?
Если да, то как?
Примечание: Я также требую, чтобы глоссарий обозначений был подразделен на группы. Я знаю, как это сделать с одним глоссарием, но будет ли мешать обычный метод, если у меня также есть глоссарий 2-го типа?
Если это имеет значение, я использую memoir
documentclass.
решение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
или просто итерирует внутренний список, что означает, что фактическая сортировка не выполняется).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
глоссария.