Ich versuche, ein Ossia-Personal über den oberen Stab eines großen Personals hinzuzufügen. Arbeiten von this mailing list post, habe ich ein minimales Beispiel konstruiert, das fast tut, was ich will. Das Problem ist, dass die gesamte Punktzahl eine Leerstelle für die Ossia Mitarbeiter enthält, auch in Systemen, die keine Ossia haben.Wie kann ich Ossia hinzufügen, ohne eine Leerstelle zu erstellen?
Hier ist das Beispiel (wirklich, eine melodiöse Komposition):
\version "2.18.2"
ossia = \new Staff = "ossia" \with {
\remove "Time_signature_engraver"
fontSize = #-2
\override StaffSymbol #'staff-space = #(magstep -2)
\override Clef #'transparent = ##t
\override KeySignature #'stencil = ##f
} {
\key b \major
\override Staff.BarLine #'allow-span-bar = ##f
\stopStaff
s2.*100 % ???
}
treble = \new Staff = "treble" {
\clef treble
\key b \major
\relative c' {
\repeat unfold 10 { b8 cis dis fis dis cis }
b4 dis fis |
b4
<<
{ dis, fis }
\context Staff = "ossia" {
\startStaff \tuplet 3/2 { dis8 b dis } fis4 \stopStaff
}
>> |
b2. |
}
}
bass = \new Staff = "bass" {
\clef bass
\key b \major
\relative c {
\repeat unfold 12 { fis,4 fis4 fis4 | }
b2.
}
}
pianoStaff = \new PianoStaff {
\compressFullBarRests
\time 3/4
<<
\ossia
\treble
\bass
>>
}
\paper {
#(set-paper-size "letter")
indent = 25\mm
short-indent = 5\mm
}
\score {
<<\pianoStaff>>
% This changes nothing:
% \layout { \context { \Staff \RemoveEmptyStaves } }
}
Here is the output (PNG image, 85 KB).
Einige interessante Dinge zu beachten:
Wenn ich die
s2.*100
in Zeile 13 (entfernen markiert% ???
), oder ändern Sie die Wert auf etwas kleiner als 12, das Ossia Personal rendert völlig falsch. Es erscheint unter dem Bassschlüssel, enthält den Schlüssel und die Taktart und steht in der Tonart C (d. H. Die wiedergegebenen Noten enthalten Vorzeichen). Grundsätzlich sieht es aus wie es gescheitert ist, dass dasossia
Personal existiert und ein brandneues eines gebaut hat. Ich vermute, dass dies daran liegt, dass das Ossia-Personal über jeden Punkt hinausfahren sollte, an dem es verwendet wird - d.h., wenn Personal Kontexte wechseln, kann man "zurück in die Zeit" gehen, aber nicht weiterleiten. Ich verstehe das nicht wirklich , aber ich kann damit leben, wie es scheint, einen intrinsischen Effekt zu haben, solange aktiviert ist.Ich habe die Papiergröße in die MWE aufgenommen, um konsistente Dimensionen auf verschiedenen Systemen zu erzwingen.
Wie ich in der Partitur festgestellt, entfernt
\RemoveEmptyStaves
die leeren Stäbe nicht entfernen.
Meine Frage ist: wie kann ich die Ossia Mitarbeiter halten gemacht, wie es in dieses Beispiel (kleine und über dem Violinschlüssel) tut ohne Zugabe des leeren Raum auf allen bisherigen Systemen?
Hallo Fedelibre. Ich schätze Ihre Hilfe. Dank Ihrer Antwort konnte ich eine zufriedenstellende Lösung finden. Ein paar Kommentare. Erstens ist der Zweck der Spacer - Auflage so, dass ich die Ossie schreiben kann, indem ich einfach '\ context Staff =" ossia "' in den Fluss des Rests der Partitur (wie in meinem Beispiel) setze, im Gegensatz zur manuellen Einfügung der korrekte Anzahl der Pausen, um die Ossie in die gewünschte Position zu bringen (wie in Ihrem).Zweitens zeigt Ihr Beispiel das Ossia nicht richtig an, da es zusätzliche Leermaße für alle Balken im System enthält, in dem ein Ossia erscheint. Zum Beispiel, (1/2) – wchargin
(2/2) Wenn Sie Ihre '\ break' in die vorherige Zeile verschieben, dann gibt es einen zusätzlichen leeren Balken vor dem Inhalt der Ossia. (Bitte konsultieren Sie den Link zum gerenderten Bild in meinem ursprünglichen Beitrag.) Dies ist der Zweck der Befehle '\ startStaff' und' \ stopStaff' in meinem ursprünglichen Beispiel. Drittens tut mir leid, dass mein MWE groß ist. Jetzt, wo ich eine funktionierende Lösung habe, kann ich sehen, dass (zum Beispiel) der Bassschlüssel in der Tat nicht benötigt wird. Ich war mir da nicht sicher, denn es ist immerhin ein 'PianoStaff'. Alles ist im Nachhinein einfacher! :-) Hier ist meine minimale Lösung: https://gist.github.com/wchargin/db8f3ff0129686dafe87045f90c8bf5f – wchargin