-
-
- (define (font-load-command name-mag command)
- (string-append
- "\\font\\" command "="
- (symbol->string (car name-mag))
- " scaled "
- (number->string (magstep (cdr name-mag)))
- "\n"))
-
-
- (define (embedded-ps s)
- (string-append "\\embeddedps{" s "}"))
-
- (define (comment s)
- (string-append "% " s))
-
- (define (end-output)
- "\n\\EndLilyPondOutput")
-
- (define (experimental-on)
- "")
-
- (define (font-switch i)
- (string-append
- "\\" (font i) "\n"))
-
- (define (font-def i s)
- (string-append
- "\\font" (font-switch i) "=" s "\n"))
-
- (define (header-end)
- (string-append
- "\\special{! "
- ; fixed in 1.3.4
- ;(ly-gulp-file "lily.ps")
-
- (regexp-substitute/global #f "\n" (ly-gulp-file "lily.ps") 'pre " %\n" 'post)
- "}"
- "\\input lilyponddefs \\turnOnPostScript"))
-
- (define (header creator generate)
- (string-append
- "%created by: " creator generate "\n"))
-
- (define (invoke-char s i)
- (string-append
- "\n\\" s "{" (inexact->string i 10) "}" ))
-
- (define (invoke-dim1 s d)
- (string-append
- "\n\\" s "{" (number->dim d) "}"))
- (define (pt->sp x)
- (* 65536 x))
-
- ;;
- ;; need to do something to make this really safe.
- ;;
- (define (output-tex-string s)
- (if security-paranoia
- (regexp-substitute/global #f "\\\\" s 'pre "$\\backslash$" 'post)
- s))
-
- (define (lily-def key val)
- (string-append
- "\\def\\"
- ; fixed in 1.3.4
- (regexp-substitute/global #f "_" (output-tex-string key) 'pre "X" 'post)
- ;(output-tex-string key)
- "{" (output-tex-string val) "}\n"))
-
- (define (number->dim x)
- (string-append
- (number->string (chop-decimal x)) " pt "))
-
- (define (placebox x y s)
- (string-append
- "\\placebox{"
- (number->dim y) "}{" (number->dim x) "}{" s "}\n"))
-
- (define (bezier-sandwich l thick)
- (embedded-ps ((ps-scm 'bezier-sandwich) l thick)))
-
- (define (start-line ht)
- (string-append"\\vbox to " (number->dim ht) "{\\hbox{%\n"))
-
- (define (stop-line)
- "}\\vss}\\interscoreline")
- (define (stop-last-line)
- "}\\vss}")
- (define (filledbox breapth width depth height)
- (string-append
- "\\kern" (number->dim (- breapth))
- "\\vrule width " (number->dim (+ breapth width))
- "depth " (number->dim depth)
- "height " (number->dim height) " "))
-
- (define (text s)
- (string-append "\\hbox{" (output-tex-string s) "}"))
-
- (define (tuplet ht gapx dx dy thick dir)
- (embedded-ps ((ps-scm 'tuplet) ht gapx dx dy thick dir)))
-
- (define (volta h w thick vert_start vert_end)
- (embedded-ps ((ps-scm 'volta) h w thick vert_start vert_end)))
-
- ;; TeX
- ;; The procedures listed below form the public interface of TeX-scm.
- ;; (should merge the 2 lists)
- (cond ((eq? action-name 'all-definitions)
- `(begin
- (define font-load-command ,font-load-command)
- (define beam ,beam)
- (define bezier-sandwich ,bezier-sandwich)
- (define bracket ,bracket)
- (define char ,char)
- (define crescendo ,crescendo)
- (define dashed-slur ,dashed-slur)
- (define decrescendo ,decrescendo)
- (define end-output ,end-output)
- (define experimental-on ,experimental-on)
- (define filledbox ,filledbox)
- (define font-def ,font-def)
- (define font-switch ,font-switch)
- (define header-end ,header-end)
- (define lily-def ,lily-def)
- (define header ,header)
- (define invoke-char ,invoke-char)
- (define invoke-dim1 ,invoke-dim1)
- (define placebox ,placebox)
- (define select-font ,select-font)
- (define start-line ,start-line)
- (define stop-line ,stop-line)
- (define stop-last-line ,stop-last-line)
- (define text ,text)
- (define tuplet ,tuplet)
- (define volta ,volta)
- ))
-
- ((eq? action-name 'beam) beam)
- ((eq? action-name 'tuplet) tuplet)
- ((eq? action-name 'bracket) bracket)
- ((eq? action-name 'crescendo) crescendo)
- ((eq? action-name 'dashed-slur) dashed-slur)
- ((eq? action-name 'decrescendo) decrescendo)
- ((eq? action-name 'end-output) end-output)
- ((eq? action-name 'experimental-on) experimental-on)
- ((eq? action-name 'font-def) font-def)
- ((eq? action-name 'font-switch) font-switch)
- ((eq? action-name 'header-end) header-end)
- ((eq? action-name 'lily-def) lily-def)
- ((eq? action-name 'header) header)
- ((eq? action-name 'invoke-char) invoke-char)
- ((eq? action-name 'invoke-dim1) invoke-dim1)
- ((eq? action-name 'placebox) placebox)
- ((eq? action-name 'bezier-sandwich) bezier-sandwich)
- ((eq? action-name 'start-line) start-line)
- ((eq? action-name 'stem) stem)
- ((eq? action-name 'stop-line) stop-line)
- ((eq? action-name 'stop-last-line) stop-last-line)
- ((eq? action-name 'volta) volta)
- (else (error "unknown tag -- PS-TEX " action-name))
- )
- )
-
-
-;;;;;;;;;;;; PS
-(define (ps-scm action-name)
-
-
- ;; alist containing fontname -> fontcommand assoc (both strings)
- (define font-alist '())
- (define font-count 0)
- (define current-font "")