On 21/10/12 22:00, Reedmace Star wrote:
> Dear LilyPond users,
> 
> when working on LilyPond projects that require scheme coding, I 
> sometimes find it convenient to collect scheme definitions in an 
> external (but project specific) .scm file.
> 
> Currently, I then simply call guile's "load" function to include 
> it. Typical minimal setup:
> 
> --- file my-scheme-defs.scm (same directory as master.ly) ---
> 
> ;;; scheme definitions...
> 
> 
> --- file master.ly ---
> 
> \version "2.16.0" #(load "my-scheme-defs.scm")
> 
> %% do something ...
> 
> ---
> 
> This, however, only works when calling lilypond on master.ly from
> that same directory. The load command looks for the .scm file in
> the present working directory, but not in the directory containing
> the including file.
> 
> No such restriction applies with the \include command, which works
>  exactly as expected. And in fact I like to occasionally compile a
> .ly file from a different directory, usually to collect output
> files from a run with non-standard parameters.
> 
> So I'm looking for a reasonably concise method to make this work
> with scheme loads, too. One obvious solution would be to shell out
> '#' prefixes and put everything into LilyPond include files, but
> that's not really pretty, if only because editors do a better job
> at syntax highlighting and indentation with pure scheme files than
> with embedded scheme code.
> 
> Is there a better way?
> 
> Best regards,
> 
> Reedmace Star
> 
If my-scheme-defs.scm is in path my-scheme-dir

 --- file master.ly ---

 \version "2.16.0"
 % allow guile to find your file.
 #(set! %load-path cons("my-scheme-dir" %load-path))
 #(load-from-path "my-scheme-defs.scm")

 %% do something ...

 ---
Cheers,
Ian


_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to