# Adjusting column width in LaTeX with the multicol package

I'm trying to get a two column "academic style" paper layout on my LaTeX paper. I'm aware there are at least two common ways of doing this, either with adjusting \documentclass or with the more versatile multicol package. I'm using the latter.

Initially I'm trying to just get a template I found working, it is as follows:

\documentclass{article}
\usepackage{multicol}

\begin{document}
\begin{multicols*}{2}
A lot of text here ...
\end{multicols*}
\end{document}


I've been trying to use various parameters such as the \linewidth given to \addtolength as in the above example, but it seems to have no effect whatsoever on the resulting document.

How is the column width adjusted? Is it correct to adjust it like I'm attempting?

-

## migrated from stackoverflow.comJun 28 '12 at 23:54

This question came from our site for professional and enthusiast programmers.

Welcome to TeX.sx! Your question was migrated here from Stack Overflow. Please register on this site, too, and make sure that both accounts are associated with each other (by using the same OpenID), otherwise you won't be able to comment on or accept answers or edit your question. –  Werner Jun 28 '12 at 23:57

Don't try to adjust the column width directly: multicol is designed to calculate it. What you should do instead is first set up a notional page with a 'text block' which represents the text you would get if you had a single column. This involves quite a number of potential lengths, and you would be well-advised to use the geometry package to do this: most non-typesetters find that the most intuitive thing is to set the margins, and geometry will let you do this, and then calculate the other lengths, rather than forcing you to do that directly.

Having done that, your two (or three, or four ...) column environment produced by multicol will calculate the necessary width, dividing the available text block into the appropriate number of columns, leaving space (defined by \columnsep) between them. You can adjust that separately if you need to.

So, for instance:

\documentclass{article}
\usepackage[margin={1cm,1cm}]{geometry}
\usepackage{multicol}
\usepackage{lipsum}

\begin{document}

\begin{multicols*}{2}
\lipsum
\end{multicols*}

\end{document}


Gives you a wide textblock, and wide columns.

But if you change the margins so the textblock becomes narrow:

\usepackage[margin={5cm,5cm}]{geometry}


You get narrow columns

For completeness, if you adjust the spacing between those columns with \setlength{\columnsep}{2cm} you can see the result:

(Please note that these settings are very ugly: they show you the idea, and are not intended as a guide to good typography!)

-

For playing with columns, I reccomend using the usenix-2e.sty, it makes it very easy to modify the text block with its built in variables

found a copy here

http://stuff.mit.edu/afs/sipb/project/wine/dosdevices/z:/mit/lugia/MacData/afs/sipb/project/eichin/common/usenix96/l/

variables should be pretty self explanatory

\setlength{\textheight}{9.25in}
\setlength{\columnsep}{0.25in}
\setlength{\textwidth}{6.75in}
%\setlength{\footheight}{0.0in}
\setlength{\topmargin}{-0.25in}