我在 Mac 上使用 LaTeX,使用 TeXShop。可以从 TeXShop 界面编译索引,除非我对同一篇文章有多个索引(例如,人物和概念)。在这种情况下,我过去常常从终端编译它:
makeindex MyIndex
说。但是自从我从 Mac OS 10.5 升级到 10.6 (Snow Leopard) 后,后者就不再起作用了(尽管 TeXShop 内部的正常单索引编译工作正常)。有什么想法吗?
答案1
以下答案是根据评论汇编而成的,以便我们可以将该问题从“未回答”列表中删除。
您所描述的问题典型地表明您的 shell 配置文件存在路径问题。要确定您是否能够makeindex
从命令行运行该命令,您可以执行以下操作:
which makeindex
这应该返回:/usr/texbin/makeindex
。如果没有,并且不返回任何内容,则表示未找到您的 TeX 二进制文件。(TeXShop 可以找到它们,因为它为所有命令设置了自己的路径。)
要查看你的路径,你可以输入:
echo $PATH
这应该返回包含的内容/usr/texbin
;如果没有,您需要在.profile
或.bashrc
文件中修复它。
如果你使用的是 MacTeX 2008,那么你有一个真的旧发行版。我强烈建议您更新至 MacTeX 2011。
正如 egreg 指出的那样,对于多个索引,包imakeidx
很有用,因为它可以自动运行makeindex
。(他是 的作者imakeidx
。)
答案2
添加行
% !TEX TS-program = latexmk
在你的 .tex 文件顶部,并使用 LaTeX 引擎进行编译。(在 TeXShopTypeset
已LaTeX
选择。
以下是一个示例和 3 页的输出。
% !TEX TS-program = latexmk
\documentclass[12pt]{article}
\usepackage{multind}
\makeindex{indexA}
\makeindex{indexB}
\begin{document}
I use LaTeX on a \index{indexA}{Mac}Mac, using \index{indexB}{TeXShop}TeXShop. It is possible
to compile an \index{indexA}{index}index from within the \index{indexB}{TeXShop}TeXShop
interface, except when I have more than one \index{indexA}{index}index (say, people and
concepts) for the same text. In this case I used to compile it from Terminal:
makeindex MyIndex
say. But since I went from Mac OS 10.5 to 10.6 (Snow Leopard), the latter does not work
anymore (albeit normal, single-index compilation from within \index{indexB}{TeXShop}TeXShop
works fine). Any idea?
\printindex{indexA}{Index A}
\printindex{indexB}{Index B}
\end{document}
输出的第 1 页:
输出的第 2 页:
输出的第 3 页: