]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/paper.scm
Doc-de: updates and adding snippet translation to notation manual
[lilypond.git] / scm / paper.scm
index 6223e5392ecdb0cfd05b0f1179925650b5dfee05..b036ceb179b2139ebfabfadbd9917e8575f8dac4 100644 (file)
@@ -1,6 +1,6 @@
 ;;;; This file is part of LilyPond, the GNU music typesetter.
 ;;;;
-;;;; Copyright (C) 2004--2010 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; Copyright (C) 2004--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;
 ;;;; LilyPond is free software: you can redistribute it and/or modify
 ;;;; it under the terms of the GNU General Public License as published by
 ;;;; You should have received a copy of the GNU General Public License
 ;;;; along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 
+; for define-safe-public when byte-compiling using Guile V2
+(use-modules (scm safe-utility-defs))
+
 (define-public (set-paper-dimension-variables mod)
   (module-define! mod 'dimension-variables
                  '(blot-diameter
                    bottom-margin
                    cm
-                   foot-separation
-                   head-separation
+                   footnote-footer-padding
+                   footnote-padding
                    horizontal-shift
                    in
                    indent
     ))
 
 (define-public (layout-set-absolute-staff-size sz)
-  "Function to be called inside a \\layout{} block to set the staff
-size. SZ is in points"
+  "Set the absolute staff size inside of a @code{\\layout@{@}} block.
+@var{sz} is in points."
   (layout-set-absolute-staff-size-in-module (current-module) sz))
 
 (define-public (layout-set-staff-size sz)
-  "Function to be called inside a \\layout{} block to set the staff
-size. SZ is in points"
+  "Set the staff size inside of a @code{\\layout@{@}} block.
+@var{sz} is in points."
 
   (layout-set-absolute-staff-size (* (eval 'pt (current-module)) sz)))
 
@@ -224,6 +227,9 @@ size. SZ is in points"
     ("pa10" . (cons (* 26 mm) (* 35 mm)))
     ;; F4 used in southeast Asia and Australia
     ("f4" . (cons (* 210 mm) (* 330 mm)))
+    ;; Used for very small @lilypond examples in the Documentation
+    ;; based on a8 size but landscape not portrait
+    ("a8landscape" . (cons (* 74 mm) (* 52 mm)))
     ))
 
 ;; todo: take dimension arguments.
@@ -251,8 +257,6 @@ size. SZ is in points"
                           (("binding-offset" . ,w) . '())
                           (("top-margin" . ,h) . '())
                           (("bottom-margin" . ,h) . '())
-                          (("head-separation" . ,h) . '())
-                          (("foot-separation" . ,h) . '())
                           (("indent" . ,w) . '())
                           (("short-indent" . ,w) . '())))
        (scaled-values
@@ -326,11 +330,12 @@ size. SZ is in points"
       ;;; that in parse-scm.cc
       (ly:warning (_ "Must use #(set-paper-size .. ) within \\paper { ... }"))))
 
-(define-public (scale-layout pap scale)
-  (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)))
+(define-public (scale-layout paper scale)
+  "Return a clone of the paper, scaled by the given scale factor."
+  (let* ((new-paper (ly:output-def-clone paper))
+        (dim-vars (ly:output-def-lookup paper 'dimension-variables))
+        (old-scope (ly:output-def-scope paper))
+        (scope (ly:output-def-scope new-paper)))
 
     (for-each
      (lambda (v)
@@ -338,13 +343,10 @@ size. SZ is in points"
              (val (if (variable? var) (variable-ref var) #f)))
 
         (if (number? val)
-            (module-define! scope v
-                            (/ val scale))
-
-            ;; spurious warnings, eg. for paper-width, paper-height.
-            ;; (ly:warning (_ "not a number, ~S = ~S " v  val))
+            (module-define! scope v (/ val scale))
+            ;; Cannot warn for non-numbers, eg. for paper-width, paper-height.
             )))
-
      dim-vars)
-
-    new-pap))
+    ;; Mark the clone.
+    (ly:output-def-set-variable! new-paper 'cloned #t)
+    new-paper))