Hallo alle, hallo Peter,
auch ich habe mich nochmal eingehend mit Incipits befasst. Basierend auf dem (überschaubareren) LSR-Snippet #582 (
http://lsr.di.unimi.it/LSR/Item?id=582) und Peters Ansatz, die Notendauern zu skalieren (prima Idee, Peter!), habe ich die für mich wichtigsten Anforderungen fast vollständig umsetzen können:
- Gestört hat mich immer, dass die eigentlichen Instrumentenbezeichner zu weit rechts stehen und die Incipitzeile fast berühren. Dies kann im Snippet selbst durch die zusätzliche Zeile \override InstrumentName.extra-offset = #'(-2 . 0) individuell justiert werden. Darauf hatte man selbst durch Anpassen von indent und incipit-width keinen nennenswerten Einfluss, ohne das horizontale Spacing zu zerstören.
- Die vertikale Ausrichtung der Incipitzeile, auch in Verbindung mit LyricText, stellt sich als wesentlich einfacher heraus, als bisher codiert. Das Problem war, dass im Snippet unnötig vertikal hin und her geschoben wurde. Zuerst vertikal obenbündig ausrichten, dann der VerticalAxisGroup eine feste Ausdehnung zuweisen und anschließend um die Hälfte wieder verschieben
Instrumentenbezeichner sind per default vertikal zentriert am Staff ausgerichtet; das kann man also lassen, wie es ist. Dadurch braucht man sich auch nicht mehr um LyricText kümmern, der sonst in die vertikale Berechnung einbezogen würde (wird stattdessen auf Höhe der eigentlichen Lyrics platziert). - Peter schreibt, dass das Snippet incipit-width benutzt. Das ist nicht ganz richtig. Das Snippet stellt die horizontale Breite incipit-width zur Verfügung. Wird diese Breite nicht explizit angegeben, wird incipit-width auf die Hälfte der indent-Breite (default: 15\mm; wird auf Papierformat skaliert) gesetzt.
- Das Spacing innerhalb des Incipits habe ich von Peter übernommen. Wichtig hierbei: die proportionale Skalierung auf ganze Noten. Für die Notation bedeutet dies:
- Alle Dauern müssen manuell auf die Dauer einer ganzen Note skaliert werden, z.B. r\longa*1/4, d2*2 oder a1.*2/3.
- Die Anzahl der Objekte (Noten und Pausen) muss in allen Zeilen übereinstimmen. Fehlende Objekte müssen durch spacer rests (s1) aufgefüllt werden, sonst sieht die horizontale Verteilung nicht schön aus.
Nicht beheben konnte ich, dass trotz
\once \override Staff.InstrumentName.self-alignment-X = #RIGHT die Ausrichtung nicht nur für
instrumentName, sondern auch für
shortInstrumentName festgelegt wird. Deshalb kann die Angabe eines
shortInstrumentName nicht gleichzeitig erfolgen, sondern leider erst in der jeweiligen Stimme
nach Auftreten der ersten Note/Pause. Die
shortInstrumentNames werden sonst ebenfalls rechtsbündig gesetzt
Vielleicht weiß jemand Abhilfe???Hier nun mein Codebeispiel (der Zeichenanzahl wegen als Anhang). Es ist sehr ausführlich und mit vielen Anpassungen versehen, die zum Experimentieren einladen sollen. Ihr könnt es gern als Vorlage verwenden und nach eigenem Geschmack gestalten!
Gruß, Robert