lilypond-devel
[Top][All Lists]
Advanced

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

Re: Fixes NoteColumn vs SpanBar collisions. (issue 5323062)


From: Keith OHara
Subject: Re: Fixes NoteColumn vs SpanBar collisions. (issue 5323062)
Date: Mon, 07 Nov 2011 20:19:04 -0800
User-agent: Opera Mail/11.52 (Win32)

Mike,
  Now that we understand that we can adjust 'extra-spacing-height
for note-spacing, without messing up line-breaking or page-spacing,
let's revisit the big picture.

On Fri, 04 Nov 2011 00:12:01 -0700, address@hidden <address@hidden> wrote:

On Nov 3, 2011, at 11:39 PM, address@hidden wrote:

What is the overall plan for the new engravers?

Currently, LilyPond has no mechanism to calculate the Y-extents of Itemsin a relative 
way.  You can't say "make the height of grob X such thatit is always Y larger than 
that of grob Z."

So far, so good.

This is necessary for grobs (like barlines) that need to block certain grobs
that fall above and below them.   Idem for Staves, idem for time 
signatures.Currently, LilyPond accomplishes this through hardcoded values 
(check out
the extra-spacing-height for TimeSignature, for example), which potentially
catches unwanted fuzz (a text script with '(0 . 0) for  extra-spacing-width
and low padding will be shifted over numerical time signatures but notcommon 
time).

Well, it depends on /why/ we need the blocking.
If the goal is to avoid collisions, we use the extents plus extra-spacing-*
For horizontal spacing based on the meaning of the grobs, we have the 
'space-alist.
Grobs that need prominence relative to their non-colliding neighbors can benefit
 from your pure-from-neighbor-interface.

Span Bars need space to avoid collisions.

Separating SpanBars into segments, as you did for issue 910, seems wise because
in the case of issue 910 they can print as segments.
Using the "as tall as my neighbor" concept for SpanBarStubs, seems unwise.

\new PianoStaff <<
   \new Staff { R1*5 }
   \new Staff {
     e'1 |
     b'16 <e'' cis''' dis'''>4.. r2 |
     e''16 <c' dis fis gis>4.. r2 |
     <e'' cis''' dis'''>2 r2 |
     <c' fis gis>2 r2
   } >>


In general, I'd like to see the Pure_from_neighbor_engraver take care of 
theextra spacing heights for all grobs that are ordered by break alignments, 
asall of them should prevent overhang.  This patch already does a good chunk of
work for that.

But that is issue 1955.

Attachment: neighbory.png
Description: PNG image


reply via email to

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