Autor Thema: \markup verschieben  (Gelesen 3032 mal)

iugin

  • Member
\markup verschieben
« am: Sonntag, 8. September 2013, 10:38 »
Hallo miteinander,

kann mir jemand bitte erklären, wie ich den 3. \markup nach unten bringe, damit er den gleichen Abstand vom System hat, wie die andere zwei?
Ich schaffe es irgendwie nicht :)

Hier mein Code:
\version "2.16.0"

\language "deutsch"

#(set-global-staff-size 15)

Rap = \relative c' { 
    R1^\markup {
      \column {
        "Hier kommt eine erste Zeile"
        "und hier die zweite"
      }
    }
    R1^\markup {
      \column {
        "Hier kommt eine erste Zeile"
        "und hier die zweite"
      }
    }
    R1^\markup {
     \hspace #20
      \column { 
        "Das möchte ich näher am System"
        "so wie die andere zwei"
      }     
    }
R1
}

\score { 
    \new Staff {
      \override Staff.StaffSymbol #'line-count = #1
      \clef "percussion"
      \Rap
    }   
\layout {
  indent = 0
  ragged-right = ##f
}
}

und im Anhang das Resultat.

Danke vielmals und schönen Tag!

Liebe Grüsse

Eugenio

eluze

  • Member
Re: \markup verschieben
« Antwort #1 am: Sonntag, 8. September 2013, 11:10 »
hallo iugin

eine neuere version schafft das (schon 2.16.1)!

Eluze

iugin

  • Member
Re: \markup verschieben
« Antwort #2 am: Sonntag, 8. September 2013, 11:26 »
Hallo Eluze,

ich habe eigendlich 2.16.2, der File war aber alt.
Es geht trotzdem nicht (habe nur die \version im File geändert, sonst nichts) :(

Ciao

Eugenio

eluze

  • Member
Re: \markup verschieben
« Antwort #3 am: Sonntag, 8. September 2013, 11:57 »
die vertikale verschiebung kommt daher, dass der text den taktstrich überlappt

jetzt kommt die frage, warum du \hspace #20 verwendest - ist das ein ausweichversuch oder muss der text zwingend so notiert werden?

du könntest \textLengthOn verwenden oder \center-column oder das \hspace nur bei der untersten zeile oder …

Eluze

iugin

  • Member
Re: \markup verschieben
« Antwort #4 am: Sonntag, 8. September 2013, 21:13 »
Hallo Eluze,

ich habe probiert, es geht einfach nicht :(
Ich poste mal den Code mit den richtigen Text:
\version "2.16.2"

\language "deutsch"

#(set-global-staff-size 15)

Rap = \relative c' { 
    R1^\markup {
      \column {
        "Wer meinen Zauber nicht mag,"
        "der mag mich nicht..."
      }
    }
    R1^\markup {
      \column {
        "Wer meinen Zauber nicht liebt,"
        "der liebt mich nicht..."
      }
    }
    R1^\markup {
      \column {       
        "Die Menschen haben keine Ahnung mehr"
        "von diesen Dingen"
        "Deshalb müssen wir ihnen Magie und"
        "Liebe zurückbringen!"
      }     
    }
R1
}

\score { 
    \new Staff {
      \override Staff.StaffSymbol #'line-count = #1
      \clef "percussion"
      \Rap
    }   
\layout {
  indent = 0
  ragged-right = ##f
}
}

Das Resultat siehst du im Anhang (pdf-File).
Und das was im möchte (ebenfalls als Anhang) ist in jpeg-File (mit GIMP bearbeitet).
Die 4 Zeilen müssen nach dem Taktstrich kommen, linksbündig, so tief wie die andere, und über die zwei Takte sein (deswegen kommt \textLengthOn nicht in Frage).
Auch der Versuch mit \once \override TextScript #'outside-staff-priority = ##f hat nichts gebracht.

\hspace #20 war einfach da, damit der Text nach dem Taktstrich kommt.

Liebe Grüsse

Eugenio

harm6

  • Member
Re: \markup verschieben
« Antwort #5 am: Sonntag, 8. September 2013, 22:42 »
Hallo Eugenio,

folgendes scheint zu funktionieren, auch wenn es etwas Gefummel ist. ;)

\version "2.16.2"

\language "deutsch"

myTextLengthOn = {
  \override TextScript #'extra-spacing-width = #'(-0.0 . -10)
  \override TextScript #'extra-spacing-height = #'(-inf.0 . +inf.0)
}

#(set-global-staff-size 15)

Rap = \relative c' { 

    \myTextLengthOn
    <>^\markup {
      \column {
        "Wer meinen Zauber nicht mag,"
        "der mag mich nicht..."
      }
    }
    R1
    <>^\markup {
      \column {
        "Wer meinen Zauber nicht liebt,"
        "der liebt mich nicht..."
      }
    }
    R1
    \textLengthOff
    <>
     ^"Liebe zurückbringen!"
     -\tweak #'padding #3.5
     ^\markup {
      \column {       
        "Die Menschen haben keine Ahnung mehr"
        "von diesen Dingen"
        "Deshalb müssen wir ihnen Magie und"
      }     
    }
    R1
    R1
}

\score { 
    \new Staff {
      \override Staff.StaffSymbol #'line-count = #1
      \clef "percussion"
      \Rap
    }   
    \layout {
      indent = 0
      ragged-right = ##f
    }
}

HTH,
  Harm

eluze

  • Member
Re: \markup verschieben
« Antwort #6 am: Sonntag, 8. September 2013, 22:51 »
hallo Harm

super war gerade dabei meine lösung zu uploaden als deine antwort kam  ::)

ich habe eine ähnliche lösung, die ich doch noch poste, weil sie ein paar weniger tweaks braucht:

\version "2.16.2"
\language "deutsch"
#(set-global-staff-size 15)
\layout {
  \context {
    % \Voice \override TextScript #'font-size = #1
  }
  indent = 0
  ragged-right = ##f
}
Rap = \relative c' {
  \textLengthOn
  <>^\markup \column {
    "Wer meinen Zauber nicht mag,"
    "der mag mich nicht..."
  }
  R1
  <>^\markup \column {
    "Wer meinen Zauber nicht liebt,"
    "der liebt mich nicht..."
  }
  R1
  <>^\markup \column {
    "Die Menschen haben keine Ahnung mehr"
    "von diesen Dingen"
    "Deshalb müssen wir ihnen Magie und"
    "Liebe zurückbringen!"
  }
  R1
  <>^\markup \with-color #magenta "that's it!"
  R1
}
\score {
  \new Staff {
    \override Staff.StaffSymbol #'line-count = #1
    \clef "percussion"
    \Rap
  }
}

gruss
Eluze

RobUr

  • Member
Re: \markup verschieben
« Antwort #7 am: Montag, 9. September 2013, 16:16 »
Hallo alle,

in diesem Fall ist das Objekt MultiMeasureRestText! Man bekommt es also mit folgendem Code bewegt:
\once \override MultiMeasureRestText #'extra-offset = #'(x-Wert . y-Wert)
R1^\markup { "Mein Text" }

Gruß, Robert

iugin

  • Member
Re: \markup verschieben
« Antwort #8 am: Montag, 9. September 2013, 18:22 »
Hallo miteinander!

Also, vor allem ganz herzlichen Dank für eure Mühe! :)
Die Lösung von Harm funktionert super.
Die von Eluze auch, aber der Takt wird so gestreckt, dass der Text Platz hat. Der letzter Takt ist dafür kleiner, und ich brauche den Text auf die zwei Takte (wie im Bild vom gestrigen Post).

Ich bin aber ehrlich: wieso es funktioniert, habe ich (noch) nicht verstanden. Ich werde die Beispiele gut studieren.

Die Antwort von RobUr muss ich noch genau anschauen.

Liebe Grüsse

Eugenio

eluze

  • Member
Re: \markup verschieben
« Antwort #9 am: Dienstag, 10. September 2013, 03:09 »
hallo iugin

es ist klar:  LilyPond versucht das ganze in eine freigegebene zone einzupassen und ist dabei auch manchmal knausrig, respektive kennt sie nicht alle regeln der ästhetik…

du kannst, um den text des 3. taktes über den 4. takt laufen zu lassen, natürlich
Zitat
\textlengthOff
  einschieben (dabei habe ich aber festgestellt dass die takte unterschiedliche längen haben - v.a. der erste ist zu lang.)

man könnte nun hier noch ein
Zitat
\override #'(line-width . 26)
oder so hinzufügen.

für speziellen wünsche braucht es eben speziellen aufwand  :(

Eluze

iugin

  • Member
Re: \markup verschieben
« Antwort #10 am: Dienstag, 10. September 2013, 11:20 »
Hallo Eluze,

mit \TextLenghtOff funktioniert prima, danke!
Zitat
für speziellen wünsche braucht es eben speziellen aufwand  :(
Ja, es stimmt, und ich danke euch, dass ihr den Aufwand nicht gescheut habt :)

Liebe Grüsse an alle

Eugenio