我开始用包制作符号和主题索引multind
。在符号索引中,我想按主题对符号进行分组,例如,写入集合论符号并在描述下方有所有符号,写完后运算符并具有所有运算符的符号等。
有人知道怎么做吗?
我希望获得类似以下内容
有人能帮我提供一个最小的工作示例吗?最好更改带有页码的部分。
答案1
您可以使用glossaries
执行此操作。我假设您要么希望根据定义对符号进行排序,要么希望根据用法对符号进行排序,因为符号很难按字母顺序排序(并且您的示例未按字母顺序排序)。glossaries
您可以使用包选项sort=def
按定义顺序排序或sort=use
根据用法排序。在下面的示例中,我使用了(如果您使用的是4.0 版之前的版本,sort=def
请更改\setglossarystyle
为):\glossarystyle
glossaries
\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,您需要执行以下操作:
- 跑步
pdflatex
- 跑步
makeglossaries
- 跑步
pdflatex
上面的例子产生:
第 1 页:
第2页:
第 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.