From: Werner Lemberg <wl@gnu.org> Date: Wed, 29 Nov 2006 17:09:58 +0000 (+0100) Subject: (fraction): Scale properly if font size changes. X-Git-Tag: release/2.11.1-1~33^2~2 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=9a43c31105f187df3665135c12a538fc29397c4f;p=lilypond.git (fraction): Scale properly if font size changes. --- diff --git a/scm/define-markup-commands.scm b/scm/define-markup-commands.scm index 567486bb15..cb0b2a843a 100644 --- a/scm/define-markup-commands.scm +++ b/scm/define-markup-commands.scm @@ -1339,21 +1339,26 @@ and/or @code{extra-offset} properties. " (define-markup-command (fraction layout props arg1 arg2) (markup? markup?) "Make a fraction of two markups." (let* ((m1 (interpret-markup layout props arg1)) - (m2 (interpret-markup layout props arg2))) + (m2 (interpret-markup layout props arg2)) + (factor (magstep (chain-assoc-get 'font-size props 0))) + (boxdimen (cons (* factor -0.05) (* factor 0.05))) + (padding (* factor 0.2)) + (baseline (* factor 0.6)) + (offset (* factor 0.75))) (set! m1 (ly:stencil-aligned-to m1 X CENTER)) (set! m2 (ly:stencil-aligned-to m2 X CENTER)) (let* ((x1 (ly:stencil-extent m1 X)) (x2 (ly:stencil-extent m2 X)) - (line (ly:round-filled-box (interval-union x1 x2) '(-0.05 . 0.05) 0.0)) + (line (ly:round-filled-box (interval-union x1 x2) boxdimen 0.0)) ;; should stack mols separately, to maintain LINE on baseline - (stack (stack-lines -1 0.2 0.6 (list m1 line m2)))) + (stack (stack-lines DOWN padding baseline (list m1 line m2)))) (set! stack (ly:stencil-aligned-to stack Y CENTER)) (set! stack (ly:stencil-aligned-to stack X LEFT)) ;; should have EX dimension ;; empirical anyway - (ly:stencil-translate-axis stack 0.75 Y)))) + (ly:stencil-translate-axis stack offset Y))))