为什么 makeindex 在脚注中输入了虚假的空格?

为什么 makeindex 在脚注中输入了虚假的空格?

我想$r_{\infty}$在索引中添加一个条目。当我在脚注中提到它时,会添加一个空格 ( $r_{\infty }$)。这会导致索引中有多个条目。

以下是重现该错误的最小工作代码:

\documentclass[a4paper,10pt]{article}
\usepackage[utf8x]{inputenc}

\usepackage{amsmath}

\usepackage{makeidx} 

\makeindex

\begin{document}

This is a sentence. And this sentence will have a
 footnote after its period.\footnote{This is a footnote,
 and we want to mention $r_{\infty}$.%
\index{$r_{\infty}$}\index{r@$r_{\infty}$}
Also the corresponding index entries have been done inside the footnote.
}% end footnote

\index{$r_{\infty}$}
\index{r@$r_{\infty}$}

\printindex
\end{document}

答案1

脚注是一种“移动论点”——它被保存起来以便在其他地方使用。

发生这种情况时,脚注的内容会扩展,字母控制序列的文本后面会有一个空格。(换句话说,“ \infty”最终会变成“ \infty”。)通常,这并不重要。但是,当将术语写出来以便分类到索引中时,空格没关系,因为索引排序是简单的 ascii,而中间有额外空格的字符串将单独排序。

\string可以通过在受影响的控制序列前加上.来避免空格 (\protect此处不起作用),因此本例中的索引条目可以输入为(在脚注中)

\index{$r_{\string\infty}$}\index{r@$r_{\string\infty}$}

然后它们将与“正常”的一起排序。

(我赞赏你为这个表达式做了两个条目。这将确保有人能真正寻找索引中的概念。

相关内容