76

How can I place a one-column-abstract and after that two-column-section in a LaTeX template?

Stefan Kottwitz
  • 231,401

5 Answers5

67

This should make the trick. Important Note: This is a copy-paste from: I've just tested it

\documentclass[twocolumn]{article}
...
\begin{document}
... % \author, etc
\twocolumn[
  \begin{@twocolumnfalse}
    \maketitle
    \begin{abstract}
      ...
    \end{abstract}
  \end{@twocolumnfalse}
]
David Carlisle
  • 757,742
GuillemB
  • 866
  • 4
    Note that \maketitle must be included if you want to avoid a page break before the abstract environment. – Ger Aug 31 '12 at 11:51
  • 3
    Users are advised to see some of the other solutions at the linked page, which is an answer on the TeX FAQ. In particular, to get \thanks to work in the author list (instead of just gobbling the footnotes), use of the abstract package (and the \saythanks command it provides) is advisable. See also http://tex.stackexchange.com/q/80210/17427 – cyberSingularity Nov 04 '12 at 11:41
  • 1
    Well this technically works, but it removes all space after the abstract. So some commands to put a sensible amount of space back in are needed. – Ben Farmer May 31 '19 at 11:17
  • Used @twocolumnfalse as well as the linked onecolabstract (with package \usepackage{abstract}) in a \documentclass{IEEEtran} but neither worked. – BadAtLaTeX Jun 22 '19 at 15:03
  • ... found it here. – BadAtLaTeX Jun 22 '19 at 15:12
  • The key is the optional parameter for \twocolumn.

    ie \twocolumn[\section{This should be a single column heading}]

    – Doug Nov 29 '22 at 14:07
24

If you use the multicol package then you can easily mix different column format

\documentclass{article}
\usepackage{multicol}
\usepackage{lipsum}% for dummy text

\begin{document}
\begin{abstract}
\lipsum[1]
\end{abstract}
\begin{multicols}{2}
\lipsum[2]
\end{multicols}
\end{document}
jub0bs
  • 58,916
Peter Grill
  • 223,288
13

The \twocolumn-command takes an optional argument, which will be printed in one-column-mode.

Keks Dose
  • 30,892
5

If you use the titling package, which I do anyway, you can use the final hook it provides for \maketitle to hold the abstract.

For example, the following code defines a new command, \myabstract[]{}. The optional argument can be used to specify a different proportion of the \textwidth be used for the abstract. The default is width=.8. To specify something else, just use \myabstract[width=<value between 0 and 1>]{}. The mandatory argument just holds the abstract content.

\documentclass[twocolumn]{article}
\usepackage{expl3,xparse,xcoffins,titling,kantlipsum}
\ExplSyntaxOn
\coffin_new:N \l_my_abstract_coffin
\dim_zero_new:N \l_my_width_dim
\keys_define:nn { my / abstract }
  {
    width .code:n = {
      \dim_set:Nn \l_my_width_dim {#1\textwidth}
    }
  }
\NewDocumentCommand \myabstract { O {width=.8} m }{%
  \keys_set:nn { my / abstract } { #1 }
  \SetVerticalCoffin \l_my_abstract_coffin {\l_my_width_dim} {#2}
  \renewcommand\maketitlehookd{%
    \mbox{}\medskip\par
    \centering
    \TypesetCoffin \l_my_abstract_coffin
  }
}
\ExplSyntaxOff
\begin{document}
\author{A. N. Author\thanks{To somebody.}}
\title{A Gripping Tale}
\myabstract{\kant[1]}
\maketitle
\kant[2-3]
\title{Another Gripping Yarn}
\author{A. Nother Author}
\myabstract[width=.7]{\kant[4]}
\maketitle
\kant[5]
\end{document}

two abstracts for two tales

Although I've used xcoffins and expl3 stuff (which I'm not sure I should be mixing at all), you can do this without the alien syntax, still using xcoffins:

\documentclass[twocolumn]{article}
\usepackage{xcoffins,titling,kantlipsum}
\NewCoffin \myabstractcoffin
\newcommand \myabstract[2][.8]{%
  \SetVerticalCoffin \myabstractcoffin {#1\textwidth} {#2}%
  \renewcommand\maketitlehookd{%
    \mbox{}\medskip\par
    \centering
    \TypesetCoffin \myabstractcoffin}}    
\begin{document}
\author{A. N. Author\thanks{To somebody.}}
\title{A Gripping Tale}
\myabstract{\kant[1]}
\maketitle
\kant[2-3]
\title{Another Gripping Yarn}
\author{A. Nother Author}
\myabstract[.7]{\kant[4]}
\maketitle
\kant[5]
\end{document}

Note that the optional argument now just takes the number e.g. .7 rather than width=.7.

Or, most easily of all, just using a minipage environment:

\documentclass[twocolumn]{article}
\usepackage{titling,kantlipsum}
\newcommand \myabstract[2][.8]{%
  \renewcommand\maketitlehookd{%
    \mbox{}\medskip\par
    \centering
    \begin{minipage}{#1\textwidth}
      #2
    \end{minipage}}}  
\begin{document}
\author{A. N. Author\thanks{To somebody.}}
\title{A Gripping Tale}
\myabstract{\kant[1]}
\maketitle
\kant[2-3]
\title{Another Gripping Yarn}
\author{A. Nother Author}
\myabstract[.7]{\kant[4]}
\maketitle
\kant[5]
\end{document}
cfr
  • 198,882
2

For me, using strip did the job.

\begin{strip}
    \centering
    \begin{minipage}{.8\textwidth}
        \begin{abstract}
            \input{abstract.tex}
        \end{abstract}
        \hspace{2cm}
    \end{minipage}
\end{strip}

Where abstact.tex just includes the text.