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] Part title in chunks header


Hi Bob,
That's done the trick, thanks again for your help.
Cheers:)

On 12 Jun 2012, at 18:55, Bob Stayton wrote:

Hi Paddy,
The context element for the call to the 'header.content' template is the current chunk element.  Since chapter is a chunk element, you can add to your customization a condition to exclude chapter (and appendix), something like this (not tested):
 
<xsl:if test="ancestor-self::d:part and not(self::d:chapter) and not(self::d:appendix)">
  etc.
 
 
Bob Stayton
Sagehill Enterprises
bobs@sagehill.net
 
 
----- Original Message -----
Sent: Monday, June 11, 2012 9:57 AM
Subject: Re: [docbook-apps] Part title in chunks header

Hi Bob,
Thanks again for getting back and helping me with this, the part title, using your code, is now appearing in the body pages. 
The only problem I have now is that it is being duplicated in the header of the tocs for each chapter as the part title was already appearing in the chapter tocs, is there a way of suppressing this chapter toc duplication?
Cheers:)

On 8 Jun 2012, at 18:07, Bob Stayton wrote:

Hi Paddy,
There is no <marker> element in XHMTL, nor is there a <retrieve-marker> element.  Those are part of the XSL-FO vocabulary for paginated output.
 
You can put the content you want to generate directly in the customized header.navigation template, in the location where you currently have <retrieve-marker>.  The context node for when the header.navigation template is called is the element being chunked, so you will have to select for an ancestor part element to get its title.  Something like this:
 
<xsl:if test="ancestor-or-self::d:part">
  <xsl:apply-templates select="ancestor-or-self::d:part" mode="title.markup"/>
  <xsl:text> - </xsl:text>
</xsl:if>
 
 
Bob Stayton
Sagehill Enterprises
bobs@sagehill.net
 
 
----- Original Message -----
Sent: Wednesday, June 06, 2012 8:05 AM
Subject: [docbook-apps] Part title in chunks header

Hi,
I'm trying to emulate a customisation Bob helped me with, I added the part title from a docbook5 book project to the body pages of the pdf fo output using the "part.titlepage.before.recto" template from the titlepage.templates.xsl added to my custom layer:

    <xsl:template name="part.titlepage.before.recto">
        
<fo:marker marker-class-name="part.head.marker">
            
<xsl:apply-templates select="d:title|d:info/d:title" mode="title.mode"/>
        
</fo:marker>
    
</xsl:template>

and then using this in the header.content template in the pagesetup.xsl file:

<fo:retrieve-marker retrieve-class-name="part.head.marker"
                                    retrieve-position="first-including-carryover"
                                    retrieve-boundary="document"/>

Which did the job perfectly.
---------------------------------
I now need to do the same for the xhtml chunks output.

I've added this to my xhtml chunks custom layer:

    <xsl:template name="part.titlepage.before.recto">
        
<marker marker-class-name="part.head.marker">
            
<xsl:apply-templates select="d:title|d:info/d:title" mode="title.mode"/>
        
</marker>
    
</xsl:template>

And also taken the header.navigation template from the chunk-common.xsl file and made the following customisation, I've also swapped the $row1 and $row2 to allow the chapter title to display before the section title.

    <xsl:template name="header.navigation">
        
<xsl:param name="prev" select="/d:foo"/>
        
<xsl:param name="next" select="/d:foo"/>
        
<xsl:param name="nav.context"/>
        
        
<xsl:variable name="home" select="/*[1]"/>
        
<xsl:variable name="up" select="parent::*"/>
        
        
<xsl:variable name="row1" select="$navig.showtitles != 0"/>
        
<xsl:variable name="row2" select="count($prev) &gt; 0                                     
            or (count($up) &gt; 0                                          
            and generate-id($up) != generate-id($home)                                         
            and $navig.showtitles != 0)                                     
            or count($next) &gt; 0"/> 
        
<xsl:if test="$suppress.navigation = '0' and $suppress.header.navigation = '0'">
            
<div class="navheader">
                
<xsl:if test="$row1 or $row2">
                    
<table width="100%" summary="Navigation header">
                        
<xsl:if test="$row1">
                            
<tr>
                                
<th colspan="3" align="center">
                                    
<!-- poc alt, switched the $row to enable the chapter title
                                        to show before section title -->
                                    
<xsl:choose>
                                        
<xsl:when test="count($up) &gt; 0                                   
                                            and generate-id($up) != generate-id($home)                                   
                                            and $navig.showtitles != 0">



                                            
<!-- add marker here -->
                                            
<retrieve-marker retrieve-class-name="part.head.marker"
                                                retrieve-position="first-including-carryover"
                                                retrieve-boundary="document"/>
                                            
<xsl:text> - </xsl:text>
                                            
<!-- end additional header marker -->



                                            
<xsl:apply-templates select="$up" mode="object.title.markup"/>
                                        
</xsl:when>
                                        
<xsl:otherwise>&#160;</xsl:otherwise>
                                    
</xsl:choose>
                                    
<!-- end poc alt --> 
                                
</th>
                            
</tr>
                        
</xsl:if>
                        
                        
<xsl:if test="$row2">
                            
<tr>
                                
<td width="20%" align="{$direction.align.start}">
                                    
<xsl:if test="count($prev)&gt;0">
                                        
<a accesskey="p">
                                            
<xsl:attribute name="href">
                                                
<xsl:call-template name="href.target">
                                                    
<xsl:with-param name="object" select="$prev"/>
                                                
</xsl:call-template>
                                            
</xsl:attribute>
                                            
<xsl:call-template name="navig.content">
                                                
<xsl:with-param name="direction" select="'prev'"/>
                                            
</xsl:call-template>
                                        
</a>
                                    
</xsl:if>
                                    
<xsl:text>&#160;</xsl:text>
                                
</td>
                                
<th width="60%" align="center">
                                    
<!-- poc alt, switched the $row to enable the chapter title
                                        to show before section title -->
                                    
<xsl:apply-templates select="." mode="object.title.markup"/>
                                    
<!-- end poc alt -->
                                
</th>
                                
<td width="20%" align="{$direction.align.end}">
                                    
<xsl:text>&#160;</xsl:text>
                                    
<xsl:if test="count($next)&gt;0">
                                        
<a accesskey="n">
                                            
<xsl:attribute name="href">
                                                
<xsl:call-template name="href.target">
                                                    
<xsl:with-param name="object" select="$next"/>
                                                
</xsl:call-template>
                                            
</xsl:attribute>
                                            
<xsl:call-template name="navig.content">
                                                
<xsl:with-param name="direction" select="'next'"/>
                                            
</xsl:call-template>
                                        
</a>
                                    
</xsl:if>
                                
</td>
                            
</tr>
                        
</xsl:if>
                    
</table>
                
</xsl:if>
                
<xsl:if test="$header.rule != 0">
                    
<hr/>
                
</xsl:if>
            
</div>
        
</xsl:if>
    
</xsl:template>

I'm getting the additional " - " text but no sign of the part title before it, I'm sure I'm missing something fundamental due to my beginner status, can anyone point me in the right direction.
---------------------------
Best Regards
Paddy O' Connell
Fife Design Partnership
01334 828393






---------------------------
Best Regards
Paddy O' Connell
Fife Design Partnership
01334 828393






---------------------------
Best Regards
Paddy O' Connell
Fife Design Partnership
01334 828393






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