xsl-list
[Top] [All Lists]

[xsl] RE: consolidating footnotes in XSL

2006-09-17 11:45:34
Hello XSL experts,
 
I have a follow-on question to this one.  This solution requires users
to add a value for the xref attribute for each footnote.
 
Another solution to consoldiating footnotes would be to create a
crossref XML element with an footnoteref attribute.  Footnotes would be
numbered automatically by the footnote template. To create a dup
footnote, the user would set the value of the opid attribute of the
footnote to reference, then insert a crossref element at the desired
location of the dup footnote, and set its target id attribute to the
opid value of the footnote to cross-reference.

The XSL code for the crossref element:

<xsl:template match="crossref">
        <xsl:choose>
        <xsl:when test="@toFootnote='no'">
                <fo:basic-link color="blue"
internal-destination="{(_at_)targetid}">
                        <xsl:value-of select="."/> (<xsl:value-of
select="$__Page_Token"/>
                        <fo:page-number-citation
ref-id="{(_at_)targetid}"/>)</fo:basic-link>
        </xsl:when>
        <xsl:otherwise>
                <fo:inline baseline-shift="super" font-size="8pt">
                        <xsl:number count="//footnote[(_at_)opid=@targetid]"
format="1" level="any"/>
                </fo:inline>
        </xsl:otherwise>
        </xsl:choose>
</xsl:template>

 
The resulting output has no value for the footnote reference.

Can someone see what I might be doing wrong?

Thanks for your help.

Ann Marie

 
________________________________

From: Ann Marie Rubin (anrubin) 
Sent: Sunday, September 17, 2006 10:20 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Cc: Ann Marie Rubin (anrubin)
Subject: consolidating footnotes in XSL


Hello XSL experts,
 
I am trying to NOT count duplicate footnotes. For example: I want
footnotes to number as follows:
 
foo1  foo2  foo2  foo3  foo4
 
1)foo text
2)foo 2 text 
3)foo 4 text 
4)foo text 
 
I have XML with footnotes:

<footnote notetext="foo 3 text" xref="foo_fn1"/>
<footnote notetext="foo 3 text" xref="foo_fn2"/>
<footnote notetext="foo 3 text" xref="foo_fn2"/>
<footnote notetext="foo 3 text" xref="foo_fn3"/>
<footnote notetext="foo 3 text" xref="foo_fn4"/>
 
the XSL stylesheet:
 
<xsl:key match="footnote" name="FOOTNOTE" use="@xref"/>
 
...
 
<xsl:template match="footnote">
        <fo:footnote>
             <fo:inline font-size="0.83em" baseline-shift="super">
                  <xsl:number level="any"
count="footnote[generate-id()=generate-id(key('FOOTNOTE',@xref)[1])]"
format="1"/>
            </fo:inline>
            <fo:footnote-body>
                 <fo:list-block
provisional-distance-between-starts="20pt"
provisional-label-separation="5pt" start-indent="0.0in"
space-before="12pt">
                    <fo:list-item>
                        <fo:list-item-label end-indent="label-end()">
                            <fo:block
xsl:use-attribute-sets="standardFont" font-size="8pt">
                                 <xsl:number level="any"
count="footnote[generate-id()=generate-id(key('FOOTNOTE',@xref)[1])]"
format="1)"/>
                             </fo:block>
                       </fo:list-item-label>
                       <fo:list-item-body start-indent="body-start()">
                       <fo:block xsl:use-attribute-sets="standardFont"
font-size="8pt">
                           <xsl:value-of select="@notetext"/>
                       </fo:block>
                        </fo:list-item-body>
                    </fo:list-item>
                </fo:list-block>
            </fo:footnote-body>
        </fo:footnote>
    </xsl:template>
 
Output:
 
foo1  foo2  foo2  foo3  foo4
 
1)foo text
2)foo 2 text 
2)foo 3 text 
3)foo 4 text 
4)foo text 
 
What I want:
 
foo1  foo2  foo2  foo3  foo4
 
1)foo text
2)foo 2 text 
3)foo 4 text 
4)foo text 
 
I want to NOT count footnote nodes whose refid matches the refid of the
previous footnote node.
 
How do I do tihs?
 
thanks,
 
Ann Marie
 

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>
  • [xsl] RE: consolidating footnotes in XSL, Ann Marie Rubin \(anrubin\) <=