我想使用命名法来创建目录中文件的自定义索引。只要我的部分以字母开头,就没有问题。但如果我想用数字来划分它,那就行不通了。
我从命名法部分:
\documentclass{article}
\usepackage{nomencl}
\usepackage{ifthen}
\renewcommand{\nomgroup}[1]{%
\ifthenelse{\equal{#1}{A}}{\item[\textbf{A}]}{%
\ifthenelse{\equal{#1}{0}}{\item[\textbf{0}]}
{}
}
}
}
\makenomenclature
\nomenclature[A]{$\Omega_N$}{Set of all buses (nodes).}
\nomenclature[A]{$n,m$}{Index of all buses (nodes). $m$ is alias of $n$.}
\nomenclature[A]{$\Omega_L$}{Set of all Transmission lines.}
\nomenclature[A]{$l$}{Index of transmission lines.}
\nomenclature[0]{$\Omega_{K}$}{Set of all genetors.}
\begin{document}
Some text
\printnomenclature
\end{document}
应该发生什么:我得到一个包含两个部分的索引:一个从 0 开始(一个条目),另一个部分 A 有四个条目。
我得到的是这样的:我得到的索引中有一个部分没有标签,只有一个条目,另一个部分 A 有四个条目。出于某种原因,无法识别 0。
我试过了
\ifthenelse{#1=0}}{\item[\textbf{0}]}
以及...没有运气。也许 0 是一个数字,不喜欢被当作字符串进行比较……?!
编辑: 我的索引需要 0-9 和 az 部分。
任何想法都值得赞赏。
答案1
由于包没有答案nomencl
,因此您可以使用glossaries
包来实现它。这不使用makeindex
的分组系统,而是利用 提供的层次结构glossaries
:
\documentclass{article}
\usepackage[
nopostdot,% suppress automatic post-description full stop
automake,% automatically run makeindex if restricted shell escape enabled
nonumberlist,% suppress location lists
nogroupskip,% suppress group skips (we're overriding the default grouping)
style=tree% hierarchical display style required
]{glossaries}
\makeglossaries
% \newentry{letter/number}{label}{settings}
\newcommand*{\newentry}[3]{%
\ifglsentryexists{#1}{}%
{%
\newglossaryentry{#1}{name={#1},description={\nopostdesc}}%
}%
\newglossaryentry{#2}{parent={#1},sort={#2},#3}%
}
\newentry{A}{omegaN}
{name={$\Omega_N$},description={Set of all buses (nodes).}}
\newentry{A}{nm}
{name={$n,m$},description={Index of all buses (nodes). $m$ is alias of $n$.}}
\newentry{A}{omegaL}
{name={$\Omega_L$},description={Set of all Transmission lines.}}
\newentry{A}{l}
{name={$l$},description={Index of transmission lines.}}
\newentry{0}{omegaK}
{name={$\Omega_{K}$},description={Set of all genetors.}}
\begin{document}
Some text
\glsaddall% index all defined entries
\printglossaries
\end{document}
\newentry
如果尚未定义父条目(针对组),则此命令将定义父条目。然后,它将实际条目定义为子条目。由于所有name
字段都使用命令或特殊字符(如\Omega
或$
),sort
因此默认情况下将键设置为标签以协助 的makeindex
排序。如果需要,可以在 的第三个参数中更改此设置\newentry
。
结果如下:
如果需要,可以更改样式。有许多预定义样式。您需要一个可以支持分层条目的样式。表 15.1用户指南中提供了摘要。您需要一个最大级别大于 0 但没有选中“同形异义词”列的摘要。