lilypond-user
[Top][All Lists]
Advanced

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

Re: Is it possible to replace a number with variable inside a pair?


From: Urs Liska
Subject: Re: Is it possible to replace a number with variable inside a pair?
Date: Thu, 26 Jul 2018 09:39:47 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0



Am 26.07.2018 um 09:35 schrieb Risto Vääräniemi:
Hi,

I tried the following:

lineThickness = 5
\markup \override #'(thickness . #lineThickness) \draw-hline

But it seems I cannot give the variable inside the pair. This works:

lineThicknessPair = #'(thickness . 5)
\markup \override #lineThicknessPair \draw-hline


Is there any way to make it work with just a single number variable? I even tried the variable without the '#' or replaced it with a '\'. I just got different errors.

You need a technique known as quasi-quoting.

In your code #'( means that you have a pair of literal symbols, i.e. a symbol "thickness" and a symbol "#lineThickness". The straight single quote tells Lily to "quote" everything inside the brackets.

What you need is to write the pair as #`(a . b) with a backtick instead of a straight single quote. This allows you to "unquote" individual elements with a comma:

lineThickness = 5
\markup \override #`(thickness . ,lineThickness) \draw-hline

See https://scheme-book.ursliska.de/scheme/quoting/ for some more info

HTH
Urs


BR,
Risto


_______________________________________________
lilypond-user mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/lilypond-user


reply via email to

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