如何转义 \index 中的 | 字符?

如何转义 \index 中的 | 字符?

虽然|encap的字符makeindex,但是如果我想|在 中使用\index,例如\index{$|F|$},该如何转义它?

当我用双引号将其转义(即\index{$"|F"|$},并使用)时hyperref,*.idx 文件将如下所示

\indexentry{$"|hyperindexformat{\F"}}{1}

这会导致错误。

答案1

理论上,对于 MakeIndex 来说特殊的字符,例如,!应该用 引起来。然而,这在使用时会造成混淆。|@"hyperref|

解决方法很简单:

\index{$\vert F\vert$}

或者更好的是,加载amsmath并使用按字母顺序排列的字符串:

\index{Fabs@$\lvert F\rvert$}

无论如何,建议使用\lvert和。\rvert

您还可以加载mathtools并执行

\DeclarePairedDelimiter{\abs}{|}{|}

并使用$\abs{F}$(查看包文档以获取更多信息)。

\abs策略更好的另一个原因是:如果\index出现在另一个命令的参数中,例如

\newcommand\keyword[1]{\underline{\bfseries #1}\index{#1}}

然后被称为

\keyword{$\vert F\vert$}

命令\vert被扩展(参见按出现次数排序的符号索引类似情况)。如果使用\abs,则不会发生这种情况。

注意:\bf是弃用的命令;我更改了您在评论中显示的定义,以符合推荐的做法。

相关内容