Autor Thema: Text ohne Ausdehnung  (Gelesen 1555 mal)

fugenkomponist

  • Member
Text ohne Ausdehnung
« am: Samstag, 11. Mai 2013, 13:03 »
Hallo,
das ist wahrscheinlich ein einfach zu lösendes Problem, aber ich find grad die Lösung einfach nicht: Wie sag ich LilyPond, dass er die Ausdehnung eines Grobs (z. B. eines Textes) beim Spacing ignorieren soll (insbesondere bei den Abständen zwischen Systemen)?
\version "2.17.17"

\score {
  <<
    \new Staff
    <<
      {
        c'1 c'
      }
    >>
    \new Staff
    <<
      {
        \once \override TextScript #'whiteout = ##t
        d'1^\markup \rotate #45 "langer Text" d'
        % dieser Text soll ruhig das obere System (oder auch das untere (kann da ja noch mit extra-offset arbeiten)) schneiden
      }
    >>
  >>
}

harm6

  • Member
Re: Text ohne Ausdehnung
« Antwort #1 am: Samstag, 11. Mai 2013, 13:17 »
Hallo,

Zitat
das ist wahrscheinlich ein einfach zu lösendes Problem,

so einfach ist es tatsächlich nicht (mehr).

Früher hätte man einfach \with-dimensions #'(0 . 0) #'(0 . 0) benutzt und gut wars.

Mit den neueren devel-Versionen werden Abstände, bzw spacing im allgemeinen nicht mehr mittels Boxen, die sich an den Ausdehnungen der grobs orientieren berechnet, sondern mittels skylines.
Eigentlich eine ganz wunderbare Sache (Idee/Code von Mike Solomon), dort wo es funktioniert, es tauchen jedoch immer mehr bugs auf, die damit in Zusammenhang stehen.
Bzgl \with-dimensions: issue 3255

Von dort auch die Lösung:

\with-dimensions #'(0 . 0) #'(0 . 0)
mit
\once \override TextScript #'vertical-skylines = #'()

\version "2.17.17"

\score {
  <<
    \new Staff
    <<
      {
        c'1 c'
      }
    >>
    \new Staff
    <<
      {
        \once \override TextScript #'whiteout = ##t
        \once \override TextScript #'vertical-skylines = #'()
        d'1^\markup \with-dimensions #'(0 . 0) #'(0 . 0)\rotate #45 "langer Text" d'
        % dieser Text soll ruhig das obere System (oder auch das untere (kann da ja noch mit extra-offset arbeiten)) schneiden
      }
    >>
  >>
}

HTH,
  Harm

fugenkomponist

  • Member
Re: Text ohne Ausdehnung
« Antwort #2 am: Samstag, 11. Mai 2013, 13:41 »
Hm, danke. Mir ist aber grad ein Problem aufgefallen: das whiteout funktioniert dann nicht mehr, weil das auch von diesen Maßen ausgeht …

harm6

  • Member
Re: Text ohne Ausdehnung
« Antwort #3 am: Samstag, 11. Mai 2013, 13:51 »
Zitat
das whiteout funktioniert dann nicht mehr

Da hatte ich mich nicht drum gekümmert.

Ein paar Tests zeigen allerdings, daß es so auch nicht in früheren Versionen funktioniert hatte.
Du solltest das markup-command benutzen, nicht das grob-property:

\version "2.17.17"

\score {
  <<
    \new Staff
    <<
      {
        c'1 c'
      }
    >>
    \new Staff
    <<
      {
        \once \override TextScript #'vertical-skylines = #'()
        d'1^\markup \with-dimensions #'(0 . 0) #'(0 . 0)\rotate #45 \whiteout "langer Text" d'
        % dieser Text soll ruhig das obere System (oder auch das untere (kann da ja noch mit extra-offset arbeiten)) schneiden
      }
    >>
  >>
}

Gruß,
  Harm

fugenkomponist

  • Member
Re: Text ohne Ausdehnung
« Antwort #4 am: Samstag, 11. Mai 2013, 16:06 »
Ah, danke, das kannte ich noch nicht.