ヘッダーと imakeidx 2 列

ヘッダーと imakeidx 2 列

インデックスとインデックス ヘッダーのレイアウトについて 2 つの質問があります。

  1. タイトルと直後の索引プロローグの間にあるno indent firstまたは が、1 列の索引では正しく反応するのに、2 列の索引では正しく反応しないのはなぜかわかりません(私の例を参照) 。no page break
  2. なぜheadsepline章索引の最初のページに現れるのでしょうか? ここは彼の居場所ではありません。

これらの質問、またはそのうちの 1 つを解決するのを手伝ってもらえますか?

ありがとうございます。ここに私のMWEがあります。メインマターと1列インデックスの通常の動作の違いを確認できます。2列のインデックス:

% !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

追伸:私はの章を見ましたimakeidx 男2 列とインデックス プロローグ間の競合についてですが、役に立ちません。

例

答え1

imakeindexこのような状況で索引をタイプセットする方法は、基本的に

\section{Index title}
\begin{multicols}{2}[index prologue text\par\bigskip]
  index stuff
\end{multicols}

この形式の構造では、セクションの見出しとそれに続くテキストの間に改ページが入る傾向があります。代わりに、\sectionコマンドを のオプションの引数に移動することができますmulticols

\begin{multicols}{2}[\section{Index title}index prologue
  text\par\bigskip]
  index stuff
\end{multicols}

資料をまとめます。以下のコードは、のバージョンをtheindexモデルにしたの対応する再定義を提供しますが、上記の変更が反映されています。 コマンドには他の機械が伴うため、このすべての情報をまとめておくためにローカル マクロが定義され、インデックスのさまざまなシナリオで展開されます。またはでも同様に機能します。imakeidx\sectionbookscrbook

サンプル出力

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

関連情報