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]
