]> git.donarmstrong.com Git - lilypond.git/blob - scm/framework-texstr.scm
2c6a25f8b7220b453c37958c4ba3deca94f22728
[lilypond.git] / scm / framework-texstr.scm
1 ;;;; framework-tex.scm --
2 ;;;;
3 ;;;;  source file of the GNU LilyPond music typesetter
4 ;;;;
5 ;;;; (c)  2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
6
7 (define-module (scm framework-texstr)
8   #:export (output-framework-tex        
9             output-classic-framework-tex))
10
11 (use-modules (ice-9 regex)
12              (ice-9 string-fun)
13              (ice-9 format)
14              (guile)
15              (srfi srfi-1)
16              (srfi srfi-13)
17              (lily))
18
19 (define (dump-page putter page last? with-extents?)
20   (ly:outputter-dump-string
21    putter
22    (format "\\lybox{~a}{~a}{%\n"
23            (if with-extents?
24                (interval-start (ly:stencil-extent page X))
25                0.0)
26            (if with-extents?
27                (- (interval-start (ly:stencil-extent page Y)))
28                0.0)))
29   (ly:outputter-dump-string
30    putter
31    (if last?
32        "}%\n\\vfill\n"
33        "}%\n\\vfill\n\\lilypondpagebreak\n")))
34
35 (define-public (output-framework outputter book scopes fields basename )
36   (let* ((paper (ly:paper-book-paper book))
37          (pages (ly:paper-book-pages book))
38          )
39     (for-each
40      (lambda (x)
41        (ly:outputter-dump-string outputter x))
42      (list))
43     (for-each
44      (lambda (page)
45        (ly:outputter-dump-stencil outputter page))
46      pages)))
47
48 (define (dump-line putter line last?)
49   (ly:outputter-dump-string
50    putter
51    (format "\\lybox{~a}{~a}{%\n"
52            (ly:number->string
53             (max 0 (interval-end (ly:paper-system-extent line X))))
54            (ly:number->string
55             (interval-length (ly:paper-system-extent line Y)))))
56
57   (ly:outputter-dump-stencil putter (ly:paper-system-stencil line))
58   (ly:outputter-dump-string
59    putter
60    (if last?
61        "}%\n"
62        "}\\interscoreline\n")))
63
64
65 (define-public (convert-to-ps . args) #t)
66 (define-public (convert-to-pdf . args) #t)
67 (define-public (convert-to-png . args) #t)
68 (define-public (convert-to-dvi . args) #t)
69 (define-public (convert-to-tex . args) #t)