/[alcovebook]/alcovebook-sgml/stylesheet/dsssl/docbook/print/extensions.dsl
ViewVC logotype

Contents of /alcovebook-sgml/stylesheet/dsssl/docbook/print/extensions.dsl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.6 - (show annotations) (download)
Mon Mar 25 11:55:05 2002 UTC (22 years, 1 month ago) by ydirson
Branch: MAIN
CVS Tags: RELEASE_0-1-2, RELEASE_0-1-0, RELEASE_0-1-1, HEAD
Changes since 1.5: +74 -96 lines
- checked that all code is in sync with 1.76
- tabify where needed to sync whitespace

1 <!--
2 Alcove improvements over vanilla DocBook stylesheets.
3 This only includes bugfixes and extensions that should
4 eventually be merged into Norm's stylesheets.
5
6 Please refer to this stylesheet using the following public ID:
7
8 -//Alcove//DOCUMENT DocBook Extended Print Stylesheet//EN
9 -->
10
11 <!DOCTYPE style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN" [
12 <!ENTITY docbook.dsl PUBLIC "-//Norman Walsh//DOCUMENT DocBook Print Stylesheet//EN" CDATA dsssl>
13 ]>
14 <style-sheet>
15 <style-specification id="print" use="docbook">
16 <style-specification-body>
17
18 ;; Remarks are considered internal material, and hidden by default.
19 ;; Use jade's -V%show-comments% to have them shown - it will print a
20 ;; bold warning on titlepage as well.
21 (define %show-comments% #f)
22
23 ;;
24 ;; Changes to be abstracted
25 ;;
26 ;; from common/dbl1en.dsl 1.76
27 (define (en-label-title-sep)
28 (list
29 (list (normalize "abstract") ": ")
30 (list (normalize "answer") " ")
31 (list (normalize "appendix") ". ")
32 (list (normalize "caution") "")
33 (list (normalize "chapter") ". ")
34 (list (normalize "equation") ". ")
35 (list (normalize "example") ". ")
36 (list (normalize "figure") ". ")
37 (list (normalize "footnote") ". ")
38 (list (normalize "glosssee") ": ")
39 (list (normalize "glossseealso") ": ")
40 (list (normalize "important") ": ")
41 (list (normalize "note") ": ")
42 (list (normalize "orderedlist") ". ")
43 (list (normalize "part") ". ")
44 (list (normalize "procedure") ". ")
45 (list (normalize "prefix") ". ")
46 (list (normalize "question") " ")
47 (list (normalize "refentry") "")
48 (list (normalize "reference") ". ")
49 (list (normalize "refsect1") ". ")
50 (list (normalize "refsect2") ". ")
51 (list (normalize "refsect3") ". ")
52 (list (normalize "sect1") ". ")
53 (list (normalize "sect2") ". ")
54 (list (normalize "sect3") ". ")
55 (list (normalize "sect4") ". ")
56 (list (normalize "sect5") ". ")
57 ;;; BEGIN change
58 (list (normalize "section") "\U-2003;") ; em space
59 ;;; END change
60 (list (normalize "simplesect") ". ")
61 (list (normalize "seeie") " ")
62 (list (normalize "seealsoie") " ")
63 (list (normalize "step") ". ")
64 (list (normalize "table") ". ")
65 (list (normalize "tip") ": ")
66 (list (normalize "warning") "")
67 ))
68
69 ;; from common/dbl1fr.dsl 1.76
70 (define (fr-label-title-sep)
71 (list
72 (list (normalize "abstract") "\U-00A0;: ")
73 (list (normalize "answer") " ")
74 (list (normalize "appendix") ". ")
75 (list (normalize "caution") "")
76 (list (normalize "chapter") ". ")
77 (list (normalize "equation") ". ")
78 (list (normalize "example") ". ")
79 (list (normalize "figure") ". ")
80 (list (normalize "footnote") ". ")
81 (list (normalize "glosssee") "\U-00A0;: ")
82 (list (normalize "glossseealso") "\U-00A0;: ")
83 (list (normalize "important") "\U-00A0;: ")
84 (list (normalize "note") "\U-00A0;: ")
85 (list (normalize "orderedlist") ". ")
86 (list (normalize "part") ". ")
87 (list (normalize "procedure") ". ")
88 (list (normalize "prefix") ". ")
89 (list (normalize "question") " ")
90 (list (normalize "refentry") "")
91 (list (normalize "reference") ". ")
92 (list (normalize "refsect1") ". ")
93 (list (normalize "refsect2") ". ")
94 (list (normalize "refsect3") ". ")
95 (list (normalize "sect1") ". ")
96 (list (normalize "sect2") ". ")
97 (list (normalize "sect3") ". ")
98 (list (normalize "sect4") ". ")
99 (list (normalize "sect5") ". ")
100 ;;; BEGIN change
101 (list (normalize "section") "\U-2003;") ; em space
102 ;;; END change
103 (list (normalize "simplesect") ". ")
104 (list (normalize "seeie") " ")
105 (list (normalize "seealsoie") " ")
106 (list (normalize "step") ". ")
107 (list (normalize "table") ". ")
108 (list (normalize "tip") "\U-00A0;: ")
109 (list (normalize "warning") "")
110 ))
111
112
113 ;;
114 ;; Generated sosofos
115 ;;
116
117 (define ($document-version-sosofo$)
118 (make sequence
119 (literal (gentext-alcove-revversion))
120 (literal " ")
121 (literal (data (select-elements
122 (children
123 (node-list-last
124 (select-elements
125 (children (alcove-info-node "revhistory"))
126 (normalize "revision") )))
127 (normalize "revnumber") ))) ))
128
129 (define ($document-reference-sosofo$ linebreak)
130 (let ((pnum (alcove-info-node "invpartnumber")))
131 (make sequence
132 (literal "Réference :")
133 (if linebreak
134 (make paragraph-break)
135 (literal " "))
136 (if (node-list-empty? pnum)
137 (literal "N/A")
138 (literal (data pnum))))))
139
140 (define (number-of-pages-sosofo)
141 ;; use element with ID="eof" for last page, or attempt to find last element
142 (let ((eof-elt (element-with-id (normalize "eof"))))
143 (if (node-list-empty? eof-elt)
144 (element-page-number-sosofo (last-descendant-node (sgml-root-element)))
145 (make link
146 destination: (idref-address (normalize "eof"))
147 (element-page-number-sosofo eof-elt)))))
148 ;;; (total-node-page-numbers (sgml-root-element))
149
150 (define ($pagenumber-with-total-sosofo$)
151 (make sequence
152 (literal (gentext-alcove-page))
153 (page-number-sosofo) ; FIXME: replace with $page-number-header-footer$ when
154 ; possible to parametrize font-posture ?
155 (literal (gentext-alcove-page-of))
156 (number-of-pages-sosofo)))
157
158
159 ;;
160 ;; Color definitions
161 ;;
162
163 (define rgb-color-space (color-space
164 "ISO/IEC 10179:1996//Color-Space Family::Device RGB"))
165 (define color-red (color rgb-color-space 1 0 0))
166
167 ;;
168 ;; Allow PDF graphics inclusion <!-- adapted from Ian Castle <bb@looksystems.co.uk> -->
169 ;;
170
171 ;; set this to #t using 'jade -V use-eps' to allow building a .ps document
172 ;; instead of a .pdf one
173 (define use-eps #f)
174
175 ;; these just add pdf to the 1.71 lists, unless we want to use eps instead
176 ;; this allows to specify both eps and pdf in the mediaobject
177 (define %graphic-extensions%
178 (if use-eps
179 '("eps" "epsf" "gif" "tif" "tiff" "jpg" "jpeg" "png")
180 '("pdf" "gif" "tif" "tiff" "jpg" "jpeg" "png")))
181 (define preferred-mediaobject-notations
182 (if use-eps
183 '("EPS" "PS" "JPG" "JPEG" "PNG" "linespecific")
184 '("PDF" "JPG" "JPEG" "PNG" "linespecific")))
185 (define preferred-mediaobject-extensions
186 (if use-eps
187 '("eps" "ps" "jpg" "jpeg" "png")
188 '("pdf" "jpg" "jpeg" "png")))
189
190
191 ;;
192 ;; L10n
193 ;;
194
195 (define (gentext-alcove-authors)
196 (case ($lang$)
197 (("en") "Authors:")
198 (("fr") "Auteurs :")
199 (("es") "Autores:")
200 (("de") "Autoren:")
201 (else (error (string-append "L10N ERROR: alcove-authors: "
202 $lang$)))))
203
204 (define (gentext-alcove-revversion)
205 (case ($lang$)
206 (("en") "Version")
207 (("fr") "Version")
208 (("es") "Versión")
209 (("de") "Version")
210 (else (error (string-append "L10N ERROR: alcove-revversion: "
211 $lang$)))))
212
213 (define (gentext-alcove-revdate)
214 (case ($lang$)
215 (("en") "Date")
216 (("fr") "Date")
217 (("es") "Fecha")
218 (("de") "Datum")
219 (else (error (string-append "L10N ERROR: alcove-revdate: "
220 $lang$)))))
221
222 (define (gentext-alcove-revdesc)
223 (case ($lang$)
224 (("en") "Revision description")
225 (("fr") "Objet de la révision")
226 (("es") "Descripción de la revisión")
227 (("de") "Gegenstand der Überarbeitung")
228 (else (error (string-append "L10N ERROR: alcove-revdesc: "
229 $lang$)))))
230
231 (define (gentext-alcove-visa)
232 (case ($lang$)
233 (("en") "Visa")
234 (("fr") "Visa")
235 (("es") "Firma")
236 (("de") "Unterschrift")
237 (else (error (string-append "L10N ERROR: alcove-visa: "
238 $lang$)))))
239
240 (define (gentext-alcove-name)
241 (case ($lang$)
242 (("en") "Name")
243 (("fr") "Nom")
244 (("es") "Nombre")
245 (("de") "Name")
246 (else (error (string-append "L10N ERROR: alcove-name: "
247 $lang$)))))
248
249 (define (gentext-alcove-writing)
250 (case ($lang$)
251 (("en") "Writing")
252 (("fr") "Rédaction")
253 (("es") "Redacción")
254 (("de") "Bearbeitung")
255 (else (error (string-append "L10N ERROR: alcove-writing: "
256 $lang$)))))
257
258 (define (gentext-alcove-checking)
259 (case ($lang$)
260 (("en") "Checking")
261 (("fr") "Vérification")
262 (("es") "Revisión")
263 (("de") "Prüfung")
264 (else (error (string-append "L10N ERROR: alcove-checking: "
265 $lang$)))))
266
267 (define (gentext-alcove-approval)
268 (case ($lang$)
269 (("en") "Approval")
270 (("fr") "Approbation")
271 (("es") "Aprobación")
272 (("de") "Freigabe")
273 (else (error (string-append "L10N ERROR: alcove-approval: "
274 $lang$)))))
275
276 (define (gentext-alcove-page)
277 (case ($lang$)
278 (("en") "Page ")
279 (("fr") "Page ")
280 ;;; (("es") "")
281 (("de") "Seite ")
282 (else (error (string-append "L10N ERROR: alcove-page: "
283 $lang$)))))
284
285 (define (gentext-alcove-page-of)
286 (case ($lang$)
287 (("en") " of ")
288 (("fr") " sur ")
289 ;;; (("es") "")
290 (("de") " von ")
291 (else (error (string-append "L10N ERROR: alcove-page-of: "
292 $lang$)))))
293
294 ;;
295 ;; Function library
296 ;;
297
298 (define (last-descendant-node nd)
299 (if (node-list-empty? (children nd))
300 nd
301 (last-descendant-node (node-list-last (children nd)))))
302
303 (define (alcove-info-node gi)
304 (select-elements
305 (children (select-elements
306 (children (sgml-root-element))
307 (normalize "articleinfo")))
308 (normalize gi)))
309
310 ;;
311 ;;
312 ;;
313
314 (define (%revhistory-hook%)
315 (empty-sosofo))
316
317 (define %revhistory-border%
318 (make table-border
319 border-present?: #t
320 line-thickness: 3pt
321 ))
322
323 (define ($signature-box$)
324 (make sequence
325 (make paragraph
326 space-before: 1cm
327 (literal "\no-break-space;"))
328 (make table
329 ;;; space-before: 1cm
330 cell-before-row-margin: (* 0.1 %bf-size%)
331 cell-after-row-margin: (* 0.3 %bf-size%)
332 table-border: %revhistory-border%
333 cell-after-row-border: %revhistory-border%
334 cell-after-column-border: #t
335
336 (make table-column width: (* 0.25 %text-width%))
337 (make table-column width: (* 0.25 %text-width%))
338 (make table-column width: (* 0.25 %text-width%))
339 (make table-column width: (* 0.25 %text-width%))
340
341 (make table-row
342 (make table-cell
343 column-number: 2
344 (make paragraph
345 quadding: 'center
346 (literal (gentext-alcove-writing))))
347 (make table-cell
348 (make paragraph
349 quadding: 'center
350 (literal (gentext-alcove-checking))))
351 (make table-cell
352 (make paragraph
353 quadding: 'center
354 (literal (gentext-alcove-approval))))
355 )
356 (make table-row
357 (make table-cell
358 cell-before-row-margin: %bf-size%
359 cell-after-row-margin: %bf-size%
360
361 (make paragraph
362 quadding: 'center
363 (literal (gentext-alcove-name)))))
364 (make table-row
365 (make table-cell
366 cell-before-row-margin: %bf-size%
367 cell-after-row-margin: %bf-size%
368
369 (make paragraph
370 quadding: 'center
371 (literal (gentext-alcove-visa)))))
372 )))
373
374 (define ($revhistory-table$)
375 (make sequence
376 (make paragraph
377 use: article-titlepage-verso-style
378 font-family-name: %title-font-family%
379 font-weight: 'bold
380 space-before: (* (HSIZE 3) %head-before-factor%)
381 space-after: (/ (* (HSIZE 1) %head-before-factor%) 2)
382 (literal (gentext-element-name (current-node))))
383 (make table
384 table-border: #t
385 cell-after-row-border: #t
386 cell-after-column-border: #t
387 cell-before-row-margin: (* 0.1 %bf-size%)
388 cell-after-row-margin: (* 0.3 %bf-size%)
389 cell-before-column-margin: (* 0.2 %bf-size%)
390 cell-after-column-margin: (* 0.2 %bf-size%)
391
392 (make table-column width: (* 0.1 %text-width%))
393 (make table-column width: (* 0.15 %text-width%))
394 (make table-column width: (* 0.75 %text-width%))
395
396 (make table-row
397 font-weight: 'bold
398 (make table-cell (make paragraph
399 quadding: 'center
400 (literal (gentext-alcove-revversion))))
401 (make table-cell (make paragraph
402 quadding: 'center
403 (literal (gentext-alcove-revdate))))
404 (make table-cell (make paragraph
405 quadding: 'center
406 (literal (gentext-alcove-revdesc))))
407 )
408 (process-children))
409 (%revhistory-hook%)))
410
411 (define ($revhistory-table-revision$)
412 (let ((revnumber (select-elements (descendants (current-node))
413 (normalize "revnumber")))
414 (revdate (select-elements (descendants (current-node))
415 (normalize "date")))
416 ; (revauthor (select-elements (descendants (current-node))
417 ; (normalize "authorinitials")))
418 (revremark (select-elements (descendants (current-node))
419 (normalize "revremark"))))
420 (make table-row
421 ; cell-after-row-border: #t
422 (make table-cell
423 column-number: 1
424 n-columns-spanned: 1
425 n-rows-spanned: 1
426 ; start-indent: 0pt
427 (if (node-list-empty? revnumber)
428 (empty-sosofo)
429 (make paragraph
430 use: article-titlepage-verso-style
431 font-size: %bf-size%
432 space-after: %bf-size%
433 font-weight: 'medium
434 quadding: 'center
435 ; (literal (gentext-element-name-space (current-node)))
436 (process-node-list revnumber))))
437
438 (make table-cell
439 column-number: 2
440 n-columns-spanned: 1
441 n-rows-spanned: 1
442 ; start-indent: 0pt
443 cell-before-column-margin: (if (equal? (print-backend) 'tex)
444 6pt
445 0pt)
446 (if (node-list-empty? revdate)
447 (empty-sosofo)
448 (make paragraph
449 use: article-titlepage-verso-style
450 font-size: %bf-size%
451 font-weight: 'medium
452 quadding: 'center
453 (process-node-list revdate))))
454
455 (make table-cell
456 column-number: 3
457 n-columns-spanned: 1
458 n-rows-spanned: 1
459 ; start-indent: 0pt
460 (if (not (node-list-empty? revremark))
461 (make paragraph
462 use: article-titlepage-verso-style
463 font-size: %bf-size%
464 font-weight: 'medium
465 quadding: 'justify
466 space-after: (if (last-sibling?)
467 0pt
468 (/ %block-sep% 2))
469 (process-node-list revremark))
470 (empty-sosofo))))))
471
472 ;;
473 ;; Admonitions
474 ;;
475
476 (define %admon-graphics-path% "/usr/lib/sgml/stylesheet/dsssl/docbook/nwalsh/images/")
477 (define admon-graphic-default-extension
478 (if use-eps ".eps" ".pdf"))
479
480 ;; <!-- This code by Richard Sharpe <rsharpe@ns.aus.com> -->
481 ;; Taken from http://lists.oasis-open.org/archives/docbook-apps/200107/msg00278.html
482 (define ($graphical-admonition$)
483 (let* ((adm (current-node))
484 (title (select-elements (children adm)
485 (normalize "title")))
486 (title? (not (node-list-empty? title)))
487 (adm-title (if title?
488 (with-mode title-sosofo-mode
489 (process-node-list (node-list-first title)))
490 (literal (gentext-element-name adm))))
491 (graphic (make external-graphic
492 display?: #f
493 position-point-y: (+ %bf-size% 2pt)
494 entity-system-id: ($admon-graphic$)))
495 (f-child (node-list-first (children (current-node))))
496 (r-child (node-list-rest (children (current-node)))))
497
498 (make table
499 space-before: %block-sep%
500 space-after: %block-sep%
501 table-width: (- %text-width% (inherited-start-indent))
502 (make table-column
503 width: ($admon-graphic-width$))
504 (make table-column
505 width: 10pt)
506 (make table-column
507 width: (- %text-width%
508 (+ (inherited-start-indent)
509 ($admon-graphic-width$)
510 10pt)))
511 (make table-row
512 (make table-cell
513 graphic)
514 (make table-cell
515 (make line-field
516 field-width: 5pt
517 field-align: 'center
518 (empty-sosofo)))
519 (make table-cell
520 (make sequence
521 font-family-name: %title-font-family%
522 font-weight: 'bold
523 adm-title)
524 (process-children))))))
525
526
527 ;;; START integrated in my 1.75-0.potato1 and later
528 ;;
529 ;; Don't start a block element for itemizedlist or orderedlist title
530 ;; just inside a listitem, so that it looks correct
531 ;;
532
533 (element (listitem itemizedlist title)
534 (make sequence
535 use: title-style
536 (process-children)))
537 (element (listitem orderedlist title)
538 (make sequence
539 use: title-style
540 (process-children)))
541
542 ;; put the title itself outside the displaygroup for the same reason
543 (define ($list$)
544 (make sequence
545 (process-node-list
546 (select-elements (children (current-node))
547 (normalize "title")))
548 (make display-group
549 start-indent: (if (INBLOCK?)
550 (inherited-start-indent)
551 (+ %block-start-indent% (inherited-start-indent)))
552 space-after: (if (INLIST?) %para-sep% %block-sep%)
553
554 (process-node-list (node-list-filter-by-not-gi
555 (children (current-node))
556 (list (normalize "title")))))))
557 ;;; END integrated in my 1.75-0.potato1
558
559 ;;;
560 ;;; Modified code from docbook-dsssl 1.76
561 ;;;
562
563 ;; emulate vanilla behaviour using new features
564
565 (define ($section-title-quadding$) %section-title-quadding%)
566 (define ($section-start-indent$ hlevel)
567 (if (or (>= hlevel 3)
568 (member (gi) (list (normalize "refsynopsisdiv")
569 (normalize "refsect1")
570 (normalize "refsect2")
571 (normalize "refsect3"))))
572 %body-start-indent%
573 0pt))
574 (define $sidebar-start-indent$ inherited-start-indent)
575 (define $sidebar-end-indent$ inherited-end-indent)
576 (define %article-section-starts-new-page% #f)
577 (define %endnotes-on-own-page% #f)
578 (define ($endnotes-left-footer$) ($left-footer$))
579 (define ($endnotes-right-footer$) ($right-footer$))
580 (define ($endnotes-center-footer$) ($center-footer$))
581
582 (define (%titlepage-left-header%) (empty-sosofo))
583 (define (%titlepage-right-header%) (empty-sosofo))
584 (define (%titlepage-center-header%) (empty-sosofo))
585
586 (define (%titlepage-left-footer%) (empty-sosofo))
587 (define (%titlepage-right-footer%) (empty-sosofo))
588 (define (%titlepage-center-footer%) (empty-sosofo))
589
590
591 ;; the code
592
593 ;; from print/dbcompon.dsl 1.76
594 (element article
595 (let* ((info (node-list-filter-by-gi (children (current-node))
596 (list (normalize "artheader")
597 (normalize "articleinfo"))))
598 (nl (titlepage-info-elements (current-node) info))
599 (article-titlepage (if %generate-article-titlepage-on-separate-page%
600 (make sequence
601 (if (article-titlepage-content? nl 'recto)
602 (make simple-page-sequence
603 page-n-columns: %page-n-columns%
604 use: default-text-style
605 quadding: %default-quadding%
606 ;; BEGIN ADDITION
607 center-header: (%titlepage-center-header%)
608 left-header: (%titlepage-left-header%)
609 right-header: (%titlepage-right-header%)
610 center-footer: (%titlepage-center-footer%)
611 left-footer: (%titlepage-left-footer%)
612 right-footer: (%titlepage-right-footer%)
613 ;; END ADDITION
614 (article-titlepage nl 'recto))
615 (empty-sosofo))
616 (if (article-titlepage-content? nl 'verso)
617 (make simple-page-sequence
618 page-n-columns: %page-n-columns%
619 use: default-text-style
620 quadding: %default-quadding%
621 ;; BEGIN ADDITION
622 center-header: (%titlepage-center-header%)
623 left-header: (%titlepage-left-header%)
624 right-header: (%titlepage-right-header%)
625 center-footer: (%titlepage-center-footer%)
626 left-footer: (%titlepage-left-footer%)
627 right-footer: (%titlepage-right-footer%)
628 ;; END ADDITION
629 (article-titlepage nl 'verso))
630 (empty-sosofo)))
631 (make sequence
632 (article-titlepage nl 'recto)
633 (article-titlepage nl 'verso)))))
634 (make sequence
635 (if (and %generate-article-titlepage%
636 %generate-article-titlepage-on-separate-page%)
637 article-titlepage
638 (empty-sosofo))
639
640 (if (and %generate-article-toc%
641 (not %generate-article-toc-on-titlepage%)
642 %generate-article-titlepage-on-separate-page%
643 (generate-toc-in-front))
644 (make simple-page-sequence
645 page-n-columns: %page-n-columns%
646 page-number-restart?: %article-page-number-restart%
647 page-number-format: ($page-number-format$ (normalize "toc"))
648 left-header: ($left-header$ (normalize "toc"))
649 center-header: ($center-header$ (normalize "toc"))
650 right-header: ($right-header$ (normalize "toc"))
651 left-footer: ($left-footer$ (normalize "toc"))
652 center-footer: ($center-footer$ (normalize "toc"))
653 right-footer: ($right-footer$ (normalize "toc"))
654 input-whitespace-treatment: 'collapse
655 use: default-text-style
656 quadding: %default-quadding%
657 (build-toc (current-node)
658 (toc-depth (current-node))))
659 (empty-sosofo))
660
661 ;; BEGIN ADDITION
662 (if %article-section-starts-new-page%
663 (make sequence
664 (process-children)
665 (make-endnotes))
666 ;;; END ADDITION
667
668 (make simple-page-sequence
669 ;; BEGIN ADDITION
670 ;; WARNING: all this is copied in ($maybe-paged-section$) below
671 ;;; END ADDITION
672 page-n-columns: %page-n-columns%
673 page-number-restart?: (or %article-page-number-restart%
674 (book-start?))
675 page-number-format: ($page-number-format$)
676 use: default-text-style
677 left-header: ($left-header$)
678 center-header: ($center-header$)
679 right-header: ($right-header$)
680 left-footer: ($left-footer$)
681 center-footer: ($center-footer$)
682 right-footer: ($right-footer$)
683 start-indent: %body-start-indent%
684 input-whitespace-treatment: 'collapse
685 quadding: %default-quadding%
686
687 (if (and %generate-article-titlepage%
688 (not %generate-article-titlepage-on-separate-page%))
689 article-titlepage
690 (empty-sosofo))
691
692 (if (and %generate-article-toc%
693 (generate-toc-in-front)
694 (not %generate-article-toc-on-titlepage%)
695 (not %generate-article-titlepage-on-separate-page%))
696 (make display-group
697 space-after: (* (HSIZE 3) %head-after-factor%)
698 (build-toc (current-node)
699 (toc-depth (current-node))))
700 (empty-sosofo))
701
702 (process-children)
703
704 ;;; BEGIN ADDITION
705 (if %endnotes-on-own-page%
706 (empty-sosofo)
707 ;;; END ADDITION
708 (make-endnotes))
709
710 (if (and %generate-article-toc%
711 (not (generate-toc-in-front))
712 (not %generate-article-toc-on-titlepage%)
713 (not %generate-article-titlepage-on-separate-page%))
714 (make display-group
715 space-after: (* (HSIZE 3) %head-after-factor%)
716 (build-toc (current-node)
717 (toc-depth (current-node))))
718 (empty-sosofo))))
719
720 ;;; BEGIN ADDITION
721 (if %endnotes-on-own-page%
722
723 (make simple-page-sequence
724 page-n-columns: %page-n-columns%
725 page-number-restart?: (or %article-page-number-restart%
726 (book-start?))
727 page-number-format: ($page-number-format$)
728 use: default-text-style
729 left-header: ($left-header$)
730 center-header: ($center-header$)
731 right-header: ($right-header$)
732 left-footer: ($endnotes-left-footer$)
733 center-footer: ($endnotes-center-footer$)
734 right-footer: ($endnotes-right-footer$)
735 start-indent: %body-start-indent%
736 input-whitespace-treatment: 'collapse
737 quadding: %default-quadding%
738
739 (make-endnotes))
740 (empty-sosofo))
741 ;;; END ADDITION
742
743 (if (and %generate-article-toc%
744 (not %generate-article-toc-on-titlepage%)
745 %generate-article-titlepage-on-separate-page%
746 (not (generate-toc-in-front)))
747 (make simple-page-sequence
748 page-n-columns: %page-n-columns%
749 use: default-text-style
750 quadding: %default-quadding%
751 (build-toc (current-node)
752 (toc-depth (current-node))))
753 (empty-sosofo)))))
754
755 (define (is-section-level-element nd)
756 (let ((ngi (gi nd)))
757 (or (string=? ngi (normalize "section"))
758 (string=? ngi (normalize "appendix")))))
759
760 (element section ($maybe-paged-section$))
761 (element (article appendix) ($maybe-paged-section$))
762 (element (article glossary) ($maybe-paged-section$))
763
764 ;; FIXME:
765 (define ($maybe-paged-section$)
766 (if (and %article-section-starts-new-page%
767 (not (is-section-level-element (parent (current-node)))))
768 (make simple-page-sequence
769 ;; WARNING: all this is copied from the page-seq above
770 page-n-columns: %page-n-columns%
771 page-number-restart?: (or %article-page-number-restart%
772 (book-start?))
773 page-number-format: ($page-number-format$)
774 use: default-text-style
775 left-header: ($left-header$)
776 center-header: ($center-header$)
777 right-header: ($right-header$)
778 left-footer: ($left-footer$)
779 center-footer: ($center-footer$)
780 right-footer: ($right-footer$)
781 start-indent: %body-start-indent%
782 input-whitespace-treatment: 'collapse
783 quadding: %default-quadding%
784
785 ($section$))
786 ($section$)))
787
788 ;; from print/dbsect.dsl 1.76
789 (define ($section-title$)
790 (let* ((sect (current-node))
791 (info (info-element))
792 (exp-children (if (node-list-empty? info)
793 (empty-node-list)
794 (expand-children (children info)
795 (list (normalize "bookbiblio")
796 (normalize "bibliomisc")
797 (normalize "biblioset")))))
798 (parent-titles (select-elements (children sect) (normalize "title")))
799 (info-titles (select-elements exp-children (normalize "title")))
800 (titles (if (node-list-empty? parent-titles)
801 info-titles
802 parent-titles))
803 (subtitles (select-elements exp-children (normalize "subtitle")))
804 (renderas (inherited-attribute-string (normalize "renderas") sect))
805 (hlevel
806 ;; if not real section level, then get the apparent level
807 ;; from "renderas"
808 (if renderas
809 (section-level-by-gi #f (normalize renderas))
810 ;; else use the real level
811 ;;; BEGIN CHANGE
812 (if (have-ancestor? "appendix" (current-node))
813 (+ 1 (SECTLEVEL))
814 (SECTLEVEL)) ))
815 ;;; END CHANGE
816 (hs (HSIZE (- 4 hlevel))))
817 (make sequence
818 (make paragraph
819 font-family-name: %title-font-family%
820 font-weight: (if (< hlevel 5) 'bold 'medium)
821 font-posture: (if (< hlevel 5) 'upright 'italic)
822 font-size: hs
823 line-spacing: (* hs %line-spacing-factor%)
824 space-before: (* hs %head-before-factor%)
825 space-after: (if (node-list-empty? subtitles)
826 (* hs %head-after-factor%)
827 0pt)
828 ;;; BEGIN CHANGE
829 start-indent: ($section-start-indent$ hlevel)
830 ;;; END CHANGE
831 first-line-start-indent: 0pt
832 ;;; BEGIN CHANGE
833 quadding: ($section-title-quadding$)
834 ;;; END CHANGE
835 keep-with-next?: #t
836 heading-level: (if %generate-heading-level% hlevel 0)
837 ;; SimpleSects are never AUTO numbered...they aren't hierarchical
838 (if (string=? (element-label (current-node)) "")
839 (empty-sosofo)
840 (literal (element-label (current-node))
841 (gentext-label-title-sep (gi sect))))
842 (element-title-sosofo (current-node)))
843 (with-mode section-title-mode
844 (process-node-list subtitles))
845 ($section-info$ info))))
846
847 ;; from print/dbblock.dsl 1.76
848 (element sidebar
849 (make box
850 display?: #t
851 box-type: 'border
852 line-thickness: 1pt
853 ;; BEGIN CHANGED
854 start-indent: ($sidebar-start-indent$)
855 end-indent: ($sidebar-end-indent$)
856 ;; END CHANGED
857 (if (node-list-empty? (select-elements (children (current-node))
858 (normalize "title")))
859 (make display-group
860 start-indent: 2pt
861 end-indent: 2pt
862 space-before: %block-sep%
863 space-after: %block-sep%
864 (process-children))
865 (make display-group
866 start-indent: 2pt
867 end-indent: 2pt
868 space-before: 0pt
869 space-after: %block-sep%
870 (make sequence
871 (let* ((object (current-node))
872 (title (select-elements (children object)
873 (normalize "title")))
874 (nsep (gentext-label-title-sep (gi object))))
875 (make paragraph
876 font-weight: 'bold
877 space-before: %block-sep%
878 space-after: %para-sep%
879 keep-with-next?: #t
880 (literal (gentext-element-name object))
881 (if (string=? (element-label object) "")
882 (literal nsep)
883 (literal " " (element-label object) nsep))
884 (process-node-list (children title))))
885 (process-children))))))
886
887 ;; prevent glosslists to clutter pdf outlines
888 ;; code adapted from 1.76's ($lowtitlewithsosofo$)
889 (element (glosslist glossentry glossterm)
890 (let ((hs (HSIZE 0)))
891 (make paragraph
892 font-family-name: %title-font-family%
893 font-weight: 'bold
894 font-size: hs
895 line-spacing: (* hs %line-spacing-factor%)
896 space-before: (* hs %head-before-factor%)
897 space-after: (* hs %head-after-factor%)
898 start-indent: %body-start-indent%
899 quadding: 'start
900 keep-with-next?: #t
901 (process-children))))
902
903 </style-specification-body>
904 </style-specification>
905
906 <external-specification id="docbook" document="docbook.dsl">
907 </style-sheet>

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26