2

Possible duplicate statement: I am aware that this question was asked 9 years ago but the answer would not compile in my main document, the package flowfram may be outdated and my question also concerns the text respecting minipage boundaries so it is hoped that this is original enough and not a duplicate.

Problem: I am trying to replicate a journal article format using LaTeX (Science, shown on the first picture) but I am struggling to get a double column abstract and title whilst allowing the third column to continue naturally. From the document properties, the Polizzi article was created with Arbortext Advanced Print Publisher which it is not possible for me to use. My intention is to produce nice-looking literature reviews for my PhD and whilst I could use word or generic ones, I care about appearance a lot.

science article

What I have tried: At first, I tried to just use the first column to contain the information but the results did not look good with the title (the abstract formatting has been removed for the MWE):

3 column with 1 column abstract

Next, I tried using minipage as such:

\begin{minipage}{2\linewidth}
\maketitle
\end{minipage}

Which produced this:

using minipage at 2\linewidth

After searching the site and coming across this question (which is my exact question) from 9 years ago, the answer by Werner involved the use of the package flowfram, which whilst worked in that example, did not compile in my actual document and looks involved to learn.

Questions: Is it possible for minipage to respect the main text boundaries or wrap around it so that the text does not overlap? If not, could there be a 2 column spanning abstract and title whilst having text flow freely in the third column, as the answer by Werner from 9 years may be outdated, or are there any new packages that fulfil this please?

MWE:

\documentclass[10pt]{article}

\usepackage[a4paper,margin=1.5cm,columnsep=20pt]{geometry} \usepackage{abstract,lipsum,multicol,titling}

\title{\lipsum[1][1]}

\author{% {\normalsize\bfseries Author Name} \[1ex] \normalsize University Name \ }

\date{\today}

\renewcommand{\maketitlehookd}{% \vspace{0cm} \begin{abstract} \noindent \lipsum[1][1-3] \smallskip \end{abstract} }

\setlength{\columnseprule}{0.05pt}

\begin{document} \begin{multicols}{3}

\maketitle \section{Title} \lipsum[1-2] \section{Title} \lipsum[1-2] \section{Title} \lipsum[1-2]

\end{multicols} \end{document}

1 Answers1

1

This uses the linked flowfram solution, but allows for a variable size title. Specifically, the abstract environment (now placed in the preamble) performs all the formatting done by \maketitle and stores the entire thing in a savebox which is then used to compute the sizes needed for flowfram.

\thanks and \footnote are inside a minipage and will appear at the bottom of the title/abstract.

\documentclass{article}
\usepackage[landscape,margin=1cm]{geometry}% http://ctan.org/pkg/geometry
\usepackage{flowfram}% http://ctan.org/pkg/flowfram
\usepackage{lipsum}% http://ctan.org/pkg/lipsum

\newsavebox{\titlebox} \setlength{\columnwidth}{\dimexpr \textwidth-2\columnsep} \divide\columnwidth by 3 \makeatletter \renewenvironment{abstract}{\begin{lrbox}{\titlebox}% \maketitle inside \titlebox \begin{minipage}{\dimexpr 2\columnwidth+\columnsep}% @twocolumntrue \maketitle \small \begin{center}% {\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}% \end{center} \itshape}% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% BODY {\bigskip \end{minipage}% \end{lrbox}% \global\setbox\titlebox=\copy\titlebox } \makeatother

\title{\lipsum[1][1]}% must go before abstract

\author{% {\normalsize\bfseries Author Name} \[1ex] \normalsize University Name \ }

\date{\today}

\begin{abstract}% must go before flowfram setup \noindent \lipsum[1][1-3] \end{abstract}

% First page setup \newstaticframe[1]{\dimexpr 2\columnwidth+\columnsep}{\dimexpr \ht\titlebox+\dp\titlebox} {0pt}{\dimexpr \textheight-\ht\titlebox-\dp\titlebox}[titleabstract] \newflowframe[1]{\columnwidth}{\dimexpr \textheight-\ht\titlebox-\dp\titlebox} {0pt}{0pt}[shortleftcolumn] \newflowframe[1]{\columnwidth}{\dimexpr \textheight-\ht\titlebox-\dp\titlebox} {\dimexpr \columnwidth+\columnsep}{0pt}[shortcentercolumn]

% Subsequent pages setup
\newflowframe[>1]{\columnwidth}{\textheight} {0pt}{0pt}[leftcolumn] \newflowframe[>1]{\columnwidth}{\textheight} {\dimexpr \columnwidth+\columnsep}{0pt}[centercolumn] \newflowframe{\columnwidth}{\textheight} {\dimexpr \textwidth-\columnwidth}{0pt}[rightcolumn]

\begin{staticcontents}{titleabstract} \box\titlebox \end{staticcontents}

% draw rules \getflowid{\IDleft}{shortleftcolumn} \getflowid{\IDright}{shortcentercolumn} \insertvrule{flow}{\IDleft}{flow}{\IDright} \let\IDleft=\IDright \getflowid{\IDright}{rightcolumn} \insertvrule{flow}{\IDleft}{flow}{\IDright}

\getflowid{\IDleft}{leftcolumn} \getflowid{\IDright}{centercolumn} \insertvrule{flow}{\IDleft}{flow}{\IDright} \let\IDleft=\IDright \getflowid{\IDright}{rightcolumn} \insertvrule{flow}{\IDleft}{flow}{\IDright}

\begin{document}

\lipsum[1-30]

\end{document}

John Kormylo
  • 79,712
  • 3
  • 50
  • 120
  • Your answer worked perfectly and I have adapted it to my style requirements (no date, left aligned title etc.), thank you. I have a quick query however, with the abstract text, how can I change it so that the abstract text extends to the left and right margin of the double column? I have figured out how to change the title and author to flushleft, but changing minipage dimensions and other values stretches everything. Is there a way to have the abstract text go from margin to margin? –  Mar 14 '22 at 01:16
  • 1
    You can remove \quatation and \endquotation (copied from article class default abstract). – John Kormylo Mar 14 '22 at 01:21
  • That worked perfectly, thank you for your help. For anyone else who comes across this, to save you time I will add that to change the line thickness of the vertical rules that are drawn, put \setlength\ffcolumnseprule{0.05pt} or whatever value you wish to modify their thickness. –  Mar 14 '22 at 01:28
  • 1
    I revised the solution to use \columnsep to define the column widths. I also simplified the code by using \maketitle inside the abstract environment. This doesn't help if you want to reformat the title, but it does separate the problem along traditional lines. – John Kormylo Mar 14 '22 at 16:57
  • Thank you for your code, that is helpful and I appreciate it. Just because I didn't want you to lose karma if you knew the answer by asking in the comments, I asked a new question along the lines of the flowfram package which I would appreciate if you could look at if possible please. Link to new question –  Mar 14 '22 at 23:29