Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

different columnwidth with multicol

3,996 views
Skip to first unread message

Gunnar G

unread,
Apr 30, 2006, 5:51:07 PM4/30/06
to
is that possible? I'd like to make one column use 60% of the total
columnwidth, and the second column should use the remaining part.

Heiko Oberdiek

unread,
May 1, 2006, 4:46:41 AM5/1/06
to
Gunnar G <deb...@comhem.se> wrote:

> is that possible? I'd like to make one column use 60% of the total
> columnwidth, and the second column should use the remaining part.

No, you hit a limitation of TeX.

Yours sincerely
Heiko <ober...@uni-freiburg.de>

Piet van Oostrum

unread,
May 1, 2006, 6:44:01 AM5/1/06
to
>>>>> Gunnar G <deb...@comhem.se> (GG) wrote:

>GG> is that possible? I'd like to make one column use 60% of the total
>GG> columnwidth, and the second column should use the remaining part.

No, multicol only supports equal-size columns. You will have to do this by
hand (with parboxes or minipages), but then you will have problems when a
paragraph crosses a column boundary.
--
Piet van Oostrum <pi...@cs.uu.nl>
URL: http://www.cs.uu.nl/~piet [PGP 8DAE142BE17999C4]
Private email: pi...@vanoostrum.org

John Culleton

unread,
May 1, 2006, 8:48:36 AM5/1/06
to
Piet van Oostrum wrote:

>>>>>> Gunnar G <deb...@comhem.se> (GG) wrote:
>
>>GG> is that possible? I'd like to make one column use 60% of the total
>>GG> columnwidth, and the second column should use the remaining part.
>
> No, multicol only supports equal-size columns. You will have to do this by
> hand (with parboxes or minipages), but then you will have problems when a
> paragraph crosses a column boundary.

This is one of the areas where Context is more useful than LaTeX.
Here is some sample code for an uneven column layout:
----------------------
\definecolumnset[example][n=4]
\setupcolumnset[example[1][width=.3\makeupwidth]
\starttext
...
\startcolumnset[example]
...(text goes here)
\stopcolumnset
...
\stoptext
-----------------------
In the above example there are 4 columns (line 1) but the first
column takes up 3/10 of the available horizontal space (line 2).
The other columns automatically adjust to fill the remaining
space.

The name of the columnset is "example".

\starttext and \stoptext are the delimiters of the printable text
area in a Context file.

There are many other feature in multicolumn handling in the
"Columns" manual, including spanning columns, inserting graphics
and even spanning pages. Details are found here:
http://www.pragma-ade.nl/show-man-28.htm

--
John Culleton
Able Indexers and Typesetters

Gunnar G

unread,
May 1, 2006, 10:07:24 AM5/1/06
to
>> is that possible? I'd like to make one column use 60% of the total
>> columnwidth, and the second column should use the remaining part.
>
> No, you hit a limitation of TeX.
>
> Yours sincerely
> Heiko <ober...@uni-freiburg.de>

Dang.
But what is the problem? How does TeX handle producing N columns? I mean, in
someway it ought to divide the page into columns, if one then could change
the division to make one part larger..?

Heiko Oberdiek

unread,
May 1, 2006, 11:32:35 AM5/1/06
to
Gunnar G <deb...@comhem.se> wrote:

The paragraph builder processes the paragraphs and puts the result
in a box (main vertical list, ...). With the exception of \parshape,
the width cannot be changed. Then the box is split (\vsplit) to get
boxes (column/page) with the correct height. But the paragraphis
in the boxes cannot be reprocessed to get paragraphs with changed
widths.

Yours sincerely
Heiko <ober...@uni-freiburg.de>

Will Robertson

unread,
May 1, 2006, 12:14:11 PM5/1/06
to
Heiko Oberdiek wrote:
>
> The paragraph builder processes the paragraphs and puts the result
> in a box (main vertical list, ...). With the exception of \parshape,
> the width cannot be changed. Then the box is split (\vsplit) to get
> boxes (column/page) with the correct height. But the paragraphis
> in the boxes cannot be reprocessed to get paragraphs with changed
> widths.

Interesting. I wonder how ConTeXt goes about its business then...it
does seem like many of LaTeX's "tricky problems" have already been
addressed within Hans' baby. Of course, he doesn't have backwards
compatibility to worry about...

Will

Heiko Oberdiek

unread,
May 1, 2006, 2:43:26 PM5/1/06
to
"Will Robertson" <wsp...@gmail.com> wrote:

> Heiko Oberdiek wrote:
> >
> > The paragraph builder processes the paragraphs and puts the result
> > in a box (main vertical list, ...). With the exception of \parshape,
> > the width cannot be changed. Then the box is split (\vsplit) to get
> > boxes (column/page) with the correct height. But the paragraphis
> > in the boxes cannot be reprocessed to get paragraphs with changed
> > widths.
>
> Interesting. I wonder how ConTeXt goes about its business then...

I would also be interested:
* which method is used?
* what are the limitations?

Yours sincerely
Heiko <ober...@uni-freiburg.de>

Will Robertson

unread,
May 1, 2006, 5:18:39 PM5/1/06
to
Heiko Oberdiek wrote:

> "Will Robertson" <wsp...@gmail.com> wrote:
>
> > Interesting. I wonder how ConTeXt goes about its business then...
>
> I would also be interested:
> * which method is used?
> * what are the limitations?

Looking at the doc that John Culleton referenced (which is very nice,
by the way -- it certainly looks like a fair contender to LaTeX3's xor
based on what little I've seen of both), changing column widths mostly
only works for non-flowing columns (i.e., forced column breaks).

It does mention that "If you really want to change the width in the
middle of a paragraph, you can do a trial run and include a breakpoint
at the place where you want it to occur" (pg. 32--34)

So it's not as flexible as I first thought. But the whole thing is
still quite nice.

Will

Heiko Oberdiek

unread,
May 1, 2006, 6:07:06 PM5/1/06
to
"Will Robertson" <wsp...@gmail.com> wrote:

> Heiko Oberdiek wrote:
> > "Will Robertson" <wsp...@gmail.com> wrote:
> >
> > > Interesting. I wonder how ConTeXt goes about its business then...
> >
> > I would also be interested:
> > * which method is used?
> > * what are the limitations?
>
> Looking at the doc that John Culleton referenced (which is very nice,
> by the way -- it certainly looks like a fair contender to LaTeX3's xor
> based on what little I've seen of both), changing column widths mostly
> only works for non-flowing columns (i.e., forced column breaks).

Having flowing columns is the interesting feature. Otherwise it is
quite trivial and could be done even at user level via minipage
environments with different widths.



> It does mention that "If you really want to change the width in the
> middle of a paragraph, you can do a trial run and include a breakpoint
> at the place where you want it to occur" (pg. 32--34)

Trial runs are problematic: counter changes, writing to a file,
definitions, ...

Yours sincerely
Heiko <ober...@uni-freiburg.de>

Will Robertson

unread,
May 1, 2006, 9:53:29 PM5/1/06
to
Heiko Oberdiek wrote:
>
> Having flowing columns is the interesting feature. Otherwise it is
> quite trivial and could be done even at user level via minipage
> environments with different widths.
>
> > It does mention that "If you really want to change the width in the
> > middle of a paragraph, you can do a trial run and include a breakpoint
> > at the place where you want it to occur" (pg. 32--34)
>
> Trial runs are problematic: counter changes, writing to a file,
> definitions, ...

Yes, I agree. I hope I haven't skipped over anything in my hasty
analysis, however. That part of the documentation seems a little brief.
(John, you provided the original reference -- are you aware if ConTeXt
can flow columns with variable sizes?)

Will

Dan Luecking

unread,
May 5, 2006, 12:19:07 PM5/5/06
to
On Mon, 01 May 2006 08:48:36 -0400, John Culleton
<jo...@wexfordpress.com> wrote:

>Piet van Oostrum wrote:
>
>>>>>>> Gunnar G <deb...@comhem.se> (GG) wrote:
>>
>>>GG> is that possible? I'd like to make one column use 60% of the total
>>>GG> columnwidth, and the second column should use the remaining part.
>>
>> No, multicol only supports equal-size columns. You will have to do this by
>> hand (with parboxes or minipages), but then you will have problems when a
>> paragraph crosses a column boundary.
>
>This is one of the areas where Context is more useful than LaTeX.
>Here is some sample code for an uneven column layout:
>----------------------
>\definecolumnset[example][n=4]
>\setupcolumnset[example[1][width=.3\makeupwidth]

Note: unbalanced []s.

>\starttext
>...
>\startcolumnset[example]
>...(text goes here)
>\stopcolumnset
>...
>\stoptext
>-----------------------
>In the above example there are 4 columns (line 1) but the first
>column takes up 3/10 of the available horizontal space (line 2).
>The other columns automatically adjust to fill the remaining
>space.

The documentation (columns.pdf) says:
"For special effects, you can set the width per column. In that case
you need to be aware of the fact that TEX works its way through the
document per paragraph. Changing the width halfway a [sic] paragraph
is possible but will affect the whole paragraph. Therefore, this
feature works best when you also goto the next column explicitly."

From that documentation, it seems that context has implemented
most (all?) of the LaTeX3 experimental output routine (xor bundle).


Dan
To reply by email, change LookInSig to luecking

*** Posted via a free Usenet account from http://www.teranews.com ***

jo...@wexfordpress.com

unread,
May 6, 2006, 7:36:11 AM5/6/06
to
I was not aware of the LaTeX3 plans in this area. I suspect that the
Context code is indepedently derived.

Is there current activity on the LaTeX3 front?

John culleton

Robin Fairbairns

unread,
May 6, 2006, 2:50:50 PM5/6/06
to

i'm pleased that hans doesn't (contrary to other appearances) have
magic powers.

>From that documentation, it seems that context has implemented
>most (all?) of the LaTeX3 experimental output routine (xor bundle).

indeed; and with a pleasing user interface. deeply impressive.
--
Robin Fairbairns, Cambridge

0 new messages