Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: wome am Mittwoch, 3. Oktober 2012, 17:59
-
Ich hatte in einem alten Skript zur Harmonielehre eine Lösung gefunden, um im Markup einer Note das Funktionszeichen für einen verkürzten D7 (D mit diagonaler Linie) zu erstellen.
\markup{D \hspace #-5.2/ \super "7" }
Habe mit das Skript wieder vorgenommen: nun scheinen die Minuswerte bei \hspace nicht mehr zu funktionieren? Hat jemand eine Idee?
Viele Grüße
Wolfgang
-
Hallo Wolfgang,
auf der engl. Seite wurde das kürzlich auch schon diskutiert:
http://lilypond.1069038.n5.nabble.com/slashed-charackters-script-not-working-td133604.html (http://lilypond.1069038.n5.nabble.com/slashed-charackters-script-not-working-td133604.html)
Siehe insbesondere Arnold's Antwort.
Der link zur online-Docu:
http://lilypond.org/doc/v2.17/Documentation/music-glossary-big-page#functional-harmony (http://lilypond.org/doc/v2.17/Documentation/music-glossary-big-page#functional-harmony)
Der Code:
#(define-markup-command (diagonal-stroke layout props arg)
(markup?)
#:category font
#:properties ((font-size 0) (thickness 1.5) (extension 0.07))
(let*
((thick (* (magstep font-size)
(ly:output-def-lookup layout 'line-thickness)))
(underline-thick (* thickness thick))
(markup (interpret-markup layout props arg))
(x1 (car (ly:stencil-extent markup X)))
(x2 (cdr (ly:stencil-extent markup X)))
(y1 (car (ly:stencil-extent markup Y)))
(y2 (cdr (ly:stencil-extent markup Y)))
(dx (* extension (- x2 x1)))
(dy (* extension (- y2 y1)))
(line (make-line-stencil underline-thick
(- x1 dx) (- y1 dy)
(+ x2 dx) (+ y2 dy))))
(ly:stencil-add markup line)))
\relative c''
<<
{
<g e c>1 <a f d> <b g e>
<c a f> <d b g> <e c a> <f d b>
}
\lyrics {
T Sp Dp S D Tp
\markup { \concat { \diagonal-stroke D \super "7" } }
}
>>
Funktioniert übrigens schon mit "2.14.2"
Png in Anhang.
HTH,
Harm
-
Vielen Dank für die schnelle Antwort. Funktioniert.
Übrigens: im Markup nimmt jetzt die Anweisung \halign diese "Verschiebfunktion"
-
Übrigens: im Markup nimmt jetzt die Anweisung \halign diese "Verschiebfunktion"
Mag schon sein, will heißen, ich hab's nicht geprüft.
Aber \diagonal-stroke ist sehr viel breiter in der Anwendung.
z.B. mit:
\markup { \diagonal-stroke "abcdefg" }oder
\markup {
\diagonal-stroke
\score {
\relative c' {
\repeat unfold 4 c1
\break
\repeat unfold 4 c1
}
\layout {
indent = 30
short-indent = 30
line-width = 60
}
}
}
kann man die angehängten pngs problemlos erzeugen.
Gruß,
Harm
-
Ja :)