[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Variable weirdness
From: |
David Sumbler |
Subject: |
Re: Variable weirdness |
Date: |
Tue, 08 Nov 2016 09:45:10 +0000 |
Thank you. I might find this useful some time, if I have correctly
understood what the purpose of it is.
For the particular case I was concerned with, though, simply using
#(define partName "Cello 1")
seems a lot simpler.
I just wondered why the Lilypond form isn't allowed in a situation
where the Scheme form works absolutely fine. I'm still wondering.
David
On Tue, 2016-11-08 at 07:44 +0100, Jan-Peter Voigt wrote:
> Hello,
>
> here is a demo of the code:
>
> %%% snip
> \version "2.19.49"
>
> % the 2.18 version would just use parser and layout in the signature
> and
> the additional parser-argument in the ly:parser-define! call
> parserDefine =
> #(define-scheme-function (vkey val)(symbol? scheme?)
> (ly:parser-define! vkey val))
>
> %%%% Demo
>
> \parserDefine music \relative c'' { c b bes a }
>
> { \music }
> %%% /snip
>
> HTH
> Jan-Peter
>
> Am 08.11.2016 um 07:06 schrieb Jan-Peter Voigt:
> >
> > Hello,
> >
> > in these situations I use a little scheme-function like this:
> >
> > parserDefine =
> > #(define-scheme-function (key val)(symbol? scheme?)
> > (ly:parser-define! key val))
> >
> > !!!(I will correct this later, when I am on real computer ....)
> >
> > This scheme-function works on every level defining a variable into
> > the
> > current parser.
> >
> > HTH
> > Jan-Peter
> >
> > Am 7. November 2016 23:55:00 MEZ, schrieb Simon Albrecht
> > <address@hidden>:
> >
> > On 07.11.2016 17:56, David Kastrup wrote:
> >
> > David Sumbler <address@hidden> writes:
> >
> > I had the following lines in the main file of my
> > current
> > Lilypond project: \book { \bookOutputName
> > "../firstCello"
> > partName = "Cello 1" \include "frontcover.ily"
> > \bookpart {
> > %music... The file "frontcover.ily" contains a
> > \bookpart
> > block which prints a front cover with title, composer
> > etc.
> > - these are defined elsewhere. But it needs one more
> > variable, viz. 'partName'. I discovered that Lilypond
> > will
> > not accept a variable definition in Lilypond format in
> > the
> > position I have put it: at the top level of a \book
> > block.
> > Nor will it accept it in a \bookpart block. But at a
> > higher or a lower level, it will. This seems a bit
> > weird
> > (to say the least), in view of the fact that by
> > replacing
> > the line partName = "Cello 1" with the Scheme form
> > #(define partName "Cello 1") everything works as
> > intended.
> > Is there any useful reason why a variable cannot be
> > defined in Lilypond format in these contexts?
> >
> > Because they would not be local to these contexts?
> >
> >
> > In other words, to make this work, books and bookparts would
> > need their
> > own namespaces, am I right? What would be the drawbacks of
> > that? I
> > daresay it would be pretty intuitive to use, and I’ve also
> > found myself
> > wanting that feature in the past, mainly to simplify \include
> > structures.
> >
> > Best, Simon
> >
> > ---------------------------------------------------------------
> > ---------
> >
> > lilypond-user mailing list
> > address@hidden
> > https://lists.gnu.org/mailman/listinfo/lilypond-user
> >
> > -- Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9
> > Mail
> > gesendet.
> >
> > _______________________________________________
> > lilypond-user mailing list
> > address@hidden
> > https://lists.gnu.org/mailman/listinfo/lilypond-user
>