Am Do., 3. Jan. 2019 um 11:00 Uhr schrieb Vaughan McAlley <vaug...@mcalley.net.au>: > > On Thu, 3 Jan 2019 at 20:26, Andrew Bernard <andrew.bern...@gmail.com> 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 lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user