[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
I have a followup to the message from yesterday, and an exchange with Mike Kay a couple of weeks ago.
I need to create footnoted-citations, in which citations get formatted exactly like footnotes. This includes their counting.
So, I have the list mode working correctly (as in, correctly numbered) with this template:
<xsl:template match="db:footnote | db:citation[not(../db:footnote)]" mode="footcite-list">
<xsl:variable name="number">
<xsl:number level="any" count="db:footnote | db:citation[not(../db:footnote)]"/>
</xsl:variable>
<p id="fn{$number}">
<a href="#fnm{$number}" class="footnote-anchor">
<xsl:value-of select="$number"/>
</a>
<xsl:text>.  </xsl:text>
<xsl:apply-templates select="if (self::db:footnote) then * else ." mode="footcite-entry"/>
</p>
</xsl:template>
However, I can't get numbering to work correctly on the actual in-text footnote/citation marks.
I have two templates. This:
<xsl:template match="db:footnote">
<xsl:variable name="footnote-number">
<xsl:choose>
<xsl:when test="$citeclass='note-bib' or $citeclass='note-nobib'">
<xsl:number level="any" count="db:footnote | db:citation[not(../db:footnote)]"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="db:number-footnote(.)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:text>[</xsl:text>
<a href="#fn{$footnote-number}" name="fnm{$footnote-number}" class="footnote-mark">
<xsl:value-of select="$footnote-number"/>
</a>
<xsl:text>]</xsl:text>
</xsl:template>
... and this:
<xsl:template match="db:citation">
<xsl:choose>
<xsl:when test="$citeclass='note-bib' or $citeclass='note-nobib'">
<xsl:variable name="footnote-number">
<xsl:number level="any" count="db:footnote | db:citation[not(../db:footnote)]"/>
</xsl:variable>
<xsl:text>[</xsl:text>
<a href="#fn{$footnote-number}" name="fnm{$footnote-number}" class="footnote-mark">
<xsl:value-of select="$footnote-number"/>
</a>
<xsl:text>]</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="bib:format-citation">
<xsl:with-param name="output-format" select="'xhtml'"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
The problem is that I get this output, where the first is a citation and the second a footnote.
So they seem to be counted independently.
Is there some way I can get this to work right, preferably where the number is calculated in a function? I already have this function, and would like to have one called bib:number-footcite:
Bruce
[xsl] numbering/count()
Subject: [xsl] numbering/count() From: "Bruce D'Arcus" <bdarcus@xxxxxxxxx> Date: Thu, 19 May 2005 21:12:58 -0400 |
I have a followup to the message from yesterday, and an exchange with Mike Kay a couple of weeks ago.
I need to create footnoted-citations, in which citations get formatted exactly like footnotes. This includes their counting.
So, I have the list mode working correctly (as in, correctly numbered) with this template:
<xsl:template match="db:footnote | db:citation[not(../db:footnote)]" mode="footcite-list">
<xsl:variable name="number">
<xsl:number level="any" count="db:footnote | db:citation[not(../db:footnote)]"/>
</xsl:variable>
<p id="fn{$number}">
<a href="#fnm{$number}" class="footnote-anchor">
<xsl:value-of select="$number"/>
</a>
<xsl:text>.  </xsl:text>
<xsl:apply-templates select="if (self::db:footnote) then * else ." mode="footcite-entry"/>
</p>
</xsl:template>
However, I can't get numbering to work correctly on the actual in-text footnote/citation marks.
I have two templates. This:
<xsl:template match="db:footnote">
<xsl:variable name="footnote-number">
<xsl:choose>
<xsl:when test="$citeclass='note-bib' or $citeclass='note-nobib'">
<xsl:number level="any" count="db:footnote | db:citation[not(../db:footnote)]"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="db:number-footnote(.)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:text>[</xsl:text>
<a href="#fn{$footnote-number}" name="fnm{$footnote-number}" class="footnote-mark">
<xsl:value-of select="$footnote-number"/>
</a>
<xsl:text>]</xsl:text>
</xsl:template>
... and this:
<xsl:template match="db:citation">
<xsl:choose>
<xsl:when test="$citeclass='note-bib' or $citeclass='note-nobib'">
<xsl:variable name="footnote-number">
<xsl:number level="any" count="db:footnote | db:citation[not(../db:footnote)]"/>
</xsl:variable>
<xsl:text>[</xsl:text>
<a href="#fn{$footnote-number}" name="fnm{$footnote-number}" class="footnote-mark">
<xsl:value-of select="$footnote-number"/>
</a>
<xsl:text>]</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="bib:format-citation">
<xsl:with-param name="output-format" select="'xhtml'"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
The problem is that I get this output, where the first is a citation and the second a footnote.
A citation with page number detail: [1]. Some more citations: [1]. And now, a citation [2].
So they seem to be counted independently.
Is there some way I can get this to work right, preferably where the number is calculated in a function? I already have this function, and would like to have one called bib:number-footcite:
<xsl:function name="db:number-footnote" as="xs:string"> <xsl:param name="footnote" as="element(db:footnote)"/> <xsl:choose> <xsl:when test="$chapters/db:chapter"> <xsl:number level="any" select="$footnote" from="db:chapter"/> </xsl:when> <xsl:otherwise> <xsl:number level="any" select="$footnote"/> </xsl:otherwise> </xsl:choose> </xsl:function>
Bruce
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] select a node: child of a, Anthony | Thread | Re: [xsl] numbering/count(), Wendell Piez |
Re: [xsl] Merging nested/adjacent n, chris | Date | Re: [xsl] Testing if an attribute n, Paul A. Hoadley |
Month |