]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/framework-texstr.scm
Run `make grand-replace'.
[lilypond.git] / scm / framework-texstr.scm
index 834df7d30951e24281ff89a772d5e94ff3b80101..0fec9f94fb49ef14a559ee6e3db0c2a7c171801b 100644 (file)
@@ -2,37 +2,64 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;;
-;;;; (c)  2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+;;;; (c) 2004--2008 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
 (define-module (scm framework-texstr)
   #:export (output-framework-tex       
            output-classic-framework-tex))
 
 (use-modules (ice-9 regex)
+            (scm paper-system)
             (ice-9 string-fun)
-            (ice-9 format)
             (guile)
             (srfi srfi-1)
             (srfi srfi-13)
             (lily))
 
+(define format ergonomic-simple-format)
 
-(define (define-fonts paper)
-   ;; UGH. FIXME.
-   (format "(globalscale ~a)\n" (ly:paper-outputscale paper)))
+(define (header filename)
+  (format  "% header
+\\input{lilypond-tex-metrics}
+\\documentclass{article}
+\\lilyglobalscale{1.0}
+\\lilymetricsfile{~a.textmetrics}
+\\begin{document}
+" filename))
 
+(define (footer)
+  "
+\\end{document}
+")
 
-(define-public (output-framework outputter book scopes fields basename )
-  (let* ((paper (ly:paper-book-paper book))
-        (pages (ly:paper-book-pages book))
-        )
-    (ly:outputter-dump-string outputter (define-fonts paper))
+(define-public (output-classic-framework basename book scopes fields)
+  (let* ((filename (format #f "~a.texstr" basename))
+        (outputter (ly:make-paper-outputter
+                    (open-file filename "wb")
+                    (ly:get-option 'backend)))
+        (paper (ly:paper-book-paper book))
+        (lines (ly:paper-book-systems book)))
+    (ly:outputter-dump-string outputter (header basename))
+    (for-each
+     (lambda (system)
+       (ly:outputter-dump-stencil outputter (paper-system-stencil system)))
+     lines)
+    (ly:outputter-dump-string outputter (footer))))
+
+(define-public (output-framework basename book scopes fields )
+  (let* ((filename (format #f "~a.texstr" basename))
+        (outputter
+         (ly:make-paper-outputter
+          (open-file filename "wb")
+          (ly:get-option 'backend)))
+        (paper (ly:paper-book-paper book))
+        (pages (ly:paper-book-pages book)))
+    (ly:outputter-dump-string outputter (header basename))
     (for-each
      (lambda (page)
        (ly:outputter-dump-stencil outputter page))
-     pages)))
-
-
+     pages)
+    (ly:outputter-dump-string outputter (footer))))
 
 (define-public (convert-to-ps . args) #t)
 (define-public (convert-to-pdf . args) #t)