lilypond-user
[Top][All Lists]
Advanced

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

Re: Reorganizing the contents of the \paper block


From: Trevor Bača
Subject: Re: Reorganizing the contents of the \paper block
Date: Wed, 7 Feb 2007 16:45:26 -0600

On 2/7/07, Han-Wen Nienhuys <address@hidden> wrote:
Trevor Bača escreveu:

> Right now both list 1 and list 2 will just be put together into the
> outside-of-score (\paper) bucket.
>
> But it seems that may list 1 is really concerned with the *the layout
> of music on the page* whereas list 2 is concerned with *adding headers
> and footers outside the music*.
>
> So does it make sense to divide list 1 and list 2? And if so, with what
> names?

I think this doesn't make sense. There are two output-def objects with nested
scope. Variables that by their nature have \book-wide effect, go into the outer
scope, variables that are score-wide may be put in the inner scope.

If that confuses you, it might be a better idea to rename \layout  and \paper to
better reflect this.

OK. I think I finally see what's going on and what's been confusing me
for months. Let me see if I can get it into  words:

What's really going in the current implementation is that there are a
whole bunch of different settings. The settings have names like
ragged-right, indent, left-margin, between-system-space, and so on.
There are probably 30 or 40 or more of these settings. And all 30 or
40 settings divide into one of two classes:

CLASS I. Class I settings -- by their very nature -- have only
\book-wide effect and can NEVER have score-local effect. An example of
a \book-wide-only setting are top-margin and bottom-margin. These are
settings that affect  *ENTIRE PAGE AT A TIME* and can not under any
circumstances change midpage. Page margins of course can not change in
the middle of a page. So page margins make excellent examples of Class
I settings.

CLASS II. Class II settings -- again, by their very nature -- are more
flexible and may be set either at the \book-level, or at the more
specific score-level, or at both. An example of this second class of
setting is ragged-right. It is entirely possible to have two scores on
a single page (or "in a single \book") such that score 1 is
ragged-right and score 2 is not ragged right.

I think these two classes perfectly map to what Han-Wen keeps
patiently describing: two different levels of scope in which settings
can be made. (Han-Wen, if this isn't right, please correct.)

Now with this division between Class I and Class II settings it's
possible to clearly explain where the confusion arises. (And, in so
doing, to explain why Han-Wen keeps inviting a rename of \paper and
\layout rather than a moving around of settings from one bucket to the
other.)

Basically, the real division of settings is into class I and class II.
And -- as an accident of naming history -- the bucket into which class
I settings fit happens to have been named "\paper". Likewise, the
bucket into which class II settings fit happens to have been named
"\layout". (And, in fact, the history of convert-ly points to the fact
that these two buckets used to be named differently, in fact.) The
buckets could just have easily been called "red" and "blue".

And this explains the confusion: I'm sitting here looking at the 27
different settings that 11.1.2 puts into the \paper (class I) bucket
and thinking "My God, how on earth do these things relate to each
other? Some are page setup settings like margins while others have
nothing at all to do with page set up and concern how systems of music
lay out across the page, like between-system-padding. How did these
different settings all wind up in the same category?"

And now the answer is clear: the 27 settings that 11.1.2 puts into the
\paper (class I) bucket are all there not because they relate to each
other semantically (ie, not because they all share a similar purpose)
but instead because all share the same SCOPE -- you can stick any
setting you want in \paper provided that the setting can have
\book-level scope. OTOH, \layout is a more "selective" place to stick
your settings: you can only stick settings into \layout that can have
a more localized score-level scope.

And now I see why Han-Wen keeps inviting a name change of the \paper
and \layout buckets (while implicitly discouraging the moving around
of settings between those two buckets): the buckets show the *scope*
of the different settings, which isn't really an attribute that can be
easily changed.

OK. I get it. Now I see why the task is a renaming task rather than a
moving-around task.

Hm ... more thinking ...

(If I'm getting something factually incorrect, somebody please correct me.)


--
Trevor Bača
address@hidden

reply via email to

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