lilypond-devel
[Top][All Lists]
Advanced

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

Re: Overriding tagline in a custom init file?


From: Reinhold Kainhofer
Subject: Re: Overriding tagline in a custom init file?
Date: Thu, 29 Apr 2010 13:12:55 +0200
User-agent: KMail/1.13.2 (Linux/2.6.31-21-generic; KDE/4.4.2; i686; ; )

Am Donnerstag, 29. April 2010 12:01:14 schrieb -Eluze:
> -Eluze wrote:
> > Reinhold Kainhofer wrote:
> >> So, do you have any idea how I can override the header and paper blocks
> >> in a
> >> global init file?
> > 
> > i have copied the whole init.ly to myInit.ly and then added *\include
> > "myPaper.ly"* right after the \maininput line (nr. 25 in version 2.13.18)
> > and then invoked lilypond with --init=…
> 
> this raises the question why there is no such option, enabling to setup a
> user specific environment or style without having to manipulate this
> crucial file (and to adapt it for each new version).

Absolutely! It would also make lilypond-book much simpler, since currently the 
book preamble is added to all included .ly files. This looks awful if you 
click on an image to get the LilyPond file!

AFAICS, "all" that needs to be done is to 
  -) add a new option to lilypond e.g. -duser-init=settings.ily
  -) in init.ly include that file (if the option is given) right before
    \maininput

In principle, all steps are easy (adding a command line option, checking for 
existence of command line option, including a file).
The problem is the combination:

The \include has to be done conditionally, and the check for the command line 
option has to be done in Scheme. This means that the include also has to be 
done in Scheme... Unfortunately, the processing of \include in a lilypond file 
is already done by the parser, so I don't know of any way to properly include 
a file using Scheme...

I have tried:


#(if (ly:get-option 'user-init)
  (display (format "\\include \"~a\"" (ly:get-option 'user-init)))
  (ly:parser-parse-string parser
    (format "\\include \"~a\"" (ly:get-option 'user-init))))
\maininput

But this does not seem to have any effect: It includes the file (since a 
syntax error in the included file causes lilypond to fail), but the settings 
(header block) are not used...

Cheers,
Reionhold



-- 
------------------------------------------------------------------
Reinhold Kainhofer, address@hidden, http://reinhold.kainhofer.com/
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * LilyPond, Music typesetting, http://www.lilypond.org




reply via email to

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