Le 18/11/2022 à 12:05, Werner LEMBERG a écrit :
The latter. What I suggest is that zero-width/zero-height objects *are* taken in account for computing the skylines.
What makes your (redefined) \strut not taken into account into skylines is not just its empty X extent. You can see that it is still not taken into account if you replace empty-interval with '(0 . 10). That is caused by the "" stencil expression, which LilyPond never gives skylines to -- unless it's the whole stencil: you can see that in this example: \version "2.23.81" #(define-markup-command (strut layout props) () #:properties ((baseline-skip)) (ly:make-stencil "" '(0 . 10) (cons (* -0.3 baseline-skip) (* 0.7 baseline-skip)))) { \override TextScript.show-horizontal-skylines = ##t \override TextScript.show-vertical-skylines = ##t e'4^\markup { "a" } % \strut not taken into account for vertical skylines e'4^\markup { \strut "a" } % Here, \strut *is* taken into account. e'4^\markup \strut } It is completely unclear to me how you would take non-printing stencils with empty extents into skylines. How should the resulting skylines look like? If the X extent is empty-interval, why should the vertical skyline take this stencil into account on '(0 . 0) and not on, say, '(2 . 2)? If you want something in the skylines, you need to tell LilyPond how its skylines should look like, with the extents. If \strut needs to have an empty X extent for horizontal spacing reasons, you will need to use ly:stencil-outline.
Regarding the latter, the handling looks inconsistent. I've opened https://gitlab.com/lilypond/lilypond/-/issues/6472 about that.Thanks. However, I can't immediately that these two problems are related :-)
The same happens with embedded-ps as with "" above. Jean
OpenPGP_signature
Description: OpenPGP digital signature