2

I have the problem that in two-column mode there is often too much unused space when there are multiple figures or tables in the same column.

I would like Latex to automatically shift the figures together more and fit more text in that column.

\documentclass[11pt, twocolumn]{article} % use larger type; default would be 10pt
\usepackage[utf8]{inputenc} % set input encoding (not needed with XeLaTeX)
\usepackage{graphicx} % support the \includegraphics command and options
\usepackage{blindtext}

\begin{document}

\blindtext

\blindtext

\begin{figure}
\includegraphics[width=\columnwidth,height=5cm]{example-image}
\end{figure}

\begin{figure}
\includegraphics[width=\columnwidth,height=5cm]{example-image}
\end{figure}

\blindtext

\blindtext

\end{document}

Leads to:

Too much unused space in column with images

By moving some blindtext above the second image I can get it to work, but I was hoping there was some way in which Latex automatically positions the figures correctly.

3

enter image description here

You can tell LaTeX to try harder to avoid float columns with lots of white space by increasing the minimum fraction that is allocated to floats, in this case increasing from the default value of .5 to .55 is enough. Note that the more you increase the value the harder it is to set the floats and the more likely it is that all floats go to the end, for example with a value of.55 if you have two consecutive floats of size .51\textheight you can not fit two in a column, and just one in a column would not meed the stated minimum of 55% of the height.

However here it works out OK.

\documentclass[11pt, twocolumn]{article} % use larger type; default would be 10pt
\usepackage[utf8]{inputenc} % set input encoding (not needed with XeLaTeX)
\usepackage{graphicx} % support the \includegraphics command and options
\usepackage{blindtext}

\renewcommand\floatpagefraction{.55}
\begin{document}

\blindtext

\blindtext

\begin{figure}
\includegraphics[width=\columnwidth,height=5cm]{example-image}
\end{figure}

\begin{figure}
\includegraphics[width=\columnwidth,height=5cm]{example-image}
\end{figure}

\blindtext

\blindtext

\end{document}

You could get the same result without changing the global settings by preventing the float being positioned in a float column


\documentclass[11pt, twocolumn]{article} % use larger type; default would be 10pt
\usepackage[utf8]{inputenc} % set input encoding (not needed with XeLaTeX)
\usepackage{graphicx} % support the \includegraphics command and options
\usepackage{blindtext}

\begin{document}

\blindtext

\blindtext

\begin{figure}
\includegraphics[width=\columnwidth,height=5cm]{example-image}
\end{figure}

\begin{figure}[t] % position image at top
\includegraphics[width=\columnwidth,height=5cm]{example-image}
\end{figure}

\blindtext

\blindtext

\end{document}
1

Just move the figures up and down (I mean the code segments \begin{figure}...\end{figure}) and add positioning specifiers like [!htbp] to help put them at the preferred places.

\documentclass[11pt, twocolumn]{article} % use larger type; default would be 10pt
\usepackage[utf8]{inputenc} % set input encoding (not needed with XeLaTeX)
\usepackage{graphicx} % support the \includegraphics command and options
\usepackage{blindtext}

\begin{document}

\blindtext

\blindtext
\begin{figure}[!htbp]
\includegraphics[width=\columnwidth,height=5cm]{example-image}
\end{figure}
\blindtext
\begin{figure}[!htbp]
\includegraphics[width=\columnwidth,height=5cm]{example-image}
\end{figure}
\blindtext

\end{document}

enter image description here

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.