From: Paolo Prete <paolopr...@gmail.com> Date: Thursday, January 16, 2020 at 10:24 AM To: Robin Bannister <r...@dabble.ch> Cc: Michael Gerdau <m...@qata.de>, Lilypond-User Mailing List <lilypond-user@gnu.org>, Carl Sorensen <c_soren...@byu.edu> Subject: Re: Distance of a grob from its reference point
On Thu, Jan 16, 2020 at 5:33 PM Robin Bannister <r...@dabble.ch<mailto:r...@dabble.ch>> wrote: OR 3) make outside-staff-padding 0.46 more than needed vertical shift e.g. 2.46 Cheers, Robin This is *precious* info. Please, can you tell/confirm if 1. you are referring to \offset command ? My testing found that \offset didn’t work with outside-staff-padding for OttavaBracket grobs. 1. is it applicable as a replacement for "\offset Y-offset" for *every* grob that support Y-offset ? No. outside-staff-padding is a different property than Y-offset. Grobs that live in the staff are largely controlled by Y-offset. Grobs that live outside of the staff are placed outside the staff grobs by at least outside-staff-padding when all of the properties that control the automatic placement are considered. It is *very* unlikely that you will find a single approach that will work with *every* grob. You may be able to find approaches that will work with classes of grobs. You may need to have individual approaches that apply to specific grobs. The music layout problem is very complex. Lilypond treats it as such. Once the layout is accomplished, you can manually move grobs with extra-offset, but you are then responsible for resolving collisions. Providing bias that causes fixed incremental motion of individual grobs in the collision-resolved output is not a trivial problem, as you have discovered. It appears that much or your dissatisfaction is because you thought you had found a trivial solution (i.e. use \offset Y-offset) only to find that it doesn’t work. I am completely confident that there is *no* trivial solution. There may be a *set* of trivial solutions, each of which applies to a family of grobs. But finding those solutions will require individually checking how each grob is affected. You can get the list of grobs in the NR (All layout objects). Carl.