我有一个简单的文档类,改编自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
\twocolumn
titlepage
onecolumn
答案2
您可以\maketitle
使用命令的可选参数来定义\twocolumn
:
\def\maketitle{%
\twocolumn[\vbox to \textheight{\vfil
\begin{center}\LARGE \@title \par\end{center}%
\vfil}]%
\clearpage
}
该命令\twocolumn
做三件事:
- 如果需要,开始新的一页
- 以单列模式排版其可选参数
- 新页面的其余部分采用双列模式