![如何转义 \index 中的 | 字符?](https://linux22.com/image/290402/%E5%A6%82%E4%BD%95%E8%BD%AC%E4%B9%89%20%5Cindex%20%E4%B8%AD%E7%9A%84%20%7C%20%E5%AD%97%E7%AC%A6%EF%BC%9F.png)
虽然|
是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
是弃用的命令;我更改了您在评论中显示的定义,以符合推荐的做法。