4

I have poster with 4 columns. I want to place figure in the middle of poster, that should be only 2 columns wide. I am using the a0poster package. So I have something like this:

\begin{document}
\begin{multicols}{4} 
Some text

\begin{figure}[H]% This figure should be two columns wide

\end{figure}
More text
\end{multicols}
\end{document}
Werner
  • 603,163
user38089
  • 41
  • 2

2 Answers2

2

Using some ideas from Three-columns text with figures of 2\columnwidth, flowfram can assist in flowing your text around images in a specific (recti-linear) layout:

enter image description here

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

\newlength{\blockwidth}\setlength{\blockwidth}{.24\textwidth}
\setlength{\columnsep}{\dimexpr.01333\textwidth}

\newlength{\imageheight}\setlength{\imageheight}{.3\textheight}

\newflowframe{0.24\textwidth}{\textheight}
  {0pt}{0pt}[columnone]

\newflowframe{0.24\textwidth}{\dimexpr.5\textheight-.5\imageheight-\columnsep}
  {\dimexpr\blockwidth+\columnsep}{\dimexpr.5\textheight+.5\imageheight+\columnsep}[columntwoTOP]
\newflowframe{0.24\textwidth}{\dimexpr.5\textheight-.5\imageheight-\columnsep}
  {\dimexpr\blockwidth+\columnsep}{0pt}[columntwoBOT]

\newflowframe{0.24\textwidth}{\dimexpr.5\textheight-.5\imageheight-\columnsep}
  {\dimexpr2\blockwidth+2\columnsep}{\dimexpr.5\textheight+.5\imageheight+\columnsep}[columnthreeTOP]
\newflowframe{0.24\textwidth}{\dimexpr.5\textheight-.5\imageheight-\columnsep}
  {\dimexpr2\blockwidth+2\columnsep}{0pt}[columnthreeBOT]

\newflowframe{0.24\textwidth}{\textheight}
  {\dimexpr3\blockwidth+3\columnsep}{0pt}[columnfour]

\newstaticframe{\dimexpr2\blockwidth+\columnsep}{\imageheight}
{\dimexpr\blockwidth+\columnsep}{\dimexpr.5\textheight-.5\imageheight}[centerfigure]

\title{\textbf{Flowfram poster}}
\author{by Me}
\date{\today}

\begin{document}

\maketitle

\lipsum[1]

\begin{staticcontents*}{centerfigure}
\includegraphics[
  width=\dimexpr2\blockwidth+\columnsep,
  height=\imageheight]{example-image-a}
\end{staticcontents*}

\lipsum[2-33]

\end{document}

The above MWE creates 6 dynamic frames (columnone and columntwo span the entire \textheight, while columntwoTOP/BOT and columnthreeTOP/BOT span whatever's left after inserting the image. Technically, all you need to do is change the height of the image (set \imageheight), and everything else should fall into place. Of course, I assume you're only inserting an image (not a caption as well, but that could be changed).

The image is contained inside a "static frame" called centerfigure that spans exactly 2 columns (including the column separation/gap).

Werner
  • 603,163
2

For a poster some manual spacing seems acceptable, this just positions the figure wherever you want, then add two vertical spaces in the text to make space.

enter image description here

\documentclass{article}

\def\a{One two three four five six. }
\def\b{Red yellow green blue white black grey purple pink. }
\def\c{\a\b\b\a\a\a\b\b\a\b}
\def\d{\c\c\a\a\b\a\b}
\usepackage{multicol,capt-of}
\begin{document}

\noindent\begin{picture}(0,0)
\put(82,-300){\fbox{\begin{minipage}{.5\textwidth}
\centering
\rule{3cm}{5cm}
\captionof{figure}{a picture of somethimg}
\end{minipage}}}
\end{picture}

\begin{multicols}{4}
\d

aa zzz bbb\\[7cm]
\c\a

yyyy yyy yyy yyy yyy \\[7cm]
\d\d\d\d\d\d


More text
\end{multicols}
\end{document}
David Carlisle
  • 757,742