Hi folks, for a project of mine I wanted to center a markup inside another markup. I searched the built-in markup functions, but to no avail. (Surely it is possible that I missed something...) So I came up with the following code. Feel free to test and comment it. Maybe it is possible in an easier way, though. Would this kind of stuff fit into the LSR?
Best regards, Michael % Align src-markup inside dest-markup and merge stencils % xdir = -1 aligns left edges, 1 right edges % ydir = -1 aligns bottom edges, 1 top edges % Values between -1 and 1 are interpolated #(define-markup-command (align-inside layout props xdir ydir src-markup dest-markup) (number? number? markup? markup?) (let* ((src-stil (interpret-markup layout props src-markup)) (dest-stil (interpret-markup layout props dest-markup)) (src-x-extent (ly:stencil-extent src-stil X)) (src-y-extent (ly:stencil-extent src-stil Y)) (src-x-center (interval-center src-x-extent)) (src-y-center (interval-center src-y-extent)) (src-width (interval-length src-x-extent)) (src-height (interval-length src-y-extent)) (dest-x-extent (ly:stencil-extent dest-stil X)) (dest-y-extent (ly:stencil-extent dest-stil Y)) (dest-x-center (interval-center dest-x-extent)) (dest-y-center (interval-center dest-y-extent)) (dest-width (interval-length dest-x-extent)) (dest-height (interval-length dest-y-extent)) (offset-x-centered (- dest-x-center src-x-center)) (offset-y-centered (- dest-y-center src-y-center)) (offset-dir (cons (+ offset-x-centered (* xdir 0.5 (- dest-width src-width))) (+ offset-y-centered (* ydir 0.5 (- dest-height src-height)))))) (ly:stencil-add dest-stil (ly:stencil-translate src-stil offset-dir)))) boxone = \markup \with-color #blue \filled-box #'(0 . 6) #'(0 . 6) #0 boxtwo = \markup \with-color #red \filled-box #'(3 . 5) #'(5 . 7) #0 \markup \align-inside #CENTER #CENTER \boxtwo \boxone \markup \align-inside #LEFT #0.5 \boxtwo \boxone \markup \align-inside #RIGHT #DOWN \boxtwo \boxone _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user