Thank you for your help in this matter. I added the line "\consists Staff_collecting_engraver" as suggested, and read the somewhat cryptic paragraph under Mark_engraver in the IR, as indicated in the link you provided.
Unfortunately I still got the same error messages as before. However, re-reading the "cryptic paragraph", I decided that perhaps it indicated that the Staff_collecting_engraver should be removed from other contexts. I therefore added the line \remove Staff_collecting_engraver to the \context { } section, and this indeed solved the problem. Thanks again for pointing me in the right direction! David On Sun, 2021-11-14 at 16:13 +0100, Jean Abou Samra wrote: > Le 13/11/2021 à 20:41, David Sumbler a écrit : > > I have just started on a new Lilypond project, having had little > > interaction with Lilypond for several months. I installed > > v.2.23.4. > > Although I have so far only set 3 lines of music on 2 staves, the > > message "programming error: cyclic dependency: calculation-in- > > progress encountered for #'adjacent-pure-heights > > (VerticalAxisGroup)" is issued 8 times when compiling. > > From the very little I could find searching online, it seems as if > > it might have something to do with my having moved Mark-engraver > > etc. from their usual context. It was also suggested that this is > > a bug. > > Is there some way of suppressing these messages? I know how to > > suppress warnings, but that won't work with these error messages. > > The code I am using to set up the "staff" containing metronome > > marks etc. is: > > \layout { \context { \name "MarkLine" \type > > "Engraver_group" \consists Output_property_engraver \consists > > Axis_group_engraver \consists Mark_engraver \consists > > Metronome_mark_engraver \consists > > Text_spanner_engraver \override RehearsalMark.extra-spacing- > > width = #'(0 . 1) \override MetronomeMark.extra-spacing-width = > > #'(0.5 . -inf.0) \override TextSpanner.Y-offset = > > #3.5 \override VerticalAxisGroup.minimum-Y-extent = #'(-2 . > > 2) \override VerticalAxisGroup.staff-staff-spacing > > = #'((basic-distance . 1) (minimum-distance . > > 1) (padding . 1) (stretchability . 3)) } \context > > { \Score \remove Mark_engraver \remove > > Metronome_mark_engraver \accepts MarkLine }} > > I can't remember where I got this code from. Is there something > > that needs to be changed in it? > > You also have to move the Staff_collecting engraver,as documented at > https://lilypond.org/doc/v2.23/Documentation/internals/mark_005fengraver > > Giving: > \version "2.23.4" > \layout { \context { \name "MarkLine" \type > "Engraver_group" \consists Output_property_engraver \consists > Axis_group_engraver \consists Mark_engraver \consists > Metronome_mark_engraver \consists Text_spanner_engraver > \consists Staff_collecting_engraver \override > RehearsalMark.extra-spacing-width = #'(0 . 1) \override > MetronomeMark.extra-spacing-width = #'(0.5 . -inf.0) \override > TextSpanner.Y-offset = #3.5 \override VerticalAxisGroup.minimum- > Y-extent = #'(-2 . 2) \override VerticalAxisGroup.staff-staff- > spacing = #'((basic-distance . 1) (minimum-distance . 1) > (padding . 1) (stretchability . 3)) } \context { > \Score \remove Mark_engraver \remove > Metronome_mark_engraver \accepts MarkLine }} > << \new MarkLine { \mark \default } { a1 } >> > > Note that the programming errors appeared becausean internal check > was enabled. In other words, itis worth fixing your code even with > older versionseven if there is no warning (observe how the > verticalspacing gets different in the example above). > Best,Jean