Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: Hilflos-im-Code 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?
-
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 = #'-3einfügen.
In der letzten Zeile hat Lilypond wahrscheinlich versucht, Platz einzusparen, damit die Noten auf eine Seite passen.
Viele Grüße,
Klaus
-
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 (http://lilypond.org/doc/v2.19/Documentation/notation/flexible-vertical-spacing-within-systems.html) (falls du Englisch gut genug kannst, ansonsten schalte auf die deutsche Übersetzung um).
-
Um Deine Fragen zu beantworten...
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.
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 (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 (http://lilypond.org/doc/v2.19/Documentation/internals-big-page#verticalaxisgroup)
Für den Lyrics-context steht dort:
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