From ee06cbe1ce0c115b0d7b3510ba0a9b06853770a0 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Sun, 12 Sep 2004 08:55:24 +0000 Subject: [PATCH] * input/regression/system-overstrike.ly: new file. * scm/page-layout.scm (ly:optimal-page-breaks): add betweensystempadding also to fixed distance for the spring. This fixes: morgenlied.ly and input/regression/beam-concave.ly --- ChangeLog | 5 +++++ input/regression/system-overstrike.ly | 18 ++++++++++++++++++ scm/page-layout.scm | 17 +++++++++-------- 3 files changed, 32 insertions(+), 8 deletions(-) create mode 100644 input/regression/system-overstrike.ly diff --git a/ChangeLog b/ChangeLog index c4056bc0f8..896358812d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2004-09-12 Han-Wen Nienhuys + * input/regression/system-overstrike.ly: new file. + + * scm/page-layout.scm (ly:optimal-page-breaks): add + betweensystempadding also to fixed distance for the spring. + * scm/define-grobs.scm (all-grob-descriptions): fix order of key-cancellation. diff --git a/input/regression/system-overstrike.ly b/input/regression/system-overstrike.ly new file mode 100644 index 0000000000..0537736ad9 --- /dev/null +++ b/input/regression/system-overstrike.ly @@ -0,0 +1,18 @@ +\version "2.3.16" +\header { texidoc = "By setting betweensystempadding to a negative +value, it is possible to eliminate the anti-collision constraints. +Then setting @code{betweensystemspace} to a low (nonzero) value, +print systems in overstrike. " +} + +\bookpaper { + raggedbottom =##t + betweensystempadding = - 4\cm + betweensystemspace = 3\mm +} + +{ + c1 \break + c'''1 +} + diff --git a/scm/page-layout.scm b/scm/page-layout.scm index 296444317b..3912db064b 100644 --- a/scm/page-layout.scm +++ b/scm/page-layout.scm @@ -273,13 +273,15 @@ is what have collected so far, and has ascending page numbers." (- (car (vector-ref real-extents (1- no-systems)))) )) + (fixed-dist (ly:output-def-lookup bookpaper 'betweensystempadding)) (calc-spring (lambda (idx) (let* ((this-system-ext (vector-ref staff-extents idx)) (next-system-ext (vector-ref staff-extents (1+ idx))) - (fixed (- (cdr next-system-ext) - (car this-system-ext))) + (fixed (max 0 (- (+ (cdr next-system-ext) + fixed-dist) + (car this-system-ext)))) (ideal (+ inter-system-space fixed)) (hooke (/ 1 (- ideal fixed))) ) @@ -287,16 +289,15 @@ is what have collected so far, and has ascending page numbers." )) (springs (map calc-spring (iota (1- no-systems)))) - (fixed-dist (ly:output-def-lookup bookpaper 'betweensystempadding)) (calc-rod (lambda (idx) (let* ((this-system-ext (vector-ref real-extents idx)) (next-system-ext (vector-ref real-extents (1+ idx))) - (distance (- (+ (cdr next-system-ext) + (distance (max (- (+ (cdr next-system-ext) fixed-dist) - (car this-system-ext) - )) + (car this-system-ext) + ) 0)) (entry (list idx (1+ idx) distance))) entry))) (rods (map calc-rod (iota (1- no-systems)))) @@ -314,13 +315,13 @@ is what have collected so far, and has ascending page numbers." (cdr result))) ) - (if #f ;; debug. + (if #t ;; debug. (begin (display (list "\n# systems: " no-systems "\nreal-ext" real-extents "\nstaff-ext" staff-extents "\ninterscore" inter-system-space "\nspace-letf" space-left - "\npage empty" page-very-empty + "\npage empty" page-very-empty? "\nspring,rod" springs rods "\ntopskip " topskip " space " space -- 2.39.5