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>
}
\paper {
ragged-last-bottom = ##f
- annotatespacing = ##t
+ annotate-spacing = ##t
between-system-space = 1.0
#(set! text-font-defaults
(acons
--- /dev/null
+/*
+ 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));
+}
-/*
- 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));
-}
;;(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)))
(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?)))
(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)))