Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: Manuela am Sonntag, 30. Oktober 2016, 12:19

Titel: \set stanza = #"1-3:" erzeugt Warnungen
Beitrag von: Manuela am Sonntag, 30. Oktober 2016, 12:19
Es scheint so, dass Stanzas nicht allzu lang sein sollten. Der folgende Code erzeugt Warnungen:

\version "2.19.42"
\language "deutsch"

#(define myTitel "Das Heideröslein")
#(set-global-staff-size 18)

\paper {
  annotate-spacing = ##f
  top-margin = 15\mm
  ragged-right = ##f
  ragged-bottom = ##t
  ragged-last-bottom = ##t
  indent = #0
  line-width = 150\mm
}

firstvoice=
\relative c'' {
  \time 6/8
  \key c \major
  \autoBeamOff
  e,4 e8 g8. ( f16 ) e8
  d4 d8 d4. e4 e8 f ( g )
  a a4. g4 r8 g4 f8 e4
  e8 e4 d8 c4. c4 c8 c ( d )
  e f4 e8 d4 r8
  e4 e8 g8. ( f16 ) e8 e4. d4 r8
  e4 g8 a4 a8 g ( a ) h c4. c4
  a8 g4 e8 d8. ( e16 ) d8 c4 r8
  \bar "|."
}

firstverse =
\lyricmode {
  \set stanza = #"1."
  Sah ein Knab ein Rös -- lein stehn,
  Rös -- lein auf der Hei -- den,
  war so jung und mor -- gen -- schön,
  lief er schnell, es nah zu sehn,
  sah's mit vie -- len Freu -- den.
  \set stanza = #"1-3:"
  Rös -- lein, Rös -- lein, Rös -- lein rot,
  Rös -- lein auf der Hei -- den.
}

\score
{
  <<
    \new Staff="leadsheet"
    \context Voice="melody" \firstvoice
    \new Lyrics \lyricsto "melody" \firstverse
  >>

}

kompiliert zwar, ergibt jedoch Warnungen:

Starte lilypond-windows.exe 2.19.42 [roslein.ly]...
Processing `G:/Lilypond/_Liederheft/Forum/roslein.ly'
Parsing...
Interpreting music...[8]
Preprocessing graphical objects...
programming error: mis-predicted force, 94.842520 ~= 95.097621
continuing, cross fingers
programming error: mis-predicted force, 94.842520 ~= 94.176204
continuing, cross fingers
programming error: mis-predicted force, 94.842520 ~= 90.660198
continuing, cross fingers
programming error: mis-predicted force, 94.842520 ~= 85.880346
continuing, cross fingers
programming error: mis-predicted force, 94.842520 ~= 85.880346
continuing, cross fingers
Finding the ideal number of pages...
Fitting music on 1 page...
Drawing systems...
programming error: mis-predicted force, 94.842520 ~= 85.880346
continuing, cross fingers

Das wäre noch immer kein Problem, wenn ich meinem Beispiel nicht zusätzlich der Zeilenumbruch geändert würde. Im obigen kompilierbaren Beispiel kann ich das leider nicht nachstellen, ich weiß nicht, welche Einstellungen ich noch zusätzlich ändern müsste. Dafür zwei Screenshots, einmal ohne, einmal mit \set stanza = #"1-3:"
Titel: Re: \set stanza = #"1-3:" erzeugt Warnungen
Beitrag von: harm6 am Sonntag, 30. Oktober 2016, 12:47
Ich kann das Problem nicht nachstellen.
mis-predicted force -Probleme sind in letzter Zeit gelegentlich aufgetaucht, meistens auf windows.
Ich weiß allerdings nicht was es bedeutet und inwieweit neuere devel-Versionen da besser sind.
Versuch trotzdem mal die aktuelle devel-Version, d.h. 2.19.49
Aber es gibt keine Längenbegrenzung für `stanza', von ästhetischen Erwägungen mal abgesehen ;)

Zum ZeilenUmbruch: Versuch doch mal \noBreak reinzusetzen.

Gruß,
  Harm
Titel: Re: \set stanza = #"1-3:" erzeugt Warnungen
Beitrag von: Manuela am Sonntag, 30. Oktober 2016, 18:17
Ich kann das Problem nicht nachstellen.

Das wundert mich nicht, weil ich in den Contexten jede Menge Veränderungen durchführe, die ich hier nicht gepostet habe. Ich hatte nicht die Zeit zu testen, bei welcher Konstellation der Effekt auftritt. Vll. mache ich das noch.

Update: es wird skurriler  ;)

Füge ich ein \break vor \stanza ein, wird plötzlich die Zeile länger (obwohl genug Platz wäre). Überhaupt scheint es so, dass \stanza bewirkt, dass ragged-last = ##f ignoriert wird.
Titel: Workaround gefunden
Beitrag von: Manuela am Sonntag, 30. Oktober 2016, 18:48
  \once \override LyricText.X-offset = #-5
  \markup { \bold "1-3:" "Rös" } --

erzeugt die von mir gewünschte Ausgabe.
Titel: Re: \set stanza = #"1-3:" erzeugt Warnungen
Beitrag von: harm6 am Sonntag, 30. Oktober 2016, 21:07
Zitat
Füge ich ein \break vor \stanza ein, wird plötzlich die Zeile länger (obwohl genug Platz wäre). Überhaupt scheint es so, dass \stanza bewirkt, dass ragged-last = ##f ignoriert wird.

Definitiv nicht.

Was Du siehst ist ein übler bug.
Wie schon gesagt, kommt nur auf windows vor, so weit ich mich erinnere, und ist auch schon bekannt.


Gruß,
  Harm