The original question is: How to get two columns with different width in LaTeX?
I know this older question: How can I create a two-column layout with different widths (and texts) for the two columns? But that does not really need a two-column layout but only pictures in the margin.
In fact, it is not very difficult to set the column widths separately. I can do it manually in LaTeX, and I can use flowfram package for convinence. But it seems weird at columnbreak. \hsize is not changed until a new paragraph. An example:
\documentclass{article}
\usepackage{microtype}
\usepackage{lipsum}
\usepackage{flowfram}
\onecolumntopinarea{static}{0pt}{.3\textwidth}{\textheight}{0pt}{0pt}
\onecolumntopinarea{static}{0pt}{.6\textwidth}{\textheight}{.4\textwidth}{0pt}
\begin{document}
\lipsum
\end{document}

Then I must do a trial run and add a \par manually at the column break point, and add a \noindent at the beginning of next column. But I think it should be automatic, even in this silly approach.
I know it may be very difficult in LaTeX. I'm not familar with the output route of LaTeX. I only want to know is it possible to do this automatically? Is there any new approach for this?
I know little about ConTeXt. It seems also not easy to use variable column width in ConTeXt. But I noticed a figure in manual of MetaFun:

Thus it seems possible with (or without?) help of MetaPost.
Any information is welcome.
\parshape, which is set on a whole-paragraph basis. TeX doesn't really allow for mid-paragraph changes in a number of parameters. – Joseph Wright Feb 16 '11 at 06:54\parand\noindentautomatically at pagebreak in the middle of paragraph, or with help of some script like Lua? – Leo Liu Feb 16 '11 at 07:38