Mats Bengtsson <mats.bengts...@ee.kth.se> writes: > David Kastrup wrote: >> >>> We used to have the same command for setting both context and object >>> properties, see >>> http://lilypond.org/doc/v2.2/Documentation/topdocs/out-www/NEWS.html >>> >> >> I read >> >> The syntax for setting properties has been simplified: the following >> table lists the differences: >> >> (old) (new) >> >> \property A.B = #C \set A.B = #C >> \property A.B \unset \unset A.B >> \property A.B \set #C = #D \override A.B #C = #D >> \property A.B \override #C = #D (removed) >> \property A.B \revert #C \revert A.B #C >> There is no differentiation between "context" and "object" >> properties >> here. >> > Of course there is! The \property A.B = #C syntax was used for context > properties (called "translation properties" in the 2.0 documentation) > whereas the \property A.B {\set,\override} #C = #D was used for object > properties (called "layout properties" in the 2.0 documentation). See > for example > http://lilypond.org/doc/v2.0/Documentation/user/out-www/lilypond/Tuning-output.html#Tuning-output > which explicitly states that you should not confuse layout properties > with translation properties.
Sigh. Sure. It tells Do not confuse layout properties with translation properties. Translation properties always use a mixed caps style naming, and are manipulated using \property: \property Context.propertyName = value Layout properties are use Scheme style variable naming, i.e. lower case words separated with dashes. They are symbols, and should always be quoted using #'. But that tells nothing about the actual difference. It just tells you that they have different naming conventions and should be manipulated using different commands. But WHY?!?!?!?!?! > In > http://lists.gnu.org/archive/html/lilypond-user/2003-10/msg00195.html > you can find an attempt I did at that time to introduce the different > kinds of properties and how to set them. Again, this lists different properties but does not mention at _all_ why one would want to have different commands for setting different properties. > I share your concerns that there's no clear-cut distinction between > what is handled by layout properties and and what's handled by context > properties, but it used to be much worse in old LilyPond versions, > where we had more context properties that de facto dealt with only one > particular layout object. But why different commands for setting properties? I don't use different commands for setting array values depending on what I am going to use the array for. I don't use different commands for setting list values depending on what I am going to use the list for. Why for properties? The sort of "oh, it works anyway if you ignore the classification (perhaps with a warning), but that's being naughty". What is the point behind enforcing some discipline that apparently does not a have a coherent reason that could be explained in one or several dozen sentences? I don't get it. And the more answers I get that don't address my question, the more suspicious I grow that there is no actual point. -- David Kastrup _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user