lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Need help using math in markup command definition, and a feature request


From: dfro
Subject: Need help using math in markup command definition, and a feature request.
Date: Mon, 8 May 2023 20:55:30 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0

Fellow music engravers,

I have a feature request. Perhaps, this has been discussed already.

Sometimes, I would like the spacial formatting in a \markup command to respond to changes in fontsize, so that all of the \markup spacing will change proportional to the change in fontsize. I think having \markup formatting commands - like \fs-raise, \fs-lower, \fs-hspace, \fs-vspace, etc. - that respond to changes in \fontsize would be helpful. I am trying to make a basic define-markup-command function for \raise that would do this for whole number fontsizes, but I do not know how to add math to markup command definitions. Here is my non-working code sketch, so far.


<code start>

\version "2.24.1"

%global font-size variable
font-size =
#0
%#1

%fs-raise definition
#(define-markup-command (fs-raise layout props rs text1) (number? markup?)
   (interpret-markup layout props
                     (cond

                      ((equal? font-size 0)
                       ; I want to create variable r = rs * 1, like this, which does not work, #(define r (* 1 rs))

                       #{ \markup \fontsize #font-size \raise #r #text1 #}
                       )

                      ((equal? font-size 1)
                       ; I want to create variable r = rs * 1.25, like this, which does not work, #(define r (* 1.25 rs))

                       #{ \markup \fontsize #font-size \raise #r #text1 #}
                       )

                      ; more font-size conditionals go here.

                      (else #{ \markup \null #})
                      )
                     )
   )

%music block
{ c'1^\markup \fs-raise #1 "text" }


<code end>


My basic question is, how do you create a variable and do math on it inside a conditional statement within a define-markup-command function?


Peace,

David





reply via email to

[Prev in Thread] Current Thread [Next in Thread]