索引中的数学符号(makeindex)

索引中的数学符号(makeindex)

我想在我的索引中包含以下符号(使用 makeindex):

$\| \cdot \|_X$

我尝试了很多,但都不起作用,它不会显示。我试过:

Test\index{Norm!1@$|| \cdot ||$}
Test2\index{Norm!1@$1_X$}
Test3\index{Norm!1@$\| \cdot \|_X$}

当我尝试时,这些命令都不起作用

Test3\index{Norm!1@$Test$}

它可以工作。我哪里做错了?有人能给我展示一个可以显示这些符号的代码吗?谢谢。

答案1

该字符|对于 MakeIndex 来说是特殊的,因此您需要对其进行转义。

\documentclass{article}
\usepackage{imakeidx}

\makeindex

\begin{document}

Test\index{Norm!1@$"|"| \cdot "|"|$}
Test2\index{Norm!1@$1_X$}
Test3\index{Norm!1@$"\"| \cdot "\"|_X$}

\printindex

\end{document}

.ind文件将包含

\begin{theindex}

  \item Norm
    \subitem $1_X$, 1
    \subitem $\| \cdot \|_X$, 1
    \subitem $|| \cdot ||$, 1

\end{theindex}

但是,不要将其用作||常态。

输入规范的更好方法是mathtools

\documentclass{article}
\usepackage{amsmath,mathtools}
\usepackage{imakeidx}

\makeindex

\DeclarePairedDelimiter{\norm}{\lVert}{\rVert}
\newcommand{\blank}{{\;\cdot\;}}

\begin{document}

Test\index{Norm!1@$\norm{\blank}$}

\printindex

\end{document}

在此处输入图片描述

(我添加了一些虚拟条目以避免两行索引。)

答案2

我尝试了第一个 MWE埃格尔但发现了一些缺点。我无法将hyperref和结合起来imakefile

考虑这个索引命令

  \index{$"\"| \cdot"\"|_Y$! the norm on space \(Y\)}

如果hyperref 之前已加载 imakeidx,则索引不使用智能链接。

如果imakeidx在此之前加载hyperref,则.idx文件包含

\indexentry{$"\"|hyperindexformat{\ \cdot"\"}}{4}

这失败了

为了解决这个问题,我在索引命令中使用了unicode字符(即U+2016 DOUBLE VERTICAL LINE

\index{$‖ \cdot ‖_Y$! the norm on space \(Y\)}

因此.idx文件包含

\indexentry{$‖\cdot‖_X$! the norm on space \(X\)|hyperpage}{4}

这(当然)需要使用xelatexlualatex,就像在这个 MWE 中一样

\documentclass{article}
\usepackage{makeidx}
\makeindex
\usepackage{hyperref}
\usepackage{polyglossia}
\usepackage{fontspec}
\begin{document}
\index{$‖ \cdot ‖_Y$! the norm on space \(Y\)}
\printindex
\end{document}

如果你不喜欢unicode,你可以\Vert使用

PS:第二个 MWE 可以egreg很好地工作hyperref,但我不想在\norm命令内重新包装所有规范。在我看来,$‖ \cdot ‖_Y$这更具可读性。

相关内容