imakeidx 未定义控制序列

imakeidx 未定义控制序列

我正在使用imakeidx为我的报告创建多个索引,但遇到了一个问题,当我尝试编译时,我收到“未定义的控制序列”错误。问题如下所示。 未定义控制序列错误

当我打开指定的.ind文件时,我看到了这一点。 IND 文件内容

考虑到我以前从未担心过.ind文件,所以我没有修改此文件。生成该索引条目的代码在这里。 TEX 文件内容

我不太确定这个声明有什么问题,因为我imakeidx以前从未遇到过这个问题。

答案1

|这里的问题是写入条目的字符串中存在\index

在索引条目中具有|特殊功能:它替代(并被解释为)与索引过程相关的命令的反斜杠,例如\see(输入为|see\index{...}或表示页面跨度的“括号”|(|)

在索引条目中输入该字符的正确方法取决于它是数学还是文本。

在文本中,|可以通过在 a 前面加上 ditto 标记来“引用”:"|

在数学中,正确的替换是\vert,或者,如果出现在索引输出中的字符串是||,那么\Vert。由于它们通常是成对的,\lvert ... \rvert所以或\abs{...}(或双重形式的等价物)通常更合适。

答案2

Barbara Beeton 指出(https://tex.stackexchange.com/a/326635/220244) | 在索引条目中具有特殊功能,从而导致了问题。

例如,如果

\index(maintopic!subtopic) 

拼写错误为

\index(maintopic|subtopic) 

相关内容