Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: trulli am Samstag, 7. Februar 2015, 17:55
-
Hallo Leute,
in diesem Tabulatur-Beispiel möchte ich den Abstand zwischen 1. und 2. Stimme vergrößern. Ich dachte, das ginge mit \override VerticalAxisGroup in der \layout-Umgebung. Was mache ich falsch?
\version "2.18.0"
upper = \relative c' {
\set Staff.instrumentName = "1"
g a b c
}
lower = \relative c {
\set Staff.instrumentName = "2"
g a b c
}
\score {
\new StaffGroup
<<
\new TabStaff = "tab" << \tabFullNotation \override Staff.Clef #'stencil = ##f
\context TabVoice = "upper tab" \upper
>>
\new TabStaff = "tab" << \tabFullNotation \override Staff.Clef #'stencil = ##f
\context TabVoice = "lower tab" \lower
>>
>>
\layout {
\context {
\TabStaff
\override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #20
}
}
}
Danke und Grüße von Trulli
-
Hallo trulli,
versuch mal:
\version "2.18.0"
%% vielleicht zusätzlich:
\paper {
%system-system-spacing.basic-distance = #20
}
upper = \relative c' {
\set Staff.instrumentName = "1"
g a b c
\break
g a b c
}
lower = \relative c {
\set Staff.instrumentName = "2"
g a b c
g a b c
}
\score {
\new StaffGroup <<
\new TabStaff = "tab" << \tabFullNotation \override Staff.Clef #'stencil = ##f
\context TabVoice = "upper tab" \upper
>>
\new TabStaff = "tab" << \tabFullNotation \override Staff.Clef #'stencil = ##f
\context TabVoice = "lower tab" \lower
>>
>>
\layout {
\context {
\TabStaff
\override VerticalAxisGroup.staff-staff-spacing.basic-distance = #15
}
}
}
Aber ich muß auch jedes mal in die NR schauen und ausprobieren was klappt ...
Ist zwar nicht das aktuelle Problem, aber es gibt einen schönen Pfuschzettel (http://lilypond.1069038.n5.nabble.com/attachment/164161/0/vertical-spacing-paper-variables.pdf) für paper-Variablen, den ich nicht vorenthalten will (kommt von hier (http://lilypond.1069038.n5.nabble.com/Reduce-vertical-space-between-score-s-td165406.html#a165411)).
Als png auch im Anhang.
Gruß,
Harm
-
Hallo harm,
ja, system-system.spacing kenne ich, es vergrößert die Abstände zwischen den Akkoladen. Ich suche aber die Abstandsvergrößerung innerhalb der Akkoladen. Irgendwie funktioniert das hier nicht nicht:
\layout {
\context {
\TabStaff
\override VerticalAxisGroup.staff-staff-spacing.basic-distance = #15
}
}
Weißt du warum? Oder funktioniert das bei dir?
LG von Trulli
-
Hallo Trulli,
es funktioniert, wenn du die ganze Liste definierst:
\context {
\TabStaff
\override VerticalAxisGroup.staff-staff-spacing = #'(
(basic-distance . 9) ; default: 9
(minimum-distance . 15) ; default: 8
(padding . 1) ; default: 1
)
}
Gruß, Robert
-
Hmm, der Befehl:
\override VerticalAxisGroup.staff-staff-spacing.basic-distance = #15
in 2.18.0 ausgeführt, gibt mir folgende Warnung:
Warnung: Typprüfung für »staff-staff-spacing« gescheitert; Wert »((basic-distance . 15) . #<unpure-pure-container #<primitive-procedure ly:axis-group-interface::calc
:
:
taff-staff-spacing> #<primitive-procedure ly:axis-group-interface::calc-pure-staff-staff-spacing> >)« muss vom Typ »list« sein
Warnung: Typprüfung für »staff-staff-spacing« gescheitert; Wert »((basic-distance . 15) . #<unpure-pure-container #<primitive-procedure ly:axis-group-interface::calc
:
:
taff-staff-spacing> #<primitive-procedure ly:axis-group-interface::calc-pure-staff-staff-spacing> >)« muss vom Typ »list« sein
in 2.19.15 gibts keine Warnung und er tut was er soll.
In 2.18.0 versuch mal:
\override VerticalAxisGroup.staff-staff-spacing = #'((basic-distance . 35))
mit verschiedenen Werten. Klappt bei mir.
Vielleicht sollte man dann aber die ganze Liste angeben, d.h. mit Einträgen für padding, minimal-distance und stretchability. Es gab ein paar vereinfachende Änderung in der Art und Weise wie nested-properties zu modifizieren sind. Und ich kann mich nicht mehr daran erinnern wann das kam...
Gruß,
Harm
-
Hallo Rob und harm,
vielen Dank, beide Lösungen klappen.
Ich war irgendwie auf dem Holzweg, weil ich hier (http://www.lilypond.org/doc/v2.18/Documentation/notation/flexible-vertical-spacing-within-systems) die folgende Lösung gefunden hatte, die aber interessanterweise keine Klammern hat und dieses "default" dazwischen:
\override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
Das "default" war offenbar Schuld, dass es bei mir gar keine Warnung gab.
Im gleichen Abschnitt steht auch
\override VerticalAxisGroup.default-staff-staff-spacing =
#'((basic-distance . 10)
(minimum-distance . 9)
(padding . 1)
(stretchability . 10))
Funktioniert nicht. Aber ohne default läuft es. Offenbar ein Schreibfehler.
@harm
Ich habe die erste Schreibweise (ohne default) mit 2.19.0 probiert - klappte nicht. Tatsächlich funktioniert es erst bei 2.19.15.
Die Magie des Codes... ::)
Grüße von Trulli