• Willkommen im Forum „Archiviertes Lilypond Forum (2017)“.
 

Dies ist das Archiv des alten Forums (bis März 2017). Das aktuelle Forum ist unter lilypondforum.de zu finden.
This is the archive of the old forum (until March 2017). You can find the current forum at lilypondforum.de.

Hauptmenü

TextSpanner unter den Noten

Begonnen von trulli, Sonntag, 4. September 2016, 12:30

Vorheriges Thema - Nächstes Thema

trulli

Hallo Leute,

bei der folgenden Definition möchte ich den Befehl \textSpannerDown nicht vor die Noten in den Code schreiben, sondern direkt in der Definition haben.
Wie mache ich das?

Danke und
LG von Trulli

\version "2.18.0"

brxunten = #(define-music-function (parser location str) (string?)
       #{
         \tweak TextSpanner.bound-details.left.text \markup \vcenter \upright \concat \teeny { $str " " }
         \tweak TextSpanner.bound-details.right.text \markup \draw-line #'(0 . 0.5)
         \tweak TextSpanner.bound-details.right.padding -1.2
         \tweak TextSpanner.bound-details.left.padding -1.2
         \tweak TextSpanner.style #'solid
         \startTextSpan
       #})

\relative c'' {

  \stemUp
  \textSpannerDown
g4 -\brxunten "III"  b ^\marcato d c  \stopTextSpan
}

fugenkomponist

\textSpannerDown ist ne Abkürzung für nen \override, aber der passt ja an der Stelle nicht, stattdessen braucht man also einen \tweak. \single macht aus nem \override nen \tweak:
\version "2.18.0"

brxunten =
#(define-music-function (parser location str) (string?)
   #{
     \single \textSpannerDown
     \tweak TextSpanner.bound-details.left.text \markup \vcenter \upright \concat \teeny { $str " " }
     \tweak TextSpanner.bound-details.right.text \markup \draw-line #'(0 . 0.5)
     \tweak TextSpanner.bound-details.right.padding -1.2
     \tweak TextSpanner.bound-details.left.padding -1.2
     \tweak TextSpanner.style #'solid
     \startTextSpan
   #})

\relative c'' {

  \stemUp
  g4 -\brxunten "III"  b ^\marcato d c  \stopTextSpan
}

trulli

Danke für die schnelle Hilfe! Da wäre ich nie drauf gekommen... :o

fugenkomponist

Ok, es geht auch einfacher ;) \slurDown, \textSpannerDown, \tieDown etc. sind alles Abkürzungen für

\override ???.direction = #DOWN

Statt eines

\single \textSpannerDown

kann man also auch

\tweak TextSpanner.direction #DOWN

schreiben, da ist vielleicht offensichtlicher, was passiert. Und ich glaub, das ist was, wo man drauf kommen könnte, selbst wenn man \single nicht kennt ;)

trulli

Ja, genau. Das hatte ich eigentlich gesucht!

Besten Dank!