Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: friedemann_bach am Montag, 24. Juni 2013, 18:15

Titel: gestapelte Vortrags-Anweisungen auflösen (Dynamikzeichen, Fermaten ...)
Beitrag von: friedemann_bach am Montag, 24. Juni 2013, 18:15
Liebes Forum,

in größeren Partituren wirken sich gestapelte Vortrags-Anweisungen (Dynamik + Fermate o.ä.) manchmal kritisch auf die Gesamthöhe der Seite aus.

Wie könnte ich den folgenden Ausdruck

\version "2.14.1"
\score {
c''^\ff\fermata
}

so verändern, dass das Danymikzeichen nicht über, sondern links neben der Fermate steht?

Ich freue mich über jede Idee.
Titel: Re: gestapelte Vortrags-Anweisungen auflösen (Dynamikzeichen, Fermaten ...)
Beitrag von: fugenkomponist am Montag, 24. Juni 2013, 18:53
extra-offset hilft hier:\version "2.16.2"
{
  \once \override DynamicText #'extra-offset = #'(-3 . -2)
  c''^\ff\fermata
}
DynamicText, weil du das \ff verschieben wolltest. Aber genauso kann man auch Artikulationen inkl. Fermate (Script) verschieben.
Titel: Re: gestapelte Vortrags-Anweisungen auflösen (Dynamikzeichen, Fermaten ...)
Beitrag von: harm6 am Montag, 24. Juni 2013, 23:20
Zitat von: fugenkomponist
extra-offset hilft hier

Ich würde eher
\override DynamicText #'self-alignment-X = #2.4verwenden.
'extra-offset ist kollisionsanfällig.

Gruß,
  Harm

P.S.
@ friedemann_bach
Verwendest Du wirklich noch "2.14.1" ?
Wenn ja, warum?
Titel: Re: gestapelte Vortrags-Anweisungen auflösen (Dynamikzeichen, Fermaten ...)
Beitrag von: friedemann_bach am Dienstag, 25. Juni 2013, 01:34
Herzlichen Dank! Mit Eurer Hilfe war schnell eine kleine Variable gebastelt, die ich jetzt im konkreten Fall einsetzen kann. Mit dem Verfahren spart man einiges an Platz, wenn es mal drauf ankommt.

pushDynamicText = {
\once \override DynamicText #'self-alignment-X = #2.4
}

@Harm: Ja, ich habe wirklich noch die Version 2.14.1 verwendet, aus reiner Faulheit :P Seit heute isses aber die neueste stabile Version ;)
Titel: Re: gestapelte Vortrags-Anweisungen auflösen (Dynamikzeichen, Fermaten ...)
Beitrag von: harm6 am Dienstag, 25. Juni 2013, 01:55
Zitat
Mit Eurer Hilfe war schnell eine kleine Variable gebastelt

Ich würde eine music-function bevorzugen.

\version "2.16.0"

pushDynamicTxt =
#(define-music-function (parser location offset)(number?)
#{
\once \override DynamicText #'self-alignment-X = #offset
#})

{
  \pushDynamicTxt #2.4
  c''^\ff\fermata
}

Dein pushDynamicText ist ja auf einen fixen Wert eingestellt. Falls Du einen anderen Wert brauchst mußt Du dann eine neue machen.

Z.B. bei Verwendung der neuesten devel-Versionen kann das fortissimo erheblich näher an die Fermate gerückt werden, da ganz generell (fast) alle layout-Objekte nicht mehr "in Boxen eingerahmt" berechnet werden, sondern "skylines" benutzt werden.
"Skyline" ist eine ganz gute Metapher dafür was passiert, de facto werden, afaik, Integrale berechnet.

Im Anhang zwei Bilder mit Skylines für 2.16.2 sowie 2.17.20 erstellt unter Benutzung von
#(ly:set-option 'debug-skylines)


Gruß,
  Harm
Titel: Re: gestapelte Vortrags-Anweisungen auflösen (Dynamikzeichen, Fermaten ...)
Beitrag von: fugenkomponist am Dienstag, 25. Juni 2013, 13:10
Ich würde eher
\override DynamicText #'self-alignment-X = #2.4verwenden.
Kannte ich gar nicht, wieder was gelernt ;)