Hi Aaron, > If we borrow some of the underlying logic, we get the following:
Wow… You are my patronus of late. =) > #{ \override $grob-path .after-line-breaking = #proc #}) My mind was a little blown by the result of changing that to \override $grob-path .before-line-breaking = #proc Doing so made it *deeply* and *immediately* clear that, despite being a serious power-user of Lilypond for almost twenty years, I know almost nothing of how it actually works. > Going back to your prior ask of "how do I move a grob?", I think we need to > shift perspective on the issue. It is less important to dwell on *how* to > move something; rather, we should inquire of you *why* you want to move > something. What purpose does it serve, for instance, to move an > OttavaBracket upward precisely two staff spaces? (I apologize if that is > coming across sarcastically, but I am afraid I lack better wordsmithing.) > The goal of such questioning is to best improve how LilyPond's layout engine > works without user intervention. There likely exists sufficient logic within > LilyPond to accommodate your needs; but it is certainly possible such logic > still needs to be invented. However, I think focusing on details like final > grob positioning might be putting the cart before the horse. I often need to do such things in my engraving work — especially complicated "non-traditional" engraving (Schenker graphs, etc.). Usually, I just use the edition-engraver to tweak the position, and usually it’s with padding and/or extra-offset. A few times, I’ve had to use other tweaks to push objects or staves further away before repositioning the grob itself. Hence the ability to offset (e.g.) an OttavaBracket precisely X staff spaces while still [re-]engaging the spacing engine is neither an unreasonable request, nor something that Lilypond could (or even should!) try to manage automagically. Cheers, Kieren. ________________________________ Kieren MacMillan, composer (he/him/his) ‣ website: www.kierenmacmillan.info ‣ email: i...@kierenmacmillan.info