OK, for post 0.6:
In fact, this is the most difficult part of the code. The
bib:enhanced-biblist variable’s job is to pre-process the metadata
record, taking the unique values of the db:bbilioref/@linkend values.
By class, logic is:
author-year: group by author, then year, and sort in ascending order
for each group
citekey: sort by the value of the @linkend
number: two options (I think!):
- sort and number by (first, if more than one) occurrence in text
- number as above, but sort in biblist by author-year
note-based (footnote, etc.)
- if there’s a biblist, as author-year; but the tricky part is …
- for every citation, you need to know if:
* it’s the first occurrence in the text, or subsequent
* if there is one immediately preceding it
Let me quote the Chicago Manual of Style on this, just so it’s clear:
“The abbreviation ibid. (from ibidem, “in the same place”) refers to a
single work cited in the note immediately preceding … It must never
be used if the preceding note contains more than one citation. It takes
the place of … as much of the succeeding material as is identical.”
Examples:
- Farmwinkle, Humor of the Midwest, 241.
- Ibid., 258-59
- Ibid.
- Ibid., 333-34
A PITA, eh? So if you had DocBook source for the above, you’d have:
More:
“Ibid. may also be used within one note in successive references to the
same work.”
Chicago also notes Idem and Op.cite and loc.cite, which it recommends
against.
Anyway, I suppose one way to test use of FXSL is to write a function
that correctly (and very quickly) does the above?
My strategy in the existing code was to then add information gleaned in
the above process to the records in the temporary tree, so that there’s
no double hit on performance.
Bruce