]> git.donarmstrong.com Git - lilypond.git/commitdiff
(paper-alist): no decimals for Ax paper sizes.
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 6 Mar 2006 13:42:18 +0000 (13:42 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 6 Mar 2006 13:42:18 +0000 (13:42 +0000)
ChangeLog
input/regression/page-spacing.ly
lily/dimensions-scheme.cc [new file with mode: 0644]
lily/dimensions.cc
scm/framework-ps.scm
scm/paper.scm

index ffcd519a38a149812b24cbb37acc0e15de3b642c..b9c7609bb0df1c8d852a947fc8b9b31f9a775e12 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2006-03-06  Han-Wen Nienhuys  <hanwen@xs4all.nl>
 
+       * scm/paper.scm (paper-alist): no decimals for Ax paper sizes. 
+
        * ly/engraver-init.ly: init vocalName to nil.
 
 2006-03-05 Erik Sandberg  <mandolaerik@gmail.com>
index 3d37679dddc8a80a63e530d4e900ce41f29b8247..a08ca5902c2ec7102f447d6afecd92c5c5b8c21e 100644 (file)
@@ -67,7 +67,7 @@ By setting @code{annotatespacing}, we can see the effect of each property.
   }
   \paper {
     ragged-last-bottom = ##f
-    annotatespacing = ##t
+    annotate-spacing = ##t
     between-system-space = 1.0
     #(set! text-font-defaults
       (acons
diff --git a/lily/dimensions-scheme.cc b/lily/dimensions-scheme.cc
new file mode 100644 (file)
index 0000000..106eb05
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+  dimensions-scheme.cc -- implement Dimension handling
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
+*/
+
+#include "lily-guile.hh"
+#include "dimensions.hh"
+#include "warn.hh"
+
+LY_DEFINE (ly_pt, "ly:pt",
+          1, 0, 0, (SCM num),
+          "@var{num} printer points")
+{
+  SCM_ASSERT_TYPE (scm_is_number (num), num, SCM_ARG1, __FUNCTION__,
+                  "number");
+  return scm_from_double (point_constant
+                         * scm_to_double (num));
+}
+
+LY_DEFINE (ly_cm, "ly:cm",
+          1, 0, 0, (SCM num),
+          "@var{num} cm")
+{
+  SCM_ASSERT_TYPE (scm_is_number (num), num, SCM_ARG1, __FUNCTION__,
+                  "number");
+  return scm_from_double (cm_constant
+                         * scm_to_double (num));
+}
+
+LY_DEFINE (ly_inch, "ly:inch",
+          1, 0, 0, (SCM num),
+          "@var{num} inches")
+{
+  SCM_ASSERT_TYPE (scm_is_number (num), num, SCM_ARG1, __FUNCTION__,
+                  "number");
+  return scm_from_double (inch_constant
+                         * scm_to_double (num));
+}
+
+LY_DEFINE (ly_mm, "ly:mm",
+          1, 0, 0, (SCM num),
+          "@var{num} mm")
+{
+  SCM_ASSERT_TYPE (scm_is_number (num), num, SCM_ARG1, __FUNCTION__,
+                  "number");
+  return scm_from_double (mm_constant
+                         * scm_to_double (num));
+}
+
+LY_DEFINE (ly_bp, "ly:bp",
+          1, 0, 0, (SCM num),
+          "@var{num} bigpoints (1/72th inch)")
+{
+  SCM_ASSERT_TYPE (scm_is_number (num), num, SCM_ARG1, __FUNCTION__,
+                  "number");
+  return scm_from_double (bigpoint_constant
+                         * scm_to_double (num));
+}
index 73075d442f9f01826da71b454eb4b6820b9d892f..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,61 +0,0 @@
-/*
-  dimensions.cc -- implement Dimension handling
-
-  source file of the GNU LilyPond music typesetter
-
-  (c) 1997--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
-*/
-
-#include "lily-guile.hh"
-#include "dimensions.hh"
-#include "warn.hh"
-
-LY_DEFINE (ly_pt, "ly:pt",
-          1, 0, 0, (SCM num),
-          "@var{num} printer points")
-{
-  SCM_ASSERT_TYPE (scm_is_number (num), num, SCM_ARG1, __FUNCTION__,
-                  "number");
-  return scm_from_double (point_constant
-                         * scm_to_double (num));
-}
-
-LY_DEFINE (ly_cm, "ly:cm",
-          1, 0, 0, (SCM num),
-          "@var{num} cm")
-{
-  SCM_ASSERT_TYPE (scm_is_number (num), num, SCM_ARG1, __FUNCTION__,
-                  "number");
-  return scm_from_double (cm_constant
-                         * scm_to_double (num));
-}
-
-LY_DEFINE (ly_inch, "ly:inch",
-          1, 0, 0, (SCM num),
-          "@var{num} inches")
-{
-  SCM_ASSERT_TYPE (scm_is_number (num), num, SCM_ARG1, __FUNCTION__,
-                  "number");
-  return scm_from_double (inch_constant
-                         * scm_to_double (num));
-}
-
-LY_DEFINE (ly_mm, "ly:mm",
-          1, 0, 0, (SCM num),
-          "@var{num} mm")
-{
-  SCM_ASSERT_TYPE (scm_is_number (num), num, SCM_ARG1, __FUNCTION__,
-                  "number");
-  return scm_from_double (mm_constant
-                         * scm_to_double (num));
-}
-
-LY_DEFINE (ly_bp, "ly:bp",
-          1, 0, 0, (SCM num),
-          "@var{num} bigpoints (1/72th inch)")
-{
-  SCM_ASSERT_TYPE (scm_is_number (num), num, SCM_ARG1, __FUNCTION__,
-                  "number");
-  return scm_from_double (bigpoint_constant
-                         * scm_to_double (num));
-}
index 607a05a437d3b3e37886e6979f349cb42474ad0f..a8e94b628bf2f6c4ff393a9790136719a432c335 100644 (file)
@@ -24,9 +24,6 @@
 ;;(define pdebug stderr)
 (define (pdebug . rest) #f)
 
-(define mm-to-bigpoint
-  (/ 72 25.4))
-
 (define-public (ps-font-command font)
   (let* ((name (ly:font-file-name font))
         (magnify (ly:font-magnification font)))
@@ -97,7 +94,7 @@
 
   (string-append
    "/lily-output-units "
-     (number->string mm-to-bigpoint)
+     (number->string (/ (ly:bp 1)))
      " def %% millimeter\n"
    (output-entry "staff-line-thickness" 'line-thickness)
    (output-entry "line-width" 'line-width)
   (ly:outputter-dump-string
    outputter
    (string-append
-    "%%Page: "
-    (number->string page-number) " " (number->string page-count) "\n"
-
+    (format "%%Page: ~a ~a\n" page-number page-number)
     "%%BeginPageSetup\n"
     (if landscape?
        "page-width output-scale lily-output-units mul mul 0 translate 90 rotate\n"
                 (supplies-or-needs paper load-fonts?)
                 "%%EndComments\n"))
 
-(define (page-header paper page-count load-fonts?)
+(define (ps-document-media paper) 
+  (format "%%DocumentMedia: ~a ~$ ~$ ~a ~a ~a\n"
+         (ly:output-def-lookup paper 'papersizename)
+         (/ (*
+             (ly:output-def-lookup paper 'output-scale)
+             (ly:output-def-lookup paper 'paper-width)) (ly:bp 1))
+         (/ (*
+             (ly:output-def-lookup paper 'paper-height)
+             (ly:output-def-lookup paper 'output-scale))
+            (ly:bp 1))
+         80  ;; weight
+         "()" ;; color
+         "()"  ;; type
+         ))
+
+
+(define (file-header paper page-count load-fonts?)
   (string-append "%!PS-Adobe-3.0\n"
                 "%%Creator: LilyPond "
                 (lilypond-version)
                 (if (eq? (ly:output-def-lookup paper 'landscape) #t)
                     "Landscape\n"
                     "Portrait\n")
-                "%%DocumentPaperSizes: "
-                (ly:output-def-lookup paper 'papersizename) "\n"
+                (ps-document-media paper)
                 (supplies-or-needs paper load-fonts?)
                 "%%EndComments\n"))
 
           (pfas (map font-loader font-names)))
       pfas))
 
+  (display "%%BeginProlog\n" port)
   (if load-fonts?
       (for-each
        (lambda (f)
   ;; adobe note 5002: should initialize variables before loading routines.
   (display (procset "music-drawing-routines.ps") port)
   (display (procset "lilyponddefs.ps") port)
-  (display "init-lilypond-parameters\n" port))
+
+  (display "%%EndProlog\n" port)
+  
+  (display "%%BeginSetup\ninit-lilypond-parameters\n%%EndSetup\n\n" port))
 
 (define-public (output-framework basename book scopes fields)
   (let* ((filename (format "~a.ps" basename))
         (port (ly:outputter-port outputter)))
 
     (output-scopes scopes fields basename)
-    (display (page-header paper page-count #t) port)
+    (display (file-header paper page-count #t) port)
+    (display "\n%%BeginDefaults
+%%PageMedia: a4
+%%EndDefaults\n" port)
+
     (write-preamble paper #t port)
 
     (for-each
                         (ly:output-formats))))
 
 (define-public (dump-stencil-as-EPS paper dump-me filename load-fonts?)
-  (define (mm-to-bp-box mmbox)
+  (define (to-bp-box mmbox)
     (let* ((scale (ly:output-def-lookup paper 'output-scale))
           (box (map
                 (lambda (x)
                   (inexact->exact
-                   (round (* x scale mm-to-bigpoint)))) mmbox)))
+                   (round (/ (* x scale) (ly:bp 1))))) mmbox)))
 
     (list (car box)
          (cadr box)
           ;;
           (list (min left-overshoot (car xext))
                 (car yext) (cdr xext) (cdr yext))))
-        (rounded-bbox (mm-to-bp-box bbox))
+        (rounded-bbox (to-bp-box bbox))
         (port (ly:outputter-port outputter))
         (header (eps-header paper rounded-bbox load-fonts?)))
 
index 19e92824cb5014eb8c56dff0e4c8e1b07e3a982b..65c5ef33d87311e802efaad879e8bad4572db2ed 100644 (file)
     (module-define! old-mod '$defaultpaper new-paper)))
 
 (define-public paper-alist
-  '(("a7" . (cons (* 74.48 mm) (* 105 mm)))
-    ("a6" . (cons (* 105 mm) (* 148.95 mm)))
-    ("a5" . (cons (* 148.95 mm) (* 210 mm)))
-    ("a4" . (cons (* 210 mm) (* 297.9 mm)))
-    ("a3" . (cons (* 297.9 mm) (* 420 mm)))
+
+  ;; don't use decimals.
+  ;; ISO 216 has a tolerance of +- 2mm
+  
+  '(("a7" . (cons (* 74 mm) (* 105 mm)))
+    ("a6" . (cons (* 105 mm) (* 148 mm)))
+    ("a5" . (cons (* 148 mm) (* 210 mm)))
+    ("a4" . (cons (* 210 mm) (* 297 mm)))
+    ("a3" . (cons (* 297 mm) (* 420 mm)))
     ("legal" . (cons (* 8.5 in) (* 14.0 in)))
     ("letter" . (cons (* 8.5 in) (* 11.0 in)))
     ("11x17" . (cons (* 11.0 in) (* 17.0 in)))