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