对于此 MWE,请在 Windows 10 上的 TexLive 2020 中使用 xelatex 运行:
\documentclass{article}
\usepackage{makeidx}
\usepackage{hyperref}
\makeindex
\begin{document}
\index{foo} % OK, but without this line, the .idx file is empty
\index{Sibelius!Difference between Sibelius "| First and Sibelius "| Ultimate}
\printindex
\end{document}
该.idx
文件(如下所示)是错误的。显然某些东西错误地将第二个文件解释"|
为"
字符后跟页码格式化|
命令。
\indexentry{foo|hyperpage}{1}
\indexentry{Sibelius!Difference between Sibelius "|hyperindexformat{\ First and Sibelius "}}{1}
makeindex
然后给出错误信息
!! Input index error (file = test.idx, line = 2):
-- Incomplete first argument (premature LFD).
(注:在我看来,一家软件公司决定将一个应用程序的三个版本命名为“Sibelius”、“Sibelius | First”和“Sibelius | Ultimate”,并使用如图所示的竖线字符和空格,这是很愚蠢的,但这就是他们所做的!)
答案1
相当不幸,但另一方面|
不一定会打印一条条形图。
\documentclass{article}
\usepackage{imakeidx}
\usepackage{hyperref}
\makeindex
\begin{document}
x % something to make the index entry to be processed
\index{foo} % OK, but without this line, the .idx file is empty
\index{a}\index{b}\index{c}\index{d}
\index{Sibelius!Difference between Sibelius~\textbar~First and Sibelius~\textbar~Ultimate}
\printindex
\end{document}