From 8bf66198d88840198ff36421ecf981734e820814 Mon Sep 17 00:00:00 2001 From: hanwen Date: Sat, 9 Oct 2004 23:56:19 +0000 Subject: [PATCH] (set-paper-dimension-variables): new function. Define dimension-variables explicitly in \paper too. This allows overriding linewidth inside \score { \paper { } } blocks --- ChangeLog | 5 +++++ lily/score.cc | 2 +- ly/book-paper-defaults.ly | 1 + ly/declarations-init.ly | 3 +++ scm/paper.scm | 29 +++++++++++++++++------------ 5 files changed, 27 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0d0247da4a..21983ba224 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2004-10-10 Han-Wen Nienhuys + * scm/paper.scm (set-paper-dimension-variables): new + function. Define dimension-variables explicitly in \paper too. + This allows overriding linewidth inside \score { \paper { } } + blocks + * scm/framework-tex.scm (convert-to-ps): invoke dvips with -t landscape. (header): add landscape and papersize options. diff --git a/lily/score.cc b/lily/score.cc index 3a7d5a408a..15160896ac 100644 --- a/lily/score.cc +++ b/lily/score.cc @@ -238,7 +238,7 @@ Score::book_rendering (String outname, for (int i = 0; !i || i < outdef_count; i++) { Output_def *def = outdef_count ? defs_[i] : default_def; - SCM scaled= SCM_EOL; + SCM scaled = SCM_EOL; if (def->c_variable ("is-paper") == SCM_BOOL_T) { def = scale_output_def (def, scale); diff --git a/ly/book-paper-defaults.ly b/ly/book-paper-defaults.ly index a7ceafd33d..9ff72cf9fe 100644 --- a/ly/book-paper-defaults.ly +++ b/ly/book-paper-defaults.ly @@ -78,5 +78,6 @@ #(define make-header plain-header) #(define make-footer plain-footer) + #(set-paper-dimension-variables (current-module)) } diff --git a/ly/declarations-init.ly b/ly/declarations-init.ly index dd838f25da..a82f358560 100644 --- a/ly/declarations-init.ly +++ b/ly/declarations-init.ly @@ -79,6 +79,9 @@ melismaEnd = #(make-span-event 'ManualMelismaEvent STOP) cm = #(* 10 mm) \include "engraver-init.ly" + + #(set-paper-dimension-variables (current-module)) + } diff --git a/scm/paper.scm b/scm/paper.scm index 7cba07aaa7..2b22dd6966 100644 --- a/scm/paper.scm +++ b/scm/paper.scm @@ -4,6 +4,13 @@ ;;;; ;;;; (c) 2004 Han-Wen Nienhuys +(define-public (set-paper-dimension-variables mod) + (module-define! mod 'dimension-variables + '(pt mm cm in staffheight staff-space + betweensystemspace betweensystempadding + linewidth indent hsize vsize + staffspace linethickness ledgerlinethickness + blotdiameter interscoreline leftmargin rightmargin))) (define-public (paper-set-staff-size sz) "Function to be called inside a \\paper{} block to set the staff size." @@ -37,13 +44,7 @@ (module-define! m 'blotdiameter (* 0.35 pt)) (module-define! m 'interscoreline (* 4 mm)) - (module-define! m 'dimension-variables - '(pt mm cm in staffheight staff-space - betweensystemspace betweensystempadding - linewidth indent hsize vsize - staffspace linethickness ledgerlinethickness - blotdiameter interscoreline leftmargin rightmargin)) - )) + )) (define-public (set-global-staff-size sz) "Set the default staff size, where SZ is thought to be in PT." @@ -143,18 +144,22 @@ (let* ((new-pap (ly:output-def-clone pap)) (dim-vars (ly:output-def-lookup pap 'dimension-variables)) + (old-scope (ly:output-def-scope pap)) (scope (ly:output-def-scope new-pap))) (for-each (lambda (v) - (define val (ly:output-def-lookup pap v)) - (if (number? val) - (module-define! scope v - (/ val scale)) + (let* + ((var (module-variable old-scope v)) + (val (if (variable? var) (variable-ref var) #f))) + + (if (number? val) + (module-define! scope v + (/ val scale)) ;; spurious warnings, eg. for hsize, vsize. ; (ly:warn "not a number, ~S = ~S " v val) - )) + ))) dim-vars) -- 2.39.2