lilypond-auto
[Top][All Lists]
Advanced

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

Re: [Lilypond-auto] Issue 3504 in lilypond: \hspace isn't aligned proper


From: lilypond
Subject: Re: [Lilypond-auto] Issue 3504 in lilypond: \hspace isn't aligned properly by \fill-line (caused by fix to issue 3330)
Date: Thu, 10 Oct 2013 12:17:03 +0000


Comment #9 on issue 3504 by address@hidden: \hspace isn't aligned properly by \fill-line (caused by fix to issue 3330)
http://code.google.com/p/lilypond/issues/detail?id=3504

Ok, color me annoyed. I have no idea how the old code is supposed to make sense. Take a look at the output of the following fragment:
\markup {
  \column {
    \draw-hline
    \fill-line {
      \override #'(span-factor . 1/8) \draw-hline
      \override #'(span-factor . 1/8) \draw-hline
      \override #'(span-factor . 1/8) \draw-hline
      \override #'(span-factor . 1/8) \draw-hline
      \override #'(span-factor . 1/8) \draw-hline
      \override #'(span-factor . 1/8) \draw-hline
    }
  }
}

Straightforward, isn't it? When running this through 2.16.0, I get the attached image. What kind of spacing is that? Obviously, the first and last entry are quite out of whack. This would only make some sort of sense if there was a requirement that the first and last entry should never contain text but only spacing.

But that's not what the examples in the manual do. And it's also not documented anywhere. The actual documentation says:
  "Put @var{markups} in a horizontal line of width @var{line-width}.
The markups are spaced or flushed to fill the entire line.
If there are no arguments, return an empty stencil."

What does the code do? It more or less calculates n positions for the n entries by dividing the line width into n-1 pieces. Every entry is placed centered on its position, with the exception of the first and last entry which are placed flush-left or flush-right, respectively. Unless there is overflow (in which case things go haywire anyway), no width changes the actual positions. Since the first and the last entry are not centered on their position but flushed, anything which actually prints something will be placed irregularly. So only spacing makes sense there, and the amount of spacing is regularly ignored (again using 2.16.0), see the output from the following:

\markup \column {
  \fill-line { \hspace #20 a b c \hspace #1 }
  \fill-line { \hspace #1 a b c \hspace #20 }
}

So I am not going to restore the previous semantics as they are clearly insane. Now the interesting question is what semantics we should actually be getting. Are the content-independent positions (including independency from the first and last entry) actively employed for lining things up?

Attachments:
        test.preview.png  2.7 KB
        test2.preview.png  3.4 KB

--
You received this message because this project is configured to send all issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings



reply via email to

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