챕터 오프너의 좁은 텍스트 영역

챕터 오프너의 좁은 텍스트 영역

챕터 시작 페이지를 변경하고 싶습니다. 좁은 텍스트 블록을 설정하고 넓은 내부 여백에 장 이름을 배치합니다. 저는 "koma-script" 클래스를 사용하고 있습니다.

페이지 예

+--------------+--------------+
|              | title  xxxxx |
|              |        xxxxx |
|              |        xxxxx |
|              |        xxxxx |
|              |        xxxxx |
|              |        xxxxx |
|              |        xxxxx |
+--------------+--------------+

\documentclass{scrbook}
\usepackage{lipsum}
\usepackage{marginnote}
\usepackage{multicol}
\RedeclareSectionCommand[beforeskip=0pt]{chapter}

\begin{document}
\begin{multicols}{2}
\chapter{Introduction}
\vfill\null
\columnbreak
\lipsum
\end{multicols}
\lipsum

\end{document}

간단하지만 만족스러운 솔루션입니다. 2페이지의 레이아웃을 1열로 자동 변경할 수 있나요?

답변1

자동으로 2열 모드로 전환하고 장 제목을 왼쪽 열에 배치하는 것은 주요 문제가 아닙니다. 챕터 페이지 이후에 1열 모드로 다시 전환하는 것조차 실제 문제는 아닙니다.

\documentclass{scrbook}
\usepackage{lipsum}
\RedeclareSectionCommand[beforeskip=0pt,afterindent=false,style=section]{chapter}
\newif\ifafterheadingnewpage
\AddToHook{cmd/@afterheading/before}{\ifafterheadingnewpage\newpage\afterheadingnewpagefalse\fi}
\AddToHook{cmd/chapter/before}{\twocolumn\afterheadingnewpagetrue}
\AddToHook{shipout/after}{\onecolumn}

\begin{document}
\chapter{Introduction}
\lipsum

\end{document}

하지만 보시다시피:

당신이 원하는 게 아니야

진짜 문제는 TeX이 이미 조판되었고 부분적으로(또는 완전히) 다음 페이지로 이동된 단락의 너비를 변경하지 않는다는 것입니다. 따라서 장 페이지에 맞는 부분과 한 열 페이지에 인쇄되어야 하는 부분에 이러한 단락을 직접 뱉어내야 합니다.

\documentclass{scrbook}
\usepackage{lipsum}
\RedeclareSectionCommand[beforeskip=0pt,afterindent=false,style=section]{chapter}
\newif\ifafterheadingnewpage
\AddToHook{cmd/@afterheading/before}{\ifafterheadingnewpage\newpage\afterheadingnewpagefalse\fi}
\AddToHook{cmd/chapter/before}{\twocolumn\afterheadingnewpagetrue}
\AddToHook{shipout/after}{\onecolumn}

\begin{document}
\chapter{Introduction}
\lipsum[1-2]

Nulla malesuada porttitor diam. Donec
felis erat, congue non, volutpat at, tinci-
dunt tristique, libero. Vivamus viverra fer-
mentum felis. Donec nonummy pellentes-
que ante. Phasellus adipiscing semper elit.
Proin fermentum massa ac quam. Sed diam
turpis, molestie vitae, placerat a, molestie
nec, leo. Maecenas lacinia. Nam ipsum
ligula, eleifend at, accumsan nec, suscipit
{\parfillskip0pt\newpage}%
\noindent
a, ipsum. Morbi blandit ligula feugiat ma-
gna. Nunc eleifend consequat lorem. Sed
lacinia nulla vitae enim. Pellentesque tin-
cidunt purus vel magna. Integer non enim.
Praesent euismod nunc eu purus. Donec
bibendum quam in tellus. Nullam cursus
pulvinar lectus. Donec et mi. Nam vulpu-
tate metus eu enim. Vestibulum pellentes-
que felis eu massa.

\lipsum[4-7]
\end{document}

이것이 당신이 원하는 것이지만 수동 중단을 사용하면

참고: 후크를 사용 cmd/<cmdname>/before하려면 shipout/after다소 최신 LaTeX가 필요합니다.

관련 정보