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$
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.font.family"/>
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="glossary.titlepage.recto.style"/>
65<xsl:attribute-set name="glossary.titlepage.verso.style"/>
66
67<xsl:attribute-set name="index.titlepage.recto.style"/>
68<xsl:attribute-set name="index.titlepage.verso.style"/>
69
70<xsl:attribute-set name="section.titlepage.recto.style"/>
71<xsl:attribute-set name="section.titlepage.verso.style"/>
72
73<xsl:attribute-set name="sect1.titlepage.recto.style"
74                   use-attribute-sets="section.titlepage.recto.style"/>
75<xsl:attribute-set name="sect1.titlepage.verso.style"
76                   use-attribute-sets="section.titlepage.verso.style"/>
77
78<xsl:attribute-set name="sect2.titlepage.recto.style"
79                   use-attribute-sets="section.titlepage.recto.style"/>
80<xsl:attribute-set name="sect2.titlepage.verso.style"
81                   use-attribute-sets="section.titlepage.verso.style"/>
82
83<xsl:attribute-set name="sect3.titlepage.recto.style"
84                   use-attribute-sets="section.titlepage.recto.style"/>
85<xsl:attribute-set name="sect3.titlepage.verso.style"
86                   use-attribute-sets="section.titlepage.verso.style"/>
87
88<xsl:attribute-set name="sect4.titlepage.recto.style"
89                   use-attribute-sets="section.titlepage.recto.style"/>
90<xsl:attribute-set name="sect4.titlepage.verso.style"
91                   use-attribute-sets="section.titlepage.verso.style"/>
92
93<xsl:attribute-set name="sect5.titlepage.recto.style"
94                   use-attribute-sets="section.titlepage.recto.style"/>
95<xsl:attribute-set name="sect5.titlepage.verso.style"
96                   use-attribute-sets="section.titlepage.verso.style"/>
97
98<xsl:attribute-set name="simplesect.titlepage.recto.style"
99                   use-attribute-sets="section.titlepage.recto.style"/>
100<xsl:attribute-set name="simplesect.titlepage.verso.style"
101                   use-attribute-sets="section.titlepage.verso.style"/>
102
103<xsl:attribute-set name="table.of.contents.titlepage.recto.style"/>
104<xsl:attribute-set name="table.of.contents.titlepage.verso.style"/>
105
106<xsl:attribute-set name="list.of.tables.titlepage.recto.style"/>
107<xsl:attribute-set name="list.of.tables.contents.titlepage.verso.style"/>
108
109<xsl:attribute-set name="list.of.figures.titlepage.recto.style"/>
110<xsl:attribute-set name="list.of.figures.contents.titlepage.verso.style"/>
111
112<xsl:attribute-set name="list.of.equations.titlepage.recto.style"/>
113<xsl:attribute-set name="list.of.equations.contents.titlepage.verso.style"/>
114
115<xsl:attribute-set name="list.of.examples.titlepage.recto.style"/>
116<xsl:attribute-set name="list.of.examples.contents.titlepage.verso.style"/>
117
118<xsl:attribute-set name="list.of.unknowns.titlepage.recto.style"/>
119<xsl:attribute-set name="list.of.unknowns.contents.titlepage.verso.style"/>
120
121<!-- ==================================================================== -->
122
123<xsl:template match="*" mode="titlepage.mode">
124  <!-- if an element isn't found in this mode, try the default mode -->
125  <xsl:apply-templates select="."/>
126</xsl:template>
127
128<xsl:template match="abbrev" mode="titlepage.mode">
129  <xsl:apply-templates mode="titlepage.mode"/>
130</xsl:template>
131
132<xsl:template match="abstract" mode="titlepage.mode">
133  <fo:block>
134    <xsl:if test="title"> <!-- FIXME: add param for using default title? -->
135      <xsl:call-template name="formal.object.heading">
136        <xsl:with-param name="title">
137          <xsl:apply-templates select="." mode="title.markup"/>
138        </xsl:with-param>
139      </xsl:call-template>
140    </xsl:if>
141    <xsl:apply-templates mode="titlepage.mode"/>
142  </fo:block>
143</xsl:template>
144
145<xsl:template match="abstract/title" mode="titlepage.mode"/>
146
147<xsl:template match="abstract/title" mode="titlepage.abstract.title.mode">
148  <xsl:apply-templates mode="titlepage.mode"/>
149</xsl:template>
150
151<xsl:template match="address" mode="titlepage.mode">
152  <!-- use the normal address handling code -->
153  <xsl:apply-templates select="."/>
154</xsl:template>
155
156<xsl:template match="affiliation" mode="titlepage.mode">
157  <fo:block>
158    <xsl:apply-templates mode="titlepage.mode"/>
159  </fo:block>
160</xsl:template>
161
162<xsl:template match="artpagenums" mode="titlepage.mode">
163  <xsl:apply-templates mode="titlepage.mode"/>
164</xsl:template>
165
166<xsl:template match="author" mode="titlepage.mode">
167  <xsl:call-template name="person.name"/>
168  <xsl:apply-templates select="affiliation" mode="titlepage.mode"/>
169</xsl:template>
170
171<xsl:template match="authorblurb" mode="titlepage.mode">
172  <xsl:apply-templates mode="titlepage.mode"/>
173</xsl:template>
174
175<xsl:template match="authorgroup" mode="titlepage.mode">
176  <xsl:apply-templates mode="titlepage.mode"/>
177</xsl:template>
178
179<xsl:template match="authorinitials" mode="titlepage.mode">
180  <xsl:apply-templates mode="titlepage.mode"/>
181</xsl:template>
182
183<xsl:template match="bibliomisc" mode="titlepage.mode">
184  <xsl:apply-templates mode="titlepage.mode"/>
185</xsl:template>
186
187<xsl:template match="bibliomset" mode="titlepage.mode">
188  <xsl:apply-templates mode="titlepage.mode"/>
189</xsl:template>
190
191<xsl:template match="collab" mode="titlepage.mode">
192  <xsl:apply-templates mode="titlepage.mode"/>
193</xsl:template>
194
195<xsl:template match="confgroup" mode="titlepage.mode">
196  <fo:block>
197    <xsl:apply-templates mode="titlepage.mode"/>
198  </fo:block>
199</xsl:template>
200
201<xsl:template match="confdates" mode="titlepage.mode">
202  <fo:block>
203    <xsl:apply-templates mode="titlepage.mode"/>
204  </fo:block>
205</xsl:template>
206
207<xsl:template match="conftitle" mode="titlepage.mode">
208  <fo:block>
209    <xsl:apply-templates mode="titlepage.mode"/>
210  </fo:block>
211</xsl:template>
212
213<xsl:template match="confnum" mode="titlepage.mode">
214  <!-- suppress -->
215</xsl:template>
216
217<xsl:template match="contractnum" mode="titlepage.mode">
218  <xsl:apply-templates mode="titlepage.mode"/>
219</xsl:template>
220
221<xsl:template match="contractsponsor" mode="titlepage.mode">
222  <xsl:apply-templates mode="titlepage.mode"/>
223</xsl:template>
224
225<xsl:template match="contrib" mode="titlepage.mode">
226  <xsl:apply-templates mode="titlepage.mode"/>
227</xsl:template>
228
229<xsl:template match="copyright" mode="titlepage.mode">
230  <xsl:variable name="years" select="year"/>
231  <xsl:variable name="holders" select="holder"/>
232
233  <xsl:call-template name="gentext">
234    <xsl:with-param name="key" select="'Copyright'"/>
235  </xsl:call-template>
236  <xsl:call-template name="gentext.space"/>
237  <xsl:call-template name="dingbat">
238    <xsl:with-param name="dingbat">copyright</xsl:with-param>
239  </xsl:call-template>
240  <xsl:call-template name="gentext.space"/>
241  <xsl:apply-templates select="$years" mode="titlepage.mode"/>
242  <xsl:if test="holder">
243    <xsl:call-template name="gentext.space"/>
244    <xsl:apply-templates select="$holders" mode="titlepage.mode"/>
245  </xsl:if>
246</xsl:template>
247
248<xsl:template match="year" mode="titlepage.mode">
249  <xsl:apply-templates/><xsl:text>, </xsl:text>
250</xsl:template>
251
252<xsl:template match="year[position()=last()]" mode="titlepage.mode">
253  <xsl:apply-templates/>
254</xsl:template>
255
256<xsl:template match="holder" mode="titlepage.mode">
257  <xsl:apply-templates/>
258</xsl:template>
259
260<xsl:template match="corpauthor" mode="titlepage.mode">
261  <xsl:apply-templates mode="titlepage.mode"/>
262</xsl:template>
263
264<xsl:template match="corpname" mode="titlepage.mode">
265  <xsl:apply-templates mode="titlepage.mode"/>
266</xsl:template>
267
268<xsl:template match="date" mode="titlepage.mode">
269  <xsl:apply-templates mode="titlepage.mode"/>
270</xsl:template>
271
272<xsl:template match="edition" mode="titlepage.mode">
273  <xsl:apply-templates mode="titlepage.mode"/>
274  <xsl:call-template name="gentext.space"/>
275  <xsl:call-template name="gentext">
276    <xsl:with-param name="key" select="'Edition'"/>
277  </xsl:call-template>
278</xsl:template>
279
280<xsl:template match="editor" mode="titlepage.mode">
281  <xsl:call-template name="person.name"/>
282</xsl:template>
283
284<xsl:template match="editor[position()=1]" priority="2" mode="titlepage.mode">
285  <xsl:call-template name="gentext.edited.by"/>
286  <xsl:call-template name="person.name"/>
287</xsl:template>
288
289<xsl:template match="firstname" mode="titlepage.mode">
290  <xsl:apply-templates mode="titlepage.mode"/>
291</xsl:template>
292
293<xsl:template match="graphic" mode="titlepage.mode">
294  <!-- use the normal graphic handling code -->
295  <xsl:apply-templates select="."/>
296</xsl:template>
297
298<xsl:template match="honorific" mode="titlepage.mode">
299  <xsl:apply-templates mode="titlepage.mode"/>
300</xsl:template>
301
302<xsl:template match="isbn" mode="titlepage.mode">
303  <xsl:apply-templates mode="titlepage.mode"/>
304</xsl:template>
305
306<xsl:template match="issn" mode="titlepage.mode">
307  <xsl:apply-templates mode="titlepage.mode"/>
308</xsl:template>
309
310<xsl:template match="itermset" mode="titlepage.mode">
311  <!-- discard -->
312</xsl:template>
313
314<xsl:template match="invpartnumber" mode="titlepage.mode">
315  <xsl:apply-templates mode="titlepage.mode"/>
316</xsl:template>
317
318<xsl:template match="issuenum" mode="titlepage.mode">
319  <xsl:apply-templates mode="titlepage.mode"/>
320</xsl:template>
321
322<xsl:template match="jobtitle" mode="titlepage.mode">
323  <fo:block>
324    <xsl:apply-templates mode="titlepage.mode"/>
325  </fo:block>
326</xsl:template>
327
328<xsl:template match="keywordset" mode="titlepage.mode">
329</xsl:template>
330
331<xsl:template match="legalnotice" mode="titlepage.mode">
332  <fo:block>
333    <xsl:if test="title"> <!-- FIXME: add param for using default title? -->
334    <xsl:call-template name="formal.object.heading">
335        <xsl:with-param name="title">
336          <xsl:apply-templates select="." mode="title.markup"/>
337        </xsl:with-param>
338      </xsl:call-template>
339    </xsl:if>
340    <xsl:apply-templates mode="titlepage.mode"/>
341  </fo:block>
342</xsl:template>
343
344<xsl:template match="legalnotice/title" mode="titlepage.mode">
345</xsl:template>
346
347<xsl:template match="legalnotice/title" mode="titlepage.legalnotice.title.mode">
348  <xsl:apply-templates mode="titlepage.mode"/>
349</xsl:template>
350
351<xsl:template match="lineage" mode="titlepage.mode">
352  <xsl:apply-templates mode="titlepage.mode"/>
353</xsl:template>
354
355<xsl:template match="modespec" mode="titlepage.mode">
356  <!-- discard -->
357</xsl:template>
358
359<xsl:template match="orgdiv" mode="titlepage.mode">
360  <xsl:apply-templates mode="titlepage.mode"/>
361</xsl:template>
362
363<xsl:template match="orgname" mode="titlepage.mode">
364  <fo:block>
365    <xsl:apply-templates mode="titlepage.mode"/>
366  </fo:block>
367</xsl:template>
368
369<xsl:template match="othercredit" mode="titlepage.mode">
370  <xsl:call-template name="person.name"/>
371  <xsl:apply-templates mode="titlepage.mode" select="affiliation"/>
372</xsl:template>
373
374<xsl:template match="othername" mode="titlepage.mode">
375  <xsl:apply-templates mode="titlepage.mode"/>
376</xsl:template>
377
378<xsl:template match="pagenums" mode="titlepage.mode">
379  <xsl:apply-templates mode="titlepage.mode"/>
380</xsl:template>
381
382<xsl:template match="printhistory" mode="titlepage.mode">
383  <xsl:apply-templates mode="titlepage.mode"/>
384</xsl:template>
385
386<xsl:template match="productname" mode="titlepage.mode">
387  <xsl:apply-templates mode="titlepage.mode"/>
388</xsl:template>
389
390<xsl:template match="productnumber" mode="titlepage.mode">
391  <xsl:apply-templates mode="titlepage.mode"/>
392</xsl:template>
393
394<xsl:template match="pubdate" mode="titlepage.mode">
395  <xsl:apply-templates mode="titlepage.mode"/>
396</xsl:template>
397
398<xsl:template match="publisher" mode="titlepage.mode">
399  <fo:block>
400    <xsl:apply-templates mode="titlepage.mode"/>
401  </fo:block>
402</xsl:template>
403
404<xsl:template match="publishername" mode="titlepage.mode">
405  <xsl:apply-templates mode="titlepage.mode"/>
406</xsl:template>
407
408<xsl:template match="pubsnumber" mode="titlepage.mode">
409  <xsl:apply-templates mode="titlepage.mode"/>
410</xsl:template>
411
412<xsl:template match="releaseinfo" mode="titlepage.mode">
413  <xsl:apply-templates mode="titlepage.mode"/>
414</xsl:template>
415
416<xsl:template match="revhistory" mode="titlepage.mode">
417  <fo:table table-layout="fixed">
418    <fo:table-column column-number="1" column-width="33%"/>
419    <fo:table-column column-number="2" column-width="33%"/>
420    <fo:table-column column-number="3" column-width="33%"/>
421    <fo:table-body>
422      <fo:table-row>
423        <fo:table-cell number-columns-spanned="3">
424          <fo:block>
425            <xsl:call-template name="gentext">
426              <xsl:with-param name="key" select="'RevHistory'"/>
427            </xsl:call-template>
428          </fo:block>
429        </fo:table-cell>
430      </fo:table-row>
431      <xsl:apply-templates mode="titlepage.mode"/>
432    </fo:table-body>
433  </fo:table>
434</xsl:template>
435
436<xsl:template match="revhistory/revision" mode="titlepage.mode">
437  <xsl:variable name="revnumber" select=".//revnumber"/>
438  <xsl:variable name="revdate"   select=".//date"/>
439  <xsl:variable name="revauthor" select=".//authorinitials"/>
440  <xsl:variable name="revremark" select=".//revremark"/>
441  <fo:table-row>
442    <fo:table-cell>
443      <fo:block>
444        <xsl:if test="$revnumber">
445          <xsl:call-template name="gentext">
446            <xsl:with-param name="key" select="'Revision'"/>
447          </xsl:call-template>
448          <xsl:call-template name="gentext.space"/>
449          <xsl:apply-templates select="$revnumber[1]" mode="titlepage.mode"/>
450        </xsl:if>
451      </fo:block>
452    </fo:table-cell>
453    <fo:table-cell>
454      <fo:block>
455        <xsl:apply-templates select="$revdate[1]" mode="titlepage.mode"/>
456      </fo:block>
457    </fo:table-cell>
458    <fo:table-cell>
459      <fo:block>
460        <xsl:apply-templates select="$revauthor[1]" mode="titlepage.mode"/>
461      </fo:block>
462    </fo:table-cell>
463  </fo:table-row>
464  <xsl:if test="$revremark">
465    <fo:table-row>
466      <fo:table-cell number-columns-spanned="3">
467        <fo:block>
468          <xsl:apply-templates select="$revremark[1]" mode="titlepage.mode"/>
469        </fo:block>
470      </fo:table-cell>
471    </fo:table-row>
472  </xsl:if>
473</xsl:template>
474
475<xsl:template match="revision/revnumber" mode="titlepage.mode">
476  <xsl:apply-templates mode="titlepage.mode"/>
477</xsl:template>
478
479<xsl:template match="revision/date" mode="titlepage.mode">
480  <xsl:apply-templates mode="titlepage.mode"/>
481</xsl:template>
482
483<xsl:template match="revision/authorinitials" mode="titlepage.mode">
484  <xsl:apply-templates mode="titlepage.mode"/>
485</xsl:template>
486
487<xsl:template match="revision/revremark" mode="titlepage.mode">
488  <xsl:apply-templates mode="titlepage.mode"/>
489</xsl:template>
490
491<xsl:template match="seriesvolnums" mode="titlepage.mode">
492  <xsl:apply-templates mode="titlepage.mode"/>
493</xsl:template>
494
495<xsl:template match="shortaffil" mode="titlepage.mode">
496  <xsl:apply-templates mode="titlepage.mode"/>
497</xsl:template>
498
499<xsl:template match="subjectset" mode="titlepage.mode">
500  <!-- discard -->
501</xsl:template>
502
503<xsl:template match="subtitle" mode="titlepage.mode">
504  <xsl:apply-templates mode="titlepage.mode"/>
505</xsl:template>
506
507<xsl:template match="surname" mode="titlepage.mode">
508  <xsl:apply-templates mode="titlepage.mode"/>
509</xsl:template>
510
511<xsl:template match="title" mode="titlepage.mode">
512  <xsl:apply-templates mode="titlepage.mode"/>
513</xsl:template>
514
515<xsl:template match="titleabbrev" mode="titlepage.mode">
516  <xsl:apply-templates mode="titlepage.mode"/>
517</xsl:template>
518
519<xsl:template match="volumenum" mode="titlepage.mode">
520  <xsl:apply-templates mode="titlepage.mode"/>
521</xsl:template>
522
523<!-- ==================================================================== -->
524<!-- Book templates -->
525
526<!-- book recto -->
527
528<xsl:template match="authorgroup" mode="book.titlepage.recto.mode">
529  <xsl:apply-templates mode="book.titlepage.recto.auto.mode"/>
530</xsl:template>
531
532<!-- book verso -->
533
534<xsl:template match="title" mode="book.titlepage.verso.mode">
535  <fo:block>
536    <xsl:apply-templates mode="book.titlepage.verso.mode"/>
537
538    <xsl:if test="following-sibling::subtitle
539                  |following-sibling::bookinfo/subtitle">
540      <xsl:text>: </xsl:text>
541
542      <xsl:apply-templates select="(following-sibling::subtitle
543                                   |following-sibling::bookinfo/subtitle)[1]"
544                           mode="book.titlepage.verso.mode"/>
545    </xsl:if>
546  </fo:block>
547</xsl:template>
548
549<xsl:template match="subtitle" mode="book.titlepage.verso.mode">
550  <xsl:apply-templates mode="book.titlepage.verso.mode"/>
551  <xsl:if test="following-sibling::subtitle">
552    <xsl:text>: </xsl:text>
553    <xsl:apply-templates select="following-sibling::subtitle[1]"/>
554  </xsl:if>
555</xsl:template>
556
557<xsl:template match="bookinfo/author" mode="book.titlepage.verso.mode">
558  <fo:block>
559    <xsl:call-template name="gentext">
560      <xsl:with-param name="key" select="'by'"/>
561    </xsl:call-template>
562    <xsl:text> </xsl:text>
563    <xsl:call-template name="person.name"/>
564  </fo:block>
565</xsl:template>
566
567<xsl:template match="bookinfo/corpauthor" mode="book.titlepage.verso.mode">
568  <fo:block>
569    <xsl:call-template name="gentext">
570      <xsl:with-param name="key" select="'by'"/>
571    </xsl:call-template>
572    <xsl:text> </xsl:text>
573    <xsl:apply-templates/>
574  </fo:block>
575</xsl:template>
576
577<xsl:template match="authorgroup" mode="book.titlepage.verso.mode">
578  <fo:block>
579    <xsl:call-template name="gentext">
580      <xsl:with-param name="key" select="'by'"/>
581    </xsl:call-template>
582    <xsl:text> </xsl:text>
583    <xsl:apply-templates mode="book.titlepage.verso.mode"/>
584  </fo:block>
585</xsl:template>
586
587<xsl:template match="authorgroup/author" mode="book.titlepage.verso.mode">
588  <xsl:variable name="before" select="count(preceding-sibling::*)"/>
589  <xsl:variable name="after" select="count(following-sibling::*)"/>
590
591  <xsl:choose>
592    <xsl:when test="$before &gt; 1">
593      <xsl:text>, </xsl:text>
594    </xsl:when>
595    <xsl:when test="$before = 1 and $after &gt; 0">
596      <xsl:text>, </xsl:text>
597    </xsl:when>
598  </xsl:choose>
599
600  <xsl:if test="$before &gt; 0 and $after = 0">
601    <xsl:text> </xsl:text>
602    <xsl:call-template name="gentext">
603      <xsl:with-param name="key" select="'and'"/>
604    </xsl:call-template>
605    <xsl:text> </xsl:text>
606  </xsl:if>
607
608  <xsl:call-template name="person.name"/>
609</xsl:template>
610
611<xsl:template match="authorgroup/corpauthor" mode="book.titlepage.verso.mode">
612  <xsl:variable name="before" select="count(preceding-sibling::*)"/>
613  <xsl:variable name="after" select="count(following-sibling::*)"/>
614
615  <xsl:choose>
616    <xsl:when test="$before &gt; 1">
617      <xsl:text>, </xsl:text>
618    </xsl:when>
619    <xsl:when test="$before = 1 and $after &gt; 0">
620      <xsl:text>, </xsl:text>
621    </xsl:when>
622  </xsl:choose>
623
624  <xsl:if test="$after = 0 and $before &gt; 0">
625    <xsl:text> </xsl:text>
626    <xsl:call-template name="gentext">
627      <xsl:with-param name="key" select="'and'"/>
628    </xsl:call-template>
629    <xsl:text> </xsl:text>
630  </xsl:if>
631
632  <xsl:apply-templates/>
633</xsl:template>
634
635<xsl:template match="pubdate" mode="book.titlepage.verso.mode">
636  <fo:block>
637    <xsl:call-template name="gentext">
638      <xsl:with-param name="key" select="'published'"/>
639    </xsl:call-template>
640    <xsl:text> </xsl:text>
641    <xsl:apply-templates mode="book.titlepage.verso.mode"/>
642  </fo:block>
643</xsl:template>
644
645<!-- ==================================================================== -->
646<!-- Part templates -->
647
648<!-- part recto -->
649
650<xsl:template match="title" mode="part.titlepage.recto.mode">
651  <xsl:apply-templates select="ancestor::part" mode="title.markup"/>
652</xsl:template>
653
654<!-- ==================================================================== -->
655
656</xsl:stylesheet>
657