为什么makeidx和imakeidx忽略绝对值和范数?

为什么makeidx和imakeidx忽略绝对值和范数?

请参阅以下最小工作示例

\documentclass{article}
\usepackage{amsmath,amssymb,amsfonts,amsthm}
\usepackage{imakeidx}
\makeindex
\begin{document}
Hello world
\index{A@$A$ without norm of $A$}
\index{lAl@$|A|$ norm of $A$}
\printindex
\end{document}

我的问题是 imakeidx 和 makeidx 都忽略了索引中的绝对值和范数。如果运行此示例,您将看到出现绝对值的索引被 makeidx 忽略,并且不会出现在最后的索引中。但我正在创建符号索引,因此这是必不可少的。我该如何让它工作?

答案1

它不会被忽略,它是 makeindex log(ilg)文件中报告的语法错误

!! Input index error (file = file.idx, line = 2):
   -- Extra `|' at position 8 of first argument.

默认情况下,|是用于将格式应用于输出的特殊字符,您需要引用|或使用 makeindex 样式将其他字符指定为转义字符。

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath,amssymb,amsfonts,amsthm}
\usepackage{imakeidx}
\makeindex
\begin{document}
Hello world
\index{A@$A$ without norm of $A$}
\index{lAl@$"|A"|$ norm of $A$}
\printindex
\end{document}

答案2

作为大卫卡莱尔的答案的替代,使用\lvert ... \rvert将避免语法错误。

(抱歉,我无法提供代码或图像;我所在的平台没有可用的 tex。)

相关内容