;; $Id: dbrfntry.dsl,v 1.3 2003/01/15 08:24:23 adicarlo Exp $ ;; ;; This file is part of the Modular DocBook Stylesheet distribution. ;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ ;; ;; =========================== REFERENCE PAGES ========================== ;;(element reference ($component$)) (element reference (let* ((refinfo (select-elements (children (current-node)) (normalize "docinfo"))) (refintro (select-elements (children (current-node)) (normalize "partintro"))) (nl (titlepage-info-elements (current-node) refinfo (if %generate-partintro-on-titlepage% refintro (empty-node-list))))) (make sequence (if %generate-reference-titlepage% (make sequence (reference-titlepage nl 'recto) (reference-titlepage nl 'verso)) (empty-sosofo)) (if (not (generate-toc-in-front)) (process-children) (empty-sosofo)) (if (and %generate-reference-toc% (not %generate-reference-toc-on-titlepage%)) (make simple-page-sequence page-n-columns: %page-n-columns% page-number-restart?: #t 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 (and (not (node-list-empty? refintro)) (not %generate-partintro-on-titlepage%)) ($process-partintro$ refintro #t) (empty-sosofo)) (if (generate-toc-in-front) (if %refentry-new-page% (process-children) (make simple-page-sequence page-n-columns: %page-n-columns% 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$) input-whitespace-treatment: 'collapse quadding: %default-quadding% (process-children))) (empty-sosofo))))) ;; If each RefEntry begins on a new page, this title is going to wind ;; up on its own page, too, so make it a divtitlepage instead. Otherwise, ;; just let it be a component title. (element (reference title) (empty-sosofo)) ;; (if %refentry-new-page% ;; ($divtitlepage$) ;; (empty-sosofo))) (element refentry (make display-group keep: %refentry-keep% (if (or %refentry-new-page% (node-list=? (current-node) (sgml-root-element))) (make simple-page-sequence page-n-columns: %page-n-columns% 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$) input-whitespace-treatment: 'collapse quadding: %default-quadding% ($refentry-title$) (process-children)) (make sequence ($refentry-title$) ($block-container$))) (make-endnotes))) (define ($refentry-title$) (let* ((refmeta (select-elements (children (current-node)) (normalize "refmeta"))) (refentrytitle (select-elements (children refmeta) (normalize "refentrytitle"))) (refnamediv (select-elements (children (current-node)) (normalize "refnamediv"))) (refdescriptor (select-elements (children refnamediv) (normalize "refdescriptor"))) (refname (select-elements (children refnamediv) (normalize "refname"))) (title (if (node-list-empty? refentrytitle) (if (node-list-empty? refdescriptor) (node-list-first refname) refdescriptor) refentrytitle)) (slevel (SECTLEVEL)) ;; the true level in the section hierarchy (hlevel (if (> slevel 2) 2 slevel)) ;; limit to sect2 equiv. (hs (HSIZE (- 4 hlevel)))) (make paragraph font-family-name: %title-font-family% font-weight: 'bold font-size: hs line-spacing: (* hs %line-spacing-factor%) space-before: (* hs %head-before-factor%) space-after: (* hs %head-after-factor%) start-indent: %body-start-indent% first-line-start-indent: (- %body-start-indent%) quadding: 'start heading-level: (if %generate-heading-level% 2 0) keep-with-next?: #t (process-node-list (children title))))) ;; nwalsh, this is wrong, 29 July 1999 ; (if %refentry-function% ; (sosofo-append ; (literal "\no-break-space;") ; (process-first-descendant (normalize "manvolnum"))) ; (empty-sosofo))))) (element refmeta (empty-sosofo)) ;; handled by $refentry-title$ (element manvolnum (if %refentry-xref-manvolnum% (sosofo-append (literal "(") (process-children) (literal ")")) (empty-sosofo))) (element refmiscinfo (empty-sosofo)) (element refentrytitle ($charseq$)) (element refnamediv (make paragraph space-before: %para-sep% start-indent: %body-start-indent% quadding: 'start (process-children))) (element refname (make sequence (if (and %refentry-generate-name% (first-sibling? (current-node))) ($lowtitlewithsosofo$ 1 3 (literal (gentext-element-name (current-node)))) (empty-sosofo)) (make sequence font-weight: 'medium font-family-name: %refentry-name-font-family% (process-children) (if (last-sibling? (current-node)) (empty-sosofo) (literal (gentext-intra-label-sep (gi (current-node)))))))) (element refpurpose (make sequence font-family-name: %body-font-family% (make sequence (literal " \em-dash ") (process-children)) (make paragraph-break))) (element refdescriptor (empty-sosofo)) (element refclass (let ((role (attribute-string "role"))) (make paragraph space-before: %para-sep% start-indent: %body-start-indent% quadding: 'start (make sequence font-weight: 'bold (literal (if role (string-append role ": ") ""))) (process-children-trim)))) (element refsynopsisdiv ($section$)) (element (refsynopsisdiv title) (empty-sosofo)) (element refsect1 ($section$)) (element (refsect1 title) (empty-sosofo)) (element refsect2 ($section$)) (element (refsect2 title) (empty-sosofo)) (element refsect3 ($section$)) (element (refsect3 title) (empty-sosofo))