1<?xml version='1.0'?>
2<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3                version='1.0'>
4
5<!-- ********************************************************************
6     $Id$
7     ********************************************************************
8
9     This file is part of the XSL DocBook Stylesheet distribution.
10     See /README or http://nwalsh.com/docbook/xsl/ for copyright
11     and other information.
12
13     ******************************************************************** -->
14
15<!-- ==================================================================== -->
16
17<xsl:attribute-set name="book.titlepage.recto.style"/>
18<xsl:attribute-set name="book.titlepage.verso.style"/>
19
20<xsl:attribute-set name="article.titlepage.recto.style"/>
21<xsl:attribute-set name="article.titlepage.verso.style"/>
22
23<xsl:attribute-set name="set.titlepage.recto.style"/>
24<xsl:attribute-set name="set.titlepage.verso.style"/>
25
26<xsl:attribute-set name="part.titlepage.recto.style"/>
27<xsl:attribute-set name="part.titlepage.verso.style"/>
28
29<xsl:attribute-set name="partintro.titlepage.recto.style"/>
30<xsl:attribute-set name="partintro.titlepage.verso.style"/>
31
32<xsl:attribute-set name="reference.titlepage.recto.style"/>
33<xsl:attribute-set name="reference.titlepage.verso.style"/>
34
35<xsl:attribute-set name="dedication.titlepage.recto.style"/>
36<xsl:attribute-set name="dedication.titlepage.verso.style"/>
37
38<xsl:attribute-set name="preface.titlepage.recto.style"/>
39<xsl:attribute-set name="preface.titlepage.verso.style"/>
40
41<xsl:attribute-set name="chapter.titlepage.recto.style"/>
42<xsl:attribute-set name="chapter.titlepage.verso.style"/>
43
44<xsl:attribute-set name="appendix.titlepage.recto.style"/>
45<xsl:attribute-set name="appendix.titlepage.verso.style"/>
46
47<xsl:attribute-set name="bibliography.titlepage.recto.style"/>
48<xsl:attribute-set name="bibliography.titlepage.verso.style"/>
49
50<xsl:attribute-set name="glossary.titlepage.recto.style"/>
51<xsl:attribute-set name="glossary.titlepage.verso.style"/>
52
53<xsl:attribute-set name="index.titlepage.recto.style"/>
54<xsl:attribute-set name="index.titlepage.verso.style"/>
55
56<xsl:attribute-set name="section.titlepage.recto.style"/>
57<xsl:attribute-set name="section.titlepage.verso.style"/>
58
59<xsl:attribute-set name="sect1.titlepage.recto.style"
60                   use-attribute-sets="section.titlepage.recto.style"/>
61<xsl:attribute-set name="sect1.titlepage.verso.style"
62                   use-attribute-sets="section.titlepage.verso.style"/>
63
64<xsl:attribute-set name="sect2.titlepage.recto.style"
65                   use-attribute-sets="section.titlepage.recto.style"/>
66<xsl:attribute-set name="sect2.titlepage.verso.style"
67                   use-attribute-sets="section.titlepage.verso.style"/>
68
69<xsl:attribute-set name="sect3.titlepage.recto.style"
70                   use-attribute-sets="section.titlepage.recto.style"/>
71<xsl:attribute-set name="sect3.titlepage.verso.style"
72                   use-attribute-sets="section.titlepage.verso.style"/>
73
74<xsl:attribute-set name="sect4.titlepage.recto.style"
75                   use-attribute-sets="section.titlepage.recto.style"/>
76<xsl:attribute-set name="sect4.titlepage.verso.style"
77                   use-attribute-sets="section.titlepage.verso.style"/>
78
79<xsl:attribute-set name="sect5.titlepage.recto.style"
80                   use-attribute-sets="section.titlepage.recto.style"/>
81<xsl:attribute-set name="sect5.titlepage.verso.style"
82                   use-attribute-sets="section.titlepage.verso.style"/>
83
84<xsl:attribute-set name="simplesect.titlepage.recto.style"
85                   use-attribute-sets="section.titlepage.recto.style"/>
86<xsl:attribute-set name="simplesect.titlepage.verso.style"
87                   use-attribute-sets="section.titlepage.verso.style"/>
88
89<xsl:attribute-set name="table.of.contents.titlepage.recto.style"/>
90<xsl:attribute-set name="table.of.contents.titlepage.verso.style"/>
91
92<xsl:attribute-set name="list.of.tables.titlepage.recto.style"/>
93<xsl:attribute-set name="list.of.tables.contents.titlepage.verso.style"/>
94
95<xsl:attribute-set name="list.of.figures.titlepage.recto.style"/>
96<xsl:attribute-set name="list.of.figures.contents.titlepage.verso.style"/>
97
98<xsl:attribute-set name="list.of.equations.titlepage.recto.style"/>
99<xsl:attribute-set name="list.of.equations.contents.titlepage.verso.style"/>
100
101<xsl:attribute-set name="list.of.examples.titlepage.recto.style"/>
102<xsl:attribute-set name="list.of.examples.contents.titlepage.verso.style"/>
103
104<xsl:attribute-set name="list.of.unknowns.titlepage.recto.style"/>
105<xsl:attribute-set name="list.of.unknowns.contents.titlepage.verso.style"/>
106
107<!-- ==================================================================== -->
108
109<xsl:template match="*" mode="titlepage.mode">
110  <!-- if an element isn't found in this mode, try the default mode -->
111  <xsl:apply-templates select="."/>
112</xsl:template>
113
114<xsl:template match="abbrev" mode="titlepage.mode">
115  <span class="{name(.)}">
116    <xsl:apply-templates mode="titlepage.mode"/>
117    <br/>
118  </span>
119</xsl:template>
120
121<xsl:template match="abstract" mode="titlepage.mode">
122  <div class="{name(.)}">
123    <xsl:call-template name="formal.object.heading">
124      <xsl:with-param name="title">
125        <xsl:apply-templates select="." mode="title.markup"/>
126      </xsl:with-param>
127    </xsl:call-template>
128    <xsl:apply-templates mode="titlepage.mode"/>
129  </div>
130</xsl:template>
131
132<xsl:template match="abstract/title" mode="titlepage.mode">
133</xsl:template>
134
135<xsl:template match="address" mode="titlepage.mode">
136  <xsl:apply-templates select="."/>
137</xsl:template>
138
139<xsl:template match="affiliation" mode="titlepage.mode">
140  <div class="{name(.)}">
141    <xsl:apply-templates mode="titlepage.mode"/>
142  </div>
143</xsl:template>
144
145<xsl:template match="artpagenums" mode="titlepage.mode">
146  <span class="{name(.)}">
147    <xsl:apply-templates mode="titlepage.mode"/>
148    <br/>
149  </span>
150</xsl:template>
151
152<xsl:template match="author" mode="titlepage.mode">
153  <h3 class="{name(.)}"><xsl:call-template name="person.name"/></h3>
154  <xsl:apply-templates mode="titlepage.mode" select="/affiliation"/>
155</xsl:template>
156
157<xsl:template match="authorblurb" mode="titlepage.mode">
158  <div class="{name(.)}">
159    <xsl:apply-templates mode="titlepage.mode"/>
160  </div>
161</xsl:template>
162
163<xsl:template match="authorgroup" mode="titlepage.mode">
164  <xsl:apply-templates mode="titlepage.mode"/>
165</xsl:template>
166
167<xsl:template match="authorinitials" mode="titlepage.mode">
168  <span class="{name(.)}">
169    <xsl:apply-templates mode="titlepage.mode"/>
170    <br/>
171  </span>
172</xsl:template>
173
174<xsl:template match="bibliomisc" mode="titlepage.mode">
175  <xsl:apply-templates mode="titlepage.mode"/>
176</xsl:template>
177
178<xsl:template match="bibliomset" mode="titlepage.mode">
179  <xsl:apply-templates mode="titlepage.mode"/>
180</xsl:template>
181
182<xsl:template match="collab" mode="titlepage.mode">
183  <span class="{name(.)}">
184    <xsl:apply-templates mode="titlepage.mode"/>
185    <br/>
186  </span>
187</xsl:template>
188
189<xsl:template match="confgroup" mode="titlepage.mode">
190  <div class="{name(.)}">
191    <xsl:apply-templates mode="titlepage.mode"/>
192  </div>
193</xsl:template>
194
195<xsl:template match="confdates" mode="titlepage.mode">
196  <span class="{name(.)}">
197    <xsl:apply-templates mode="titlepage.mode"/>
198    <br/>
199  </span>
200</xsl:template>
201
202<xsl:template match="conftitle" mode="titlepage.mode">
203  <span class="{name(.)}">
204    <xsl:apply-templates mode="titlepage.mode"/>
205    <br/>
206  </span>
207</xsl:template>
208
209<xsl:template match="confnum" mode="titlepage.mode">
210  <!-- suppress -->
211</xsl:template>
212
213<xsl:template match="contractnum" mode="titlepage.mode">
214  <span class="{name(.)}">
215    <xsl:apply-templates mode="titlepage.mode"/>
216    <br/>
217  </span>
218</xsl:template>
219
220<xsl:template match="contractsponsor" mode="titlepage.mode">
221  <span class="{name(.)}">
222    <xsl:apply-templates mode="titlepage.mode"/>
223    <br/>
224  </span>
225</xsl:template>
226
227<xsl:template match="contrib" mode="titlepage.mode">
228  <span class="{name(.)}">
229    <xsl:apply-templates mode="titlepage.mode"/>
230    <br/>
231  </span>
232</xsl:template>
233
234<xsl:template match="copyright" mode="titlepage.mode">
235  <xsl:variable name="years" select="year"/>
236  <xsl:variable name="holders" select="holder"/>
237
238  <p class="{name(.)}">
239    <xsl:call-template name="gentext">
240      <xsl:with-param name="key" select="'Copyright'"/>
241    </xsl:call-template>
242    <xsl:call-template name="gentext.space"/>
243    <xsl:call-template name="dingbat">
244      <xsl:with-param name="dingbat">copyright</xsl:with-param>
245    </xsl:call-template>
246    <xsl:call-template name="gentext.space"/>
247    <xsl:apply-templates select="$years" mode="titlepage.mode"/>
248    <xsl:call-template name="gentext.space"/>
249<!--
250    <xsl:call-template name="gentext.by"/>
251    <xsl:call-template name="gentext.space"/>
252-->
253    <xsl:apply-templates select="$holders" mode="titlepage.mode"/>
254  </p>
255</xsl:template>
256
257<xsl:template match="year" mode="titlepage.mode">
258  <xsl:apply-templates/><xsl:text>, </xsl:text>
259</xsl:template>
260
261<xsl:template match="year[position()=last()]" mode="titlepage.mode">
262  <xsl:apply-templates/>
263</xsl:template>
264
265<xsl:template match="holder" mode="titlepage.mode">
266  <xsl:apply-templates/>
267</xsl:template>
268
269<xsl:template match="corpauthor" mode="titlepage.mode">
270  <h3 class="{name(.)}">
271    <xsl:apply-templates mode="titlepage.mode"/>
272  </h3>
273</xsl:template>
274
275<xsl:template match="corpname" mode="titlepage.mode">
276  <span class="{name(.)}">
277    <xsl:apply-templates mode="titlepage.mode"/>
278    <br/>
279  </span>
280</xsl:template>
281
282<xsl:template match="date" mode="titlepage.mode">
283  <span class="{name(.)}">
284    <xsl:apply-templates mode="titlepage.mode"/>
285    <br/>
286  </span>
287</xsl:template>
288
289<xsl:template match="edition" mode="titlepage.mode">
290  <p class="{name(.)}">
291    <xsl:apply-templates mode="titlepage.mode"/>
292    <xsl:call-template name="gentext.space"/>
293    <xsl:call-template name="gentext">
294      <xsl:with-param name="key" select="'Edition'"/>
295    </xsl:call-template>
296  </p>
297</xsl:template>
298
299<xsl:template match="editor" mode="titlepage.mode">
300  <h3 class="{name(.)}"><xsl:call-template name="person.name"/></h3>
301</xsl:template>
302
303<xsl:template match="editor[position()=1]" mode="titlepage.mode">
304  <h4 class="editedby"><xsl:call-template name="gentext.edited.by"/></h4>
305  <h3 class="{name(.)}"><xsl:call-template name="person.name"/></h3>
306</xsl:template>
307
308<xsl:template match="firstname" mode="titlepage.mode">
309  <span class="{name(.)}">
310    <xsl:apply-templates mode="titlepage.mode"/>
311    <br/>
312  </span>
313</xsl:template>
314
315<xsl:template match="graphic" mode="titlepage.mode">
316  <!-- use the normal graphic handling code -->
317  <xsl:apply-templates select="."/>
318</xsl:template>
319
320<xsl:template match="honorific" mode="titlepage.mode">
321  <span class="{name(.)}">
322    <xsl:apply-templates mode="titlepage.mode"/>
323    <br/>
324  </span>
325</xsl:template>
326
327<xsl:template match="isbn" mode="titlepage.mode">
328  <span class="{name(.)}">
329    <xsl:apply-templates mode="titlepage.mode"/>
330    <br/>
331  </span>
332</xsl:template>
333
334<xsl:template match="issn" mode="titlepage.mode">
335  <span class="{name(.)}">
336    <xsl:apply-templates mode="titlepage.mode"/>
337    <br/>
338  </span>
339</xsl:template>
340
341<xsl:template match="itermset" mode="titlepage.mode">
342</xsl:template>
343
344<xsl:template match="invpartnumber" mode="titlepage.mode">
345  <span class="{name(.)}">
346    <xsl:apply-templates mode="titlepage.mode"/>
347    <br/>
348  </span>
349</xsl:template>
350
351<xsl:template match="issuenum" mode="titlepage.mode">
352  <span class="{name(.)}">
353    <xsl:apply-templates mode="titlepage.mode"/>
354    <br/>
355  </span>
356</xsl:template>
357
358<xsl:template match="jobtitle" mode="titlepage.mode">
359  <span class="{name(.)}">
360    <xsl:apply-templates mode="titlepage.mode"/>
361    <br/>
362  </span>
363</xsl:template>
364
365<xsl:template match="keywordset" mode="titlepage.mode">
366</xsl:template>
367
368<xsl:template match="legalnotice " mode="titlepage.mode">
369  <div class="{local-name(.)}">
370    <xsl:apply-templates mode="titlepage.mode"/>
371  </div>
372</xsl:template>
373
374<xsl:template match="legalnotice/title" mode="titlepage.mode">
375  <p class="legalnotice-title"><b><xsl:apply-templates/></b></p>
376</xsl:template>
377
378<xsl:template match="lineage" mode="titlepage.mode">
379  <span class="{name(.)}">
380    <xsl:apply-templates mode="titlepage.mode"/>
381    <br/>
382  </span>
383</xsl:template>
384
385<xsl:template match="modespec" mode="titlepage.mode">
386</xsl:template>
387
388<xsl:template match="orgdiv" mode="titlepage.mode">
389  <span class="{name(.)}">
390    <xsl:apply-templates mode="titlepage.mode"/>
391    <br/>
392  </span>
393</xsl:template>
394
395<xsl:template match="orgname" mode="titlepage.mode">
396  <span class="{name(.)}">
397    <xsl:apply-templates mode="titlepage.mode"/>
398    <br/>
399  </span>
400</xsl:template>
401
402<xsl:template match="othercredit" mode="titlepage.mode">
403  <h3 class="{name(.)}"><xsl:call-template name="person.name"/></h3>
404  <xsl:apply-templates mode="titlepage.mode"
405   select="/affiliation"/>
406</xsl:template>
407
408<xsl:template match="othername" mode="titlepage.mode">
409  <span class="{name(.)}">
410    <xsl:apply-templates mode="titlepage.mode"/>
411    <br/>
412  </span>
413</xsl:template>
414
415<xsl:template match="pagenums" mode="titlepage.mode">
416  <span class="{name(.)}">
417    <xsl:apply-templates mode="titlepage.mode"/>
418    <br/>
419  </span>
420</xsl:template>
421
422<xsl:template match="printhistory" mode="titlepage.mode">
423  <div class="{name(.)}">
424    <xsl:apply-templates mode="titlepage.mode"/>
425  </div>
426</xsl:template>
427
428<xsl:template match="productname" mode="titlepage.mode">
429  <span class="{name(.)}">
430    <xsl:apply-templates mode="titlepage.mode"/>
431    <br/>
432  </span>
433</xsl:template>
434
435<xsl:template match="productnumber" mode="titlepage.mode">
436  <span class="{name(.)}">
437    <xsl:apply-templates mode="titlepage.mode"/>
438    <br/>
439  </span>
440</xsl:template>
441
442<xsl:template match="pubdate" mode="titlepage.mode">
443  <p class="{name(.)}">
444    <xsl:apply-templates mode="titlepage.mode"/>
445  </p>
446</xsl:template>
447
448<xsl:template match="publisher" mode="titlepage.mode">
449  <p class="{name(.)}">
450    <xsl:apply-templates mode="titlepage.mode"/>
451  </p>
452</xsl:template>
453
454<xsl:template match="publishername" mode="titlepage.mode">
455  <span class="{name(.)}">
456    <xsl:apply-templates mode="titlepage.mode"/>
457    <br/>
458  </span>
459</xsl:template>
460
461<xsl:template match="pubsnumber" mode="titlepage.mode">
462  <span class="{name(.)}">
463    <xsl:apply-templates mode="titlepage.mode"/>
464    <br/>
465  </span>
466</xsl:template>
467
468<xsl:template match="releaseinfo" mode="titlepage.mode">
469  <p class="{name(.)}">
470    <xsl:apply-templates mode="titlepage.mode"/>
471  </p>
472</xsl:template>
473
474<xsl:template match="revhistory" mode="titlepage.mode">
475  <xsl:variable name="numcols">
476    <xsl:choose>
477      <xsl:when test="//authorinitials">3</xsl:when>
478      <xsl:otherwise>2</xsl:otherwise>
479    </xsl:choose>
480  </xsl:variable>
481
482  <div class="{name(.)}">
483    <table border="1" width="100%" summary="Revision history">
484      <tr>
485        <th align="left" valign="top" colspan="{$numcols}">
486          <b>
487            <xsl:call-template name="gentext">
488              <xsl:with-param name="key" select="'RevHistory'"/>
489            </xsl:call-template>
490          </b>
491        </th>
492      </tr>
493      <xsl:apply-templates mode="titlepage.mode">
494        <xsl:with-param name="numcols" select="$numcols"/>
495      </xsl:apply-templates>
496    </table>
497  </div>
498</xsl:template>
499
500<xsl:template match="revhistory/revision" mode="titlepage.mode">
501  <xsl:param name="numcols" select="'3'"/>
502  <xsl:variable name="revnumber" select=".//revnumber"/>
503  <xsl:variable name="revdate"   select=".//date"/>
504  <xsl:variable name="revauthor" select=".//authorinitials"/>
505  <xsl:variable name="revremark" select=".//revremark|.//revdescription"/>
506  <tr>
507    <td align="left">
508      <xsl:if test="$revnumber">
509        <xsl:call-template name="gentext">
510          <xsl:with-param name="key" select="'Revision'"/>
511        </xsl:call-template>
512        <xsl:call-template name="gentext.space"/>
513        <xsl:apply-templates select="$revnumber[1]" mode="titlepage.mode"/>
514      </xsl:if>
515    </td>
516    <td align="left">
517      <xsl:apply-templates select="$revdate[1]" mode="titlepage.mode"/>
518    </td>
519    <xsl:choose>
520      <xsl:when test="$revauthor">
521        <td align="left">
522          <xsl:apply-templates select="$revauthor[1]" mode="titlepage.mode"/>
523        </td>
524      </xsl:when>
525      <xsl:when test="$numcols &gt; 2">
526        <td>&#160;</td>
527      </xsl:when>
528      <xsl:otherwise></xsl:otherwise>
529    </xsl:choose>
530  </tr>
531  <xsl:if test="$revremark">
532    <tr>
533      <td align="left" colspan="{$numcols}">
534        <xsl:apply-templates select="$revremark[1]" mode="titlepage.mode"/>
535      </td>
536    </tr>
537  </xsl:if>
538</xsl:template>
539
540<xsl:template match="revision/revnumber" mode="titlepage.mode">
541  <xsl:apply-templates mode="titlepage.mode"/>
542</xsl:template>
543
544<xsl:template match="revision/date" mode="titlepage.mode">
545  <xsl:apply-templates mode="titlepage.mode"/>
546</xsl:template>
547
548<xsl:template match="revision/authorinitials" mode="titlepage.mode">
549  <xsl:apply-templates mode="titlepage.mode"/>
550</xsl:template>
551
552<xsl:template match="revision/revremark" mode="titlepage.mode">
553  <xsl:apply-templates mode="titlepage.mode"/>
554</xsl:template>
555
556<xsl:template match="revision/revdescription" mode="titlepage.mode">
557  <xsl:apply-templates mode="titlepage.mode"/>
558</xsl:template>
559
560<xsl:template match="seriesvolnums" mode="titlepage.mode">
561  <span class="{name(.)}">
562    <xsl:apply-templates mode="titlepage.mode"/>
563    <br/>
564  </span>
565</xsl:template>
566
567<xsl:template match="shortaffil" mode="titlepage.mode">
568  <span class="{name(.)}">
569    <xsl:apply-templates mode="titlepage.mode"/>
570    <br/>
571  </span>
572</xsl:template>
573
574<xsl:template match="subjectset" mode="titlepage.mode">
575</xsl:template>
576
577<xsl:template match="subtitle" mode="titlepage.mode">
578  <h2 class="{name(.)}">
579    <xsl:apply-templates mode="titlepage.mode"/>
580  </h2>
581</xsl:template>
582
583<xsl:template match="surname" mode="titlepage.mode">
584  <span class="{name(.)}">
585    <xsl:apply-templates mode="titlepage.mode"/>
586    <br/>
587  </span>
588</xsl:template>
589
590<xsl:template match="title" mode="titlepage.mode">
591  <xsl:variable name="id">
592    <xsl:choose>
593      <!-- if title is in an *info wrapper, get the grandparent -->
594      <xsl:when test="contains(local-name(..), 'info')">
595        <xsl:call-template name="object.id">
596          <xsl:with-param name="object" select="../.."/>
597        </xsl:call-template>
598      </xsl:when>
599      <xsl:otherwise>
600        <xsl:call-template name="object.id">
601          <xsl:with-param name="object" select=".."/>
602        </xsl:call-template>
603      </xsl:otherwise>
604    </xsl:choose>
605  </xsl:variable>
606
607  <h1 class="{name(.)}">
608    <a name="{$id}"/>
609    <xsl:choose>
610      <xsl:when test="$show.revisionflag and @revisionflag">
611	<span class="{@revisionflag}">
612	  <xsl:apply-templates mode="titlepage.mode"/>
613	</span>
614      </xsl:when>
615      <xsl:otherwise>
616	<xsl:apply-templates mode="titlepage.mode"/>
617      </xsl:otherwise>
618    </xsl:choose>
619  </h1>
620</xsl:template>
621
622<xsl:template match="titleabbrev" mode="titlepage.mode">
623  <!-- nop; title abbreviations don't belong on the title page! -->
624</xsl:template>
625
626<xsl:template match="volumenum" mode="titlepage.mode">
627  <span class="{name(.)}">
628    <xsl:apply-templates mode="titlepage.mode"/>
629    <br/>
630  </span>
631</xsl:template>
632
633<!-- ==================================================================== -->
634
635</xsl:stylesheet>
636