]> git.donarmstrong.com Git - lilypond.git/commitdiff
(set-paper-dimension-variables): new
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Sat, 9 Oct 2004 23:56:19 +0000 (23:56 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Sat, 9 Oct 2004 23:56:19 +0000 (23:56 +0000)
function. Define dimension-variables explicitly in \paper too.
This allows overriding linewidth inside \score { \paper { } }
blocks

ChangeLog
lily/score.cc
ly/book-paper-defaults.ly
ly/declarations-init.ly
scm/paper.scm

index 0d0247da4abca59df00b72f6816f667dbadffaef..21983ba22433c00d47418ca131cfce856910c71f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2004-10-10  Han-Wen Nienhuys  <hanwen@xs4all.nl>
 
+       * 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.
index 3a7d5a408a382a281aa342416d53b9307346f8ea..15160896accbd55fbc5814cd1634a9200d0626fa 100644 (file)
@@ -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);
index a7ceafd33d5c3db47675afe9de73544e550f26fd..9ff72cf9fef228fcc2ae831cd4a7bbf214c33d5d 100644 (file)
@@ -78,5 +78,6 @@
 
     #(define make-header plain-header)
     #(define make-footer plain-footer)
+    #(set-paper-dimension-variables (current-module))
    
 }
index dd838f25da24a5b7868e3a31a93af2d5382c2be2..a82f358560b4055d4fb984391f4f5a6bb3034ac4 100644 (file)
@@ -79,6 +79,9 @@ melismaEnd = #(make-span-event 'ManualMelismaEvent STOP)
     cm = #(* 10 mm)
     
     \include "engraver-init.ly"
+
+    #(set-paper-dimension-variables (current-module))
+    
 }
 
 
index 7cba07aaa73577f7c40d69a8f0869ced8269c2f5..2b22dd69666ab8560a5957fa226dd5847ade6613 100644 (file)
@@ -4,6 +4,13 @@
 ;;;; 
 ;;;; (c)  2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 
+(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."
     (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."
   (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)