;; $Id: dbadmon.dsl,v 1.5 2004/10/10 14:18:40 petere78 Exp $ ;; ;; This file is part of the Modular DocBook Stylesheet distribution. ;; See ../README or http://docbook.sourceforge.net/projects/dsssl/ ;; ;; ============================ ADMONITIONS ============================= (define ($graphical-admonition$) (let* ((adm (current-node)) (title (select-elements (children adm) (normalize "title"))) (title? (not (node-list-empty? title))) (adm-title (if title? (with-mode title-sosofo-mode (process-node-list (node-list-first title))) (literal (gentext-element-name adm)))) (graphic (make external-graphic display?: #f entity-system-id: ($admon-graphic$))) (f-child (node-list-first (children (current-node)))) (r-child (node-list-rest (children (current-node))))) (make display-group space-before: %block-sep% space-after: %block-sep% start-indent: (+ (inherited-start-indent) ($admon-graphic-width$)) font-family-name: %admon-font-family% font-size: (- %bf-size% 1pt) font-weight: 'medium font-posture: 'upright line-spacing: (* (- %bf-size% 1pt) %line-spacing-factor%) (if title? (make display-group (make paragraph first-line-start-indent: (- ($admon-graphic-width$)) keep-with-next?: #t (make line-field field-width: ($admon-graphic-width$) graphic) (make sequence font-family-name: %title-font-family% font-weight: 'bold adm-title)) (process-children)) (make display-group (make paragraph first-line-start-indent: (- ($admon-graphic-width$)) (make line-field field-width: ($admon-graphic-width$) graphic) (process-node-list (children f-child))) (process-node-list r-child)))))) (define ($admonition$) (if %admon-graphics% ($graphical-admonition$) (make display-group space-before: %block-sep% space-after: %block-sep% start-indent: (if %admon-graphics% (inherited-start-indent) (+ (inherited-start-indent) (* (ILSTEP) 2))) font-size: (- %bf-size% 1pt) font-weight: 'medium font-posture: 'upright font-family-name: %admon-font-family% line-spacing: (* (- %bf-size% 1pt) %line-spacing-factor%) (process-children)))) (define ($admonpara$) (let* ((title (select-elements (children (parent (current-node))) (normalize "title"))) (has-title (not (node-list-empty? title))) (adm-title (if has-title (make sequence (with-mode title-sosofo-mode (process-node-list (node-list-first title))) (literal (gentext-label-title-sep (gi (parent (current-node)))))) (literal (gentext-element-name (parent (current-node))) (gentext-label-title-sep (gi (parent (current-node)))))))) (make paragraph space-before: %para-sep% space-after: %para-sep% (if (and (not %admon-graphics%) (= (child-number) 1)) (make sequence font-family-name: %title-font-family% font-weight: 'bold adm-title) (empty-sosofo)) (process-children-trim)))) (element important ($admonition$)) (element (important title) (empty-sosofo)) (element (important para) ($admonpara$)) (element (important simpara) ($admonpara$)) (element note ($admonition$)) (element (note title) (empty-sosofo)) (element (note para) ($admonpara$)) (element (note simpara) ($admonpara$)) (element tip ($admonition$)) (element (tip title) (empty-sosofo)) (element (tip para) ($admonpara$)) (element (tip simpara) ($admonpara$)) ;; perils are given special treatment by generating a centered title ;; and throwing a box around them ;; note that the paragraph indents are set by the box characteristics ;; (define ($peril$) (let* ((title (select-elements (children (current-node)) (normalize "title"))) (has-title (not (node-list-empty? title))) (adm-title (if has-title (make sequence (with-mode title-sosofo-mode (process-node-list (node-list-first title)))) (literal (gentext-element-name (current-node))))) (hs (HSIZE 2))) (if %admon-graphics% ($graphical-admonition$) (make display-group space-before: %block-sep% space-after: %block-sep% font-family-name: %admon-font-family% font-size: (- %bf-size% 1pt) font-weight: 'medium font-posture: 'upright line-spacing: (* (- %bf-size% 1pt) %line-spacing-factor%) (make box display?: #t box-type: 'border line-thickness: 2pt start-indent: (+ (inherited-start-indent) (* 2 (ILSTEP)) 2pt) end-indent: (inherited-end-indent) (make paragraph space-before: %para-sep% space-after: %para-sep% start-indent: 1em end-indent: 1em font-family-name: %title-font-family% font-weight: 'bold font-size: hs line-spacing: (* hs %line-spacing-factor%) quadding: 'center keep-with-next?: #t adm-title) (process-children)))))) (element caution ($peril$)) (element (caution title) (empty-sosofo)) (element warning ($peril$)) (element (warning title) (empty-sosofo))