* ps/lilyponddefs.ps: cleanup.
+2004-09-07 Han-Wen Nienhuys <hanwen@xs4all.nl>
+
+ * scm/framework-ps.scm (output-framework): handle landscape settings.
+
+ * ps/lilyponddefs.ps: cleanup.
+
2004-09-06 Han-Wen Nienhuys <hanwen@xs4all.nl>
* scm/define-grobs.scm (all-grob-descriptions): unset
piece = "Piece"
}
-#(set-default-paper-size "a6")
+#(set-default-paper-size "a6" 'portrait)
pattern = { a b c d \break }
/set-ps-scale-to-lily-scale { output-scale output-scale scale } bind def
-
/init-paper {
- gsave
- .1 setlinewidth
- clippath pathbbox newpath
- /vsize exch def
- /hsize exch def pop pop pop pop
- % FIXME
- /top-margin 2 def
+ gsave
+ .1 setlinewidth
+ clippath pathbbox newpath
+ /vsize exch def
+ /hsize exch def pop pop pop
+ % FIXME
+ /top-margin 2 def
hsize line-width sub 2 div /left-margin exch def
- grestore
+ grestore
} bind def
+
/place-box
{
/object exch def
/start-system % x y
{
gsave
- exch output-scale mul exch
- output-scale mul vsize exch sub translate
+ 0
+ vsize translate
} bind def
/stop-system
staff-line-thickness setlinewidth
-% set postscript paper size
-paper-size
-% initialise paper dimensions
staff-height init-paper
+
+
% end lilyponddefs.ps
(output-entry "staff-height" 'staffheight) ;junkme.
"/output-scale "
(number->string (ly:output-def-lookup paper 'outputscale))
- " lily-output-units mul def \n"))
+ " lily-output-units mul def \n"
+ (output-entry "page-height" 'vsize)
+ (output-entry "page-width" 'hsize)
+ ))
-(define (dump-page outputter page page-number page-count)
+(define (dump-page outputter page page-number page-count landscape?)
(ly:outputter-dump-string outputter
(string-append
"%%Page: "
(number->string page-number) " " (number->string page-count) "\n"
- "0 0 start-system { "
+
+ "%%BeginPageSetup\n"
+ (if landscape?
+ "page-width output-scale mul 0 translate 90 rotate\n"
+ "")
+ "%%EndPageSetup\n"
+
+ "start-system { "
"set-ps-scale-to-lily-scale "
"\n"))
(ly:outputter-dump-stencil outputter page)
"%%Creator: creator time-stamp\n"
"%%BoundingBox: "
(string-join (map number->string bbox) " ") "\n"
+ "%% Orientation: "
+ (if (eq? (ly:output-def-lookup bookpaper 'landscape) #t)
+ "Landscape\n"
+ "Portrait\n")
"%%EndComments\n"))
(define (page-header bookpaper page-count)
(ly:gulp-file "music-drawing-routines.ps")
(ly:gulp-file "lilyponddefs.ps")
(load-fonts bookpaper)
- (define-fonts bookpaper)))
+ (define-fonts bookpaper)
+
+
+ ))
(define-public (output-framework outputter book scopes fields basename)
(let* ((bookpaper (ly:paper-book-book-paper book))
(pages (ly:paper-book-pages book))
+ (landscape? (eq? (ly:output-def-lookup bookpaper 'landscape?) #t))
(page-number (1- (ly:output-def-lookup bookpaper 'firstpagenumber)))
(page-count (length pages)))
+
(for-each
(lambda (x)
(ly:outputter-dump-string outputter x))
(for-each
(lambda (page)
(set! page-number (1+ page-number))
- (dump-page outputter page page-number page-count))
+ (dump-page outputter page page-number page-count landscape?))
pages)
+
(ly:outputter-dump-string outputter "%%Trailer\n%%EOF\n")))
(define-public (output-preview-framework outputter book scopes fields basename)
(ly:outputter-dump-string outputter
- (string-append "0 0 start-system { "
+ (string-append "start-system { "
"set-ps-scale-to-lily-scale "
"\n"))
(module-define! m 'firstpagenumber 1)
(module-define! m 'rightmargin (* 10 mm))))
-(define (internal-set-paper-size module name)
+(define (internal-set-paper-size module name landscape?)
+ (define (swap x)
+ (cons (cdr x) (car x)))
+
(let* ((entry (assoc name paper-alist))
(is-bookpaper? (module-defined? module 'is-bookpaper))
(mm (eval 'mm module)))
(ly:warning "This is not a \\paper {} object, ~S"
module))
((pair? entry)
- (set! entry (eval (cdr entry) module))
- (set-paper-dimensions module (car entry) (cdr entry))
- (module-define! module 'papersize name)
- (module-define! module 'papersizename name)
- (set-paper-dimensions module (car entry) (cdr entry)))
+
+
+
+ (set! entry (eval (cdr entry) module))
+ (if landscape?
+ (set! entry (swap entry)))
+ (set-paper-dimensions module (car entry) (cdr entry))
+ (module-define! module 'papersize name)
+ (module-define! module 'papersizename name)
+ (if landscape?
+ (module-define! module 'landscape #t))
+ )
(else
(ly:warn (string-append "Unknown papersize: " name))))
))
-(define-public (set-default-paper-size name)
- (internal-set-paper-size (ly:output-def-scope (eval '$defaultbookpaper (current-module)))
- name))
+(define-public (set-default-paper-size name . rest)
+ (internal-set-paper-size
+ (ly:output-def-scope (eval '$defaultbookpaper (current-module)))
+ name
+ (memq 'landscape rest)
+ ))
-(define-public (set-paper-size name)
+(define-public (set-paper-size name . rest)
(if (module-defined? (current-module) 'is-paper)
- (internal-set-paper-size (current-module) name)
+ (internal-set-paper-size (current-module) name
+ (memq 'landscape rest))
;;; TODO: should raise (generic) exception with throw, and catch
;;; that in parse-scm.cc
global re;re = ly.re
# lilylib globals
-program_name = 'lilypond'
+program_name = 'lilypond-latex'
program_version = '@TOPLEVEL_VERSION@'
# input without \book, use classic latex definitions
classic_p = 0
if '@bindir@' == ('@' + 'bindir@') or not os.path.exists (lilypond_binary):
lilypond_binary = 'lilypond'
+lilypond_binary += ' --format=tex '
## Init to empty; values here take precedence over values in the file
extra_init = {