2
<!DOCTYPE xsl:stylesheet [ <!ENTITY % xsldoc.ent SYSTEM "./xsldoc.ent"> %xsldoc.ent; ]>
3
<!--#############################################################################
4
| $Id: biblio.mod.xsl,v 1.21 2004/01/26 08:57:46 j-devenish Exp $
5
|- #############################################################################
6
| $Author: j-devenish $
7
+ ############################################################################## -->
10
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
11
xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
12
exclude-result-prefixes="doc" version='1.0'>
14
<doc:reference id="biblio" xmlns="">
16
<releaseinfo role="meta">
17
$Id: biblio.mod.xsl,v 1.21 2004/01/26 08:57:46 j-devenish Exp $
24
<year>2000</year><year>2001</year><year>2002</year><year>2003</year>
25
<holder>Ramon Casellas</holder>
28
<doc:revision rcasver="1.16">&rev_2003_05;</doc:revision>
31
<title>Bibliographies <filename>biblio.mod.xsl</filename></title>
34
<para>The file <filename>biblio.mod.xsl</filename> contains the XSL
35
template for <doc:db>bibliography</doc:db> and associated
39
<para>This reference describes the templates and parameters relevant
40
to formatting DocBook bibliography markup.</para>
43
<bridgehead><quote>All</quote> versus <quote>cited</quote> mode</bridgehead>
45
<para>These modes are superseded by &BibTeX;
46
when using &BibTeX;.</para>
50
The <xref linkend="param.latex.biblio.output"/> option can be used
51
to select <quote>all</quote> mode or <quote>cited</quote> mode.
52
With the <quote>cited</quote> mode, only the <doc:db
53
basename="biblioentry">biblioentries</doc:db> that have been
54
cited somewhere in the document are output. Otherwise (in
55
<quote>all</quote> mode) all biblioentries found are output (as
56
the HTML stylesheets do).
60
<bridgehead>&DocBook; versus &BibTeX;</bridgehead>
63
&DB2LaTeX; supports &BibTeX;. When this mode is enabled,
64
you can use a &BibTeX; citations file. Your <doc:db
65
basename="citation">citations</doc:db> can then refer to
66
your &BibTeX; keys (<doc:db basename="xref">xrefs</doc:db>
67
are unlikely to work, though). You will need to provide a
68
&LaTeX; command to select a bibliographic citation style as
69
is normal for &BibTeX; (see <xref
70
linkend="bibtex.example"/>). You must also run the
71
<command>bibtex</command> command when typesetting your
72
document with &LaTeX;.
76
<para>Although &DocBook; allows <doc:db basename="bibliography">bibliographies</doc:db>
77
within a number of components, such as <doc:db>section</doc:db>, the use of &BibTeX;
78
is only useful for a single, chapter-level bibliography.</para>
82
To enable &BibTeX; mode, insert an empty
83
<doc:db>bibliography</doc:db> element in your &DocBook;
84
document. However, note that this is not valid &DocBook;,
85
though it will lead to the desired results with most
86
&DocBook; XSL stylesheets (including those for HTML).
87
You will also need to set the <xref linkend="param.latex.bibfiles"/>
88
variable to the correct path of your &BibTeX; citations file.
90
Alternatively, you may choose to use a processing
91
instruction named <quote>bibtex-bibliography</quote>
92
instead of an empty element. The name of the citations file
93
may be specified within the processing instruction or via
94
<xref linkend="param.latex.bibfiles"/> (see
95
<xref linkend="bibtex.example"/>).
98
<example id="bibtex.example">
99
<title>Using &BibTeX; with &DB2LaTeX;</title>
102
A &BibTeX; bibliography may be enabled by providing the
103
name of your citations file, the name of a &BibTeX; style,
104
and the insertion of an appropriate node in your
105
&DocBook; document. In your customisation layer:
107
<programlisting><![CDATA[
108
<xsl:variable name="latex.book.preamble.post">
109
% Your LaTeX customisation commands
110
\bibliographystyle{ieeetr}
112
<xsl:variable name="latex.bibfiles" select="'../citations.bib'"/>
115
Then, in your document, type this:
117
<programlisting><![CDATA[
121
Although this is not valid according to the &DocBook;
122
DTD, it will work with most stylesheets (not just
123
&DB2LaTeX;). Alternatively, you may instead use a
124
processing instruction in compliance with the DTD,
125
though this will work only with &DB2LaTeX; and you will
126
not be able to specify a custom <doc:db>title</doc:db>
127
for your bibliography:
129
<programlisting><![CDATA[
130
<?bibtex-bibliography?>
133
You may optionally specify the citations file directly
134
(you will not need to set
135
<literal>latex.bibfiles</literal>):
137
<programlisting><![CDATA[
138
<?bibtex-bibliography ../citations.bib?>
146
<listitem><simpara><xref linkend="param.latex.bibfiles"/></simpara></listitem>
147
<listitem><simpara><xref linkend="param.latex.biblio.output"/></simpara></listitem>
153
<doc:template xmlns="">
154
<refpurpose> Essential preamble for <filename>biblio.mod.xsl</filename> support </refpurpose>
158
Defines <function condition="latex">docbooktolatexbibname</function>,
159
<function condition="latex">docbooktolatexbibaux</function>
160
and <function condition="env">docbooktolatexbibliography</function>.
166
<listitem><simpara>&preamble;</simpara></listitem>
171
<xsl:template name="latex.preamble.essential.biblio">
174
\AtBeginDocument{\ifx\refname\@undefined\let\docbooktolatexbibname\bibname\def\docbooktolatexbibnamex{\bibname}\else\let\docbooktolatexbibname\refname\def\docbooktolatexbibnamex{\refname}\fi}
175
% Facilitate use of \cite with \label
176
\newcommand{\docbooktolatexbibaux}[2]{%
177
\protected@write\@auxout{}{\string\global\string\@namedef{docbooktolatexcite@#1}{#2}}
179
% Provide support for bibliography `subsection' environments with titles
180
\newenvironment{docbooktolatexbibliography}[3]{
182
\let\save@@chapter\chapter
183
\let\save@@section\section
184
\let\save@@@mkboth\@mkboth
185
\let\save@@bibname\bibname
186
\let\save@@refname\refname
187
\let\@mkboth\@gobbletwo
191
\let\chapter\@gobbletwo
192
\let\section\@gobbletwo
200
\begin{thebibliography}{#1}
202
\end{thebibliography}
203
\let\chapter\save@@chapter
204
\let\section\save@@section
205
\let\@mkboth\save@@@mkboth
206
\let\bibname\save@@bibname
207
\let\refname\save@@refname
214
<doc:template basename="bibliography" xmlns="">
215
<refpurpose>Process <doc:db>bibliography</doc:db> elements</refpurpose>
218
This is a complex template that can format bibliographies as
219
chapter-level or section-level components.
224
<listitem><simpara><xref linkend="param.latex.biblio.output"/></simpara></listitem>
225
<listitem><simpara><xref linkend="param.latex.bibwidelabel"/></simpara></listitem>
231
<term>makechapter</term>
235
Whether to make a chapter-level bibliography or
236
not. This is normally determined by examining
237
whether the <doc:db>bibliography</doc:db> element
238
occurs as a child of a <doc:db>book</doc:db> or
239
<doc:db>part</doc:db>. If so, the bibliography will
240
be formatted as an unnumbered chapter. If not, the
241
bibliography will be formatted as an unnumbered
242
section. This effect does not hold for &BibTeX;
243
bibliographies, which will be formatted by the
245
condition="latex">bibliography</function> command.
253
<para>This template probably contains many bugs.</para>
257
<simplelist type='inline'>
268
<listitem><simpara>&mapping;: this template will use the <literal>bibliography-chapter</literal>
269
and <literal>bibliography-section</literal> mappings.</simpara></listitem>
270
<listitem><simpara><xref linkend="citation"/></simpara></listitem>
274
<xsl:template match="bibliography">
275
<xsl:param name="makechapter" select="local-name(..)='book' or local-name(..)='part'"/>
276
<xsl:variable name="keyword">
278
<xsl:when test="$makechapter">
279
<xsl:text>bibliography-chapter</xsl:text>
282
<xsl:text>bibliography-section</xsl:text>
286
<xsl:variable name="environment">
288
<xsl:when test="$makechapter">thebibliography</xsl:when>
289
<xsl:otherwise>docbooktolatexbibliography</xsl:otherwise>
292
<xsl:variable name="title">
293
<xsl:apply-templates select="title|subtitle"/>
296
<xsl:message>DB2LaTeX: Processing BIBLIOGRAPHY</xsl:message>
298
<xsl:if test="$title!=''">
299
<xsl:text>\let\oldbibname\bibname </xsl:text>
300
<xsl:text>\let\oldrefname\refname </xsl:text>
301
<xsl:text>\def\bibname{</xsl:text>
302
<xsl:value-of select="$title"/>
303
<xsl:text>} </xsl:text>
304
<xsl:text>\let\refname\bibname </xsl:text>
306
<xsl:call-template name="map.begin">
307
<xsl:with-param name="keyword" select="$keyword"/>
310
<xsl:when test="biblioentry or bibliodiv">
311
<xsl:variable name="separatetitle" select="not(biblioentry or bibliodiv[1]/@title)"/>
312
<xsl:message>DB2LaTeX: Bibliographic Output Mode : <xsl:value-of select="$latex.biblio.output"/></xsl:message>
314
<xsl:when test="$separatetitle and $makechapter">
315
<xsl:text>\chapter*{\docbooktolatexbibnamex}\hypertarget{</xsl:text>
316
<xsl:call-template name="generate.label.id"/>
317
<xsl:text>}{} </xsl:text>
319
<xsl:when test="$separatetitle and not($makechapter)">
320
<xsl:text>\section*{\docbooktolatexbibnamex}\hypertarget{</xsl:text>
321
<xsl:call-template name="generate.label.id"/>
322
<xsl:text>}{} </xsl:text>
324
<xsl:when test="biblioentry"><!-- implies not($separatetitle) -->
325
<xsl:text>\begin{</xsl:text>
326
<xsl:value-of select="$environment"/>
327
<xsl:text>}{</xsl:text>
328
<xsl:value-of select="$latex.bibwidelabel"/>
329
<xsl:if test="$environment='docbooktolatexbibliography'">
330
<xsl:text>}{\</xsl:text>
331
<!-- TODO choose the correct nesting, rather than assuming something -->
333
<xsl:when test="$makechapter">chapter</xsl:when>
334
<xsl:otherwise>section</xsl:otherwise>
336
<xsl:text>}{</xsl:text>
338
<xsl:when test="$title!=''">
339
<xsl:value-of select="$title"/>
342
<xsl:text>\docbooktolatexbibname</xsl:text>
346
<xsl:text>}\hypertarget{</xsl:text>
347
<xsl:call-template name="generate.label.id"/>
348
<xsl:text>}{} </xsl:text>
350
<xsl:when test="$latex.biblio.output ='cited'">
351
<xsl:apply-templates select="biblioentry" mode="bibliography.cited">
352
<xsl:sort select="./abbrev"/>
353
<xsl:sort select="./@xreflabel"/>
354
<xsl:sort select="./@id"/>
355
</xsl:apply-templates>
357
<xsl:when test="$latex.biblio.output ='all'">
358
<xsl:apply-templates select="biblioentry" mode="bibliography.all">
359
<xsl:sort select="./abbrev"/>
360
<xsl:sort select="./@xreflabel"/>
361
<xsl:sort select="./@id"/>
362
</xsl:apply-templates>
365
<xsl:apply-templates select="biblioentry">
366
<xsl:sort select="./abbrev"/>
367
<xsl:sort select="./@xreflabel"/>
368
<xsl:sort select="./@id"/>
369
</xsl:apply-templates>
372
<!-- <xsl:apply-templates select="child::*[name(.)!='biblioentry']"/> -->
373
<xsl:text> \end{</xsl:text>
374
<xsl:value-of select="$environment"/>
375
<xsl:text>} </xsl:text>
378
<xsl:text>\hypertarget{</xsl:text>
379
<xsl:call-template name="generate.label.id"/>
380
<xsl:text>}{} </xsl:text>
383
<xsl:apply-templates select="bibliodiv"/>
385
<xsl:when test="child::*">
387
<xsl:when test="$makechapter">
388
<xsl:text>\chapter*</xsl:text>
391
<xsl:text>\section*</xsl:text>
394
<xsl:text>{\docbooktolatexbibnamex}\hypertarget{</xsl:text>
395
<xsl:call-template name="generate.label.id"/>
396
<xsl:text>}{} </xsl:text>
397
<xsl:call-template name="content-templates"/>
400
<xsl:text>% Assume that an empty <bibliography> means ``use BibTeX'' or similar. </xsl:text>
401
<xsl:text>\bibliography{</xsl:text><xsl:value-of select="$latex.bibfiles"/><xsl:text>} </xsl:text>
404
<xsl:call-template name="map.end">
405
<xsl:with-param name="keyword" select="$keyword"/>
407
<xsl:if test="$title!=''">
408
<xsl:text>\let\bibname\oldbibname </xsl:text>
409
<xsl:text>\let\refname\oldrefname </xsl:text>
413
<doc:template xmlns="">
414
<refpurpose>Process <sgmltag class="xmlpi">bibtex-bibliography</sgmltag> nodes</refpurpose>
417
Output a &BibTeX; bibliography.
422
<listitem><simpara><xref linkend="param.latex.bibfiles"/></simpara></listitem>
428
<term>makechapter</term>
432
Choose which &LaTeX; mapping to use. This is
433
normally determined by examining whether the PI
434
occurs as a child of a <doc:db>book</doc:db> or
435
<doc:db>part</doc:db>. Regardless of this
436
parameter, the bibliography will be formatted as a
437
chapter via the &LaTeX; <function
438
condition="latex">bibliography</function> command.
444
<term>filename</term>
448
The filename of the &BibTeX; citations source file.
449
By default, this will be obtained from the content
450
of the process instruction, if present, or
452
linkend="param.latex.bibfiles"/>.
460
<para>This PI is not part of &DocBook; and is only supported by &DB2LaTeX;
461
The formatting of the bibliography is performed by &LaTeX; and is not
462
configurable by &DB2LaTeX;.</para>
466
<listitem><simpara>&mapping;: This template will use the <literal>bibliography-chapter</literal>
467
or <literal>bibliography-section</literal> mapping.</simpara></listitem>
471
<xsl:template match="processing-instruction('bibtex-bibliography')">
472
<xsl:param name="makechapter" select="local-name(..)='book' or local-name(..)='part'"/>
473
<xsl:param name="filename">
475
<xsl:when test="normalize-space(.)!=''">
476
<xsl:value-of select="."/>
479
<xsl:value-of select="$latex.bibfiles"/>
483
<xsl:variable name="keyword">
485
<xsl:when test="$makechapter">
486
<xsl:text>bibliography-chapter</xsl:text>
489
<xsl:text>bibliography-section</xsl:text>
493
<xsl:call-template name="map.begin">
494
<xsl:with-param name="keyword" select="$keyword"/>
496
<xsl:text>\bibliography{</xsl:text><xsl:value-of select="$filename"/><xsl:text>} </xsl:text>
497
<xsl:call-template name="map.end">
498
<xsl:with-param name="keyword" select="$keyword"/>
502
<doc:template xmlns="">
503
<refpurpose>Process <doc:db>bibliodiv</doc:db> elements</refpurpose>
506
Formats subdivisions of bibliographies.
511
<listitem><simpara><xref linkend="param.latex.biblio.output"/></simpara></listitem>
518
<simplelist type='inline'>
528
<xsl:template match="bibliodiv">
529
<xsl:param name="environment">
530
<xsl:variable name="parent" select="local-name(..)"/>
532
<xsl:when test="starts-with($parent,'sect')">docbooktolatexbibliography</xsl:when>
533
<xsl:otherwise>thebibliography</xsl:otherwise>
537
<xsl:message>DB2LaTeX: Processing BIBLIOGRAPHY - BIBLIODIV</xsl:message>
539
<xsl:text> \begin{docbooktolatexbibliography}{</xsl:text>
540
<xsl:value-of select="$latex.bibwidelabel"/>
541
<xsl:text>}{\</xsl:text>
542
<!-- TODO choose the correct nesting, rather than assuming subsection -->
543
<xsl:text>subsection</xsl:text>
544
<xsl:text>}{</xsl:text>
545
<xsl:apply-templates select="title|subtitle"/>
546
<xsl:text>}\hypertarget{</xsl:text>
547
<xsl:call-template name="generate.label.id"/>
548
<xsl:text>}{} </xsl:text>
550
<xsl:when test="$latex.biblio.output ='cited'">
551
<xsl:apply-templates select="biblioentry" mode="bibliography.cited">
552
<xsl:sort select="./abbrev"/>
553
<xsl:sort select="./@xreflabel"/>
554
<xsl:sort select="./@id"/>
555
</xsl:apply-templates>
557
<xsl:when test="$latex.biblio.output ='all'">
558
<xsl:apply-templates select="biblioentry">
559
<xsl:sort select="./abbrev"/>
560
<xsl:sort select="./@xreflabel"/>
561
<xsl:sort select="./@id"/>
562
</xsl:apply-templates>
565
<xsl:text> \end{docbooktolatexbibliography} </xsl:text>
568
<doc:template basename="biblioentry" xmlns="">
569
<refpurpose>Process <doc:db>biblioentry</doc:db> elements</refpurpose>
572
Emits a bibiographic entry if the reference was cited in the document.
576
<para>This template calls <xref linkend="template.biblioentry.output"/> to format the entry.</para>
579
<xsl:template match="biblioentry" mode="bibliography.cited">
580
<xsl:param name="bibid" select="@id"/>
581
<xsl:param name="ab" select="abbrev"/>
582
<xsl:variable name="nx" select="//xref[@linkend=$bibid]"/>
583
<xsl:variable name="nc" select="//citation[text()=$ab]"/>
584
<xsl:if test="count($nx) > 0 or count($nc) > 0">
585
<xsl:call-template name="biblioentry.output"/>
589
<doc:template basename="biblioentry" xmlns="">
590
<refpurpose>Process <doc:db>biblioentry</doc:db> elements</refpurpose>
593
Emits a bibiographic entry unconditionally.
597
<para>This template calls <xref linkend="template.biblioentry.output"/> to format the entry.</para>
600
<xsl:template match="biblioentry" mode="bibliography.all">
601
<xsl:call-template name="biblioentry.output"/>
604
<doc:template basename="biblioentry" xmlns="">
605
<refpurpose>Process <doc:db>biblioentry</doc:db> elements</refpurpose>
608
Emits a bibiographic entry unconditionally.
612
<para>This template calls <xref linkend="template.biblioentry.output"/> to format the entry.</para>
615
<xsl:template match="biblioentry">
616
<xsl:call-template name="biblioentry.output"/>
619
<doc:template xmlns="">
620
<refpurpose>Format <doc:db basename="biblioentry">biblioentries</doc:db></refpurpose>
623
Formats a bibiographic entry.
628
<listitem><simpara><xref linkend="param.latex.biblioentry.style"/></simpara></listitem>
634
This template does not apply to &BibTeX; bibliographies.
638
A <function condition="latex">bibitem</function> is emitted.
639
If can be linked via <doc:db>citation</doc:db> or <doc:db>xref</doc:db>.
640
The <doc:db>title</doc:db> will be formatted in italics, followed by
641
<xref linkend="param.biblioentry.item.separator"/>, the <doc:db>author</doc:db>
642
or <doc:db>authorgroup</doc:db>, and then the following elements separated
643
by <literal>biblioentry.item.separator</literal>:
644
<doc:db>copyright</doc:db>, <doc:db>publisher</doc:db>,
645
<doc:db>pubdate</doc:db>, <doc:db>pagenums</doc:db>,
646
<doc:db>isbn</doc:db>, <doc:db>editor</doc:db>,
647
<doc:db>releaseinfo</doc:db>.
651
All templates for all &DocBook; elements will be applied
652
with the <quote>bibliography.mode</quote> XSLT mode.
657
<simplelist type='inline'>
667
<xsl:template name="biblioentry.output">
668
<xsl:variable name="biblioentry.label">
670
<xsl:when test="@xreflabel">
671
<xsl:value-of select="normalize-space(@xreflabel)"/>
673
<xsl:when test="abbrev">
674
<xsl:apply-templates select="abbrev" mode="bibliography.mode"/>
676
<xsl:when test="@id">
677
<xsl:value-of select="normalize-space(@id)"/>
680
<!-- TODO is there any need for a warning? -->
684
<xsl:variable name="biblioentry.id">
686
<xsl:when test="abbrev">
687
<xsl:apply-templates select="abbrev" mode="bibliography.mode"/>
690
<xsl:call-template name="generate.label.id"/>
694
<xsl:text> </xsl:text>
695
<xsl:call-template name="biblioentry.output.format">
696
<xsl:with-param name="biblioentry.label" select="$biblioentry.label"/>
697
<xsl:with-param name="biblioentry.id" select="$biblioentry.id"/>
701
<xsl:template name="biblioentry.output.format">
702
<xsl:param name="biblioentry.label"/>
703
<xsl:param name="biblioentry.id"/>
705
<xsl:when test="$latex.biblioentry.style='ieee' or $latex.biblioentry.style='IEEE'">
706
<xsl:text>% -------------- biblioentry </xsl:text>
707
<xsl:text>\bibitem</xsl:text>
708
<xsl:text>{</xsl:text>
709
<xsl:value-of select="$biblioentry.id"/>
710
<xsl:text>}\docbooktolatexbibaux{</xsl:text>
711
<xsl:call-template name="generate.label.id"/>
712
<xsl:text>}{</xsl:text>
713
<xsl:value-of select="$biblioentry.id"/>
714
<xsl:text>} \hypertarget{</xsl:text>
715
<xsl:call-template name="generate.label.id"/>
716
<xsl:text>} </xsl:text>
717
<xsl:apply-templates select="author|authorgroup" mode="bibliography.mode"/>
718
<xsl:value-of select="$biblioentry.item.separator"/>
719
<xsl:text>\emph{</xsl:text> <xsl:apply-templates select="title" mode="bibliography.mode"/><xsl:text>}</xsl:text>
720
<xsl:for-each select="child::copyright|child::publisher|child::pubdate|child::pagenums|child::isbn">
721
<xsl:value-of select="$biblioentry.item.separator"/>
722
<xsl:apply-templates select="." mode="bibliography.mode"/>
724
<xsl:text>. </xsl:text>
725
<xsl:text> </xsl:text>
728
<xsl:text>% -------------- biblioentry </xsl:text>
730
<xsl:when test="$biblioentry.label=''">
731
<xsl:text>\bibitem</xsl:text>
734
<xsl:text>\bibitem[{</xsl:text>
735
<xsl:call-template name="normalize-scape">
736
<xsl:with-param name="string" select="$biblioentry.label"/>
738
<xsl:text>}]</xsl:text>
741
<xsl:text>{</xsl:text>
742
<xsl:value-of select="$biblioentry.id"/>
743
<xsl:text>}\docbooktolatexbibaux{</xsl:text>
744
<xsl:call-template name="generate.label.id"/>
745
<xsl:text>}{</xsl:text>
746
<xsl:value-of select="$biblioentry.id"/>
747
<xsl:text>} \hypertarget{</xsl:text>
748
<xsl:call-template name="generate.label.id"/>
749
<xsl:text>}{\emph{</xsl:text> <xsl:apply-templates select="title" mode="bibliography.mode"/> <xsl:text>}}</xsl:text>
750
<xsl:value-of select="$biblioentry.item.separator"/>
751
<xsl:apply-templates select="author|authorgroup" mode="bibliography.mode"/>
752
<xsl:for-each select="child::copyright|child::publisher|child::pubdate|child::pagenums|child::isbn|child::editor|child::releaseinfo">
753
<xsl:value-of select="$biblioentry.item.separator"/>
754
<xsl:apply-templates select="." mode="bibliography.mode"/>
756
<xsl:text>.</xsl:text>
757
<xsl:text> </xsl:text>
762
<xsl:template name="biblioentry.output.format.ieee">
765
<xsl:template match="abbrev" mode="bibliography.mode">
766
<xsl:apply-templates mode="bibliography.mode"/>
770
<doc:template basename="abstract" match="abstract" mode="bibliography.mode" xmlns="">
771
<refpurpose>Process <doc:db>abstract</doc:db> elements</refpurpose>
774
Currently, <doc:db basename="abstract">abstracts</doc:db> are deleted
775
in <literal>bibliography.mode</literal>.
782
<para>Abstracts are suppressed in &DB2LaTeX; bibliographies.</para>
785
<xsl:template match="abstract" mode="bibliography.mode"/>
788
<xsl:template match="address" mode="bibliography.mode">
789
<xsl:apply-templates mode="bibliography.mode"/>
792
<xsl:template match="affiliation" mode="bibliography.mode">
793
<xsl:apply-templates mode="bibliography.mode"/>
796
<xsl:template match="authorblurb" mode="bibliography.mode"/>
798
<xsl:template match="artheader" mode="bibliography.mode">
799
<xsl:apply-templates mode="bibliography.mode"/>
802
<xsl:template match="artpagenums" mode="bibliography.mode">
803
<xsl:apply-templates mode="bibliography.mode"/>
806
<xsl:template match="author" mode="bibliography.mode">
807
<xsl:apply-templates select="."/>
810
<xsl:template match="authorgroup" mode="bibliography.mode">
811
<xsl:apply-templates select="."/>
814
<!-- basename="authorinitials" -->
815
<xsl:template match="authorinitials" mode="bibliography.mode">
816
<xsl:apply-templates mode="bibliography.mode"/>
819
<xsl:template match="bibliomisc" mode="bibliography.mode">
820
<xsl:apply-templates mode="bibliography.mode"/>
823
<xsl:template match="bibliomset" mode="bibliography.mode">
824
<xsl:apply-templates mode="bibliography.mode"/>
827
<xsl:template match="bibliomixed" mode="bibliography.mode">
828
<xsl:apply-templates mode="bibliography.mode"/>
831
<xsl:template match="biblioset" mode="bibliography.mode">
832
<xsl:apply-templates mode="bibliography.mode"/>
835
<xsl:template match="biblioset/title|biblioset/citetitle" mode="bibliography.mode">
836
<xsl:variable name="relation" select="../@relation"/>
838
<xsl:when test="$relation='article'">
839
<xsl:call-template name="gentext.startquote"/>
840
<xsl:apply-templates/>
841
<xsl:call-template name="gentext.endquote"/>
844
<xsl:apply-templates/>
849
<xsl:template match="bookbiblio" mode="bibliography.mode">
850
<xsl:apply-templates mode="bibliography.mode"/>
853
<xsl:template match="citetitle" mode="bibliography.mode">
854
<I><xsl:apply-templates mode="bibliography.mode"/></I>
857
<xsl:template match="collab" mode="bibliography.mode">
858
<xsl:apply-templates mode="bibliography.mode"/>
861
<xsl:template match="collabname" mode="bibliography.mode">
862
<xsl:apply-templates mode="bibliography.mode"/>
865
<xsl:template match="confgroup" mode="bibliography.mode">
866
<xsl:apply-templates mode="bibliography.mode"/>
869
<xsl:template match="confdates" mode="bibliography.mode">
870
<xsl:apply-templates mode="bibliography.mode"/>
873
<xsl:template match="conftitle" mode="bibliography.mode">
874
<xsl:apply-templates mode="bibliography.mode"/>
877
<xsl:template match="confnum" mode="bibliography.mode">
878
<xsl:apply-templates mode="bibliography.mode"/>
881
<xsl:template match="confsponsor" mode="bibliography.mode">
882
<xsl:apply-templates mode="bibliography.mode"/>
885
<xsl:template match="contractnum" mode="bibliography.mode">
886
<xsl:apply-templates mode="bibliography.mode"/>
889
<xsl:template match="contractsponsor" mode="bibliography.mode">
890
<xsl:apply-templates mode="bibliography.mode"/>
893
<xsl:template match="contrib" mode="bibliography.mode">
894
<xsl:apply-templates mode="bibliography.mode"/>
897
<xsl:template match="copyright" mode="bibliography.mode">
898
<xsl:call-template name="gentext.element.name"/>
899
<xsl:call-template name="gentext.space"/>
900
<xsl:call-template name="dingbat">
901
<xsl:with-param name="dingbat">copyright</xsl:with-param>
903
<xsl:call-template name="gentext.space"/>
904
<xsl:apply-templates select="year" mode="bibliography.mode"/>
905
<xsl:call-template name="gentext.space"/>
906
<xsl:apply-templates select="holder" mode="bibliography.mode"/>
909
<xsl:template match="year" mode="bibliography.mode">
910
<xsl:apply-templates/><xsl:text>, </xsl:text>
913
<xsl:template match="year[position()=last()]" mode="bibliography.mode">
914
<xsl:apply-templates/>
917
<xsl:template match="holder" mode="bibliography.mode">
918
<xsl:apply-templates/>
921
<xsl:template match="corpauthor" mode="bibliography.mode">
922
<xsl:apply-templates mode="bibliography.mode"/>
925
<xsl:template match="corpname" mode="bibliography.mode">
926
<xsl:apply-templates mode="bibliography.mode"/>
929
<xsl:template match="date" mode="bibliography.mode">
930
<xsl:apply-templates mode="bibliography.mode"/>
933
<xsl:template match="edition" mode="bibliography.mode">
934
<xsl:apply-templates mode="bibliography.mode"/>
937
<xsl:template match="editor" mode="bibliography.mode">
938
<xsl:call-template name="person.name"/>
941
<xsl:template match="firstname" mode="bibliography.mode">
942
<xsl:apply-templates mode="bibliography.mode"/>
945
<xsl:template match="honorific" mode="bibliography.mode">
946
<xsl:apply-templates mode="bibliography.mode"/>
949
<xsl:template match="indexterm" mode="bibliography.mode">
950
<xsl:apply-templates mode="bibliography.mode"/>
953
<xsl:template match="invpartnumber" mode="bibliography.mode">
954
<xsl:apply-templates mode="bibliography.mode"/>
957
<xsl:template match="isbn" mode="bibliography.mode">
958
<xsl:apply-templates mode="bibliography.mode"/>
961
<xsl:template match="issn" mode="bibliography.mode">
962
<xsl:apply-templates mode="bibliography.mode"/>
965
<xsl:template match="issuenum" mode="bibliography.mode">
966
<xsl:apply-templates mode="bibliography.mode"/>
969
<xsl:template match="jobtitle" mode="bibliography.mode">
970
<xsl:apply-templates mode="bibliography.mode"/>
973
<xsl:template match="lineage" mode="bibliography.mode">
974
<xsl:apply-templates mode="bibliography.mode"/>
977
<xsl:template match="orgname" mode="bibliography.mode">
978
<xsl:apply-templates mode="bibliography.mode"/>
981
<xsl:template match="orgdiv" mode="bibliography.mode">
982
<xsl:apply-templates mode="bibliography.mode"/>
985
<xsl:template match="othercredit" mode="bibliography.mode">
986
<xsl:apply-templates mode="bibliography.mode"/>
989
<xsl:template match="othername" mode="bibliography.mode">
990
<xsl:apply-templates mode="bibliography.mode"/>
993
<xsl:template match="pagenums" mode="bibliography.mode">
994
<xsl:apply-templates mode="bibliography.mode"/>
997
<xsl:template match="printhistory" mode="bibliography.mode">
1001
<xsl:template match="productname" mode="bibliography.mode">
1002
<xsl:apply-templates mode="bibliography.mode"/>
1005
<xsl:template match="productnumber" mode="bibliography.mode">
1006
<xsl:apply-templates mode="bibliography.mode"/>
1009
<xsl:template match="pubdate" mode="bibliography.mode">
1010
<xsl:apply-templates mode="bibliography.mode"/>
1013
<xsl:template match="publisher" mode="bibliography.mode">
1014
<xsl:apply-templates mode="bibliography.mode"/>
1017
<xsl:template match="publishername" mode="bibliography.mode">
1018
<xsl:apply-templates mode="bibliography.mode"/>
1021
<xsl:template match="pubsnumber" mode="bibliography.mode">
1022
<xsl:apply-templates mode="bibliography.mode"/>
1025
<xsl:template match="releaseinfo" mode="bibliography.mode">
1026
<xsl:apply-templates mode="bibliography.mode"/>
1029
<xsl:template match="revhistory" mode="bibliography.mode">
1030
<xsl:apply-templates mode="bibliography.mode"/>
1033
<xsl:template match="seriesinfo" mode="bibliography.mode">
1034
<xsl:apply-templates mode="bibliography.mode"/>
1037
<xsl:template match="seriesvolnums" mode="bibliography.mode">
1038
<xsl:apply-templates mode="bibliography.mode"/>
1041
<xsl:template match="shortaffil" mode="bibliography.mode">
1042
<xsl:apply-templates mode="bibliography.mode"/>
1045
<xsl:template match="subtitle" mode="bibliography.mode">
1046
<xsl:apply-templates mode="bibliography.mode"/>
1049
<xsl:template match="surname" mode="bibliography.mode">
1050
<xsl:apply-templates mode="bibliography.mode"/>
1053
<xsl:template match="title" mode="bibliography.mode">
1054
<xsl:apply-templates mode="bibliography.mode"/>
1057
<xsl:template match="titleabbrev" mode="bibliography.mode">
1058
<xsl:apply-templates mode="bibliography.mode"/>
1061
<xsl:template match="volumenum" mode="bibliography.mode">
1062
<xsl:apply-templates mode="bibliography.mode"/>
1065
<xsl:template match="*" mode="bibliography.mode">
1066
<xsl:apply-templates select="."/>