root/docs/docbook-xsl/fo/division.xsl

Revision 23dea7e00df87480acb58bb3398283c2bb227949, 37.1 kB (checked in by Theo Schlossnagle <jesus@omniti.com>, 7 years ago)

pull docs into master

  • Property mode set to 100644
Line 
1 <?xml version='1.0'?>
2 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
3                 xmlns:fo="http://www.w3.org/1999/XSL/Format"
4                 xmlns:axf="http://www.antennahouse.com/names/XSL/Extensions"
5                 version='1.0'>
6
7 <!-- ********************************************************************
8      $Id: division.xsl,v 1.28 2005/04/12 18:44:04 bobstayton Exp $
9      ********************************************************************
10
11      This file is part of the XSL DocBook Stylesheet distribution.
12      See ../README or http://nwalsh.com/docbook/xsl/ for copyright
13      and other information.
14
15      ******************************************************************** -->
16
17 <!-- ==================================================================== -->
18
19 <xsl:template name="division.title">
20   <xsl:param name="node" select="."/>
21   <xsl:variable name="id">
22     <xsl:call-template name="object.id">
23       <xsl:with-param name="object" select="$node"/>
24     </xsl:call-template>
25   </xsl:variable>
26   <xsl:variable name="title">
27     <xsl:apply-templates select="$node" mode="object.title.markup"/>
28   </xsl:variable>
29
30   <xsl:if test="$passivetex.extensions != 0">
31     <fotex:bookmark xmlns:fotex="http://www.tug.org/fotex"
32                     fotex-bookmark-level="1"
33                     fotex-bookmark-label="{$id}">
34       <xsl:value-of select="$title"/>
35     </fotex:bookmark>
36   </xsl:if>
37
38   <fo:block keep-with-next.within-column="always"
39             hyphenate="false">
40     <xsl:if test="$axf.extensions != 0">
41       <xsl:attribute name="axf:outline-level">
42         <xsl:choose>
43           <xsl:when test="count($node/ancestor::*) > 0">
44             <xsl:value-of select="count($node/ancestor::*)"/>
45           </xsl:when>
46           <xsl:otherwise>1</xsl:otherwise>
47         </xsl:choose>
48       </xsl:attribute>
49       <xsl:attribute name="axf:outline-expand">false</xsl:attribute>
50       <xsl:attribute name="axf:outline-title">
51         <xsl:value-of select="normalize-space($title)"/>
52       </xsl:attribute>
53     </xsl:if>
54     <xsl:copy-of select="$title"/>
55   </fo:block>
56 </xsl:template>
57
58 <!-- ==================================================================== -->
59
60 <xsl:template match="set">
61   <xsl:variable name="id">
62     <xsl:call-template name="object.id"/>
63   </xsl:variable>
64
65   <xsl:variable name="preamble"
66                 select="*[not(self::book or self::setindex)]"/>
67
68   <xsl:variable name="content" select="book|setindex"/>
69
70   <xsl:variable name="titlepage-master-reference">
71     <xsl:call-template name="select.pagemaster">
72       <xsl:with-param name="pageclass" select="'titlepage'"/>
73     </xsl:call-template>
74   </xsl:variable>
75
76   <xsl:variable name="lot-master-reference">
77     <xsl:call-template name="select.pagemaster">
78       <xsl:with-param name="pageclass" select="'lot'"/>
79     </xsl:call-template>
80   </xsl:variable>
81
82   <xsl:if test="$preamble">
83     <fo:page-sequence hyphenate="{$hyphenate}"
84                       master-reference="{$titlepage-master-reference}">
85       <xsl:attribute name="language">
86         <xsl:call-template name="l10n.language"/>
87       </xsl:attribute>
88       <xsl:attribute name="format">
89         <xsl:call-template name="page.number.format">
90           <xsl:with-param name="master-reference"
91                           select="$titlepage-master-reference"/>
92         </xsl:call-template>
93       </xsl:attribute>
94
95       <xsl:attribute name="initial-page-number">
96         <xsl:call-template name="initial.page.number">
97           <xsl:with-param name="master-reference"
98                           select="$titlepage-master-reference"/>
99         </xsl:call-template>
100       </xsl:attribute>
101
102       <xsl:attribute name="force-page-count">
103         <xsl:call-template name="force.page.count">
104           <xsl:with-param name="master-reference"
105                           select="$titlepage-master-reference"/>
106         </xsl:call-template>
107       </xsl:attribute>
108
109       <xsl:attribute name="hyphenation-character">
110         <xsl:call-template name="gentext">
111           <xsl:with-param name="key" select="'hyphenation-character'"/>
112         </xsl:call-template>
113       </xsl:attribute>
114       <xsl:attribute name="hyphenation-push-character-count">
115         <xsl:call-template name="gentext">
116           <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
117         </xsl:call-template>
118       </xsl:attribute>
119       <xsl:attribute name="hyphenation-remain-character-count">
120         <xsl:call-template name="gentext">
121           <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
122         </xsl:call-template>
123       </xsl:attribute>
124
125       <xsl:apply-templates select="." mode="running.head.mode">
126         <xsl:with-param name="master-reference" select="$titlepage-master-reference"/>
127       </xsl:apply-templates>
128
129       <xsl:apply-templates select="." mode="running.foot.mode">
130         <xsl:with-param name="master-reference" select="$titlepage-master-reference"/>
131       </xsl:apply-templates>
132
133       <fo:flow flow-name="xsl-region-body">
134         <xsl:call-template name="set.flow.properties">
135           <xsl:with-param name="element" select="local-name(.)"/>
136           <xsl:with-param name="master-reference"
137                           select="$titlepage-master-reference"/>
138         </xsl:call-template>
139
140         <fo:block id="{$id}">
141           <xsl:call-template name="set.titlepage"/>
142         </fo:block>
143       </fo:flow>
144     </fo:page-sequence>
145   </xsl:if>
146
147   <xsl:variable name="toc.params">
148     <xsl:call-template name="find.path.params">
149       <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
150     </xsl:call-template>
151   </xsl:variable>
152
153   <xsl:if test="contains($toc.params, 'toc')">
154     <fo:page-sequence hyphenate="{$hyphenate}"
155                       master-reference="{$lot-master-reference}">
156       <xsl:attribute name="language">
157         <xsl:call-template name="l10n.language"/>
158       </xsl:attribute>
159       <xsl:attribute name="format">
160         <xsl:call-template name="page.number.format">
161           <xsl:with-param name="element" select="'toc'"/>
162           <xsl:with-param name="master-reference"
163                           select="$lot-master-reference"/>
164         </xsl:call-template>
165       </xsl:attribute>
166       <xsl:attribute name="initial-page-number">
167         <xsl:call-template name="initial.page.number">
168           <xsl:with-param name="master-reference"
169                           select="$lot-master-reference"/>
170         </xsl:call-template>
171       </xsl:attribute>
172       <xsl:attribute name="force-page-count">
173         <xsl:call-template name="force.page.count">
174           <xsl:with-param name="master-reference"
175                           select="$lot-master-reference"/>
176         </xsl:call-template>
177       </xsl:attribute>
178
179       <xsl:attribute name="hyphenation-character">
180         <xsl:call-template name="gentext">
181           <xsl:with-param name="key" select="'hyphenation-character'"/>
182         </xsl:call-template>
183       </xsl:attribute>
184       <xsl:attribute name="hyphenation-push-character-count">
185         <xsl:call-template name="gentext">
186           <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
187         </xsl:call-template>
188       </xsl:attribute>
189       <xsl:attribute name="hyphenation-remain-character-count">
190         <xsl:call-template name="gentext">
191           <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
192         </xsl:call-template>
193       </xsl:attribute>
194
195       <xsl:apply-templates select="." mode="running.head.mode">
196         <xsl:with-param name="master-reference" select="$lot-master-reference"/>
197       </xsl:apply-templates>
198
199       <xsl:apply-templates select="." mode="running.foot.mode">
200         <xsl:with-param name="master-reference" select="$lot-master-reference"/>
201       </xsl:apply-templates>
202
203       <fo:flow flow-name="xsl-region-body">
204         <xsl:call-template name="set.flow.properties">
205           <xsl:with-param name="element" select="local-name(.)"/>
206           <xsl:with-param name="master-reference"
207                           select="$lot-master-reference"/>
208         </xsl:call-template>
209
210         <xsl:call-template name="set.toc"/>
211       </fo:flow>
212     </fo:page-sequence>
213   </xsl:if>
214
215   <xsl:apply-templates select="$content"/>
216 </xsl:template>
217
218 <xsl:template match="set/setinfo"></xsl:template>
219 <xsl:template match="set/title"></xsl:template>
220 <xsl:template match="set/subtitle"></xsl:template>
221
222 <!-- ==================================================================== -->
223
224 <xsl:template match="book">
225   <xsl:variable name="id">
226     <xsl:call-template name="object.id"/>
227   </xsl:variable>
228
229   <xsl:variable name="preamble"
230                 select="title|subtitle|titleabbrev|bookinfo"/>
231
232   <xsl:variable name="content"
233                 select="*[not(self::title or self::subtitle
234                             or self::titleabbrev
235                             or self::bookinfo)]"/>
236
237   <xsl:variable name="titlepage-master-reference">
238     <xsl:call-template name="select.pagemaster">
239       <xsl:with-param name="pageclass" select="'titlepage'"/>
240     </xsl:call-template>
241   </xsl:variable>
242
243   <xsl:variable name="lot-master-reference">
244     <xsl:call-template name="select.pagemaster">
245       <xsl:with-param name="pageclass" select="'lot'"/>
246     </xsl:call-template>
247   </xsl:variable>
248
249   <xsl:if test="$preamble">
250     <fo:page-sequence hyphenate="{$hyphenate}"
251                       master-reference="{$titlepage-master-reference}">
252       <xsl:attribute name="language">
253         <xsl:call-template name="l10n.language"/>
254       </xsl:attribute>
255       <xsl:attribute name="format">
256         <xsl:call-template name="page.number.format">
257           <xsl:with-param name="master-reference"
258                           select="$titlepage-master-reference"/>
259         </xsl:call-template>
260       </xsl:attribute>
261       <xsl:attribute name="initial-page-number">
262         <xsl:call-template name="initial.page.number">
263           <xsl:with-param name="master-reference"
264                           select="$titlepage-master-reference"/>
265         </xsl:call-template>
266       </xsl:attribute>
267       <xsl:attribute name="force-page-count">
268         <xsl:call-template name="force.page.count">
269           <xsl:with-param name="master-reference"
270                           select="$titlepage-master-reference"/>
271         </xsl:call-template>
272       </xsl:attribute>
273
274       <xsl:attribute name="hyphenation-character">
275         <xsl:call-template name="gentext">
276           <xsl:with-param name="key" select="'hyphenation-character'"/>
277         </xsl:call-template>
278       </xsl:attribute>
279       <xsl:attribute name="hyphenation-push-character-count">
280         <xsl:call-template name="gentext">
281           <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
282         </xsl:call-template>
283       </xsl:attribute>
284       <xsl:attribute name="hyphenation-remain-character-count">
285         <xsl:call-template name="gentext">
286           <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
287         </xsl:call-template>
288       </xsl:attribute>
289
290       <xsl:apply-templates select="." mode="running.head.mode">
291         <xsl:with-param name="master-reference" select="$titlepage-master-reference"/>
292       </xsl:apply-templates>
293
294       <xsl:apply-templates select="." mode="running.foot.mode">
295         <xsl:with-param name="master-reference" select="$titlepage-master-reference"/>
296       </xsl:apply-templates>
297
298       <fo:flow flow-name="xsl-region-body">
299         <xsl:call-template name="set.flow.properties">
300           <xsl:with-param name="element" select="local-name(.)"/>
301           <xsl:with-param name="master-reference"
302                           select="$titlepage-master-reference"/>
303         </xsl:call-template>
304
305         <fo:block id="{$id}">
306           <xsl:call-template name="book.titlepage"/>
307         </fo:block>
308       </fo:flow>
309     </fo:page-sequence>
310   </xsl:if>
311
312   <xsl:apply-templates select="dedication" mode="dedication"/>
313
314   <xsl:variable name="toc.params">
315     <xsl:call-template name="find.path.params">
316       <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
317     </xsl:call-template>
318   </xsl:variable>
319
320   <xsl:if test="contains($toc.params, 'toc')">
321     <fo:page-sequence hyphenate="{$hyphenate}"
322                       master-reference="{$lot-master-reference}">
323       <xsl:attribute name="language">
324         <xsl:call-template name="l10n.language"/>
325       </xsl:attribute>
326       <xsl:attribute name="format">
327         <xsl:call-template name="page.number.format">
328           <xsl:with-param name="element" select="'toc'"/>
329           <xsl:with-param name="master-reference"
330                           select="$lot-master-reference"/>
331         </xsl:call-template>
332       </xsl:attribute>
333       <xsl:attribute name="initial-page-number">
334         <xsl:call-template name="initial.page.number">
335         <xsl:with-param name="element" select="'toc'"/>
336         <xsl:with-param name="master-reference"
337                         select="$lot-master-reference"/>
338          </xsl:call-template>
339       </xsl:attribute>
340       <xsl:attribute name="force-page-count">
341         <xsl:call-template name="force.page.count">
342           <xsl:with-param name="master-reference"
343                           select="$lot-master-reference"/>
344         </xsl:call-template>
345       </xsl:attribute>
346
347       <xsl:attribute name="hyphenation-character">
348         <xsl:call-template name="gentext">
349           <xsl:with-param name="key" select="'hyphenation-character'"/>
350         </xsl:call-template>
351       </xsl:attribute>
352       <xsl:attribute name="hyphenation-push-character-count">
353         <xsl:call-template name="gentext">
354           <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
355         </xsl:call-template>
356       </xsl:attribute>
357       <xsl:attribute name="hyphenation-remain-character-count">
358         <xsl:call-template name="gentext">
359           <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
360         </xsl:call-template>
361       </xsl:attribute>
362
363       <xsl:apply-templates select="." mode="running.head.mode">
364         <xsl:with-param name="master-reference" select="$lot-master-reference"/>
365         <xsl:with-param name="gentext-key" select="'TableofContents'"/>
366       </xsl:apply-templates>
367
368       <xsl:apply-templates select="." mode="running.foot.mode">
369         <xsl:with-param name="master-reference" select="$lot-master-reference"/>
370         <xsl:with-param name="gentext-key" select="'TableofContents'"/>
371       </xsl:apply-templates>
372
373       <fo:flow flow-name="xsl-region-body">
374         <xsl:call-template name="set.flow.properties">
375           <xsl:with-param name="element" select="local-name(.)"/>
376           <xsl:with-param name="master-reference"
377                           select="$lot-master-reference"/>
378         </xsl:call-template>
379
380         <xsl:call-template name="division.toc"/>
381       </fo:flow>
382     </fo:page-sequence>
383   </xsl:if>
384
385   <xsl:if test="contains($toc.params,'figure') and .//figure">
386     <fo:page-sequence hyphenate="{$hyphenate}"
387                       master-reference="{$lot-master-reference}">
388       <xsl:attribute name="language">
389         <xsl:call-template name="l10n.language"/>
390       </xsl:attribute>
391       <xsl:attribute name="format">
392         <xsl:call-template name="page.number.format">
393           <xsl:with-param name="element" select="'toc'"/>
394           <xsl:with-param name="master-reference"
395                           select="$lot-master-reference"/>
396         </xsl:call-template>
397       </xsl:attribute>
398       <xsl:attribute name="initial-page-number">
399         <xsl:call-template name="initial.page.number">
400           <xsl:with-param name="element" select="'toc'"/>
401           <xsl:with-param name="master-reference"
402                           select="$lot-master-reference"/>
403         </xsl:call-template>
404       </xsl:attribute>
405       <xsl:attribute name="force-page-count">
406         <xsl:call-template name="force.page.count">
407           <xsl:with-param name="master-reference"
408                           select="$lot-master-reference"/>
409         </xsl:call-template>
410       </xsl:attribute>
411
412       <xsl:attribute name="hyphenation-character">
413         <xsl:call-template name="gentext">
414           <xsl:with-param name="key" select="'hyphenation-character'"/>
415         </xsl:call-template>
416       </xsl:attribute>
417       <xsl:attribute name="hyphenation-push-character-count">
418         <xsl:call-template name="gentext">
419           <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
420         </xsl:call-template>
421       </xsl:attribute>
422       <xsl:attribute name="hyphenation-remain-character-count">
423         <xsl:call-template name="gentext">
424           <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
425         </xsl:call-template>
426       </xsl:attribute>
427
428       <xsl:apply-templates select="." mode="running.head.mode">
429         <xsl:with-param name="master-reference" select="$lot-master-reference"/>
430         <xsl:with-param name="gentext-key" select="'ListofFigures'"/>
431       </xsl:apply-templates>
432
433       <xsl:apply-templates select="." mode="running.foot.mode">
434         <xsl:with-param name="master-reference" select="$lot-master-reference"/>
435         <xsl:with-param name="gentext-key" select="'ListofFigures'"/>
436       </xsl:apply-templates>
437
438       <fo:flow flow-name="xsl-region-body">
439         <xsl:call-template name="set.flow.properties">
440           <xsl:with-param name="element" select="local-name(.)"/>
441           <xsl:with-param name="master-reference"
442                           select="$lot-master-reference"/>
443         </xsl:call-template>
444
445         <xsl:call-template name="list.of.titles">
446           <xsl:with-param name="titles" select="'figure'"/>
447           <xsl:with-param name="nodes" select=".//figure"/>
448         </xsl:call-template>
449       </fo:flow>
450     </fo:page-sequence>
451   </xsl:if>
452
453   <xsl:if test="contains($toc.params,'table') and .//table">
454     <fo:page-sequence hyphenate="{$hyphenate}"
455                       master-reference="{$lot-master-reference}">
456       <xsl:attribute name="language">
457         <xsl:call-template name="l10n.language"/>
458       </xsl:attribute>
459       <xsl:attribute name="format">
460         <xsl:call-template name="page.number.format">
461           <xsl:with-param name="element" select="'toc'"/>
462           <xsl:with-param name="master-reference"
463                           select="$lot-master-reference"/>
464         </xsl:call-template>
465       </xsl:attribute>
466       <xsl:attribute name="initial-page-number">
467         <xsl:call-template name="initial.page.number">
468         <xsl:with-param name="element" select="'toc'"/>
469         <xsl:with-param name="master-reference"
470                         select="$lot-master-reference"/>
471          </xsl:call-template>
472       </xsl:attribute>
473       <xsl:attribute name="force-page-count">
474         <xsl:call-template name="force.page.count">
475           <xsl:with-param name="master-reference"
476                           select="$lot-master-reference"/>
477         </xsl:call-template>
478       </xsl:attribute>
479
480       <xsl:attribute name="hyphenation-character">
481         <xsl:call-template name="gentext">
482           <xsl:with-param name="key" select="'hyphenation-character'"/>
483         </xsl:call-template>
484       </xsl:attribute>
485       <xsl:attribute name="hyphenation-push-character-count">
486         <xsl:call-template name="gentext">
487           <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
488         </xsl:call-template>
489       </xsl:attribute>
490       <xsl:attribute name="hyphenation-remain-character-count">
491         <xsl:call-template name="gentext">
492           <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
493         </xsl:call-template>
494       </xsl:attribute>
495
496       <xsl:apply-templates select="." mode="running.head.mode">
497         <xsl:with-param name="master-reference" select="$lot-master-reference"/>
498         <xsl:with-param name="gentext-key" select="'ListofTables'"/>
499       </xsl:apply-templates>
500
501       <xsl:apply-templates select="." mode="running.foot.mode">
502         <xsl:with-param name="master-reference" select="$lot-master-reference"/>
503         <xsl:with-param name="gentext-key" select="'ListofTables'"/>
504       </xsl:apply-templates>
505
506       <fo:flow flow-name="xsl-region-body">
507         <xsl:call-template name="set.flow.properties">
508           <xsl:with-param name="element" select="local-name(.)"/>
509           <xsl:with-param name="master-reference"
510                           select="$lot-master-reference"/>
511         </xsl:call-template>
512
513         <xsl:call-template name="list.of.titles">
514           <xsl:with-param name="titles" select="'table'"/>
515           <xsl:with-param name="nodes" select=".//table"/>
516         </xsl:call-template>
517       </fo:flow>
518     </fo:page-sequence>
519   </xsl:if>
520
521   <xsl:if test="contains($toc.params,'example') and .//example">
522     <fo:page-sequence hyphenate="{$hyphenate}"
523                       master-reference="{$lot-master-reference}">
524       <xsl:attribute name="language">
525         <xsl:call-template name="l10n.language"/>
526       </xsl:attribute>
527       <xsl:attribute name="format">
528         <xsl:call-template name="page.number.format">
529           <xsl:with-param name="element" select="'toc'"/>
530           <xsl:with-param name="master-reference"
531                           select="$lot-master-reference"/>
532         </xsl:call-template>
533       </xsl:attribute>
534       <xsl:attribute name="initial-page-number">
535         <xsl:call-template name="initial.page.number">
536         <xsl:with-param name="element" select="'toc'"/>
537         <xsl:with-param name="master-reference"
538                         select="$lot-master-reference"/>
539          </xsl:call-template>
540       </xsl:attribute>
541       <xsl:attribute name="force-page-count">
542         <xsl:call-template name="force.page.count">
543           <xsl:with-param name="master-reference"
544                           select="$lot-master-reference"/>
545         </xsl:call-template>
546       </xsl:attribute>
547
548       <xsl:attribute name="hyphenation-character">
549         <xsl:call-template name="gentext">
550           <xsl:with-param name="key" select="'hyphenation-character'"/>
551         </xsl:call-template>
552       </xsl:attribute>
553       <xsl:attribute name="hyphenation-push-character-count">
554         <xsl:call-template name="gentext">
555           <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
556         </xsl:call-template>
557       </xsl:attribute>
558       <xsl:attribute name="hyphenation-remain-character-count">
559         <xsl:call-template name="gentext">
560           <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
561         </xsl:call-template>
562       </xsl:attribute>
563
564       <xsl:apply-templates select="." mode="running.head.mode">
565         <xsl:with-param name="master-reference" select="$lot-master-reference"/>
566         <xsl:with-param name="gentext-key" select="'ListofExamples'"/>
567       </xsl:apply-templates>
568
569       <xsl:apply-templates select="." mode="running.foot.mode">
570         <xsl:with-param name="master-reference" select="$lot-master-reference"/>
571         <xsl:with-param name="gentext-key" select="'ListofExamples'"/>
572       </xsl:apply-templates>
573
574       <fo:flow flow-name="xsl-region-body">
575         <xsl:call-template name="set.flow.properties">
576           <xsl:with-param name="element" select="local-name(.)"/>
577           <xsl:with-param name="master-reference"
578                           select="$lot-master-reference"/>
579         </xsl:call-template>
580
581         <xsl:call-template name="list.of.titles">
582           <xsl:with-param name="titles" select="'example'"/>
583           <xsl:with-param name="nodes" select=".//example"/>
584         </xsl:call-template>
585       </fo:flow>
586     </fo:page-sequence>
587   </xsl:if>
588
589   <xsl:if test="contains($toc.params,'equation') and .//equation">
590     <fo:page-sequence hyphenate="{$hyphenate}"
591                       master-reference="{$lot-master-reference}">
592       <xsl:attribute name="language">
593         <xsl:call-template name="l10n.language"/>
594       </xsl:attribute>
595       <xsl:attribute name="format">
596         <xsl:call-template name="page.number.format">
597           <xsl:with-param name="element" select="'toc'"/>
598           <xsl:with-param name="master-reference"
599                           select="$lot-master-reference"/>
600         </xsl:call-template>
601       </xsl:attribute>
602       <xsl:attribute name="initial-page-number">
603         <xsl:call-template name="initial.page.number">
604         <xsl:with-param name="element" select="'toc'"/>
605         <xsl:with-param name="master-reference"
606                         select="$lot-master-reference"/>
607          </xsl:call-template>
608       </xsl:attribute>
609
610       <xsl:attribute name="force-page-count">
611         <xsl:call-template name="force.page.count">
612           <xsl:with-param name="master-reference"
613                           select="$lot-master-reference"/>
614         </xsl:call-template>
615       </xsl:attribute>
616
617       <xsl:attribute name="hyphenation-character">
618         <xsl:call-template name="gentext">
619           <xsl:with-param name="key" select="'hyphenation-character'"/>
620         </xsl:call-template>
621       </xsl:attribute>
622       <xsl:attribute name="hyphenation-push-character-count">
623         <xsl:call-template name="gentext">
624           <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
625         </xsl:call-template>
626       </xsl:attribute>
627       <xsl:attribute name="hyphenation-remain-character-count">
628         <xsl:call-template name="gentext">
629           <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
630         </xsl:call-template>
631       </xsl:attribute>
632
633       <xsl:apply-templates select="." mode="running.head.mode">
634         <xsl:with-param name="master-reference" select="$lot-master-reference"/>
635         <xsl:with-param name="gentext-key" select="'ListofEquations'"/>
636       </xsl:apply-templates>
637
638       <xsl:apply-templates select="." mode="running.foot.mode">
639         <xsl:with-param name="master-reference" select="$lot-master-reference"/>
640         <xsl:with-param name="gentext-key" select="'ListofEquations'"/>
641       </xsl:apply-templates>
642
643       <fo:flow flow-name="xsl-region-body">
644         <xsl:call-template name="set.flow.properties">
645           <xsl:with-param name="element" select="local-name(.)"/>
646           <xsl:with-param name="master-reference"
647                           select="$lot-master-reference"/>
648         </xsl:call-template>
649
650         <xsl:call-template name="list.of.titles">
651           <xsl:with-param name="titles" select="'equation'"/>
652           <xsl:with-param name="nodes" select=".//equation[title]"/>
653         </xsl:call-template>
654       </fo:flow>
655     </fo:page-sequence>
656   </xsl:if>
657
658   <xsl:if test="contains($toc.params,'procedure') and .//procedure">
659     <fo:page-sequence hyphenate="{$hyphenate}"
660                       master-reference="{$lot-master-reference}">
661       <xsl:attribute name="language">
662         <xsl:call-template name="l10n.language"/>
663       </xsl:attribute>
664       <xsl:attribute name="format">
665         <xsl:call-template name="page.number.format">
666           <xsl:with-param name="element" select="'toc'"/>
667           <xsl:with-param name="master-reference"
668                           select="$lot-master-reference"/>
669         </xsl:call-template>
670       </xsl:attribute>
671       <xsl:attribute name="initial-page-number">
672         <xsl:call-template name="initial.page.number">
673         <xsl:with-param name="element" select="'toc'"/>
674         <xsl:with-param name="master-reference"
675                         select="$lot-master-reference"/>
676          </xsl:call-template>
677       </xsl:attribute>
678       <xsl:attribute name="force-page-count">
679         <xsl:call-template name="force.page.count">
680           <xsl:with-param name="master-reference"
681                           select="$lot-master-reference"/>
682         </xsl:call-template>
683       </xsl:attribute>
684
685       <xsl:attribute name="hyphenation-character">
686         <xsl:call-template name="gentext">
687           <xsl:with-param name="key" select="'hyphenation-character'"/>
688         </xsl:call-template>
689       </xsl:attribute>
690       <xsl:attribute name="hyphenation-push-character-count">
691         <xsl:call-template name="gentext">
692           <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
693         </xsl:call-template>
694       </xsl:attribute>
695       <xsl:attribute name="hyphenation-remain-character-count">
696         <xsl:call-template name="gentext">
697           <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
698         </xsl:call-template>
699       </xsl:attribute>
700
701       <xsl:apply-templates select="." mode="running.head.mode">
702         <xsl:with-param name="master-reference" select="$lot-master-reference"/>
703         <xsl:with-param name="gentext-key" select="'ListofProcedures'"/>
704       </xsl:apply-templates>
705
706       <xsl:apply-templates select="." mode="running.foot.mode">
707         <xsl:with-param name="master-reference" select="$lot-master-reference"/>
708         <xsl:with-param name="gentext-key" select="'ListofProcedures'"/>
709       </xsl:apply-templates>
710
711       <fo:flow flow-name="xsl-region-body">
712         <xsl:call-template name="set.flow.properties">
713           <xsl:with-param name="element" select="local-name(.)"/>
714           <xsl:with-param name="master-reference"
715                           select="$lot-master-reference"/>
716         </xsl:call-template>
717
718         <xsl:call-template name="list.of.titles">
719           <xsl:with-param name="titles" select="'procedure'"/>
720           <xsl:with-param name="nodes" select=".//procedure[title]"/>
721         </xsl:call-template>
722       </fo:flow>
723     </fo:page-sequence>
724   </xsl:if>
725
726   <xsl:apply-templates select="$content"/>
727 </xsl:template>
728
729 <xsl:template match="book/bookinfo"></xsl:template>
730 <xsl:template match="book/title"></xsl:template>
731 <xsl:template match="book/subtitle"></xsl:template>
732
733 <!-- ==================================================================== -->
734
735 <xsl:template match="part">
736   <xsl:if test="not(partintro)">
737     <xsl:apply-templates select="." mode="part.titlepage.mode"/>
738     <xsl:call-template name="generate.part.toc"/>
739   </xsl:if>
740   <xsl:apply-templates/>
741 </xsl:template>
742
743 <xsl:template match="part" mode="part.titlepage.mode">
744   <!-- done this way to force the context node to be the part -->
745   <xsl:param name="additional.content"/>
746
747   <xsl:variable name="id">
748     <xsl:call-template name="object.id"/>
749   </xsl:variable>
750
751   <xsl:variable name="titlepage-master-reference">
752     <xsl:call-template name="select.pagemaster">
753       <xsl:with-param name="pageclass" select="'titlepage'"/>
754     </xsl:call-template>
755   </xsl:variable>
756
757   <fo:page-sequence hyphenate="{$hyphenate}"
758                     master-reference="{$titlepage-master-reference}">
759     <xsl:attribute name="language">
760       <xsl:call-template name="l10n.language"/>
761     </xsl:attribute>
762     <xsl:attribute name="format">
763       <xsl:call-template name="page.number.format">
764         <xsl:with-param name="master-reference"
765                         select="$titlepage-master-reference"/>
766       </xsl:call-template>
767     </xsl:attribute>
768
769     <xsl:attribute name="initial-page-number">
770       <xsl:call-template name="initial.page.number">
771         <xsl:with-param name="master-reference"
772                         select="$titlepage-master-reference"/>
773       </xsl:call-template>
774     </xsl:attribute>
775
776     <xsl:attribute name="force-page-count">
777       <xsl:call-template name="force.page.count">
778         <xsl:with-param name="master-reference"
779                         select="$titlepage-master-reference"/>
780       </xsl:call-template>
781     </xsl:attribute>
782
783     <xsl:attribute name="hyphenation-character">
784       <xsl:call-template name="gentext">
785         <xsl:with-param name="key" select="'hyphenation-character'"/>
786       </xsl:call-template>
787     </xsl:attribute>
788     <xsl:attribute name="hyphenation-push-character-count">
789       <xsl:call-template name="gentext">
790         <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
791       </xsl:call-template>
792     </xsl:attribute>
793     <xsl:attribute name="hyphenation-remain-character-count">
794       <xsl:call-template name="gentext">
795         <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
796       </xsl:call-template>
797     </xsl:attribute>
798
799     <xsl:apply-templates select="." mode="running.head.mode">
800       <xsl:with-param name="master-reference" select="$titlepage-master-reference"/>
801     </xsl:apply-templates>
802
803     <xsl:apply-templates select="." mode="running.foot.mode">
804       <xsl:with-param name="master-reference" select="$titlepage-master-reference"/>
805     </xsl:apply-templates>
806
807     <fo:flow flow-name="xsl-region-body">
808       <xsl:call-template name="set.flow.properties">
809         <xsl:with-param name="element" select="local-name(.)"/>
810         <xsl:with-param name="master-reference"
811                         select="$titlepage-master-reference"/>
812       </xsl:call-template>
813
814       <fo:block id="{$id}">
815         <xsl:call-template name="part.titlepage"/>
816       </fo:block>
817       <xsl:copy-of select="$additional.content"/>
818     </fo:flow>
819   </fo:page-sequence>
820 </xsl:template>
821
822 <xsl:template match="part/docinfo|partinfo"></xsl:template>
823 <xsl:template match="part/title"></xsl:template>
824 <xsl:template match="part/subtitle"></xsl:template>
825
826 <!-- ==================================================================== -->
827
828 <xsl:template name="generate.part.toc">
829   <xsl:param name="part" select="."/>
830
831   <xsl:variable name="lot-master-reference">
832     <xsl:call-template name="select.pagemaster">
833       <xsl:with-param name="pageclass" select="'lot'"/>
834     </xsl:call-template>
835   </xsl:variable>
836
837   <xsl:variable name="toc.params">
838     <xsl:call-template name="find.path.params">
839       <xsl:with-param name="node" select="$part"/>
840       <xsl:with-param name="table" select="normalize-space($generate.toc)"/>
841     </xsl:call-template>
842   </xsl:variable>
843
844   <xsl:variable name="nodes" select="reference|
845                                      preface|
846                                      chapter|
847                                      appendix|
848                                      article|
849                                      bibliography|
850                                      glossary|
851                                      index"/>
852
853   <xsl:if test="count($nodes) &gt; 0 and contains($toc.params, 'toc')">
854     <fo:page-sequence hyphenate="{$hyphenate}"
855                       master-reference="{$lot-master-reference}">
856       <xsl:attribute name="language">
857         <xsl:call-template name="l10n.language"/>
858       </xsl:attribute>
859       <xsl:attribute name="format">
860         <xsl:call-template name="page.number.format">
861           <xsl:with-param name="element" select="'toc'"/>
862           <xsl:with-param name="master-reference"
863                           select="$lot-master-reference"/>
864         </xsl:call-template>
865       </xsl:attribute>
866       <xsl:attribute name="initial-page-number">
867         <xsl:call-template name="initial.page.number">
868           <xsl:with-param name="element" select="'toc'"/>
869           <xsl:with-param name="master-reference"
870                           select="$lot-master-reference"/>
871          </xsl:call-template>
872       </xsl:attribute>
873       <xsl:attribute name="force-page-count">
874         <xsl:call-template name="force.page.count">
875           <xsl:with-param name="master-reference"
876                           select="$lot-master-reference"/>
877         </xsl:call-template>
878       </xsl:attribute>
879
880       <xsl:attribute name="hyphenation-character">
881         <xsl:call-template name="gentext">
882           <xsl:with-param name="key" select="'hyphenation-character'"/>
883         </xsl:call-template>
884       </xsl:attribute>
885       <xsl:attribute name="hyphenation-push-character-count">
886         <xsl:call-template name="gentext">
887           <xsl:with-param name="key" select="'hyphenation-push-character-count'"/>
888         </xsl:call-template>
889       </xsl:attribute>
890       <xsl:attribute name="hyphenation-remain-character-count">
891         <xsl:call-template name="gentext">
892           <xsl:with-param name="key" select="'hyphenation-remain-character-count'"/>
893         </xsl:call-template>
894       </xsl:attribute>
895
896       <xsl:apply-templates select="$part" mode="running.head.mode">
897         <xsl:with-param name="master-reference" select="$lot-master-reference"/>
898       </xsl:apply-templates>
899
900       <xsl:apply-templates select="$part" mode="running.foot.mode">
901         <xsl:with-param name="master-reference" select="$lot-master-reference"/>
902       </xsl:apply-templates>
903
904       <fo:flow flow-name="xsl-region-body">
905         <xsl:call-template name="set.flow.properties">
906           <xsl:with-param name="element" select="local-name(.)"/>
907           <xsl:with-param name="master-reference"
908                           select="$lot-master-reference"/>
909         </xsl:call-template>
910
911         <xsl:call-template name="division.toc">
912           <xsl:with-param name="toc-context" select="$part"/>
913         </xsl:call-template>
914       </fo:flow>
915     </fo:page-sequence>
916   </xsl:if>
917 </xsl:template>
918
919 <!-- ==================================================================== -->
920
921 <xsl:template match="part/partintro">
922   <xsl:apply-templates select=".." mode="part.titlepage.mode">
923     <xsl:with-param name="additional.content">
924       <xsl:if test="title">
925         <xsl:call-template name="partintro.titlepage"/>
926       </xsl:if>
927       <xsl:apply-templates/>
928     </xsl:with-param>
929   </xsl:apply-templates>
930
931   <xsl:call-template name="generate.part.toc">
932     <xsl:with-param name="part" select=".."/>
933   </xsl:call-template>
934 </xsl:template>
935
936 <xsl:template match="partintro/title"></xsl:template>
937 <xsl:template match="partintro/subtitle"></xsl:template>
938 <xsl:template match="partintro/titleabbrev"></xsl:template>
939
940 <!-- ==================================================================== -->
941
942 <xsl:template match="book" mode="division.number">
943   <xsl:number from="set" count="book" format="1."/>
944 </xsl:template>
945
946 <xsl:template match="part" mode="division.number">
947   <xsl:number from="book" count="part" format="I."/>
948 </xsl:template>
949
950 </xsl:stylesheet>
951
Note: See TracBrowser for help on using the browser.