![如何对两个词汇表进行不同的排序?首字母缩略词列表(sort=standard)和符号列表(sort=use)](https://linux22.com/image/280535/%E5%A6%82%E4%BD%95%E5%AF%B9%E4%B8%A4%E4%B8%AA%E8%AF%8D%E6%B1%87%E8%A1%A8%E8%BF%9B%E8%A1%8C%E4%B8%8D%E5%90%8C%E7%9A%84%E6%8E%92%E5%BA%8F%EF%BC%9F%E9%A6%96%E5%AD%97%E6%AF%8D%E7%BC%A9%E7%95%A5%E8%AF%8D%E5%88%97%E8%A1%A8%EF%BC%88sort%3Dstandard%EF%BC%89%E5%92%8C%E7%AC%A6%E5%8F%B7%E5%88%97%E8%A1%A8%EF%BC%88sort%3Duse%EF%BC%89.png)
我正在使用该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}
得出的结果为: