2004-09-30 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ * scm/framework-tex.scm (dump-page): take with-extents?
+ argument. If true, output Y extents. Used for lilypond-book
+ documents.
+
+ * scripts/lilypond-book.py (PREAMBLE_LY): set dump-extents for
+ \bookpaper.
+
* lily/slur.cc (outside_slur_callback): epsilon-delta management
for slur edges.
"\\lilypondspecial\n"
"\\lilypondpostscript\n"))
-(define (dump-page putter page last?)
+(define (dump-page putter page last? with-extents?)
(ly:outputter-dump-string
putter
(format "\\vbox to ~a\\outputscale{%\n\\leavevmode\n\\lybox{0}{0}{0}{0}{%\n"
- (interval-length (ly:stencil-extent page Y))
- ))
+ (if with-extents?
+ (- (interval-start (ly:stencil-extent page Y)))
+ 0.0
+ )))
(ly:outputter-dump-stencil putter page)
(ly:outputter-dump-string
putter
(if last?
- "}\\vss\n}\n\\vss\n"
- "}\\vss\n}\n\\vss\\lilypondpagebreak\n")))
+ "}\\vss\n}\n\\vfill\n"
+ "}\\vss\n}\n\\vfill\\lilypondpagebreak\n")))
(define-public (output-framework outputter book scopes fields basename )
(let* ((bookpaper (ly:paper-book-book-paper book))
(pages (ly:paper-book-pages book))
(last-page (car (last-pair pages)))
+ (with-extents
+ (eq? #t (ly:output-def-lookup bookpaper 'dump-extents)))
)
(for-each
(lambda (x)
(header bookpaper (length pages) #f)
(define-fonts bookpaper)
(header-end)))
-
+ (ly:outputter-dump-string outputter "\\nopagebreak")
(for-each
- (lambda (page) (dump-page outputter page (eq? last-page page)))
+ (lambda (page) (dump-page outputter page (eq? last-page page) with-extents))
pages)
(ly:outputter-dump-string outputter "\\lilypondend\n")))
"Length of the number-pair X, when an interval"
(max 0 (- (cdr x) (car x)))
)
-
+(define-public interval-start car)
+(define-public interval-end cdr)
(define (other-axis a)
(remainder (+ a 1) 2))
},
}
-PREAMBLE_LY = r'''%%%% Generated by %(program_name)s
+PREAMBLE_LY = r"""%%%% Generated by %(program_name)s
%%%% Options: [%(option_string)s]
#(set! toplevel-score-handler ly:parser-print-score)
#(set! toplevel-music-handler (lambda (p m)
p (ly:music-scorify m p))
))
%(preamble_string)s
-\bookpaper {%(bookpaper_string)s
+\bookpaper {
+ #(define 'dump-extents #t)
+ %(bookpaper_string)s
}
\paper { %(paper_string)s
}
-'''
+"""
FRAGMENT_LY = r'''
%(notes_string)s{