1

I have a three-column document where I would like to place a (floating) table that spans the two left columns of the three. The following minimal example works for the placement but overlaps the text and graphics in the middle column. Any suggestions?

\documentclass[paper=a4,paper=landscape, 10pt]{scrartcl} 
\usepackage[    
        left=1.3cm,             
        right=2cm, 
        top=1.5cm,
        bottom=1.5cm    
         ]{geometry}

\usepackage{wrapfig}
\usepackage{multicol}
 \usepackage{array}
 \usepackage{lipsum}    

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

\lipsum[1-2]

\begin{wrapfigure}{l}{2\columnwidth}
\begin{tabular}{m{0.66\columnwidth}m{0.66\columnwidth}m{0.66\columnwidth}}
    \hline
        A & B & C \\ \hline
        A & B & C \\ \hline
    \end{tabular}
\end{wrapfigure}

\lipsum[1-5]

\end{multicols}
\end{document}
  • 1
    Welcome to TeX.SE! If I add the packages array and multicol to the list of packages to be loaded in the preamble in order to make your example code compilable, I do not get the problem you describe. Please edit your code so that it generates the problem you're looking to fix. – Mico Jun 23 '15 at 13:31
  • I hope its more clear now – Tobias Seidler Jun 23 '15 at 13:41
  • Also check out the flowfram package. – John Kormylo Jun 23 '15 at 14:05
2

This feature is neither supported by LaTeX2e nor package wrapfigure.

A manual (cumbersome) workaround is to add some space (\vspace*{...}) in the second column for the table.

The total width of two columns is

\dimexpr 2\columnwidth + \columnsep\relax

And the calculation for the table column has to take \tabcolsep into account:

\dimexpr (2\columnnwidth + \columnsep)/3 - 2\tabcolsep\relax

Example for the manual workaround:

\documentclass[paper=a4,paper=landscape, 10pt]{scrartcl}
\usepackage[
        left=1.3cm,
        right=2cm,
        top=1.5cm,
        bottom=1.5cm
         ]{geometry}

\usepackage{wrapfig}
\usepackage{multicol}
 \usepackage{array}
 \usepackage{lipsum}

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

\lipsum[1-2]

\sbox0{%
  \dimen0=\dimexpr(2\columnwidth+\columnsep)/3-2\tabcolsep\relax
  \begin{tabular}{m{\dimen0}m{\dimen0}m{\dimen0}}
    \hline
        A & B & C \\ \hline
        A & B & C \\ \hline
  \end{tabular}%
}\copy0 %
\edef\TheTableHeight{\the\dimexpr\ht0 + \dp0\relax}

\lipsum[1-2]

Nulla malesuada porttitor diam. Donec felis
erat, congue non, volutpat at, tincidunt tristique, libero.  
\vspace{\TheTableHeight}  
Vivamus  
viverra fermentum felis. Donec nonummy pellentesque ante. Phasellus  
adipiscing semper elit. Proin fermentum massa ac quam. Sed diam  
turpis, molestie vitae, placerat a, molestie nec, leo. Maecenas  
lacinia. Nam ipsum ligula, eleifend at, accumsan nec, suscipit a,  
ipsum. Morbi blandit ligula feugiat magna. Nunc eleifend consequat  
lorem. Sed lacinia nulla vitae enim. Pellentesque tincidunt purus  
vel magna. Integer non enim. Praesent euismod nunc eu purus. Donec  
bibendum quam in tellus. Nullam cursus pulvinar lectus. Donec et mi.  
Nam vulputate metus eu enim. Vestibulum pellentesque felis eu  
massa.  

\lipsum[4-5]

\end{multicols}
\end{document}

Result

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.