Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: ingmar am Samstag, 12. März 2016, 13:42

Titel: Unterdrücken von Fehlermeldungen (GELÖST)
Beitrag von: ingmar am Samstag, 12. März 2016, 13:42
Der Beitrag Wiederholung mit Auftakt (https://liarchiv.joonet.de/index.php?topic=105.0) war Auslöser für die folgende Frage.

Hier folgt ein kurzes Schnipsel, das einwandfrei kompiliert, am Schluss aber ein unbefriedigendes Schriftbild zeigt:
\version "2.18.2"
\score {  \new Staff { \relative c'' {
\repeat volta 2 { c4 d e f }
\alternative {
{ g e d2}
{ g2. }
}
\repeat volta 2 { f8 e d4 e f g }
\alternative {
{ f2 e4 }
{
% \partial 4*0
      c1\fermata \bar "|."
}
}
} } }
Offenbar kommt Lilypond durch den Auftakt aus dem Tritt. Durch Weglassen des Kommentarzeichens, also Entkommentieren von \partial 4*0, erhalten wir das gewünschte saubere Schriftbild. Soweit also alles gut!

Das Einfügen von \partial 4*0 führt zu einer Meldung des Compilers: "Warnung: versuche, \partial nach dem Beginn eines Stückes einzusetzen". - Den Umgang mit \partial sollten wir aber am besten drüben, im anderen Thread, diskutieren.

Denn ich habe hier eine andere Frage: Gibt es einen Weg, diese Warnung an dieser einen Stelle zu unterdrücken? Denn ich möchte vermeiden, dass entweder ich selbst in ein paar Jahren oder auch ein anderer, der meine Dateien verwendet, beginnt, dort nach einem Fehler zu suchen.

Gruß,
--ingmar
Titel: Re: Unterdrücken von Fehlermeldungen
Beitrag von: fugenkomponist am Samstag, 12. März 2016, 14:09
#(ly:expect-warning "versuche, \\partial")unterdrückt Warnungen, die mit „versuche, \partial“ anfangen. Die englische Version hierzu heißt
#(ly:expect-warning "trying to use \\partial")Es gibt aber wiederum eine Ausgabe, wenn eine Warnung erwartet wurde, aber nicht auftaucht.

Davon abgesehen funktioniert \partial seit Version 2.19 auch in der Mitte des Stücks ohne Probleme und Warnungen ;) Edit: Und alternative tut auch mit unfertigen Takten, genaueres siehe anderer Thread.
Titel: Re: Unterdrücken von Fehlermeldungen
Beitrag von: harm6 am Samstag, 12. März 2016, 14:12
Um Fehlermeldungen zu unterdrücken gibt es verschiedene Möglichkeiten. Die, die hier am ehesten in Frage kommt ist ly:expect-warning
Allerdings kompiliert das snippet in 2.19.36 einwandfrei und ohne Warnung deshalb hab' ich die Warnung versionsabhängig gemacht:

#(if (string-ci>? "2.19.0" (lilypond-version))
     (ly:expect-warning "trying to use \\partial"))

HTH,
  Harm
Titel: ja, zwei neunzehn, zwei neunzehn.
Beitrag von: ingmar am Samstag, 12. März 2016, 14:15
Ich hab es geahnt! Die Argumente für 2.19 werden immer mehr, keine Versteckmöglichkeiten mehr in Sicht.. : - |

--ingmar
Titel: Re: Unterdrücken von Fehlermeldungen
Beitrag von: fugenkomponist am Samstag, 12. März 2016, 14:22
Vielleicht wirds einfach mal Zeit für eine 2.20 … „Anfängern“ wird immer zu stabilen Versionen geraten, aber ich hab das Gefühl, dass sehr viele inzwischen die 2.19 nutzen ;)
Titel: re: Unterdrücken von Fehlermeldungen
Beitrag von: ingmar am Dienstag, 15. März 2016, 22:22
Ich hab auf diese Antworten hin die Gelegenheit ergriffen, zu 2.19 zu wechseln. Daher hab ich im Moment keinen Anlass, das hier angefragte Unterdrücken von Fehlermeldungen zu testen. Dennoch danke für Eure Antworten!

Die Frage, die sich natürlich stellt, ist, warum dieses expect-warning nun eigentlich selber wieder zu einer Warnung führen muss. In vielen Fällen - wie meinem hier - ist es sicher sinnvoll, in der ausbleibenden Warnung eine Anomalie zu sehen und diese zu melden. Aber es wird wohl genausoviele Fälle geben, wo der Fehler abhängig von Parametern auftritt und man es einfach zu umständlich und unübersichtlich findet, diese Fälle einzeln zu behandeln.

Nunja, seis drum.


Gruß,
--ingmar