我希望我的glossaries
条目按字母顺序排序,并且,如果某些条目具有相同的排序键,则按它们在文本中的调用顺序排序。有什么办法吗?
这是 MWE,包含两个条目div
并commut
显示相同的排序键。
\documentclass[]{article}
\usepackage[
nogroupskip,
% xindy,
]{glossaries}
% I compile with xindy, but I do not think it is relevant here.
% xindy -L english -C utf8 -I xindy -M % -t %.glg -o %.gls %.glo
\newglossaryentry{div}
{ name={\ensuremath{\protect\vec{\nabla}.}},
description={Divergence operator},
sort={0}
}
\newglossaryentry{commut}
{ name={\ensuremath{\protect[~,~]}},
description={Commutator},
sort={0}
}
\newglossaryentry{b0}
{ name={\ensuremath{\protect\vec{B}_0}},
description={Static magnetic field},
sort={B0}
}
\makeglossaries
\begin{document}
Text.\gls{div} \gls{commut} \gls{b0}
\printglossaries
\end{document}
例如,此处交换子未出现在词汇表中。我希望它出现在散度运算符之后,尽管它们的排序键相同。
答案1
我建议\makenoidxglossaries
一起使用\printnoidxglossary[sort=standard]
,首先根据排序键对元素进行排序,然后根据用途对元素进行排序。
\documentclass{article}
\usepackage[nogroupskip]{glossaries}
\newglossaryentry{div}
{ name={\ensuremath{\protect\vec{\nabla}.}},
description={Divergence operator},
sort={0}
}
\newglossaryentry{commut}
{ name={\ensuremath{\protect[~,~]}},
description={Commutator},
sort={0}
}
\newglossaryentry{b0}
{ name={\ensuremath{\protect\vec{B}_0}},
description={Static magnetic field},
sort={B0}
}
\newglossaryentry{b1}
{ name={\ensuremath{\protect\vec{B}_1}},
description={Static magnetic field},
sort={B0}
}
\makenoidxglossaries
\begin{document}
Text.\gls{b1} \gls{div} \gls{commut} \gls{b0}
\printnoidxglossary[sort=standard]
\end{document}
然后你得到
首先0
根据用途显示条目,然后显示两个B0
条目。
(xindy
可能会改变排序的条目,所以我不确定它是否在那里起作用......)