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] fo pagebreaks in refentries


On Fri, Oct 31, 2003 at 12:19:33PM +0000, Brian McGurk wrote:
> 
> Hi,
> 
> I have an API description in docbook, where each function is a
> refentry. The problem is that the transformation to fo puts a page
> break before each function. Is there an easy way to stop this? I had a
> look in xsl-stylesheets/fo/refentry.xsl and found the following:
>   <xsl:choose>
>     <xsl:when test="not(parent::*) or parent::reference or parent::part">
>       <!-- make a page sequence -->
>       <!-- ... other stuff ... -->
>     </xsl:when>
>     <xsl:otherwise>
>       <fo:block break-before="page">
>         <xsl:copy-of select="$refentry.content"/>
>       </fo:block>
>     </xsl:otherwise>
>   </xsl:choose>
> but I'm very new to XSLT and docbook and don't know how to override
> that or whether doing so is wise. I'm using xsltproc.
> 
> Any help would be appreciated.

The simplest change would be to copy the whole template
to your customization layer and change this line:

       <fo:block break-before="page">

to something like:

       <fo:block space-before="2em">

That said, I think it would be a good idea if the
template was written with this property controlled
by an attribute-set rather than being hardcoded.

Define the attribute-set at the top level:

<xsl:attribute-set name="refentry.properties">
  <xsl:attribute name="page-break">before</xsl:attribute>
</xsl:attribute-set>

and in the template, use the attribute set:

       <fo:block xsl:use-attribute-sets="refentry.properties">
         <xsl:copy-of select="$refentry.content"/>
       </fo:block>

Then you could reset page-break="none" in your
customization layer.  You would have to explicitly reset
it to 'none' rather than omit it because like-named
attribute-sets are merged at runtime.

And you could add any other attributes, such as space-before
or maybe even border-before properties if you want a rule
line to separate refentry elements.

I went ahead and filed an RFE on sourceforge for
this feature.

Bob Stayton                                 400 Encinal Street
Publications Architect                      Santa Cruz, CA  95060
Technical Publications                      voice: (831) 427-7796
The SCO Group                               fax:   (831) 429-1887
                                            email: bobs@sco.com


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