Le 01/06/2022 à 21:50, David Kastrup a écrit :
Frankly, I have no idea what I am actually doing there with the ly:stencil-aligned-to . I was just fudging around until something fell out that looked like what you wanted to be doing. So "\squashed" is actually a misnomer from the first attempt where I just thought I'd shrink stuff (which did not work). So while the technique for diddling with a stencil is programmed in a straightforward manner, I have no clue about the underlying core action.
https://lilypond.org/doc/v2.23/Documentation/internals/breathingsign indicates that BreathingSign.space-alist.time-signature defaults to #'(minimum-space . 1.5). The minimum-space spacing style is defined by this in break-alignment-interface.cc: /* should probably junk minimum-space */ else if (scm_is_eq (type, ly_symbol2scm ("minimum-space"))) offsets[next_idx] = std::max (extents[idx][RIGHT], distance); Namely, it measures the minimum distance from the left grob's X reference point to the right grob's, with care to ensure that the right grob's reference point is not further to the left than the right of the left grob's extent. If the extent of the grob on the right sticks out to the left, that part isn't taken into account. So you're effectively making that distance measured to the right of the time signature rather than to the left. I'm not sure why this takes into account the right endpoint of the extent on the left but not the left endpoint of the extent on the right. I think it might just be assuming that all break-aligned grobs have an extent starting at 0.
