From 0e61227b98309f73b52e23538de78cd75331f21f Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Fri, 19 Mar 2004 17:26:31 +0000 Subject: [PATCH] * scm/page-layout.scm (ly:optimal-page-breaks): Bugfix: underful solutions are now optimal too. * input/test/page-breaks.ly: New file. --- ChangeLog | 2 ++ input/test/page-breaks.ly | 33 +++++++++++++++++++++++++++++++++ input/test/title-markup.ly | 2 +- scm/page-layout.scm | 5 ++++- 4 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 input/test/page-breaks.ly diff --git a/ChangeLog b/ChangeLog index a01fa81a8d..72403fee62 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,8 @@ * scm/page-layout.scm (ly:optimal-page-breaks): Bugfix: underful solutions are now optimal too. + * input/test/page-breaks.ly: New file. + * lily/paper-outputter.cc (Paper_outputter): Import page breaking functions into safe module. diff --git a/input/test/page-breaks.ly b/input/test/page-breaks.ly new file mode 100644 index 0000000000..ff03bf09e2 --- /dev/null +++ b/input/test/page-breaks.ly @@ -0,0 +1,33 @@ +\version "2.1.30" + +\header { + texidoc = "Stress optimal page breaking. This should look nice on 4 a6 pages." + copyright = "Copyright by /me" + + title = "Title" + subtitle = "(and (the) subtitle)" + subsubtitle = "Sub sub title" + poet = "Poet" + composer = "Composer" + texttranslator = "Text Translator" + opus = "opus 0" + meter = "Meter (huh?)" + arranger = "Arranger" + instrument = "Instrument" + piece = "Piece" +} + +\score { + \context Staff \notes \relative c' { + %% 16: ideally cramped + %% 17: very bad without density + \repeat unfold 17 { a b c d \break } + } + \paper { + %% #(set-paper-size "a6") + linewidth = 80\mm + vsize = 150 \mm + hsize = 105 \mm + #(define page-breaking ly:optimal-page-breaks) + } +} diff --git a/input/test/title-markup.ly b/input/test/title-markup.ly index 9d0a77689b..138d1760ad 100644 --- a/input/test/title-markup.ly +++ b/input/test/title-markup.ly @@ -85,7 +85,7 @@ spaceTest = \markup { "two space chars" } %% stress page breaking: %% 35 keep on 3 pages %% 36 spread evenly over 4 pages - \repeat unfold 35 { a b c d \break } + \repeat unfold 36 { a b c d \break } c1 } } diff --git a/scm/page-layout.scm b/scm/page-layout.scm index 0c75b5e58a..80270ec48f 100644 --- a/scm/page-layout.scm +++ b/scm/page-layout.scm @@ -229,7 +229,10 @@ (hh (make-node '() (node-line node) 0 0 height)) (break-score (robust-break-score node)) (density-score (if (null? paths) 0 - (* 0 (density-variance + ;; TODO: find out why we need density + ;; use other height-score parameters? + ;; See: input/test/page-breaks.ly + (* 1 (density-variance (cons hh (get-path (car paths))))))) (page-score (height-score page height)) (this-score (add-scores page-score break-score density-score)) -- 2.39.5