]> git.donarmstrong.com Git - lilypond.git/commitdiff
* scm/framework-ps.scm (output-framework): handle landscape settings.
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 6 Sep 2004 23:01:58 +0000 (23:01 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 6 Sep 2004 23:01:58 +0000 (23:01 +0000)
* ps/lilyponddefs.ps: cleanup.

ChangeLog
input/regression/page-breaks.ly
ps/lilyponddefs.ps
scm/framework-ps.scm
scm/paper.scm
scripts/lilypond-latex.py

index d56829a1cc18304bfbfd86e9094a1980e51bb487..5ba86bf98cfb75f5c5fba996f2ce8acefa35d2c4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2004-09-07  Han-Wen Nienhuys   <hanwen@xs4all.nl>
+
+       * scm/framework-ps.scm (output-framework): handle landscape settings.
+
+       * ps/lilyponddefs.ps: cleanup.
+
 2004-09-06  Han-Wen Nienhuys   <hanwen@xs4all.nl>
 
        * scm/define-grobs.scm (all-grob-descriptions): unset
index c6a06c68da727411064697ca69991fab16e1d37c..12d64e59f8ea6f293b5e47492efcbf9405d0f862 100644 (file)
@@ -22,7 +22,7 @@ texidoc = "Stress optimal page breaking.  This should look
     piece = "Piece"
 }
 
-#(set-default-paper-size "a6")
+#(set-default-paper-size "a6" 'portrait)
 
 
 pattern =  { a b c d \break }
index edd8448155b9180914a47431e81cb10e090f4b95..f4897127c964af090db4603d2d5cdd38ac0927cf 100644 (file)
 
 /set-ps-scale-to-lily-scale { output-scale output-scale scale } bind def
 
-
 /init-paper {
-       gsave
-       .1 setlinewidth
-       clippath pathbbox newpath
-       /vsize exch def
-       /hsize exch def pop pop pop pop
-       % FIXME
-       /top-margin 2 def
+       gsave
+       .1 setlinewidth
+       clippath pathbbox newpath
+       /vsize exch def
+       /hsize exch def pop pop pop 
+       % FIXME
+       /top-margin 2 def
        hsize line-width sub 2 div /left-margin exch def
-       grestore
+       grestore
 } bind def
 
+  
 /place-box
 {
        /object exch def
@@ -65,8 +65,8 @@
 /start-system % x y
 {
     gsave
-    exch output-scale mul exch
-    output-scale mul vsize exch sub translate
+    0
+    vsize translate
 } bind def
 
 /stop-system
 
 staff-line-thickness setlinewidth
 
-% set postscript paper size
-paper-size
 
-% initialise paper dimensions
 staff-height init-paper
+
 
 % end lilyponddefs.ps
index 67c35ebfc0871a09d37e8d197d362287115bde31..e091ad09b5f331f927377c3f1bbda5f92ab0b9b3 100644 (file)
    (output-entry "staff-height" 'staffheight)  ;junkme.
    "/output-scale "
    (number->string (ly:output-def-lookup paper 'outputscale))
-   " lily-output-units mul def \n"))
+   " lily-output-units mul def \n"
+   (output-entry "page-height" 'vsize)
+   (output-entry "page-width" 'hsize)
+   ))
 
-(define (dump-page outputter page page-number page-count)
+(define (dump-page outputter page page-number page-count landscape?) 
   (ly:outputter-dump-string outputter
    (string-append
     "%%Page: "
     (number->string page-number) " " (number->string page-count) "\n"
-    "0 0 start-system { "
+
+    "%%BeginPageSetup\n"
+    (if landscape?
+       "page-width output-scale mul 0 translate 90 rotate\n"
+       "")
+    "%%EndPageSetup\n"
+
+    "start-system { "
     "set-ps-scale-to-lily-scale "
     "\n"))
   (ly:outputter-dump-stencil outputter page)
                 "%%Creator: creator time-stamp\n"
                 "%%BoundingBox: "
                 (string-join (map number->string bbox) " ") "\n"
+                "%% Orientation: "
+                (if (eq? (ly:output-def-lookup bookpaper 'landscape) #t)
+                    "Landscape\n"
+                    "Portrait\n")
                 "%%EndComments\n"))
 
 (define (page-header bookpaper page-count)
    (ly:gulp-file "music-drawing-routines.ps")
    (ly:gulp-file "lilyponddefs.ps")
    (load-fonts bookpaper)
-   (define-fonts bookpaper)))
+   (define-fonts bookpaper)
+
+
+   ))
 
 (define-public (output-framework outputter book scopes fields basename)
   (let* ((bookpaper (ly:paper-book-book-paper book))
         (pages (ly:paper-book-pages book))
+        (landscape? (eq? (ly:output-def-lookup bookpaper 'landscape?) #t))
         (page-number (1- (ly:output-def-lookup bookpaper 'firstpagenumber)))
         (page-count (length pages)))
+    
   (for-each
    (lambda (x)
      (ly:outputter-dump-string outputter x))
   (for-each
    (lambda (page)
      (set! page-number (1+ page-number))
-     (dump-page outputter page page-number page-count))
+     (dump-page outputter page page-number page-count landscape?))
    pages)
+  
   (ly:outputter-dump-string outputter "%%Trailer\n%%EOF\n")))
 
 (define-public (output-preview-framework outputter book scopes fields basename)
 
 
   (ly:outputter-dump-string outputter
-                           (string-append "0 0 start-system { "
+                           (string-append "start-system { "
                                           "set-ps-scale-to-lily-scale "
                                           "\n"))
 
index 599eb51a95da7ebc61a9a11984c8939329fc8e54..13fadc5bdd4bb9412586691cbbf15a7ec50e0a93 100644 (file)
     (module-define! m 'firstpagenumber 1)
     (module-define! m 'rightmargin (* 10 mm))))
 
-(define (internal-set-paper-size module name)
+(define (internal-set-paper-size module name landscape?)
+  (define (swap x)
+    (cons (cdr x) (car x)))
+  
   (let* ((entry (assoc name paper-alist))
         (is-bookpaper? (module-defined? module 'is-bookpaper))
         (mm (eval 'mm module)))
       (ly:warning "This is not a \\paper {} object, ~S"
                   module))
      ((pair? entry)
-      (set! entry (eval  (cdr entry) module))
-         (set-paper-dimensions module (car entry) (cdr entry))
-         (module-define! module 'papersize name)
-         (module-define! module 'papersizename name)
-         (set-paper-dimensions module (car entry) (cdr entry)))
+
+           
+
+      (set! entry (eval (cdr entry) module))
+      (if landscape?
+         (set! entry (swap entry)))
+      (set-paper-dimensions module (car entry) (cdr entry))
+      (module-define! module 'papersize name)
+      (module-define! module 'papersizename name)
+      (if landscape?
+         (module-define! module 'landscape #t))
+      )
      (else
       (ly:warn (string-append "Unknown papersize: " name))))
 
     ))
 
-(define-public (set-default-paper-size name)
-  (internal-set-paper-size (ly:output-def-scope (eval '$defaultbookpaper (current-module)))
-                          name))
+(define-public (set-default-paper-size name . rest)
+  (internal-set-paper-size
+   (ly:output-def-scope (eval '$defaultbookpaper (current-module)))
+   name
+   (memq 'landscape rest)
+   ))
 
-(define-public (set-paper-size name)
+(define-public (set-paper-size name . rest)
   (if (module-defined? (current-module) 'is-paper)
-      (internal-set-paper-size (current-module) name)
+      (internal-set-paper-size (current-module) name
+                              (memq 'landscape rest))
 
       ;;; TODO: should raise (generic) exception with throw, and catch
       ;;; that in parse-scm.cc
index faec0d33f99f54ab3b9f8e685fc24c45749de4fa..67adc7f4c5180747eae90f93120e1beb9477b3c4 100644 (file)
@@ -82,7 +82,7 @@ global _;_=ly._
 global re;re = ly.re
 
 # lilylib globals
-program_name = 'lilypond'
+program_name = 'lilypond-latex'
 program_version = '@TOPLEVEL_VERSION@'
 # input without \book, use classic latex definitions
 classic_p = 0
@@ -157,6 +157,7 @@ lilypond_binary = os.path.join ('@bindir@', 'lilypond')
 if '@bindir@' == ('@' + 'bindir@') or not os.path.exists (lilypond_binary):
        lilypond_binary = 'lilypond'
 
+lilypond_binary += ' --format=tex ' 
 
 ## Init to empty; values here take precedence over values in the file
 extra_init = {