Überschriften und imakeidx zweispaltig

Überschriften und imakeidx zweispaltig

Ich habe zwei Fragen zum Layout meiner Indizes und zu meinen Indexüberschriften:

  1. Ich verstehe nicht, warum das no indent firstoder das no page breakzwischen dem Titel und dem Index-Prolog direkt danach in einem einspaltigen Index korrekt reagiert, aber nicht in einem zweispaltigen Index (siehe mein Beispiel);
  2. Warum headseplineerscheint 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.

Beispiel

Antwort1

Die Art und Weise, wie imakeindexder 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 \sectionBefehl 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 theindexnach dem Vorbild von imakeidx, jedoch mit den oben genannten Änderungen. Da der \sectionBefehl 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 bookoder scrbook.

Beispielausgabe

\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}

verwandte Informationen