Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: Mario am Dienstag, 20. Oktober 2009, 15:05

Titel: Vertikaler Abstand mehrzeilige Lyrics
Beitrag von: Mario am Dienstag, 20. Oktober 2009, 15:05
Hallo,

ich erzeuge Noten mit Lyrics nach folgendem Schema

Zitat
notes = \relative c' { \time 4/4 c d e f }

erstezeile = \lyricmode { "1" "2" "3" "1" }
zweitezeile = \lyricmode { "4" "5" "6" "4" }

\score {
<<
\new Staff << \new Voice ="mainvoice" << \notes >> >>
\new Lyrics = "erstezeile" \with { \override LyricText #'font-size = #-2 }
\new Lyrics = "zweitezeile" \with { \override LyricText #'font-size = #-2 }

\context Lyrics = "erstezeile" \lyricsto "mainvoice" \erstezeile
\context Lyrics = "zweitezeile" \lyricsto "mainvoice" \zweitezeile
>>

}

Die beiden Zeilen sind mir aber zu weit voneinander entfernt. Gibt es eine Möglichkeit, diese per \override o.ä. enger zusammenrücken zu lassen?
Titel: Re: Vertikaler Abstand mehrzeilige Lyrics
Beitrag von: ding-dong am Dienstag, 20. Oktober 2009, 16:15
das scheint in bearbeitung zu sein und wird wohl im nächsten entwickluns-release zu finden sein:
http://www.nabble.com/vertical-spacing-problems-with-Lyrics-to25770257.html#a25860732 (http://www.nabble.com/vertical-spacing-problems-with-Lyrics-to25770257.html#a25860732)
hdh
Titel: Re: Vertikaler Abstand mehrzeilige Lyrics
Beitrag von: Mario am Dienstag, 20. Oktober 2009, 17:42
Hmm, o.k.

Ich habe es nun mit
Zitat
\overrideProperty #"Score.NonMusicalPaperColumn"
 #'line-break-system-details #'((alignment-offsets . (11 4 2 -2)))
hinbekommen, aber die Lösung ist nicht sehr elegant. Egal.

Zitat
notes = \relative c' { \time 4/4 <c c'>4 <g' g'> <d d'> <b' a'> \bar "||" }

lyricsNummern = \lyricmode { "1" "3" "1" "3" }
lyricsNummernSplit = \lyricmode { "4" "6" "4" "6" }

tabs = \lyricmode {
     \markup { \fontsize #4 \override #'(font-name . "TabSymbols") { a } }
     \markup { \fontsize #4 \override #'(font-name . "TabSymbols") { a } }
     \markup { \fontsize #4 \override #'(font-name . "TabSymbols") { b } }
     \markup { \fontsize #4 \override #'(font-name . "TabSymbols") { b } }
}

\score {
<<
\new Staff << \new Voice ="mainvoice" <<
\overrideProperty #"Score.NonMusicalPaperColumn"
 #'line-break-system-details #'((alignment-offsets . (11 4 2 -2)))
 \notes >> >>
\new Lyrics = "nummern" \with { \override LyricText #'font-size = #-2 }
\new Lyrics = "nummern2" \with { \override LyricText #'font-size = #-2 }
\new Lyrics = "tabs" {}

\context Lyrics = "nummern" \lyricsto "mainvoice" \lyricsNummern
\context Lyrics = "nummern2" \lyricsto "mainvoice" \lyricsNummernSplit
\context Lyrics = "tabs" \lyricsto "mainvoice" \tabs
>>

}
Titel: Re: Vertikaler Abstand mehrzeilige Lyrics
Beitrag von: RobUr am Dienstag, 20. Oktober 2009, 20:43
Andere Möglichkeit: Y-extent und Y-offset einer der beiden (Text-)Zeilen überschreiben.
zweitezeile = \lyricmode {
\override LyricText #'Y-extent = #'( 0 . 0 )
\override LyricText #'Y-offset = #'1.5
\override LyricHyphen #'Y-extent = #'( 0 . 0 )
\override LyricHyphen #'Y-offset = #'1.5
"4" -- "5" "6" "4"
}

Zuerst die vertikale Ausdehnung auf 0 setzen, dann per Y-offset verschieben. Falls Strophennummern verwendet werden, diese ebenfalls per \override StanzaNumber adressieren und überschreiben.

Grüße, Robert
Titel: Re: Vertikaler Abstand mehrzeilige Lyrics
Beitrag von: Mario am Dienstag, 20. Oktober 2009, 22:58
Danke für die Alternative, Robert.