Deutschsprachiges LilyPond-Forum

Allgemeine Fragen und Probleme => Fragen und Probleme aller Art => Thema gestartet von: Hilflos-im-Code am Freitag, 22. September 2017, 09:29

Titel: Liedtext Bindestrich bei Variablen
Beitrag von: Hilflos-im-Code am Freitag, 22. September 2017, 09:29
\version "2.19.65"
cha = \lyricmode {
  cha -- ka -- ti -- ki
 
}

\new DrumStaff { \override Staff.StaffSymbol.line-positions = #'(0 ) \repeat unfold 7 { a16 } a32 a }
    \addlyrics { \cha \cha  ba   }


Ich hätte gerne vor dem "ba" einen Bindestrich. Aber das übliche " -- " funktioniert nicht.
Titel: Antw:Liedtext Bindestrich bei Variablen
Beitrag von: harm6 am Freitag, 22. September 2017, 10:50
Nicht so hastig ;)
Es funktioniert sehr wohl. Wenn Du ragged-right = ##f setzt, siehst Du das LyricHyphen. Wie es allgemeinen Gepflogenheiten entspricht wird, entfällt es jedoch sobald der zur Verfügung stehende Platz nicht mehr ausreicht.
Falls Du es aber auf jeden Fall haben willst, sorge für den dafür notwendigen Raum. Hier mit LyricHyphen.minimum-distance:


\version "2.19.65"
cha = \lyricmode {
  cha -- ka -- ti -- ki

}

\new DrumStaff {
\override Staff.StaffSymbol.line-positions = #'(0 )
\repeat unfold 7 { a16 } a32 a
}
    \addlyrics {
    \override LyricHyphen.minimum-distance = 1 %% defualt ist 0.1
    \cha \cha  -- ba   
    }


Gruß,
  Harm
Titel: Antw:Liedtext Bindestrich bei Variablen
Beitrag von: Malte am Freitag, 22. September 2017, 11:46
Zitat von: harm6 am Freitag, 22. September 2017, 10:50
Nicht so hastig ;)
Es funktioniert sehr wohl.
Selber nicht so hastig ;) Bist du grad mal wieder auf dem aktuellen master unterwegs statt auf 2.19.65? 2.19.65 sagt nämlich ,,syntax error, unexpected --".

Edit: Ja, daran liegts, ,,2.21.0" kommt damit klar.
Titel: Antw:Liedtext Bindestrich bei Variablen
Beitrag von: harm6 am Freitag, 22. September 2017, 11:53
Zitat
Selber nicht so hastig ;) Bist du grad mal wieder auf dem aktuellen master unterwegs statt auf 2.19.65? 2.19.65 sagt nämlich ,,syntax error, unexpected --".
Touché.
Es wird wirklich Zeit für 2.20.0 oder zumindest die nächste devel-release.

Gruß,
  Harm
Titel: Antw:Liedtext Bindestrich bei Variablen
Beitrag von: harm6 am Samstag, 23. September 2017, 00:28
Ok, das in 2.19.65 eben noch nicht erhältliche feature ist
5181 Integrate lone post-events into surrounding expressions.  (https://sourceforge.net/p/testlilyissues/issues/5181/).
Mir war vorher nicht bewußt, daß LyricHyphen ja ein post-event ist, wieder was gelernt ;)

Aber man kann scheme bemühen:


\version "2.19.65"

add-hyphen-to-last-lyric =
  \applyMusic
#(lambda (mus)
  (let* ((last-lyr-evt (last (extract-typed-music mus 'lyric-event)))
         (last-arts (ly:music-property last-lyr-evt 'articulations))
         (last-has-no-hyphen?
           (not
             (any
               (lambda (l) (music-is-of-type? l 'hyphen-event))
               last-arts))))
  (if last-has-no-hyphen?
      (ly:music-set-property!
        last-lyr-evt
        'articulations
        (cons (make-music 'HyphenEvent) last-arts)))
  mus))
  \etc

cha = \lyricmode {
  cha -- ka -- ti -- ki
}

\new DrumStaff {
  \override Staff.StaffSymbol.line-positions = #'(0)
  \repeat unfold 7 { a16 } a32 a
}
\addlyrics {
\override LyricHyphen.minimum-distance = 1 %% default ist 0.1
\cha
\add-hyphen-to-last-lyric
\cha 
ba   
}


Gruß,
  Harm
Titel: Antw:Liedtext Bindestrich bei Variablen
Beitrag von: Hilflos-im-Code am Sonntag, 24. September 2017, 09:36
Danke.

Ich erlaube mir wegen https://lilypondforum.de/index.php/topic,135.msg947.html, dies als klassisches Beispiel für unfunktionalen Code zu kennzeichnen. Wegen einem Bindestrich so einen Aufwasch.
Titel: Antw:Liedtext Bindestrich bei Variablen
Beitrag von: harm6 am Sonntag, 24. September 2017, 16:26
ZitatDanke.
Gern geschehen.

Zitat
Ich erlaube mir wegen https://lilypondforum.de/index.php/topic,135.msg947.html, dies als klassisches Beispiel für unfunktionalen Code zu kennzeichnen.
Du bist an eine der Grenzen des Programs gestoßen. Allerdings ist eine Erweiterung des Programs, die diese Grenze weiter hinausschiebt bereits upstream vorhanden. Du hast einen workaround.

Grenzen wird es immer geben. Aktive Weiterentwicklung findet statt. Aktiver user-support findet statt.
Was willst Du mehr? Eine perfekte Welt?

Tut mir leid Dich zu desillusionieren. Gibts nicht.

Was das Ganze allerdings mit dem von Dir verlinkten post zu tun hat? Ich habe nicht den leisesten Hauch eines Schimmers.

ZitatWegen einem Bindestrich so einen Aufwasch.
Diese Äußerung läßt darauf schließen, daß Dir sowohl das Problem als auch die Lösung in ihrer voll umfassenden Tragweite nicht bewußt ist.

Vielleicht kann das ja jemand anderer erklären. Ich hab' keine Lust dazu.


-Harm