Leo Correia de Verdier <leo.correia.de.verd...@gmail.com> writes:

>> 27 juni 2023 kl. 21:57 skrev Volodymyr Prokopyuk
>> <volodymyrprokop...@gmail.com>:
>> 
>> I'd like to define a shorter alias to a parametrized command. My two
>> specific use cases are
>>      • Define \acc { c='8 d e } to be translated into \acciaccatura
>> { c='8 d e }
>>      • Define \af 4. to be translated into \after 4.\!
>> I've tried the \set command, but it seems that the \set command does
>> not handle parameters. I have an intuitive understanding that this
>> type of aliases can be done with Scheme, but I do not know how
>> exactly.

> You can write:
> %%%%%%%%%%%%%
> acc = \acciaccatura \etc
> af = \after \etc
> %%%%%%%%%%%%%
>
> \set in lilypond  is something completely else.

This definition of \af does not have the specified semantics.  Instead
you need to write

af = #(define-music-function (dur mus) (ly:duration?) (ly:music?)
            #{ \after #dur \! #mus #})

-- 
David Kastrup

Reply via email to