5.3.2 Größe von Objekten (LilyPond Handbuch zum Lernen)

#### 5.3.2 Größe von Objekten

Als Startpunkt wollen wir wieder ein früheres Beispiel wählen, siehe Musikalische Ausdrücke ineinander verschachteln. Hier wurde ein neues Notensystem erstellt, wie man es für ein ossia braucht.

>     \new Staff ="main" {
>       \relative {
>         r4 g'8 g c4 c8 d |
>         e4 r8
>         <<
>           { f8 c c }
>           \new Staff \with {
>             alignAboveContext = "main" }
>           { f8 f c }
>         >>
>         r4 |
>       }
>     }

Ossia-Systeme werden normalerweise ohne Schlüssel und Taktangabe geschrieben, und sie werden etwas kleiner als das Hauptsystem gesetzt. Wie man Schlüssel und Taktangabe entfernt, wissen wir schon: wir setzen den Stencil von beiden auf `#f`:

>     \new Staff ="main" {
>       \relative {
>         r4 g'8 g c4 c8 d |
>         e4 r8
>         <<
>           { f8 c c }
>           \new Staff \with {
>             alignAboveContext = "main"
>           }
>           {
>             \omit Staff.Clef
>             \omit Staff.TimeSignature
>             { f8 f c }
>           }
>         >>
>         r4 |
>       }
>     }

wobei ein zusätzliches Klammerpaar nach der `\with`-Konstruktion erforderlich ist um sicherzugehen, dass die Modifikation und die Noten sich auch auf das Ossia-System beziehen.

Was für einen Unterschied macht es, ob man den `Staff`-Kontext mit `\with` verändert, oder ob man die Stencils mit `\override` oder wie in diesem Fall mit `\omit` beeinflusst? Der größte Unterschied liegt darin, dass Änderungen, die mit `\with` eingeführt werden, während der Erstellung des Kontextes mit erzeugt werden und als Standardeinstellungen für diesen Kontext während seiner gesamten Dauer gelten, während `\set`- oder `\override`-Befehle dynamisch in die Noten eingebettet werden – sie führen die Änderungen synchron mit einem bestimmten Zeitpunkt in der Musik aus. Wenn die Änderungen mit `\unset` oder `\revert` rückgängig gemacht werden, werden wieder die Standardwerte eingesetzt, die also die sind, die mit einer `\with`-Konstruktion definiert wurden, oder wenn hier keine definiert worden sind, die normalen Standardwerte.

Manche Kontexteigenschaften können nur ein einer `\with`-Konstruktion verändert werden. Das sind Eigenschaften, die nicht sinnvoll mitten im System geändert werden können. `alignAboveContext` (Orientierung über dem Kontext) und die Parallele, `alignBelowContext` (Orientierung unter dem Kontext) sind zwei derartige Eigenschaften – wenn das Notensystem einmal erstellt wurde, ist die Orientierung schon bestimmt und es wäre nicht sinnvoll, sie später zu ändern.

Die Standardwerte für Layout-Objekt-Eigenschaften können auch in der `\with`-Konstruktion gesetzt werden. Benutzen Sie einfach den normalen `\override`-Befehl ohne den Kontext, denn der Kontext ist eindeutig definiert durch die Stelle, an welcher sich `\with` befindet. Wenn an dieser Stelle ein Kontext angegeben wird, produziert LilyPond eine Fehlermeldung.

Das obige Beispiel könnte also auch so aussehen:

>     \new Staff ="main" {
>       \relative {
>         r4 g'8 g c4 c8 d |
>         e4 r8
>         <<
>           { f8 c c }
>           \new Staff \with {
>             alignAboveContext = "main"
>             % Don't print clefs in this staff
>             \override Clef.stencil = ##f
>             % Don't print time signatures in this staff
>             \override TimeSignature.stencil = ##f
>           }
>           { f8 f c }
>         >>
>         r4 |
>       }
>     }

Es zeigt sich, dass wir hier ebenso die Kurzformen `\hide` und `\omit` zum Setzen der `transparent`-Eigenschaft und zum Entfernen des `stencil` verwenden können, was zu folgender Fassung führt

>     \new Staff ="main" {
>       \relative {
>         r4 g'8 g c4 c8 d |
>         e4 r8
>         <<
>           { f8 c c }
>           \new Staff \with {
>             alignAboveContext = "main"
>             % Don't print clefs in this staff
>             \omit Clef
>             % Don't print time signatures in this staff
>             \omit TimeSignature
>           }
>           { f8 f c }
>         >>
>         r4 |
>       }
>     }

Nun können wir daran gehen, auch wirklich die Größe der Objekte zu ändern.

Manche Layout-Objekte werden aus Glyphen erstellt, die sich in einer Schriftartdatei befinden. Dazu gehören die Notenköpfe, Versetzungszeichen, Text, Schlüssel, Taktbezeichnung, Dynamik und Gesangstext. Ihre Größe wird verändert, indem die `font-size`- (Schriftgröße)-Eigenschaft geändert wird, wie wir bald sehen werden. Andere Layout-Objekte, wie Bögen – oder allgemein Strecker-Objekte – werden individuell gezeichnet, es gibt dazu also keine `font-size`, die mit ihnen verknüpft wäre. Weitere Eigenschaften wie die Länge von Hälsen und Taktstriche, Dicke von Balken und anderen Linien und der Abstand der Notenlinien voneinander müssen auf spezielle Weise verändert werden.

In unserem Ossia-Beispiel wollen wir zuerst die Schriftgröße verändern. Das ist auf zwei Arten möglich. Entweder wir ändern die Schriftgröße für jede Objektart mit einem eigenen Befehl, etwa:

    \override NoteHead.font-size = #-2

oder wir ändern die Größe aller Schriftobjekte, indem wir den Wert einer besonderen Eigenschaft, `fontSize`, mit dem `\set`-Befehl bestimmen oder sie in eine `\with`-Konstruktion (ohne `\set` einschließen.

    \set fontSize = #-2

Beide Beispiele reduzieren die Schriftgröße um zwei Schritte im Vergleich zum vorigen Wert, wobei jeder Schritt die Schriftgröße um etwa 12% verändert.

Setzen wir das also in unserem Ossia-Beispiel ein:

>     \new Staff ="main" {
>       \relative {
>         r4 g'8 g c4 c8 d |
>         e4 r8
>         <<
>           { f8 c c }
>           \new Staff \with {
>             alignAboveContext = "main"
>             \omit Clef
>             \omit TimeSignature
>             % Verkleinere alle Fonts um ~24%
>             fontSize = #-2
>           }
>           { f8 f c }
>         >>
>         r4 |
>       }
>     }

Das sieht aber immer noch nicht richtig aus. Die Notenköpfe und Fähnchen sind kleiner, aber die Hälse im Vergleich dazu zu lang und die Notenlinien zu weit auseinander. Sie müssen auch proportional zur Schriftart verkleinert werden. Der nächste Abschnitt behandelt diese Anpassung.

#### LilyPond Handbuch zum Lernen v2.26.0 (stable-branch).

- 1 Installing
  - 1.1 Graphical setup
  - 1.2 Command line setup
- 2 Tutorium
  - 2.1 Eine Quelldatei übersetzen
  - 2.2 Wie werden Eingabe-Dateien geschrieben
    - 2.2.1 Einfache Notation
      - Tonhöhen
      - Tondauern (Rhythmen)
      - Pausen
      - Taktartangabe
      - Tempobezeichnung
      - Notenschlüssel
      - Alles zusammen
    - 2.2.2 Arbeiten an Eingabe-Dateien
  - 2.3 Fehlerbehandlung
    - 2.3.1 Allgemeine Fehlerbehandlungstipps
    - 2.3.2 Einige häufige Fehler
  - 2.4 Wie die Handbücher gelesen werden sollten
    - 2.4.1 Ausgelassenes Material
    - 2.4.2 Anklickbare Beispiele
    - 2.4.3 Überblick über die Handbücher
- 3 Übliche Notation
  - 3.1 Notation auf einem System
    - 3.1.1 Taktstriche und Taktüberprüfung
      - Taktstriche
      - Taktüberprüfungen
    - 3.1.2 Tonhöhen und Tonartbezeichnungen (Vorzeichen)
      - Tonhöhenveränderungen
      - Tonartbezeichnungen (Vorzeichen)
      - Warnung bzgl. Tonartbezeichnungen und Tonhöhen
    - 3.1.3 Bindebögen und Legatobögen
      - Bindebögen
      - Legatobögen
      - Phrasierungsbögen
      - Achtung Bindebögen sind nicht Legatobögen
    - 3.1.4 Artikulationszeichen und Lautstärke
      - Artikulationszeichen
      - Fingersätze
      - Dynamik
    - 3.1.5 Text hinzufügen
    - 3.1.6 Automatische und manuelle Balken
    - 3.1.7 Zusätzliche rhythmische Befehle
      - Auftakt
      - N-tolen
      - Verzierungen
  - 3.2 Mehrere Noten auf einmal
    - 3.2.1 Musikalische Ausdrücke erklärt
      - Analogie mathematische Ausdrücke
      - Gleichzeitige musikalische Ausdrücke mehrere Notensysteme
      - Gleichzeitige musikalische Ausdrücke ein Notensystem
    - 3.2.2 Mehrere Notensysteme
    - 3.2.3 Notensysteme gruppieren
    - 3.2.4 Noten zu Akkorden verbinden
    - 3.2.5 Mehrstimmigkeit in einem System
  - 3.3 Lieder
    - 3.3.1 Einfache Lieder setzen
    - 3.3.2 Text an einer Melodie ausrichten
    - 3.3.3 Text zu mehreren Systemen
  - 3.4 Letzter Schliff
    - 3.4.1 Stücke durch Variablen organisieren
    - 3.4.2 Titel hinzufügen
    - 3.4.3 Absolute Notenbezeichnungen
    - 3.4.4 Nach dem Tutorium
- 4 Grundbegriffe
  - 4.1 Wie eine LilyPond-Eingabe-Datei funktioniert
    - 4.1.1 Einführung in die Dateistruktur von LilyPond
    - 4.1.2 Score ist ein (einziger) zusammengesetzter musikalischer Ausdruck
    - 4.1.3 Musikalische Ausdrücke ineinander verschachteln
    - 4.1.4 Über die Nicht-Schachtelung von Klammern und Bindebögen
  - 4.2 Voice enthält Noten
    - 4.2.1 Ich höre Stimmen
    - 4.2.2 Stimmen explizit beginnen
    - 4.2.3 Stimmen und Text
  - 4.3 Kontexte und Engraver
    - 4.3.1 Was sind Kontexte?
    - 4.3.2 Kontexte erstellen
    - 4.3.3 Was sind Engraver?
    - 4.3.4 Kontexteigenschaften verändern
    - 4.3.5 Engraver hinzufügen und entfernen
  - 4.4 Erweiterung der Vorlagen
    - 4.4.1 Sopran und Cello
    - 4.4.2 Vierstimmige SATB-Partitur
    - 4.4.3 Eine Partitur von Grund auf erstellen
    - 4.4.4 Tipparbeit durch Variablen und Funktionen einsparen
    - 4.4.5 Partituren und Stimmen
- 5 Die Ausgabe verbessern
  - 5.1 Grundlagen für die Optimierung
    - 5.1.1 Grundlagen zur Optimierung
    - 5.1.2 Objekte und Schnittstellen
    - 5.1.3 Regeln zur Benennung von Objekten und Eigenschaften
    - 5.1.4 Optimierungsmethoden
      - Der `\override`-Befehl
      - Der `\revert`-Befehl
      - Der `\once`-Präfix
      - Der `\tweak`-Befehl
      - Der `\single`-Präfix
  - 5.2 Die Referenz der Programminterna
    - 5.2.1 Eigenschaften von Layoutobjekten
    - 5.2.2 Eigenschaften, die Schnittstellen besitzen können
    - 5.2.3 Typen von Eigenschaften
  - 5.3 Erscheinung von Objekten
    - 5.3.1 Sichtbarkeit und Farbe von Objekten
      - Die `stencil`-Eigenschaft (Matrize)
      - The `break-visibility`-Eigenschaft (unsichtbar machen)
      - Die `transparent`-Eigenschaft (durchsichtig)
      - Die `color`-Eigenschaft (Farbe)
    - 5.3.2 Größe von Objekten
    - 5.3.3 Länge und Dicke von Objekten
  - 5.4 Positionierung von Objekten
    - 5.4.1 Automatisches Verhalten
    - 5.4.2 within-staff (Objekte innerhalb des Notensystems)
      - The `direction`-Eigenschaft (Richtung)
      - Fingersatz
    - 5.4.3 Objekte außerhalb des Notensystems
      - Die `outside-staff-priority`-Eigenschaft
      - Der `\textLengthOn`-Befehl (Textlänge berücksichtigen)
      - Positionierung von Dynamikzeichen
      - Verändern der Größe von grobs
  - 5.5 Vertikale Abstände
  - 5.6 Kollision von Objekten
    - 5.6.1 Verschieben von Objekten
    - 5.6.2 Überlappende Notation in Ordnung bringen
      - Die `padding`-Eigenschaft (auffüllen)
      - Die `right-padding`-Eigenschaft (rechts auffüllen)
      - The `staff-padding`-Eigenschaft (Systemfüllungseigenschaft)
      - Die `self-alignment-X`-Eigenschaft (Selbstausrichtung-X-Eigenschaft)
      - Die `staff-position`-Eigenschaft (Position innerhalb des Systems)
      - Die `extra-offset`-Eigenschaft (Genaues Positionieren)
      - Die `positions`-Eigenschaft (Ausrichtungseigenschaft)
      - Die `force-hshift`-Eigenschaft (horizontale Verschiebunseigenschaft)
    - 5.6.3 Beispiel aus dem Leben
  - 5.7 Weitere Optimierungen
    - 5.7.1 Andere Benutzung von Optimierungen
      - Noten zwischen unterschiedlichen Stimmen überbinden
      - Eine Fermate in MIDI simulieren
    - 5.7.2 Variablen für Layout Anpassungen einsetzen
    - 5.7.3 Formatvorlagen
    - 5.7.4 Mehr Information
    - 5.7.5 Fortgeschrittene Optimierungen mit Scheme
- Appendix A Vorlagen
  - A.1 Eingebaute Vorlagen
    - A.1.1 SATB Vorlage
    - A.1.2 SSAATTBB Vorlage
  - A.2 Vorlagen für ein einzelnes System
    - A.2.1 Nur Noten
    - A.2.2 Noten und Text
    - A.2.3 Noten und Akkordbezeichnungen
    - A.2.4 Noten, Text und Akkordbezeichnungen
  - A.3 Klaviervorlagen
    - A.3.1 Piano Solo
    - A.3.2 Klavier und Gesangsstimme
    - A.3.3 Klavier mit eingeschobenem Gesangstext
  - A.4 Vorlagen für Streichquartette
    - A.4.1 Streichquartett
    - A.4.2 Streichquartettstimmen
  - A.5 Vokalensemble
    - A.5.1 SATB-Partitur
    - A.5.2 SATB-Partitur und automatischer Klavierauszug
    - A.5.3 SATB mit daran ausgerichteten Kontexten
    - A.5.4 SATB auf vier Systemen
    - A.5.5 Sologesang und zweistimmiger Refrain
    - A.5.6 Kirchenlieder
    - A.5.7 Psalmengesang
  - A.6 Orchestervorlagen
    - A.6.1 Orchester, Chor und Klavier
  - A.7 Vorlagen für alte Notation
    - A.7.1 Transkription mensuraler Musik
    - A.7.2 Vorlage zur Transkription von Gregorianik
  - A.8 Andere Vorlagen
    - A.8.1 Jazz-Combo
- Appendix B GNU Free Documentation License
- Appendix C Register