;; $Id: dbdivis.dsl,v 1.5 2003/12/05 05:00:05 adicarlo Exp $
;;
;; This file is part of the Modular DocBook Stylesheet distribution.
;; See ../README or http://docbook.sourceforge.net/projects/dsssl/
;;
;; ============================= DIVISIONS ==============================
(element set
(let* ((setinfo (select-elements (children (current-node))
(normalize "setinfo")))
(nl (titlepage-info-elements (current-node) setinfo)))
(make sequence
(if %generate-set-titlepage%
(make simple-page-sequence
page-n-columns: %titlepage-n-columns%
input-whitespace-treatment: 'collapse
use: default-text-style
(set-titlepage nl 'recto)
(make display-group
break-before: 'page
(set-titlepage nl 'verso)))
(empty-sosofo))
(if (not (generate-toc-in-front))
(process-children)
(empty-sosofo))
(if %generate-set-toc%
(make simple-page-sequence
page-n-columns: %page-n-columns%
page-number-format: ($page-number-format$ (normalize "toc"))
use: default-text-style
left-header: ($left-header$ (normalize "toc"))
center-header: ($center-header$ (normalize "toc"))
right-header: ($right-header$ (normalize "toc"))
left-footer: ($left-footer$ (normalize "toc"))
center-footer: ($center-footer$ (normalize "toc"))
right-footer: ($right-footer$ (normalize "toc"))
input-whitespace-treatment: 'collapse
(build-toc (current-node)
(toc-depth (current-node))))
(empty-sosofo))
(if (generate-toc-in-front)
(process-children)
(empty-sosofo)))))
(element (set title) (empty-sosofo))
(element book
(let* ((bookinfo (select-elements (children (current-node))
(normalize "bookinfo")))
(dedication (select-elements (children (current-node))
(normalize "dedication")))
(nl (titlepage-info-elements (current-node) bookinfo)))
(make sequence
(if %generate-book-titlepage%
(make simple-page-sequence
page-n-columns: %titlepage-n-columns%
input-whitespace-treatment: 'collapse
use: default-text-style
(book-titlepage nl 'recto)
(make display-group
break-before: 'page
(book-titlepage nl 'verso)))
(empty-sosofo))
(if (node-list-empty? dedication)
(empty-sosofo)
(with-mode dedication-page-mode
(process-node-list dedication)))
(if (not (generate-toc-in-front))
(process-children)
(empty-sosofo))
(if %generate-book-toc%
(make simple-page-sequence
page-n-columns: %page-n-columns%
page-number-format: ($page-number-format$ (normalize "toc"))
use: default-text-style
left-header: ($left-header$ (normalize "toc"))
center-header: ($center-header$ (normalize "toc"))
right-header: ($right-header$ (normalize "toc"))
left-footer: ($left-footer$ (normalize "toc"))
center-footer: ($center-footer$ (normalize "toc"))
right-footer: ($right-footer$ (normalize "toc"))
input-whitespace-treatment: 'collapse
(build-toc (current-node)
(toc-depth (current-node))))
(empty-sosofo))
(let loop ((gilist ($generate-book-lot-list$)))
(if (null? gilist)
(empty-sosofo)
(if (not (node-list-empty?
(select-elements (descendants (current-node))
(car gilist))))
(make simple-page-sequence
page-n-columns: %page-n-columns%
page-number-format: ($page-number-format$ (normalize "lot"))
use: default-text-style
left-header: ($left-header$ (normalize "lot"))
center-header: ($center-header$ (normalize "lot"))
right-header: ($right-header$ (normalize "lot"))
left-footer: ($left-footer$ (normalize "lot"))
center-footer: ($center-footer$ (normalize "lot"))
right-footer: ($right-footer$ (normalize "lot"))
input-whitespace-treatment: 'collapse
(build-lot (current-node) (car gilist)))
(loop (cdr gilist)))))
(if (generate-toc-in-front)
(process-children)
(empty-sosofo)))))
(element (book title) (empty-sosofo))
(element part
(let* ((partinfo (select-elements (children (current-node))
(normalize "docinfo")))
(partintro (select-elements (children (current-node))
(normalize "partintro")))
(nl (titlepage-info-elements
(current-node)
partinfo
(if %generate-partintro-on-titlepage%
partintro
(empty-node-list)))))
(make sequence
(if %generate-part-titlepage%
(make simple-page-sequence
page-n-columns: %titlepage-n-columns%
input-whitespace-treatment: 'collapse
use: default-text-style
(part-titlepage nl 'recto)
(make display-group
break-before: 'page
(part-titlepage nl 'verso)))
(empty-sosofo))
(if (not (generate-toc-in-front))
(process-children)
(empty-sosofo))
;; generate a part TOC on a separate page
(if (and %generate-part-toc%
(not %generate-part-toc-on-titlepage%))
(make simple-page-sequence
page-n-columns: %page-n-columns%
page-number-format: ($page-number-format$ (normalize "toc"))
use: default-text-style
left-header: ($left-header$ (normalize "toc"))
center-header: ($center-header$ (normalize "toc"))
right-header: ($right-header$ (normalize "toc"))
left-footer: ($left-footer$ (normalize "toc"))
center-footer: ($center-footer$ (normalize "toc"))
right-footer: ($right-footer$ (normalize "toc"))
input-whitespace-treatment: 'collapse
(build-toc (current-node)
(toc-depth (current-node))))
(empty-sosofo))
;; this seems wrong relative to generate-toc-in-front,
;; goes *after* the content ??!
(if (and (not (node-list-empty? partintro))
(not %generate-partintro-on-titlepage%))
($process-partintro$ partintro #t)
(empty-sosofo))
(if (generate-toc-in-front)
(process-children)
(empty-sosofo)))))
(element (part title) (empty-sosofo))
(element partintro (empty-sosofo))
(element (partintro title)
(let* ((hlevel 1)
(hs (HSIZE (- 4 hlevel))))
(make paragraph
font-family-name: %title-font-family%
font-weight: (if (< hlevel 5) 'bold 'medium)
font-posture: (if (< hlevel 5) 'upright 'italic)
font-size: hs
line-spacing: (* hs %line-spacing-factor%)
space-before: (* hs %head-before-factor%)
space-after: (* hs %head-after-factor%)
start-indent: 0pt
first-line-start-indent: 0pt
quadding: %section-title-quadding%
keep-with-next?: #t
heading-level: (if %generate-heading-level% (+ hlevel 1) 0)
(element-title-sosofo (parent (current-node))))))
(define ($process-partintro$ partintro make-page-seq?)
(if make-page-seq?
(make simple-page-sequence
page-n-columns: %page-n-columns%
page-number-restart?: (or %page-number-restart%
(book-start?)
(first-chapter?))
page-number-format: ($page-number-format$)
use: default-text-style
left-header: ($left-header$)
center-header: ($center-header$)
right-header: ($right-header$)
left-footer: ($left-footer$)
center-footer: ($center-footer$)
right-footer: ($right-footer$)
start-indent: %body-start-indent%
input-whitespace-treatment: 'collapse
quadding: %default-quadding%
(make sequence
(process-node-list (children partintro))
(make-endnotes partintro)))
(make sequence
start-indent: %body-start-indent%
(process-node-list (children partintro))
(make-endnotes partintro))))