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] Footnote marks missing


I did the same and got a footnote mark. Using the previous oxygen configuration but not my customization file (attached) I got the footnote mark. I cannot see what it is in the customization that blocks footnote marks.

Please help

Regards

Bernhard

Am 08.02.2019 um 18:09 schrieb Bob Stayton:

Hi Bernhard,

I just copied and pasted your example into my document and processed it with Oxygen's default docbook PDF transformation, and I see the footnote mark "a" in both the paragraph and before the footnote paragraph. The stylesheet uses the same template to generate the mark, so I'm not sure why it is not working for you.

Bob Stayton
Sagehill Enterprises
bobs@sagehill.net
On 2/8/2019 8:18 AM, Bernhard Kleine wrote:

Âdie Schmetterlinge<footnote label="a">
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ <para>Die Begriffe Falter und Schmetterling sind meines Wissens gleichbedeutend und
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ werden in gleichem Sinne verwendet.</para>
ÂÂÂÂÂÂÂÂÂÂÂ </footnote> vor,

Am 08.02.2019 um 17:11 schrieb Bob Stayton:

That's odd. My footnotes are numbered, not lettered. How is it that your footnotes are lettered? Can you supply a sample of the markup you used?

Bob Stayton
Sagehill Enterprises
bobs@sagehill.net
On 2/8/2019 4:49 AM, Bernhard Kleine wrote:

In my book I noticed that footnote marks are missing. I didnot change anything with respect to footnote marks in the configuration of oxygen or in the customization file. I use oxygen 20.1 and the inbuilt saxon 6.5 to produce a pdf.

I need some advice to have footnote marks at the footnote:




The "a" is not used before "Die Begriffe..."

Regards 
Bernhard
-- 
spitzhalde9
D-79853 lenzkirch
bernhard.kleine@gmx.net
www.b-kleine.com, www.urseetal.net
-
thunderbird mit enigmail
GPG schlÃssel: D5257409
fingerprint:
08 B7 F8 70 22 7A FC C1 15 49 CA A6 C7 6F A0 2E D5 25 74 09
-- 
spitzhalde9
D-79853 lenzkirch
bernhard.kleine@gmx.net
www.b-kleine.com, www.urseetal.net
-
thunderbird mit enigmail
GPG schlÃssel: D5257409
fingerprint:
08 B7 F8 70 22 7A FC C1 15 49 CA A6 C7 6F A0 2E D5 25 74 09
-- 
spitzhalde9
D-79853 lenzkirch
bernhard.kleine@gmx.net
www.b-kleine.com, www.urseetal.net
-
thunderbird mit enigmail
GPG schlÃssel: D5257409
fingerprint:
08 B7 F8 70 22 7A FC C1 15 49 CA A6 C7 6F A0 2E D5 25 74 09
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY lowercase "'abcdefghijklmnopqrstuvwxyz'">
<!ENTITY uppercase "'ABCDEFGHIJKLMNOPQRSTUVWXYZ'">

<!ENTITY primary   'normalize-space(concat(primary/@sortas, primary[not(@sortas)]))'>
<!ENTITY secondary 'normalize-space(concat(secondary/@sortas, secondary[not(@sortas)]))'>
<!ENTITY tertiary  'normalize-space(concat(tertiary/@sortas, tertiary[not(@sortas)]))'>
<!ENTITY scope 'count(ancestor::node()|$scope) = count(ancestor::node())'>
<!ENTITY sep '" "'>
<!ENTITY % fontsizes SYSTEM "mysizeslarge.ent">
 %mysizeslarge;
]>
<xsl:stylesheet 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
  xmlns:d="http://docbook.org/ns/docbook";
  xmlns:fo="http://www.w3.org/1999/XSL/Format"; version="1.0">
  <xsl:import href="http://docbook.sourceforge.net/release/xsl-ns/current/fo/docbook.xsl"/>
  <xsl:param name="local.l10n.xml" select="document('')"/>
  <xsl:param name="draft.watermark.image">draft.png</xsl:param>
  <l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0";>
  
    <l:l10n language="de">
      <l:gentext key="listoftables" text="Liste der Faltertabellen"/>
      <l:gentext key="ListofTables" text="Liste der Faltertabellen"/>
      <l:gentext key="Index" text="Namensliste"/>
      <l:gentext key="index" text="Namensliste"/>
      <l:context name="title">
        <!-- formatiert Tabellen und Abbildungstitel -->
        <l:template name="table" text="%t"/>
        <l:template name="figure" text="%t"/>
      </l:context>
      <l:context name="xref-number-and-title">
        <l:template name="table" text="in Tab. %t (S. %p)"/>
        <l:template name="figure" text="(%t; S. %p)"/>
        <l:template name="chapter" text="Kapitel %n (S. %p)"/>
        <l:template name="entry" style="PageInParenE" text="S. %p"/>
        <l:template name="mediaobject" style="seite" text="S. %p"/>
        <l:template name="sect1" style="PageInParen1" text=" (S. %p)"/>
        <l:template name="sect2" style="PageInParen1" text=" (S. %p)"/>
        <l:template name="sect3" style="PageInParen1" text=" (S. %p)"/>
        <l:template name="sect4" style="PageInParen1" text=" (S. %p)"/>
      </l:context>
      <l:context name="xref-number">
        <l:template name="table" text="(in Tab. %t; (S.�%p)"/>
        <l:template name="figure" text="(Bild %t; S.�%p)"/>
        <l:template name="chapter" text="Kapitel %n (S.�%p)"/>
        <l:template name="entry" style="PageInParenE2" text="S. %p"/>
        <l:template name="mediaobject" style="seite" text="S. %p"/>
        <l:template name="sect1" style="PageInParen1" text=" (S. %p)"/>
        <l:template name="sect2" style="PageInParen1" text=" (S. %p)"/>
        <l:template name="sect3" style="PageInParen1" text=" (S. %p)"/>
        <l:template name="sect4" style="PageInParen1" text=" (S. %p)"/>
      </l:context>
      <l:context name="xref">
        <l:template name="chapter" style="PageInParen1" text=" (S. %p)"/>
        <l:template name="sect1" style="PageInParen1" text=" (S. %p)"/>
        <l:template name="sect2" style="PageInParen2" text=" (S. %p)"/>
        <l:template name="sect3" style="PageInParen2" text=" (S. %p)"/>
        <l:template name="sect4" style="PageInParen2" text=" (S. %p)"/>
        <l:template name="entry" style="PageInParenE1" text=" (S. %p)"/>
        <l:template name="imageobject" style="PageInParenI" text="%n (S. %p)"/>
        <l:template name="footnote" style="fussnotenref" text="Fu�note S. %p"/>
      </l:context>
    </l:l10n> 
  </l:i18n>
  <xsl:attribute-set name="section.title.level1.properties">
    <xsl:attribute name="font-family">Alegreya</xsl:attribute>
    <xsl:attribute name="font-size">21pt</xsl:attribute>
    <xsl:attribute name="font-weight">bold</xsl:attribute>
  </xsl:attribute-set>
  <xsl:attribute-set name="section.title.level2.properties">
    <xsl:attribute name="font-family">Alegreya</xsl:attribute>
    <xsl:attribute name="font-size">19pt</xsl:attribute>
    <xsl:attribute name="font-style">bold</xsl:attribute>
    </xsl:attribute-set>
  <xsl:attribute-set name="section.title.level3.properties">
    <xsl:attribute name="font-family">Alegreya</xsl:attribute>
    <xsl:attribute name="font-size">17pt</xsl:attribute>
    <xsl:attribute name="font-weight">normal</xsl:attribute>
  </xsl:attribute-set>
  <xsl:template match="*" mode="pagenumber.markup">
    <xsl:variable name="id">
      <xsl:call-template name="object.id"/>
    </xsl:variable>
    <xsl:apply-templates select="." mode="page-number-prefix"/>
    <fo:page-number-citation ref-id="{$id}"/>
  </xsl:template>
  
  <xsl:template name="chapterappendix.title">
    <xsl:param name="node" select="."/>
    <xsl:param name="pagewide" select="0"/>
    
    <xsl:variable name="id">
      <xsl:call-template name="object.id">
        <xsl:with-param name="object" select="$node"/>
      </xsl:call-template>
    </xsl:variable>
    
    <xsl:variable name="title">
      <xsl:apply-templates select="$node" mode="object.title.markup">
        <xsl:with-param name="allow-anchors" select="1"/>
      </xsl:apply-templates>
    </xsl:variable>
    
    <xsl:variable name="titleabbrev">
      <xsl:apply-templates select="$node" mode="titleabbrev.markup"/>
    </xsl:variable>
    
    <xsl:variable name="level">
      <xsl:choose>
        <xsl:when test="ancestor::d:section">
          <xsl:value-of select="count(ancestor::d:section)+1"/>
        </xsl:when>
        <xsl:when test="ancestor::d:sect5">6</xsl:when>
        <xsl:when test="ancestor::d:sect4">5</xsl:when>
        <xsl:when test="ancestor::d:sect3">4</xsl:when>
        <xsl:when test="ancestor::d:sect2">3</xsl:when>
        <xsl:when test="ancestor::d:sect1">2</xsl:when>
        <xsl:otherwise>1</xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
    
    <fo:block xsl:use-attribute-sets="component.title.properties">
      <xsl:if test="$pagewide != 0">
        <!-- Doesn't work to use 'all' here since not a child of fo:flow -->
        <xsl:attribute name="span">inherit</xsl:attribute>
      </xsl:if>
      <xsl:attribute name="hyphenation-character">
        <xsl:call-template name="gentext">
          <xsl:with-param name="key" select="'hyphenation-character'"/>
        </xsl:call-template>
      </xsl:attribute>
      <xsl:attribute name="hyphenation-push-character-count">
        <xsl:call-template name="gentext">
          <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
        </xsl:call-template>
      </xsl:attribute>
      <xsl:attribute name="hyphenation-remain-character-count">
        <xsl:call-template name="gentext">
          <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
        </xsl:call-template>
      </xsl:attribute>
      <xsl:if test="$axf.extensions != 0 and 
        $xsl1.1.bookmarks = 0 and 
        $show.bookmarks != 0">
        <xsl:attribute name="axf:outline-level">
          <xsl:value-of select="count($node/ancestor::*)"/>
        </xsl:attribute>
        <xsl:attribute name="axf:outline-expand">false</xsl:attribute>
        <xsl:attribute name="axf:outline-title">
          <xsl:value-of select="normalize-space($title)"/>
        </xsl:attribute>
      </xsl:if>
      <xsl:attribute name="font-family">Alegreya</xsl:attribute>
      <xsl:attribute name="font-size">24.8pt</xsl:attribute>
      <xsl:attribute name="font-weight">bold</xsl:attribute>
      <!-- Let's handle the case where a component (bibliography, for example)
         occurs inside a section; will we need parameters for this?
         Danger Will Robinson: using section.title.level*.properties here
         runs the risk that someone will set something other than
         font-size there... -->
      <xsl:choose>
        <xsl:when test="$level=2">
          <fo:block xsl:use-attribute-sets="section.title.level2.properties">
            <xsl:copy-of select="$title"/>
          </fo:block>
        </xsl:when>
        <xsl:when test="$level=3">
          <fo:block xsl:use-attribute-sets="section.title.level3.properties">
            <xsl:copy-of select="$title"/>
          </fo:block>
        </xsl:when>
        <xsl:when test="$level=4">
          <fo:block xsl:use-attribute-sets="section.title.level4.properties">
            <xsl:copy-of select="$title"/>
          </fo:block>
        </xsl:when>
        <xsl:when test="$level=5">
          <fo:block xsl:use-attribute-sets="section.title.level5.properties">
            <xsl:copy-of select="$title"/>
          </fo:block>
        </xsl:when>
        <xsl:when test="$level=6">
          <fo:block xsl:use-attribute-sets="section.title.level6.properties">
            <xsl:copy-of select="$title"/>
          </fo:block>
        </xsl:when>
        <xsl:otherwise>
          <!-- not in a section: do nothing special -->
          <xsl:copy-of select="$title"/>
        </xsl:otherwise>
      </xsl:choose>
    </fo:block>
  </xsl:template>
  <xsl:attribute-set name="mychap.title.properties">
    <xsl:attribute name="font-family">Alegreya</xsl:attribute>
    <xsl:attribute name="font-size">24.8pt</xsl:attribute>
    <xsl:attribute name="font-weight">bold</xsl:attribute>
  </xsl:attribute-set>
  <xsl:template match="processing-instruction('hard-pagebreak')">
    <fo:block break-after="page"/>
    <!-- fügt einen Seitenumbruch ein -->
  </xsl:template>
  <xsl:template match="processing-instruction('linebreak')">
    <fo:block/>
    <!-- fügt eines Zeilenumbruch ein -->
  </xsl:template>
  <xsl:param name="caption.align">justify</xsl:param>
  <!-- definiert die Ausrichtung und Einrückung von Caption -->
  <xsl:template match="d:mediaobject/d:caption">
    <!-- Beginn des Templates-->
    <fo:block role="caption" xsl:use-attribute-sets="captionlayout.properties">
      <!-- Testet ob der obige Parameter in der Liste enthalten -->
      <xsl:if
        test="
        $caption.align = 'right' or
        $caption.align = 'left' or
        $caption.align = 'justify' or
        $caption.align = 'center'">
        <xsl:attribute name="text-align">
          <xsl:value-of select="$caption.align"/>
        </xsl:attribute>
      </xsl:if>
      <xsl:apply-templates/>
      <!-- wendet das Template an -->
    </fo:block>
  </xsl:template>
  <xsl:attribute-set name="captionlayout.properties">
    <xsl:attribute name="margin-left">2em</xsl:attribute>
    <xsl:attribute name="margin-right">2em</xsl:attribute>
    <xsl:attribute name="font-size">13pt</xsl:attribute>
  </xsl:attribute-set>
  <xsl:template match="d:literallayout">
    <!-- für ein Gedicht -->
    <fo:block xsl:use-attribute-sets="literallayout.properties">
      <xsl:apply-templates/>
    </fo:block>
  </xsl:template>
  <xsl:attribute-set name="literallayout.properties">
    <xsl:attribute name="margin-left">2em</xsl:attribute>
    <xsl:attribute name="font-size">13pt</xsl:attribute>
  </xsl:attribute-set>
  <xsl:template match="d:para[@role = 'zitat']">
    <!-- für ein mehrzeiliges Textzitat -->
    <fo:block xsl:use-attribute-sets="zitatlayout.properties">
      <xsl:apply-templates/>
    </fo:block>
  </xsl:template>
  <xsl:attribute-set name="zitatlayout.properties">
    <xsl:attribute name="margin-left">2em</xsl:attribute>
    <xsl:attribute name="margin-right">2em</xsl:attribute>
    <xsl:attribute name="font-size">13pt</xsl:attribute>
  </xsl:attribute-set>
  <xsl:attribute-set name="figure.properties">
    <xsl:attribute name="keep-together.within-column">
      <xsl:choose>
        <xsl:when test="count(d:mediaobject) &gt; 1">inherit</xsl:when>
        <xsl:otherwise>always</xsl:otherwise>
      </xsl:choose>
    </xsl:attribute>
  </xsl:attribute-set>
  <xsl:template match="d:para"> <!-- In kompakten Listen para-Abstand anpassen --> 
    <xsl:variable name="keep.together">
      <xsl:call-template name="pi.dbfo_keep-together"/>
    </xsl:variable>
    <fo:block xsl:use-attribute-sets="para.properties">
      <xsl:if test="$keep.together != ''">
        <xsl:attribute name="keep-together.within-column"><xsl:value-of
          select="$keep.together"/></xsl:attribute>
      </xsl:if>
      <xsl:if test="ancestor::*/@spacing = 'compact'">
        <xsl:attribute name="space-before.optimum">0.15em</xsl:attribute>
        <xsl:attribute name="space-before.minimum">0.1em</xsl:attribute>
        <xsl:attribute name="space-before.maximum">.2em</xsl:attribute>
        <xsl:attribute name="font-size">12pt</xsl:attribute>
      </xsl:if>
      <xsl:call-template name="anchor"/>
      <xsl:apply-templates/>
    </fo:block>
  </xsl:template>  
    <!-- aus PAGESETUP.xsl plus Beiträge von Bob Stayton --> 
  <xsl:template name="footer.content">
    <xsl:param name="pageclass" select="''"/>
    <xsl:param name="sequence" select="''"/>
    <xsl:param name="position" select="''"/>
    <xsl:param name="gentext-key" select="''"/>
    
    <!--
  <fo:block>
    <xsl:value-of select="$pageclass"/>
    <xsl:text>, </xsl:text>
    <xsl:value-of select="$sequence"/>
    <xsl:text>, </xsl:text>
    <xsl:value-of select="$position"/>
    <xsl:text>, </xsl:text>
    <xsl:value-of select="$gentext-key"/>
  </fo:block>
-->
    
    <fo:block>
      <!-- pageclass can be front, body, back -->
      <!-- sequence can be odd, even, first, blank -->
      <!-- position can be left, center, right -->
      <xsl:choose>
        <xsl:when test="$pageclass = 'titlepage'">
          <!-- nop; no footer on title pages -->
        </xsl:when>
        
        <xsl:when test="$double.sided != 0 and $sequence = 'even'
          and $position='left'">
          <xsl:apply-templates mode="page-number-prefix" select="."/>
          <fo:page-number/>
        </xsl:when>
        
        <xsl:when test="$double.sided != 0 and ($sequence = 'odd' or $sequence = 'first')
          and $position='right'">
          <xsl:apply-templates mode="page-number-prefix" select="."/>
          <fo:page-number/>
        </xsl:when>
        
        <xsl:when test="$double.sided = 0 and $position='center'">
          <xsl:apply-templates mode="page-number-prefix" select="."/>
          <fo:page-number/>
        </xsl:when>
        
        <xsl:when test="$sequence='blank'">
          <xsl:choose>
            <xsl:when test="$double.sided != 0 and $position = 'left'">
              <xsl:apply-templates mode="page-number-prefix" select="."/>
              <fo:page-number/>
            </xsl:when>
            <xsl:when test="$double.sided = 0 and $position = 'center'">
              <xsl:apply-templates mode="page-number-prefix" select="."/>
              <fo:page-number/>
            </xsl:when>
            <xsl:otherwise>
              <!-- nop -->
            </xsl:otherwise>
          </xsl:choose>
        </xsl:when>
        
        
        <xsl:otherwise>
          <!-- nop -->
        </xsl:otherwise>
      </xsl:choose>
    </fo:block>
  </xsl:template>
    <!-- Customizing the toc.line template to place page-number-prefix
       in the TOC -->
  <xsl:template name="toc.line">
    <xsl:variable name="id">
      <xsl:call-template name="object.id"/>
    </xsl:variable>
    
    <xsl:variable name="label">
      <xsl:apply-templates select="." mode="label.markup">
        <xsl:with-param name="purpose" select="'toc'"/>
      </xsl:apply-templates>
    </xsl:variable>
    
    <fo:block text-align-last="justify"
      end-indent="{$toc.indent.width}pt"
      last-line-end-indent="-{$toc.indent.width}pt">
      <fo:inline keep-with-next.within-line="always">
        <fo:basic-link internal-destination="{$id}">
          <xsl:if test="$label != ''">
            <xsl:copy-of select="$label"/>
            <xsl:value-of select="$autotoc.label.separator"/>
          </xsl:if>
          <xsl:apply-templates select="." mode="title.markup"/>
        </fo:basic-link>
      </fo:inline>
      <fo:inline keep-together.within-line="always">
        <xsl:text> </xsl:text>
        <fo:leader leader-pattern="space"
          leader-pattern-width="5pt"
          leader-alignment="reference-area"
          keep-with-next.within-line="always"/>
        <xsl:text> </xsl:text> 
        <fo:basic-link internal-destination="{$id}">
          <xsl:apply-templates mode="page-number-prefix" select="."/>
          <fo:page-number-citation ref-id="{$id}"/>
        </fo:basic-link>
      </fo:inline>
    </fo:block>
  </xsl:template>
  <xsl:template name="initial.page.number">
    <xsl:param name="element" select="local-name(.)"/>
    <xsl:param name="master-reference" select="''"/>
    
    <xsl:variable name="first">
      <xsl:choose>
        <xsl:when test="$force.blank.pages = 0">1</xsl:when>
        <xsl:otherwise>1</xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
    <!-- Select the first content that the stylesheet places
     after the TOC -->
    <xsl:variable name="first.book.content"
      select="ancestor::d:book/*[
      not(self::d:title or
      self::d:subtitle or
      self::d:titleabbrev or
      self::d:bookinfo or
      self::d:info or
      self::d:dedication or
      self::d:acknowledgements or
      self::d:preface or
      self::d:toc or
      self::d:lot)][1]"/>
    <xsl:choose>
      <!-- double-sided output -->
      <xsl:when test="$double.sided != 0">
        <xsl:choose>
          <xsl:when test="$element = 'toc'"><xsl:value-of select="$first"/></xsl:when>
          <xsl:when test="$element = 'book'"><xsl:value-of select="$first"/></xsl:when>
          <!-- preface typically continues TOC roman numerals -->
          <!-- If changed to 1 here, then change page.number.format too -->
          <xsl:when test="$element = 'preface'"><xsl:value-of select="$first"/></xsl:when>
          <xsl:when test="($element = 'dedication' or $element = 'article')
            and not(preceding::d:chapter
            or preceding::d:preface
            or preceding::d:appendix
            or preceding::d:article
            or preceding::d:dedication
            or parent::d:part
            or parent::d:reference)">1</xsl:when>
          <xsl:when test="generate-id($first.book.content) =
            generate-id(.)">1</xsl:when>
          <xsl:otherwise><xsl:value-of select="$first"/></xsl:otherwise>
        </xsl:choose>
      </xsl:when>
      
      <!-- single-sided output -->
      <xsl:otherwise>
        <xsl:choose>
          <xsl:when test="$element = 'toc'">auto</xsl:when>
          <xsl:when test="$element = 'book'">auto</xsl:when>
          <xsl:when test="$element = 'preface'">auto</xsl:when>
          <xsl:when test="($element = 'dedication' or $element = 'article') and
            not(preceding::d:chapter
            or preceding::d:preface
            or preceding::d:appendix
            or preceding::d:article
            or preceding::d:dedication
            or parent::d:part
            or parent::d:reference)">1</xsl:when>
          <xsl:when test="generate-id($first.book.content) =
            generate-id(.)">1</xsl:when>
          <xsl:otherwise>1</xsl:otherwise>
        </xsl:choose>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
  <xsl:template match="d:indexterm" mode="reference">
  <xsl:param name="scope" select="."/>
  <xsl:param name="separator" select="', '"/>

  <xsl:if test="$passivetex.extensions = '0'">
    <xsl:value-of select="$separator"/>
  </xsl:if>

  <xsl:choose>
    <xsl:when test="@zone and string(@zone)">
      <xsl:call-template name="reference">
        <xsl:with-param name="zones" select="normalize-space(@zone)"/>
        <xsl:with-param name="scope" select="$scope"/>
      </xsl:call-template>
    </xsl:when>
    <xsl:otherwise>
      <xsl:variable name="id">
        <xsl:call-template name="object.id"/>
      </xsl:variable>

      <fo:basic-link internal-destination="{$id}">
        <xsl:apply-templates mode="page-number-prefix" select="."/>
        <fo:page-number-citation ref-id="{$id}"/>
      </fo:basic-link>

      <xsl:if test="key('endofrange', @id)[&scope;]">
        <xsl:apply-templates select="key('endofrange', @id)[&scope;][last()]"
                             mode="reference">
          <xsl:with-param name="scope" select="$scope"/>
          <xsl:with-param name="separator" select="'-'"/>
        </xsl:apply-templates>
      </xsl:if>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
  <xsl:template name="reference">
  <xsl:param name="scope" select="."/>
  <xsl:param name="zones"/>

  <xsl:choose>
    <xsl:when test="contains($zones, ' ')">
      <xsl:variable name="zone" select="substring-before($zones, ' ')"/>
      <xsl:variable name="target" select="key('id', $zone)[&scope;]"/>

      <xsl:variable name="id">
        <xsl:call-template name="object.id">
           <xsl:with-param name="object" select="$target[1]"/>
        </xsl:call-template>
      </xsl:variable>

      <fo:basic-link internal-destination="{$id}">
        <xsl:apply-templates mode="page-number-prefix" select="$target[1]"/>
        <fo:page-number-citation ref-id="{$id}"/>
      </fo:basic-link>

      <xsl:if test="$passivetex.extensions = '0'">
        <xsl:text>, </xsl:text>
      </xsl:if>
      <xsl:call-template name="reference">
        <xsl:with-param name="zones" select="substring-after($zones, ' ')"/>
        <xsl:with-param name="scope" select="$scope"/>
      </xsl:call-template>
    </xsl:when>
    <xsl:otherwise>
      <xsl:variable name="zone" select="$zones"/>
      <xsl:variable name="target" select="key('id', $zone)[&scope;]"/>

      <xsl:variable name="id">
        <xsl:call-template name="object.id">
          <xsl:with-param name="object" select="$target[1]"/>
        </xsl:call-template>
      </xsl:variable>

      <fo:basic-link internal-destination="{$id}">
        <xsl:apply-templates mode="page-number-prefix" select="$target[1]"/>
        <fo:page-number-citation ref-id="{$id}"/>
      </fo:basic-link>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
  <xsl:template match="d:indexterm" mode="reference-markup">
  <xsl:param name="scope" select="."/>
  <xsl:choose>
    <xsl:when test="@zone and string(@zone)">
      <xsl:call-template name="reference-markup">
        <xsl:with-param name="zones" select="normalize-space(@zone)"/>
        <xsl:with-param name="scope" select="$scope"/>
      </xsl:call-template>
    </xsl:when>
    <xsl:otherwise>
      <xsl:variable name="id">
        <xsl:call-template name="object.id"/>
      </xsl:variable>


      <xsl:choose>
        <xsl:when test="@startref and @class='endofrange'">
          <xsl:text>&lt;phrase role="pageno"&gt;</xsl:text>
          <xsl:text>&lt;link linkend="</xsl:text>
          <xsl:value-of select="@startref"/>
          <xsl:text>"&gt;</xsl:text>
          <fo:basic-link internal-destination="{@startref}">
            <xsl:apply-templates mode="page-number-prefix" select="."/>
            <fo:page-number-citation ref-id="{@startref}"/>
            <xsl:text>-</xsl:text>
            <fo:page-number-citation ref-id="{$id}"/>
          </fo:basic-link>
          <xsl:text>&lt;/link&gt;</xsl:text>
          <xsl:text>&lt;/phrase&gt;&#10;</xsl:text>
        </xsl:when>
        <xsl:otherwise>
          <xsl:text>&lt;phrase role="pageno"&gt;</xsl:text>
          <xsl:if test="@id">
            <xsl:text>&lt;link linkend="</xsl:text>
            <xsl:value-of select="$id"/>
            <xsl:text>"&gt;</xsl:text>
          </xsl:if>
          <fo:basic-link internal-destination="{$id}">
            <xsl:apply-templates mode="page-number-prefix" select="."/>
            <fo:page-number-citation ref-id="{$id}"/>
          </fo:basic-link>
          <xsl:if test="@id">
            <xsl:text>&lt;/link&gt;</xsl:text>
          </xsl:if>
          <xsl:text>&lt;/phrase&gt;&#10;</xsl:text>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
  <xsl:template name="reference-markup">
  <xsl:param name="scope" select="."/>
  <xsl:param name="zones"/>
  <xsl:choose>
    <xsl:when test="contains($zones, ' ')">
      <xsl:variable name="zone" select="substring-before($zones, ' ')"/>
      <xsl:variable name="target" select="key('id', $zone)[&scope;]"/>

      <xsl:variable name="id">
        <xsl:call-template name="object.id">
          <xsl:with-param name="object" select="$target[1]"/>
        </xsl:call-template>
      </xsl:variable>

      <xsl:text>&lt;phrase role="pageno"&gt;</xsl:text>
      <xsl:if test="$target[1]/@id">
        <xsl:text>&lt;link linkend="</xsl:text>
        <xsl:value-of select="$id"/>
        <xsl:text>"&gt;</xsl:text>
      </xsl:if>
      <fo:basic-link internal-destination="{$id}">
        <xsl:apply-templates mode="page-number-prefix" select="$target[1]"/>
        <fo:page-number-citation ref-id="{$id}"/>
      </fo:basic-link>
      <xsl:if test="$target[1]/@id">
        <xsl:text>&lt;/link&gt;</xsl:text>
      </xsl:if>
      <xsl:text>&lt;/phrase&gt;&#10;</xsl:text>

      <xsl:call-template name="reference">
        <xsl:with-param name="zones" select="substring-after($zones, ' ')"/>
        <xsl:with-param name="scope" select="$scope"/>
      </xsl:call-template>
    </xsl:when>
    <xsl:otherwise>
      <xsl:variable name="zone" select="$zones"/>
      <xsl:variable name="target" select="key('id', $zone)[&scope;]"/>

      <xsl:variable name="id">
        <xsl:call-template name="object.id">
          <xsl:with-param name="object" select="$target[1]"/>
        </xsl:call-template>
      </xsl:variable>

      <xsl:text>&lt;phrase role="pageno"&gt;</xsl:text>
      <xsl:if test="$target[1]/@id">
        <xsl:text>&lt;link linkend="</xsl:text>
        <xsl:value-of select="$id"/>
        <xsl:text>"&gt;</xsl:text>
      </xsl:if>
      <fo:basic-link internal-destination="{$id}">
        <xsl:apply-templates mode="page-number-prefix" select="$target[1]"/>
        <fo:page-number-citation ref-id="{$id}"/>
      </fo:basic-link>
      <xsl:if test="$target[1]/@id">
        <xsl:text>&lt;/link&gt;</xsl:text>
      </xsl:if>
      <xsl:text>&lt;/phrase&gt;&#10;</xsl:text>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
  <xsl:template match="d:chapter|d:chapter//*" mode="page-number-prefix">
  <xsl:number count="d:chapter" from="d:book" level="any"/>
  <xsl:text>&#x2013;</xsl:text>
</xsl:template>
  <xsl:template match="d:appendix|d:appendix//*" mode="page-number-prefix">
  <xsl:number count="d:appendix" from="d:book" level="single" format="A"/>
  <xsl:text>&#x2013;</xsl:text>
  </xsl:template>
  <xsl:template match="d:glossary|d:glossary//*" mode="page-number-prefix">
    <xsl:variable name="glossname">
      <xsl:call-template name="gentext">
        <xsl:with-param name="key" select="'glossary'"/>
      </xsl:call-template>
    </xsl:variable>
    <xsl:value-of select="substring($glossname,1,1)"/>
    <xsl:text>&#x2013;</xsl:text>
  </xsl:template>
  <xsl:template match="d:index|d:index//*" mode="page-number-prefix">
    <xsl:call-template name="gentext">
      <xsl:with-param name="key" select="'index'"/>
    </xsl:call-template>
    <xsl:text>&#x2013;</xsl:text>
  </xsl:template>
  <xsl:template match="d:reference|d:reference//*" mode="page-number-prefix">
    <xsl:apply-templates select="preceding::d:chapter[1]" mode="page-number-prefix"/>
  </xsl:template>
  <xsl:template match="d:refentry|d:refentry//*" mode="page-number-prefix">
    <xsl:apply-templates select="preceding::d:chapter[1]" mode="page-number-prefix"/>
  </xsl:template>
  
  <xsl:template match="*" mode="page-number-prefix"/>
</xsl:stylesheet>

Attachment: signature.asc
Description: OpenPGP digital signature



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