nomencl 包不允许在键中使用感叹号

nomencl 包不允许在键中使用感叹号

我正在使用这个nomencl包,到目前为止它运行得非常完美。但是,今天我决定引入一些包含感叹号的符号,结果失败了。

这里有一个简单的例子:

\documentclass{article}
\usepackage{nomencl}
\makenomenclature

\begin{document}
\nomenclature{$n!$}{factorial of $n$}
\[
 n! = \prod_{i=1}^n i
\]
\printnomenclature
\end{document}
  • pdflatex text.tex运行正常
  • makeindex test.nlo -s nomencl.ist -o test.nls运行正常,并报告“1 个条目被接受,0 个条目被拒绝)”等(没问题)。
  • pdflatex text.tex,之后第二次运行makeindex,失败。

错误是这样的:

Writing nomenclature file test.nlo
(./test.aux) (./test.nls
! Missing $ inserted.
<inserted text> 
                $
l.6     \subitem
                 [{$n
? 

如果我删除感叹号,如下所示:

\nomenclature{$n$}{factorial of $n$}

然后文档编译并产生正确的输出。

我尝试使用$n{!}$$n\!$,但并未解决问题。

在命名法中包含 $n!$ 或 $!n$ 或其他带有感叹号的表达式的正确方法是什么?

答案1

!是 MakeIndex 的特殊字符(用于对命名法进行排序)。使用 MakeIndex 的方法将其引用,即%在其前面添加:

% arara: pdflatex
% arara: nomencl
% arara: pdflatex

\documentclass{article}
\usepackage{nomencl}
\makenomenclature

\begin{document}
\nomenclature{$n%!$}{factorial of $n$}
\[
 n! = \prod_{i=1}^n i
\]
\printnomenclature
\end{document}

我添加了适当的arara调用来处理命名法。请参阅https://tex.stackexchange.com/a/77879/4427欲了解有关 的更多信息和链接arara

笔记。在 2018 年之前,引号字符"代替了%。这一变化使得在宏中隐藏此类命名法条目变得不可能,因此请小心。

相关内容