注意:关于任何索引生成包的答案都是有益的,例如splitidx
或默认makeidx
。
我见过一些书在目录后面有解释性文字指数标题,但在实际索引列表之前。如何在不手动修改.idx
或.ind
文件的情况下做到这一点?该命令printindex
似乎无法实现。
这是一个足够好但遗憾的是太小的例子:
这是使用该包的 MWE makeidx
。
\documentclass[12pt]{book}
\usepackage{makeidx}\makeindex
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\index{1@One makeidx entry!With a subentry}
%How to put text on the following index page?
\printindex
%Be sure to run: makeindex <filename>
\end{document}
splitidx
下面是使用该包并创建两个索引的MWE :
\documentclass[12pt]{book}
\usepackage[split]{splitidx}\makeindex
\newindex{firstindex}
\newindex{secondindex}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\sindex[firstindex]{1@One splitindex entry!Using firstindex}
\sindex[secondindex]{Another splitindex entry!Using secondindex}
%How to put text on the following index pages?
\printindex[firstindex][A splitindex: firstindex]
\printindex[secondindex][A splitindex: secondindex]
%Be sure to run: makeindex <filename>-firstindex; makeindex <filename>-secondindex
\end{document}
答案1
使用包imakeidx
而不是makeidx
。此包更加强大,并且允许:
使用以下方法在多列中建立索引
\makeindex[columns=n]
之前的文本指数之后标题与
\indexprologue{Text ...}
。此命令必须放在 的前面\printindex
。自动运行
makeindex
。splitindex
由 Markus Kohm提供脚本支持。其描述的其他选项文档。
示例 MWE
\documentclass[12pt]{book}
\usepackage{imakeidx}\makeindex
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\index{1@One entry!With a subentry}~\index{a@Other entry}
\indexprologue{\noindent How to put text on the following index page?}
\printindex
\end{document}
也可以使用此包生成多个索引。在这种情况下,您必须使用选项和在和上splitindex
运行来加载包(如果和是索引的名称)。或者使用或选项自动运行来执行此操作。makeindex
<filename>-firstindex
<filename>-secondindex
firstindex
secondindex
pdflatex
--enable-write18
-shell-escape
笔记:没有必要给所有索引命名(如splitidx
)。只需保留“主”索引的名称,并为其他索引命名。并使用\makeindex
(不带参数)主要的索引)以及\makeindex[name=...,title=...]
其他索引。观察示例
\documentclass[12pt]{book}
\usepackage[splitindex]{imakeidx}
\makeindex
\makeindex[name=secondindex,title=Second Index]
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\index{1@One splitindex entry!Using firstindex}
\index[secondindex]{Another splitindex entry!Using secondindex}
\indexprologue{\noindent How to put text on the following index pages?}
\printindex
\indexprologue{\noindent How to put text on the following index pages in the second index?}
\printindex[secondindex]
%Be sure to run: makeindex <filename>-splitindex; makeindex <filename>-secondindex
%Only if you didn't run pdflatex with the `--enable-write18` option.
\end{document}
因此创建了一个<filename>-splitindex.idx
文件主要的索引和<filename>-secondindex.idx
第二个。主要的index 用于\indexname
索引的标题。
跑步
pdflatex --enable-write18 <filename>
将自动执行此操作。
\documentclass[12pt]{book}
\usepackage[splitindex]{imakeidx}
\makeindex[name=firstindex,title=First Index]
\makeindex[name=secondindex,title=Second Index]
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\index[firstindex]{1@One splitindex entry!Using firstindex}
\index[secondindex]{Another splitindex entry!Using secondindex}
\indexprologue{\noindent How to put text on the following index pages?}
\printindex[firstindex]
\indexprologue{\noindent How to put text on the following index pages in the second index?}
\printindex[secondindex]
%Be sure to run: makeindex <filename>-firstindex; makeindex <filename>-secondindex
\end{document}