docbook-apps

  • 1.  Re: [docbook-apps] table vertical spans and page breaks

    Posted 11-11-2008 18:30
    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.

    Bob Stayton
    Sagehill Enterprises
    bobs@sagehill.net


    ----- Original Message -----
    From: "Marcel Tromp" <marcel_docbook@tromp.org>
    Cc: <docbook-apps@lists.oasis-open.org>
    Sent: Saturday, November 08, 2008 1:20 AM
    Subject: Re: [docbook-apps] table vertical spans and page breaks


    >I ended up fixing this by embedding tables in a table.
    >
    > Marcel
    > --
    >
    >
    > Marcel Tromp wrote:
    >> I tried adding this, but it doesn't seem to work with fop 0.95: it still
    >> breaks in the middle of a straddled cell.
    >>
    >> I also tried to do the same thing on table.row.properties and this didn't
    >> work either.
    >>
    >> Marcel
    >> --
    >>
    >> Bob Stayton wrote:
    >>> Hi,
    >>> It isn't necessary to customize the template with match="entry" to add
    >>> the keep-together properties, as there is a utility template named
    >>> "table.cell.properties" that can accomplish that. This is a template,
    >>> not an attribute-set, and is described in this section of my book:
    >>>
    >>> http://www.sagehill.net/docbookxsl/PrintTableStyles.html#table.cell.properties
    >>>
    >>> Just add this to the customized template:
    >>>
    >>> <xsl:attribute name="keep-together.within-column">always</xsl:attribute>
    >>>
    >>> Bob Stayton
    >>> Sagehill Enterprises
    >>> bobs@sagehill.net
    >>>
    >>
    >> ---------------------------------------------------------------------
    >> To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org
    >> For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org
    >
    >
    > ---------------------------------------------------------------------
    > To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org
    > For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org
    >
    >
    >




  • 2.  Re: [docbook-apps] table vertical spans and page breaks

    Posted 11-12-2008 11:24
    Hi,

    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">
    <fo:block> </fo:block>
    <fo:block> </fo:block>
    <fo:block> </fo:block>
    ...
    </fo:block>
    But obviously the number of blocks will depend on the content of the
    other cells, which will make the thing tricky to implement.

    <snip/>

    Vincent