Jean-Pierre Coulon wrote:
> I have a piano score with only 4 systems. I do not like the vertical
> distribution I obtain because the first and last systems are stuck to the
> vertical boundaries of the page.
> 
> Instead, I would like the space above the first system and below the last
> system to be half the space between systems.

Your example below just includes "2cm" for the \vskip's. Shouldn't it be 
.5\somemusixtexparameter? (it's early - I can't remember what the \dimen or 
\skip for that is called).

> How can I do this without putting two ugly \vspace's in my source?

I may be corrected with a very clever alternate solution, but I think you're 
hitting one of TeX's few brick walls - while it's very clever at making 
paragraphs (and MusixTeX is very clever at making staves) neither is as clever 
when it comes to making pages. The reason is a combination of the fact that in 
the eighties and nineties it wasn't possible to use the same of level of 
algorithm over entire documents as it was over paragraphs because of memory 
constraints on the computer and also because pagination often just has to be 
tweaked by a human anyway in order to look really nice (for example, TeX's 
paragraphing algorithm produces the actual optimal result but its pagination 
algorithm does not). I find this often that means that TeX's facilities for 
doing something automatic with pagination are therefore a bit limited compared 
with some other areas of TeX. You could possibly come up with a very hairy 
\output routine to do this.

> \input musixtex
> \instrumentnumber1\setstaffs12\setclef1{\bass\treble}
> %\vskip2cm
> \startpiece
> \NOtes\qa{HKNH}|\qa{hjec}\en\bar\NOtes\qa{HKNH}|\qa{hjgc}\en\bar%
> \NOtes\qa{HKNH}|\qa{hjlc}\en\bar\NOtes\qa{HKNH}|\qa{hjoc}\en\bar%
> \NOtes\qa{HKNH}|\qa{hmjc}\en\bar\NOtes\qa{HKNH}|\qa{hcec}\en\bar%
> \NOtes\qa{HKNH}|\qa{hmjc}\en\bar\NOtes\qa{HKNH}|\qa{hjec}\en\bar%
> \NOtes\qa{HKNH}|\qa{hjhc}\en\bar\NOtes\qa{HKNH}|\qa{hjjc}\en\bar%
> \NOtes\qa{HKNH}|\qa{hjkc}\en\bar\NOtes\qa{HKNH}|\qa{hjgc}\en\bar%
> \NOtes\qa{HKNH}|\qa{hjec}\en
> \linegoal4%
> \Stoppiece
> %\vskip2cm
> \eject
> \end
> 
> Incidentally the first \vskip does not do its job.

At the moment your sample ends unusually - if you look at the definition of 
\bye then you'll see that it has a \vfill in it. There is some glue at the end 
of the score (probably a stray \parskip as that by default has 1pt of 
stretchability) which has been over-stretched to the bottom of the page because 
you omitted the \vfill. If I change the top \vskip to \leavevmode\vskip2cm and 
the last one to \vskip 2cm plus 1fill then I get something closer to what you 
intended.

See Chapter 15 of the TeX book (but don't do that first thing in the morning - 
it's a very hairy chapter!) - TeX removes glue at page break boundaries and the 
start of the document is considered a page boundary. You need to insert a 
\leavevmode before the \vskip (the \leavevmode instruction temporarily forces 
TeX into paragraphing mode which means that it doesn't delete the \vskip).

HTH,


David 

_______________________________________________
tex-mu...@icking-music-archive.org mailing list
If you want to unsubscribe or look at the archives, go to 
http://mailman.nfit.au.dk/mailman/listinfo/icking-music-archive.org-tex-music

Reply via email to