For a single page the package vwcol
(variable-width multiple text columns) make is what you're looking for.
\documentclass{article}
\usepackage[margin=2cm]{geometry}
\usepackage{lipsum}
\usepackage{microtype}
\usepackage{vwcol}
\begin{document}
\begin{vwcol}[widths={0.6,0.4},
sep=.8cm, justify=flush,rule=0pt,indent=1em]
\lipsum[1-8]
\end{vwcol}
\end{document}
For multiple pages the suggested flowfram
package can help, but mostly with columns (frames) of different heights and places but the same width. Unfortunately the width of a paragraph cannot be changed when jump to a column of different width (the change in \hsize
will not come into effect until the end of the paragraph), so it must be simulate a paragraph break with \framebreak
or specified the exact point where the text paragraphs jump to the next column (with \newpage
or pagebrak[4]
or \finishthispage
in the last column).
In the next example, the capture show when the first \newpage
is commented to explain the problem (otherwise the output is roughly similar to the first example, but the columns are not balanced in this case).
\documentclass{article}
\usepackage[margin=2cm]{geometry}
\usepackage{flowfram}
\usepackage{lipsum}
\usepackage{microtype}
\newflowframe[1-5]
{0.60\textwidth}{\textheight}
{0pt}{0pt}[leftcolumn]
\newflowframe[1-5]{0.30\textwidth}{\textheight}
{0.65\textwidth}{0pt}[rightcolumn]
\begin{document}
\lipsum[1-5]
\newpage
\lipsum[6-8]
\newpage
\lipsum[9-12]
\end{document}
Edit:
Another option is paracol
. It can make columns of different widths using \columnratio
in multiple pages, but switch of the column is always your work. This mean that if the text reach the end of some column, continues in the next page in the same column, not in the next right column:
\documentclass{article}
\usepackage[latin]{babel}
\usepackage{geometry,parskip,color}
\usepackage{lipsum}
\usepackage{paracol}
\begin{document}
\columnratio{0.6}
\begin{paracol}{2}
\lipsum[1] \switchcolumn \color{red}
\lipsum[3] \switchcolumn \color{blue}
\lipsum[4] \switchcolumn \color{green}
\lipsum[5] \switchcolumn \color{green}
\lipsum[6] \switchcolumn \color{magenta} % flow to the next page
\lipsum[7] \switchcolumn \color{black} % flow to the next page
\lipsum[8]
\end{paracol}
\end{document}
The following example removes the inter column space by setting \columnsep
, which affects all inter column spaces:
\documentclass[a5paper,landscape]{article}
\usepackage{multicol}
\usepackage{microtype}
\usepackage{lipsum}
\setlength{\columnsep}{0pt}
\begin{document}
\begin{multicols}{3}
\lipsum[1]
\end{multicols}
\end{document}
BTW, have fun reading it. ☺
Or with rules:
\setlength{\columnrulewidth}{1pt}
Also negative values are possible, e.g.:
\setlength{\columnsep}{-10pt}
Best Answer
If you are just after a two-column document with varying column width, I would suggest to take a look at the flowfram package which allows to customize column layout and width. I used it for statistical handouts with text on a
.7\textwidth
column, and illustration on the remaining spaces (before discovering Tufte class), but I think it should not be too difficult to use it for two-column document with text only.