]> git.donarmstrong.com Git - lilypond.git/commitdiff
(output-classic-framework): dump a
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 28 Jan 2005 21:41:10 +0000 (21:41 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 28 Jan 2005 21:41:10 +0000 (21:41 +0000)
-systems.texi too
(output-classic-framework): dump multiple systems on an "infinite"
page EPS including fonts.

ChangeLog
input/tutorial/lilbook.tex
scm/framework-ps.scm

index 14484e052d7b0fe21c916fbf82ce9e77b79f9b83..c7e30c55d218a6ca1dbf27bbbc9d207df1598257 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2005-01-28  Han-Wen Nienhuys  <hanwen@xs4all.nl>
 
+       * lily/paper-outputter-scheme.cc (LY_DEFINE):
+       ly:outputter-port. New function.
+
        * scm/framework-ps.scm (output-classic-framework): dump a
        -systems.texi too
        (output-classic-framework): dump multiple systems on an "infinite"
index 4db36dbab3641fcc79b5cbb8ac6a878bdd1630b3..f5cfa1c515e060ca5f449fa54ad803fa07d4bfd5 100644 (file)
@@ -1,4 +1,5 @@
 \documentclass[a4paper]{article}
+\usepackage{graphics}
 \begin{document}
 
 Documents for lilypond-book may freely mix music and text.  For
@@ -6,7 +7,7 @@ example,
 
 \begin{lilypond}
 \relative {
-  c2 g'2 \times 2/3 { f8 e d } c'2 g4
+  c2^"test" g'2 \times 2/3 { f8 e d } c'2 g4
 } 
 \end{lilypond}
 
index 443d3aeeaffd0d4358a79c3b18d79d982515e760..7b32617fd2b6fdb9910e9f5bb3fa2bf6f5c380ba 100644 (file)
    "init-lilypond-parameters\n"
    "%%EndSetup\n"))
 
-(define (preamble paper load-fonts?)
+(define (write-preamble paper load-fonts? port)
   (define (load-fonts paper)
     (let* ((fonts (ly:paper-fonts paper))
           (all-font-names
                        (ly:warn "cannot find CFF/PFA/PFB font ~S" x)
                        ""))))
                  (filter string? font-names))))
+          pfas))
+      
 
-      (string-join pfas "\n")))
-
-  (list
-   (procset "music-drawing-routines.ps")
-   (procset "lilyponddefs.ps")
-   (if load-fonts?
-       (load-fonts paper)
-       "")
-   
-   (setup paper)))
+  (display (procset "music-drawing-routines.ps") port)
+  (display (procset "lilyponddefs.ps") port)
+  (if load-fonts?
+      (for-each (lambda (f) (display f port)) (load-fonts paper)))
+  (display (setup paper) port))
 
 (define-public (output-framework basename book scopes fields)
   (let* ((filename (format "~a.ps" basename))
         (pages (ly:paper-book-pages book))
         (landscape? (eq? (ly:output-def-lookup paper 'landscape) #t))
         (page-number (1- (ly:output-def-lookup paper 'firstpagenumber)))
-        (page-count (length pages)))
+        (page-count (length pages))
+        (port (ly:outputter-port outputter)))
 
-    (for-each
-     (lambda (x)
-       (ly:outputter-dump-string outputter x))
-     (cons
-      (page-header paper page-count #t)
-      (preamble paper #t)))
+
+    (display (page-header paper page-count #t) port)
+    (write-preamble paper #t  port)
 
     (for-each
      (lambda (page)
        (dump-page outputter page page-number page-count landscape?))
      pages)
 
-    (ly:outputter-dump-string outputter "%%Trailer\n%%EOF\n")
-        (ly:outputter-close outputter)
+    (display "%%Trailer\n%%EOF\n" port)
+    (ly:outputter-close outputter)
     (postprocess-output book framework-ps-module filename (ly:output-formats))
 ))
 
           (lambda (x)
             (inexact->exact
              (round (* x scale mm-to-bigpoint))))))
+        (port (ly:outputter-port outputter))
          )
+    
 
-    (for-each
-     (lambda (x)
-       (ly:outputter-dump-string outputter x))
-     (cons
-      (eps-header paper rounded-bbox #t)
-      (preamble paper #t)))
-
-
-    (ly:outputter-dump-string outputter
-                             (string-append "start-system { "
-                                            "set-ps-scale-to-lily-scale "
-                                            "\n"))
-
+    (display (eps-header paper rounded-bbox #t) port)
+    (write-preamble paper #t port)
+    (display "start-system { set-ps-scale-to-lily-scale \n" port)
     (ly:outputter-dump-stencil outputter dump-me)
-    (ly:outputter-dump-string outputter "} stop-system\n%%Trailer\n%%EOF\n")
-        (ly:outputter-close outputter)
+    (display outputter "} stop-system\n%%Trailer\n%%EOF\n" port)
+    (ly:outputter-close outputter)
     (postprocess-output book framework-ps-module filename
                        (ly:output-formats))
 ))
           (lambda (x)
             (inexact->exact
              (round (* x scale mm-to-bigpoint)))) bbox))
-         
+        (port (ly:outputter-port outputter))
         (header (eps-header paper rounded-bbox #f)))
 
-      (for-each
-       (lambda (str) (ly:outputter-dump-string outputter str))
-       (cons
-       header
-       (preamble paper #f)))
-
-      (ly:outputter-dump-string outputter
-                               (string-append "start-system { "
-                                              "set-ps-scale-to-lily-scale "
-                                              "\n"))
+    (display header port)
+    (write-preamble paper #f port)
+    (display "start-system { set-ps-scale-to-lily-scale \n" port)
+    (ly:outputter-dump-stencil outputter dump-me)
+    (display "} stop-system\n%%Trailer\n%%EOF\n" port)
+    (ly:outputter-close outputter)))
 
-      (ly:outputter-dump-stencil outputter dump-me)
-      (ly:outputter-dump-string outputter "} stop-system\n%%Trailer\n%%EOF\n")
-      (ly:outputter-close outputter)))
 
   (define (dump-infinite-page lines)
     (let*
           (list (car xext) (car yext)
                 (cdr xext) (cdr yext))))
         (ps-bbox (map (lambda (x)
-                                 (inexact->exact
-                                  (round (* x scale mm-to-bigpoint))))
-                               bbox))
+                        (inexact->exact
+                         (round (* x scale mm-to-bigpoint))))
+                      bbox))
         
+        (port (ly:outputter-port outputter))
         (header (eps-header paper ps-bbox #t)))
 
-      (for-each
-       (lambda (str) (ly:outputter-dump-string outputter str))
-       (cons
-       header
-       (preamble paper #t)))
-
-      (ly:outputter-dump-string outputter
-                               (string-append "start-system { "
-                                              "set-ps-scale-to-lily-scale "
-                                              "\n"))
-
+      (display header port)
+      (write-preamble paper #t port)
+      (display "start-system { set-ps-scale-to-lily-scale \n" port)
       (ly:outputter-dump-stencil outputter dump-me)
-      (ly:outputter-dump-string outputter "} stop-system\n%%Trailer\n%%EOF\n")
+      (display "} stop-system\n%%Trailer\n%%EOF\n" port)
       (ly:outputter-close outputter)))
 
   (define (dump-lines lines count)
 
     (display "@c eof" texi-system-port)
     (display "% eof" tex-system-port)
-
     (dump-infinite-page lines))
-
-    (postprocess-output book framework-ps-module (format "~a.eps" basename) (ly:output-formats))
-  )
-
+    (postprocess-output book framework-ps-module (format "~a.eps" basename) (ly:output-formats)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;