From 9a43c31105f187df3665135c12a538fc29397c4f Mon Sep 17 00:00:00 2001 From: Werner Lemberg Date: Wed, 29 Nov 2006 18:09:58 +0100 Subject: [PATCH] (fraction): Scale properly if font size changes. --- scm/define-markup-commands.scm | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) 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)))) -- 2.39.5