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] Applying emphasis to indexterms


Hi Dave,
First of all, congratuations on finding the correct template to customize.  The autoidx templates are the most complicated in DocBook XSL, IMHO.
 
The templates in autoidx.xsl make use of some entity references such as "&primary;"  to keep the code readable.  The entities are declared in common/entities.ent.  If you look at the top of the fo/autoidx.xsl file, you will see a parameter entity declaration and reference that you need to include in your customization layer.  Then your stylesheet should at least compile without errors.
 
Your change is close, but not quite there.  The context node for this template is d:indexterm, so the condition needs to have a more complete XPath:
 
  <xsl:when test="d:primary/d:emphasis">
 
Your change makes the entire primary text italic even if emphasis is used for only one word in the primary, but I guess you are only using it for whole entries.
 
Bob Stayton
Sagehill Enterprises
bobs@sagehill.net
 
 
----- Original Message -----
From: Xmplar
Sent: Monday, March 12, 2012 3:02 AM
Subject: [docbook-apps] Applying emphasis to indexterms

I?m trying to ensure that any primary, secondary or tertiary entries in the indexterm element, and which have a nested emphasis element, are generated in the index with an italic font style. I?m using the basic indexing method with 1.76.1ns. I?ve tried to track the coding to customise, and from autoidx.xsl I thought that the template <xsl:template match="d:indexterm" mode="index-primary">  would be the most likely (I?m looking for an fo:block where the primary term is applied).

Here is my customisation from that template:

    <xsl:for-each select="$refs/d:primary">
       
<xsl:if test="@id or @xml:id">
         
<fo:inline id="{(@id|@xml:id)[1]}"/>
       
</xsl:if>
     
</xsl:for-each>
     
<!--modified 12/3/12:-->
     
<xsl:choose>
       
<xsl:when test="d:emphasis">
         
<fo:inline font-style="italic">
           
<xsl:value-of select="d:primary"/>     
         
</fo:inline>
       
</xsl:when>
       
<xsl:otherwise>
         
<xsl:value-of select="d:primary"/>
       
</xsl:otherwise>
     
</xsl:choose>

? and obviously not working (this template in my customisation -  and seemingly any from autoidx - gives me error messages about variables not declared ? so it won?t transform). Where do I need to customise? Typical markup in a chunk (to format primary entries with <emphasis>) is:

<entry><indexterm>
               
<primary><emphasis>European carp</emphasis></primary>
               
<secondary>Cyprinus carpio</secondary>
             
</indexterm>

Where should I be looking so that <emphasis> is applied?

--
Dave Gardiner



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