Autor Thema: Positionierung Trennungsstriche und Melismastriche  (Gelesen 2137 mal)

Hilflos-im-Code

  • Member
Positionierung Trennungsstriche und Melismastriche
« am: Sonntag, 23. Oktober 2016, 22:17 »
\version "2.19.49"



sopranoVoice = \relative c'' {

  a a a (a)
  \break a a a (a)
  \break  a a a (a)
  \break  a a a (a)
  \break  a a a (a)
  \break  a a a (a)
  \break  a a a (a)
  \break  a a a (a)
  \break  a a a (a)
  \break  a a a (a)
  \break  a a a (a)
  \break  a a a (a)
  \break  a a a (a)
  \break  a a a (a)

}

verse = \lyricmode {
  \override LyricText.Y-offset = #'-3  Lied -- text folgt __
  Lied -- text folgt __
  Lied -- text folgt __
  Lied -- text folgt __
  Lied -- text folgt __
  Lied -- text folgt __  Lied -- text folgt __  Lied -- text folgt __  Lied -- text folgt __  Lied -- text folgt __  Lied -- text folgt __  Lied -- text folgt __  Lied -- text folgt __  Lied -- text folgt __  Lied -- text folgt __  Lied -- text folgt __  Lied -- text folgt __  Lied -- text folgt __  Lied -- text folgt __  Lied -- text folgt __
}

\score {
  \new Staff \with {

  } { \sopranoVoice }
  \addlyrics { \verse }
  \layout { }
}


Die Striche stehen nicht auf Texthöhe. Warum?

Warum wird der Text in der letzten Zeile auf der ersten Seite in einem anderem Abstand ausgegeben als bei den anderen Zeilen?

Pusteblumi

  • Member
Re: Positionierung Trennungsstriche und Melismastriche
« Antwort #1 am: Sonntag, 23. Oktober 2016, 22:54 »
Mit der Anweisung
\override LyricText.Y-offset = #'-3verschiebst du den Liedtext drei Zwischenräume nach unten.
Um die Striche mit zu verschieben, kannst du
\override LyricHyphen.Y-offset = #'-3 
\override LyricExtender.Y-offset = #'-3
einfügen.
In der letzten Zeile hat Lilypond wahrscheinlich versucht, Platz einzusparen, damit die Noten auf eine Seite passen.

Viele Grüße,
Klaus

Manuela

  • Member
Re: Positionierung Trennungsstriche und Melismastriche
« Antwort #2 am: Sonntag, 23. Oktober 2016, 23:38 »

Warum wird der Text in der letzten Zeile auf der ersten Seite in einem anderem Abstand ausgegeben als bei den anderen Zeilen?

Die vertikale Anordnung der Elemente wie Notenzeilen, Textzeilen, Akkordbezeichnungen etc. ist eine eigene Wissenschaft, mit der ich auch immer wieder kämpfe.

Ich denke, hier ist ein guter Einstieg (falls du Englisch gut genug kannst, ansonsten schalte auf die deutsche Übersetzung um).

harm6

  • Member
Re: Positionierung Trennungsstriche und Melismastriche
« Antwort #3 am: Montag, 24. Oktober 2016, 00:27 »
Um Deine Fragen zu beantworten...
Zitat
Die Striche stehen nicht auf Texthöhe. Warum?
Die Striche sind eigene grobs, LyricHyphen und LyricExtender und werden von Deinem override nicht angesprochen. Die von Pusteblumi vorgeschlagenen overrides sind zwar technisch korrekt, werden Dir aber nicht zum von mir vermuteten Ziel verhelfen.

Zitat
Warum wird der Text in der letzten Zeile auf der ersten Seite in einem anderem Abstand ausgegeben als bei den anderen Zeilen?
Dumme Antwort: weil Du nichts dagegen unternommen hast.
Besser: das spacing der einzelnen Kontexte eines scores, hier: Staff mit inheriter Voice und Lyrics (durch addlyrics), unterliegt einer sehr mächtigen und damit leider auch sehr komplexen Machinerie.
Nachzulesen im von Mauela angegebenen link. Die tatsächlichen Werte der einzelnen Variablen kann man hier
http://lilypond.org/doc/v2.19/Documentation/internals-big-page#contexts
einsehen, falls besondere Setzungen erfolgt sind, ansonsten:
http://lilypond.org/doc/v2.19/Documentation/internals-big-page#verticalaxisgroup
Für den Lyrics-context steht dort:
Zitat
Set grob-property nonstaff-relatedstaff-spacing in VerticalAxisGroup to:
'((basic-distance . 5.5)
  (padding . 0.5)
  (stretchability . 1))
Lyrics ist kein Staff, deshalb "nonstaff". Staff ist der "relatedstaff.
Wichtig ist hier strechability. Solange strechability größer als null ist darf LilyPond Abstände eindampfen, je höher der Wert desto weniger Einschränkungen sind LilyPond auferlegt.
Nun ist der default 1. Damit darf LilyPond nur wenig machen, also nur dann wenn es gar nicht anders geht. Deshalb ist das zusammengestauchte Spacing nur in der letzten Zeile zu sehen.

Tatsächlich vermute ich, daß Du den Abstand von Lyrics und Staff vergrößern willst und zwar ohne das es irgendwo einbricht. (Wenn das so ist schreib das demnächst auch)

Zwei Möglichkeiten
(1)
Laß Lilypond wirklich freie Hand:
\layout {
  \context {
    \Lyrics
  \override VerticalAxisGroup.nonstaff-relatedstaff-spacing =
  %% default
  %'((basic-distance . 5.5)
  %  (padding . 0.5)
  %  (stretchability . 1))
    #'((basic-distance . 2)
       (minimum-spacing . 2)
       (padding . 2)
       (stretchability . 10000))
      }
}

sopranoVoice = \relative c'' {
  \repeat unfold 14 { a4 a a( a) \break }
}

verse = \lyricmode {
  \repeat unfold 14 { Lied -- text folgt __ }
}

\score {
  \new Staff \sopranoVoice
  \addlyrics \verse
}
(2)
Falls Du damit nicht zufrieden bist bestehe auf den von Dir verwendeten Werten:
\layout {
  \context {
    \Lyrics
  \override VerticalAxisGroup.nonstaff-relatedstaff-spacing =
  %% default
  %'((basic-distance . 5.5)
  %  (padding . 0.5)
  %  (stretchability . 1))
    #'((basic-distance . 5)
       (padding . 3)
       (stretchability . 0))
      }
}

sopranoVoice = \relative c'' {
  \repeat unfold 14 { a4 a a( a) \break }
}

verse = \lyricmode {
  \repeat unfold 14 { Lied -- text folgt __ }
}

\score {
  \new Staff \sopranoVoice
  \addlyrics \verse
}

Gruß,
  Harm