Mark Polesky <markpole...@gmail.com> writes:

> David Kastrup wrote:
>> Personally, I am most uncomfortable with the "be relative
>> to current settings once" idea: that seems like a total
>> nightmare in situations using quotes or similar.  The
>> question is where we could access a reasonably "default"
>> setting that relative references could be based on.
>
> Okay, then I propose a completely new design, which will be
> a near total rewrite of the code, but it looks like it will
> be more elegant.  Pardon the quasi-code.
>
>   `\magnifyStaff mag' will do these overrides:
>      for each shrinkable prop S,
>        S = (* S (/ mag old-mag))
>      for each unshrinkable prop U,
>        U =
>            (if (< mag 1)
>              (if (< old-mag 1)
>                  U
>                  (/ U old-mag))
>              (if (< old-mag 1)
>                (* U mag))
>                (* U (/ mag old-mag)))

This assumes access to old-mag.  It also assumes that floating point
arithmetic is perfect and has no accumulative errors.

So I don't see that this approach will fly.

> It makes sense to me that, at least initially, the
> default size should be the size of the staff when
> magnifyStaff is first used.

I repeat: that seems like a total nightmare in situations using quotes
or similar.  The question is where we could access a reasonably
"default" setting that relative references could be based on.

Perhaps the easiest way out would be to have a staff-size relative
setting in analogy to the current font-size setting.  It would have to
be factored in "at the last moment" just like font-size is and should
cater for ossia staves and similar reasonably gracefully.

Apropos gracefully: maybe it might be worth checking how grace-settings
et al work and take a hint from them.

-- 
David Kastrup

_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to