Hi Georg,

Georg Datterl wrote:
> Hello Vincent, 
> 
>>> Like many poster before me, I do have a problem with different 
>>> column-counts on one page. Only slightly different from the examples I 
>>> found in this 
>>> mailing list.
>>>
>>> Usually, I want a 2-column-layout, but sometimes blocks span both columns. 
>>> In this cases I want, contrary to all other examples I found up to now, 
>>> only text in the first column. No column breaks, no centered column, only 
>>> the first column filled:
>> Interesting requirement. Actually the XSL-FO Recommendation doesn't seem to 
>> say anything about column balancing. It just seems that most of the time 
>> people will expect columns to be balanced before starting a block that spans 
>> all the page width. You're the exception that proves the rule
>> ;-)
> 
> Well, most of the time even I would use the balancing algorithm, but not in 
> all cases. I guess I could implement a kind of fox-useBalancer="false" for 
> this cases, but even that would not make Block C (see below) possible.

Well, I think it would. Basically the option would be “do not balance
columns before a block that spans the whole page”. So, on your example
below, the bottom of page 1 is reached before block E is encountered, so
columns are balanced. On page 2, block E is encountered so column
balancing is disabled, then re-enabled after block E until the bottom of
the page, etc. Actually this would be more efficient since there would
be no need to re-typeset the content, in order to balance columns before
a spanning block, as I believe it’s done ATM. Might be a useful
extension.


> <snip/>
>>> The only way I found to reach my goal would be manual splitting and 
>>> adding span="all" and margin-right to some blocks. Which is neither 
>>> nice nor foolproof. Can anybody here think of a better solution?
>> I can't think of any way to achieve what you want that's not a workaround of 
>> some kind. Maybe you could use the keep-together.within-column property 
>> instead of specifying span="all" and a right margin; but that still requires 
>> you to do manual work.
> 
> I don't mind the manual work (as long as it's the computer doing it), 
> mostly I mind the manual splitting of one fo:block into one 
> 2-column-block (or right column block) on one page and a second 
> 1-column-block with margin on the second page, because the block could 
> contain stuff like lists and that seems quite error-prone to me. 
> 
> keep-together.within-column would make the whole block move to the second 
> column if there are two blocks before a wide block. 
> Using a combination of keep-together="always" and 
> keep-with-previous.within-column="always" works fine for the first page, but 
> when breaking from page 1 to page 2, I would want a page break, maybe even a 
> column break on page 1, but no column break on page 2 (Block C in this 
> sketch): 

My idea was to manually split block C, and surround the part of it
that’s on the second page /and/ block D with another block that has
a keep-together.within-column setting. An alternative to the spanning
block with a big right margin, that might be easier to implement, but
that won’t avoid you to manually split the content unfortunately.


> AAA 
> AAA 
> BBBBBBB
> CCC CCC
> CCC CCC
> 
> CCC
> CCC
> DDD
> EEEEEEE
> FFF FFF
> 
> Using keep-together.within-column  would result in 
> 
> CCC DDD
> CCC
> EEEEEEE
> FFF FFF
> FFF FFF
> 
> 
> Regards,
>  
> Georg Datterl


Vincent

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to