我想更改章节开头页。设置一个较窄的文本块,并将章节名称放在较宽的内边距中。我使用的是“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。