lilypond-user
[Top][All Lists]
Advanced

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

Re: Extending the staff for time signature changes between scores


From: David Kastrup
Subject: Re: Extending the staff for time signature changes between scores
Date: Thu, 19 May 2016 23:05:08 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux)

Simon Albrecht <address@hidden> writes:

> On 19.05.2016 03:23, David Wright wrote:
>> \layout {
>>    \context {
>>      \Staff
>>      \override StaffSymbol.break-align-symbols = #'(time-signature 
>> key-signature staff-bar break-alignment)
>>    }
>> }
>
> I tried to use the proper LilyPond list syntax here:
> \override StaffSymbol.break-align-symbols =
> time-signature,key-signature,staff-bar,break-alignment
> – which would be beautiful, but the parser doesn’t expect it
> there. Could that be made working, David?

Override arguments are not type-checked at parsing time, so the syntax
cannot be adopted according to the accepted type.  The situation is
similar for \tweak: while it is a music function, its value type cannot
be changed on-the-fly depending on the name of the preceding symbol: it
is always scheme? .

If we require lookahead for _any_ string matched by a generic predicate
like scheme? in order to see whether there is a "," following maybe, and
then convert what started out as a symbol into a list of symbols, a lot
of syntax will behave more weirdly.

Giving \override type-sensitive syntax without being able to do so for
\tweak would be highly inconsistent, and the current music function
argument processing does not allow us to calculate a symbol-list?
predicate after having seen the incomplete argument list of
\tweak StaffSymbol.break-align-symbols .

So no.  It cannot reasonably be made to work like you want, but you can
define a music function for overriding break-align-symbols specifically
and give that function an argument type of symbol-list? (which obviously
means that you cannot use the \etc shortcut).

-- 
David Kastrup



reply via email to

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