* scm/new-markup.scm (box-markup): new function.
(box-markup): new function. Contributed by Dick Schoeller
<schoeller@attbi.com>
* scm/lily.scm: remove reduce-no-unit
(list-insert-separator): use fold-right
2003-07-03 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ * make/lilypond.redhat.spec.in: require GUILE >= 1.6.4-7
+
+ * scm/new-markup.scm (box-markup): new function.
+ (box-markup): new function. Contributed by Dick Schoeller
+ <schoeller@attbi.com>
+
* scm/lily.scm: remove reduce-no-unit
(list-insert-separator): use fold-right
2003-07-02 Han-Wen Nienhuys <hanwen@cs.uu.nl>
- * lily/parser.yy (Repeated_music): bug fix beam multiplicity was
- completely borked
+ * lily/parser.yy (Repeated_music): bug fix, beam multiplicity was
+ completely borked
* lily/chord-tremolo-engraver.cc (try_music): warnings for user-errors.
(try_music): bug fix: beam multiplicity was completely borked.
Buildrequires: t1utils bison flex mftrace texinfo
Requires: tetex tetex-latex libstdc++ python
+Requires: guile >= 1.6.4-7
%description
LilyPond lets you create music notation. It produces
(list x)
(cons x (cons between y))
))
- (fold-right conc #f lst)
- )
+ (fold-right conc #f lst))
;;;;;;;;;;;;;;;;
; other
xext yext)
)
+
(define-public (box-grob-molecule grob)
"Make a box of exactly the extents of the grob. The box precisely
encloses the contents.
(box-molecule xext (cons (cdr yext) (+ (cdr yext) thick) ))
(box-molecule (cons (cdr xext) (+ (cdr xext) thick)) yext)
(box-molecule (cons (- (car xext) thick) (car xext)) yext))))
+
+
+;; TODO merge this and prev function.
+(define-public (box-molecule mol thick padding)
+ "Add a box around MOL, producing a new molecule."
+ (let* (
+ (x-ext (widen-interval (ly:molecule-get-extent mol 0) padding))
+ (y-ext (widen-interval (ly:molecule-get-extent mol 1) padding))
+ (x-rule (box-molecule (widen-interval x-ext thick)
+ (cons 0 thick)))
+ (y-rule (box-molecule (cons 0 thick) y-ext)))
+
+ (set! mol (ly:molecule-combine-at-edge mol 0 1 y-rule (* 0.5 padding)))
+ (set! mol (ly:molecule-combine-at-edge mol 0 -1 y-rule (* 0.5 padding)))
+ (set! mol (ly:molecule-combine-at-edge mol 1 1 x-rule 0.0))
+ (set! mol (ly:molecule-combine-at-edge mol 1 -1 x-rule 0.0))
+
+ mol))
(car rest))
))
+(define-public (box-markup grob props . rest)
+ "Syntax: \\box MARKUP"
+ (let*
+ (
+ (th 0.1)
+ (pad 0.2)
+ (m (interpret-markup grob props (car rest)))
+ )
+ (box-molecule m th pad)
+ ))
+
(define (markup-signature-to-keyword sig)
" (A B C) -> a0-b1-c2 "
(cons raise-markup (list number? markup?))
(cons magnify-markup (list number? markup?))
(cons fontsize-markup (list number? markup?))
+
+ (cons box-markup (list markup?))
)
)