Re: [xsl] XSL FO keep-together=int Implementation?

Subject: Re: [xsl] XSL FO keep-together=int Implementation?
From: "J.Pietschmann" <j3322ptm@xxxxxxxx>
Date: Sun, 12 Jun 2005 19:54:59 +0200
G. Ken Holman wrote:
[snip]
Thank you for your extensive explanation. I was, however, after more
concrete advice.
Let's say I have a listing in a block which should be printed on the
next page if it fits it, possibly leaving a large space on the current
page, but which should just continue on the current page if it doesn't
fit completely on the next page. I believe it depends on the processor
whether this can be achieved.
Let's say the processor implements a penalty based algorithm similar to Knuth's paragraph filling (which is currently implemented in FOP dev
[*not* the latest FOP release, 0.20.5]). Lets also take a block which
will fill the remaining space on the current page, the next page and a
bit of the page after the next page, for a total of two page breaks.
If the processor decides to start the block on the next page, the block
still fits the next page and the page after the next, also for a total
of two page breaks. Which layout is choosen depends on which penalties
the implementor assigns to "normal" page breaks and to page breaks
caused by "eagerly shifting", and perhaps how much leaving space weights
in. It may be possible to put the block in question in another block
togehter with preceding content and a lower keep precedence for fine
tuning. However, I don't think this is portable, and the FO processor
might decide to start a new page anyway once it detects the block wont
fit completely onto the current page (as FOP 0.20.5 does).
So the question remains: How do I achieve the layout described above
in a processor independent way, using keep precedence levels or
whatever, and without guessing in advance whether the content will fit
on a page (for assigning different keep precendences in pre-layout
stages or whatever)?


I've been anxious to find implementations of relative keep strength in order to improve the presentation of the annexes of my XSL-FO book, but I haven't seen any yet. I would have liked to help Alex by citing an implementation, but I didn't have anything to contribute to his question.

FOP HEAD is on the way of implementing this. There is still quite a bit to code, so don't hold your breath. A pre-alpha release is planned in two or three months.

J.Pietschmann

Current Thread