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="."/>