Am Do., 3. Jan. 2019 um 11:00 Uhr schrieb Vaughan McAlley
<[email protected]>:
>
> On Thu, 3 Jan 2019 at 20:26, Andrew Bernard <[email protected]> wrote:
>>
>> Hi Christopher,
>>
>> I can't quite nut this one out, but you can't just have ##f sitting in the
>> open between scores - it's a bad expression. You can't place in that
>> location a variable referring to an expression that has a boolean as its
>> evaluation.
>>
>> You can have markup between scores, so if you make this change it will work:
>>
>> titleFootnotes = \markup { \null }
>>
>
> Even
>
> titleFootnotes = {}
>
> works, which might be a little closer to “nothing” :-)
>
> Vaughan
Hi Christopher,
whenever you call something in a ly-file with \whatever, then this
needs to do one of three things (are there others?):
(1) initiate a markup
Examples: \markup "whatever", a header finally leads to markup as well, etc
Thus Andrew's suggestion works, although spacing is affected
(2) initiate music
Examples: \new Staff \someMusic, etc
Thus Vaughan's suggestion outputting empty music works, although a
warning may be issued:
warning: no music found in score
(3) do something
Examples: \layout, \score, \paper or calling a void-function, etc
Calling a variable bound to #f at toplevel does nothing of the above listed.
You want to say "if #f do-nothing", actually you say "if #f do-#f"
A method would be to say "if #f do-unspecified". While 2.14 was more
tolerant, *unspecified* will be understood from recent versions.
So you could do:
theFootnotes = ##f
myOtherFootnotes = #*unspecified*
$(if theFootnotes theFootnotes) %% returns unspecified if theFootnotes is #f
\myOtherFootnotes
HTH,
Harm
_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user