lilypond-user
[Top][All Lists]
Advanced

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

Re: Writing functions for large-scale layout


From: David Kastrup
Subject: Re: Writing functions for large-scale layout
Date: Thu, 25 Oct 2012 23:46:33 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2.50 (gnu/linux)

Christopher Smith <address@hidden> writes:

>> Assign the result to a variable xxx and use \xxx.
>
> The assignment works, but then Lilypond 2.16.0 throws "error: unknown
> escaped string `\xxx'" and finally fails, expecting '='.  I think it
> may be having trouble figuring out what to do with the resulting
> value, which is (currently) a score.

Score variables can be used only as a score body, like
\score { \xxx \layout { } }
or similar.

> (I'm happy to change that if something else will work better; I'm just
> trying to write a function that takes individual part excerpts and
> lays them out in a complex but stereotyped way.)
>
>> Oh, and what should also work is writing
>> $#{ \schemefunctioncall ... #}
>
> This produces "error: syntax error, unexpected SCORE_IDENTIFIER <the
> entire text of the function call, including the leading $ and trailing
> }>".

Again, score identifiers can't be used at top level, but have to be
placed _inside_ of a \score again.  This is similar to book variables
(which also need to get placed inside of \book).

I actually just found out that obliterating the assignment for score
identifiers is dead easy, so it will likely be unnecessary in about a
week.  However, you will still have to heed writing \score { ... }
around any scheme function call even then.

> (Additionally, is there a convenient way to find the width of some
> grob that I could use to feed to the layout indent?  I'm not a Scheme
> programmer and am having trouble wrapping my head around the uasge of
> X-extent and ly:grob-extent.)

That's a question for the backend specialists.

-- 
David Kastrup




reply via email to

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