Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: chf am Montag, 18. Juni 2012, 19:53

Titel: Abstände zwischen Systemen / Zeilen
Beitrag von: chf am Montag, 18. Juni 2012, 19:53
Liebe Freunde,

bislang habe ich keine Lösung gefunden für ein Problem, das ich am besten im Bild zeige.
Die Seite 1 (6) unten und die Seite 2 (7) mitte des angehängten Dokuments zeig die Misere.
Ich habe unter Vertikal Spacing rumgelesen, möglicherweise kapiere ich die Ausführungen nur nicht.
Ich komme nur immer auf den Abstand innerhalb StaffGroup...

Hoffentlich habt ihr ein Rezept.

Gruß
chf
Titel: Re: Abstände zwischen Systemen / Zeilen
Beitrag von: prott am Sonntag, 24. Juni 2012, 09:00
Es wäre hilfreich, wenn Du die entsprechenden Werte aus Deinem \layout- und \paper-Block posten würdest. Was Du möglicherweise übersehen hast, ist der Abschnitt "Vertikale \paper-Variablen mit flexiblen Abständen" aus 4.1.2. Da gibt es die Variable system-system-spacing, die Dir die Akkoladen/Systeme weiter voneinander trennen kann. Da sollte ein größerer Wert (v. a.) für stretchability stehen als im \layout-Block StaffGrouper.staff-staff-spacing - ich glaube, an letzterem hast Du bereits herumgespielt.

Und ja, die Anleitung finde ich noch nicht so super gelungen (auch wenn es bei Software noch weitaus schlechtere gibt). Es wäre schön, wenn sich jemand, der sich wirklich auskennt, die Zeit nehmen könnte, ein Muster-Dokument zu erstellen, in dem sämtliche Distanzen angezeigt sind. So ähnlich, wie es mit annotate-spacing versucht wird, aber erstens zeigt das nicht alles an und zweitens fürchte ich, daß es noch auf dem Stand von 2.12 ist.
Titel: Re: Abstände zwischen Systemen / Zeilen
Beitrag von: chf am Mittwoch, 27. Juni 2012, 21:50
Hallo prott,

leider komme ich so nicht weiter.
Ich habe mir mit unsichtbaren Noten einigermaßen geholfen.
Natürlich könnte ich die Mehrtakt-Pausen eintragen, aber das sieht auch nicht gut aus.
Das Problem liegt vermutlich genau da - bei dem Wechsel von System und Zeile?

Danke trotzdem
chf
Titel: Re: Abstände zwischen Systemen / Zeilen
Beitrag von: prott am Donnerstag, 28. Juni 2012, 09:58
Setze doch bitte Deinen \paper- und \layout-Block ins Forum. Da ich davon ausgehe, daß Dein Problem die vertikalen Abstände zwischen den Notenzeilen sind, ist die Lösung da zu suchen. Es sieht für mich übrigens so aus, daß die Abstände der Zeilen einer Akkolade im Vergleich zu denen zwischen den Akkoladen immer zu groß sind. Also ist das nicht unbedingt ein Problem der Einzeiligkeit.

Schreibe die Mehrtakt-Pausen ruhig, oder wenigstens die Notenzeile. In dem einzigen Beispiel, das ich auf die Schnelle gefunden habe (Bach-Fuge, gesetzt von Henle in den 1970er Jahren), ist die zweite Notenzeile da - ganz ohne Pausenzeichen. Das liest sich, meine ich, deutlich schneller: Wenn die Zahl der Zeilen wechselt, muß man ja nicht nur diese Tatsache verdauen, sondern muß den Schlüssel wieder neu lesen.
Titel: Re: Abstände zwischen Systemen / Zeilen
Beitrag von: chf am Donnerstag, 28. Juni 2012, 12:12
Das sollte genügen?

\version "2.14.2"
\paper {
#(layout-set-staff-size 17)     
        between-system-padding = #0.1
        top-margin = #14
        inner-margin = #14
        outer-margin = #18
        two-sided = ##t
        bottom-margin = #23
        ragged-last-bottom = ##f
        ragged-right = ##f       
}

\score {
        \new GrandStaff \with {\override StaffGrouper #'staff-staff-spacing #'basic-distance = #7
                                \override ScoreSystem-System-Spacing #'basic-distance = #8
   
        }
        <<
                \new Staff = "1" << \global \upper >>
                 \dynamics
                \new Staff = "2" <<\global \lower >>
        >>
      }
Titel: Re: Abstände zwischen Systemen / Zeilen
Beitrag von: prott am Donnerstag, 28. Juni 2012, 14:51
Das hilft schon mal sehr viel weiter. Ich gehe im Moment davon aus, daß sich innerhalb des \score-Blocks kein \layout-Block befindet, bzw. keiner, in dem noch irgendetwas über Abstände gesagt wird. Die \override-s im GrandStaff dürften genau so wirken.

Ich glaube, mit StaffGrouper #'staff-staff-spacing hast Du den richtigen für den Abstand zwischen den beiden Zeilen einer Akkolade gefunden. Aber der Abstand zwischen den Akkoladen wird mit der Variable system-system-spacing, die unbedingt in den \paper-Block muß, gesetzt. Falls Du für die einzeiligen Abschnitte intern einen eigenen \score-Block hast, spielt möglicherweise auch score-system-spacing eine Rolle. Tipp: Arbeite (auch) mit stretchability.

Versuche es einmal mit:

\version "2.14.2"
\paper {
#(layout-set-staff-size 17)     
        top-margin = #14
        inner-margin = #14
        outer-margin = #18
        two-sided = ##t
        bottom-margin = #23
        ragged-last-bottom = ##f
        ragged-right = ##f       
        system-system-spacing #'basic-distance = #8
        system-system-spacing #'stretchability = #30
}

\score {
        \new GrandStaff \with {\override StaffGrouper #'staff-staff-spacing #'basic-distance = #7
                                \override StaffGrouper #'staff-staff-spacing #'stretchability = #20
   
        }
        <<
                \new Staff = "1" << \global \upper >>
                 \dynamics
                \new Staff = "2" <<\global \lower >>
        >>
      }

Das ist dann wahrscheinlich noch nicht schön, aber ein Ausgangspunkt.

Das Auftauchen des in 2.14.x nicht mehr wirksamen between-system-padding (kannst Du löschen) scheint darauf hinzudeuten, daß Du mit der vertikalen Positionierung noch nicht so richtig vertraut bist. Deshalb schreibe ich sicherheitshalber auch noch einmal die Grundlagen:

Lilypond erzeugt erst einzelne Noten- und eventuell Textzeilen, die vertikal in sich starr sind: Die fünf Notenlinien haben z. B. immer den gleichen Abstand. Diese einzelnen starren Elemente sollen nun schön über die Seite verteilt werden. Das kann man sich bildlich so vorstellen, daß sie zunächst mit Federn verbunden werden, die so gedehnt oder gestaucht werden, daß alles auf die Seite paßt. (Wie das unverzerrte Bild aussieht, kannst Du wahrscheinlich erzeugen, indem Du die Seite mit top-margin=#0 und bottom-margin =#0 vergrößerst, sowie ragged-bottom = ##t setzt; ich habe es aber noch nicht ausprobiert.) Diese Federn kannst Du mit vier Werten verändern, so daß sie sich möglichst gut an unterschiedliche Situationen anpassen:
basic-distance: Die Länge der entspannten Feder
minimum-distance: Der minimale Abstand der Referenzpunkte der  Objekte (bei Notenlinien wohl die mittlere)
padding: Der minimale Abstand der Skylines (die die unterschiedliche Höhe/Tiefe der Objekte beschreibt)
stretchability: Wie leicht sich die jeweilige Feder dehnen läßt (für Physikbegeisterte: Der Kehrwert der Federkonstante)

Mit basic-distance gibst Du also den idealen Abstand vor. Mit minimum-distance und padding verhinderst Du ein zu gedrängtes Notenbild; kleiner als da vorgegeben, kann kein Abstand werden (d. h. die Feder ist vollständig zusammengedrückt). Der Wert für stretchability wird nur mit dem der anderen Abstände verglichen. Wenn bei zwei ansonsten identischen Abständen (im Bild: Federn) einer eine stretchability von 20 und die andere von 40 hat, läßt sich die zweite doppelt so leicht dehnen: Wenn insgesamt um 6 cm gedehnt wird, wird der erste Abstand 2 cm, der zweite 4 cm größer.  200 und 400 würden genau das Gleiche bewirken.

Wenn Du nicht genau weißt, ob Du gerade am richtigen Abstand bastelst, setze bei ihm #'padding = 100. Wenn der gesuchte Abstand nicht blödsinnig groß wird, hast Du den richtigen Befehl noch nicht gefunden (keine schöne Methode, aber wirksam).
Titel: Re: Abstände zwischen Systemen / Zeilen
Beitrag von: chf am Donnerstag, 28. Juni 2012, 16:25
Ja, das gefällt mir schon wesentlich besser.

Danke auch für die Erläuterung - diese Dinge verwirren mich schon ganz schön. Vor allem ist mir nie ganz klar, wohin ich was schreiben muss.
Manches begreife ich nach und nach, nicht zuletzt durch die Anleitung aus dem FORUM...

Beste Grüße
chf