如何在文档类中制作单列/双列部分?

如何在文档类中制作单列/双列部分?

我有一个简单的文档类,改编自article,但独立于(.cls文件)。文档是twocolumn,但是当我添加标题时

  \newcommand\maketitle{\begin{titlepage}%
  \begin{center}%
    {\LARGE \@title \par}%
  \end{center}\par
  \end{titlepage}%
}
\newenvironment{titlepage}
    {%
      \@restonecoltrue\onecolumn
      \thispagestyle{empty}%
      \setcounter{page}\@ne
    }%

这使得整个文档onecolumn。我应该如何设置titlepage环境才能onecolumn不影响整个文档?

答案1

titlepage环境的定义article.cls取决于兼容模式是否打开/关闭,但两种变体都包括

\if@restonecol\twocolumn \else \newpage \fi

在环境结束时要执行的代码中。在您的 版本中titlepage,您只需在环境开始时切换到\onecolumn(这变得多余),因此您需要在结束时切换回。但是,我建议只使用 的原始非兼容变体,因为这将使您的自定义类也在模式下工作。\@restonecoltrue\twocolumntitlepageonecolumn

答案2

您可以\maketitle使用命令的可选参数来定义\twocolumn

\def\maketitle{%
  \twocolumn[\vbox to \textheight{\vfil
    \begin{center}\LARGE \@title \par\end{center}%
  \vfil}]%
  \clearpage
}

该命令\twocolumn做三件事:

  1. 如果需要,开始新的一页
  2. 以单列模式排版其可选参数
  3. 新页面的其余部分采用双列模式

相关内容