为了生成符号索引,我使用了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}
最终的命名法输出为:
但我希望各组按以下顺序排列:
- 逻辑
- 变量
- 集合论
L
当然,我可以简单地将键的名称分别更改V
为,,,,E
来L
实现我想要的效果。但是:N
S
- 在实际文献中,有大量的命名组,因此简单地重新分配关键字母名称并不那么简单;并且
- 我确实想使用源中显示的键字母
L
、V
、E
,因为它们具有助记值(我可以轻松记住这些键,而无需反复参考它们的含义)。