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