Relative Angaben

Begonnen von Hilflos-im-Code, Freitag, 23. März 2018, 11:42

« vorheriges - nächstes »

Hilflos-im-Code

Ich habe es mich heute Vormittag bei verschiedenen Gelegenheiten gefragt, kann man bei Liypond relative Angaben machen.

Nehmen wir dieses Beispiel
\version "2.19.81"

{ \override Beam.positions =  #' (5 . 7 ) fis'8 [ a'] \override Beam.positions =  #' (5 . 3 )  fis'8 [ d] }


Letztendliche will ich, dass sich der eigentliche Balken um einen bestimmten Wert verschiebt. Die Folge, ich muss durch Trial und Error die Zahl für die eigentliche Verschiebung herausfinden und dann mir die Werte für die Restverschiebung ausrechnen oder probieren.

Diese Art der versuchsweisen Herumschiebens begegnet  mir sehr oft, weil ich immer die absoluten Werte eingab. Bloß kann man nicht auch irgendwie die Werte relativ zum momentanen Bezugspunkt eingeben.

Malte

Was du suchst, ist vermutlich die Funktion \offset. Die Reihenfolge der Argumente erscheint mir nicht besonders logisch, aber ist halt so ...
\offset positions #'(2 . -2) Beam

Hilflos-im-Code

Danke.

Allgemeiner formuliert, kann ich aus

\override  term1.term2....term_letzter  $Verschiebungwert

machen

\offset term_letzter $Verschiebungwert term1.term2.... ?

Malte

Ich glaub, ich hab gerade erst verstanden, was \offset so macht. Es gibt zwei Versionen:\offset positions #'(2 . 3) Beamentspricht einem\override Beam.positions #wertund kann wie ein \override (z. B. mit \once) verwendet werden.

\offset Beam.positions #'(2 . 3) [Musik]
dagegen entspricht
\tweak Beam.positions #wert [Musik]
und wirkt sich dadurch nur auf den unmittelbar folgenden Balken aus. Wird der von Hand gesetzt, muß es also direkt davor stehen:
fis8-\offset Beam.positions #'(2 . 3) [ d]

Malte

Zitat von: Hilflos-im-Code am Freitag, 23. März 2018, 12:51
Allgemeiner formuliert, kann ich aus

\override  term1.term2....term_letzter  $Verschiebungwert

machen

\offset term_letzter $Verschiebungwert term1.term2.... ?
Nicht ganz. Das hängt davon ab, wie diese Terme heißen. In einer Situation wie
{
  \override Staff.TextSpanner.bound-details.left.Y = 2
  <<
    {
      e'1\startTextSpan 1\stopTextSpan
    } \\ {
      c'1_\startTextSpan 1\stopTextSpan
    }
  >>
}
besteht der Text zwischen \override und Gleichheitszeichen im Prinzip aus drei Teilen: Erst einmal ist da der Kontext Staff, dann das Grob TextSpanner und dann die Grob-Eigenschaft bound-details.left.Y.

Vor dem, was du ,,Verschiebungswert" nennst, muß die komplette Grob-Eigenschaft stehen, in diesem Fall das mehrteilige ,,bound-details.left.Y".

Für einzelne Verschiebungen würde ich glaube ich die \tweak-Variante in meinem letzten Post verwenden, die ist einfacher zu lesen und man braucht kein \once davorzuschreiben. Aber solltest du mehrere Balken alle um denselben Wert verschieben wollen, ist wohl die \override-Variante darüber zu verwenden.