我正在尝试编写一本包含多个索引的书。我正在使用带有 splitindex 的 indextools 包。我需要修改索引分隔符,因此我创建了一个包含以下内容的 .ist 文件:
delim_0 ": \\ "
delim_1 ": \\ "
delim_2 ": \\ "
这也是我的功能示例:
\documentclass[a4paper,11pt,twoside,openright]{scrbook}
\usepackage[makeindex,splitindex]{indextools}
\makeindex[
name=person,
title=INDEX of Persons,
program=makeindex,
options={-s idxconf.ist},
]
\makeindex[
name=word,
title=Index of Words,
program=makeindex,
options={-s idxconf.ist},
]
\usepackage{blindtext}
\begin{document}
Einstein\index[person]{Einstein}
\blindtext
\newpage
Heisenberg\index[person]{Heisenberg} % Person index
\blindtext[3]
\index[word]{foo}\index[person]{Bohr}
\index[word]{bar}
\blindtext
\printindex[person]
\printindex[word]
\end{document}
我正在将 Mactex 与 Texlive 一起使用,分隔符没有改变。在 Windows PC 上编译的相同代码运行良好。有没有办法让它在 Mac 上运行?
答案1
要完成这个问题:正如 Dan 和 egreg 在评论中指出的那样,您需要确保(1)--shell-escape
在运行 LaTeX 时使用该选项,并且(2)-file.ist
与 -file 保存在同一个文件夹中.tex
。
另外两点:
(1) 您需要,--shell-escape
因为您正在调用外部程序。一些信息:--shell-escape 起什么作用?
(2):建议将这三行包装idxconf.ist
在环境中filecontents
,以便.ist
下次使用配置另一个文档的索引时文件不会散乱。
\documentclass[a4paper,11pt,twoside,openright]{scrbook}
\usepackage[makeindex,splitindex]{indextools}
\makeindex[
name=person,
title=INDEX of Persons,
program=makeindex,
options={-s idxconf.ist},
]
\makeindex[
name=word,
title=Index of Words,
program=makeindex,
options={-s idxconf.ist},
]
\usepackage{blindtext}
\begin{filecontents}{idxconf.ist}
delim_0 ": \\ "
delim_1 ": \\ "
delim_2 ": \\ "
\end{filecontents}
\begin{document}
Einstein\index[person]{Einstein}
\blindtext
\newpage
Heisenberg\index[person]{Heisenberg} % Person index
\blindtext[3]
\index[word]{foo}\index[person]{Bohr}
\index[word]{bar}
\blindtext
\printindex[person]
\printindex[word]
\end{document}