This is the mail archive of the docbook-apps@lists.oasis-open.org mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: first page of chapter top margin


I guess you want to begin the first chapter page with some
blank space before.

Usually, I don't put header in the first page of chapters. To do so,
you can redefine:

---------------------------------------------------------------------------------

(define (first-page-outer-header gi)
       (empty-sosofo)
      )
----------------------------------------------------------------------------------

and the same for (first-page-inner-header gi)

Anyway, you can make the chapter tittle (or appendix, or whatever)
in such way that you get plenty of room after the header.

I use the following which works as the default style in the docbook
DSSSL
except when a chapter begins:

----------------------------------------------------------------------------------------

(define ($component-title$)
  (let* ((info (cond
  ((equal? (gi) (normalize "appendix"))
   (select-elements (children (current-node)) (normalize "docinfo")))
  ((equal? (gi) (normalize "article"))
   (node-list-filter-by-gi (children (current-node))
      (list (normalize "artheader")
            (normalize "articleinfo"))))
  ((equal? (gi) (normalize "bibliography"))
   (select-elements (children (current-node)) (normalize "docinfo")))
  ((equal? (gi) (normalize "chapter"))
   (select-elements (children (current-node)) (normalize "docinfo")))
  ((equal? (gi) (normalize "dedication"))
   (empty-node-list))
  ((equal? (gi) (normalize "glossary"))
   (select-elements (children (current-node)) (normalize "docinfo")))
  ((equal? (gi) (normalize "index"))
   (select-elements (children (current-node)) (normalize "docinfo")))
  ((equal? (gi) (normalize "preface"))
   (select-elements (children (current-node)) (normalize "docinfo")))
  ((equal? (gi) (normalize "reference"))
   (select-elements (children (current-node)) (normalize "docinfo")))
  ((equal? (gi) (normalize "setindex"))
   (select-elements (children (current-node)) (normalize "docinfo")))
  (else
   (empty-node-list))))
  (exp-children (if (node-list-empty? info)
      (empty-node-list)
      (expand-children (children info)
         (list (normalize "bookbiblio")
        (normalize "bibliomisc")
        (normalize "biblioset")))))
  (parent-titles (select-elements (children (current-node)) (normalize
"title")))
  (info-titles   (select-elements exp-children (normalize "title")))
  (titles        (if (node-list-empty? parent-titles)
       info-titles
       parent-titles))
  (subtitles     (select-elements exp-children (normalize "subtitle"))))


    ;; ==================== Changed for Chapter ======================
    (if (equal? (gi) (normalize "chapter"))
 (make sequence
   "Chapter n"
   (make paragraph
     font-family-name: %title-font-family%
     font-weight: 'semi-light
     font-size: (HSIZE 6)
     space-before: 0pt
     space-after: 1cm
     quadding: 'end
     heading-level: (if %generate-heading-level% 1 0)
     keep-with-next?: #t
     (if (string=? (element-label) "")
  (empty-sosofo)
  (make sequence
    line-spacing: (* (HSIZE 1) %line-spacing-factor%)
    (literal (gentext-element-name-space (current-node)))
      (make sequence
         font-size: (* (HSIZE 6) 2.5)
         font-weight: 'bold
         color: light-blue
   (literal (element-label))))))
        ;; "." removed   (gentext-label-title-sep (gi))

   ;; Chapter title
   (make paragraph
     font-family-name: %title-font-family%
     font-weight: 'bold
     font-size: (HSIZE 6)
     line-spacing: (* (HSIZE 1) %line-spacing-factor%)
     space-before: 0.5cm
     space-after: 1.5cm
     start-indent: 0pt
     first-line-start-indent: 0pt
     quadding: 'end
     heading-level: (if %generate-heading-level% 1 0)
     keep-with-next?: #t
     (if (node-list-empty? titles)
     (element-title-sosofo) ;; get a default!
     (with-mode chapter-title-mode
   (make sequence
   (process-node-list titles))))))

  ;; If not Chapter:
 (make sequence
   (make paragraph
     font-family-name: %title-font-family%
     font-weight: 'bold
     font-size: (HSIZE 4)
     line-spacing: (* (HSIZE 4) %line-spacing-factor%)
     space-before: (* (HSIZE 4) %head-before-factor%)
     start-indent: 0pt
     first-line-start-indent: 0pt
     quadding: %component-title-quadding%
     heading-level: (if %generate-heading-level% 1 0)
     keep-with-next?: #t

     (if (string=? (element-label) "")
  (empty-sosofo)
  (literal (gentext-element-name-space (current-node))
      (element-label)
      (gentext-label-title-sep (gi))))

     (if (node-list-empty? titles)
  (element-title-sosofo) ;; get a default!
  (with-mode component-title-mode
    (make sequence
      (process-node-list titles)))))

   (make paragraph
     font-family-name: %title-font-family%
     font-weight: 'bold
     font-posture: 'italic
     font-size: (HSIZE 3)
     line-spacing: (* (HSIZE 3) %line-spacing-factor%)
     space-before: (* 0.5 (* (HSIZE 3) %head-before-factor%))
     space-after: (* (HSIZE 4) %head-after-factor%)
     start-indent: 0pt
     first-line-start-indent: 0pt
     quadding: %component-subtitle-quadding%
     keep-with-next?: #t

     (with-mode component-title-mode
       (make sequence
  (process-node-list subtitles))))))))

;; Chapter-Title Mode
(mode chapter-title-mode
  (element title
    (make sequence
      (process-children))))

---------------------------------------------------------------------------------------------------

HTH,

Regards,
Juan R. Migoya
SPAIN

Tammy Fox wrote:

> How do I change the top margin of the first page of each chapter and
> appendix?
>
> I tried setting the head-after-factor in the component-title
> definition, but that didn't seem to have any effect.
>
> I'm using DSSSL stylesheets.
>
> Thanks,
> Tammy


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]