헤더 및 imakeidx 2열

헤더 및 imakeidx 2열

내 색인 및 색인 헤더의 레이아웃에 대해 2가지 질문이 있습니다.

  1. no indent first제목과 인덱스 프롤로그 사이의 또는 이 가 no page break1열 인덱스에서는 올바르게 반응하지만 2열 인덱스에서는 올바르게 반응하지 않는 이유를 이해할 수 없습니다 (예제 참조).
  2. headsepline색인 장의 머리 첫 페이지에 표시됩니까? 이곳은 그의 집이 아니다.

이 질문이나 그 중 하나를 해결하도록 도와주실 수 있나요?

감사합니다. 여기 내 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

ps: 나는 그 장을 보았다.imakeidx 남자두 열과 인덱스 프롤로그 간의 충돌에 대해 설명했지만 도움이 되지 않습니다.

예시

답변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하지만 위의 변경 사항이 적용됩니다. 명령에는 \section다른 기계가 수반되므로 이 모든 정보를 함께 유지하기 위해 로컬 매크로가 정의되며 이는 인덱스에 대한 다른 시나리오에 배포됩니다. book또는 에서도 똑같이 잘 작동합니다 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}

관련 정보