Deutschsprachiges LilyPond-Forum

Allgemeine Fragen und Probleme => Fragen und Probleme aller Art => Thema gestartet von: rgree am Freitag, 2. Juni 2023, 12:21

Titel: Spanner-Entfernung manipulieren [gelöst]
Beitrag von: rgree am Freitag, 2. Juni 2023, 12:21
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
Titel: Antw:Spanner-Entfernung manipulieren
Beitrag von: harm6 am Samstag, 3. Juni 2023, 12:58
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
Titel: Antw:Spanner-Entfernung manipulieren [gelöst]
Beitrag von: rgree am Samstag, 3. Juni 2023, 17:44
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