[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