[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: balloonText and DoublePercentEngraver

From: Jean Abou Samra
Subject: Re: balloonText and DoublePercentEngraver
Date: Thu, 30 Dec 2021 14:50:56 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.3.1

Le 30/12/2021 à 14:26, Werner LEMBERG a écrit :
Not sure if we're on the same wavelength here.  You can already make
the bars wider or, to a certain extent, shorter, by adjusting
DoublePercentRepeat.extra-spacing-width.  That won't work for
reducing spacing to less than a certain amount, but then just
turning DoublePercentRepeat into a spanner wouldn't either (it would
only provide minimum-length).
Ah, this was the property I couldn't find, thanks.  Of course, the NR
doesn't have a single example for it; I will add one.

Note that with `spacing-increment` it is possible to make the double
percent repeat *much* narrower as shown below.  I now wonder why I
can't do that with `extra-spacing-width` – what exactly controls the
minimum width of the double percent repeat's two bars?

Horizontal spacing is computed with a system that
tries to achieve the best possible layout by default
at the expense of making user tweaks more complicated.
Items are grouped in paper columns. There is an
alternation of musical and non-musical columns.
The musical ones hold notes, rests, etc., while the
non-musical ones have all prefatory material such
as clefs, bar lines, custos, etc.  Then LilyPond
will compute springs and rods between these columns.
A spring holds an ideal distance, a minimum distance,
and factors defining its strength for compression
and dilatation. A rod is just a minimum distance.
Springs are (usually?) computed from note spacing.
Musically longer notes make for longer ideal distances
(there are also corrections for optical illusions).
Rods are added merely for collision avoidance.
For every pair of adjacent columns, LilyPond computes
horizontal skylines (those serving in horizontal
spacing, which look vertical!), determines the point
where they are closest, and adds a rod so that they
will not overlap. Also, spanners having
ly:spanner::set-spacing-rods in their springs-and-rods
property will add rods from the left bound to their
right bound to ensure at least a distance of their
minimum-length property.

The intervention of extra-spacing-width and
extra-spacing-height is only in the step where
rods are added between adjacent columns. I think.
I don't even know for sure :-)

TLDR: You have allowed LilyPond to make the bars
very short, but she still thinks having them
wider looks prettier.

Hope that helps to understand and document!


reply via email to

[Prev in Thread] Current Thread [Next in Thread]