]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/framework-texstr.scm
Run `make grand-replace'.
[lilypond.git] / scm / framework-texstr.scm
index 2c6a25f8b7220b453c37958c4ba3deca94f22728..0fec9f94fb49ef14a559ee6e3db0c2a7c171801b 100644 (file)
@@ -2,65 +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 (dump-page putter page last? with-extents?)
-  (ly:outputter-dump-string
-   putter
-   (format "\\lybox{~a}{~a}{%\n"
-          (if with-extents?
-              (interval-start (ly:stencil-extent page X))
-              0.0)
-          (if with-extents?
-              (- (interval-start (ly:stencil-extent page Y)))
-              0.0)))
-  (ly:outputter-dump-string
-   putter
-   (if last?
-       "}%\n\\vfill\n"
-       "}%\n\\vfill\n\\lilypondpagebreak\n")))
+(define format ergonomic-simple-format)
 
-(define-public (output-framework outputter book scopes fields basename )
-  (let* ((paper (ly:paper-book-paper book))
-        (pages (ly:paper-book-pages book))
-        )
+(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-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 (x)
-       (ly:outputter-dump-string outputter x))
-     (list))
+     (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)))
-
-(define (dump-line putter line last?)
-  (ly:outputter-dump-string
-   putter
-   (format "\\lybox{~a}{~a}{%\n"
-          (ly:number->string
-           (max 0 (interval-end (ly:paper-system-extent line X))))
-          (ly:number->string
-           (interval-length (ly:paper-system-extent line Y)))))
-
-  (ly:outputter-dump-stencil putter (ly:paper-system-stencil line))
-  (ly:outputter-dump-string
-   putter
-   (if last?
-       "}%\n"
-       "}\\interscoreline\n")))
-
+     pages)
+    (ly:outputter-dump-string outputter (footer))))
 
 (define-public (convert-to-ps . args) #t)
 (define-public (convert-to-pdf . args) #t)