source: clfs-sysroot/BOOK/stylesheets/lfs-xsl/docbook-xsl-snapshot/fo/pagesetup.xsl @ a18aefd

Last change on this file since a18aefd was a18aefd, checked in by Manuel Canales Esparcia <manuel@…>, 17 years ago

Added lfs-xsl stylesheets.

  • Property mode set to 100644
File size: 104.6 KB
Line 
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 DocBook XSL Stylesheet distribution.
11     See ../README or http://docbook.sf.net/ for copyright
12     copyright and other information.
13
14     ******************************************************************** -->
15
16<!-- ==================================================================== -->
17
18<xsl:param name="body.fontset">
19  <xsl:value-of select="$body.font.family"/>
20  <xsl:if test="$body.font.family != ''
21                and $symbol.font.family  != ''">,</xsl:if>
22    <xsl:value-of select="$symbol.font.family"/>
23</xsl:param>
24
25<xsl:param name="title.fontset">
26  <xsl:value-of select="$title.font.family"/>
27  <xsl:if test="$title.font.family != ''
28                and $symbol.font.family  != ''">,</xsl:if>
29    <xsl:value-of select="$symbol.font.family"/>
30</xsl:param>
31
32<!-- PassiveTeX can't handle the math expression for
33     title.margin.left being negative, so ignore it.
34     margin-left="{$page.margin.outer} - {$title.margin.left}"
35-->
36<xsl:param name="margin.left.outer">
37  <xsl:choose>
38    <xsl:when test="$passivetex.extensions != 0">
39      <xsl:value-of select="$page.margin.outer"/>
40    </xsl:when>
41    <xsl:otherwise>
42      <xsl:value-of select="$page.margin.outer"/>
43      <xsl:text> - </xsl:text>
44      <xsl:value-of select="$title.margin.left"/>
45    </xsl:otherwise>
46  </xsl:choose>
47</xsl:param>
48
49<xsl:param name="margin.left.inner">
50  <xsl:choose>
51    <xsl:when test="$passivetex.extensions != 0">
52      <xsl:value-of select="$page.margin.inner"/>
53    </xsl:when>
54    <xsl:otherwise>
55      <xsl:value-of select="$page.margin.inner"/>
56      <xsl:text> - </xsl:text>
57      <xsl:value-of select="$title.margin.left"/>
58    </xsl:otherwise>
59  </xsl:choose>
60</xsl:param>
61
62<xsl:template name="setup.pagemasters">
63  <fo:layout-master-set>
64    <!-- blank pages -->
65    <fo:simple-page-master master-name="blank"
66                           page-width="{$page.width}"
67                           page-height="{$page.height}"
68                           margin-top="{$page.margin.top}"
69                           margin-bottom="{$page.margin.bottom}"
70                           margin-left="{$margin.left.outer}"
71                           margin-right="{$page.margin.inner}">
72      <xsl:if test="$axf.extensions != 0">
73        <xsl:call-template name="axf-page-master-properties">
74          <xsl:with-param name="page.master">blank</xsl:with-param>
75        </xsl:call-template>
76      </xsl:if>
77      <fo:region-body display-align="center"
78                      margin-bottom="{$body.margin.bottom}"
79                      margin-top="{$body.margin.top}">
80        <xsl:if test="$fop.extensions = 0 and $fop1.extensions = 0">
81          <xsl:attribute name="region-name">blank-body</xsl:attribute>
82        </xsl:if>
83      </fo:region-body>
84      <fo:region-before region-name="xsl-region-before-blank"
85                        extent="{$region.before.extent}"
86                        display-align="before"/>
87      <fo:region-after region-name="xsl-region-after-blank"
88                       extent="{$region.after.extent}"
89                        display-align="after"/>
90    </fo:simple-page-master>
91
92    <!-- title pages -->
93    <fo:simple-page-master master-name="titlepage-first"
94                           page-width="{$page.width}"
95                           page-height="{$page.height}"
96                           margin-top="{$page.margin.top}"
97                           margin-bottom="{$page.margin.bottom}"
98                           margin-left="{$margin.left.inner}"
99                           margin-right="{$page.margin.outer}">
100      <xsl:if test="$axf.extensions != 0">
101        <xsl:call-template name="axf-page-master-properties">
102          <xsl:with-param name="page.master">titlepage-first</xsl:with-param>
103        </xsl:call-template>
104      </xsl:if>
105      <fo:region-body margin-bottom="{$body.margin.bottom}"
106                      margin-top="{$body.margin.top}"
107                      column-gap="{$column.gap.titlepage}"
108                      column-count="{$column.count.titlepage}">
109      </fo:region-body>
110      <fo:region-before region-name="xsl-region-before-first"
111                        extent="{$region.before.extent}"
112                        display-align="before"/>
113      <fo:region-after region-name="xsl-region-after-first"
114                       extent="{$region.after.extent}"
115                        display-align="after"/>
116    </fo:simple-page-master>
117
118    <fo:simple-page-master master-name="titlepage-odd"
119                           page-width="{$page.width}"
120                           page-height="{$page.height}"
121                           margin-top="{$page.margin.top}"
122                           margin-bottom="{$page.margin.bottom}"
123                           margin-left="{$margin.left.inner}"
124                           margin-right="{$page.margin.outer}">
125      <xsl:if test="$axf.extensions != 0">
126        <xsl:call-template name="axf-page-master-properties">
127          <xsl:with-param name="page.master">titlepage-odd</xsl:with-param>
128        </xsl:call-template>
129      </xsl:if>
130      <fo:region-body margin-bottom="{$body.margin.bottom}"
131                      margin-top="{$body.margin.top}"
132                      column-gap="{$column.gap.titlepage}"
133                      column-count="{$column.count.titlepage}">
134      </fo:region-body>
135      <fo:region-before region-name="xsl-region-before-odd"
136                        extent="{$region.before.extent}"
137                        display-align="before"/>
138      <fo:region-after region-name="xsl-region-after-odd"
139                       extent="{$region.after.extent}"
140                        display-align="after"/>
141    </fo:simple-page-master>
142
143    <fo:simple-page-master master-name="titlepage-even"
144                           page-width="{$page.width}"
145                           page-height="{$page.height}"
146                           margin-top="{$page.margin.top}"
147                           margin-bottom="{$page.margin.bottom}"
148                           margin-left="{$margin.left.outer}"
149                           margin-right="{$page.margin.inner}">
150      <xsl:if test="$axf.extensions != 0">
151        <xsl:call-template name="axf-page-master-properties">
152          <xsl:with-param name="page.master">titlepage-even</xsl:with-param>
153        </xsl:call-template>
154      </xsl:if>
155      <fo:region-body margin-bottom="{$body.margin.bottom}"
156                      margin-top="{$body.margin.top}"
157                      column-gap="{$column.gap.titlepage}"
158                      column-count="{$column.count.titlepage}">
159      </fo:region-body>
160      <fo:region-before region-name="xsl-region-before-even"
161                        extent="{$region.before.extent}"
162                        display-align="before"/>
163      <fo:region-after region-name="xsl-region-after-even"
164                       extent="{$region.after.extent}"
165                        display-align="after"/>
166    </fo:simple-page-master>
167
168    <!-- list-of-title pages -->
169    <fo:simple-page-master master-name="lot-first"
170                           page-width="{$page.width}"
171                           page-height="{$page.height}"
172                           margin-top="{$page.margin.top}"
173                           margin-bottom="{$page.margin.bottom}"
174                           margin-left="{$margin.left.inner}"
175                           margin-right="{$page.margin.outer}">
176      <xsl:if test="$axf.extensions != 0">
177        <xsl:call-template name="axf-page-master-properties">
178          <xsl:with-param name="page.master">lot-first</xsl:with-param>
179        </xsl:call-template>
180      </xsl:if>
181      <fo:region-body margin-bottom="{$body.margin.bottom}"
182                      margin-top="{$body.margin.top}"
183                      column-gap="{$column.gap.lot}"
184                      column-count="{$column.count.lot}">
185      </fo:region-body>
186      <fo:region-before region-name="xsl-region-before-first"
187                        extent="{$region.before.extent}"
188                        display-align="before"/>
189      <fo:region-after region-name="xsl-region-after-first"
190                       extent="{$region.after.extent}"
191                       display-align="after"/>
192    </fo:simple-page-master>
193
194    <fo:simple-page-master master-name="lot-odd"
195                           page-width="{$page.width}"
196                           page-height="{$page.height}"
197                           margin-top="{$page.margin.top}"
198                           margin-bottom="{$page.margin.bottom}"
199                           margin-left="{$margin.left.inner}"
200                           margin-right="{$page.margin.outer}">
201      <xsl:if test="$axf.extensions != 0">
202        <xsl:call-template name="axf-page-master-properties">
203          <xsl:with-param name="page.master">lot-odd</xsl:with-param>
204        </xsl:call-template>
205      </xsl:if>
206      <fo:region-body margin-bottom="{$body.margin.bottom}"
207                      margin-top="{$body.margin.top}"
208                      column-gap="{$column.gap.lot}"
209                      column-count="{$column.count.lot}">
210      </fo:region-body>
211      <fo:region-before region-name="xsl-region-before-odd"
212                        extent="{$region.before.extent}"
213                        display-align="before"/>
214      <fo:region-after region-name="xsl-region-after-odd"
215                       extent="{$region.after.extent}"
216                        display-align="after"/>
217    </fo:simple-page-master>
218
219    <fo:simple-page-master master-name="lot-even"
220                           page-width="{$page.width}"
221                           page-height="{$page.height}"
222                           margin-top="{$page.margin.top}"
223                           margin-bottom="{$page.margin.bottom}"
224                           margin-left="{$margin.left.outer}"
225                           margin-right="{$page.margin.inner}">
226      <xsl:if test="$axf.extensions != 0">
227        <xsl:call-template name="axf-page-master-properties">
228          <xsl:with-param name="page.master">lot-even</xsl:with-param>
229        </xsl:call-template>
230      </xsl:if>
231      <fo:region-body margin-bottom="{$body.margin.bottom}"
232                      margin-top="{$body.margin.top}"
233                      column-gap="{$column.gap.lot}"
234                      column-count="{$column.count.lot}">
235      </fo:region-body>
236      <fo:region-before region-name="xsl-region-before-even"
237                        extent="{$region.before.extent}"
238                        display-align="before"/>
239      <fo:region-after region-name="xsl-region-after-even"
240                       extent="{$region.after.extent}"
241                        display-align="after"/>
242    </fo:simple-page-master>
243
244    <!-- frontmatter pages -->
245    <fo:simple-page-master master-name="front-first"
246                           page-width="{$page.width}"
247                           page-height="{$page.height}"
248                           margin-top="{$page.margin.top}"
249                           margin-bottom="{$page.margin.bottom}"
250                           margin-left="{$margin.left.inner}"
251                           margin-right="{$page.margin.outer}">
252      <xsl:if test="$axf.extensions != 0">
253        <xsl:call-template name="axf-page-master-properties">
254          <xsl:with-param name="page.master">front-first</xsl:with-param>
255        </xsl:call-template>
256      </xsl:if>
257      <fo:region-body margin-bottom="{$body.margin.bottom}"
258                      margin-top="{$body.margin.top}"
259                      column-gap="{$column.gap.front}"
260                      column-count="{$column.count.front}">
261      </fo:region-body>
262      <fo:region-before region-name="xsl-region-before-first"
263                        extent="{$region.before.extent}"
264                        display-align="before"/>
265      <fo:region-after region-name="xsl-region-after-first"
266                       extent="{$region.after.extent}"
267                        display-align="after"/>
268    </fo:simple-page-master>
269
270    <fo:simple-page-master master-name="front-odd"
271                           page-width="{$page.width}"
272                           page-height="{$page.height}"
273                           margin-top="{$page.margin.top}"
274                           margin-bottom="{$page.margin.bottom}"
275                           margin-left="{$margin.left.inner}"
276                           margin-right="{$page.margin.outer}">
277      <xsl:if test="$axf.extensions != 0">
278        <xsl:call-template name="axf-page-master-properties">
279          <xsl:with-param name="page.master">front-odd</xsl:with-param>
280        </xsl:call-template>
281      </xsl:if>
282      <fo:region-body margin-bottom="{$body.margin.bottom}"
283                      margin-top="{$body.margin.top}"
284                      column-gap="{$column.gap.front}"
285                      column-count="{$column.count.front}">
286      </fo:region-body>
287      <fo:region-before region-name="xsl-region-before-odd"
288                        extent="{$region.before.extent}"
289                        display-align="before"/>
290      <fo:region-after region-name="xsl-region-after-odd"
291                       extent="{$region.after.extent}"
292                        display-align="after"/>
293    </fo:simple-page-master>
294
295    <fo:simple-page-master master-name="front-even"
296                           page-width="{$page.width}"
297                           page-height="{$page.height}"
298                           margin-top="{$page.margin.top}"
299                           margin-bottom="{$page.margin.bottom}"
300                           margin-left="{$margin.left.outer}"
301                           margin-right="{$page.margin.inner}">
302      <xsl:if test="$axf.extensions != 0">
303        <xsl:call-template name="axf-page-master-properties">
304          <xsl:with-param name="page.master">front-even</xsl:with-param>
305        </xsl:call-template>
306      </xsl:if>
307      <fo:region-body margin-bottom="{$body.margin.bottom}"
308                      margin-top="{$body.margin.top}"
309                      column-gap="{$column.gap.front}"
310                      column-count="{$column.count.front}">
311      </fo:region-body>
312      <fo:region-before region-name="xsl-region-before-even"
313                        extent="{$region.before.extent}"
314                        display-align="before"/>
315      <fo:region-after region-name="xsl-region-after-even"
316                       extent="{$region.after.extent}"
317                        display-align="after"/>
318    </fo:simple-page-master>
319
320    <!-- body pages -->
321    <fo:simple-page-master master-name="body-first"
322                           page-width="{$page.width}"
323                           page-height="{$page.height}"
324                           margin-top="{$page.margin.top}"
325                           margin-bottom="{$page.margin.bottom}"
326                           margin-left="{$margin.left.inner}"
327                           margin-right="{$page.margin.outer}">
328      <xsl:if test="$axf.extensions != 0">
329        <xsl:call-template name="axf-page-master-properties">
330          <xsl:with-param name="page.master">body-first</xsl:with-param>
331        </xsl:call-template>
332      </xsl:if>
333      <fo:region-body margin-bottom="{$body.margin.bottom}"
334                      margin-top="{$body.margin.top}"
335                      column-gap="{$column.gap.body}"
336                      column-count="{$column.count.body}">
337      </fo:region-body>
338      <fo:region-before region-name="xsl-region-before-first"
339                        extent="{$region.before.extent}"
340                        display-align="before"/>
341      <fo:region-after region-name="xsl-region-after-first"
342                       extent="{$region.after.extent}"
343                       display-align="after"/>
344    </fo:simple-page-master>
345
346    <fo:simple-page-master master-name="body-odd"
347                           page-width="{$page.width}"
348                           page-height="{$page.height}"
349                           margin-top="{$page.margin.top}"
350                           margin-bottom="{$page.margin.bottom}"
351                           margin-left="{$margin.left.inner}"
352                           margin-right="{$page.margin.outer}">
353      <xsl:if test="$axf.extensions != 0">
354        <xsl:call-template name="axf-page-master-properties">
355          <xsl:with-param name="page.master">body-odd</xsl:with-param>
356        </xsl:call-template>
357      </xsl:if>
358      <fo:region-body margin-bottom="{$body.margin.bottom}"
359                      margin-top="{$body.margin.top}"
360                      column-gap="{$column.gap.body}"
361                      column-count="{$column.count.body}">
362      </fo:region-body>
363      <fo:region-before region-name="xsl-region-before-odd"
364                        extent="{$region.before.extent}"
365                        display-align="before"/>
366      <fo:region-after region-name="xsl-region-after-odd"
367                       extent="{$region.after.extent}"
368                       display-align="after"/>
369    </fo:simple-page-master>
370
371    <fo:simple-page-master master-name="body-even"
372                           page-width="{$page.width}"
373                           page-height="{$page.height}"
374                           margin-top="{$page.margin.top}"
375                           margin-bottom="{$page.margin.bottom}"
376                           margin-left="{$margin.left.outer}"
377                           margin-right="{$page.margin.inner}">
378      <xsl:if test="$axf.extensions != 0">
379        <xsl:call-template name="axf-page-master-properties">
380          <xsl:with-param name="page.master">body-even</xsl:with-param>
381        </xsl:call-template>
382      </xsl:if>
383      <fo:region-body margin-bottom="{$body.margin.bottom}"
384                      margin-top="{$body.margin.top}"
385                      column-gap="{$column.gap.body}"
386                      column-count="{$column.count.body}">
387      </fo:region-body>
388      <fo:region-before region-name="xsl-region-before-even"
389                        extent="{$region.before.extent}"
390                        display-align="before"/>
391      <fo:region-after region-name="xsl-region-after-even"
392                       extent="{$region.after.extent}"
393                       display-align="after"/>
394    </fo:simple-page-master>
395
396    <!-- backmatter pages -->
397    <fo:simple-page-master master-name="back-first"
398                           page-width="{$page.width}"
399                           page-height="{$page.height}"
400                           margin-top="{$page.margin.top}"
401                           margin-bottom="{$page.margin.bottom}"
402                           margin-left="{$margin.left.inner}"
403                           margin-right="{$page.margin.outer}">
404      <xsl:if test="$axf.extensions != 0">
405        <xsl:call-template name="axf-page-master-properties">
406          <xsl:with-param name="page.master">back-first</xsl:with-param>
407        </xsl:call-template>
408      </xsl:if>
409      <fo:region-body margin-bottom="{$body.margin.bottom}"
410                      margin-top="{$body.margin.top}"
411                      column-gap="{$column.gap.back}"
412                      column-count="{$column.count.back}">
413      </fo:region-body>
414      <fo:region-before region-name="xsl-region-before-first"
415                        extent="{$region.before.extent}"
416                        display-align="before"/>
417      <fo:region-after region-name="xsl-region-after-first"
418                       extent="{$region.after.extent}"
419                       display-align="after"/>
420    </fo:simple-page-master>
421
422    <fo:simple-page-master master-name="back-odd"
423                           page-width="{$page.width}"
424                           page-height="{$page.height}"
425                           margin-top="{$page.margin.top}"
426                           margin-bottom="{$page.margin.bottom}"
427                           margin-left="{$margin.left.inner}"
428                           margin-right="{$page.margin.outer}">
429      <xsl:if test="$axf.extensions != 0">
430        <xsl:call-template name="axf-page-master-properties">
431          <xsl:with-param name="page.master">back-odd</xsl:with-param>
432        </xsl:call-template>
433      </xsl:if>
434      <fo:region-body margin-bottom="{$body.margin.bottom}"
435                      margin-top="{$body.margin.top}"
436                      column-gap="{$column.gap.back}"
437                      column-count="{$column.count.back}">
438      </fo:region-body>
439      <fo:region-before region-name="xsl-region-before-odd"
440                        extent="{$region.before.extent}"
441                        display-align="before"/>
442      <fo:region-after region-name="xsl-region-after-odd"
443                       extent="{$region.after.extent}"
444                       display-align="after"/>
445    </fo:simple-page-master>
446
447    <fo:simple-page-master master-name="back-even"
448                           page-width="{$page.width}"
449                           page-height="{$page.height}"
450                           margin-top="{$page.margin.top}"
451                           margin-bottom="{$page.margin.bottom}"
452                           margin-left="{$margin.left.outer}"
453                           margin-right="{$page.margin.inner}">
454      <xsl:if test="$axf.extensions != 0">
455        <xsl:call-template name="axf-page-master-properties">
456          <xsl:with-param name="page.master">back-even</xsl:with-param>
457        </xsl:call-template>
458      </xsl:if>
459      <fo:region-body margin-bottom="{$body.margin.bottom}"
460                      margin-top="{$body.margin.top}"
461                      column-gap="{$column.gap.back}"
462                      column-count="{$column.count.back}">
463      </fo:region-body>
464      <fo:region-before region-name="xsl-region-before-even"
465                        extent="{$region.before.extent}"
466                        display-align="before"/>
467      <fo:region-after region-name="xsl-region-after-even"
468                       extent="{$region.after.extent}"
469                       display-align="after"/>
470    </fo:simple-page-master>
471
472    <!-- index pages -->
473    <fo:simple-page-master master-name="index-first"
474                           page-width="{$page.width}"
475                           page-height="{$page.height}"
476                           margin-top="{$page.margin.top}"
477                           margin-bottom="{$page.margin.bottom}"
478                           margin-left="{$page.margin.inner}"
479                           margin-right="{$page.margin.outer}">
480      <xsl:if test="$axf.extensions != 0">
481        <xsl:call-template name="axf-page-master-properties">
482          <xsl:with-param name="page.master">index-first</xsl:with-param>
483        </xsl:call-template>
484      </xsl:if>
485      <fo:region-body margin-bottom="{$body.margin.bottom}"
486                      margin-top="{$body.margin.top}"
487                      column-gap="{$column.gap.index}"
488                      column-count="{$column.count.index}">
489      </fo:region-body>
490      <fo:region-before region-name="xsl-region-before-first"
491                        extent="{$region.before.extent}"
492                        display-align="before"/>
493      <fo:region-after region-name="xsl-region-after-first"
494                       extent="{$region.after.extent}"
495                       display-align="after"/>
496    </fo:simple-page-master>
497
498    <fo:simple-page-master master-name="index-odd"
499                           page-width="{$page.width}"
500                           page-height="{$page.height}"
501                           margin-top="{$page.margin.top}"
502                           margin-bottom="{$page.margin.bottom}"
503                           margin-left="{$page.margin.inner}"
504                           margin-right="{$page.margin.outer}">
505      <xsl:if test="$axf.extensions != 0">
506        <xsl:call-template name="axf-page-master-properties">
507          <xsl:with-param name="page.master">index-odd</xsl:with-param>
508        </xsl:call-template>
509      </xsl:if>
510      <fo:region-body margin-bottom="{$body.margin.bottom}"
511                      margin-top="{$body.margin.top}"
512                      column-gap="{$column.gap.index}"
513                      column-count="{$column.count.index}">
514      </fo:region-body>
515      <fo:region-before region-name="xsl-region-before-odd"
516                        extent="{$region.before.extent}"
517                        display-align="before"/>
518      <fo:region-after region-name="xsl-region-after-odd"
519                       extent="{$region.after.extent}"
520                       display-align="after"/>
521    </fo:simple-page-master>
522
523    <fo:simple-page-master master-name="index-even"
524                           page-width="{$page.width}"
525                           page-height="{$page.height}"
526                           margin-top="{$page.margin.top}"
527                           margin-bottom="{$page.margin.bottom}"
528                           margin-left="{$page.margin.outer}"
529                           margin-right="{$page.margin.inner}">
530      <xsl:if test="$axf.extensions != 0">
531        <xsl:call-template name="axf-page-master-properties">
532          <xsl:with-param name="page.master">index-even</xsl:with-param>
533        </xsl:call-template>
534      </xsl:if>
535      <fo:region-body margin-bottom="{$body.margin.bottom}"
536                      margin-top="{$body.margin.top}"
537                      column-gap="{$column.gap.index}"
538                      column-count="{$column.count.index}">
539      </fo:region-body>
540      <fo:region-before region-name="xsl-region-before-even"
541                        extent="{$region.before.extent}"
542                        display-align="before"/>
543      <fo:region-after region-name="xsl-region-after-even"
544                       extent="{$region.after.extent}"
545                       display-align="after"/>
546    </fo:simple-page-master>
547
548    <xsl:if test="$draft.mode != 'no'">
549      <!-- draft blank pages -->
550      <fo:simple-page-master master-name="blank-draft"
551                             page-width="{$page.width}"
552                             page-height="{$page.height}"
553                             margin-top="{$page.margin.top}"
554                             margin-bottom="{$page.margin.bottom}"
555                             margin-left="{$margin.left.outer}"
556                             margin-right="{$page.margin.inner}">
557        <xsl:if test="$axf.extensions != 0">
558          <xsl:call-template name="axf-page-master-properties">
559            <xsl:with-param name="page.master">blank-draft</xsl:with-param>
560          </xsl:call-template>
561        </xsl:if>
562        <fo:region-body margin-bottom="{$body.margin.bottom}"
563                        margin-top="{$body.margin.top}">
564          <xsl:if test="$draft.watermark.image != ''">
565            <xsl:attribute name="background-image">
566              <xsl:call-template name="fo-external-image">
567                <xsl:with-param name="filename" select="$draft.watermark.image"/>
568              </xsl:call-template>
569            </xsl:attribute>
570            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
571            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
572            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
573            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
574          </xsl:if>
575        </fo:region-body>
576        <fo:region-before region-name="xsl-region-before-blank"
577                          extent="{$region.before.extent}"
578                          display-align="before"/>
579        <fo:region-after region-name="xsl-region-after-blank"
580                         extent="{$region.after.extent}"
581                         display-align="after"/>
582      </fo:simple-page-master>
583
584      <!-- draft title pages -->
585      <fo:simple-page-master master-name="titlepage-first-draft"
586                             page-width="{$page.width}"
587                             page-height="{$page.height}"
588                             margin-top="{$page.margin.top}"
589                             margin-bottom="{$page.margin.bottom}"
590                             margin-left="{$margin.left.inner}"
591                             margin-right="{$page.margin.outer}">
592        <xsl:if test="$axf.extensions != 0">
593          <xsl:call-template name="axf-page-master-properties">
594            <xsl:with-param name="page.master">titlepage-first-draft</xsl:with-param>
595          </xsl:call-template>
596        </xsl:if>
597        <fo:region-body margin-bottom="{$body.margin.bottom}"
598                        margin-top="{$body.margin.top}"
599                        column-gap="{$column.gap.titlepage}"
600                        column-count="{$column.count.titlepage}">
601          <xsl:if test="$draft.watermark.image != ''">
602            <xsl:attribute name="background-image">
603              <xsl:call-template name="fo-external-image">
604                <xsl:with-param name="filename" select="$draft.watermark.image"/>
605              </xsl:call-template>
606            </xsl:attribute>
607            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
608            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
609            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
610            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
611          </xsl:if>
612        </fo:region-body>
613        <fo:region-before region-name="xsl-region-before-first"
614                          extent="{$region.before.extent}"
615                          display-align="before"/>
616        <fo:region-after region-name="xsl-region-after-first"
617                         extent="{$region.after.extent}"
618                         display-align="after"/>
619      </fo:simple-page-master>
620
621      <fo:simple-page-master master-name="titlepage-odd-draft"
622                             page-width="{$page.width}"
623                             page-height="{$page.height}"
624                             margin-top="{$page.margin.top}"
625                             margin-bottom="{$page.margin.bottom}"
626                             margin-left="{$margin.left.inner}"
627                             margin-right="{$page.margin.outer}">
628        <xsl:if test="$axf.extensions != 0">
629          <xsl:call-template name="axf-page-master-properties">
630            <xsl:with-param name="page.master">titlepage-odd-draft</xsl:with-param>
631          </xsl:call-template>
632        </xsl:if>
633        <fo:region-body margin-bottom="{$body.margin.bottom}"
634                        margin-top="{$body.margin.top}"
635                        column-gap="{$column.gap.titlepage}"
636                        column-count="{$column.count.titlepage}">
637          <xsl:if test="$draft.watermark.image != ''">
638            <xsl:attribute name="background-image">
639              <xsl:call-template name="fo-external-image">
640                <xsl:with-param name="filename" select="$draft.watermark.image"/>
641              </xsl:call-template>
642            </xsl:attribute>
643            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
644            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
645            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
646            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
647          </xsl:if>
648        </fo:region-body>
649        <fo:region-before region-name="xsl-region-before-odd"
650                          extent="{$region.before.extent}"
651                          display-align="before"/>
652        <fo:region-after region-name="xsl-region-after-odd"
653                         extent="{$region.after.extent}"
654                         display-align="after"/>
655      </fo:simple-page-master>
656
657      <fo:simple-page-master master-name="titlepage-even-draft"
658                             page-width="{$page.width}"
659                             page-height="{$page.height}"
660                             margin-top="{$page.margin.top}"
661                             margin-bottom="{$page.margin.bottom}"
662                             margin-left="{$margin.left.outer}"
663                             margin-right="{$page.margin.inner}">
664        <xsl:if test="$axf.extensions != 0">
665          <xsl:call-template name="axf-page-master-properties">
666            <xsl:with-param name="page.master">titlepage-even-draft</xsl:with-param>
667          </xsl:call-template>
668        </xsl:if>
669        <fo:region-body margin-bottom="{$body.margin.bottom}"
670                        margin-top="{$body.margin.top}"
671                        column-gap="{$column.gap.titlepage}"
672                        column-count="{$column.count.titlepage}">
673          <xsl:if test="$draft.watermark.image != ''">
674            <xsl:attribute name="background-image">
675              <xsl:call-template name="fo-external-image">
676                <xsl:with-param name="filename" select="$draft.watermark.image"/>
677              </xsl:call-template>
678            </xsl:attribute>
679            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
680            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
681            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
682            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
683          </xsl:if>
684        </fo:region-body>
685        <fo:region-before region-name="xsl-region-before-even"
686                          extent="{$region.before.extent}"
687                          display-align="before"/>
688        <fo:region-after region-name="xsl-region-after-even"
689                         extent="{$region.after.extent}"
690                         display-align="after"/>
691      </fo:simple-page-master>
692
693      <!-- draft list-of-title pages -->
694      <fo:simple-page-master master-name="lot-first-draft"
695                             page-width="{$page.width}"
696                             page-height="{$page.height}"
697                             margin-top="{$page.margin.top}"
698                             margin-bottom="{$page.margin.bottom}"
699                             margin-left="{$margin.left.inner}"
700                             margin-right="{$page.margin.outer}">
701        <xsl:if test="$axf.extensions != 0">
702          <xsl:call-template name="axf-page-master-properties">
703            <xsl:with-param name="page.master">lot-first-draft</xsl:with-param>
704          </xsl:call-template>
705        </xsl:if>
706        <fo:region-body margin-bottom="{$body.margin.bottom}"
707                        margin-top="{$body.margin.top}"
708                        column-gap="{$column.gap.lot}"
709                        column-count="{$column.count.lot}">
710          <xsl:if test="$draft.watermark.image != ''">
711            <xsl:attribute name="background-image">
712              <xsl:call-template name="fo-external-image">
713                <xsl:with-param name="filename" select="$draft.watermark.image"/>
714              </xsl:call-template>
715            </xsl:attribute>
716            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
717            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
718            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
719            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
720          </xsl:if>
721        </fo:region-body>
722        <fo:region-before region-name="xsl-region-before-first"
723                          extent="{$region.before.extent}"
724                          display-align="before"/>
725        <fo:region-after region-name="xsl-region-after-first"
726                         extent="{$region.after.extent}"
727                         display-align="after"/>
728      </fo:simple-page-master>
729
730      <fo:simple-page-master master-name="lot-odd-draft"
731                             page-width="{$page.width}"
732                             page-height="{$page.height}"
733                             margin-top="{$page.margin.top}"
734                             margin-bottom="{$page.margin.bottom}"
735                             margin-left="{$margin.left.inner}"
736                             margin-right="{$page.margin.outer}">
737        <xsl:if test="$axf.extensions != 0">
738          <xsl:call-template name="axf-page-master-properties">
739            <xsl:with-param name="page.master">lot-odd-draft</xsl:with-param>
740          </xsl:call-template>
741        </xsl:if>
742        <fo:region-body margin-bottom="{$body.margin.bottom}"
743                        margin-top="{$body.margin.top}"
744                        column-gap="{$column.gap.lot}"
745                        column-count="{$column.count.lot}">
746          <xsl:if test="$draft.watermark.image != ''">
747            <xsl:attribute name="background-image">
748              <xsl:call-template name="fo-external-image">
749                <xsl:with-param name="filename" select="$draft.watermark.image"/>
750              </xsl:call-template>
751            </xsl:attribute>
752            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
753            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
754            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
755            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
756          </xsl:if>
757        </fo:region-body>
758        <fo:region-before region-name="xsl-region-before-odd"
759                          extent="{$region.before.extent}"
760                          display-align="before"/>
761        <fo:region-after region-name="xsl-region-after-odd"
762                         extent="{$region.after.extent}"
763                         display-align="after"/>
764      </fo:simple-page-master>
765
766      <fo:simple-page-master master-name="lot-even-draft"
767                             page-width="{$page.width}"
768                             page-height="{$page.height}"
769                             margin-top="{$page.margin.top}"
770                             margin-bottom="{$page.margin.bottom}"
771                             margin-left="{$margin.left.outer}"
772                             margin-right="{$page.margin.inner}">
773        <xsl:if test="$axf.extensions != 0">
774          <xsl:call-template name="axf-page-master-properties">
775            <xsl:with-param name="page.master">lot-even-draft</xsl:with-param>
776          </xsl:call-template>
777        </xsl:if>
778        <fo:region-body margin-bottom="{$body.margin.bottom}"
779                        margin-top="{$body.margin.top}"
780                        column-gap="{$column.gap.lot}"
781                        column-count="{$column.count.lot}">
782          <xsl:if test="$draft.watermark.image != ''">
783            <xsl:attribute name="background-image">
784              <xsl:call-template name="fo-external-image">
785                <xsl:with-param name="filename" select="$draft.watermark.image"/>
786              </xsl:call-template>
787            </xsl:attribute>
788            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
789            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
790            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
791            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
792          </xsl:if>
793        </fo:region-body>
794        <fo:region-before region-name="xsl-region-before-even"
795                          extent="{$region.before.extent}"
796                          display-align="before"/>
797        <fo:region-after region-name="xsl-region-after-even"
798                         extent="{$region.after.extent}"
799                         display-align="after"/>
800      </fo:simple-page-master>
801
802      <!-- draft frontmatter pages -->
803      <fo:simple-page-master master-name="front-first-draft"
804                             page-width="{$page.width}"
805                             page-height="{$page.height}"
806                             margin-top="{$page.margin.top}"
807                             margin-bottom="{$page.margin.bottom}"
808                             margin-left="{$margin.left.inner}"
809                             margin-right="{$page.margin.outer}">
810        <xsl:if test="$axf.extensions != 0">
811          <xsl:call-template name="axf-page-master-properties">
812            <xsl:with-param name="page.master">front-first-draft</xsl:with-param>
813          </xsl:call-template>
814        </xsl:if>
815        <fo:region-body margin-bottom="{$body.margin.bottom}"
816                        margin-top="{$body.margin.top}"
817                        column-gap="{$column.gap.front}"
818                        column-count="{$column.count.front}">
819          <xsl:if test="$draft.watermark.image != ''">
820            <xsl:attribute name="background-image">
821              <xsl:call-template name="fo-external-image">
822                <xsl:with-param name="filename" select="$draft.watermark.image"/>
823              </xsl:call-template>
824            </xsl:attribute>
825            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
826            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
827            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
828            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
829          </xsl:if>
830        </fo:region-body>
831        <fo:region-before region-name="xsl-region-before-first"
832                          extent="{$region.before.extent}"
833                          display-align="before"/>
834        <fo:region-after region-name="xsl-region-after-first"
835                         extent="{$region.after.extent}"
836                         display-align="after"/>
837      </fo:simple-page-master>
838
839      <fo:simple-page-master master-name="front-odd-draft"
840                             page-width="{$page.width}"
841                             page-height="{$page.height}"
842                             margin-top="{$page.margin.top}"
843                             margin-bottom="{$page.margin.bottom}"
844                             margin-left="{$margin.left.inner}"
845                             margin-right="{$page.margin.outer}">
846        <xsl:if test="$axf.extensions != 0">
847          <xsl:call-template name="axf-page-master-properties">
848            <xsl:with-param name="page.master">front-odd-draft</xsl:with-param>
849          </xsl:call-template>
850        </xsl:if>
851        <fo:region-body margin-bottom="{$body.margin.bottom}"
852                        margin-top="{$body.margin.top}"
853                        column-gap="{$column.gap.front}"
854                        column-count="{$column.count.front}">
855          <xsl:if test="$draft.watermark.image != ''">
856            <xsl:attribute name="background-image">
857              <xsl:call-template name="fo-external-image">
858                <xsl:with-param name="filename" select="$draft.watermark.image"/>
859              </xsl:call-template>
860            </xsl:attribute>
861            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
862            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
863            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
864            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
865          </xsl:if>
866        </fo:region-body>
867        <fo:region-before region-name="xsl-region-before-odd"
868                          extent="{$region.before.extent}"
869                          display-align="before"/>
870        <fo:region-after region-name="xsl-region-after-odd"
871                         extent="{$region.after.extent}"
872                         display-align="after"/>
873      </fo:simple-page-master>
874
875      <fo:simple-page-master master-name="front-even-draft"
876                             page-width="{$page.width}"
877                             page-height="{$page.height}"
878                             margin-top="{$page.margin.top}"
879                             margin-bottom="{$page.margin.bottom}"
880                             margin-left="{$margin.left.outer}"
881                             margin-right="{$page.margin.inner}">
882        <xsl:if test="$axf.extensions != 0">
883          <xsl:call-template name="axf-page-master-properties">
884            <xsl:with-param name="page.master">front-even-draft</xsl:with-param>
885          </xsl:call-template>
886        </xsl:if>
887        <fo:region-body margin-bottom="{$body.margin.bottom}"
888                        margin-top="{$body.margin.top}"
889                        column-gap="{$column.gap.front}"
890                        column-count="{$column.count.front}">
891          <xsl:if test="$draft.watermark.image != ''">
892            <xsl:attribute name="background-image">
893              <xsl:call-template name="fo-external-image">
894                <xsl:with-param name="filename" select="$draft.watermark.image"/>
895              </xsl:call-template>
896            </xsl:attribute>
897            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
898            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
899            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
900            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
901          </xsl:if>
902        </fo:region-body>
903        <fo:region-before region-name="xsl-region-before-even"
904                          extent="{$region.before.extent}"
905                          display-align="before"/>
906        <fo:region-after region-name="xsl-region-after-even"
907                         extent="{$region.after.extent}"
908                         display-align="after"/>
909      </fo:simple-page-master>
910
911      <!-- draft body pages -->
912      <fo:simple-page-master master-name="body-first-draft"
913                             page-width="{$page.width}"
914                             page-height="{$page.height}"
915                             margin-top="{$page.margin.top}"
916                             margin-bottom="{$page.margin.bottom}"
917                             margin-left="{$margin.left.inner}"
918                             margin-right="{$page.margin.outer}">
919        <xsl:if test="$axf.extensions != 0">
920          <xsl:call-template name="axf-page-master-properties">
921            <xsl:with-param name="page.master">body-first-draft</xsl:with-param>
922          </xsl:call-template>
923        </xsl:if>
924        <fo:region-body margin-bottom="{$body.margin.bottom}"
925                        margin-top="{$body.margin.top}"
926                        column-gap="{$column.gap.body}"
927                        column-count="{$column.count.body}">
928          <xsl:if test="$draft.watermark.image != ''">
929            <xsl:attribute name="background-image">
930              <xsl:call-template name="fo-external-image">
931                <xsl:with-param name="filename" select="$draft.watermark.image"/>
932              </xsl:call-template>
933            </xsl:attribute>
934            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
935            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
936            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
937            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
938          </xsl:if>
939        </fo:region-body>
940        <fo:region-before region-name="xsl-region-before-first"
941                          extent="{$region.before.extent}"
942                          display-align="before"/>
943        <fo:region-after region-name="xsl-region-after-first"
944                         extent="{$region.after.extent}"
945                         display-align="after"/>
946      </fo:simple-page-master>
947
948      <fo:simple-page-master master-name="body-odd-draft"
949                             page-width="{$page.width}"
950                             page-height="{$page.height}"
951                             margin-top="{$page.margin.top}"
952                             margin-bottom="{$page.margin.bottom}"
953                             margin-left="{$margin.left.inner}"
954                             margin-right="{$page.margin.outer}">
955        <xsl:if test="$axf.extensions != 0">
956          <xsl:call-template name="axf-page-master-properties">
957            <xsl:with-param name="page.master">body-odd-draft</xsl:with-param>
958          </xsl:call-template>
959        </xsl:if>
960        <fo:region-body margin-bottom="{$body.margin.bottom}"
961                        margin-top="{$body.margin.top}"
962                        column-gap="{$column.gap.body}"
963                        column-count="{$column.count.body}">
964          <xsl:if test="$draft.watermark.image != ''">
965            <xsl:attribute name="background-image">
966              <xsl:call-template name="fo-external-image">
967                <xsl:with-param name="filename" select="$draft.watermark.image"/>
968              </xsl:call-template>
969            </xsl:attribute>
970            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
971            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
972            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
973            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
974          </xsl:if>
975        </fo:region-body>
976        <fo:region-before region-name="xsl-region-before-odd"
977                          extent="{$region.before.extent}"
978                          display-align="before"/>
979        <fo:region-after region-name="xsl-region-after-odd"
980                         extent="{$region.after.extent}"
981                         display-align="after"/>
982      </fo:simple-page-master>
983
984      <fo:simple-page-master master-name="body-even-draft"
985                             page-width="{$page.width}"
986                             page-height="{$page.height}"
987                             margin-top="{$page.margin.top}"
988                             margin-bottom="{$page.margin.bottom}"
989                             margin-left="{$margin.left.outer}"
990                             margin-right="{$page.margin.inner}">
991        <xsl:if test="$axf.extensions != 0">
992          <xsl:call-template name="axf-page-master-properties">
993            <xsl:with-param name="page.master">body-even-draft</xsl:with-param>
994          </xsl:call-template>
995        </xsl:if>
996        <fo:region-body margin-bottom="{$body.margin.bottom}"
997                        margin-top="{$body.margin.top}"
998                        column-gap="{$column.gap.body}"
999                        column-count="{$column.count.body}">
1000          <xsl:if test="$draft.watermark.image != ''">
1001            <xsl:attribute name="background-image">
1002              <xsl:call-template name="fo-external-image">
1003                <xsl:with-param name="filename" select="$draft.watermark.image"/>
1004              </xsl:call-template>
1005            </xsl:attribute>
1006            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
1007            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
1008            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
1009            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
1010          </xsl:if>
1011        </fo:region-body>
1012        <fo:region-before region-name="xsl-region-before-even"
1013                          extent="{$region.before.extent}"
1014                          display-align="before"/>
1015        <fo:region-after region-name="xsl-region-after-even"
1016                         extent="{$region.after.extent}"
1017                         display-align="after"/>
1018      </fo:simple-page-master>
1019
1020      <!-- draft backmatter pages -->
1021      <fo:simple-page-master master-name="back-first-draft"
1022                             page-width="{$page.width}"
1023                             page-height="{$page.height}"
1024                             margin-top="{$page.margin.top}"
1025                             margin-bottom="{$page.margin.bottom}"
1026                             margin-left="{$margin.left.inner}"
1027                             margin-right="{$page.margin.outer}">
1028        <xsl:if test="$axf.extensions != 0">
1029          <xsl:call-template name="axf-page-master-properties">
1030            <xsl:with-param name="page.master">back-first-draft</xsl:with-param>
1031          </xsl:call-template>
1032        </xsl:if>
1033        <fo:region-body margin-bottom="{$body.margin.bottom}"
1034                        margin-top="{$body.margin.top}"
1035                        column-gap="{$column.gap.back}"
1036                        column-count="{$column.count.back}">
1037          <xsl:if test="$draft.watermark.image != ''">
1038            <xsl:attribute name="background-image">
1039              <xsl:call-template name="fo-external-image">
1040                <xsl:with-param name="filename" select="$draft.watermark.image"/>
1041              </xsl:call-template>
1042            </xsl:attribute>
1043            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
1044            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
1045            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
1046            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
1047          </xsl:if>
1048        </fo:region-body>
1049        <fo:region-before region-name="xsl-region-before-first"
1050                          extent="{$region.before.extent}"
1051                          display-align="before"/>
1052        <fo:region-after region-name="xsl-region-after-first"
1053                         extent="{$region.after.extent}"
1054                         display-align="after"/>
1055      </fo:simple-page-master>
1056
1057      <fo:simple-page-master master-name="back-odd-draft"
1058                             page-width="{$page.width}"
1059                             page-height="{$page.height}"
1060                             margin-top="{$page.margin.top}"
1061                             margin-bottom="{$page.margin.bottom}"
1062                             margin-left="{$margin.left.inner}"
1063                             margin-right="{$page.margin.outer}">
1064        <xsl:if test="$axf.extensions != 0">
1065          <xsl:call-template name="axf-page-master-properties">
1066            <xsl:with-param name="page.master">back-odd-draft</xsl:with-param>
1067          </xsl:call-template>
1068        </xsl:if>
1069        <fo:region-body margin-bottom="{$body.margin.bottom}"
1070                        margin-top="{$body.margin.top}"
1071                        column-gap="{$column.gap.back}"
1072                        column-count="{$column.count.back}">
1073          <xsl:if test="$draft.watermark.image != ''">
1074            <xsl:attribute name="background-image">
1075              <xsl:call-template name="fo-external-image">
1076                <xsl:with-param name="filename" select="$draft.watermark.image"/>
1077              </xsl:call-template>
1078            </xsl:attribute>
1079            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
1080            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
1081            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
1082            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
1083          </xsl:if>
1084        </fo:region-body>
1085        <fo:region-before region-name="xsl-region-before-odd"
1086                          extent="{$region.before.extent}"
1087                          display-align="before"/>
1088        <fo:region-after region-name="xsl-region-after-odd"
1089                         extent="{$region.after.extent}"
1090                         display-align="after"/>
1091      </fo:simple-page-master>
1092
1093      <fo:simple-page-master master-name="back-even-draft"
1094                             page-width="{$page.width}"
1095                             page-height="{$page.height}"
1096                             margin-top="{$page.margin.top}"
1097                             margin-bottom="{$page.margin.bottom}"
1098                             margin-left="{$margin.left.outer}"
1099                             margin-right="{$page.margin.inner}">
1100        <xsl:if test="$axf.extensions != 0">
1101          <xsl:call-template name="axf-page-master-properties">
1102            <xsl:with-param name="page.master">back-even-draft</xsl:with-param>
1103          </xsl:call-template>
1104        </xsl:if>
1105        <fo:region-body margin-bottom="{$body.margin.bottom}"
1106                        margin-top="{$body.margin.top}"
1107                        column-gap="{$column.gap.back}"
1108                        column-count="{$column.count.back}">
1109          <xsl:if test="$draft.watermark.image != ''">
1110            <xsl:attribute name="background-image">
1111              <xsl:call-template name="fo-external-image">
1112                <xsl:with-param name="filename" select="$draft.watermark.image"/>
1113              </xsl:call-template>
1114            </xsl:attribute>
1115            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
1116            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
1117            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
1118            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
1119          </xsl:if>
1120        </fo:region-body>
1121        <fo:region-before region-name="xsl-region-before-even"
1122                          extent="{$region.before.extent}"
1123                          display-align="before"/>
1124        <fo:region-after region-name="xsl-region-after-even"
1125                         extent="{$region.after.extent}"
1126                         display-align="after"/>
1127      </fo:simple-page-master>
1128
1129      <!-- draft index pages -->
1130      <fo:simple-page-master master-name="index-first-draft"
1131                             page-width="{$page.width}"
1132                             page-height="{$page.height}"
1133                             margin-top="{$page.margin.top}"
1134                             margin-bottom="{$page.margin.bottom}"
1135                             margin-left="{$page.margin.inner}"
1136                             margin-right="{$page.margin.outer}">
1137        <xsl:if test="$axf.extensions != 0">
1138          <xsl:call-template name="axf-page-master-properties">
1139            <xsl:with-param name="page.master">index-first-draft</xsl:with-param>
1140          </xsl:call-template>
1141        </xsl:if>
1142        <fo:region-body margin-bottom="{$body.margin.bottom}"
1143                        margin-top="{$body.margin.top}"
1144                        column-gap="{$column.gap.index}"
1145                        column-count="{$column.count.index}">
1146          <xsl:if test="$draft.watermark.image != ''">
1147            <xsl:attribute name="background-image">
1148              <xsl:call-template name="fo-external-image">
1149                <xsl:with-param name="filename" select="$draft.watermark.image"/>
1150              </xsl:call-template>
1151            </xsl:attribute>
1152            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
1153            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
1154            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
1155            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
1156          </xsl:if>
1157        </fo:region-body>
1158        <fo:region-before region-name="xsl-region-before-first"
1159                          extent="{$region.before.extent}"
1160                          display-align="before"/>
1161        <fo:region-after region-name="xsl-region-after-first"
1162                         extent="{$region.after.extent}"
1163                         display-align="after"/>
1164      </fo:simple-page-master>
1165
1166      <fo:simple-page-master master-name="index-odd-draft"
1167                             page-width="{$page.width}"
1168                             page-height="{$page.height}"
1169                             margin-top="{$page.margin.top}"
1170                             margin-bottom="{$page.margin.bottom}"
1171                             margin-left="{$page.margin.inner}"
1172                             margin-right="{$page.margin.outer}">
1173        <xsl:if test="$axf.extensions != 0">
1174          <xsl:call-template name="axf-page-master-properties">
1175            <xsl:with-param name="page.master">index-odd-draft</xsl:with-param>
1176          </xsl:call-template>
1177        </xsl:if>
1178        <fo:region-body margin-bottom="{$body.margin.bottom}"
1179                        margin-top="{$body.margin.top}"
1180                        column-gap="{$column.gap.index}"
1181                        column-count="{$column.count.index}">
1182          <xsl:if test="$draft.watermark.image != ''">
1183            <xsl:attribute name="background-image">
1184              <xsl:call-template name="fo-external-image">
1185                <xsl:with-param name="filename" select="$draft.watermark.image"/>
1186              </xsl:call-template>
1187            </xsl:attribute>
1188            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
1189            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
1190            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
1191            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
1192          </xsl:if>
1193        </fo:region-body>
1194        <fo:region-before region-name="xsl-region-before-odd"
1195                          extent="{$region.before.extent}"
1196                          display-align="before"/>
1197        <fo:region-after region-name="xsl-region-after-odd"
1198                         extent="{$region.after.extent}"
1199                         display-align="after"/>
1200      </fo:simple-page-master>
1201
1202      <fo:simple-page-master master-name="index-even-draft"
1203                             page-width="{$page.width}"
1204                             page-height="{$page.height}"
1205                             margin-top="{$page.margin.top}"
1206                             margin-bottom="{$page.margin.bottom}"
1207                             margin-right="{$page.margin.inner}"
1208                             margin-left="{$page.margin.outer}">
1209        <xsl:if test="$axf.extensions != 0">
1210          <xsl:call-template name="axf-page-master-properties">
1211            <xsl:with-param name="page.master">index-even-draft</xsl:with-param>
1212          </xsl:call-template>
1213        </xsl:if>
1214        <fo:region-body margin-bottom="{$body.margin.bottom}"
1215                        margin-top="{$body.margin.top}"
1216                        column-gap="{$column.gap.index}"
1217                        column-count="{$column.count.index}">
1218          <xsl:if test="$draft.watermark.image != ''">
1219            <xsl:attribute name="background-image">
1220              <xsl:call-template name="fo-external-image">
1221                <xsl:with-param name="filename" select="$draft.watermark.image"/>
1222              </xsl:call-template>
1223            </xsl:attribute>
1224            <xsl:attribute name="background-attachment">fixed</xsl:attribute>
1225            <xsl:attribute name="background-repeat">no-repeat</xsl:attribute>
1226            <xsl:attribute name="background-position-horizontal">center</xsl:attribute>
1227            <xsl:attribute name="background-position-vertical">center</xsl:attribute>
1228          </xsl:if>
1229        </fo:region-body>
1230        <fo:region-before region-name="xsl-region-before-even"
1231                          extent="{$region.before.extent}"
1232                          display-align="before"/>
1233        <fo:region-after region-name="xsl-region-after-even"
1234                         extent="{$region.after.extent}"
1235                         display-align="after"/>
1236      </fo:simple-page-master>
1237    </xsl:if>
1238
1239    <!-- setup for title page(s) -->
1240    <fo:page-sequence-master master-name="titlepage">
1241      <fo:repeatable-page-master-alternatives>
1242        <fo:conditional-page-master-reference master-reference="blank"
1243                                              blank-or-not-blank="blank"/>
1244        <fo:conditional-page-master-reference master-reference="titlepage-first"
1245                                              page-position="first"/>
1246        <fo:conditional-page-master-reference master-reference="titlepage-odd"
1247                                              odd-or-even="odd"/>
1248        <fo:conditional-page-master-reference 
1249                                              odd-or-even="even">
1250          <xsl:attribute name="master-reference">
1251            <xsl:choose>
1252              <xsl:when test="$double.sided != 0">titlepage-even</xsl:when>
1253              <xsl:otherwise>titlepage-odd</xsl:otherwise>
1254            </xsl:choose>
1255          </xsl:attribute>
1256        </fo:conditional-page-master-reference>
1257      </fo:repeatable-page-master-alternatives>
1258    </fo:page-sequence-master>
1259
1260    <!-- setup for lots -->
1261    <fo:page-sequence-master master-name="lot">
1262      <fo:repeatable-page-master-alternatives>
1263        <fo:conditional-page-master-reference master-reference="blank"
1264                                              blank-or-not-blank="blank"/>
1265        <fo:conditional-page-master-reference master-reference="lot-first"
1266                                              page-position="first"/>
1267        <fo:conditional-page-master-reference master-reference="lot-odd"
1268                                              odd-or-even="odd"/>
1269        <fo:conditional-page-master-reference 
1270                                              odd-or-even="even">
1271          <xsl:attribute name="master-reference">
1272            <xsl:choose>
1273              <xsl:when test="$double.sided != 0">lot-even</xsl:when>
1274              <xsl:otherwise>lot-odd</xsl:otherwise>
1275            </xsl:choose>
1276          </xsl:attribute>
1277        </fo:conditional-page-master-reference>
1278      </fo:repeatable-page-master-alternatives>
1279    </fo:page-sequence-master>
1280
1281    <!-- setup front matter -->
1282    <fo:page-sequence-master master-name="front">
1283      <fo:repeatable-page-master-alternatives>
1284        <fo:conditional-page-master-reference master-reference="blank"
1285                                              blank-or-not-blank="blank"/>
1286        <fo:conditional-page-master-reference master-reference="front-first"
1287                                              page-position="first"/>
1288        <fo:conditional-page-master-reference master-reference="front-odd"
1289                                              odd-or-even="odd"/>
1290        <fo:conditional-page-master-reference 
1291                                              odd-or-even="even">
1292          <xsl:attribute name="master-reference">
1293            <xsl:choose>
1294              <xsl:when test="$double.sided != 0">front-even</xsl:when>
1295              <xsl:otherwise>front-odd</xsl:otherwise>
1296            </xsl:choose>
1297          </xsl:attribute>
1298        </fo:conditional-page-master-reference>
1299      </fo:repeatable-page-master-alternatives>
1300    </fo:page-sequence-master>
1301
1302    <!-- setup for body pages -->
1303    <fo:page-sequence-master master-name="body">
1304      <fo:repeatable-page-master-alternatives>
1305        <fo:conditional-page-master-reference master-reference="blank"
1306                                              blank-or-not-blank="blank"/>
1307        <fo:conditional-page-master-reference master-reference="body-first"
1308                                              page-position="first"/>
1309        <fo:conditional-page-master-reference master-reference="body-odd"
1310                                              odd-or-even="odd"/>
1311        <fo:conditional-page-master-reference 
1312                                              odd-or-even="even">
1313          <xsl:attribute name="master-reference">
1314            <xsl:choose>
1315              <xsl:when test="$double.sided != 0">body-even</xsl:when>
1316              <xsl:otherwise>body-odd</xsl:otherwise>
1317            </xsl:choose>
1318          </xsl:attribute>
1319        </fo:conditional-page-master-reference>
1320      </fo:repeatable-page-master-alternatives>
1321    </fo:page-sequence-master>
1322
1323    <!-- setup back matter -->
1324    <fo:page-sequence-master master-name="back">
1325      <fo:repeatable-page-master-alternatives>
1326        <fo:conditional-page-master-reference master-reference="blank"
1327                                              blank-or-not-blank="blank"/>
1328        <fo:conditional-page-master-reference master-reference="back-first"
1329                                              page-position="first"/>
1330        <fo:conditional-page-master-reference master-reference="back-odd"
1331                                              odd-or-even="odd"/>
1332        <fo:conditional-page-master-reference 
1333                                              odd-or-even="even">
1334          <xsl:attribute name="master-reference">
1335            <xsl:choose>
1336              <xsl:when test="$double.sided != 0">back-even</xsl:when>
1337              <xsl:otherwise>back-odd</xsl:otherwise>
1338            </xsl:choose>
1339          </xsl:attribute>
1340        </fo:conditional-page-master-reference>
1341      </fo:repeatable-page-master-alternatives>
1342    </fo:page-sequence-master>
1343
1344    <!-- setup back matter -->
1345    <fo:page-sequence-master master-name="index">
1346      <fo:repeatable-page-master-alternatives>
1347        <fo:conditional-page-master-reference master-reference="blank"
1348                                              blank-or-not-blank="blank"/>
1349        <fo:conditional-page-master-reference master-reference="index-first"
1350                                              page-position="first"/>
1351        <fo:conditional-page-master-reference master-reference="index-odd"
1352                                              odd-or-even="odd"/>
1353        <fo:conditional-page-master-reference 
1354                                              odd-or-even="even">
1355          <xsl:attribute name="master-reference">
1356            <xsl:choose>
1357              <xsl:when test="$double.sided != 0">index-even</xsl:when>
1358              <xsl:otherwise>index-odd</xsl:otherwise>
1359            </xsl:choose>
1360          </xsl:attribute>
1361        </fo:conditional-page-master-reference>
1362      </fo:repeatable-page-master-alternatives>
1363    </fo:page-sequence-master>
1364
1365    <xsl:if test="$draft.mode != 'no'">
1366      <!-- setup for draft title page(s) -->
1367      <fo:page-sequence-master master-name="titlepage-draft">
1368        <fo:repeatable-page-master-alternatives>
1369          <fo:conditional-page-master-reference master-reference="blank-draft"
1370                                                blank-or-not-blank="blank"/>
1371          <fo:conditional-page-master-reference master-reference="titlepage-first-draft"
1372                                                page-position="first"/>
1373          <fo:conditional-page-master-reference master-reference="titlepage-odd-draft"
1374                                                odd-or-even="odd"/>
1375          <fo:conditional-page-master-reference 
1376                                                odd-or-even="even">
1377            <xsl:attribute name="master-reference">
1378              <xsl:choose>
1379                <xsl:when test="$double.sided != 0">titlepage-even-draft</xsl:when>
1380                <xsl:otherwise>titlepage-odd-draft</xsl:otherwise>
1381              </xsl:choose>
1382            </xsl:attribute>
1383          </fo:conditional-page-master-reference>
1384        </fo:repeatable-page-master-alternatives>
1385      </fo:page-sequence-master>
1386
1387      <!-- setup for draft lots -->
1388      <fo:page-sequence-master master-name="lot-draft">
1389        <fo:repeatable-page-master-alternatives>
1390          <fo:conditional-page-master-reference master-reference="blank-draft"
1391                                                blank-or-not-blank="blank"/>
1392          <fo:conditional-page-master-reference master-reference="lot-first-draft"
1393                                                page-position="first"/>
1394          <fo:conditional-page-master-reference master-reference="lot-odd-draft"
1395                                                odd-or-even="odd"/>
1396          <fo:conditional-page-master-reference 
1397                                                odd-or-even="even">
1398            <xsl:attribute name="master-reference">
1399              <xsl:choose>
1400                <xsl:when test="$double.sided != 0">lot-even-draft</xsl:when>
1401                <xsl:otherwise>lot-odd-draft</xsl:otherwise>
1402              </xsl:choose>
1403            </xsl:attribute>
1404          </fo:conditional-page-master-reference>
1405        </fo:repeatable-page-master-alternatives>
1406      </fo:page-sequence-master>
1407
1408      <!-- setup draft front matter -->
1409      <fo:page-sequence-master master-name="front-draft">
1410        <fo:repeatable-page-master-alternatives>
1411          <fo:conditional-page-master-reference master-reference="blank-draft"
1412                                                blank-or-not-blank="blank"/>
1413          <fo:conditional-page-master-reference master-reference="front-first-draft"
1414                                                page-position="first"/>
1415          <fo:conditional-page-master-reference master-reference="front-odd-draft"
1416                                                odd-or-even="odd"/>
1417          <fo:conditional-page-master-reference 
1418                                                odd-or-even="even">
1419            <xsl:attribute name="master-reference">
1420              <xsl:choose>
1421                <xsl:when test="$double.sided != 0">front-even-draft</xsl:when>
1422                <xsl:otherwise>front-odd-draft</xsl:otherwise>
1423              </xsl:choose>
1424            </xsl:attribute>
1425          </fo:conditional-page-master-reference>
1426        </fo:repeatable-page-master-alternatives>
1427      </fo:page-sequence-master>
1428
1429      <!-- setup for draft body pages -->
1430      <fo:page-sequence-master master-name="body-draft">
1431        <fo:repeatable-page-master-alternatives>
1432          <fo:conditional-page-master-reference master-reference="blank-draft"
1433                                                blank-or-not-blank="blank"/>
1434          <fo:conditional-page-master-reference master-reference="body-first-draft"
1435                                                page-position="first"/>
1436          <fo:conditional-page-master-reference master-reference="body-odd-draft"
1437                                                odd-or-even="odd"/>
1438          <fo:conditional-page-master-reference 
1439                                                odd-or-even="even">
1440            <xsl:attribute name="master-reference">
1441              <xsl:choose>
1442                <xsl:when test="$double.sided != 0">body-even-draft</xsl:when>
1443                <xsl:otherwise>body-odd-draft</xsl:otherwise>
1444              </xsl:choose>
1445            </xsl:attribute>
1446          </fo:conditional-page-master-reference>
1447        </fo:repeatable-page-master-alternatives>
1448      </fo:page-sequence-master>
1449
1450      <!-- setup draft back matter -->
1451      <fo:page-sequence-master master-name="back-draft">
1452        <fo:repeatable-page-master-alternatives>
1453          <fo:conditional-page-master-reference master-reference="blank-draft"
1454                                                blank-or-not-blank="blank"/>
1455          <fo:conditional-page-master-reference master-reference="back-first-draft"
1456                                                page-position="first"/>
1457          <fo:conditional-page-master-reference master-reference="back-odd-draft"
1458                                                odd-or-even="odd"/>
1459          <fo:conditional-page-master-reference 
1460                                                odd-or-even="even">
1461            <xsl:attribute name="master-reference">
1462              <xsl:choose>
1463                <xsl:when test="$double.sided != 0">back-even-draft</xsl:when>
1464                <xsl:otherwise>back-odd-draft</xsl:otherwise>
1465              </xsl:choose>
1466            </xsl:attribute>
1467          </fo:conditional-page-master-reference>
1468        </fo:repeatable-page-master-alternatives>
1469      </fo:page-sequence-master>
1470
1471      <!-- setup draft index pages -->
1472      <fo:page-sequence-master master-name="index-draft">
1473        <fo:repeatable-page-master-alternatives>
1474          <fo:conditional-page-master-reference master-reference="blank-draft"
1475                                                blank-or-not-blank="blank"/>
1476          <fo:conditional-page-master-reference master-reference="index-first-draft"
1477                                                page-position="first"/>
1478          <fo:conditional-page-master-reference master-reference="index-odd-draft"
1479                                                odd-or-even="odd"/>
1480          <fo:conditional-page-master-reference 
1481                                                odd-or-even="even">
1482            <xsl:attribute name="master-reference">
1483              <xsl:choose>
1484                <xsl:when test="$double.sided != 0">index-even-draft</xsl:when>
1485                <xsl:otherwise>index-odd-draft</xsl:otherwise>
1486              </xsl:choose>
1487            </xsl:attribute>
1488          </fo:conditional-page-master-reference>
1489        </fo:repeatable-page-master-alternatives>
1490      </fo:page-sequence-master>
1491    </xsl:if>
1492
1493    <xsl:call-template name="user.pagemasters"/>
1494
1495    </fo:layout-master-set>
1496</xsl:template>
1497
1498<!-- ==================================================================== -->
1499
1500<xsl:template name="user.pagemasters"/> <!-- intentionally empty -->
1501
1502<!-- ==================================================================== -->
1503
1504<xsl:template name="select.pagemaster">
1505  <xsl:param name="element" select="local-name(.)"/>
1506  <xsl:param name="pageclass" select="''"/>
1507
1508  <xsl:variable name="pagemaster">
1509    <xsl:choose>
1510      <xsl:when test="$pageclass != ''">
1511        <xsl:value-of select="$pageclass"/>
1512      </xsl:when>
1513      <xsl:when test="$pageclass = 'lot'">lot</xsl:when>
1514      <xsl:when test="$element = 'dedication'">front</xsl:when>
1515      <xsl:when test="$element = 'preface'">front</xsl:when>
1516      <xsl:when test="$element = 'appendix'">back</xsl:when>
1517      <xsl:when test="$element = 'glossary'">back</xsl:when>
1518      <xsl:when test="$element = 'bibliography'">back</xsl:when>
1519      <xsl:when test="$element = 'index'">index</xsl:when>
1520      <xsl:when test="$element = 'colophon'">back</xsl:when>
1521      <xsl:otherwise>body</xsl:otherwise>
1522    </xsl:choose>
1523
1524    <xsl:choose>
1525      <xsl:when test="$draft.mode = 'yes'">
1526        <xsl:text>-draft</xsl:text>
1527      </xsl:when>
1528      <xsl:when test="$draft.mode = 'no'">
1529        <!-- nop -->
1530      </xsl:when>
1531      <xsl:when test="ancestor-or-self::*[@status][1]/@status = 'draft'">
1532        <xsl:text>-draft</xsl:text>
1533      </xsl:when>
1534      <xsl:otherwise>
1535        <!-- nop -->
1536      </xsl:otherwise>
1537    </xsl:choose>
1538  </xsl:variable>
1539
1540  <xsl:call-template name="select.user.pagemaster">
1541    <xsl:with-param name="element" select="$element"/>
1542    <xsl:with-param name="pageclass" select="$pageclass"/>
1543    <xsl:with-param name="default-pagemaster" select="$pagemaster"/>
1544  </xsl:call-template>
1545</xsl:template>
1546
1547<xsl:template name="select.user.pagemaster">
1548  <xsl:param name="element"/>
1549  <xsl:param name="pageclass"/>
1550  <xsl:param name="default-pagemaster"/>
1551
1552  <!-- by default, return the default. But if you've created your own
1553       pagemasters in user.pagemasters, you might want to select one here. -->
1554  <xsl:value-of select="$default-pagemaster"/>
1555</xsl:template>
1556
1557<!-- ==================================================================== -->
1558
1559<xsl:template name="head.sep.rule">
1560  <xsl:param name="pageclass"/>
1561  <xsl:param name="sequence"/>
1562  <xsl:param name="gentext-key"/>
1563
1564  <xsl:if test="$header.rule != 0">
1565    <xsl:attribute name="border-bottom-width">0.5pt</xsl:attribute>
1566    <xsl:attribute name="border-bottom-style">solid</xsl:attribute>
1567    <xsl:attribute name="border-bottom-color">black</xsl:attribute>
1568  </xsl:if>
1569</xsl:template>
1570
1571<xsl:template name="foot.sep.rule">
1572  <xsl:param name="pageclass"/>
1573  <xsl:param name="sequence"/>
1574  <xsl:param name="gentext-key"/>
1575
1576  <xsl:if test="$footer.rule != 0">
1577    <xsl:attribute name="border-top-width">0.5pt</xsl:attribute>
1578    <xsl:attribute name="border-top-style">solid</xsl:attribute>
1579    <xsl:attribute name="border-top-color">black</xsl:attribute>
1580  </xsl:if>
1581</xsl:template>
1582
1583<!-- ==================================================================== -->
1584
1585<xsl:template match="*" mode="running.head.mode">
1586  <xsl:param name="master-reference" select="'unknown'"/>
1587  <xsl:param name="gentext-key" select="local-name(.)"/>
1588
1589  <!-- remove -draft from reference -->
1590  <xsl:variable name="pageclass">
1591    <xsl:choose>
1592      <xsl:when test="contains($master-reference, '-draft')">
1593        <xsl:value-of select="substring-before($master-reference, '-draft')"/>
1594      </xsl:when>
1595      <xsl:otherwise>
1596        <xsl:value-of select="$master-reference"/>
1597      </xsl:otherwise>
1598    </xsl:choose>
1599  </xsl:variable>
1600
1601  <fo:static-content flow-name="xsl-region-before-first">
1602    <fo:block xsl:use-attribute-sets="header.content.properties">
1603      <xsl:call-template name="header.table">
1604        <xsl:with-param name="pageclass" select="$pageclass"/>
1605        <xsl:with-param name="sequence" select="'first'"/>
1606        <xsl:with-param name="gentext-key" select="$gentext-key"/>
1607      </xsl:call-template>
1608    </fo:block>
1609  </fo:static-content>
1610
1611  <fo:static-content flow-name="xsl-region-before-odd">
1612    <fo:block xsl:use-attribute-sets="header.content.properties">
1613      <xsl:call-template name="header.table">
1614        <xsl:with-param name="pageclass" select="$pageclass"/>
1615        <xsl:with-param name="sequence" select="'odd'"/>
1616        <xsl:with-param name="gentext-key" select="$gentext-key"/>
1617      </xsl:call-template>
1618    </fo:block>
1619  </fo:static-content>
1620
1621  <fo:static-content flow-name="xsl-region-before-even">
1622    <fo:block xsl:use-attribute-sets="header.content.properties">
1623      <xsl:call-template name="header.table">
1624        <xsl:with-param name="pageclass" select="$pageclass"/>
1625        <xsl:with-param name="sequence" select="'even'"/>
1626        <xsl:with-param name="gentext-key" select="$gentext-key"/>
1627      </xsl:call-template>
1628    </fo:block>
1629  </fo:static-content>
1630
1631  <fo:static-content flow-name="xsl-region-before-blank">
1632    <fo:block xsl:use-attribute-sets="header.content.properties">
1633      <xsl:call-template name="header.table">
1634        <xsl:with-param name="pageclass" select="$pageclass"/>
1635        <xsl:with-param name="sequence" select="'blank'"/>
1636        <xsl:with-param name="gentext-key" select="$gentext-key"/>
1637      </xsl:call-template>
1638    </fo:block>
1639  </fo:static-content>
1640
1641  <xsl:call-template name="footnote-separator"/>
1642
1643  <xsl:if test="$fop.extensions = 0 and $fop1.extensions = 0">
1644    <xsl:call-template name="blank.page.content"/>
1645  </xsl:if>
1646</xsl:template>
1647
1648<xsl:template name="footnote-separator">
1649  <fo:static-content flow-name="xsl-footnote-separator">
1650    <fo:block>
1651      <fo:leader xsl:use-attribute-sets="footnote.sep.leader.properties"/>
1652    </fo:block>
1653  </fo:static-content>
1654</xsl:template>
1655
1656<xsl:template name="blank.page.content">
1657  <fo:static-content flow-name="blank-body">
1658    <fo:block text-align="center"/>
1659  </fo:static-content>
1660</xsl:template>
1661
1662<xsl:template name="header.table">
1663  <xsl:param name="pageclass" select="''"/>
1664  <xsl:param name="sequence" select="''"/>
1665  <xsl:param name="gentext-key" select="''"/>
1666
1667  <!-- default is a single table style for all headers -->
1668  <!-- Customize it for different page classes or sequence location -->
1669
1670  <xsl:choose>
1671      <xsl:when test="$pageclass = 'index'">
1672          <xsl:attribute name="margin-left">0pt</xsl:attribute>
1673      </xsl:when>
1674  </xsl:choose>
1675
1676  <xsl:variable name="column1">
1677    <xsl:choose>
1678      <xsl:when test="$double.sided = 0">1</xsl:when>
1679      <xsl:when test="$sequence = 'first' or $sequence = 'odd'">1</xsl:when>
1680      <xsl:otherwise>3</xsl:otherwise>
1681    </xsl:choose>
1682  </xsl:variable>
1683
1684  <xsl:variable name="column3">
1685    <xsl:choose>
1686      <xsl:when test="$double.sided = 0">3</xsl:when>
1687      <xsl:when test="$sequence = 'first' or $sequence = 'odd'">3</xsl:when>
1688      <xsl:otherwise>1</xsl:otherwise>
1689    </xsl:choose>
1690  </xsl:variable>
1691
1692  <xsl:variable name="candidate">
1693    <fo:table xsl:use-attribute-sets="header.table.properties">
1694      <xsl:call-template name="head.sep.rule">
1695        <xsl:with-param name="pageclass" select="$pageclass"/>
1696        <xsl:with-param name="sequence" select="$sequence"/>
1697        <xsl:with-param name="gentext-key" select="$gentext-key"/>
1698      </xsl:call-template>
1699
1700      <fo:table-column column-number="1">
1701        <xsl:attribute name="column-width">
1702          <xsl:text>proportional-column-width(</xsl:text>
1703          <xsl:call-template name="header.footer.width">
1704            <xsl:with-param name="location">header</xsl:with-param>
1705            <xsl:with-param name="position" select="$column1"/>
1706          </xsl:call-template>
1707          <xsl:text>)</xsl:text>
1708        </xsl:attribute>
1709      </fo:table-column>
1710      <fo:table-column column-number="2">
1711        <xsl:attribute name="column-width">
1712          <xsl:text>proportional-column-width(</xsl:text>
1713          <xsl:call-template name="header.footer.width">
1714            <xsl:with-param name="location">header</xsl:with-param>
1715            <xsl:with-param name="position" select="2"/>
1716          </xsl:call-template>
1717          <xsl:text>)</xsl:text>
1718        </xsl:attribute>
1719      </fo:table-column>
1720      <fo:table-column column-number="3">
1721        <xsl:attribute name="column-width">
1722          <xsl:text>proportional-column-width(</xsl:text>
1723          <xsl:call-template name="header.footer.width">
1724            <xsl:with-param name="location">header</xsl:with-param>
1725            <xsl:with-param name="position" select="$column3"/>
1726          </xsl:call-template>
1727          <xsl:text>)</xsl:text>
1728        </xsl:attribute>
1729      </fo:table-column>
1730
1731      <fo:table-body>
1732        <fo:table-row>
1733          <xsl:attribute name="block-progression-dimension.minimum">
1734            <xsl:value-of select="$header.table.height"/>
1735          </xsl:attribute>
1736          <fo:table-cell text-align="left"
1737                         display-align="before">
1738            <xsl:if test="$fop.extensions = 0">
1739              <xsl:attribute name="relative-align">baseline</xsl:attribute>
1740            </xsl:if>
1741            <fo:block>
1742              <xsl:call-template name="header.content">
1743                <xsl:with-param name="pageclass" select="$pageclass"/>
1744                <xsl:with-param name="sequence" select="$sequence"/>
1745                <xsl:with-param name="position" select="'left'"/>
1746                <xsl:with-param name="gentext-key" select="$gentext-key"/>
1747              </xsl:call-template>
1748            </fo:block>
1749          </fo:table-cell>
1750          <fo:table-cell text-align="center"
1751                         display-align="before">
1752            <xsl:if test="$fop.extensions = 0">
1753              <xsl:attribute name="relative-align">baseline</xsl:attribute>
1754            </xsl:if>
1755            <fo:block>
1756              <xsl:call-template name="header.content">
1757                <xsl:with-param name="pageclass" select="$pageclass"/>
1758                <xsl:with-param name="sequence" select="$sequence"/>
1759                <xsl:with-param name="position" select="'center'"/>
1760                <xsl:with-param name="gentext-key" select="$gentext-key"/>
1761              </xsl:call-template>
1762            </fo:block>
1763          </fo:table-cell>
1764          <fo:table-cell text-align="right"
1765                         display-align="before">
1766            <xsl:if test="$fop.extensions = 0">
1767              <xsl:attribute name="relative-align">baseline</xsl:attribute>
1768            </xsl:if>
1769            <fo:block>
1770              <xsl:call-template name="header.content">
1771                <xsl:with-param name="pageclass" select="$pageclass"/>
1772                <xsl:with-param name="sequence" select="$sequence"/>
1773                <xsl:with-param name="position" select="'right'"/>
1774                <xsl:with-param name="gentext-key" select="$gentext-key"/>
1775              </xsl:call-template>
1776            </fo:block>
1777          </fo:table-cell>
1778        </fo:table-row>
1779      </fo:table-body>
1780    </fo:table>
1781  </xsl:variable>
1782
1783  <!-- Really output a header? -->
1784  <xsl:choose>
1785    <xsl:when test="$pageclass = 'titlepage' and $gentext-key = 'book'
1786                    and $sequence='first'">
1787      <!-- no, book titlepages have no headers at all -->
1788    </xsl:when>
1789    <xsl:when test="$sequence = 'blank' and $headers.on.blank.pages = 0">
1790      <!-- no output -->
1791    </xsl:when>
1792    <xsl:otherwise>
1793      <xsl:copy-of select="$candidate"/>
1794    </xsl:otherwise>
1795  </xsl:choose>
1796</xsl:template>
1797
1798<xsl:template name="header.content">
1799  <xsl:param name="pageclass" select="''"/>
1800  <xsl:param name="sequence" select="''"/>
1801  <xsl:param name="position" select="''"/>
1802  <xsl:param name="gentext-key" select="''"/>
1803
1804<!--
1805  <fo:block>
1806    <xsl:value-of select="$pageclass"/>
1807    <xsl:text>, </xsl:text>
1808    <xsl:value-of select="$sequence"/>
1809    <xsl:text>, </xsl:text>
1810    <xsl:value-of select="$position"/>
1811    <xsl:text>, </xsl:text>
1812    <xsl:value-of select="$gentext-key"/>
1813  </fo:block>
1814-->
1815
1816  <fo:block>
1817
1818    <!-- sequence can be odd, even, first, blank -->
1819    <!-- position can be left, center, right -->
1820    <xsl:choose>
1821      <xsl:when test="$sequence = 'blank'">
1822        <!-- nothing -->
1823      </xsl:when>
1824
1825      <xsl:when test="$position='left'">
1826        <!-- Same for odd, even, empty, and blank sequences -->
1827        <xsl:call-template name="draft.text"/>
1828      </xsl:when>
1829
1830      <xsl:when test="($sequence='odd' or $sequence='even') and $position='center'">
1831        <xsl:if test="$pageclass != 'titlepage'">
1832          <xsl:choose>
1833            <xsl:when test="ancestor::book and ($double.sided != 0)">
1834              <fo:retrieve-marker retrieve-class-name="section.head.marker"
1835                                  retrieve-position="first-including-carryover"
1836                                  retrieve-boundary="page-sequence"/>
1837            </xsl:when>
1838            <xsl:otherwise>
1839              <xsl:apply-templates select="." mode="titleabbrev.markup"/>
1840            </xsl:otherwise>
1841          </xsl:choose>
1842        </xsl:if>
1843      </xsl:when>
1844
1845      <xsl:when test="$position='center'">
1846        <!-- nothing for empty and blank sequences -->
1847      </xsl:when>
1848
1849      <xsl:when test="$position='right'">
1850        <!-- Same for odd, even, empty, and blank sequences -->
1851        <xsl:call-template name="draft.text"/>
1852      </xsl:when>
1853
1854      <xsl:when test="$sequence = 'first'">
1855        <!-- nothing for first pages -->
1856      </xsl:when>
1857
1858      <xsl:when test="$sequence = 'blank'">
1859        <!-- nothing for blank pages -->
1860      </xsl:when>
1861    </xsl:choose>
1862  </fo:block>
1863</xsl:template>
1864
1865<xsl:template name="header.footer.width">
1866  <xsl:param name="location" select="'header'"/>
1867  <xsl:param name="position" select="1"/>
1868
1869  <xsl:variable name="width.set">
1870    <xsl:choose>
1871      <xsl:when test="$location = 'header'">
1872        <xsl:value-of select="normalize-space($header.column.widths)"/>
1873      </xsl:when>
1874      <xsl:otherwise>
1875        <xsl:value-of select="normalize-space($footer.column.widths)"/>
1876      </xsl:otherwise>
1877    </xsl:choose>
1878  </xsl:variable>
1879
1880
1881  <xsl:variable name="width">
1882    <xsl:choose>
1883      <xsl:when test="$position = 1">
1884        <xsl:value-of select="substring-before($width.set, ' ')"/>
1885      </xsl:when>
1886      <xsl:when test="$position = 2">
1887        <xsl:value-of select="substring-before(substring-after($width.set, ' '), ' ')"/>
1888      </xsl:when>
1889      <xsl:otherwise>
1890        <xsl:value-of select="substring-after(substring-after($width.set, ' '), ' ')"/>
1891      </xsl:otherwise>
1892    </xsl:choose>
1893  </xsl:variable>
1894
1895  <!-- Make sure it is a number -->
1896  <xsl:choose>
1897    <xsl:when test = "$width = number($width)">
1898      <xsl:value-of select="$width"/>
1899    </xsl:when>
1900    <xsl:otherwise>
1901      <xsl:message>Error: value in <xsl:value-of select="$location"/>.column.widths at position <xsl:value-of select="$position"/> is not a number.</xsl:message>
1902      <xsl:text>1</xsl:text>
1903    </xsl:otherwise>
1904  </xsl:choose>
1905</xsl:template>
1906
1907<xsl:template name="draft.text">
1908  <xsl:choose>
1909    <xsl:when test="$draft.mode = 'yes'">
1910      <xsl:call-template name="gentext">
1911        <xsl:with-param name="key" select="'Draft'"/>
1912      </xsl:call-template>
1913    </xsl:when>
1914    <xsl:when test="$draft.mode = 'no'">
1915      <!-- nop -->
1916    </xsl:when>
1917    <xsl:when test="ancestor-or-self::*[@status][1]/@status = 'draft'">
1918      <xsl:call-template name="gentext">
1919        <xsl:with-param name="key" select="'Draft'"/>
1920      </xsl:call-template>
1921    </xsl:when>
1922    <xsl:otherwise>
1923      <!-- nop -->
1924    </xsl:otherwise>
1925  </xsl:choose>
1926</xsl:template>
1927
1928<!-- ==================================================================== -->
1929
1930<xsl:template match="*" mode="running.foot.mode">
1931  <xsl:param name="master-reference" select="'unknown'"/>
1932  <xsl:param name="gentext-key" select="local-name(.)"/>
1933
1934  <!-- remove -draft from reference -->
1935  <xsl:variable name="pageclass">
1936    <xsl:choose>
1937      <xsl:when test="contains($master-reference, '-draft')">
1938        <xsl:value-of select="substring-before($master-reference, '-draft')"/>
1939      </xsl:when>
1940      <xsl:otherwise>
1941        <xsl:value-of select="$master-reference"/>
1942      </xsl:otherwise>
1943    </xsl:choose>
1944  </xsl:variable>
1945
1946  <fo:static-content flow-name="xsl-region-after-first">
1947    <fo:block xsl:use-attribute-sets="footer.content.properties">
1948      <xsl:call-template name="footer.table">
1949        <xsl:with-param name="pageclass" select="$pageclass"/>
1950        <xsl:with-param name="sequence" select="'first'"/>
1951        <xsl:with-param name="gentext-key" select="$gentext-key"/>
1952      </xsl:call-template>
1953    </fo:block>
1954  </fo:static-content>
1955
1956  <fo:static-content flow-name="xsl-region-after-odd">
1957    <fo:block xsl:use-attribute-sets="footer.content.properties">
1958      <xsl:call-template name="footer.table">
1959        <xsl:with-param name="pageclass" select="$pageclass"/>
1960        <xsl:with-param name="sequence" select="'odd'"/>
1961        <xsl:with-param name="gentext-key" select="$gentext-key"/>
1962      </xsl:call-template>
1963    </fo:block>
1964  </fo:static-content>
1965
1966  <fo:static-content flow-name="xsl-region-after-even">
1967    <fo:block xsl:use-attribute-sets="footer.content.properties">
1968      <xsl:call-template name="footer.table">
1969        <xsl:with-param name="pageclass" select="$pageclass"/>
1970        <xsl:with-param name="sequence" select="'even'"/>
1971        <xsl:with-param name="gentext-key" select="$gentext-key"/>
1972      </xsl:call-template>
1973    </fo:block>
1974  </fo:static-content>
1975
1976  <fo:static-content flow-name="xsl-region-after-blank">
1977    <fo:block xsl:use-attribute-sets="footer.content.properties">
1978      <xsl:call-template name="footer.table">
1979        <xsl:with-param name="pageclass" select="$pageclass"/>
1980        <xsl:with-param name="sequence" select="'blank'"/>
1981        <xsl:with-param name="gentext-key" select="$gentext-key"/>
1982      </xsl:call-template>
1983    </fo:block>
1984  </fo:static-content>
1985</xsl:template>
1986
1987<xsl:template name="footer.table">
1988  <xsl:param name="pageclass" select="''"/>
1989  <xsl:param name="sequence" select="''"/>
1990  <xsl:param name="gentext-key" select="''"/>
1991
1992  <!-- default is a single table style for all footers -->
1993  <!-- Customize it for different page classes or sequence location -->
1994
1995  <xsl:choose>
1996      <xsl:when test="$pageclass = 'index'">
1997          <xsl:attribute name="margin-left">0pt</xsl:attribute>
1998      </xsl:when>
1999  </xsl:choose>
2000
2001  <xsl:variable name="column1">
2002    <xsl:choose>
2003      <xsl:when test="$double.sided = 0">1</xsl:when>
2004      <xsl:when test="$sequence = 'first' or $sequence = 'odd'">1</xsl:when>
2005      <xsl:otherwise>3</xsl:otherwise>
2006    </xsl:choose>
2007  </xsl:variable>
2008
2009  <xsl:variable name="column3">
2010    <xsl:choose>
2011      <xsl:when test="$double.sided = 0">3</xsl:when>
2012      <xsl:when test="$sequence = 'first' or $sequence = 'odd'">3</xsl:when>
2013      <xsl:otherwise>1</xsl:otherwise>
2014    </xsl:choose>
2015  </xsl:variable>
2016
2017  <xsl:variable name="candidate">
2018    <fo:table xsl:use-attribute-sets="footer.table.properties">
2019      <xsl:call-template name="foot.sep.rule">
2020        <xsl:with-param name="pageclass" select="$pageclass"/>
2021        <xsl:with-param name="sequence" select="$sequence"/>
2022        <xsl:with-param name="gentext-key" select="$gentext-key"/>
2023      </xsl:call-template>
2024      <fo:table-column column-number="1">
2025        <xsl:attribute name="column-width">
2026          <xsl:text>proportional-column-width(</xsl:text>
2027          <xsl:call-template name="header.footer.width">
2028            <xsl:with-param name="location">footer</xsl:with-param>
2029            <xsl:with-param name="position" select="$column1"/>
2030          </xsl:call-template>
2031          <xsl:text>)</xsl:text>
2032        </xsl:attribute>
2033      </fo:table-column>
2034      <fo:table-column column-number="2">
2035        <xsl:attribute name="column-width">
2036          <xsl:text>proportional-column-width(</xsl:text>
2037          <xsl:call-template name="header.footer.width">
2038            <xsl:with-param name="location">footer</xsl:with-param>
2039            <xsl:with-param name="position" select="2"/>
2040          </xsl:call-template>
2041          <xsl:text>)</xsl:text>
2042        </xsl:attribute>
2043      </fo:table-column>
2044      <fo:table-column column-number="3">
2045        <xsl:attribute name="column-width">
2046          <xsl:text>proportional-column-width(</xsl:text>
2047          <xsl:call-template name="header.footer.width">
2048            <xsl:with-param name="location">footer</xsl:with-param>
2049            <xsl:with-param name="position" select="$column3"/>
2050          </xsl:call-template>
2051          <xsl:text>)</xsl:text>
2052        </xsl:attribute>
2053      </fo:table-column>
2054
2055      <fo:table-body>
2056        <fo:table-row>
2057          <xsl:attribute name="block-progression-dimension.minimum">
2058            <xsl:value-of select="$footer.table.height"/>
2059          </xsl:attribute>
2060          <fo:table-cell text-align="left"
2061                         display-align="after">
2062            <xsl:if test="$fop.extensions = 0">
2063              <xsl:attribute name="relative-align">baseline</xsl:attribute>
2064            </xsl:if>
2065            <fo:block>
2066              <xsl:call-template name="footer.content">
2067                <xsl:with-param name="pageclass" select="$pageclass"/>
2068                <xsl:with-param name="sequence" select="$sequence"/>
2069                <xsl:with-param name="position" select="'left'"/>
2070                <xsl:with-param name="gentext-key" select="$gentext-key"/>
2071              </xsl:call-template>
2072            </fo:block>
2073          </fo:table-cell>
2074          <fo:table-cell text-align="center"
2075                         display-align="after">
2076            <xsl:if test="$fop.extensions = 0">
2077              <xsl:attribute name="relative-align">baseline</xsl:attribute>
2078            </xsl:if>
2079            <fo:block>
2080              <xsl:call-template name="footer.content">
2081                <xsl:with-param name="pageclass" select="$pageclass"/>
2082                <xsl:with-param name="sequence" select="$sequence"/>
2083                <xsl:with-param name="position" select="'center'"/>
2084                <xsl:with-param name="gentext-key" select="$gentext-key"/>
2085              </xsl:call-template>
2086            </fo:block>
2087          </fo:table-cell>
2088          <fo:table-cell text-align="right"
2089                         display-align="after">
2090            <xsl:if test="$fop.extensions = 0">
2091              <xsl:attribute name="relative-align">baseline</xsl:attribute>
2092            </xsl:if>
2093            <fo:block>
2094              <xsl:call-template name="footer.content">
2095                <xsl:with-param name="pageclass" select="$pageclass"/>
2096                <xsl:with-param name="sequence" select="$sequence"/>
2097                <xsl:with-param name="position" select="'right'"/>
2098                <xsl:with-param name="gentext-key" select="$gentext-key"/>
2099              </xsl:call-template>
2100            </fo:block>
2101          </fo:table-cell>
2102        </fo:table-row>
2103      </fo:table-body>
2104    </fo:table>
2105  </xsl:variable>
2106
2107  <!-- Really output a footer? -->
2108  <xsl:choose>
2109    <xsl:when test="$pageclass='titlepage' and $gentext-key='book'
2110                    and $sequence='first'">
2111      <!-- no, book titlepages have no footers at all -->
2112    </xsl:when>
2113    <xsl:when test="$sequence = 'blank' and $footers.on.blank.pages = 0">
2114      <!-- no output -->
2115    </xsl:when>
2116    <xsl:otherwise>
2117      <xsl:copy-of select="$candidate"/>
2118    </xsl:otherwise>
2119  </xsl:choose>
2120</xsl:template>
2121
2122<xsl:template name="footer.content">
2123  <xsl:param name="pageclass" select="''"/>
2124  <xsl:param name="sequence" select="''"/>
2125  <xsl:param name="position" select="''"/>
2126  <xsl:param name="gentext-key" select="''"/>
2127
2128<!--
2129  <fo:block>
2130    <xsl:value-of select="$pageclass"/>
2131    <xsl:text>, </xsl:text>
2132    <xsl:value-of select="$sequence"/>
2133    <xsl:text>, </xsl:text>
2134    <xsl:value-of select="$position"/>
2135    <xsl:text>, </xsl:text>
2136    <xsl:value-of select="$gentext-key"/>
2137  </fo:block>
2138-->
2139
2140  <fo:block>
2141    <!-- pageclass can be front, body, back -->
2142    <!-- sequence can be odd, even, first, blank -->
2143    <!-- position can be left, center, right -->
2144    <xsl:choose>
2145      <xsl:when test="$pageclass = 'titlepage'">
2146        <!-- nop; no footer on title pages -->
2147      </xsl:when>
2148
2149      <xsl:when test="$double.sided != 0 and $sequence = 'even'
2150                      and $position='left'">
2151        <fo:page-number/>
2152      </xsl:when>
2153
2154      <xsl:when test="$double.sided != 0 and ($sequence = 'odd' or $sequence = 'first')
2155                      and $position='right'">
2156        <fo:page-number/>
2157      </xsl:when>
2158
2159      <xsl:when test="$double.sided = 0 and $position='center'">
2160        <fo:page-number/>
2161      </xsl:when>
2162
2163      <xsl:when test="$sequence='blank'">
2164        <xsl:choose>
2165          <xsl:when test="$double.sided != 0 and $position = 'left'">
2166            <fo:page-number/>
2167          </xsl:when>
2168          <xsl:when test="$double.sided = 0 and $position = 'center'">
2169            <fo:page-number/>
2170          </xsl:when>
2171          <xsl:otherwise>
2172            <!-- nop -->
2173          </xsl:otherwise>
2174        </xsl:choose>
2175      </xsl:when>
2176
2177
2178      <xsl:otherwise>
2179        <!-- nop -->
2180      </xsl:otherwise>
2181    </xsl:choose>
2182  </fo:block>
2183</xsl:template>
2184
2185<!-- ==================================================================== -->
2186
2187<xsl:template name="page.number.format">
2188  <xsl:param name="element" select="local-name(.)"/>
2189  <xsl:param name="master-reference" select="''"/>
2190
2191  <xsl:choose>
2192    <xsl:when test="$element = 'toc' and self::book">i</xsl:when>
2193    <xsl:when test="$element = 'preface'">i</xsl:when>
2194    <xsl:when test="$element = 'dedication'">i</xsl:when>
2195    <xsl:otherwise>1</xsl:otherwise>
2196  </xsl:choose>
2197</xsl:template>
2198
2199<xsl:template name="initial.page.number">
2200  <xsl:param name="element" select="local-name(.)"/>
2201  <xsl:param name="master-reference" select="''"/>
2202
2203  <!-- Select the first content that the stylesheet places
2204       after the TOC -->
2205  <xsl:variable name="first.book.content" 
2206                select="ancestor::book/*[
2207                          not(self::title or
2208                              self::subtitle or
2209                              self::titleabbrev or
2210                              self::bookinfo or
2211                              self::info or
2212                              self::dedication or
2213                              self::preface or
2214                              self::toc or
2215                              self::lot)][1]"/>
2216  <xsl:choose>
2217    <!-- double-sided output -->
2218    <xsl:when test="$double.sided != 0">
2219      <xsl:choose>
2220        <xsl:when test="$element = 'toc'">auto-odd</xsl:when>
2221        <xsl:when test="$element = 'book'">1</xsl:when>
2222        <!-- preface typically continues TOC roman numerals -->
2223        <!-- Change page.number.format if not -->
2224        <xsl:when test="$element = 'preface'">auto-odd</xsl:when>
2225        <xsl:when test="($element = 'dedication' or $element = 'article')
2226                    and not(preceding::chapter
2227                            or preceding::preface
2228                            or preceding::appendix
2229                            or preceding::article
2230                            or preceding::dedication
2231                            or parent::part
2232                            or parent::reference)">1</xsl:when>
2233        <xsl:when test="generate-id($first.book.content) =
2234                        generate-id(.)">1</xsl:when>
2235        <xsl:otherwise>auto-odd</xsl:otherwise>
2236      </xsl:choose>
2237    </xsl:when>
2238
2239    <!-- single-sided output -->
2240    <xsl:otherwise>
2241      <xsl:choose>
2242        <xsl:when test="$element = 'toc'">auto</xsl:when>
2243        <xsl:when test="$element = 'book'">1</xsl:when>
2244        <xsl:when test="$element = 'preface'">auto</xsl:when>
2245       <xsl:when test="($element = 'dedication' or $element = 'article') and
2246                        not(preceding::chapter
2247                            or preceding::preface
2248                            or preceding::appendix
2249                            or preceding::article
2250                            or preceding::dedication
2251                            or parent::part
2252                            or parent::reference)">1</xsl:when>
2253        <xsl:when test="generate-id($first.book.content) =
2254                        generate-id(.)">1</xsl:when>
2255        <xsl:otherwise>auto</xsl:otherwise>
2256      </xsl:choose>
2257    </xsl:otherwise>
2258  </xsl:choose>
2259</xsl:template>
2260
2261<xsl:template name="force.page.count">
2262  <xsl:param name="element" select="local-name(.)"/>
2263  <xsl:param name="master-reference" select="''"/>
2264
2265  <xsl:choose>
2266    <!-- double-sided output -->
2267    <xsl:when test="$double.sided != 0">end-on-even</xsl:when>
2268    <!-- single-sided output -->
2269    <xsl:otherwise>no-force</xsl:otherwise>
2270  </xsl:choose>
2271</xsl:template>
2272
2273<xsl:template name="set.flow.properties">
2274  <xsl:param name="element" select="local-name(.)"/>
2275  <xsl:param name="master-reference" select="''"/>
2276
2277  <!-- This template is called after each <fo:flow> starts. -->
2278  <!-- Customize this template to set attributes on fo:flow -->
2279
2280  <!-- remove -draft from reference -->
2281  <xsl:variable name="pageclass">
2282    <xsl:choose>
2283      <xsl:when test="contains($master-reference, '-draft')">
2284        <xsl:value-of select="substring-before($master-reference, '-draft')"/>
2285      </xsl:when>
2286      <xsl:otherwise>
2287        <xsl:value-of select="$master-reference"/>
2288      </xsl:otherwise>
2289    </xsl:choose>
2290  </xsl:variable>
2291
2292  <xsl:choose>
2293    <xsl:when test="$fop.extensions != 0 or $passivetex.extensions != 0">
2294      <!-- body.start.indent does not work well with these processors -->
2295    </xsl:when>
2296    <xsl:when test="starts-with($pageclass, 'body') or
2297                    starts-with($pageclass, 'lot') or
2298                    starts-with($pageclass, 'front') or
2299                    $element = 'preface' or
2300                    (starts-with($pageclass, 'back') and
2301                    $element = 'appendix')">
2302      <xsl:attribute name="start-indent">
2303        <xsl:value-of select="$body.start.indent"/>
2304      </xsl:attribute>
2305      <xsl:attribute name="end-indent">
2306        <xsl:value-of select="$body.end.indent"/>
2307      </xsl:attribute>
2308    </xsl:when>
2309  </xsl:choose>
2310
2311</xsl:template>
2312<!-- ==================================================================== -->
2313
2314</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.