Arnd Beißner wrote:
Hi,

I just decided that I can't figure out what - according to the standard - should exactly happen if you have multiple columns in your body region and mix top-level fo:blocks of span=all with others of span=1. Perhaps one of you already found something...

I can see how the span-reference-areas need to be spaced horizontally (let's assume western writing modes for simplicity). And I can see that mixing top-level fo:blocks of different spans (at least "1" and "all") is allowed, though only for fo:blocks that direct children of fo:flow.

In fact, "none" and "all".


But as for stacking the areas into the columns? Let's say we have scenario 3 (see below). Let's further assume that all content *could* fit on one page. But from how I read the spec, what would just happen is that first blocks are stacked into the first column until it's full. Then blocks are stacked into the next column. Let's say the second column would become about half full. Now for the following fo:block with span=all. There's no way to get a fitting area from that page - except of course if the block areas in the columns would be rearranged so that each of the columns is about half full. With FOP, this is roughly what seems to happen (not exactly, tough). But why? The spec doesn't seem to specify (or even allow) that.

Any ideas?

Scenarios: (always column-count=3)

Scenario 1 (just blocks with span=all):
ABC
ABC
ABC

ok, no problems.

Scenario 2 (block with span=all, then blocks with span=1)
AAA
BCD
BCD

clear so far.

Scenario 3 (blocks with span=1, THEN 1 block with span=all

Does this happen (let's assume content for the columns is able to fill about half the page):
ABC
ABC
DDD


or this?

ABC
ABC
ABC + next page:
DDD

Arnd,


I have always *assumed* that column balancing is implied whenever top-level block children of a flow have different "span" attributes, because it's the only approach that makes sense. If your second scenario were intended, then the 'span="all"' block could not share the page with the previous 'span="none"' blocks unless there were less than one column's worth of text. I.e.
A
B
C
DDD
(Scenario none-all)


This is because column spill from the first column on the page could not happen until the first column had filled.

<quote>
The main-reference-area has as its children a sequence of span-reference-areas. These are reference-area block-areas with zero border and padding, whose inline-progression-dimension is equal to that of the main-reference-area, and which are normally stacked within the main-reference-area.
</quote>


I.e. there may be multiple span-reference-areas in a single main-reference-area, and those S-R-As may have different numbers of normal-reference-area children, depending on the column-count attribute of the region-body and the span attribute of the block children of the flow.

This doesn't seem to make sense for the scenario none-all case above, unless column balancing is assumed.

That leaves open the question of whether, on the last page of a page-sequence, the columns should be balanced. My intuitive approach would be to balance always. However, there seems to be another attribute required for column spill behaviour, especially for the last page of a page-sequence.

Peter
--
Peter B. West  http://www.powerup.com.au/~pbwest/resume.html


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



Reply via email to