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] Edge case with dbfo-need

Hi Dick,
This was actually an oversight when the dbfo-need template was written. That feature is a bit of a kludge to begin with, because there is no property in XSL-FO that performs that function. The PI does it by creating a block-container of the specified height, then backspacing up to the top of that container with a negative space-before value to output the content that follows. If the container does not fit, it forces a page break, otherwise the content should just overwrite the container.

But getting the spacing right is tricky, and the template has to resort to testing to see what the following element is and then tries to recreate that space. It did not have a case for admonitions, hence the lack of space for the warning element.

I just updated the pi.xsl stylesheet module, checked it into SVN, and tested the latest snapshot. So that admonition problem should be fixed.

I also got dbfo-need working properly with FOP 1.1. A previous message mentioned that your example worked with FOP 1.1, but that was just a lucky happenstance that only worked with the fop1.extensions param was not set. Now that feature works with FOP 1.1 with that param set to 1 as it should be.

The updated template is in the snapshot in fo/pi.xsl.

Bob Stayton
Sagehill Enterprises

On 4/1/2015 12:47 PM, Richard Hamilton wrote:
I just ran into an interesting edge case when building with dbfo-need when the following conditions are true:

1) You have a dbfo-need processing instruction above an admonition (warning, tip, etc.)
2) The admonition is the last element in a section (technically, the last block element; an indexterm doesn't change anything).
3) The dbfo-need is not activated (that is, the admonition is small enough to fit on the current page).

When these three things are true, the vertical space between the preceding paragraph and the admonition will be smaller if there is a dbfo-need than if the processing instruction is not present.

I was running the 1.78.1 stylesheets (as well as a more recent snapshot) with no customization, Saxon, and XEP. I don't have a version of FOP active, so I don't know if this is a problem with XEP, the stylesheets, or something else.

I've included a short example that illustrates the problem.

Does anyone have any idea what might be going on here?

Best regards,
Dick Hamilton
XML Press
XML for Technical Communicators

================ Sample docbook =================

<?xml version="1.0" encoding="utf-8"?>
<article xmlns="http://docbook.org/ns/docbook"; version="5.0">
   <title>dbfo-need and admonition example</title>
   <section xml:id="s.shorthistory">
     <title>First section</title>
     <para>This first admonition has a dbfo-need processing instruction in front of it.</para>
     <?dbfo-need height="1in"?>
       <para>This one has a dbfo-need in front of it.</para>
     <title>Second section</title>
     <para>This admonition does not have a dbfo-need processing instruction in front of it.</para>
       <para>This one has no dbfo-need in front of it.</para>

To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org

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