[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

4.3 Umbrüche

@translationof Breaks


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

4.3.1 Zeilenumbrüche

@translationof Line breaking

Zeilenumbrüche werden normalerweise automatisch erstellt. Sie werden so ausgewählt, dass die Zeilen weder gedrängt noch zu weit gespreizt wirken und aufeinander folgende Seiten einen ähnlichen Grauwert haben.

Einen manuellen Zeilenumbruch fügt man mit dem Befehl \break ein:

 
\relative c'' {
  c4 c c c | \break
  c4 c c c |
}

[image of music]

Normalerweise wird ein \break in der Mitte eines Takes ignoriert und eine Warnung ausgegeben. Um einen Zeilenumbruch in der Mitte eines Taktes zu erzwingen, können Sie mit \bar "" eine unsichtbare Taktlinie hinzufügen, die dann den Zeilenumbruch erlaubt.

 
\relative c'' {
  c4 c c
  \bar "" \break
  c |
  c4 c c c |
}

[image of music]

Ein \break an einem Taktstrich wird auch ignoriert, wenn der letzte Takt mitten in einer Note endet, wenn etwa eine N-tole in unterschiedlichen Takten beginnt und endet. Damit \break auch in derartigen Situationen funktioniert, muss Forbid_line_break_engraver aus der Voice-Umgebung entfernt werden. Dabei sollte beachtet werden, dass manuell hervorgerufene Umbrüche parallel mit den Noten hinzugefügt werden müssen.

 
\new Voice \with {
  \remove "Forbid_line_break_engraver"
} \relative {
  <<
    { c''2. \tuplet 3/2 { c4 c c } c2. | }
    { s1 | \break s1 | }
  >>
}

[image of music]

Genauso werden normalerweise Zeilenumbrüche auch verhindert, wenn Balken über die Taktenden hinausragen. Dieses Verhalten kann verändert werden, indem man \override Beam.breakable = ##t einstellt:

 
\relative c'' {
  \override Beam.breakable = ##t
  c2. c8[ c | \break
  c8 c] c2. |
}

[image of music]

Mit dem Befehl \noBreak wird ein Zeilenumbruch an dem entsprechenden Taktstrich verboten.

Die grundlegenden Einstellungen, die Einfluss auf die Zeilenlänge haben, sind indent (Einzug) und line-width (Zeilenbreite). Sie werden in der \layout-Umgebung eingestellt. Der erste Befehl bestimmt den Einzug der ersten Zeile, der zweite die Zeilenlänge der weiteren Notenzeilen.

Wenn ragged-right eingestellt ist (also in der \layout-Umgebung auf den Wert #t gesetzt wurde), werden die Systeme linksbündig gesetzt und nicht bis zum rechten Rand hin durchgezogen, sondern den Noten entsprechend gesetzt. Das ist oftmals nützlich für kleine Notenfragmente und um zu überprüfen, wie eng die Noten natürlicherweise gesetzt werden würden.

Die Option ragged-last verhält sich ähnlich zu ragged-right, aber wirkt sich nur auf die letzte Zeile eines Stückes aus.

 
\layout {
indent = #0
line-width = #150\mm
ragged-last = ##t
}

Um Zeilenumbrüche zu erzwingen, die in festgelegten Intervallen stattfinden, kann der Befehl \break in Kombination mit unsichtbaren Noten und einer Wiederholung (\repeat) eingesetzt werden. Das folgende Beispiel etwa setzt die nächsten 28 Takte (im 4/4-Takt) in Zeilen zu jeweils 4 Takten (die auch nur hier umgebrochen werden):

 
<<
  \repeat unfold 7 {
    s1 \noBreak s1 \noBreak
    s1 \noBreak s1 \break
  }
  { Hier die Noten… }
>>

Eine Zeilenumbruchkonfiguration kann auch als eine ‘.ly’-Datei automatisch gespeichert werden. Damit kann die vertikale Ausrichtung während eines zweiten Programmdurchlaufs angepasst werden um die Seiten besser zu füllen. Diese Eigenschaft ist recht neu und kompliziert. Mehr Einzelheiten finden sich in (snippets)Spacing in Abschnitt ‘Spacing’ in Schnipsel.

Vordefinierte Befehle

\break, \noBreak.

Siehe auch

Notationsreferenz: \paper-Variablen für den Zeilenumbruch.

Schnipsel: (snippets)Spacing in Abschnitt ‘Spacing’ in Schnipsel.

Referenz der Interna: (internals)LineBreakEvent in Abschnitt ‘LineBreakEvent’ in Referenz der Interna.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

4.3.2 Seitenumbrüche

@translationof Page breaking

Die Standardseitenumbrüche können verändert werden, indem man die Befehle \pageBreak bzw. \noPageBreak benutzt. Sie verhalten sich analog zu den Befehlen \break und \noBreak. Sie sollten an einem Taktstrich notiert werden. Diese Befehle erzwingen bzw. verbieten einen Seitenumbruch. Mit dem \pageBreak-Befehl wird natürlich gleichzeitig auch ein Zeilenumbruch erzwungen.

Die \pageBreak und \noPageBreak-Befehle können auch auf der höchsten Ebene einer Datei benutzt werden, etwa zwischen Partituren und Textbeschriftungen.

Es gibt auch vertikale Gegenstücke zu den Variablen ragged-right und ragged-last: ragged-bottom und ragged-last-bottom. Wenn diese Variablen auf #t (wahr) gesetzt werden, werden im ersten Fall die Notensysteme auf allen Seiten eng nach oben orientiert gesetzt werden. Im zweiten Fall bezieht sich dies nur auf die letzte Seite. Zu Einzelheiten siehe Vertikale \paper-Variablen mit festen Abständen.

Seitenumbrüche werden von der page-breaking-Funktion errechnet. LilyPond kennt drei Algorithmen um Seitenumbrüche zu errechnen: ly:optimal-breaking, ly:page-turn-breaking und ly:minimal-breaking. Der Standard ist ly:optimal-breaking, aber der Wert kann in der \paper-Umgebung geändert werden:

 
\paper{
  #(define page-breaking ly:page-turn-breaking)
}

Wenn ein Buch (\book) viele Parituren und Seiten hat, kann die Seitenaufteilung schwer zu ermitteln sein und viel Zeit und Prozessorlast in Anspruch nehmen. Um den Seitenumbruchsprozess zu vereinfachen, werden \bookpart-Umgebungen benutzt, um das Buch in mehrere Teil zu trennen: Die Seitenumbrüche werden seperat für jeden Teil berechnet. Unterschiedliche Seitenumbruchsfunktionen können in unterschiedlichen Buchteilen benutzt werden.

 
\bookpart {
  \header {
    subtitle = "Vorwort"
  }
  \paper {
     %% In einem Abschnitt, der vor allem Text hat,
     %% funktioniert womöglich ly:minimal-breaking besser
     #(define page-breaking ly:minimal-breaking)
  }
  \markup { … }
  …
}
\bookpart {
  %% In diesem Abschnitt mit Noten wird
  %% die Standard-Seitenumbruchsfunktion benutzt.
  \header {
    subtitle = "Erster Satz"
  }
  \score { … }
  …
}

Vordefinierte Befehle

\pageBreak, \noPageBreak.

Siehe auch

Notationsreferenz: \paper-Variablen für den Seitenumbruch.

Schnipsel: (snippets)Spacing in Abschnitt ‘Spacing’ in Schnipsel.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

4.3.3 Optimale Seitenumbrüche

@translationof Optimal page breaking

Die ly:optimal-breaking-Funktion ist die Standardmethode für LilyPond, um Seitenumbrüche zu errechnen. Hiermit wird versucht, Seitenumbrüche zu finden, die das Stauchen oder Strecken von Zeilen minimieren, sowohl horizontal als auch vertikal. Anders als die ly:page-turn-breaking-Funktion hat diese Methode keine Möglichkeit, Überlegungen zum Umblättern mit einzubeziehen.

Siehe auch

Schnipsel: (snippets)Spacing in Abschnitt ‘Spacing’ in Schnipsel.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

4.3.4 Optimale Umbrüche zum Blättern

@translationof Optimal page turning

Es ist oft nötig, die Seiten so umzubrechen, dass sich eine Pause am Ende jeder zweiten Seite befindet, damit der Musiker es leichter hat, die Seite umzublättern ohne das Spielen zu Unterbrechen. Die ly:page-turn-breaking-Funktion versucht, Seitenumbrüche zu finden, die das Stauchen oder Strecken von Zeilen minimieren und gleichzeitig auch noch Seitenumbrüchen an angegebenen Stellen den Vorrang zu geben.

Die Funktion wird in zwei Schritten eingesetzt. Zunächst muss sie in der \paper-Umgebung aktiviert werden, wie gezeigt in Seitenumbrüche. Dann muss noch angegeben werden, welche Stellen bevorzugt für Seitenumbrüche benutzt werden sollen.

Für diesen zweiten Schritt gibt es zwei Methoden. Am Einfachsten ist es, die möglichen Seitenumbrüche mit dem Befehl \allowPageTurn an jeder Stelle manuell anzugeben.

Wenn Ihnen das zu aufwändig ist, können Sie den Page_turn_engraver zu einem Staff- oder Voice-Kontext hinzufügen. Dieser Engraver durchsucht den entsprechenden Kontext nach Stellen ohne Noten. (Es wird also nicht nach Pausen gesucht, sondern nach Stellen ohne Noten. Dieses Verhalten verhindert, dass an polyphonen Stellen umgebrochen wird, wo nur in einer Stimme Pausen vorhanden sind.) Wenn eine derartige Stelle ohne Noten gefunden wird, fügt der Engraver den Befehl \allowPageTurn am letzten Taktstrich des Abschnitts ein. Wenn in dem Abschnitt ein besonderer Taktstrich vorkommt (wie etwa ein Doppelstrich), wird der Befehl nach diesem Taktstrich gesetzt.

Der Page_turn_engraver liest die Kontexteigenschaft minimumPageTurnLength um zu erkennen, wie lang eine Stelle frei von Noten sein muss, damit ein Seitenumbruch in Frage kommt. Der Standardwert hierfür ist (ly:make-moment 1/1). Wenn Sie Seitenumbrüche zum Umblättern ausschalten wollen, können Sie einen sehr großen Wert angeben.

 
\new Staff \with { \consists "Page_turn_engraver" }
{
  a4 b c d |
  R1 | % Ein Seitenumbruch zum Umblättern erlaubt
  a4 b c d |
  \set Staff.minimumPageTurnLength = #(ly:make-moment 5/2)
  R1 | % Seitenumbruch nicht erlaubt
  a4 b r2 |
  R1*2 | % Seitenumbruch erlaubt
  a1
}

Der Page_turn_engraver erkennt Wiederholungen vom Typ volta. Ein Seitenumbruch zum Umblättern wird nur zugelassen, wenn vor und nach der Wiederholung genug Zeit ist, um die Seite wieder zurückzublättern. Wenn die Wiederholung sehr kurz ist, kann auch Umblättern verboten werden. Wenn Sie die Kontexteigenschaft minimumRepeatLengthForPageTurn definieren, erlaubt der Page_turn_engraver nur Umblättern in Wiederholungen, deren Dauer länger als dieser Wert ist.

Die Seitenumblätter-Befehle \pageTurn, \noPageTurn und \allowPageTurn können auch auf oberster Dateiebene benutzt werden, etwa zwischen Partituren und Textabschnitten.

Vordefinierte Befehle

\pageTurn, \noPageTurn, \allowPageTurn.

Siehe auch

Schnipsel: (snippets)Spacing in Abschnitt ‘Spacing’ in Schnipsel.

Bekannte Probleme und Warnungen

In einer Partitur sollte nur ein Page_turn_engraver vorkommen. Wenn mehr als einer definiert werden, stören sie sich gegenseitig.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

4.3.5 Minimale Seitenumbrüche

@translationof Minimal page breaking

Die ly:minimal-breaking-Funktion benötigt nur minimale Berechnungen, um die Seitenumbrüche zu bestimmen. Die Seite wird mit möglichst vielen Systemen gefüllt und dann zur nächsten Seite gewechselt. Die Funktion kann benutzt werden um Partituren mit vielen Seiten zu setzen, wenn die anderen Seitenumbruchsfunktionen zu langsam wären oder zu viel Speicher beanspruchen. Auch für Seiten mit viel Text ist die Funktion geeignet. Sie wird folgendermaßen aktiviert:

 
\paper {
  page-breaking = #ly:minimal-breaking
}

Siehe auch

Schnipsel: (snippets)Spacing in Abschnitt ‘Spacing’ in Schnipsel.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

4.3.6 Eine-Seite-Seitenumbrüche

@translationof One-line page breaking

Die Funktion ly:one-line-breaking ist ein besonderer Seitenumbruchalgorithmus, der jede Partitur (score) auf eine eigene Seite ausgibt, und in einer einzlenen Zeile. Diese Seitenumbruchfunktion gibt keine Titel oder Ränder aus, nur die Partitur wird dargestellt.

Die Seitenbreite wird angepasst, sodass die längeste Partitur auf eine Zeile passt. Die Variablen paper-width, line-width und indent in der \paper-Umgebung werden ignoriert, wenn auch left-margin und right-margin noch beachtet werden. Die Höhe der Seite wird nicht verändert.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

4.3.7 Ausdrückliche Umbrüche

@translationof Explicit breaks

Es kann vorkommen, dass LilyPond direkte \break oder \pageBreak-Befehl nicht beachtet. Mit folgenden Einstellungen kann dieses Verhalten ausgeschaltet werden:

 
\override NonMusicalPaperColumn.line-break-permission = ##f
\override NonMusicalPaperColumn.page-break-permission = ##f

Wenn line-break-permission die Einstellung falsch (##f) hat, werden Zeilenumbrüche nur an den Befehlen \break eingefügt und nirgendwo anders. Wenn page-break-permission die Einstellung falsch (##f) hat, werden Seitenumbrüche nur an den Befehlen \pageBreak eingefügt und nirgendwo anders.

 
\paper {
  indent = #0
  ragged-right = ##t
  ragged-bottom = ##t
}

music = \relative { c''8 c c c }

\score {
  \new Staff {
    \repeat unfold 2 { \music } \break
    \repeat unfold 4 { \music } \break
    \repeat unfold 6 { \music } \break
    \repeat unfold 8 { \music } \pageBreak
    \repeat unfold 8 { \music } \break
    \repeat unfold 6 { \music } \break
    \repeat unfold 4 { \music } \break
    \repeat unfold 2 { \music }
  }
  \layout {
    \context {
      \Score
      \override NonMusicalPaperColumn.line-break-permission = ##f
      \override NonMusicalPaperColumn.page-break-permission = ##f
    }
  }
}

[image of music]

Siehe auch

Schnipsel: (snippets)Spacing in Abschnitt ‘Spacing’ in Schnipsel.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

4.3.8 Eine zusätzliche Stimme für Umbrüche benutzen

@translationof Using an extra voice for breaks

Zeilen- und Seitenumbruchbefehle werden normalerweise direkt zusammen mit den Noten eingegeben.

 
music = \relative { c''4 c c c }

\score {
  \new Staff {
    \repeat unfold 2 { \music } \break
    \repeat unfold 3 { \music }
  }
}

Hierdurch sind zwar die Befehle \break und \pageBreak einfach zu notieren, es werden aber Informationen zur Notation mit Informationen zur Anordnung auf der Seite vermischt. Man kann diese Informationen auch voneinander trennen, indem man eine zusätzliche Stimme einfügt, in der Zeilen- und Seitenumbrüche vorgenommen werden. Diese zusätzliche Stimme enthält nur unsichtbare Noten und die Umbruchbefehle:

 
music = \relative { c''4 c c c }

\score {
  \new Staff <<
    \new Voice {
      s1 * 2 \break
      s1 * 3 \break
      s1 * 6 \break
      s1 * 5 \break
    }
    \new Voice {
      \repeat unfold 2 { \music }
      \repeat unfold 3 { \music }
      \repeat unfold 6 { \music }
      \repeat unfold 5 { \music }
    }
  >>
}

[image of music]

Mit dieser Herangehensweise kann der Code insbesondere dann klarer notiert werden, wenn man Einstellungen der line-break-system-details-Eigenschaft oder anderer Eigenschaften von NonMusicalPaperColumnGrob vornimmt (hierzu auch Vertikale Abstände).

 
music = \relative { c''4 c c c }

\score {
  \new Staff <<
    \new Voice {
      \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 0))
      s1 * 2 \break

      \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 35))
      s1 * 3 \break

      \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 70))
      s1 * 6 \break

      \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details #'((Y-offset . 105))
      s1 * 5 \break
    }
    \new Voice {
      \repeat unfold 2 { \music }
      \repeat unfold 3 { \music }
      \repeat unfold 6 { \music }
      \repeat unfold 5 { \music }
    }
  >>
}

[image of music]

Siehe auch

Notationsreferenz: Vertikale Abstände.

Schnipsel: (snippets)Spacing in Abschnitt ‘Spacing’ in Schnipsel.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]

Dieses Dokument wurde erzeugt von gub am 13. Juli 2020 durch texi2html 1.82.

Andere Sprachen: English, català, español, français, italiano, 日本語.
Über die automatische Sprachauswahl.