Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: Mario am Dienstag, 20. Oktober 2009, 15:05
-
Hallo,
ich erzeuge Noten mit Lyrics nach folgendem Schema
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?
-
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
-
Hmm, o.k.
Ich habe es nun mit \overrideProperty #"Score.NonMusicalPaperColumn"
#'line-break-system-details #'((alignment-offsets . (11 4 2 -2)))
hinbekommen, aber die Lösung ist nicht sehr elegant. Egal.
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
>>
}
-
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
-
Danke für die Alternative, Robert.