I also would like to know why this fails not just the fix.
Павел Буданов-2 wrote > How to control vertical spacing in the middle of a piece? > > \new StaffGroup \with > { \override StaffGrouper.staff-staff-spacing.padding = 10 } % It's OK > << > \new Staff > { > c' c' c' c' > \break > \override StaffGrouper.staff-staff-spacing.padding = 30 % It isn't > work > c' c' c' c' > } > \new Staff { c' c' c' c' c' c' c' c' } >>> > > пт, 1 февр. 2019 г. в 11:41, Павел Буданов < > budanov.pavel@ > >: > >> It really helped me, I am very grateful to you. Would you like to change >> the vertical spacing chapter >> <http://lilypond.org/doc/v2.18/Documentation/learning/vertical-spacing> >> in the learning manual? You were able to explain a lot of things in plain >> language. >> >> пт, 1 февр. 2019 г. в 05:54, Aaron Hill < > lilypond@ > >: >> >>> On 2019-01-31 9:11 am, Павел Буданов wrote: >>> > I've solved this problem partially with for lower contexts, but i >>> > can't find the necessary properties for upper contexts. Can you help >>> > me? >>> > >>> > \new StaffGroup >>> > << >>> > \new Dynamics { s2.\< s4\ff } >>> > \new Lyrics \lyricmode { Ly4 -- ric ly -- ric } >>> > \new Staff \with >>> > { \override VerticalAxisGroup.staff-staff-spacing = >>> > #'((basic-distance . 20) (padding . 0.5)) } >>> > { a'4 a' a' a' } >>> > \new Staff { d'4 d' d' d' } >>> > \new Lyrics \with >>> > { >>> > \override VerticalAxisGroup.nonstaff-relatedstaff-spacing = >>> > #'((basic-distance . 10) (padding . 0.5)) >>> > \override VerticalAxisGroup.nonstaff-nonstaff-spacing = >>> > #'((basic-distance . 10) (padding . 0.5)) >>> > } >>> > \lyricmode { Ly4 -- ric ly -- ric } >>> > \new Dynamics { s2.\< s4\ff } >>> > >> >>> >>> Be sure to examine the output of LilyPond for warnings, not just errors: >>> >>> > warning: staff-affinities should only decrease >>> >>> This is telling you that you need to manually adjust >>> VerticalAxisGroup.staff-affinity. By default, Dynamics uses a >>> staff-affinity of CENTER (0) as it typically appears between two staves, >>> whereas Lyrics uses UP (1) as it typically appears below a staff. Your >>> upper Lyrics context is trying to locate its "relatedstaff" above, but >>> there is none to be found. You will need to set its staff-affinity to >>> DOWN (-1). (You could leave the two Dynamics contexts set to CENTER >>> staff-affinity; but it arguably better to also explicitly set them to >>> UP/DOWN based on where they appear.) >>> >>> There is a second issue that unfortunately there is no warning for. You >>> are setting basic-distance but not minimum-distance as well. By >>> omitting minimum-distance from the spacing alist, you are using the >>> default value of zero. LilyPond only attempts to honor basic-distance, >>> but will collapse down to minimum-distance if needed (and often a little >>> too eagerly). If you tried to set only basic-distance for the upper >>> contexts, you may find that it has no effect. >>> >>> It may be easier to see what it going on by only using padding, although >>> a combination of basic-distance, minimum-distance, padding, and >>> stretchability is often required to get the most out of the flexible >>> spacing system. Consider the following: >>> >>> %%%% >>> \version "2.19.82" >>> >>> % Forcibly reset all default spacing variables to zero. >>> \layout { >>> \context { \Dynamics >>> \override VerticalAxisGroup.nonstaff-nonstaff-spacing = #'(()) >>> \override VerticalAxisGroup.nonstaff-relatedstaff-spacing = #'(()) >>> \override VerticalAxisGroup.nonstaff-unrelatedstaff-spacing = >>> #'(()) >>> } >>> \context { \Lyrics >>> \override VerticalAxisGroup.nonstaff-nonstaff-spacing = #'(()) >>> \override VerticalAxisGroup.nonstaff-relatedstaff-spacing = #'(()) >>> \override VerticalAxisGroup.nonstaff-unrelatedstaff-spacing = >>> #'(()) >>> } >>> \context { \Staff >>> \override VerticalAxisGroup.default-staff-staff-spacing = #'(()) >>> \override VerticalAxisGroup.staff-staff-spacing = #'(()) >>> } >>> } >>> >>> \new StaffGroup << >>> \new Dynamics \with { >>> % Dynamics is above Staff. >>> \override VerticalAxisGroup.staff-affinity = #DOWN >>> % Spacing between this Dynamics and the following Lyrics. >>> \override VerticalAxisGroup.nonstaff-nonstaff-spacing = >>> #'((padding . 2)) >>> } >>> { s2.\< s4\ff } >>> \new Lyrics \with { >>> % Lyrics is above Staff. >>> \override VerticalAxisGroup.staff-affinity = #DOWN >>> % Spacing between this Lyrics and the following Staff. >>> \override VerticalAxisGroup.nonstaff-relatedstaff-spacing = >>> #'((padding . 3)) >>> } >>> \lyricmode { Ly4 -- ric ly -- ric } >>> \new Staff \with { >>> % Spacing between this Staff and the following Staff. >>> \override VerticalAxisGroup.staff-staff-spacing = >>> #'((padding . 5)) >>> } >>> { a'4 a' a' a' } >>> \new Staff { d'4 d' d' d' } >>> \new Lyrics \with { >>> % Lyrics is below Staff. >>> \override VerticalAxisGroup.staff-affinity = #UP >>> % Spacing between this Lyrics and the preceding Staff. >>> \override VerticalAxisGroup.nonstaff-relatedstaff-spacing = >>> #'((padding . 3)) >>> % Spacing between this Lyrics and the following Dynamics. >>> \override VerticalAxisGroup.nonstaff-nonstaff-spacing = >>> #'((padding . 2)) >>> } >>> \lyricmode { Ly4 -- ric ly -- ric } >>> \new Dynamics \with { >>> % Dynamics is below Staff. >>> \override VerticalAxisGroup.staff-affinity = #UP >>> } >>> { s2.\< s4\ff } >>> >> >>> %%%% >>> >>> Play around with the various padding amounts in the snippet. It should >>> hopefully be clear which spacing variable affects what spacing. >>> Generally speaking, spacing is done top to bottom, so spacing is almost >>> always below an item. The exception is when a non-staff has its related >>> (or unrelated) staff above it. >>> >>> Once you have a good feel for that, set padding to a large negative >>> number (e.g. -100) and then experiment with setting minimum-distance as >>> well. The negative padding will permit overlap, so it is easier to see >>> how minimum-distance works. You should notice that you need larger >>> values for minimum-distance than you did with padding to achieve a >>> similar spacing. That is because minimum-distance is measured not from >>> the extents/skylines of the content but from the reference point for >>> each context. The Notation Reference lists these unique reference >>> points. >>> >>> After that, basic-distance works the same as minimum-distance in terms >>> of being measured from the reference points. Just remember that since >>> LilyPond only tries to respect the basic-distance, you may need to rely >>> more on minimum-distance in practice. >>> >>> Hope some of this helps. >>> >>> -- Aaron Hill >>> >>> _______________________________________________ >>> lilypond-user mailing list >>> > lilypond-user@ >>> https://lists.gnu.org/mailman/listinfo/lilypond-user >>> >> > > _______________________________________________ > lilypond-user mailing list > lilypond-user@ > https://lists.gnu.org/mailman/listinfo/lilypond-user -- Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user