Spanner-Entfernung manipulieren [gelöst]

Begonnen von rgree, Freitag, 2. Juni 2023, 12:21

« vorheriges - nächstes »

rgree

Hallo,

im folgenden Beispiel hätte ich gern,
dass der TextSpanner näher an die Noten gerückt wird:

\version "2.20.0"
{
 \time 3/4
         \slurUp
         e'8\p( d'4) d'8^\< (
         \override TextSpanner.bound-details.left.text = \markup\italic "dimin. sempre  "
         % \override Staff.TextSpanner.outside-staff-priority = 1
         \textSpannerDown
         f'^\> \startTextSpan d')
         \tag #'(Einzelstimme) \noBreak
         d'^\>( c'4) \! c'8^\<( ees'\> c'\!)
         d'4( ^\< b cis'8\> b\!)
         c' ^\>( a4\!) a8 \stopTextSpan ^\<( bes\> a\!)
}

Bitte die Datei unten ignorieren ! Ich würde sie ja gern weglöschen ...

Wie geht es ?

Gruß,
Reinhard

harm6

Es scheint so zu sein, daß die vertikale Ausdehnung des gesamten TextSpanners vom anfänglichen Text bestimmt wird.
Zu beobachten, wenn man den TextSpanner wieder nach oben setzt und
#(ly:set-option 'debug-skylines #t)
auf toplevel einfügt.
Das macht es LilyPond unmöglich den TextSpanner näher an die Noten zu rücken, da sonst eine Kollision passierte -- wenn denn dort der Text wäre.
Ist er aber nicht...

Also reduziere die vertikale Ausdehnung des Textes: \with-dimensions (and friends).
Am optimalsten wäre natürlich die skylines so berechnen zu lassen, daß die vertikalen Ausdehungen den tatsächlichen Gegebenheiten entsprechen.
Geht mit:
\once \override TextSpanner.vertical-skylines = #grob::unpure-vertical-skylines-from-stencil

Allerdings ist das nicht der default und als alter Paranoiker fürchte ich es gibt einen Grund dafür...

Probiers aus.

HTH,
  Harm

rgree

Danke für die Antwort.
Sie übersteigt aber meine Lilypond-Kentnisse bei weitem.

Aber immerhin tut's für meine Zwecke folgender Work-Around:

\version "2.20.0"
{
 \time 3/4
         \slurUp
         e'8\p( d'4) d'8^\< (
         \override TextSpanner.style = #'line
         \override TextSpanner.bound-details.left.text = \markup\italic "dimin. sempre  "
         \textSpannerDown
         f'^\> \startTextSpan d')
         d'^\>( c'4) \! c'8^\<( ees'\> c'\!)
         d'4( ^\< b cis'8\> b\!)
         c' ^\>( a4\!) a8 \stopTextSpan ^\<( bes\> a\!)
         % ---------------------------------------
         % ↓↓ work-around ↓↓
         e'8\p( d'4) d'8^\< (
         \override TextSpanner.bound-details.left.text = \markup\italic " "
         \textSpannerDown
         f'^\> \startTextSpan _\markup\italic "dimin. sempre" d')
         d'^\>( c'4) \! c'8^\<( ees'\> c'\!)
         d'4( ^\< b cis'8\> b\!)
         c' ^\>( a4\!) a8 \stopTextSpan ^\<( bes\> a\!)
}


Gruß,
Reinhard