Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: archduke am Sonntag, 12. Juli 2009, 14:36
-
Wenn ich versuche ein Vorzeichen wie folgt zu schreiben fehlt die Klammer:
\once \set suggestAccidentals = ##t fis?2
lasse ich hingegen die suggesgtAccidentals Funktion weg, wird die Klammer um das Vorzeichen erstellt.
Hat jemand einen Tipp wie das Problem zu beheben ist?
Herzliche Grüße
-
ich habe nciht herausgefunden, wo suggestAccidentals definiert wird…
als zwischenlösung könnte man vielleicht
^\markup { \fontsize #-3 { ( \raise #.5 \sharp) }versuchen?!
-
ich habe nicht herausgefunden, wo suggestAccidentals definiert wird…
define-context-properties.scm
grep ist manchmal nützlich.
Aber, da ich nicht fähig bin, die Accidental Regeln umzuschreiben, eine andere Möglichkeit wäre:
ficta = {
\once \override AccidentalSuggestion #'stencil = #ly:text-interface::print
\once \override AccidentalSuggestion #'text = \markup { ( \raise #0.5 \natural ) }
}
-
define-context-properties.scm
grep ist manchmal nützlich.
grep ist wohl ein suchprogramm in einem bestimmten betriebssystem!?
…aber dort steht tatsächlich:
(suggestAccidentals ,boolean? "If set, accidentals are typeset as
cautionary suggestions over the note.")
das ist aber doch zu wenig definition!
deine lösung funktioniert leider nicht mit V2.13.3 - leider habe ich keine zeit zu eruieren warum.
-
Ich denke, dieses Verhalten ist fest in C++ compiliert.
Ist mit "?" die warnende Variante bestellt,
wird der Frontend-Merker cautionary gesetzt,
damit der Accidental_engraver Bescheid weiss.
Für den Normalfall (Vorzeichen neben der Note)
bestellt dieser wiederum Accidental oder AccidentalCautionary,
dem Zustand von cautionary entsprechend.
Aber im suggestAccidentals-Fall (Vorzeichen über der Note)
bestellt er pauschal AccidentalSuggestion, ohne auf cautionary zu achten.
Im Backend, wo die Overrides (z.B. auf AccidentalSuggestion) agieren,
haben wir keinen Zugriff auf diesen Frontend-Merker, können also
keine Scheme-Funktion entsprechend (vollautomatisch) lenken.
Mein Fazit: es geht nur manuell; z.B. jeweils die Override
\once \override AccidentalSuggestion #'parenthesized = ##t
benutzen, wie in der Testdatei accidental-suggestions.ly (http://lilypond.org/doc/v2.12/input/regression/58/lily-5072af3b.ly) vorgemacht.
Gruss
-
oder, wie vorgeschlagen, die kurzform:
ficta = {
\set suggestAccidentals = ##t
\once \override AccidentalSuggestion #'parenthesized = ##t
}was zumindest ein wenig schreibarbeit spart…
-
Vielen Dank für die Lösungen, das hat mir sehr geholfen!!
Herzliche Grüße