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] FOP and dbfo-need

Hi Bob!

Thank you! I can live with dbfo keep-together even if dbfo-need would
have been a better fit for some of the larger entries.


On 2013-10-04 20:04, Bob Stayton wrote:
> Hi Peter,
> I'm afraid that the dbfo-need processing instruction still does not
> always work properly in FOP 1.1. It sort of works in some cases, such
> as between paras or whole lists, but not in other cases.
> The PI works by inserting a fo:block-container of the specified
> height, then backing up using a block with a negative space-before of
> the same height, and then overwriting the invisible block-container
> with the text that follows the PI. If the block-container triggers a
> page break, then it backs up to the top of the next page, as it
> should. The PI is also supposed to "disappear" space-wise if it does
> not trigger a page break.
> The main problem is that FOP has not fully implemented space-before
> (see the space-before entry on the FOP standards compliance page,
> which says "Space adjustment may not fully work everywhere, yet."
> (http://xmlgraphics.apache.org/fop/compliance.html). As you found,
> putting the PI between lists works to break the page, but it doesn't
> adjust the vertical spacing properly if it doesn't break. In the case
> of the PI inside a variablelist/listitem, FOP outputs the term,
> breaks the page, and the listitem disappears. In other FO processors
> like XEP or Antenna House, the term and listitem stay together and
> bump to the next page as they should.
> Because of these problems, the stylesheet by default disables the
> dbfo-need PI when the stylesheet param 'fop1.extensions' is set to 1.
> That param should be set when using FOP 1.1. If the PI is having any
> effect at all, then you must not be setting that param. If that's the
> case, then you probably aren't getting PDF bookmarks either.
> Not all is lost, however. The keep-together processing instruction
> works in FOP, so you can add it to each varlistentry as follows:
> <varlistentry><?dbfo keep-together="always"?>
>  <term>...
> That will at least prevent each varlistentry from breaking across a page.
> Bob Stayton
> Sagehill Enterprises
> bobs@sagehill.net
> --------------------------------------------------
> From: "Peter Rosin" <peda@lysator.liu.se>
> Sent: Friday, October 04, 2013 9:16 AM
> To: <docbook-apps@lists.oasis-open.org>
> Subject: [docbook-apps] FOP and dbfo-need
>> Hi!
>> I'm having some trouble with the <?dbfo-need height="2in" ?> processing
>> instruction. I use DocBook 4.5 with nothing fancy in the stylesheet and
>> I use FOP-1.1 to generate the PDF.
>> I have a <variablelist> that spans several pages, some entries are big, some
>> are small. So, I want to declare how much space some <varlistentry>s need,
>> in order to make it all not look insanely silly.
>> The "Soft page breaks" section in chapter 8 of the DocBook XSL guide [1]
>> hints that I should put the PI inside the <listitem>, but that simply does
>> not work for me (the content of the <listitem> disappears).
>> So, I tried to break up the <variablelist> everywhere I need to declare
>> how much space is needed (by also explicitly specifying the termlength
>> for each list part, to make them line up). This works, but if the page
>> break then moves, the broken up <variablelist> inserts a different
>> amount of space between the last <varlistentriy> of the prior list
>> and the first entry of the next list. Not very surprising really, but
>> it is surprising that the vertical space is equal if this PI is not
>> there. I would have thought that the whole point of this PI was that
>> it should disappear into thin air if not "invoked" near the end of a
>> page?
>> I.e.
>> <variablelist>
>>   <varlistentry>...</varlistentry>
>>  <!-- some amount of vertical space -->
>>   <varlistentry>...</varlistentry>
>> </variablelist>
>>  <!-- same amount of vertical space -->
>> <variablelist>
>>   <varlistentry>...</varlistentry>
>> </variablelist>
>> <?dbfo-need height="2in" ?>
>>  <!-- some *other* amount of vertical space, huh? -->
>> <variablelist>
>>   <varlistentry>...</varlistentry>
>> </variablelist>
>> So, while I can make it look good once, it will be a nightmare to
>> maintain. I basically have to manually page break the document for
>> every change I make and differently so for every page size I may
>> decide to render to.
>> Can anyone offer any advise?
>> Cheers,
>> Peter
>> [1] http://www.sagehill.net/docbookxsl/index.html

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