There are times when you want to have multiple columns on part of a page. You could use tables to get such a layout, but that’s a bit dirty. A nice, clean method is to use the minipage environment.

Minipages are defined with a width parameter. If you have multiple minipages defined immediately after each other, they will appear next to each other (as long as the sum of the widths does not exceed \textwidth). For example, to produce a two-column layout, you could use the following:

% first column
This is the first column.\\

This is still in the first column.

%second column
This is the second column.

The widths can be changed by modifying the last argument in the \begin{minipage} call (ie: to make the first column twice as wide as the second, make the width of the first 0.6\textwidth and the second 0.3\textwidth). Also note the [t] – this tells LaTeX to make each column vertically aligned to the top.

  1. CF says:

    VERY important here is that there is no space between the /end{minipage} and the next \begin{minipage} (obviously not counting comments). Otherwise LaTeX will not render the columns side by side.

  2. Joe says:

    You could just use the multicol package as well. It’s actually necessary for implicitly breaking an enumeration over multiple columns:

  3. bnmng says:

    Good info. Thank you.

  4. Geoff says:

    Thank you very much! I’m currently working on a research paper and this will really help.

  5. Thomas says:

    Before the first minipage you’ll have to start a new line. If it is at the beginning of a paragraph whose first line would otherwise be indented, you’ll want to use \noindent .

    If you make the combined widths of the minipages less than \textwidth and put \vspace{\fill}between them, you’ll get an equal margin between them.

    But really: no spaces or uncommented line-ends between the minipages!

    Cheers — Thomas

  6. Tangpos, Gerald John F. says:

    Thank you for this post. It helps me a lot 😀

  7. Benjamin says:

    Ah Thomas, thank you for that very important \noindent reminder! I have been wondering why the **** my entire minipage didn’t line up with the following section header.


  8. yasin says:

    Thanks! Excellent info, and comments.

  9. Anwesha says:

    Thanks for suggesting the \vspace{\fill} Thomas. For some reason, the back to back end{minipage} \begin{minipage}{0.5\textwidth} was still not dividing it into two columns. But using \vspace{\fill} solved the problem.