OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-apps message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: Re: [docbook-apps] table vertical spans and page breaks


Bob Stayton wrote:
> OK, I checked this out, and it seems that FOP 0.95 knows how to keep an 
> ordinary table cell together, but it does not know how to keep a cell 
> together if it spans down to additional rows.  That should probably be 
> reported as a bug on FOP, because it should work for spanned cells too.

I think FOP is correct with respect to the XSL-FO specification. This is
a corner case here, that’s not well described by the spec and does
certainly not match common sense.

Actually the keep-together property does not apply to the fo:table-cell
element. It does apply to the block children of a table cell, though,
and that should work properly in FOP even with row-spanning cells.
However, if the cell is not filled with its content (if there is some
empty space left at the bottom of the cell), then it’s perfectly
acceptable to break there:
     |          |            |
     | cell 1.1 | content of |  \
     |__________| a row-     |   |_ This will remain
     |          | spanning   |   |  together on a page
     | cell 2.1 | cell       |  /
     |__________|            |

     <----- Page break ------>
     |          |            |
     | cell 3.1 |            |

The only solution, to my knowledge, to properly handle this is to set
keep-together on every row spanned by the cell, plus keep-with-next on
every row but the last one.

It might also be possible to put a block with keep-together inside the
spanning cell, and as its children as many blocks containing
non-breaking spaces as necessary to fill the cell:
     <fo:block keep-together.within-column="always">
But obviously the number of blocks will depend on the content of the
other cells, which will make the thing tricky to implement.



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]