首先,我对 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
,您将在前三个索引中获得序言,但在第四个索引中不会获得序言。