章節開頭的文字區域變窄

章節開頭的文字區域變窄

我想更改章節開頭頁面。設定一個狹窄的文字區塊,並將章節名稱放在寬的內邊距中。我正在使用“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}

這就是你想要的,但是需要手動中斷

注意:使用 hookscmd/<cmdname>/beforeshipout/after需要或多或少最新的 LaTeX。

相關內容