4.4.2 Explizite Positionierung von Systemen

Man kann die flexiblen Einstellungen der vertikalen Abstände, wie sie im vorigen Abschnitt erklärt wurden, als eine Sammlung verschiedenerer Einstellmöglichkeiten verstehen, die vor allem die Größe des vertikalen Platzes zwischen Notensystemen und Gruppen auf der Seite kontrollieren.

Die vertikale Platzverteilung kann aber auch auf andere Weise eingestellt werden: mit den Optionen von NonMusicalPaperColumn #'line-break-system-details. Während der flexible vertikale Abstandsmechanismus vertikalen Füllplatz definiert, werden mit NonMusicalPaperColumn #'line-break-system-details absolute vertikale Positionen auf der Seite festgelegt.

NonMusicalPaperColumn #'line-break-system-details akzeptiert eine Liste aus drei unterschiedlichen Einstellungen:

Veränderungen von Grobs (wozu auch NonMusicalPaperColumn gehört), können an drei unterschiedlichen Stellen in der Quelldatei vorgenommen werde:

Wenn der Grob NonMusicalPaperColumn verändert werden soll, wird der \override-Befehl in der \context oder \with-Umgebung eingesetzt. Wenn die Veränderungen aber mitten im Notentext stattfinden sollen, müssen Sie den Befehl \overrideProperty einsetzen. Einige Beispiele für eine Veränderungen von NonMusicalPaperColumn mit dem \overrideProperty-Befehl sind hier aufgelistet:

\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20))

\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))

\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
                                 (Y-offset . 40))

\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((alignment-distances . (15)))

\overrideProperty NonMusicalPaperColumn.line-break-system-details #'((X-offset . 20)
                                 (Y-offset . 40)
                                 (alignment-distances . (15)))

Um zu verstehen, wie jede dieser unterschiedlichen Einstellungen funktioniert, wollen wir uns ein Beispiel vornehmen, dass überhaupt keine Einstellungen (d.h. \override-Befehle) enthält:

\header { tagline = ##f }
\paper { left-margin = 0\mm }
\book {
  \score {
    <<
      \new Staff <<
        \new Voice {
          s1*5 \break
          s1*5 \break
          s1*5 \break
        }
        \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
      >>
      \new Staff {
        \repeat unfold 15 { d'4 d' d' d' }
      }
    >>
  }
}

[image of music]

Diese Partitur nimmt Zeilen- und Seitenumbruchinformationen in einer eigenen Stimme vor. Mit dieser Methode kann die Layout-Information einfach von den Noten getrennt werden, was sehr hilfreich ist, wenn das Beispiel komplizierter wird. Siehe auch Eine zusätzliche Stimme für Umbrüche benutzen.

Ausdrückliche \break-Befehle teilen die Noten in sechs Takte lange Zeilen. Die vertikale Platzverteilung wird von LilyPond errechnet. Um den vertikalen Beginn einer jeden Systemgruppe genau anzugeben, kann Y-offset in der line-break-system-details-Eigenschaft des NonMusicalPaperColumn-Grobs wie in dem Beispiel ersichtlich benutzt werden:

\header { tagline = ##f }
\paper { left-margin = 0\mm }
\book {
  \score {
    <<
      \new Staff <<
        \new Voice {
          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0))
          s1*5 \break
          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 40))
          s1*5 \break
          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 80))
          s1*5 \break
        }
        \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
      >>
      \new Staff {
        \repeat unfold 15 { d'4 d' d' d' }
      }
    >>
  }
}

[image of music]

In der line-break-system-details-Eigenschaft kann eine Liste mit vielen Einstellungen eingegeben werden, aber hier wird nur eine Einstellung angegeben. Die Y-offset-Eigenschaft bestimmt hier die exakte vertikale Position auf der Seite, an welcher jede neue Systemgruppe begonnen wird.

Da jetzt der exakte Beginn einer jeden Systemgruppe explizit festgelegt wurde, können wir auch den exakten Beginn eines jeden Notensystems in der Gruppe festlegen. Dies geschieht mit der alignment-distances-Eigenschaft von line-break-system-details.

\header { tagline = ##f }
\paper { left-margin = 0\mm }
\book {
  \score {
    <<
      \new Staff <<
        \new Voice {
          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 20)
                                           (alignment-distances . (15)))
          s1*5 \break
          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
                                           (alignment-distances . (15)))
          s1*5 \break
          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
                                           (alignment-distances . (15)))
          s1*5 \break
        }
        \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
      >>
      \new Staff {
        \repeat unfold 15 { d'4 d' d' d' }
      }
    >>
  }
}

[image of music]

Dem line-break-system-details-Attribut des NonMusicalPaperColumn-Grobs werden zwei unterschiedliche Eigenschaften zugewiesen. Auch wenn die Aliste der Attribute von line-break-system-details sehr viel mehr Platzierungsparameter akzeptiert (wie etwa ein korrespondierendes X-offset-Paar), müssen hier nur die Parameter Y-offset und alignment-distances gesetzt werden, um den vertikalen Beginn jedes Systems und jeder Systemgruppe zu kontrollieren. Y-offset bestimmt also die vertikale Position von Systemgruppen und alignment-distances die vertikale Position von einzelnen Notensystemen.

\header { tagline = ##f }
\paper { left-margin = 0\mm }
\book {
  \score {
    <<
      \new Staff <<
        \new Voice {
          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0)
                                           (alignment-distances . (30 10)))
          s1*5 \break
          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 60)
                                           (alignment-distances . (10 10)))
          s1*5 \break
          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 100)
                                           (alignment-distances . (10 30)))
          s1*5 \break
        }
        \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
      >>
      \new StaffGroup <<
        \new Staff { \repeat unfold 15 { d'4 d' d' d' } }
        \new Staff { \repeat unfold 15 { e'4 e' e' e' } }
      >>
    >>
  }
}

[image of music]

Einige Dinge sollten beachtet werden:

Siehe auch

Schnipsel: Spacing.


LilyPond Benutzerhandbuch v2.25.21 (Entwicklungszweig).