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
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

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

Reply via email to