> > But I could not get it to move down onto the staff.  As described in
> >
http://www.lilypond.org/doc/v2.19/Documentation/notation/formatting-text#text-alignment
> > "Vertical alignment is a bit more complex. As stated above, markup
objects
> > can be moved as a whole; however, it is also possible to move specific
elements
> > inside a markup block."
> >
> > It took me a while to realize this meant that the techniques using
> > raise, lower, translate, general-align and translate-scaled
> > will NOT affect the "markup object moved as a whole",
> > but rather affect the relative position of objects within the markup
object.
...
> Well, it's not true, see:
...
> Printing text in Staff depends of the settings for TextScript
>
> {
>   \override TextScript.outside-staff-priority = #'()
>   \override TextScript.staff-padding = #'()
>   s1^\markup {
>         \line { \circle "."  "This is the anchor" }
>         \translate #'(-25 . 0) \with-dimensions #empty-interval
> #empty-interval "xy"
>       }
> }


That's great, thanks for demonstrating that.
Just curious, but how did you ever learn this?

It seems doubtful that one would have arrived at this insight using the
manuals.


Trying to find this info in the docs, the formatting-text page
http://lilypond.org/doc/v2.19/Documentation/learning/moving-objects
starts out with a link to the LM about moving objects.

But neither that page, nor the NR section about text alignment
http://www.lilypond.org/doc/v2.19/Documentation/notation/formatting-text#text-alignment
mentions the outside-staff-priority.


Searching for this property, it can be found in
Tweaking Output > Placement of Objects > Outside-staff objects
http://lilypond.org/doc/v2.19/Documentation/learning/outside_002dstaff-objects

But even here, there is no mention of how to get outside-staff objects
placed in the staff.

Of course, based on the naming convention "outside-staff objects", it seems
unlikely that you could place an outside-staff object within the staff.
So, maybe this is a silly discussion to begin with.  However, since it is
possible, I wonder if it should be mentioned?


"Objects with the lower value of the outside-staff-priority property are
placed nearer to the staff, and other outside-staff objects are then raised
as far as necessary to avoid collisions. The outside-staff-priority is
defined in the grob-interface and so is a property of all layout objects.
By default it is set to #f for all within-staff objects, and to a numerical
value appropriate to each outside-staff object when the object is created."

If anything, one might guess that in order to get an outside staff object
placed in the staff, you would specify it's outside-staff-priority as "#f",
since the above quoted passase says that's the default for within-staff
objects.

Yet, the example you provide sets TextScript.outside-staff-priority to an
empty list.  Is an empty list equivalent to "#f"?


Then there is the matter of staff-padding.  The LM section on grob sizing
mentions it with respect to vertical alignment of dynamics and refers to
the section on Collisions of objects
http://lilypond.org/doc/v2.19/Documentation/learning/collisions-of-objects

Within there, it is described in the section on Moving Objects
http://lilypond.org/doc/v2.19/Documentation/learning/moving-objects

"staff-padding applies only to those objects which are always set outside
the staff – it controls the minimum distance from the staff to the
outside-staff object."

This also seems to imply that an outside-staff object cannot be set within
the staff.

If you read this literally--but keeping in mind that you've demonstrated
that it is possible to set text within the staff--it is saying that
staff-padding does not apply to text markup (since text markup is not
always set outside the staff.)

This would be more consistent if it said, "staff-padding applies only to
outside-staff objects – it controls the minimum distance from the staff to
the outside-staff object."  In which case the discrepancy is only in the
naming convention, since an outside-staff object is not necessarily always
set outside the staff.


And in the section specifically on the staff-padding property:

"staff-padding can be used to align objects such as dynamics along a
baseline at a fixed distance from the staff, when no other notation forces
them further from the staff.""

Which is to say, it is unclear why and how this relates to setting text
within the staff.


So, it is not very clear where one would learn that both of these are
necessary:

  \override TextScript.outside-staff-priority = #'()
  \override TextScript.staff-padding = #'()


In any case, thanks for your help.  What would I do without this list?



David Elaine Alt
415 . 341 .4954                                           "*Confusion is
highly underrated*"
ela...@flaminghakama.com
self-immolation.info
skype: flaming_hakama
Producer ~ Composer ~ Instrumentalist
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to