lilypond-user
[Top][All Lists]

## Re: Making a lilypond-book -- IT WORKS...sort of

 From: Mats Bengtsson Subject: Re: Making a lilypond-book -- IT WORKS...sort of Date: Mon, 05 Jul 2004 15:42:49 +0200 User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7) Gecko/20040616



Jan Nieuwenhuizen wrote:

Mats Bengtsson writes:


Having had a look at the full files, I realize what's up,



Thanks looking into this, Mats, however


namely a missing feature in lilypond-book!




separate include directory for each \lilypondfile{...} or
\begin{lilypond}...\end{lilypond} directive.



I object to this feature request.  It doesn't seem intuitive (never
seen something like this) or necessary: there are several simple ways
to tackle this problem.  I think it makes a lot of sense that a file
name should be unique within a project.


Really? I think it makes sence to do as Will, namely to put the
cello part in a file called cello.ly. If you then have one separate
directory for each movement, it would just add redundancy to also
att the movement number to each file within the directory.
Compare to the normal form in database design, that tries to
remove such redundancy.

Also, I actually think that you have seen similar approaches in
recursive Makefile structures, for example, where the top level
makefile has to set some extra paths in order for the included
lower level makefiles to work.


Also, it means that the mvmt1/mvmt1.ly file will not work stand-alone



Why is that?


Assume that you have a lilypond-book document in the
directory main/ containing
\lilypondfile{mvmt1/mvmt1.ly}
Then, the file main/mvmt1/mvmt1.ly has to contain include directives
of the form
\include "mvmt1/piano.ly"
in order to work.
This means that it will search for main/mvmt1/mvmt1/piano.ly when
you run 'lilypond mvmt1.ly' in the directory main/mvmt1/.

I think this is a major difference to program development file
structures, where it's uncommon to have one and the same file
used both as a standalone top-level file and as an include file
in a larger project (maybe with the exception of Makefiles as
indicated above).

/Mats