更改组的 nomencl 排序顺序(不在组内)?

更改组的 nomencl 排序顺序(不在组内)?

为了生成符号索引,我使用了nomencl包,并将各种符号分组。我知道如何更改组中项目的排序顺序。但是有没有办法更改组本身的默认顺序——没有重命名组键?

例如:

\documentclass{memoir}

\usepackage{amsmath}

\usepackage[refpage]{nomencl}
\usepackage{xstring}
\renewcommand{\nomname}{Notation}
\renewcommand*{\pagedeclaration}[1]{\unskip, {#1}}
\newlength{\nomitemorigsep}
\setlength{\nomitemorigsep}{\nomitemsep}
\setlength{\nomitemsep}{-\parsep}

\newcommand{\nomenclheader}[1]{%
\item[\hspace*{-\itemindent}\normalfont\bfseries#1]}

\renewcommand\nomgroup[1]{%
  \itemsep\nomitemorigsep%
  \IfStrEqCase{#1}{%
   {L}{\nomenclheader{Logic}}%
   {V}{\nomenclheader{Variables}}%
   {E}{\nomenclheader{Set theory}}%
  }%
  \itemsep\nomitemsep% Restore spacing
}

\makenomenclature

\begin{document}

The logical notation $p \implies q$ means ``if $p$, then $q$''; the statement $p \iff q$ means ``$p \implies q$ and $q \implies p$''.
\nomenclature[l1]{$p \implies q$}{if $p$, then $q$}
\nomenclature[l2]{$p \iff q$}{$p$ is logically equivalent to $q$}

\newpage

Generally, we use lower-case letters $x$, $y$, $z$, etc., for elements of sets; upper-case letters $A$, $B$, $C$, etc., for sets; and script letters $\mathcal{A}$, $\mathcal{B}$, etc., for collections of sets.
\nomenclature[v1]{$x$, $y$, $z$, etc.}{elements of sets}
\nomenclature[v2]{$A, B, C, \dots, X, Y, Z$}{sets}
\nomenclature[v3]{$\mathcal{A}$, $\mathcal{B}$, $\mathcal{C}$, etc.}{collections of sets}

\newpage

For a set $A$ and an object $x$, write $x \in A$ to mean that $x$ is an element of $A$.
\nomenclature[e1]{$x \in A$}{$x$ is an element of $A$}
Then $A \subset B$ means that for every $x$, $x \in A \implies x \in B$.
\nomenclature[e2]{$A \subset B$}{$A$ is a subset of $B$}

\printnomenclature[3.5cm]

\end{document}

最终的命名法输出为:

命名法中群组排序不当

但我希望各组按以下顺序排列:

  1. 逻辑
  2. 变量
  3. 集合论

L当然,我可以简单地将键的名称分别更改V为,,,,EL实现我想要的效果。但是:NS

  • 在实际文献中,有大量的命名组,因此简单地重新分配关键字母名称并不那么简单;并且
  • 我确实想使用源中显示的键字母 LVE,因为它们具有助记值(我可以轻松记住这些键,而无需反复参考它们的含义)。

相关内容