1

An answer which is sufficient but not optimal OP has been found. Any improvements are welcome.

Requirements:

  1. a landscape poster in A3 with four (possibly a different number later) columns,
  2. the headline of the poster on top of the two columns in the middle,
  3. the text of the poster "floating" around the headline box in the regular order (1,2,3,4) whereas my example has order (1,3,4,2) (just compare the section titles, the second page is in correct order),
  4. LuaLaTeX compatibility,
  5. if possible: integration as a separate page in a non-poster document of the KOMA-classes (https://ctan.org/pkg/koma-script) after \KOMAoptions{paper=A3,paper=landscape,DIV=18,fontsize=11pt,twoside=false}\recalctypearea. I am aware that I can include a PDF otherwise.

The contents of the poster are not boxes unlike other posters on How to create posters using LaTeX but rather a single text with several sections. So my project might not be a poster in the classical TeX notion.

The solution does not have to use the package https://ctan.org/pkg/flowfram, but that package is the closest I got (failing requirement 3 and 5). Other attempts with https://ctan.org/pkg/insbox, https://ctan.org/pkg/cutwin, or https://ctan.org/pkg/picinpar failed, too. This kind of typesetting is used occasionally in newspapers or magazines as well. I could not find a similar question, nor a template with this feature, but I am sure someone must have had this problem before.

\documentclass[paper=A3,paper=landscape,DIV=18,fontsize=11pt,oneside]{scrartcl}
\usepackage{microtype,tikz,calc,lipsum}

\usepackage{flowfram}
\Ncolumn{4}

\newlength{\windowWidth}    \setlength{\windowWidth}{2\columnwidth+1\columnsep}
\newlength{\windowHeight}   \setlength{\windowHeight}{8em}

\Ncolumntopinarea[1]{static}{2}{\windowHeight}{\windowWidth}{\flowframeheight{1}}{\columnwidth+\columnsep}{0pt}
\newstaticframe[1]{\windowWidth}{\windowHeight}{\columnwidth+\columnsep}{\textheight-1.14\windowHeight}[headlineWindow]
\setflowframe{2,3}{pages={>1}}

\begin{document}

\begin{staticcontents*}{headlineWindow}
\tikz \fill[yellow] (0,0) rectangle node{\huge\bfseries\color{black}Headline} (\windowWidth,\windowHeight);
\end{staticcontents*}

\noindent\lipsum[1]
\section{foo}\lipsum[1]
\section{foo}\lipsum[1]
\section{foo}\lipsum[1]
\section{foo}\lipsum[1]
\section{foo}\lipsum[1]
\section{foo}\lipsum[1]
\section{foo}\lipsum[1]
\section{foo}\lipsum[1]
\section{foo}\lipsum[1]
\section{foo}\lipsum[1]
\section{foo}\lipsum[1]
\section{foo}\lipsum[1]
\section{foo}\lipsum[1]
\section{foo}\lipsum[1]
\section{foo}\lipsum[1]
\section{foo}\lipsum[1]
\section{foo}\lipsum[1]
\section{foo}\lipsum[1]

\end{document}

enter image description here

Honorable mention: Book on a Single (Poster) Page.

1

The following code does not satisfy requirement 5, but all other. It manually imitates the multicols by the mechanisms of https://ctan.org/pkg/flowfram. Thus, it lacks many features of the package https://ctan.org/pkg/multicol.

\documentclass[paper=A3,paper=landscape,DIV=18,fontsize=11pt,oneside]{scrartcl}
\usepackage{microtype,tikz,calc,lipsum,flowfram}
\pagestyle{empty}

%The following loc define lengths for the columns. The first two are manually calculated for 4 columns. An automatic calculation should not be too difficult and is left for the reader. 
\setlength{\columnsep}{0.01\textwidth}% this weird definition makes calculations a bit easier than in unit em
\setlength{\columnwidth}{0.2425\textwidth}
\newlength{\columnSepWidth} \setlength{\columnSepWidth}{\columnsep+\columnwidth}
\newlength{\windowWidth}    \setlength{\windowWidth}{2\columnSepWidth-\columnsep}
\newlength{\windowHeight}   \setlength{\windowHeight}{0.1\textheight}

%The window for the headline which does only appear on the first page
\newstaticframe[1]{\windowWidth}{\windowHeight}{\columnSepWidth}{\textheight-\windowHeight}[headlineWindow]

%The following loc generate the columns. A different number of columns requires manual change.
%The four columns of the first page
\newflowframe[1]{\columnwidth}{\textheight}{0\columnSepWidth}{0pt}
\newflowframe[1]{\columnwidth}{\textheight-\windowHeight-\columnsep}{1\columnSepWidth}{0pt}
\newflowframe[1]{\columnwidth}{\textheight-\windowHeight-\columnsep}{2\columnSepWidth}{0pt}
\newflowframe[1]{\columnwidth}{\textheight}{3\columnSepWidth}{0pt}

%The four columns of all other pages
\newflowframe[>1]{\columnwidth}{\textheight}{0\columnSepWidth}{0pt}
\newflowframe[>1]{\columnwidth}{\textheight}{1\columnSepWidth}{0pt}
\newflowframe[>1]{\columnwidth}{\textheight}{2\columnSepWidth}{0pt}
\newflowframe[>1]{\columnwidth}{\textheight}{3\columnSepWidth}{0pt}

\begin{document}
\begin{staticcontents*}{headlineWindow}
\tikz \fill[yellow] (0,0) rectangle node{\huge\bfseries\color{black}Headline} (\windowWidth,\windowHeight);
\end{staticcontents*}

\sloppy% gives better results in narrow columns, see https://tex.stackexchange.com/a/241355/128553 
\noindent\lipsum[1]
\section{foo}\lipsum[1]\lipsum[1]
\section{foo}\lipsum[1]\lipsum[1]
\section{foo}\lipsum[1]\lipsum[1]
\section{foo}\lipsum[1]\lipsum[1]
\section{foo}\lipsum[1]\lipsum[1]
\section{foo}\lipsum[1]\lipsum[1]
\section{foo}\lipsum[1]\lipsum[1]
\section{foo}\lipsum[1]\lipsum[1]
\section{foo}\lipsum[1]\lipsum[1]
\end{document}

enter image description here

1
  • 1
    Thank you very much. – Sebastiano Apr 27 '20 at 19:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.