制作带描述的符号索引

制作带描述的符号索引

我开始用包制作符号和主题索引multind。在符号索引中,我想按主题对符号进行分组,例如,写入集合论符号并在描述下方有所有符号,写完后运算符并具有所有运算符的符号等。

有人知道怎么做吗?

我希望获得类似以下内容

有人能帮我提供一个最小的工作示例吗?最好更改带有页码的部分。

答案1

您可以使用glossaries执行此操作。我假设您要么希望根据定义对符号进行排序,要么希望根据用法对符号进行排序,因为符号很难按字母顺序排序(并且您的示例未按字母顺序排序)。glossaries您可以使用包选项sort=def按定义顺序排序或sort=use根据用法排序。在下面的示例中,我使用了(如果您使用的是4.0 版之前的版本,sort=def请更改\setglossarystyle为):\glossarystyleglossaries

\documentclass{report}

\usepackage{amsfonts}
\usepackage[nomain,section,sort=def]{glossaries}
\usepackage{glossary-mcols}

% (Pre glossaries v4.0 requires \glossarystyle rather than
% \setglossarystyle)
\setglossarystyle{mcolindex}
\renewcommand{\glspostdescription}{\dotfill}

\newglossary[op-glg]{operators}{op-gls}{op-glo}{Operators}
\newglossary[cn-glg]{constants}{cn-gls}{cn-glo}{Constants}

\makeglossaries

% Define a command to define operators
% Syntax: \newoperator[options]{label}{operator symbol}

\newcommand*{\newoperator}[3][]{%
  \newglossaryentry{#2}{type=operators,%
    name={$#3$},text={#3},description={},#1}%
}

% Similarly for constants

\newcommand*{\newconstant}[3][]{%
  \newglossaryentry{#2}{type=constants,%
    name={$#3$},text={#3},description={},#1}%
}

% Define operators

\newoperator{Mop}{\mathcal{M}}
\newoperator{Aalpha}{A_\alpha}
\newoperator{nablaOmega}{\nabla_\Omega}
\newoperator{T}{T}
\newoperator{I2}{I_2}
\newoperator{Jz}{J_z}
\newoperator{Gz}{G_z}

% Define constants

\newconstant{pdash}{p'}
\newconstant{jnu}{j_\nu}
\newconstant{Mcn}{\mathfrak{M}}
\newconstant{Dpq}{D_{p,q}}

\begin{document}
\chapter{Sample Chapter}

Some sample usage of constants:
\[
 \gls{pdash}, \gls{Mcn}, \gls{jnu}
\]

Some sample usage of operators:
\[
  \gls{Mop}, \gls{Aalpha}, \gls{nablaOmega}
\]

\newpage

More sample usage:
\[
\gls{T}, \gls{I2}, \gls{Jz}, \gls{Gz},
\gls{Mcn}, \gls{Dpq}, \gls{jnu}
\]

\chapter*{Index}

\printglossaries
\end{document}

为了构建 PDF,您需要执行以下操作:

  1. 跑步pdflatex
  2. 跑步makeglossaries
  3. 跑步pdflatex

上面的例子产生:

第 1 页:

第 1 页图片

第2页:

第 2 页图片

第 3 页:

第 3 页图片

在您的示例图像中,有些行包含多个条目(例如c, c_1, c_2, \ldots, v_n)。有多种方法可以处理这些问题。您可以将列表中的第一个(例如c)指定为主要父条目,将其余的指定为子条目,然后定义一个词汇表样式,将子条目名称放在父条目名称之后,但这会使位置列表变得复杂。但是,我认为最简单的解决方案可能是使用指定的列表定义一个条目,然后在使用它时使用\glsdisp或。\glslink

例如:

\newconstant{c}{c, c_1, c_2, \ldots, v_n}

然后在文档中:

In-line: $\glslink{c}{c}$ or $\glslink{c}{c_1}$ or $\glslink{c}{c_2}$ etc.

相关内容