我正在尝试使用以下代码进行索引:
\documentclass[a4paper]{article}
\usepackage{index}
\makeindex
\newindex{aut}{adx}{and}{Name Index}
\begin{document}
Hellow \index[aut]{FiRST}
\printindex[aut]
\end{document}
根据文件index
包应该可以工作。但是 makeindex 创建了空的.idx
和.ind
。
如果我运行这样的代码:
\documentclass[a4paper]{article}
\usepackage{index}
\makeindex
\begin{document}
Hellow \index{FiRST}
\printindex
\end{document}
它可以运行。但我需要有用户定义的索引。
请帮助我。我在网上搜索了几个小时,但没有成功。
答案1
由于您使用了\newindex
第二个参数adx
和第三个参数and
,因此生成的文件将没有默认扩展名.idx
和.ind
;在这种情况下,关联文件的扩展名将是.adx
和.and
。
使用 的设置,您需要按以下方式\newindex
处理文档(我假设它被称为):运行,然后以特殊方式:doc.tex
pdflatex
makeindex
makeindex -o doc.and doc.adx
再pdflatex
一次。
例如,在下一个示例文档中,定义了三个新索引:
\documentclass[a4paper]{article}
\usepackage{index}
\makeindex
\newindex{aut}{adx}{and}{Authors}
\newindex{fru}{fdx}{fnd}{Fruits}
\newindex{mam}{mdx}{mnd}{Mammals}
\begin{document}
\index[aut]{Cervantes}
\index[aut]{Shakespeare}
\index[fru]{Orange}
\index[fru]{Pineapple}
\index[mam]{Horse}
\index[mam]{Whale}
\printindex[aut]
\printindex[fru]
\printindex[mam]
\end{document}
使用以下方法处理文档(我们再次称之为doc.tex
)
pdflatex doc
makeindex -o doc.and doc.adx
makeindex -o doc.mnd doc.mdx
makeindex -o doc.fnd doc.fdx
pdflatex doc
给出三个指标:
前一段时间,埃格尔写了一篇关于构建索引的精彩博客文章。我相信您阅读后会受益匪浅:(Don't) forget to run MakeIndex
。具体来说,你可以忘记 的旧时代MakeIndex
,改用 现代时代imakeidx
答案2
egreg 知道像我这样的人在运行额外命令时很懒惰/无知 ;-) 这就是为什么他们编写了imakeidx
利用--shell-escape
功能并makeindex/xindy
自动运行的代码。因此人们可以(never) forget to run MakeIndex
。这是一个例子(我相信通过例子来学习)。用pdflatex
(就这样,自己尝试一下),你就会得到你的索引(其中四个)。
\documentclass[a4paper]{article}
\usepackage{imakeidx}
\makeindex
\makeindex[name=aut,title=Authors,columns=3] %% Define new index of Authors
\makeindex[name=fru,title=Fruits] %% Define new index of Fruits
\makeindex[name=mam,title=Mammals] %% Define new index of Mammals
\begin{document}
Here is some text\index{some thing}.
\index[aut]{Cervantes}
\index[aut]{Shakespeare}
\index[aut]{Shaw}
\index[fru]{Orange}
\index[fru]{Pineapple}
\index[mam]{Horse}
\index[mam]{Whale}
\printindex
\printindex[aut]
\printindex[fru]
\printindex[mam]
\end{document}