At 01:26 PM 10/29/2004, you wrote:
I'd try doing this by first processing the entire document expanding my
citations into an (ad-hoc, locally-namespaced) markup format that
provides each citation or footnote reference with whatever information it
needs apart from the first/subsequent rule (that is, as if they were
thence to be rendered all alike irrespective of their positions in the
final list), and then in a second pass introduce the Ibid/Idem, op.cit.,
etc. based on their positions relative to one another. The rest of the
second pass could be an identity transform otherwise, assuming there's
nothing else it is useful for it to do.
I guess my question is how to handle that last pass; the "based on their
positions relative to one another" bit.
Well in that pass, their relative positions are determinable in reference
to "document order". So, for example, they could be collected in a variable
in which position() could be checked, or even axes used to look at the
immediate preceding one, etc.
Of course, XSLT 2.0 / XPath 2.0 also lets you construct sequences, which
could provide an even more direct way to do this, though perhaps not quite
as clean.
I append your code and a bit of spec from earlier in case anyone has time
today to try it (using either or any approach), noting that this sample
should be extended to exhibit the requirement:
<?xml version="1.0" encoding="utf-8"?>
<article xmlns="http://docbook.org/docbook-ng">
<info>
<title>Test</title>
</info>
<section>
<info>
<title>Introduction</title>
</info>
<para>Some citations: <citation><biblioref linkend="one"/><biblioref
linkend="two"/></citation></para>
</section>
<bibliography>
<modsCollection xmlns="http://www.loc.gov/mods/v3">
<mods ID="one">
<name type="personal">
<namePart type="given">John</namePart>
<namePart type="family">Doe</namePart>
<role>
<roleTerm type="text">author</roleTerm>
</role>
</name>
<titleInfo>
<title>Some Title</title>
</titleInfo>
<originInfo>
<dateIssued>1999</dateIssued>
</originInfo>
</mods>
<mods ID="two">
<name type="personal">
<namePart type="given">John</namePart>
<namePart type="family">Doe</namePart>
<role>
<roleTerm type="text">author</roleTerm>
</role>
</name>
<titleInfo>
<title>Another Title</title>
</titleInfo>
<originInfo>
<dateIssued>1999</dateIssued>
</originInfo>
</mods>
</modsCollection>
</bibliography>
</article>
The most difficult one is note (footnote/endnote) style, whereby rendering
of citations is determined by their relative position within the
text. For example, we have:
1) First/subsequent.
On the first occurrence of a citation reference, we have one
rendering. On all subsequent, we have another (shorter).
2) Ibid/Idem, op.cit.
When a parameter is switched on, then if one has the same single citation
repeated immediately subsequent, then it gets rendered as "Ibid", if the
same group of citations repeat, it's "Idem".
Cheers,
Wendell
Cheers,
Wendell
======================================================================
Wendell Piez
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================