xsl-list
[Top] [All Lists]

RE: FO: keep strength with larger than a page content

2004-08-19 20:59:40
Hi Ken,

At 2004-08-19 16:59 +0300, Jarno(_dot_)Elovirta(_at_)nokia(_dot_)com wrote:
Simply, is there a way around 
<http://www.dpawson.co.uk/xsl/sect3/keepsNbreaks.html> "[I]n 
XSL-FO 1.0 
there is no way to have an item that is too long for a page 
begin at the 
top of a page"?

That's actally a quote from you from the FAQ, and from that I understood that 
you can't do it in XSL 1.0.

The idea of "keep strength" allows you to wrap smaller 
portions of your 
flow with higher strengths.  As blocks of content with low 
strength values 
break because they don't fit on a page, smaller blocks with 
higher values 
of strength are the next "breaking points" for blocks of flow.

You could nest a flow with a keep-together="1" with 
consecutive flows of 
keep-together="2" where you will allow breaks only if 
necessary, and then 
break up any flow with keep-together="2" with consecutive flows of 
keep-together="3" where you will allow breaks in those only 
if necessary, 
and so on.

But still, if you have

  fo:list-item
    fo:list-item-label
      fo:block
    fo:list-item-body
      fo:block
      fo:external-graphic
      fo:block
      fo:external-graphic

where the item body contains e.g. large screen captures and will not fit into a 
single page. If I set

  fo:list-item-body keep-together="1"
    fo:block keep-together="2"
      fo:block
      fo:external-graphic
    fo:block keep-together="2"
      fo:block
      fo:external-graphic

Then that should take care of it, but because I have no "wrapper blocks" in the 
item body, so should I then create 

  fo:list-item-body keep-together="1"
    fo:block keep-together="2"
      fo:block
      fo:external-graphic
      fo:block
      fo:external-graphic

where the block on line two is there just to define the keep block?

Also, should one define the keep-together="1" in the list-item or the 
list-item-body? Both 

The catch is that I don't think any of the engines implement 
numeric values 
of keep strength and they only support "always" ... which has 
a different 
semantic than "a very big number".  If you use "always" and 
it doesn't fit, 
then it is considered a runtime overflow error.

Oh bugger, I had assumed AXF 3 would, but it seems it really doesn't. So that's 
why it didn't work. Hmm.
 
I hope this helps.

Yes, thanks.

Cheers,

Jarno -  Massiv In Mensch: Schach Matt