自动将 \begin{multicols}{N} 添加到章节

自动将 \begin{multicols}{N} 添加到章节

我正在尝试创建一个 3 列的书籍布局。到目前为止,我发现的唯一获得 3 列的方法是使用 venerable 包multicol,效果很好。

\chapter{Something Kant Said}
\begin{multicols*}{3}
\kant
\end{multicols}

我想要做的是设置 \chapters 的样式,使其multicols自动在正确的位置开始和结束。LaTeX 有这样的功能吗?

答案1

以下是一种方法:

\documentclass{book}
\usepackage{etoolbox}
\usepackage{multicol}
\usepackage{kantlipsum}
\newif\iffirst
\makeatletter
\appto{\mainmatter}
{\firsttrue
\preto{\chapter}{\iffirst\firstfalse\else\end{multicols*}\fi}
\preto{\enddocument}{\end{multicols*}}
\apptocmd{\@makechapterhead}{\begin{multicols*}{3}}{}{}
\apptocmd{\@makeschapterhead}{\begin{multicols*}{3}}{}{}
}
\makeatother
\begin{document}
\frontmatter
\tableofcontents
\mainmatter
\chapter{A chapter}
\kant
\chapter{A chapter}
\kant
\chapter{A chapter}
\kant
\end{document}

相关内容