From 8ab94a1d8616fe8324b64afb37d13fcfee1e87b7 Mon Sep 17 00:00:00 2001 From: kroger Date: Sun, 22 Aug 2004 14:54:07 +0000 Subject: [PATCH] * scm/framework-ps.scm (output-framework): set the first postscript page number to initialpagenumber * scm/page-layout.scm (ly:optimal-page-breaks): print the first page number according to initialpagenumber * scm/paper.scm (set-paper-dimensions): added initialpagenumber parameter --- ChangeLog | 11 +++++++ scm/framework-ps.scm | 2 +- scm/page-layout.scm | 72 ++++++++++++++++++++++---------------------- scm/paper.scm | 1 + 4 files changed, 49 insertions(+), 37 deletions(-) diff --git a/ChangeLog b/ChangeLog index 34bca04e5e..20d9eb2a35 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2004-08-22 Pedro Kroger + + * scm/framework-ps.scm (output-framework): set the first + postscript page number to initialpagenumber + + * scm/page-layout.scm (ly:optimal-page-breaks): print the first + page number according to initialpagenumber + + * scm/paper.scm (set-paper-dimensions): added initialpagenumber + parameter + 2004-08-22 Han-Wen Nienhuys * scripts/convert-ly.py (lilypond_version_re_str): handle diff --git a/scm/framework-ps.scm b/scm/framework-ps.scm index fd2134f5bd..460b18a3e5 100644 --- a/scm/framework-ps.scm +++ b/scm/framework-ps.scm @@ -195,7 +195,7 @@ (define-public (output-framework outputter book scopes fields basename) (let* ((bookpaper (ly:paper-book-book-paper book)) (pages (ly:paper-book-pages book)) - (page-number 0) + (page-number (1- (ly:output-def-lookup bookpaper 'initialpagenumber))) (page-count (length pages))) (for-each (lambda (x) diff --git a/scm/page-layout.scm b/scm/page-layout.scm index fd03aba91a..98db6b8e6f 100644 --- a/scm/page-layout.scm +++ b/scm/page-layout.scm @@ -275,44 +275,44 @@ corresponding to DONE-LINES. CURRENT-BEST is the best result sofar, or #f." (let* ((this-page-num (if (null? best-paths) - 1 - (1+ (node-page-number (car best-paths))))) - (prev-penalty (if (null? best-paths) - 0.0 - (node-penalty (car best-paths)))) - (page-height (page-height this-page-num last?)) - (space-used (cumulative-height current-lines)) - (this-page-penalty (height-penalty page-height space-used)) - (user-penalty (ly:paper-system-break-penalty (car current-lines))) - (total-penalty (combine-penalties - user-penalty this-page-penalty prev-penalty)) - (better? (or - (not current-best) - (< total-penalty (node-penalty current-best)))) - (new-best (if better? - (make-node (if (null? best-paths) - #f - (car best-paths)) - current-lines - this-page-num total-penalty) - current-best))) - + (ly:output-def-lookup bookpaper 'initialpagenumber) + (1+ (node-page-number (car best-paths))))) + (prev-penalty (if (null? best-paths) + 0.0 + (node-penalty (car best-paths)))) + (page-height (page-height this-page-num last?)) + (space-used (cumulative-height current-lines)) + (this-page-penalty (height-penalty page-height space-used)) + (user-penalty (ly:paper-system-break-penalty (car current-lines))) + (total-penalty (combine-penalties + user-penalty this-page-penalty prev-penalty)) + (better? (or + (not current-best) + (< total-penalty (node-penalty current-best)))) + (new-best (if better? + (make-node (if (null? best-paths) + #f + (car best-paths)) + current-lines + this-page-num total-penalty) + current-best))) + (if #f ;; debug - (display - (list - "user pen " user-penalty " prev-penalty " - prev-penalty "\n" - "better? " better? " total-penalty " total-penalty "\n" - "height " page-height " spc used: " space-used "\n" - "pen " this-page-penalty " lines: " current-lines "\n"))) - + (display + (list + "user pen " user-penalty " prev-penalty " + prev-penalty "\n" + "better? " better? " total-penalty " total-penalty "\n" + "height " page-height " spc used: " space-used "\n" + "pen " this-page-penalty " lines: " current-lines "\n"))) + (if (and (pair? done-lines) - ;; if this page is too full, adding another line won't help - (< this-page-penalty MAXPENALTY)) - (walk-paths (cdr done-lines) (cdr best-paths) - (cons (car done-lines) current-lines) - last? new-best) - new-best))) + ;; if this page is too full, adding another line won't help + (< this-page-penalty MAXPENALTY)) + (walk-paths (cdr done-lines) (cdr best-paths) + (cons (car done-lines) current-lines) + last? new-best) + new-best))) (define (walk-lines done best-paths todo) "Return the best page breaking as a single diff --git a/scm/paper.scm b/scm/paper.scm index dad869d880..24d42e26b6 100644 --- a/scm/paper.scm +++ b/scm/paper.scm @@ -90,6 +90,7 @@ (module-define! m 'headsep (* 4 mm)) (module-define! m 'footsep (* 4 mm)) (module-define! m 'leftmargin #f) + (module-define! m 'initialpagenumber 1) (module-define! m 'rightmargin (* 10 mm)))) (define (internal-set-paper-size module name) -- 2.39.5