frontcontent 为一栏 body content 为三栏

frontcontent 为一栏 body content 为三栏

我希望frontmatter应该在单列(一列)中。\maketitle内容应该在后面3 columns。如何在 LaTeX 类文件中进行控制?

我的 LaTeX 文件:

\documentclass{owns}
\begin{document}
\title{Book Title}
\author{Balaji, K.\/}
\maketitle
\begin{multicols}{3}
...
\end{multicols}
\end{document}

类文件代码为:

\def\@maketitle{%
\newpage
\null
\vskip 2em%
\begin{center}%
\let \footnote \thanks
{\LARGE \@title \par}%
\vskip 1.5em%
{\large
\lineskip .5em%
\begin{tabular}[t]{c}%
\@author
\end{tabular}\par}%
\vskip 1em%
{\large \@date}%
\end{center}%
\par
\vskip 1.5em
\begin{multicols}{3}  
}

\AtEndDocument{\end{multicols}}

但它不起作用。如何实现这一点?

答案1

如果您想要multicols在后台应用而不是将其作为环境添加到文档主体,那么您需要确保它在 之后自动启动\maketitle并在 之前关闭\end{document}

您尝试使用的\AtEndDocument方式没有问题,但您放置\begin{multicols}{3}inside的位置\@maketitle是错误的。我不知道\maketitle您的“owns”类中的代码是什么样子,但如果它是按照标准类中的定义建模的,book.cls那么假设\@maketitleinside 在组内被调用,然后会产生错误。因此,开始的正确位置是在 的最末端\maketitle,而不是 的末尾\@maketitle

以该类为例book

\documentclass[notitlepage]{book}

\usepackage{etoolbox} % for the \appto cmd  

\appto\maketitle{\begin{multicols}{3}}

\AtEndDocument{\end{multicols}}

\usepackage{multicol}

\usepackage{lipsum}

\begin{document}
\title{Book Title\thanks{A class using multicols}}
\author{Balaji, K.\/\thanks{And some more thanks}}
\maketitle
\lipsum[1-2]
\end{document}

结果你将获得:

在此处输入图片描述

相关内容