Without abusing the usual commands, you can redefine abstract
and patch the \maketitle
command:
\documentclass[a4paper,12pt,titlepage]{scrartcl}
\newsavebox{\abstractbox}
\renewenvironment{abstract}
{\begin{lrbox}{0}\begin{minipage}{\textwidth}
\begin{center}\normalfont\sectfont\abstractname\end{center}\quotation}
{\endquotation\end{minipage}\end{lrbox}%
\global\setbox\abstractbox=\box0 }
\usepackage{etoolbox}
\makeatletter
\expandafter\patchcmd\csname\string\maketitle\endcsname
{\vskip\z@\@plus3fill}
{\vskip\z@\@plus2fill\box\abstractbox\vskip\z@\@plus1fill}
{}{}
\makeatother
\usepackage{lipsum}
\begin{document}
\titlehead{University}
\title{Title}
\subject{Subject}
\author{Author}
\begin{abstract}
\lipsum[1]
\end{abstract}
\maketitle
\end{document}
You can play with the line
{\vskip\z@\@plus2fill\box\abstractbox\vskip\z@\@plus1fill}
changing 2fill
and 1fill
till the result is pleasing.
The strategy is to save the abstract's typeset contents in a box for later use; the method with lrbox
is rather standard; the only subtle point is to globally save the box, as we are doing the business inside the abstract
environment. So the abstract is typeset in box register 0 and then the register \abstractbox
is globally loaded with what's in \box0
.
Where do you want it? Just between the \date
and \publishers
fields in the title page; so I looked at the code of \maketitle
and found that between the two fields the code is
\vskip\z@\@plus3fill
(leave a flexible vertical space). With the help of etoolbox
I change that code into
\vskip\z@\@plus2fill\box\abstractbox\vskip\z@\@plus1fill
so the previously saved box is typeset there, separated from the \date
and \publisher
fields by flexible vertical space.
Of course, the abstract
environment must go before \maketitle
. The code for typesetting the abstract itself is taken from the definition in scrartcl.cls
, which basically puts "Abstract" (in the font used for section headings) centered above the text, which in turn is in a quotation
environment.
