[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: Re: DOCBOOK-APPS: Re: How to output appendices,bibliographies on seperate pages using DSSSL
On Thu, Nov 29, 2001 at 07:55:08PM -0500, Rory Hunter wrote:
> Norman Walsh wrote:
>
> >/ Rory Hunter <roryh@dcs.ed.ac.uk> was heard to say:
> >| I'd like to be able to output appendices and bibliographies on
> >| seperate pages, using the DSSSL print stylesheet. I've looked at
> >| dbparam.dsl, and at some of the other files, but it's a bit beyond me
> >| at present. Is there any relatively easy way to do this?
> >
> >Are these appendixes and bibliographies in a book, or somewhere else?
>
>
> They're in an <article>.
I have done that for appendices. It requires modifying the handling
of article, and the handling of appendices. This sample code may help
you - I hope it's OK when out of context - the full file will be
released RSN (ie. when I'm done with admin tasks) at
https://savannah.gnu.org/projects/alcovebook/
Indeed what this does is providing an
%article-section-starts-new-page% flag, which controls that for all
section-level elements, including glossary and such.
There are also many features in that, some of which maybe not
optimally implemented - hopefully all changed code should be tagged as
such. The reference code was 1.72, I did not upgrade it yet.
;;;
;;; Modified code from docbook-dsssl 1.72
;;;
;; emulate 1.72 behaviour using new features
(define %article-section-starts-new-page% #f)
(define %endnotes-on-own-page% #f)
(define ($endnotes-left-footer$) ($left-footer$))
(define ($endnotes-right-footer$) ($right-footer$))
(define ($endnotes-center-footer$) ($center-footer$))
(define (%titlepage-left-header%) (empty-sosofo))
(define (%titlepage-right-header%) (empty-sosofo))
(define (%titlepage-center-header%) (empty-sosofo))
(define (%titlepage-left-footer%) (empty-sosofo))
(define (%titlepage-right-footer%) (empty-sosofo))
(define (%titlepage-center-footer%) (empty-sosofo))
;; the code
(element article
(let* ((info (node-list-filter-by-gi (children (current-node))
(list (normalize "artheader")
(normalize "articleinfo"))))
(nl (titlepage-info-elements (current-node) info))
(article-titlepage (if %generate-article-titlepage-on-separate-page%
(make sequence
(if (article-titlepage-content? nl 'recto)
(make simple-page-sequence
page-n-columns: %page-n-columns%
use: default-text-style
quadding: %default-quadding%
;; BEGIN ADDITION
center-header: (%titlepage-center-header%)
left-header: (%titlepage-left-header%)
right-header: (%titlepage-right-header%)
center-footer: (%titlepage-center-footer%)
left-footer: (%titlepage-left-footer%)
right-footer: (%titlepage-right-footer%)
;; END ADDITION
(article-titlepage nl 'recto))
(empty-sosofo))
(if (article-titlepage-content? nl 'verso)
(make simple-page-sequence
page-n-columns: %page-n-columns%
use: default-text-style
quadding: %default-quadding%
;; BEGIN ADDITION
center-header: (%titlepage-center-header%)
left-header: (%titlepage-left-header%)
right-header: (%titlepage-right-header%)
center-footer: (%titlepage-center-footer%)
left-footer: (%titlepage-left-footer%)
right-footer: (%titlepage-right-footer%)
;; END ADDITION
(article-titlepage nl 'verso))
(empty-sosofo)))
(make sequence
(article-titlepage nl 'recto)
(article-titlepage nl 'verso)))))
(make sequence
(if (and %generate-article-titlepage%
%generate-article-titlepage-on-separate-page%)
article-titlepage
(empty-sosofo))
(if (and %generate-article-toc%
(not %generate-article-toc-on-titlepage%)
%generate-article-titlepage-on-separate-page%
(generate-toc-in-front))
(make simple-page-sequence
page-n-columns: %page-n-columns%
page-number-restart?: %article-page-number-restart%
page-number-format: ($page-number-format$ (normalize "toc"))
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
use: default-text-style
quadding: %default-quadding%
(build-toc (current-node)
(toc-depth (current-node))))
(empty-sosofo))
;; BEGIN ADDITION
(if %article-section-starts-new-page%
(make sequence
(process-children)
(make-endnotes))
;;; END ADDITION
(make simple-page-sequence
;; BEGIN ADDITION
;; WARNING: all this is copied in "element section" below
;;; END ADDITION
page-n-columns: %page-n-columns%
page-number-restart?: (or %article-page-number-restart%
(book-start?))
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%
(if (and %generate-article-titlepage%
(not %generate-article-titlepage-on-separate-page%))
article-titlepage
(empty-sosofo))
(if (and %generate-article-toc%
(generate-toc-in-front)
(not %generate-article-toc-on-titlepage%)
(not %generate-article-titlepage-on-separate-page%))
(make display-group
space-after: (* (HSIZE 3) %head-after-factor%)
(build-toc (current-node)
(toc-depth (current-node))))
(empty-sosofo))
(process-children)
;;; BEGIN ADDITION
(if %endnotes-on-own-page%
(empty-sosofo)
;;; END ADDITION
(make-endnotes))
(if (and %generate-article-toc%
(not (generate-toc-in-front))
(not %generate-article-toc-on-titlepage%)
(not %generate-article-titlepage-on-separate-page%))
(make display-group
space-after: (* (HSIZE 3) %head-after-factor%)
(build-toc (current-node)
(toc-depth (current-node))))
(empty-sosofo))))
;;; BEGIN ADDITION
(if %endnotes-on-own-page%
(make simple-page-sequence
page-n-columns: %page-n-columns%
page-number-restart?: (or %article-page-number-restart%
(book-start?))
page-number-format: ($page-number-format$)
use: default-text-style
left-header: ($left-header$)
center-header: ($center-header$)
right-header: ($right-header$)
left-footer: ($endnotes-left-footer$)
center-footer: ($endnotes-center-footer$)
right-footer: ($endnotes-right-footer$)
start-indent: %body-start-indent%
input-whitespace-treatment: 'collapse
quadding: %default-quadding%
(make-endnotes))
(empty-sosofo))
;;; END ADDITION
(if (and %generate-article-toc%
(not %generate-article-toc-on-titlepage%)
%generate-article-titlepage-on-separate-page%
(not (generate-toc-in-front)))
(make simple-page-sequence
page-n-columns: %page-n-columns%
use: default-text-style
quadding: %default-quadding%
(build-toc (current-node)
(toc-depth (current-node))))
(empty-sosofo)))))
(element section ($maybe-paged-section$))
(element (article appendix) ($maybe-paged-section$))
(element (article glossary) ($maybe-paged-section$))
(define ($maybe-paged-section$)
(if (and %article-section-starts-new-page%
(not (is-section-level-element (parent (current-node)))))
(make simple-page-sequence
;; WARNING: all this is copied from the page-seq above
page-n-columns: %page-n-columns%
page-number-restart?: (or %article-page-number-restart%
(book-start?))
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%
($section$))
($section$)))
Hope this helps,
--
Yann Dirson <Yann.Dirson@fr.alcove.com> http://www.alcove.com/
Free-Software Engineer Ingénieur Logiciel-Libre
Free-Software time manager Responsable du temps Informatique-Libre
Debian GNU/Linux developper <dirson@debian.org>
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC