lilypond-devel
[Top][All Lists]

## Re: strut problem,Re: strut problem,Re: strut problem,Re: strut problem

 From: Werner LEMBERG Subject: Re: strut problem,Re: strut problem,Re: strut problem,Re: strut problem Date: Fri, 18 Nov 2022 04:46:48 +0000 (UTC)

>>>> 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

* 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