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
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user