Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: mgd am Donnerstag, 21. Mai 2015, 08:30
-
Hallo Forum,
ich möchte ein Vorzeichen in eckige Klammern setzen, weil es je nach Situation optional oder obligatorisch ist.
Mein erster Versuch war das Snippet unter http://lsr.di.unimi.it/LSR/Item?id=564 (http://lsr.di.unimi.it/LSR/Item?id=564) zu verwenden wie hier zu sehen:
\version "2.18.2"
%% stolen from http://lsr.di.unimi.it/LSR/Item?id=564
#(define-public (bracket-stencils grob)
(let ((lp (grob-interpret-markup grob (markup #:fontsize 3.5 #:translate (cons -0.3 -0.5) "[")))
(rp (grob-interpret-markup grob (markup #:fontsize 3.5 #:translate (cons -0.3 -0.5) "]"))))
(list lp rp)))
\relative c'' {
\once \override ParenthesesItem.stencils = #bracket-stencils cis?4
}
Das bewirkt nur nichts. Gibt es eine Möglichkeit die runden Klammern durch eckige zu ersetzen, oder werden die Klammern direkt im c/c++ Code erzeugt ?
Und falls letzteres zutrifft, gibt es einen Workoround bzw. irgendeine Trickserei ?
Hinweise nimmt gern entgegen
Michael
-
Versuch mal:
\version "2.19.20"
music = \relative c' {
%% Works for AccidentalCautionary, only
\override Score.AccidentalCautionary.parenthesized = ##f
\override Score.AccidentalCautionary.stencil =
#(lambda (grob)
(bracketify-stencil
(ly:accidental-interface::print grob) Y 0.1 0.3 0.1))
g?4
<fis? d'?>4
<g! d'?>
\parenthesize r
\parenthesize r
<fis \parenthesize d'>4
<g \parenthesize d'>
\parenthesize r
\parenthesize r
}
\new Staff
<<
\new Voice \transpose c c' { \voiceOne \music }
\new Voice { \voiceTwo \music }
>>
HTH,
Harm
-
Ich liebe dieses Forum :)
Mal wieder vielen Dank,
Michael