From: Han-Wen Nienhuys Date: Fri, 11 Jun 2004 13:40:22 +0000 (+0000) Subject: * scm/page-breaking.scm (ly:optimal-page-breaks): don't do X-Git-Tag: release/2.3.4~24 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=bca8c6906f9639f8414e8f5d45475f2765462d52;p=lilypond.git * scm/page-breaking.scm (ly:optimal-page-breaks): don't do negative penalties. * scm/page-breaking.scm (ly:optimal-page-breaks): new file. Rewrite function. --- diff --git a/ChangeLog b/ChangeLog index 91cc77b0f2..616031b976 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2004-06-11 Han-Wen Nienhuys + * scm/page-breaking.scm (ly:optimal-page-breaks): don't do + negative penalties. + * Documentation/user/changing-defaults.itely (Creating contexts): index entries diff --git a/scm/page-breaking.scm b/scm/page-breaking.scm index c5b381d495..11d590f0ec 100644 --- a/scm/page-breaking.scm +++ b/scm/page-breaking.scm @@ -61,7 +61,7 @@ #:pageno page-num #:penalty penalty)) - (define INFINITY 1e9) + (define MAXPENALTY 1e9) (define (line-height line) @@ -76,9 +76,15 @@ ;; scale independent (relative-empty (/ left available))) - ;; Convexity: two half-empty pages is better than 1 completely - ;; empty page - (* (1+ relative-empty) relative-empty))) + (if (negative? left) + + ; + ; too full + MAXPENALTY + + ;; Convexity: two half-empty pages is better than 1 completely + ;; empty page + (* (1+ relative-empty) relative-empty)))) ;; TODO: rewrite @@ -151,13 +157,13 @@ CURRENT-BEST is the best result sofar, or #f." "height " page-height " spc used: " space-used "\n" "pen " this-page-penalty " lines: " current-lines "\n")) - (foo (display debug-info)) +; (foo (display debug-info)) ) (if (and (pair? done-lines) ;; if this page is too full, adding another line won't help - (positive? this-page-penalty)) + (< this-page-penalty MAXPENALTY)) (walk-paths (cdr done-lines) (cdr best-paths) (cons (car done-lines) current-lines) last? new-best) new-best))) @@ -197,7 +203,7 @@ DONE." (break-numbers (map line-number break-nodes)) ) - (display break-lines) +; (display break-lines) (if (ly:get-option 'verbose) (begin