1<?xml version='1.0'?>
2<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3                xmlns:fo="http://www.w3.org/1999/XSL/Format"
4                version='1.0'>
5
6<!-- ********************************************************************
7     $Id: biblio.xsl,v 1.35 2006/05/07 05:43:21 bobstayton Exp $
8     ********************************************************************
9
10     This file is part of the XSL DocBook Stylesheet distribution.
11     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
12     and other information.
13
14     ******************************************************************** -->
15
16<!-- ==================================================================== -->
17
18<xsl:template match="bibliography">
19  <xsl:variable name="id">
20    <xsl:call-template name="object.id"/>
21  </xsl:variable>
22
23  <xsl:choose>
24    <xsl:when test="not(parent::*) or parent::part or parent::book">
25      <xsl:variable name="master-reference">
26        <xsl:call-template name="select.pagemaster"/>
27      </xsl:variable>
28
29      <fo:page-sequence hyphenate="{$hyphenate}"
30                        master-reference="{$master-reference}">
31        <xsl:attribute name="language">
32          <xsl:call-template name="l10n.language"/>
33        </xsl:attribute>
34        <xsl:attribute name="format">
35          <xsl:call-template name="page.number.format">
36            <xsl:with-param name="master-reference" select="$master-reference"/>
37          </xsl:call-template>
38        </xsl:attribute>
39        <xsl:attribute name="initial-page-number">
40          <xsl:call-template name="initial.page.number">
41            <xsl:with-param name="master-reference" select="$master-reference"/>
42          </xsl:call-template>
43        </xsl:attribute>
44        <xsl:attribute name="force-page-count">
45          <xsl:call-template name="force.page.count">
46            <xsl:with-param name="master-reference" select="$master-reference"/>
47          </xsl:call-template>
48        </xsl:attribute>
49        <xsl:attribute name="hyphenation-character">
50          <xsl:call-template name="gentext">
51            <xsl:with-param name="key" select="'hyphenation-character'"/>
52          </xsl:call-template>
53        </xsl:attribute>
54        <xsl:attribute name="hyphenation-push-character-count">
55          <xsl:call-template name="gentext">
56            <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
57          </xsl:call-template>
58        </xsl:attribute>
59        <xsl:attribute name="hyphenation-remain-character-count">
60          <xsl:call-template name="gentext">
61            <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
62          </xsl:call-template>
63        </xsl:attribute>
64
65        <xsl:apply-templates select="." mode="running.head.mode">
66          <xsl:with-param name="master-reference" select="$master-reference"/>
67        </xsl:apply-templates>
68        <xsl:apply-templates select="." mode="running.foot.mode">
69          <xsl:with-param name="master-reference" select="$master-reference"/>
70        </xsl:apply-templates>
71
72        <fo:flow flow-name="xsl-region-body">
73          <xsl:call-template name="set.flow.properties">
74            <xsl:with-param name="element" select="local-name(.)"/>
75            <xsl:with-param name="master-reference" select="$master-reference"/>
76          </xsl:call-template>
77
78          <fo:block id="{$id}">
79            <xsl:call-template name="bibliography.titlepage"/>
80          </fo:block>
81          <xsl:apply-templates/>
82        </fo:flow>
83      </fo:page-sequence>
84    </xsl:when>
85    <xsl:otherwise>
86      <fo:block id="{$id}"
87                space-before.minimum="1em"
88                space-before.optimum="1.5em"
89                space-before.maximum="2em">
90        <xsl:call-template name="bibliography.titlepage"/>
91      </fo:block>
92      <xsl:apply-templates/>
93    </xsl:otherwise>
94  </xsl:choose>
95</xsl:template>
96
97<xsl:template match="bibliography/bibliographyinfo"></xsl:template>
98<xsl:template match="bibliography/title"></xsl:template>
99<xsl:template match="bibliography/subtitle"></xsl:template>
100<xsl:template match="bibliography/titleabbrev"></xsl:template>
101
102<!-- ==================================================================== -->
103
104<xsl:template match="bibliodiv">
105  <fo:block>
106    <xsl:attribute name="id">
107      <xsl:call-template name="object.id"/>
108    </xsl:attribute>
109    <xsl:call-template name="bibliodiv.titlepage"/>
110    <xsl:apply-templates/>
111  </fo:block>
112</xsl:template>
113
114<xsl:template match="bibliodiv/title"/>
115<xsl:template match="bibliodiv/subtitle"/>
116<xsl:template match="bibliodiv/titleabbrev"/>
117
118<!-- ==================================================================== -->
119
120<xsl:template match="bibliolist">
121  <xsl:variable name="id">
122    <xsl:call-template name="object.id"/>
123  </xsl:variable>
124
125  <fo:block id="{$id}"
126            space-before.minimum="1em"
127            space-before.optimum="1.5em"
128            space-before.maximum="2em">
129
130    <xsl:if test="blockinfo/title|info/title|title">
131      <xsl:call-template name="formal.object.heading"/>
132    </xsl:if>
133
134    <xsl:apply-templates select="*[not(self::blockinfo)
135                                   and not(self::title)
136                                   and not(self::titleabbrev)]"/>
137  </fo:block>
138</xsl:template>
139
140<!-- ==================================================================== -->
141
142<xsl:template match="biblioentry">
143  <xsl:param name="label">
144    <xsl:call-template name="biblioentry.label"/>
145  </xsl:param>
146
147  <xsl:variable name="id">
148    <xsl:call-template name="object.id"/>
149  </xsl:variable>
150
151  <xsl:choose>
152    <xsl:when test="string(.) = ''">
153      <xsl:variable name="bib" select="document($bibliography.collection,.)"/>
154      <xsl:variable name="entry" select="$bib/bibliography/*[@id=$id][1]"/>
155      <xsl:choose>
156        <xsl:when test="$entry">
157          <xsl:choose>
158            <xsl:when test="$bibliography.numbered != 0">
159              <xsl:apply-templates select="$entry">
160                <xsl:with-param name="label" select="$label"/>
161              </xsl:apply-templates>
162            </xsl:when>
163            <xsl:otherwise>
164              <xsl:apply-templates select="$entry"/>
165            </xsl:otherwise>
166          </xsl:choose>
167        </xsl:when>
168        <xsl:otherwise>
169          <xsl:message>
170            <xsl:text>No bibliography entry: </xsl:text>
171            <xsl:value-of select="$id"/>
172            <xsl:text> found in </xsl:text>
173            <xsl:value-of select="$bibliography.collection"/>
174          </xsl:message>
175          <fo:block id="{$id}" xsl:use-attribute-sets="normal.para.spacing">
176            <xsl:text>Error: no bibliography entry: </xsl:text>
177            <xsl:value-of select="$id"/>
178            <xsl:text> found in </xsl:text>
179            <xsl:value-of select="$bibliography.collection"/>
180          </fo:block>
181        </xsl:otherwise>
182      </xsl:choose>
183    </xsl:when>
184    <xsl:otherwise>
185      <fo:block id="{$id}" xsl:use-attribute-sets="biblioentry.properties">
186        <xsl:copy-of select="$label"/>
187        <xsl:apply-templates mode="bibliography.mode"/>
188      </fo:block>
189    </xsl:otherwise>
190  </xsl:choose>
191</xsl:template>
192
193<xsl:template match="bibliomixed">
194  <xsl:param name="label">
195    <xsl:call-template name="biblioentry.label"/>
196  </xsl:param>
197
198  <xsl:variable name="id">
199    <xsl:call-template name="object.id"/>
200  </xsl:variable>
201
202  <xsl:choose>
203    <xsl:when test="string(.) = ''">
204      <xsl:variable name="bib" select="document($bibliography.collection,.)"/>
205      <xsl:variable name="entry" select="$bib/bibliography/*[@id=$id][1]"/>
206      <xsl:choose>
207        <xsl:when test="$entry">
208          <xsl:choose>
209            <xsl:when test="$bibliography.numbered != 0">
210              <xsl:apply-templates select="$entry">
211                <xsl:with-param name="label" select="$label"/>
212              </xsl:apply-templates>
213            </xsl:when>
214            <xsl:otherwise>
215              <xsl:apply-templates select="$entry"/>
216            </xsl:otherwise>
217          </xsl:choose>
218        </xsl:when>
219        <xsl:otherwise>
220          <xsl:message>
221            <xsl:text>No bibliography entry: </xsl:text>
222            <xsl:value-of select="$id"/>
223            <xsl:text> found in </xsl:text>
224            <xsl:value-of select="$bibliography.collection"/>
225          </xsl:message>
226          <fo:block id="{$id}" xsl:use-attribute-sets="normal.para.spacing">
227            <xsl:text>Error: no bibliography entry: </xsl:text>
228            <xsl:value-of select="$id"/>
229            <xsl:text> found in </xsl:text>
230            <xsl:value-of select="$bibliography.collection"/>
231          </fo:block>
232        </xsl:otherwise>
233      </xsl:choose>
234    </xsl:when>
235    <xsl:otherwise>
236      <fo:block id="{$id}" xsl:use-attribute-sets="biblioentry.properties">
237        <xsl:copy-of select="$label"/>
238        <xsl:apply-templates mode="bibliomixed.mode"/>
239      </fo:block>
240    </xsl:otherwise>
241  </xsl:choose>
242</xsl:template>
243
244<xsl:template name="biblioentry.label">
245  <xsl:param name="node" select="."/>
246
247  <xsl:choose>
248    <xsl:when test="$bibliography.numbered != 0">
249      <xsl:text>[</xsl:text>
250      <xsl:number from="bibliography" count="biblioentry|bibliomixed"
251                  level="any" format="1"/>
252      <xsl:text>] </xsl:text>
253    </xsl:when>
254    <xsl:when test="local-name($node/child::*[1]) = 'abbrev'">
255      <xsl:text>[</xsl:text>
256      <xsl:apply-templates select="$node/abbrev[1]"/>
257      <xsl:text>] </xsl:text>
258    </xsl:when>
259    <xsl:when test="$node/@xreflabel">
260      <xsl:text>[</xsl:text>
261      <xsl:value-of select="$node/@xreflabel"/>
262      <xsl:text>] </xsl:text>
263    </xsl:when>
264    <xsl:when test="$node/@id">
265      <xsl:text>[</xsl:text>
266      <xsl:value-of select="$node/@id"/>
267      <xsl:text>] </xsl:text>
268    </xsl:when>
269    <xsl:otherwise><!-- nop --></xsl:otherwise>
270  </xsl:choose>
271</xsl:template>
272
273<!-- ==================================================================== -->
274
275<xsl:template match="*" mode="bibliography.mode">
276  <xsl:apply-templates select="."/><!-- try the default mode -->
277</xsl:template>
278
279<xsl:template match="abbrev" mode="bibliography.mode">
280  <xsl:if test="preceding-sibling::*">
281    <fo:inline>
282      <xsl:apply-templates mode="bibliography.mode"/>
283    </fo:inline>
284  </xsl:if>
285</xsl:template>
286
287<xsl:template match="abstract" mode="bibliography.mode">
288  <!-- suppressed -->
289</xsl:template>
290
291<xsl:template match="address" mode="bibliography.mode">
292  <fo:inline>
293    <xsl:apply-templates mode="bibliography.mode"/>
294    <xsl:value-of select="$biblioentry.item.separator"/>
295  </fo:inline>
296</xsl:template>
297
298<xsl:template match="affiliation" mode="bibliography.mode">
299  <fo:inline>
300    <xsl:apply-templates mode="bibliography.mode"/>
301    <xsl:value-of select="$biblioentry.item.separator"/>
302  </fo:inline>
303</xsl:template>
304
305<xsl:template match="shortaffil" mode="bibliography.mode">
306  <fo:inline>
307    <xsl:apply-templates mode="bibliography.mode"/>
308    <xsl:value-of select="$biblioentry.item.separator"/>
309  </fo:inline>
310</xsl:template>
311
312<xsl:template match="jobtitle" mode="bibliography.mode">
313  <fo:inline>
314    <xsl:apply-templates mode="bibliography.mode"/>
315    <xsl:value-of select="$biblioentry.item.separator"/>
316  </fo:inline>
317</xsl:template>
318
319<xsl:template match="artheader|articleinfo" mode="bibliography.mode">
320  <fo:inline>
321    <xsl:apply-templates mode="bibliography.mode"/>
322    <xsl:value-of select="$biblioentry.item.separator"/>
323  </fo:inline>
324</xsl:template>
325
326<xsl:template match="artpagenums" mode="bibliography.mode">
327  <fo:inline>
328    <xsl:apply-templates mode="bibliography.mode"/>
329    <xsl:value-of select="$biblioentry.item.separator"/>
330  </fo:inline>
331</xsl:template>
332
333<xsl:template match="author" mode="bibliography.mode">
334  <fo:inline>
335    <xsl:call-template name="person.name"/>
336    <xsl:value-of select="$biblioentry.item.separator"/>
337  </fo:inline>
338</xsl:template>
339
340<xsl:template match="authorblurb|personblurb" mode="bibliography.mode">
341  <fo:inline>
342    <xsl:apply-templates mode="bibliography.mode"/>
343    <xsl:value-of select="$biblioentry.item.separator"/>
344  </fo:inline>
345</xsl:template>
346
347<xsl:template match="authorgroup" mode="bibliography.mode">
348  <fo:inline>
349    <xsl:call-template name="person.name.list"/>
350    <xsl:value-of select="$biblioentry.item.separator"/>
351  </fo:inline>
352</xsl:template>
353
354<xsl:template match="authorinitials" mode="bibliography.mode">
355  <fo:inline>
356    <xsl:apply-templates mode="bibliography.mode"/>
357    <xsl:value-of select="$biblioentry.item.separator"/>
358  </fo:inline>
359</xsl:template>
360
361<xsl:template match="bibliomisc" mode="bibliography.mode">
362  <fo:inline>
363    <xsl:apply-templates mode="bibliography.mode"/>
364    <xsl:value-of select="$biblioentry.item.separator"/>
365  </fo:inline>
366</xsl:template>
367
368<xsl:template match="bibliomset" mode="bibliography.mode">
369  <fo:inline>
370    <xsl:apply-templates mode="bibliography.mode"/>
371    <xsl:value-of select="$biblioentry.item.separator"/>
372  </fo:inline>
373</xsl:template>
374
375<!-- ================================================== -->
376
377<xsl:template match="biblioset" mode="bibliography.mode">
378  <fo:inline>
379    <xsl:apply-templates mode="bibliography.mode"/>
380  </fo:inline>
381</xsl:template>
382
383<xsl:template match="biblioset/title|biblioset/citetitle" 
384              mode="bibliography.mode">
385  <xsl:variable name="relation" select="../@relation"/>
386  <xsl:choose>
387    <xsl:when test="$relation='article' or @pubwork='article'">
388      <xsl:call-template name="gentext.startquote"/>
389      <xsl:apply-templates mode="bibliography.mode"/>
390      <xsl:call-template name="gentext.endquote"/>
391    </xsl:when>
392    <xsl:otherwise>
393      <fo:inline font-style="italic">
394        <xsl:apply-templates/>
395      </fo:inline>
396    </xsl:otherwise>
397  </xsl:choose>
398  <xsl:value-of select="$biblioentry.item.separator"/>
399</xsl:template>
400
401<!-- ================================================== -->
402
403<xsl:template match="bookbiblio" mode="bibliography.mode">
404  <fo:inline>
405    <xsl:apply-templates mode="bibliography.mode"/>
406    <xsl:value-of select="$biblioentry.item.separator"/>
407  </fo:inline>
408</xsl:template>
409
410<xsl:template match="citetitle" mode="bibliography.mode">
411  <fo:inline>
412    <xsl:choose>
413      <xsl:when test="@pubwork = 'article'">
414        <xsl:call-template name="gentext.startquote"/>
415        <xsl:apply-templates mode="bibliography.mode"/>
416        <xsl:call-template name="gentext.endquote"/>
417      </xsl:when>
418      <xsl:otherwise>
419        <fo:inline font-style="italic">
420          <xsl:apply-templates mode="bibliography.mode"/>
421        </fo:inline>
422      </xsl:otherwise>
423    </xsl:choose>
424    <xsl:value-of select="$biblioentry.item.separator"/>
425  </fo:inline>
426</xsl:template>
427
428<xsl:template match="collab" mode="bibliography.mode">
429  <fo:inline>
430    <xsl:apply-templates mode="bibliography.mode"/>
431    <xsl:value-of select="$biblioentry.item.separator"/>
432  </fo:inline>
433</xsl:template>
434
435<xsl:template match="confgroup" mode="bibliography.mode">
436  <fo:inline>
437    <xsl:apply-templates mode="bibliography.mode"/>
438    <xsl:value-of select="$biblioentry.item.separator"/>
439  </fo:inline>
440</xsl:template>
441
442<xsl:template match="contractnum" mode="bibliography.mode">
443  <fo:inline>
444    <xsl:apply-templates mode="bibliography.mode"/>
445    <xsl:value-of select="$biblioentry.item.separator"/>
446  </fo:inline>
447</xsl:template>
448
449<xsl:template match="contractsponsor" mode="bibliography.mode">
450  <fo:inline>
451    <xsl:apply-templates mode="bibliography.mode"/>
452    <xsl:value-of select="$biblioentry.item.separator"/>
453  </fo:inline>
454</xsl:template>
455
456<xsl:template match="contrib" mode="bibliography.mode">
457  <fo:inline>
458    <xsl:apply-templates mode="bibliography.mode"/>
459    <xsl:value-of select="$biblioentry.item.separator"/>
460  </fo:inline>
461</xsl:template>
462
463<!-- ================================================== -->
464
465<xsl:template match="copyright" mode="bibliography.mode">
466  <fo:inline>
467    <xsl:call-template name="gentext">
468      <xsl:with-param name="key" select="'Copyright'"/>
469    </xsl:call-template>
470    <xsl:call-template name="gentext.space"/>
471    <xsl:call-template name="dingbat">
472      <xsl:with-param name="dingbat">copyright</xsl:with-param>
473    </xsl:call-template>
474    <xsl:call-template name="gentext.space"/>
475    <xsl:apply-templates select="year" mode="bibliography.mode"/>
476    <xsl:if test="holder">
477      <xsl:call-template name="gentext.space"/>
478      <xsl:apply-templates select="holder" mode="bibliography.mode"/>
479    </xsl:if>
480    <xsl:value-of select="$biblioentry.item.separator"/>
481  </fo:inline>
482</xsl:template>
483
484<xsl:template match="year" mode="bibliography.mode">
485  <xsl:apply-templates/><xsl:text>, </xsl:text>
486</xsl:template>
487
488<xsl:template match="year[position()=last()]" mode="bibliography.mode">
489  <xsl:apply-templates/>
490</xsl:template>
491
492<xsl:template match="holder" mode="bibliography.mode">
493  <xsl:apply-templates/>
494</xsl:template>
495
496<!-- ================================================== -->
497
498<xsl:template match="corpauthor" mode="bibliography.mode">
499  <fo:inline>
500    <xsl:apply-templates mode="bibliography.mode"/>
501    <xsl:value-of select="$biblioentry.item.separator"/>
502  </fo:inline>
503</xsl:template>
504
505<xsl:template match="corpcredit" mode="bibliography.mode">
506  <fo:inline>
507    <xsl:apply-templates mode="bibliography.mode"/>
508    <xsl:value-of select="$biblioentry.item.separator"/>
509  </fo:inline>
510</xsl:template>
511
512<xsl:template match="corpname" mode="bibliography.mode">
513  <fo:inline>
514    <xsl:apply-templates mode="bibliography.mode"/>
515    <xsl:value-of select="$biblioentry.item.separator"/>
516  </fo:inline>
517</xsl:template>
518
519<xsl:template match="date" mode="bibliography.mode">
520  <fo:inline>
521    <xsl:apply-templates mode="bibliography.mode"/>
522    <xsl:value-of select="$biblioentry.item.separator"/>
523  </fo:inline>
524</xsl:template>
525
526<xsl:template match="edition" mode="bibliography.mode">
527  <fo:inline>
528    <xsl:apply-templates mode="bibliography.mode"/>
529    <xsl:value-of select="$biblioentry.item.separator"/>
530  </fo:inline>
531</xsl:template>
532
533<xsl:template match="editor" mode="bibliography.mode">
534  <fo:inline>
535    <xsl:call-template name="person.name"/>
536    <xsl:value-of select="$biblioentry.item.separator"/>
537  </fo:inline>
538</xsl:template>
539
540<xsl:template match="firstname" mode="bibliography.mode">
541  <fo:inline>
542    <xsl:apply-templates mode="bibliography.mode"/>
543    <xsl:value-of select="$biblioentry.item.separator"/>
544  </fo:inline>
545</xsl:template>
546
547<xsl:template match="honorific" mode="bibliography.mode">
548  <fo:inline>
549    <xsl:apply-templates mode="bibliography.mode"/>
550    <xsl:value-of select="$biblioentry.item.separator"/>
551  </fo:inline>
552</xsl:template>
553
554<xsl:template match="indexterm" mode="bibliography.mode">
555  <xsl:apply-templates select="."/> 
556</xsl:template>
557
558<xsl:template match="invpartnumber" mode="bibliography.mode">
559  <fo:inline>
560    <xsl:apply-templates mode="bibliography.mode"/>
561    <xsl:value-of select="$biblioentry.item.separator"/>
562  </fo:inline>
563</xsl:template>
564
565<xsl:template match="isbn" mode="bibliography.mode">
566  <fo:inline>
567    <xsl:apply-templates mode="bibliography.mode"/>
568    <xsl:value-of select="$biblioentry.item.separator"/>
569  </fo:inline>
570</xsl:template>
571
572<xsl:template match="issn" mode="bibliography.mode">
573  <fo:inline>
574    <xsl:apply-templates mode="bibliography.mode"/>
575    <xsl:value-of select="$biblioentry.item.separator"/>
576  </fo:inline>
577</xsl:template>
578
579<xsl:template match="issuenum" mode="bibliography.mode">
580  <fo:inline>
581    <xsl:apply-templates mode="bibliography.mode"/>
582    <xsl:value-of select="$biblioentry.item.separator"/>
583  </fo:inline>
584</xsl:template>
585
586<xsl:template match="lineage" mode="bibliography.mode">
587  <fo:inline>
588    <xsl:apply-templates mode="bibliography.mode"/>
589    <xsl:value-of select="$biblioentry.item.separator"/>
590  </fo:inline>
591</xsl:template>
592
593<xsl:template match="orgname" mode="bibliography.mode">
594  <fo:inline>
595    <xsl:apply-templates mode="bibliography.mode"/>
596    <xsl:value-of select="$biblioentry.item.separator"/>
597  </fo:inline>
598</xsl:template>
599
600<xsl:template match="othercredit" mode="bibliography.mode">
601  <fo:inline>
602    <xsl:apply-templates mode="bibliography.mode"/>
603    <xsl:value-of select="$biblioentry.item.separator"/>
604  </fo:inline>
605</xsl:template>
606
607<xsl:template match="othername" mode="bibliography.mode">
608  <fo:inline>
609    <xsl:apply-templates mode="bibliography.mode"/>
610    <xsl:value-of select="$biblioentry.item.separator"/>
611  </fo:inline>
612</xsl:template>
613
614<xsl:template match="pagenums" mode="bibliography.mode">
615  <fo:inline>
616    <xsl:apply-templates mode="bibliography.mode"/>
617    <xsl:value-of select="$biblioentry.item.separator"/>
618  </fo:inline>
619</xsl:template>
620
621<xsl:template match="printhistory" mode="bibliography.mode">
622  <fo:inline>
623    <xsl:apply-templates mode="bibliography.mode"/>
624    <xsl:value-of select="$biblioentry.item.separator"/>
625  </fo:inline>
626</xsl:template>
627
628<xsl:template match="productname" mode="bibliography.mode">
629  <fo:inline>
630    <xsl:apply-templates mode="bibliography.mode"/>
631    <xsl:value-of select="$biblioentry.item.separator"/>
632  </fo:inline>
633</xsl:template>
634
635<xsl:template match="productnumber" mode="bibliography.mode">
636  <fo:inline>
637    <xsl:apply-templates mode="bibliography.mode"/>
638    <xsl:value-of select="$biblioentry.item.separator"/>
639  </fo:inline>
640</xsl:template>
641
642<xsl:template match="pubdate" mode="bibliography.mode">
643  <fo:inline>
644    <xsl:apply-templates mode="bibliography.mode"/>
645    <xsl:value-of select="$biblioentry.item.separator"/>
646  </fo:inline>
647</xsl:template>
648
649<xsl:template match="publisher" mode="bibliography.mode">
650  <fo:inline>
651    <xsl:apply-templates mode="bibliography.mode"/>
652  </fo:inline>
653</xsl:template>
654
655<xsl:template match="publishername" mode="bibliography.mode">
656  <fo:inline>
657    <xsl:apply-templates mode="bibliography.mode"/>
658    <xsl:value-of select="$biblioentry.item.separator"/>
659  </fo:inline>
660</xsl:template>
661
662<xsl:template match="pubsnumber" mode="bibliography.mode">
663  <fo:inline>
664    <xsl:apply-templates mode="bibliography.mode"/>
665    <xsl:value-of select="$biblioentry.item.separator"/>
666  </fo:inline>
667</xsl:template>
668
669<xsl:template match="releaseinfo" mode="bibliography.mode">
670  <fo:inline>
671    <xsl:apply-templates mode="bibliography.mode"/>
672    <xsl:value-of select="$biblioentry.item.separator"/>
673  </fo:inline>
674</xsl:template>
675
676<xsl:template match="revhistory" mode="bibliography.mode">
677  <fo:block>
678    <xsl:apply-templates select="."/> <!-- use normal mode -->
679  </fo:block>
680</xsl:template>
681
682<xsl:template match="seriesinfo" mode="bibliography.mode">
683  <fo:inline>
684    <xsl:apply-templates mode="bibliography.mode"/>
685  </fo:inline>
686</xsl:template>
687
688<xsl:template match="seriesvolnums" mode="bibliography.mode">
689  <fo:inline>
690    <xsl:apply-templates mode="bibliography.mode"/>
691    <xsl:value-of select="$biblioentry.item.separator"/>
692  </fo:inline>
693</xsl:template>
694
695<xsl:template match="subtitle" mode="bibliography.mode">
696  <fo:inline>
697    <xsl:apply-templates mode="bibliography.mode"/>
698    <xsl:value-of select="$biblioentry.item.separator"/>
699  </fo:inline>
700</xsl:template>
701
702<xsl:template match="surname" mode="bibliography.mode">
703  <fo:inline>
704    <xsl:apply-templates mode="bibliography.mode"/>
705    <xsl:value-of select="$biblioentry.item.separator"/>
706  </fo:inline>
707</xsl:template>
708
709<xsl:template match="title" mode="bibliography.mode">
710  <fo:inline>
711    <fo:inline font-style="italic">
712      <xsl:apply-templates mode="bibliography.mode"/>
713    </fo:inline>
714    <xsl:value-of select="$biblioentry.item.separator"/>
715  </fo:inline>
716</xsl:template>
717
718<xsl:template match="titleabbrev" mode="bibliography.mode">
719  <fo:inline>
720    <xsl:apply-templates mode="bibliography.mode"/>
721    <xsl:value-of select="$biblioentry.item.separator"/>
722  </fo:inline>
723</xsl:template>
724
725<xsl:template match="volumenum" mode="bibliography.mode">
726  <fo:inline>
727    <xsl:apply-templates mode="bibliography.mode"/>
728    <xsl:value-of select="$biblioentry.item.separator"/>
729  </fo:inline>
730</xsl:template>
731
732<xsl:template match="orgdiv" mode="bibliography.mode">
733  <fo:inline>
734    <xsl:apply-templates mode="bibliography.mode"/>
735    <xsl:value-of select="$biblioentry.item.separator"/>
736  </fo:inline>
737</xsl:template>
738
739<xsl:template match="collabname" mode="bibliography.mode">
740  <fo:inline>
741    <xsl:apply-templates mode="bibliography.mode"/>
742    <xsl:value-of select="$biblioentry.item.separator"/>
743  </fo:inline>
744</xsl:template>
745
746<xsl:template match="confdates" mode="bibliography.mode">
747  <fo:inline>
748    <xsl:apply-templates mode="bibliography.mode"/>
749    <xsl:value-of select="$biblioentry.item.separator"/>
750  </fo:inline>
751</xsl:template>
752
753<xsl:template match="conftitle" mode="bibliography.mode">
754  <fo:inline>
755    <xsl:apply-templates mode="bibliography.mode"/>
756    <xsl:value-of select="$biblioentry.item.separator"/>
757  </fo:inline>
758</xsl:template>
759
760<xsl:template match="confnum" mode="bibliography.mode">
761  <fo:inline>
762    <xsl:apply-templates mode="bibliography.mode"/>
763    <xsl:value-of select="$biblioentry.item.separator"/>
764  </fo:inline>
765</xsl:template>
766
767<xsl:template match="confsponsor" mode="bibliography.mode">
768  <fo:inline>
769    <xsl:apply-templates mode="bibliography.mode"/>
770    <xsl:value-of select="$biblioentry.item.separator"/>
771  </fo:inline>
772</xsl:template>
773
774<xsl:template match="bibliocoverage|biblioid|bibliorelation|bibliosource"
775              mode="bibliography.mode">
776  <fo:inline>
777    <xsl:apply-templates mode="bibliography.mode"/>
778    <xsl:value-of select="$biblioentry.item.separator"/>
779  </fo:inline>
780</xsl:template>
781
782<!-- ==================================================================== -->
783
784<xsl:template match="*" mode="bibliomixed.mode">
785  <xsl:apply-templates select="."/><!-- try the default mode -->
786</xsl:template>
787
788<xsl:template match="abbrev" mode="bibliomixed.mode">
789  <xsl:if test="preceding-sibling::*">
790    <fo:inline>
791      <xsl:apply-templates mode="bibliomixed.mode"/>
792    </fo:inline>
793  </xsl:if>
794</xsl:template>
795
796<xsl:template match="abstract" mode="bibliomixed.mode">
797  <fo:block start-indent="1in">
798    <xsl:apply-templates mode="bibliomixed.mode"/>
799  </fo:block>
800</xsl:template>
801
802<xsl:template match="para" mode="bibliomixed.mode">
803  <fo:block>
804    <xsl:apply-templates mode="bibliomixed.mode"/>
805  </fo:block>
806</xsl:template>
807
808<xsl:template match="address" mode="bibliomixed.mode">
809  <fo:inline>
810    <xsl:apply-templates mode="bibliomixed.mode"/>
811  </fo:inline>
812</xsl:template>
813
814<xsl:template match="affiliation" mode="bibliomixed.mode">
815  <fo:inline>
816    <xsl:apply-templates mode="bibliomixed.mode"/>
817  </fo:inline>
818</xsl:template>
819
820<xsl:template match="shortaffil" mode="bibliomixed.mode">
821  <fo:inline>
822    <xsl:apply-templates mode="bibliography.mode"/>
823  </fo:inline>
824</xsl:template>
825
826<xsl:template match="jobtitle" mode="bibliomixed.mode">
827  <fo:inline>
828    <xsl:apply-templates mode="bibliography.mode"/>
829  </fo:inline>
830</xsl:template>
831
832<xsl:template match="artpagenums" mode="bibliomixed.mode">
833  <fo:inline>
834    <xsl:apply-templates mode="bibliomixed.mode"/>
835  </fo:inline>
836</xsl:template>
837
838<xsl:template match="author" mode="bibliomixed.mode">
839  <fo:inline>
840    <xsl:call-template name="person.name"/>
841  </fo:inline>
842</xsl:template>
843
844<xsl:template match="authorblurb|personblurb" mode="bibliomixed.mode">
845  <fo:inline>
846    <xsl:apply-templates mode="bibliomixed.mode"/>
847  </fo:inline>
848</xsl:template>
849
850<xsl:template match="authorgroup" mode="bibliomixed.mode">
851  <fo:inline>
852    <xsl:apply-templates mode="bibliomixed.mode"/>
853  </fo:inline>
854</xsl:template>
855
856<xsl:template match="authorinitials" mode="bibliomixed.mode">
857  <fo:inline>
858    <xsl:apply-templates mode="bibliomixed.mode"/>
859  </fo:inline>
860</xsl:template>
861
862<xsl:template match="bibliomisc" mode="bibliomixed.mode">
863  <fo:inline>
864    <xsl:apply-templates mode="bibliomixed.mode"/>
865  </fo:inline>
866</xsl:template>
867
868<!-- ================================================== -->
869
870<xsl:template match="bibliomset" mode="bibliomixed.mode">
871  <fo:inline>
872    <xsl:apply-templates mode="bibliomixed.mode"/>
873  </fo:inline>
874</xsl:template>
875
876<xsl:template match="bibliomset/title|bibliomset/citetitle" 
877              mode="bibliomixed.mode">
878  <xsl:variable name="relation" select="../@relation"/>
879  <xsl:choose>
880    <xsl:when test="$relation='article' or @pubwork='article'">
881      <xsl:call-template name="gentext.startquote"/>
882      <xsl:apply-templates mode="bibliomixed.mode"/>
883      <xsl:call-template name="gentext.endquote"/>
884    </xsl:when>
885    <xsl:otherwise>
886      <fo:inline font-style="italic">
887        <xsl:apply-templates/>
888      </fo:inline>
889    </xsl:otherwise>
890  </xsl:choose>
891</xsl:template>
892
893<!-- ================================================== -->
894
895<xsl:template match="biblioset" mode="bibliomixed.mode">
896  <fo:inline>
897    <xsl:apply-templates mode="bibliomixed.mode"/>
898  </fo:inline>
899</xsl:template>
900
901<xsl:template match="citetitle" mode="bibliomixed.mode">
902  <xsl:choose>
903    <xsl:when test="@pubwork = 'article'">
904      <xsl:call-template name="gentext.startquote"/>
905      <xsl:apply-templates mode="bibliomixed.mode"/>
906      <xsl:call-template name="gentext.endquote"/>
907    </xsl:when>
908    <xsl:otherwise>
909      <fo:inline font-style="italic">
910        <xsl:apply-templates mode="bibliography.mode"/>
911      </fo:inline>
912    </xsl:otherwise>
913  </xsl:choose>
914</xsl:template>
915
916<xsl:template match="collab" mode="bibliomixed.mode">
917  <fo:inline>
918    <xsl:apply-templates mode="bibliomixed.mode"/>
919  </fo:inline>
920</xsl:template>
921
922<xsl:template match="confgroup" mode="bibliomixed.mode">
923  <fo:inline>
924    <xsl:apply-templates mode="bibliomixed.mode"/>
925  </fo:inline>
926</xsl:template>
927
928<xsl:template match="contractnum" mode="bibliomixed.mode">
929  <fo:inline>
930    <xsl:apply-templates mode="bibliomixed.mode"/>
931  </fo:inline>
932</xsl:template>
933
934<xsl:template match="contractsponsor" mode="bibliomixed.mode">
935  <fo:inline>
936    <xsl:apply-templates mode="bibliomixed.mode"/>
937  </fo:inline>
938</xsl:template>
939
940<xsl:template match="contrib" mode="bibliomixed.mode">
941  <fo:inline>
942    <xsl:apply-templates mode="bibliomixed.mode"/>
943  </fo:inline>
944</xsl:template>
945
946<xsl:template match="copyright" mode="bibliomixed.mode">
947  <fo:inline>
948    <xsl:apply-templates mode="bibliomixed.mode"/>
949  </fo:inline>
950</xsl:template>
951
952<xsl:template match="corpauthor" mode="bibliomixed.mode">
953  <fo:inline>
954    <xsl:apply-templates mode="bibliomixed.mode"/>
955  </fo:inline>
956</xsl:template>
957
958<xsl:template match="corpcredit" mode="bibliomixed.mode">
959  <fo:inline>
960    <xsl:apply-templates mode="bibliomixed.mode"/>
961  </fo:inline>
962</xsl:template>
963
964<xsl:template match="corpname" mode="bibliomixed.mode">
965  <fo:inline>
966    <xsl:apply-templates mode="bibliomixed.mode"/>
967  </fo:inline>
968</xsl:template>
969
970<xsl:template match="date" mode="bibliomixed.mode">
971  <fo:inline>
972    <xsl:apply-templates mode="bibliomixed.mode"/>
973  </fo:inline>
974</xsl:template>
975
976<xsl:template match="edition" mode="bibliomixed.mode">
977  <fo:inline>
978    <xsl:apply-templates mode="bibliomixed.mode"/>
979  </fo:inline>
980</xsl:template>
981
982<xsl:template match="editor" mode="bibliomixed.mode">
983  <fo:inline>
984    <xsl:apply-templates mode="bibliomixed.mode"/>
985  </fo:inline>
986</xsl:template>
987
988<xsl:template match="firstname" mode="bibliomixed.mode">
989  <fo:inline>
990    <xsl:apply-templates mode="bibliomixed.mode"/>
991  </fo:inline>
992</xsl:template>
993
994<xsl:template match="honorific" mode="bibliomixed.mode">
995  <fo:inline>
996    <xsl:apply-templates mode="bibliomixed.mode"/>
997  </fo:inline>
998</xsl:template>
999
1000<xsl:template match="indexterm" mode="bibliomixed.mode">
1001  <xsl:apply-templates select="."/> 
1002</xsl:template>
1003
1004<xsl:template match="invpartnumber" mode="bibliomixed.mode">
1005  <fo:inline>
1006    <xsl:apply-templates mode="bibliomixed.mode"/>
1007  </fo:inline>
1008</xsl:template>
1009
1010<xsl:template match="isbn" mode="bibliomixed.mode">
1011  <fo:inline>
1012    <xsl:apply-templates mode="bibliomixed.mode"/>
1013  </fo:inline>
1014</xsl:template>
1015
1016<xsl:template match="issn" mode="bibliomixed.mode">
1017  <fo:inline>
1018    <xsl:apply-templates mode="bibliomixed.mode"/>
1019  </fo:inline>
1020</xsl:template>
1021
1022<xsl:template match="issuenum" mode="bibliomixed.mode">
1023  <fo:inline>
1024    <xsl:apply-templates mode="bibliomixed.mode"/>
1025  </fo:inline>
1026</xsl:template>
1027
1028<xsl:template match="lineage" mode="bibliomixed.mode">
1029  <fo:inline>
1030    <xsl:apply-templates mode="bibliomixed.mode"/>
1031  </fo:inline>
1032</xsl:template>
1033
1034<xsl:template match="orgname" mode="bibliomixed.mode">
1035  <fo:inline>
1036    <xsl:apply-templates mode="bibliomixed.mode"/>
1037  </fo:inline>
1038</xsl:template>
1039
1040<xsl:template match="othercredit" mode="bibliomixed.mode">
1041  <fo:inline>
1042    <xsl:apply-templates mode="bibliomixed.mode"/>
1043  </fo:inline>
1044</xsl:template>
1045
1046<xsl:template match="othername" mode="bibliomixed.mode">
1047  <fo:inline>
1048    <xsl:apply-templates mode="bibliomixed.mode"/>
1049  </fo:inline>
1050</xsl:template>
1051
1052<xsl:template match="pagenums" mode="bibliomixed.mode">
1053  <fo:inline>
1054    <xsl:apply-templates mode="bibliomixed.mode"/>
1055  </fo:inline>
1056</xsl:template>
1057
1058<xsl:template match="printhistory" mode="bibliomixed.mode">
1059  <fo:inline>
1060    <xsl:apply-templates mode="bibliomixed.mode"/>
1061  </fo:inline>
1062</xsl:template>
1063
1064<xsl:template match="productname" mode="bibliomixed.mode">
1065  <fo:inline>
1066    <xsl:apply-templates mode="bibliomixed.mode"/>
1067  </fo:inline>
1068</xsl:template>
1069
1070<xsl:template match="productnumber" mode="bibliomixed.mode">
1071  <fo:inline>
1072    <xsl:apply-templates mode="bibliomixed.mode"/>
1073  </fo:inline>
1074</xsl:template>
1075
1076<xsl:template match="pubdate" mode="bibliomixed.mode">
1077  <fo:inline>
1078    <xsl:apply-templates mode="bibliomixed.mode"/>
1079  </fo:inline>
1080</xsl:template>
1081
1082<xsl:template match="publisher" mode="bibliomixed.mode">
1083  <fo:inline>
1084    <xsl:apply-templates mode="bibliomixed.mode"/>
1085  </fo:inline>
1086</xsl:template>
1087
1088<xsl:template match="publishername" mode="bibliomixed.mode">
1089  <fo:inline>
1090    <xsl:apply-templates mode="bibliomixed.mode"/>
1091  </fo:inline>
1092</xsl:template>
1093
1094<xsl:template match="pubsnumber" mode="bibliomixed.mode">
1095  <fo:inline>
1096    <xsl:apply-templates mode="bibliomixed.mode"/>
1097  </fo:inline>
1098</xsl:template>
1099
1100<xsl:template match="releaseinfo" mode="bibliomixed.mode">
1101  <fo:inline>
1102    <xsl:apply-templates mode="bibliomixed.mode"/>
1103  </fo:inline>
1104</xsl:template>
1105
1106<xsl:template match="revhistory" mode="bibliomixed.mode">
1107  <fo:inline>
1108    <xsl:apply-templates mode="bibliomixed.mode"/>
1109  </fo:inline>
1110</xsl:template>
1111
1112<xsl:template match="seriesvolnums" mode="bibliomixed.mode">
1113  <fo:inline>
1114    <xsl:apply-templates mode="bibliomixed.mode"/>
1115  </fo:inline>
1116</xsl:template>
1117
1118<xsl:template match="subtitle" mode="bibliomixed.mode">
1119  <fo:inline>
1120    <xsl:apply-templates mode="bibliomixed.mode"/>
1121  </fo:inline>
1122</xsl:template>
1123
1124<xsl:template match="surname" mode="bibliomixed.mode">
1125  <fo:inline>
1126    <xsl:apply-templates mode="bibliomixed.mode"/>
1127  </fo:inline>
1128</xsl:template>
1129
1130<xsl:template match="title" mode="bibliomixed.mode">
1131  <fo:inline>
1132    <xsl:apply-templates mode="bibliomixed.mode"/>
1133  </fo:inline>
1134</xsl:template>
1135
1136<xsl:template match="titleabbrev" mode="bibliomixed.mode">
1137  <fo:inline>
1138    <xsl:apply-templates mode="bibliomixed.mode"/>
1139  </fo:inline>
1140</xsl:template>
1141
1142<xsl:template match="volumenum" mode="bibliomixed.mode">
1143  <fo:inline>
1144    <xsl:apply-templates mode="bibliomixed.mode"/>
1145  </fo:inline>
1146</xsl:template>
1147
1148<xsl:template match="bibliocoverage|biblioid|bibliorelation|bibliosource"
1149              mode="bibliomixed.mode">
1150  <fo:inline>
1151    <xsl:apply-templates mode="bibliomixed.mode"/>
1152  </fo:inline>
1153</xsl:template>
1154
1155<!-- ==================================================================== -->
1156
1157</xsl:stylesheet>
1158