Ich habe zwei Fragen zum Layout meiner Indizes und zu meinen Indexüberschriften:
- Ich verstehe nicht, warum das
no indent first
oder dasno page break
zwischen dem Titel und dem Index-Prolog direkt danach in einem einspaltigen Index korrekt reagiert, aber nicht in einem zweispaltigen Index (siehe mein Beispiel); - Warum
headsepline
erscheint das Kapitelverzeichnis auf der ersten Seite? Das ist nicht seine Aufgabe.
Können Sie mir bei der Lösung dieser oder einer dieser Fragen helfen?
Vielen Dank. Hier mein MWE, wo Sie den Unterschied zwischen dem normalen Verhalten des Hauptthemas und dem einspaltigen Index sehen könnengegender zweispaltige Index:
% !TEX encoding = UTF-8 Unicode
% !TEX TS-program = arara
\documentclass{scrbook}
\usepackage[automark,headsepline,markcase=noupper]{scrlayer-scrpage}
\usepackage{imakeidx}
\usepackage{multicol}
\usepackage{lipsum}
\pagestyle{scrheadings}
\indexsetup{level=\section, toclevel=\section, othercode=\footnotesize, headers={\indexname}{\indexname}, firstpagestyle=scrheadings, noclearpage}
\makeindex[title=Index A, columns=2, columnsep=7pt, columnseprule]
\makeindex[name=ici, title=Index B, columns=1]
\begin{document}
\chapter{Lorem Ipsum}
\section{Lorem}\lipsum[1-6]\index{lipsum}\index{lorem}\index{ipsum}
\section{Ipsum}\lipsum[7-12]\index[ici]{lipsum}\index[ici]{lorem}\index[ici]{ipsum}
\addchap{Index}\setcounter{secnumdepth}{0}
\indexprologue{\lipsum[5-7]}\printindex[ici]
\indexprologue{\lipsum[1-4]}\printindex
\end{document}
% arara: xelatex
% arara: makeindex
% arara: xelatex
ps : Ich habe das Kapitel derimakeidx MANNzum Konflikt zwischen zwei Spalten und dem Index-Prolog, aber es hilft mir nicht.
Antwort1
Die Art und Weise, wie imakeindex
der Index in dieser Situation gesetzt wird, ist im Wesentlichen
\section{Index title}
\begin{multicols}{2}[index prologue text\par\bigskip]
index stuff
\end{multicols}
Jede Konstruktion dieser Art hat die Tendenz, einen Seitenumbruch zwischen der Abschnittsüberschrift und dem folgenden Text zuzulassen. Stattdessen kann man den \section
Befehl in das optionale Argument von verschieben multicols
:
\begin{multicols}{2}[\section{Index title}index prologue
text\par\bigskip]
index stuff
\end{multicols}
das Material zusammenhalten. Der folgende Code bietet eine entsprechende Neudefinition von theindex
nach dem Vorbild von imakeidx
, jedoch mit den oben genannten Änderungen. Da der \section
Befehl von anderen Maschinen begleitet wird, wird ein lokales Makro definiert, um all diese Informationen zusammenzuhalten, und dieses wird in den verschiedenen Szenarien für den Index eingesetzt. Es funktioniert gleichermaßen gut in einem book
oder scrbook
.
\documentclass{scrbook}
\usepackage[automark,headsepline,markcase=noupper]{scrlayer-scrpage}
\usepackage{imakeidx}
\usepackage{multicol}
\usepackage{lipsum}
\pagestyle{scrheadings}
\indexsetup{level=\section, toclevel=\section, othercode=\footnotesize, headers={\indexname}{\indexname}, firstpagestyle=scrheadings, noclearpage}
\makeindex[title=Index A, columns=2, columnsep=7pt, columnseprule]
\makeindex[name=ici, title=Index B, columns=1]
\makeatletter
\renewenvironment{theindex}{%
\def\myimki@headercode{%
\imki@maybeaddtotoc
\imki@indexlevel{\indexname}\imki@indexheaders
\thispagestyle{\imki@firstpagestyle}}%
\ifnum\imki@columns>\@ne
\columnsep \imki@columnsep
\ifx\imki@idxprologue\relax
\begin{multicols}{\imki@columns}[\myimki@headercode]
\else
\begin{multicols}{\imki@columns}[\myimki@headercode\imki@idxprologue]
\fi
\else
\myimki@headercode
\imki@idxprologue
\fi
\global\let\imki@idxprologue\relax
\parindent\z@
\parskip\z@ \@plus .3\p@\relax
\columnseprule \ifKV@[email protected]\p@\else\z@\fi
\raggedright
\let\item\@idxitem
\imki@othercode}
{\ifnum\imki@columns>\@ne\end{multicols}\fi
}
\makeatother
\begin{document}
\chapter{Lorem Ipsum}
\section{Lorem}\lipsum[1-6]\index{lipsum}\index{lorem}\index{ipsum}
\section{Ipsum}\lipsum[7-12]\index[ici]{lipsum}\index[ici]{lorem}\index[ici]{ipsum}
\addchap{Index}\setcounter{secnumdepth}{0}
\indexprologue{\lipsum[5-7]}\printindex[ici]
\indexprologue{\lipsum[1-4]}\printindex
\end{document}