我有一个索引中带有数学符号的文件,它可以通过组合来正常工作,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
的索引条目中输入数学符号的正确方法是什么?imakeidx
texindy
答案1
texindy
不接受非字母字符作为排序键 - 这本身就是一个悲剧,因为 texindy 接受语言和代码页作为参数......所以您必须提供排序键,如下所示:
\index{alpha@$\alpha$}
如果你用英语写作,
\index{alfa@$\alpha$}
如果您用葡萄牙语书写。如果非字母部分位于需要排序的子索引中,那么您也需要在那里放置排序键,如下所示:
\index{function!psi@$\psi$}