You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-dev@xmlgraphics.apache.org by Arnd Beißner <ar...@cappelino.de> on 2003/06/26 01:20:36 UTC

Spec drives me crazy: column-count and blocks with mixed spans

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.

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

--
Cappelino Informationstechnologie GmbH
Arnd Beißner

---------------------------------------------------------------------
To unsubscribe, e-mail: fop-dev-unsubscribe@xml.apache.org
For additional commands, email: fop-dev-help@xml.apache.org


Re: Spec drives me crazy: column-count and blocks with mixed spans

Posted by "Peter B. West" <pb...@powerup.com.au>.
Peter B. West wrote:
> Arnd Beißner wrote:
>
...

>> 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
...

> 
>   If your second 
> scenario were intended,

(that should be, the second option of Scenario 3)

  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)

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


---------------------------------------------------------------------
To unsubscribe, e-mail: fop-dev-unsubscribe@xml.apache.org
For additional commands, email: fop-dev-help@xml.apache.org


Re: Spec drives me crazy: column-count and blocks with mixed spans

Posted by "Peter B. West" <pb...@powerup.com.au>.
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: fop-dev-unsubscribe@xml.apache.org
For additional commands, email: fop-dev-help@xml.apache.org