Узкая текстовая область в начале главы

Узкая текстовая область в начале главы

Я хотел бы изменить начальную страницу главы. Создайте узкий блок текста и поместите название главы в широком внутреннем поле. Я использую класс "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

Автоматическое переключение в двухколоночный режим и размещение заголовка главы в левой колонке не является основной проблемой. Даже переключение обратно в одноколоночный режим после страницы главы не является настоящей проблемой:

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

Связанный контент