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: titlepage.xsl,v 1.41 2006/05/21 13:05:19 kosek 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:attribute-set name="book.titlepage.recto.style">
19  <xsl:attribute name="font-family">
20    <xsl:value-of select="$title.fontset"/>
21  </xsl:attribute>
22  <xsl:attribute name="font-weight">bold</xsl:attribute>
23  <xsl:attribute name="font-size">12pt</xsl:attribute>
24  <xsl:attribute name="text-align">center</xsl:attribute>
25</xsl:attribute-set>
26
27<xsl:attribute-set name="book.titlepage.verso.style">
28  <xsl:attribute name="font-size">10pt</xsl:attribute>
29</xsl:attribute-set>
30
31<xsl:attribute-set name="article.titlepage.recto.style"/>
32<xsl:attribute-set name="article.titlepage.verso.style"/>
33
34<xsl:attribute-set name="set.titlepage.recto.style"/>
35<xsl:attribute-set name="set.titlepage.verso.style"/>
36
37<xsl:attribute-set name="part.titlepage.recto.style">
38  <xsl:attribute name="text-align">center</xsl:attribute>
39</xsl:attribute-set>
40
41<xsl:attribute-set name="part.titlepage.verso.style"/>
42
43<xsl:attribute-set name="partintro.titlepage.recto.style"/>
44<xsl:attribute-set name="partintro.titlepage.verso.style"/>
45
46<xsl:attribute-set name="reference.titlepage.recto.style"/>
47<xsl:attribute-set name="reference.titlepage.verso.style"/>
48
49<xsl:attribute-set name="dedication.titlepage.recto.style"/>
50<xsl:attribute-set name="dedication.titlepage.verso.style"/>
51
52<xsl:attribute-set name="preface.titlepage.recto.style"/>
53<xsl:attribute-set name="preface.titlepage.verso.style"/>
54
55<xsl:attribute-set name="chapter.titlepage.recto.style"/>
56<xsl:attribute-set name="chapter.titlepage.verso.style"/>
57
58<xsl:attribute-set name="appendix.titlepage.recto.style"/>
59<xsl:attribute-set name="appendix.titlepage.verso.style"/>
60
61<xsl:attribute-set name="bibliography.titlepage.recto.style"/>
62<xsl:attribute-set name="bibliography.titlepage.verso.style"/>
63
64<xsl:attribute-set name="bibliodiv.titlepage.recto.style"/>
65<xsl:attribute-set name="bibliodiv.titlepage.verso.style"/>
66
67<xsl:attribute-set name="glossary.titlepage.recto.style"/>
68<xsl:attribute-set name="glossary.titlepage.verso.style"/>
69
70<xsl:attribute-set name="glossdiv.titlepage.recto.style"/>
71<xsl:attribute-set name="glossdiv.titlepage.verso.style"/>
72
73<xsl:attribute-set name="index.titlepage.recto.style"/>
74<xsl:attribute-set name="index.titlepage.verso.style"/>
75
76<xsl:attribute-set name="setindex.titlepage.recto.style"/>
77<xsl:attribute-set name="setindex.titlepage.verso.style"/>
78
79<xsl:attribute-set name="indexdiv.titlepage.recto.style"/>
80<xsl:attribute-set name="indexdiv.titlepage.verso.style"/>
81
82<xsl:attribute-set name="colophon.titlepage.recto.style"/>
83<xsl:attribute-set name="colophon.titlepage.verso.style"/>
84
85<xsl:attribute-set name="sidebar.titlepage.recto.style"/>
86<xsl:attribute-set name="sidebar.titlepage.verso.style"/>
87
88<xsl:attribute-set name="qandaset.titlepage.recto.style"/>
89<xsl:attribute-set name="qandaset.titlepage.verso.style"/>
90
91<xsl:attribute-set name="section.titlepage.recto.style">
92  <xsl:attribute name="keep-together.within-column">always</xsl:attribute>
93</xsl:attribute-set>
94
95<xsl:attribute-set name="section.titlepage.verso.style">
96  <xsl:attribute name="keep-together.within-column">always</xsl:attribute>
97  <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
98</xsl:attribute-set>
99
100<xsl:attribute-set name="sect1.titlepage.recto.style"
101                   use-attribute-sets="section.titlepage.recto.style"/>
102<xsl:attribute-set name="sect1.titlepage.verso.style"
103                   use-attribute-sets="section.titlepage.verso.style"/>
104
105<xsl:attribute-set name="sect2.titlepage.recto.style"
106                   use-attribute-sets="section.titlepage.recto.style"/>
107<xsl:attribute-set name="sect2.titlepage.verso.style"
108                   use-attribute-sets="section.titlepage.verso.style"/>
109
110<xsl:attribute-set name="sect3.titlepage.recto.style"
111                   use-attribute-sets="section.titlepage.recto.style"/>
112<xsl:attribute-set name="sect3.titlepage.verso.style"
113                   use-attribute-sets="section.titlepage.verso.style"/>
114
115<xsl:attribute-set name="sect4.titlepage.recto.style"
116                   use-attribute-sets="section.titlepage.recto.style"/>
117<xsl:attribute-set name="sect4.titlepage.verso.style"
118                   use-attribute-sets="section.titlepage.verso.style"/>
119
120<xsl:attribute-set name="sect5.titlepage.recto.style"
121                   use-attribute-sets="section.titlepage.recto.style"/>
122<xsl:attribute-set name="sect5.titlepage.verso.style"
123                   use-attribute-sets="section.titlepage.verso.style"/>
124
125<xsl:attribute-set name="simplesect.titlepage.recto.style"
126                   use-attribute-sets="section.titlepage.recto.style"/>
127<xsl:attribute-set name="simplesect.titlepage.verso.style"
128                   use-attribute-sets="section.titlepage.verso.style"/>
129
130<xsl:attribute-set name="refnamediv.titlepage.recto.style"
131                   use-attribute-sets="section.titlepage.recto.style"/>
132<xsl:attribute-set name="refnamediv.titlepage.verso.style"
133                   use-attribute-sets="section.titlepage.verso.style"/>
134
135<xsl:attribute-set name="refsynopsisdiv.titlepage.recto.style"
136                   use-attribute-sets="section.titlepage.recto.style"/>
137<xsl:attribute-set name="refsynopsisdiv.titlepage.verso.style"
138                   use-attribute-sets="section.titlepage.verso.style"/>
139
140<xsl:attribute-set name="refsection.titlepage.recto.style"
141                   use-attribute-sets="section.titlepage.recto.style"/>
142<xsl:attribute-set name="refsection.titlepage.verso.style"
143                   use-attribute-sets="section.titlepage.verso.style"/>
144
145<xsl:attribute-set name="refsect1.titlepage.recto.style"
146                   use-attribute-sets="section.titlepage.recto.style"/>
147<xsl:attribute-set name="refsect1.titlepage.verso.style"
148                   use-attribute-sets="section.titlepage.verso.style"/>
149
150<xsl:attribute-set name="refsect2.titlepage.recto.style"
151                   use-attribute-sets="section.titlepage.recto.style"/>
152<xsl:attribute-set name="refsect2.titlepage.verso.style"
153                   use-attribute-sets="section.titlepage.verso.style"/>
154
155<xsl:attribute-set name="refsect3.titlepage.recto.style"
156                   use-attribute-sets="section.titlepage.recto.style"/>
157<xsl:attribute-set name="refsect3.titlepage.verso.style"
158                   use-attribute-sets="section.titlepage.verso.style"/>
159
160<xsl:attribute-set name="table.of.contents.titlepage.recto.style"/>
161<xsl:attribute-set name="table.of.contents.titlepage.verso.style"/>
162
163<xsl:attribute-set name="list.of.tables.titlepage.recto.style"/>
164<xsl:attribute-set name="list.of.tables.contents.titlepage.verso.style"/>
165
166<xsl:attribute-set name="list.of.figures.titlepage.recto.style"/>
167<xsl:attribute-set name="list.of.figures.contents.titlepage.verso.style"/>
168
169<xsl:attribute-set name="list.of.equations.titlepage.recto.style"/>
170<xsl:attribute-set name="list.of.equations.contents.titlepage.verso.style"/>
171
172<xsl:attribute-set name="list.of.examples.titlepage.recto.style"/>
173<xsl:attribute-set name="list.of.examples.contents.titlepage.verso.style"/>
174
175<xsl:attribute-set name="list.of.procedures.titlepage.recto.style"/>
176<xsl:attribute-set name="list.of.procedures.contents.titlepage.verso.style"/>
177
178<xsl:attribute-set name="list.of.unknowns.titlepage.recto.style"/>
179<xsl:attribute-set name="list.of.unknowns.contents.titlepage.verso.style"/>
180
181<!-- ==================================================================== -->
182
183<xsl:template match="*" mode="titlepage.mode">
184  <!-- if an element isn't found in this mode, try the default mode -->
185  <xsl:apply-templates select="."/>
186</xsl:template>
187
188<xsl:template match="abbrev" mode="titlepage.mode">
189  <xsl:apply-templates mode="titlepage.mode"/>
190</xsl:template>
191
192<xsl:template match="abstract" mode="titlepage.mode">
193  <fo:block>
194    <xsl:call-template name="formal.object.heading">
195      <xsl:with-param name="title">
196        <xsl:apply-templates select="." mode="title.markup"/>
197      </xsl:with-param>
198    </xsl:call-template>
199    <xsl:apply-templates mode="titlepage.mode"/>
200  </fo:block>
201</xsl:template>
202
203<xsl:template match="abstract/title" mode="titlepage.mode"/>
204
205<xsl:template match="abstract/title" mode="titlepage.abstract.title.mode">
206  <xsl:apply-templates mode="titlepage.mode"/>
207</xsl:template>
208
209<xsl:template match="address" mode="titlepage.mode">
210  <!-- use the normal address handling code -->
211  <xsl:apply-templates select="."/>
212</xsl:template>
213
214<xsl:template match="affiliation" mode="titlepage.mode">
215  <fo:block>
216    <xsl:apply-templates mode="titlepage.mode"/>
217  </fo:block>
218</xsl:template>
219
220<xsl:template match="artpagenums" mode="titlepage.mode">
221  <xsl:apply-templates mode="titlepage.mode"/>
222</xsl:template>
223
224<xsl:template match="author" mode="titlepage.mode">
225  <fo:block>
226    <xsl:call-template name="anchor"/>
227    <xsl:call-template name="person.name"/>
228    <xsl:if test="affiliation/orgname">
229      <xsl:text>, </xsl:text>
230      <xsl:apply-templates select="affiliation/orgname" mode="titlepage.mode"/>
231    </xsl:if>
232    <xsl:if test="email|affiliation/address/email">
233      <xsl:text> </xsl:text>
234      <xsl:apply-templates select="(email|affiliation/address/email)[1]"/>
235    </xsl:if>
236  </fo:block>
237</xsl:template>
238
239<xsl:template match="authorblurb" mode="titlepage.mode">
240  <xsl:apply-templates mode="titlepage.mode"/>
241</xsl:template>
242
243<xsl:template match="authorgroup" mode="titlepage.mode">
244  <fo:wrapper>
245    <xsl:if test="@id">
246      <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
247    </xsl:if>
248    <xsl:apply-templates mode="titlepage.mode"/>
249  </fo:wrapper>
250</xsl:template>
251
252<xsl:template match="authorinitials" mode="titlepage.mode">
253  <xsl:apply-templates mode="titlepage.mode"/>
254</xsl:template>
255
256<xsl:template match="bibliomisc" mode="titlepage.mode">
257  <xsl:apply-templates mode="titlepage.mode"/>
258</xsl:template>
259
260<xsl:template match="bibliomset" mode="titlepage.mode">
261  <xsl:apply-templates mode="titlepage.mode"/>
262</xsl:template>
263
264<xsl:template match="collab" mode="titlepage.mode">
265  <xsl:apply-templates mode="titlepage.mode"/>
266</xsl:template>
267
268<xsl:template match="confgroup" mode="titlepage.mode">
269  <fo:block>
270    <xsl:apply-templates mode="titlepage.mode"/>
271  </fo:block>
272</xsl:template>
273
274<xsl:template match="confdates" mode="titlepage.mode">
275  <fo:block>
276    <xsl:apply-templates mode="titlepage.mode"/>
277  </fo:block>
278</xsl:template>
279
280<xsl:template match="conftitle" mode="titlepage.mode">
281  <fo:block>
282    <xsl:apply-templates mode="titlepage.mode"/>
283  </fo:block>
284</xsl:template>
285
286<xsl:template match="confnum" mode="titlepage.mode">
287  <!-- suppress -->
288</xsl:template>
289
290<xsl:template match="contractnum" mode="titlepage.mode">
291  <xsl:apply-templates mode="titlepage.mode"/>
292</xsl:template>
293
294<xsl:template match="contractsponsor" mode="titlepage.mode">
295  <xsl:apply-templates mode="titlepage.mode"/>
296</xsl:template>
297
298<xsl:template match="contrib" mode="titlepage.mode">
299  <xsl:apply-templates mode="titlepage.mode"/>
300</xsl:template>
301
302<xsl:template match="copyright" mode="titlepage.mode">
303  <xsl:call-template name="gentext">
304    <xsl:with-param name="key" select="'Copyright'"/>
305  </xsl:call-template>
306  <xsl:call-template name="gentext.space"/>
307  <xsl:call-template name="dingbat">
308    <xsl:with-param name="dingbat">copyright</xsl:with-param>
309  </xsl:call-template>
310  <xsl:call-template name="gentext.space"/>
311  <xsl:call-template name="copyright.years">
312    <xsl:with-param name="years" select="year"/>
313    <xsl:with-param name="print.ranges" select="$make.year.ranges"/>
314    <xsl:with-param name="single.year.ranges"
315                    select="$make.single.year.ranges"/>
316  </xsl:call-template>
317  <xsl:call-template name="gentext.space"/>
318  <xsl:apply-templates select="holder" mode="titlepage.mode"/>
319</xsl:template>
320
321<xsl:template match="year" mode="titlepage.mode">
322  <xsl:apply-templates/>
323</xsl:template>
324
325<xsl:template match="holder" mode="titlepage.mode">
326  <xsl:apply-templates/>
327</xsl:template>
328
329<xsl:template match="corpauthor" mode="titlepage.mode">
330  <xsl:apply-templates mode="titlepage.mode"/>
331</xsl:template>
332
333<xsl:template match="corpcredit" mode="titlepage.mode">
334  <xsl:apply-templates mode="titlepage.mode"/>
335</xsl:template>
336
337<xsl:template match="corpname" mode="titlepage.mode">
338  <xsl:apply-templates mode="titlepage.mode"/>
339</xsl:template>
340
341<xsl:template match="date" mode="titlepage.mode">
342  <xsl:apply-templates mode="titlepage.mode"/>
343</xsl:template>
344
345<xsl:template match="edition" mode="titlepage.mode">
346  <xsl:apply-templates mode="titlepage.mode"/>
347  <xsl:call-template name="gentext.space"/>
348  <xsl:call-template name="gentext">
349    <xsl:with-param name="key" select="'Edition'"/>
350  </xsl:call-template>
351</xsl:template>
352
353<xsl:template match="editor" mode="titlepage.mode">
354  <!-- The first editor is dealt with in the following template,
355       which in turn displays all editors of the same mode. -->
356</xsl:template>
357
358<xsl:template match="editor[1]" priority="2" mode="titlepage.mode">
359  <xsl:call-template name="gentext.edited.by"/>
360  <xsl:call-template name="gentext.space"/>
361  <xsl:call-template name="person.name.list">
362    <xsl:with-param name="person.list" select="/editor"/>
363  </xsl:call-template>
364</xsl:template>
365
366<xsl:template match="firstname" mode="titlepage.mode">
367  <xsl:apply-templates mode="titlepage.mode"/>
368</xsl:template>
369
370<xsl:template match="graphic" mode="titlepage.mode">
371  <!-- use the normal graphic handling code -->
372  <xsl:apply-templates select="."/>
373</xsl:template>
374
375<xsl:template match="honorific" mode="titlepage.mode">
376  <xsl:apply-templates mode="titlepage.mode"/>
377</xsl:template>
378
379<xsl:template match="isbn" mode="titlepage.mode">
380  <xsl:apply-templates mode="titlepage.mode"/>
381</xsl:template>
382
383<xsl:template match="issn" mode="titlepage.mode">
384  <xsl:apply-templates mode="titlepage.mode"/>
385</xsl:template>
386
387<xsl:template match="biblioid" mode="titlepage.mode">
388  <xsl:apply-templates mode="titlepage.mode"/>
389</xsl:template>
390
391<xsl:template match="itermset" mode="titlepage.mode">
392  <!-- discard -->
393</xsl:template>
394
395<xsl:template match="invpartnumber" mode="titlepage.mode">
396  <xsl:apply-templates mode="titlepage.mode"/>
397</xsl:template>
398
399<xsl:template match="issuenum" mode="titlepage.mode">
400  <xsl:apply-templates mode="titlepage.mode"/>
401</xsl:template>
402
403<xsl:template match="jobtitle" mode="titlepage.mode">
404  <fo:block>
405    <xsl:apply-templates mode="titlepage.mode"/>
406  </fo:block>
407</xsl:template>
408
409<xsl:template match="keywordset" mode="titlepage.mode">
410</xsl:template>
411
412<xsl:template match="legalnotice" mode="titlepage.mode">
413
414  <xsl:variable name="id">
415    <xsl:call-template name="object.id"/>
416  </xsl:variable>
417
418  <fo:block id="{$id}">
419    <xsl:if test="title"> <!-- FIXME: add param for using default title? -->
420      <xsl:call-template name="formal.object.heading"/>
421    </xsl:if>
422    <xsl:apply-templates mode="titlepage.mode"/>
423  </fo:block>
424</xsl:template>
425
426<xsl:template match="legalnotice/title" mode="titlepage.mode">
427</xsl:template>
428
429<xsl:template match="lineage" mode="titlepage.mode">
430  <xsl:apply-templates mode="titlepage.mode"/>
431</xsl:template>
432
433<xsl:template match="modespec" mode="titlepage.mode">
434  <!-- discard -->
435</xsl:template>
436
437<xsl:template match="orgdiv" mode="titlepage.mode">
438  <xsl:apply-templates mode="titlepage.mode"/>
439</xsl:template>
440
441<xsl:template match="orgname" mode="titlepage.mode">
442  <xsl:apply-templates mode="titlepage.mode"/>
443</xsl:template>
444
445<xsl:template match="othercredit" mode="titlepage.mode">
446  <xsl:variable name="contrib" select="string(contrib)"/>
447  <xsl:choose>
448    <xsl:when test="contrib">
449      <xsl:if test="not(preceding-sibling::othercredit[string(contrib)=$contrib])">
450        <fo:block>
451          <xsl:apply-templates mode="titlepage.mode" select="contrib"/>
452          <xsl:text>: </xsl:text>
453          <xsl:call-template name="person.name"/>
454          <xsl:apply-templates mode="titlepage.mode" select="affiliation"/>
455          <xsl:apply-templates select="following-sibling::othercredit[string(contrib)=$contrib]" mode="titlepage.othercredits"/>
456        </fo:block>
457      </xsl:if>
458    </xsl:when>
459    <xsl:otherwise>
460      <fo:block><xsl:call-template name="person.name"/></fo:block>
461      <xsl:apply-templates mode="titlepage.mode" select="/affiliation"/>
462    </xsl:otherwise>
463  </xsl:choose>
464</xsl:template>
465
466<xsl:template match="othercredit" mode="titlepage.othercredits">
467  <xsl:text>, </xsl:text>
468  <xsl:call-template name="person.name"/>
469</xsl:template>
470
471<xsl:template match="othername" mode="titlepage.mode">
472  <xsl:apply-templates mode="titlepage.mode"/>
473</xsl:template>
474
475<xsl:template match="pagenums" mode="titlepage.mode">
476  <xsl:apply-templates mode="titlepage.mode"/>
477</xsl:template>
478
479<xsl:template match="printhistory" mode="titlepage.mode">
480  <xsl:apply-templates mode="titlepage.mode"/>
481</xsl:template>
482
483<xsl:template match="productname" mode="titlepage.mode">
484  <xsl:apply-templates mode="titlepage.mode"/>
485</xsl:template>
486
487<xsl:template match="productnumber" mode="titlepage.mode">
488  <xsl:apply-templates mode="titlepage.mode"/>
489</xsl:template>
490
491<xsl:template match="pubdate" mode="titlepage.mode">
492  <xsl:apply-templates mode="titlepage.mode"/>
493</xsl:template>
494
495<xsl:template match="publisher" mode="titlepage.mode">
496  <fo:block>
497    <xsl:apply-templates mode="titlepage.mode"/>
498  </fo:block>
499</xsl:template>
500
501<xsl:template match="publishername" mode="titlepage.mode">
502  <xsl:apply-templates mode="titlepage.mode"/>
503</xsl:template>
504
505<xsl:template match="pubsnumber" mode="titlepage.mode">
506  <xsl:apply-templates mode="titlepage.mode"/>
507</xsl:template>
508
509<xsl:template match="releaseinfo" mode="titlepage.mode">
510  <xsl:apply-templates mode="titlepage.mode"/>
511</xsl:template>
512
513<xsl:template match="revhistory" mode="titlepage.mode">
514
515  <xsl:variable name="explicit.table.width">
516    <xsl:call-template name="dbfo-attribute">
517      <xsl:with-param name="pis"
518                      select="processing-instruction('dbfo')"/>
519      <xsl:with-param name="attribute" select="'table-width'"/>
520    </xsl:call-template>
521  </xsl:variable>
522
523  <xsl:variable name="table.width">
524    <xsl:choose>
525      <xsl:when test="$explicit.table.width != ''">
526        <xsl:value-of select="$explicit.table.width"/>
527      </xsl:when>
528      <xsl:when test="$default.table.width = ''">
529        <xsl:text>100%</xsl:text>
530      </xsl:when>
531      <xsl:otherwise>
532        <xsl:value-of select="$default.table.width"/>
533      </xsl:otherwise>
534    </xsl:choose>
535  </xsl:variable>
536
537  <fo:table table-layout="fixed" width="{$table.width}" xsl:use-attribute-sets="revhistory.table.properties">
538    <fo:table-column column-number="1" column-width="proportional-column-width(1)"/>
539    <fo:table-column column-number="2" column-width="proportional-column-width(1)"/>
540    <fo:table-column column-number="3" column-width="proportional-column-width(1)"/>
541    <fo:table-body start-indent="0pt" end-indent="0pt">
542      <fo:table-row>
543        <fo:table-cell number-columns-spanned="3" xsl:use-attribute-sets="revhistory.table.cell.properties">
544          <fo:block xsl:use-attribute-sets="revhistory.title.properties">
545            <xsl:call-template name="gentext">
546              <xsl:with-param name="key" select="'RevHistory'"/>
547            </xsl:call-template>
548          </fo:block>
549        </fo:table-cell>
550      </fo:table-row>
551      <xsl:apply-templates mode="titlepage.mode"/>
552    </fo:table-body>
553  </fo:table>
554</xsl:template>
555
556<xsl:template match="revhistory/revision" mode="titlepage.mode">
557  <xsl:variable name="revnumber" select="revnumber"/>
558  <xsl:variable name="revdate"   select="date"/>
559  <xsl:variable name="revauthor" select="authorinitials|author"/>
560  <xsl:variable name="revremark" select="revremark|revdescription"/>
561  <fo:table-row>
562    <fo:table-cell xsl:use-attribute-sets="revhistory.table.cell.properties">
563      <fo:block>
564        <xsl:if test="$revnumber">
565          <xsl:call-template name="gentext">
566            <xsl:with-param name="key" select="'Revision'"/>
567          </xsl:call-template>
568          <xsl:call-template name="gentext.space"/>
569          <xsl:apply-templates select="$revnumber[1]" mode="titlepage.mode"/>
570        </xsl:if>
571      </fo:block>
572    </fo:table-cell>
573    <fo:table-cell xsl:use-attribute-sets="revhistory.table.cell.properties">
574      <fo:block>
575        <xsl:apply-templates select="$revdate[1]" mode="titlepage.mode"/>
576      </fo:block>
577    </fo:table-cell>
578    <fo:table-cell xsl:use-attribute-sets="revhistory.table.cell.properties">
579      <fo:block>
580        <xsl:for-each select="$revauthor">
581          <xsl:apply-templates select="." mode="titlepage.mode"/>
582          <xsl:if test="position() != last()">
583            <xsl:text>, </xsl:text>
584          </xsl:if>
585        </xsl:for-each>
586      </fo:block>
587    </fo:table-cell>
588  </fo:table-row>
589  <xsl:if test="$revremark">
590    <fo:table-row>
591      <fo:table-cell number-columns-spanned="3" xsl:use-attribute-sets="revhistory.table.cell.properties">
592        <fo:block>
593          <xsl:apply-templates select="$revremark[1]" mode="titlepage.mode"/>
594        </fo:block>
595      </fo:table-cell>
596    </fo:table-row>
597  </xsl:if>
598</xsl:template>
599
600<xsl:template match="revision/revnumber" mode="titlepage.mode">
601  <xsl:apply-templates mode="titlepage.mode"/>
602</xsl:template>
603
604<xsl:template match="revision/date" mode="titlepage.mode">
605  <xsl:apply-templates mode="titlepage.mode"/>
606</xsl:template>
607
608<xsl:template match="revision/authorinitials" mode="titlepage.mode">
609  <xsl:apply-templates mode="titlepage.mode"/>
610</xsl:template>
611
612<xsl:template match="revision/author" mode="titlepage.mode">
613  <xsl:apply-templates mode="titlepage.mode"/>
614</xsl:template>
615
616<xsl:template match="revision/revremark" mode="titlepage.mode">
617  <xsl:apply-templates mode="titlepage.mode"/>
618</xsl:template>
619
620<xsl:template match="revision/revdescription" mode="titlepage.mode">
621  <xsl:apply-templates mode="titlepage.mode"/>
622</xsl:template>
623
624<xsl:template match="seriesvolnums" mode="titlepage.mode">
625  <xsl:apply-templates mode="titlepage.mode"/>
626</xsl:template>
627
628<xsl:template match="shortaffil" mode="titlepage.mode">
629  <xsl:apply-templates mode="titlepage.mode"/>
630</xsl:template>
631
632<xsl:template match="subjectset" mode="titlepage.mode">
633  <!-- discard -->
634</xsl:template>
635
636<xsl:template match="subtitle" mode="titlepage.mode">
637  <xsl:apply-templates mode="titlepage.mode"/>
638</xsl:template>
639
640<xsl:template match="surname" mode="titlepage.mode">
641  <xsl:apply-templates mode="titlepage.mode"/>
642</xsl:template>
643
644<xsl:template match="title" mode="titlepage.mode">
645  <xsl:apply-templates mode="titlepage.mode"/>
646</xsl:template>
647
648<xsl:template match="titleabbrev" mode="titlepage.mode">
649  <xsl:apply-templates mode="titlepage.mode"/>
650</xsl:template>
651
652<xsl:template match="volumenum" mode="titlepage.mode">
653  <xsl:apply-templates mode="titlepage.mode"/>
654</xsl:template>
655
656<!-- ==================================================================== -->
657<!-- Book templates -->
658
659<!-- Note: these templates cannot use *.titlepage.recto.mode or
660     *.titlepage.verso.mode. If they do then subsequent use of a custom
661     titlepage.templates.xml file will not work correctly. -->
662
663<!-- book recto -->
664
665<xsl:template match="bookinfo/authorgroup|info/authorgroup"
666              mode="titlepage.mode" priority="2">
667  <fo:block>
668    <xsl:if test="@id">
669      <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
670    </xsl:if>
671    <xsl:apply-templates mode="titlepage.mode"/>
672  </fo:block>
673</xsl:template>
674
675<!-- book verso -->
676
677<xsl:template name="book.verso.title">
678  <fo:block>
679    <xsl:apply-templates mode="titlepage.mode"/>
680
681    <xsl:if test="following-sibling::subtitle
682                  |following-sibling::info/subtitle
683                  |following-sibling::bookinfo/subtitle">
684      <xsl:text>: </xsl:text>
685
686      <xsl:apply-templates select="(following-sibling::subtitle
687                                   |following-sibling::info/subtitle
688                                   |following-sibling::bookinfo/subtitle)[1]"
689                           mode="book.verso.subtitle.mode"/>
690    </xsl:if>
691  </fo:block>
692</xsl:template>
693
694<xsl:template match="subtitle" mode="book.verso.subtitle.mode">
695  <xsl:apply-templates mode="titlepage.mode"/>
696  <xsl:if test="following-sibling::subtitle">
697    <xsl:text>: </xsl:text>
698    <xsl:apply-templates select="following-sibling::subtitle[1]"
699                         mode="book.verso.subtitle.mode"/>
700  </xsl:if>
701</xsl:template>
702
703<xsl:template name="verso.authorgroup">
704  <fo:block>
705    <xsl:call-template name="gentext">
706      <xsl:with-param name="key" select="'by'"/>
707    </xsl:call-template>
708    <xsl:text> </xsl:text>
709    <xsl:call-template name="person.name.list">
710      <xsl:with-param name="person.list" select="author|corpauthor|editor"/>
711    </xsl:call-template>
712  </fo:block>
713  <xsl:apply-templates select="othercredit" mode="titlepage.mode"/>
714</xsl:template>
715
716<xsl:template match="bookinfo/author|info/author"
717              mode="titlepage.mode" priority="2">
718  <fo:block>
719    <xsl:call-template name="person.name"/>
720  </fo:block>
721</xsl:template>
722
723<xsl:template match="bookinfo/corpauthor|info/corpauthor"
724              mode="titlepage.mode" priority="2">
725  <fo:block>
726    <xsl:apply-templates/>
727  </fo:block>
728</xsl:template>
729
730<xsl:template match="bookinfo/pubdate|info/pubdate"
731              mode="titlepage.mode" priority="2">
732  <fo:block>
733    <xsl:call-template name="gentext">
734      <xsl:with-param name="key" select="'published'"/>
735    </xsl:call-template>
736    <xsl:text> </xsl:text>
737    <xsl:apply-templates mode="titlepage.mode"/>
738  </fo:block>
739</xsl:template>
740
741<!-- ==================================================================== -->
742
743</xsl:stylesheet>
744