使用 makeindex 获取索引中的前言

使用 makeindex 获取索引中的前言

首先,我对 Ubuntu 不是很在行,只能用LaTeX

我目前正在完成我的论文,并且有一个大问题。我使用 制作了两个索引multind。但我不知道如何在索引中写一个序言,即在标题Index和索引开头之间的内容。

我尝试安装 idxlayout 和 imakeidx,但都不起作用。我应该以某种方式获取新软件包,但将它们安装在 mu current tex 文件夹中不起作用,我不知道如何以其他方式继续

那么:有人知道如何写序言吗multind?我可以给出 MWE,但我认为这在这种情况下不会有帮助...

 \documentclass{article} 
    \usepackage{splitidx} 
    \makeindex 
    \newindex[General Index]{idx} 
    \newindex[Index of Animals]{ani} 
    \newindex[Index of Fruits]{fru} 
    \newindex[Index of Vegetables]{veg} % ... 4th index 

    \begin{document} 
Apples\sindex[fru]{apple} and oranges\sindex[fru]{orange} are fruits\sindex{fruits}. 
Tomatoes\sindex[veg]{tomato} are vegetables\index{vegetables}. 
Cats\sindex[ani]{cat} are animals\sindex[idx]{animals}. 
    \printindex* 
    \end{document}

在此之后,当我按照提示运行“splitidx.pl”时,却找不到它……

我现在工作完美!

还有一个问题:我的文本大约有 600 页,有数千个索引引用,我担心用 \sindex[] 替换 \index{} 可能会破坏内容。我在另一个回答中看到您建议:

\let\imkiindex\index
\renewcommand\index[1]{\imkiindex[#1]}

但这只会影响“[]”->“{}”,而不会影响 sindex 部分?这有效吗:

\let\imkiindex\index
\renewcommand\sindex[1]{\imkiindex[#1]} ?

答案1

有几种方法可以添加序言。与splitidx包配合使用的一种方法是稍微改变环境的定义theindex以容纳序言:

\documentclass{article}
\usepackage{splitidx}

\makeatletter
\renewenvironment{theindex}
 {\if@twocolumn
    \@restonecolfalse
  \else
    \@restonecoltrue
  \fi
  \twocolumn[\section*{\indexname}%
    %%% ADDED
    \this@index@prologue\global\let\this@index@prologue\relax
    %%%
    ]%
  \@mkboth{\MakeUppercase\indexname}%
          {\MakeUppercase\indexname}%
  \thispagestyle{plain}\parindent\z@
  \parskip\z@ \@plus .3\p@\relax
  \columnseprule \z@
  \columnsep 35\p@
  \let\item\@idxitem}
 {\if@restonecol\onecolumn\else\clearpage\fi}
\newcommand{\indexprologue}[1]{\gdef\this@index@prologue{#1\par\bigskip}}
\let\this@index@prologue\relax
\makeatletter

\makeindex 
\newindex[General Index]{idx} 
\newindex[Index of Animals]{ani} 
\newindex[Index of Fruits]{fru} 
\newindex[Index of Vegetables]{veg} % ... 4th index 

\begin{document} 

Apples\sindex[fru]{apple} and oranges\sindex[fru]{orange} are fruits\sindex{fruits}. 
Tomatoes\sindex[veg]{tomato} are vegetables\index{vegetables}. 
Cats\sindex[ani]{cat} are animals\sindex[idx]{animals}. 

\indexprologue{General index}
\printindex[idx]

\indexprologue{This is the index of animals}
\printindex[ani]

\indexprologue{This is the index of fruits}
\printindex[fru]

\printindex[veg] % no prologue for vegetables

\end{document}

如果您使用 编译它pdflatex,运行该splitindex程序,然后重新运行pdflatex,您将在前三个索引中获得序言,但在第四个索引中不会获得序言。

相关内容