为了创建索引我目前包括
\usepackage{makeidx}
\usepackage{index}
\makeindex
[...] \index{...} [...]
\printindex
放入文档中(并makeindex
在编译之间运行)。不久前有人告诉我这是创建索引的方法。
因此,我想知道是否有一些更现代、更灵活的方法来实现这一点(类似于 BibLaTeX 是 BibTeX 的现代替代品)。特别是,是否有方法可以为调用添加一些样式选项\printindex
。目前,我必须创建一个索引样式文件或补丁theindex
才能\MakeUppercase
从\markboth
索引中删除。
如果很重要的话,我通常会使用 KOMA-Script 类。
答案1
如果您使用 调用 LaTeX,该imakeidx
包将在 LaTeX 编译中调用makeindex
(或,或其他索引编译器) 。它还允许您将选项传递给。xindy
-shell-escape
\makeindex
至于样式,您可以使用.ist
文件并将它们作为参数(-s
标志)传递给makeindex
(或者作为选项传递给(\makeindex
如果使用imakeidx
))。
文件中可以放入的字段.ist
如下:在手册页中。但它并不是万能的。就我而言,我必须在两次 LaTeX 调用之间使用 sed(我知道,我感到很惭愧)才能得到我想要的结果。
这是.ist
我正在使用的示例文件:
% Dotfill style
delim_0 "\\dotfill "
delim_1 "\\dotfill "
delim_2 "\\dotfill "
% M-dash style
%delim_0 "\\ocadr"
%delim_1 "\\ocadr "
%delim_2 "\\ocadr "
% Force subitems to be raggedleft when they overflow the line
% and make sure to keep items raggedright
item_0 "\n \\item\\raggedright"
item_1 "\n \\subitem\\raggedleft"
% When using Old/New Testament parts in index
% Make them scshape
preamble "\\begin{multicols}{2}
\\makeatletter
\\let\\item\\@idxitem\\scshape
\\makeatother"
postamble "\\end{multicols}"
正如您所见,您已经可以用它做很多事情。
正如 Thorsten 所提到的,您还可以使用idxlayout
包,它控制一些其他参数(例如段落长度、列长度等)。imakeidx
和都idxlayout
与 Koma-Script 类兼容(我正在使用imakeidx
)scrbook
并且彼此兼容。