如何对两个词汇表进行不同的排序?首字母缩略词列表(sort=standard)和符号列表(sort=use)

如何对两个词汇表进行不同的排序?首字母缩略词列表(sort=standard)和符号列表(sort=use)

我正在使用该glossaries包来创建首字母缩略词列表和符号列表。

我必须制作按字母顺序排列的首字母缩略词列表 ( sort=standard) 和按外观排序的符号列表 ( sort=use)。 这两个列表都必须显示在目录之前。 我阅读了用户手册,glossaries.sty v4.02其中有一个类似的例子,其中首字母缩略词按字母顺序排列,符号按定义顺序排序,但我无法使其适应我的需要。

可以这样做吗?因为根据一些读物,我必须在打印词汇表之前定义条目,也就是说,在我将它们用于文本之前。

现在,我正在作弊并通过sort={001}, sort={002}, ...,sort={XXX}在词汇表条目中放置并设置glossaries选项来强制正确的顺序sort=standard,以便首字母缩略词和主词汇表都按字母顺序排列。

\documentclass[12pt,openright,twoside,a4paper,english,french,spanish,brazil]{abntex2}
\usepackage[subentrycounter,seeautonumberlist,acronym,style=long3colheaderborder]{glossaries}
\makeglossaries
\newglossaryentry{pi}{
            name={\ensuremath{\pi}},
            description={ratio of circumference of circle to its diameter},
            sort={003} }
\newglossaryentry{real number}{
            name={\ensuremath{\mathbb{R}}},
            description={include both rational numbers and irrational numbers,
                a real number can be given by an infinite decimal
                representation, the real numbers may be thought of as points on an infinitely
                long number line},
            sort={002} }
\newglossaryentry{sigma}{
            name={\ensuremath{\sigma}},
            description={greek symbol},
            sort={001} }
\renewcommand*{\glsseeformat}[3][\seename]{\textit{#1} \glsseelist{#2}}

答案1

不同的排序机制彼此不兼容。特别是,由于直到条目在文档中实际使用时才sort=use设置键,因此您不能使用sort示例排序.tex示例文件。不过,针对这种特殊情况,可以修改底层排序宏,但这涉及使用内部函数,我更愿意避免这种情况:

\documentclass{article}

\usepackage[acronym]{glossaries}
\usepackage{amsfonts}

\makeglossaries

% First define entries with sort=standard:

\newacronym{zfc}{ZFC}{Zermelo-Fraenkel set theory}

\newacronym{ad}{AD}{axiom of determinacy}

\newacronym{nf}{NF}{new foundations}

% Modify the sort macro to use sort=def just for "main" glossary
\makeatletter
\setupglossaries{sort=use}

\@gls@defsortcount{main}
\let\orgsetsort\@gls@setsort

\renewcommand{\@gls@setsort}[1]{%
  \ifdefstring{\gls@type}{main}{\orgsetsort{#1}}{}%
}
\makeatother

\newglossaryentry{pi}%
{
   name={\ensuremath{\pi}},
   description={ratio of circumference of circle to its diameter}%
}

\newglossaryentry{real number}%
{
   name={\ensuremath{\mathbb{R}}},
   description={include both rational numbers and
     irrational numbers, a real number can be given 
     by an infinite decimal representation, the real 
     numbers may be thought of as points on an infinitely
     long number line}%
}

\newglossaryentry{sigma}%
{
  name={\ensuremath{\sigma}},
  description={greek symbol}%
}

\begin{document}

Reference the acronyms: \gls{zfc}, \gls{ad}, \gls{nf}.

Reference the symbols: \gls{sigma}, \gls{real number}, \gls{pi}.

\printglossaries

\end{document}

得出的结果为:

生成的文档的图像

相关内容