>>>> Why is the vertical extent of the strut ignored? >>> >>> Because side positioning is primarily based on (vertical) >>> skylines, not extents. >> >> Thanks. What is the reasoning behind this? For me, this behaviour >> is unexpected. > > By the way, this is one reason why \strut is not such a great thing > in my opinion. I suppose that in LaTeX, {\strut abc} and {abc > \strut} (or whatever the exact syntax is) are equivalent. In > LilyPond, they can't be, since if you want \strut to factor into the > skylines, its placement will be visible in the shape of the skylines > (and consequently make a difference in the spacing).
You are correct with your LaTeX observation. However, the longer I think about struts – even `\vspace` is nothing else than a vertical strut! – the more I believe that there is a conceptual problem in LilyPond: There is a 'typesetting mode' where vertical struts have an effect (like the problem originally reported in 'lilypond-user', starting with https://lists.gnu.org/archive/html/lilypond-user/2022-11/msg00237.html), and there are other modes without such an effect. What about making LilyPond properly integrate (finite) struts into the skyline? I see two advantages. * It removes the above-described modality, which seems unnecessary to me. If it is really necessary, it lacks an explanation in the NR. * It would allow fine-tuning of the skyline in a simpler way than what currently is possible. Imagine, for example, that you need some empty space above letter 'V' of the string 'VAVA': ``` | | ++---+ |VAVA| ``` The 'correct' solution would be to put letter 'V' into a `\with-dimension` box or something similar [please correct me if there is something better]. However, doing so might produce a different output if, say, there is kerning: Pango now sees 'V' and 'AVA', and the kerning between the first 'V' and 'A' is lost, AFAIU. The alternative would be to insert a vertical strut right before letter 'V'. Werner