imakeidx:如何输入数学符号?

imakeidx:如何输入数学符号?

我有一个索引中带有数学符号的文件,它可以通过组合来正常工作,imakeidx/makeindex但将其恢复为imakeidx/xindy它却不起作用:

\documentclass{article}

%\usepackage[makeindex]{imakeidx}
%\makeindex

\usepackage[texindy]{imakeidx}
\makeindex

\begin{document}

\section{Introduction}

angle\index{angle}
$\alpha$\index{$\alpha$}

\printindex
\end{document}

处理后xelatex -shell-escape file.tex我们得到:

Processing index...
ERROR: CHAR: index 0 should be less than the length of the string
system returned with code 256

我需要继续使用,texindy因为索引条目使用 UTF-8 排序,带有重音字符。手册似乎表明makeindex和可以互换,并且没有提到在索引条目中输入数学符号的任何内容,因此输入符号的这种差异有点令人惊讶。那么在带有xindy的索引条目中输入数学符号的正确方法是什么?imakeidxtexindy

答案1

texindy不接受非字母字符作为排序键 - 这本身就是一个悲剧,因为 texindy 接受语言和代码页作为参数......所以您必须提供排序键,如下所示:

 \index{alpha@$\alpha$}

如果你用英语写作,

 \index{alfa@$\alpha$}

如果您用葡萄牙语书写。如果非字母部分位于需要排序的子索引中,那么您也需要在那里放置排序键,如下所示:

  \index{function!psi@$\psi$}

相关内容