Autor Thema: Verlängerungsstriche im Gesangstext  (Gelesen 48 mal)

chf

  • Sr. Member
  • ****
  • Beiträge: 251
Verlängerungsstriche im Gesangstext
« am: Donnerstag, 8. April 2021, 11:57 »
Liebe Freunde,

im unterlegten Text verwende ich

\override LyricText.extra-offset = #'(0 . .5)
\override LyricHyphen.extra-offset = #'(0 . .5)

Wie kann ich die Verlängerungsstriche auf die gleiche Höhe bringen (wie kann ich sie ansprechen)?

Wintergruß
Christa

harm6

  • Hero Member
  • *****
  • Beiträge: 892
Antw:Verlängerungsstriche im Gesangstext
« Antwort #1 am: Donnerstag, 8. April 2021, 14:10 »
Die heißen LyricExtender.

Es ist aber im Allgemeinen eine schlechte Idee alle lyrics mit extra-offset zu versetzen. Da sollte man besser das spacing des Lyrics-context zum jeweiligen Staff angehen.

Gruß,
  Harm

chf

  • Sr. Member
  • ****
  • Beiträge: 251
Antw:Verlängerungsstriche im Gesangstext
« Antwort #2 am: Donnerstag, 8. April 2021, 17:46 »
Kannst du mir das bitte  erklären / zeigen?

harm6

  • Hero Member
  • *****
  • Beiträge: 892
Antw:Verlängerungsstriche im Gesangstext
« Antwort #3 am: Freitag, 9. April 2021, 11:24 »
Das default-spacing zwischen Lyrics und dem Staff mit der assoziierten Voice ist in der IR 2.1.16 Lyrics nachzulesen, hier als code-Beispiel:

<<
  \new Staff
    \new Voice = "mel" { b'1 b'1~ 1 }
  \new Lyrics
    \with {
      \override VerticalAxisGroup.nonstaff-relatedstaff-spacing  =
        #'((basic-distance . 5.5)
           (padding . 0.5)
           (stretchability . 1))
    }
    \lyricsto "mel" { foo -- bar __ }
>>
(Im default fehlt eine Setzung für minimum-distance)

Die Werte von basic-distance und minimum-distance beziehen sich auf den Abstand zwischen den Referenzpunkten von (hier) Staff- und Lyrics-context.
Deshalb gibt es hier einen deutlichen Abstand:
<<
  \new Staff
    \new Voice = "mel" { b'1 b'1~ 1 }
  \new Lyrics
    \with {
      \override VerticalAxisGroup.nonstaff-relatedstaff-spacing  =
        #'((basic-distance . 8)
           (minimum-distance . 8)
           (padding . 0)
           (stretchability . 0)
           )
    }
    \lyricsto "mel" { foo -- bar __ }
>>
Hier aber nicht:
<<
  \new Staff
    \new Voice = "mel" { b,1 b'1~ 1 }
  \new Lyrics
    \with {
      \override VerticalAxisGroup.nonstaff-relatedstaff-spacing  =
        #'((basic-distance . 8)
           (minimum-distance . 8)
           (padding . 0)
           (stretchability . 0)
           )
    }
    \lyricsto "mel" { foo -- bar __ }
>>
denn das tiefe b, drückt die beiden contexts schon weiter auseinander als basic- bzw minimum-distance. Insoweit ist auch klar das Werte für basic- bzw minimum-distance unter ~4 ohne jegliche Wirkung bleiben, zumindest solange der Staff ein normaler 5-Linien-Staff ist.
Den Unterschied zwischen basic- und minimum-distance thematisiere ich hier nicht, besonders da minimum-distance ja auch im Lyrics-default nicht gesetzt ist.

Der padding Wert ist ein fixer Abstand zwischen den skylines von Objekten aus dem Staff und den Lyrics (nicht zwischen den Referenzpunkten der contexts).

Als Faustregel gilt: basic-distance >= minimum-distance >= padding

stretchability ist platt gesagt das Ausmass der Freiheit, die LilyPond eingeräumt wird mit den Werten beim spacing umzugehen.

Um zu einem den eigenen Wünschen angepassten Verhalten zu kommen, würde ich zunächst alle Werte auf null setzen, d.h.
        #'((basic-distance . 0)
           (minimum-distance . 0)
           (padding . 0)
           (stretchability . 0)
           )

stretchability würde ich auf null belassen, oder auf einen niedrigen Wert (default war 1) setzen.
-> (stretchability . 0)
Und dann padding einregeln, sodaß im Staff mit b, ein hinreichender Abstand gewahrt wird. Den default von 0.5 würde ich auch nehmen wollen.
-> (padding . 0.5)
Um basic-distance einzuregeln nehme den Staff ohne b, und fang beim Wert 4.0 an und gehe in 0.1-Schritten vor. Der default ist ja 5.5, also kommst Du möglicher Weise zu 4.5.
-> (basic-distance . 4.5)
minimum-distance kannst Du wohl ungesetzt lassen.

Führt dann zu:
<<
  \new Staff
    \new Voice = "mel" { b'1 b'1~ 1 }
  \new Lyrics
    \with {
      \override VerticalAxisGroup.nonstaff-relatedstaff-spacing  =
        #'((basic-distance . 4.5)
           (padding . 0.5)
           (stretchability . 0)
           )
    }
    \lyricsto "mel" { foo -- bar __ }
>>

Dann setze den den Befehl mit den gefundenen Werten in den entsprechenden Staff Deines tatsächlichen ly-files.
Eleminiere andere Befehle, die sich auf vertikale Verschiebungen bzw Ausdehnungen der lyrics beziehen und überprüfe dann das Verhalten der gefundenen Werte. Falls sie nicht ganz ok sind gehe im richtigen ly-file vor, wie oben in den minimals beschrieben.

Du kannst natürlich den Schritt mit den minimals überspringen, allerdings bleibt dann möglicherweise unklar bei welchen Werten was und warum passiert.


HTH,
  Harm


chf

  • Sr. Member
  • ****
  • Beiträge: 251
Antw:Verlängerungsstriche im Gesangstext
« Antwort #4 am: Samstag, 10. April 2021, 16:27 »
Danke, Harm. Das ist Stoff zum Nachdenken und Probieren!