Autor Thema: Frage zu between-system-padding und between-system-space  (Gelesen 5547 mal)

trulli

  • Member
Frage zu between-system-padding und between-system-space
« am: Dienstag, 29. September 2009, 19:56 »
Hallo,

vielleicht ist die Frage dumm... aber ich kapiere den Unterschied zwischen between-system-padding und between-system-space nicht. Es ist klar, dass damit der Abstand zwischen den Systemen eingestellt werden kann, aber warum braucht man dafür denn zwei Werte?

Darum dazu die Fragen:

1) Was ist der Unterschied zwischen der # und der \cm Schreibweise?
2) Was macht between-system-padding genau?
3) Was macht between-system-space genau?

Grüße und Danke von trulli

RobUr

  • Member
Re: Frage zu between-system-padding und between-system-space
« Antwort #1 am: Mittwoch, 30. September 2009, 17:46 »
Hallo trulli,

es gibt keine dummen Fragen, nur dumme Antworten ;-)

zu 1): \cm gibt eine Länge in cm an (wer hätte das gedacht); # gibt die Länge in Notenlinienabständen an. Der Abstand zwischen zwei Notenlinien ist dabei abhängig von der gewählten „Systemgröße“ (staff-size). Ein Rechenbeispiel: #(set-global-staff-size 20) (Voreinstellung) setzt die Notenzeilenhöhe (staff height) auf 20pt = 7mm; der Abstand zwischen zwei Notenlinien beträgt somit 7mm/5 = 1,4mm. Ändert man nun die Zeilenhöhe, werden alle mit # gesetzten Werte (proportionale/relative Maßangabe) entsprechend skaliert, wohingegen mit \cm, \mm, \pt usw. bestimmte Werte (absolute Maßangabe) unverändert bleiben. Schriftgrößen werden auch skaliert, wenn sie nicht gerade mit \abs-fontsize #n festgelegt wurden.

zu 2): between-system-padding ist der Mindestabstand zwischen dem untersten Pixel eines Systems und dem obersten Pixel des Folgesystems. Anders gesagt: Lily behandelt jedes System inklusive aller Zusätze (Liedtext, Dynamik, Taktzahlen, Fingersätze) als eine große Box. Nun wird geschaut, wo die Box beginnt und endet: die Oberkante wird beim ersten Auftreten eines zum System gehörenden Zeichens gezogen; die Unterkante wird nach dem letzten nach unten ragenden Zeichen bestimmt. siehe Grafik

zu 3): between-system-spacing legt den Mindestabstand zwischen der mittleren Notenlinie der letzten Notenzeile eines Systems und der mittleren Notenline der ersten Zeile des Folgesystems fest. siehe Grafik

Grüße,
Robert


trulli

  • Member
Re: Frage zu between-system-padding und between-system-space
« Antwort #2 am: Mittwoch, 30. September 2009, 21:05 »
AHA!

Danke für die aufschlussreiche Antwort, Robert!

Das würde wohl für die meisten Fälle bedeuten, dass ein fester padding-Wert optisch besser aussieht als ein fester spacing-Wert, weil dadurch Vortragsbezeichnungen und sehr hohe/tiefe Noten mehr Platz haben.

In der Referenz habe ich noch diese Erklärungen mit den Default-Werten gefunden:
http://lilypond.org/doc/v2.11/Documentation/user/lilypond/Page-formatting#Vertical-dimensions

 Danke und Grüße von Trulli

RobUr

  • Member
Re: Frage zu between-system-padding und between-system-space
« Antwort #3 am: Mittwoch, 30. September 2009, 22:56 »
Jain ;-)

Wenn der vertikale Seitenausgleich nicht deaktiviert ist (Standardeinstellung für alle Seiten bis auf die letzte), werden die Systemzwischenräume ja auseinandergezogen. Andererseits werden Systeme auch nur bis auf den festgelegten Mindestzwischenraum zusammengeschoben. Der größere von beiden Werten gewinnt dann. Außerdem haben die Objekte außerhalb der Zeilen/Systeme auch eine vertikale Ausdehnung (Y-extent). Es ist auch optisch schöner, wenn die Dynamikangaben nicht immer nur genau über den Noten stehen, sondern etwas weiter links und näher an der Note platziert werden. Hier genügt es nicht, nur mit X- und Y-offset zu arbeiten, da die Ausdehnung beibehalten wird. Abhilfe schafft die Kombination mit X-/Y-extent und X-/Y-offset. Das ist Sisyphosarbeit, ich weiß … Aber grundsätzlich fährt man mit padding besser, das ist wohl wahr. Achtung: Noten, die weit aus der Zeile ragen sowie Vortragsbezeichnungen haben eben nicht mehr Platz dadurch, weil ja deren Ausdehnung mit berücksichtigt wird! In die „Paddingzone“ kommt nichts, gar nichts, das ist wie die Demarkationslinie zwischen Nord- und Südkorea … Du musst die Objekte schon dazu überreden, dass sie da hineinrutschen.

Es gibt viele Wege, die vertikale Verteilung zu beeinflussen. Letztlich lässt man das Auge entscheiden, ob es schön aussieht oder nicht. Bis auf wenige Einstellungen überlasse ich erstmal Lily das spacing und gehe danach ins Detail (geeignetere Zeilenumbrüche, Blätterstellen usw.).

Zum vertikalen spacing hatte ich hier schon einmal etwas geschrieben.

Viele Grüße,
Robert

trulli

  • Member
Re: Frage zu between-system-padding und between-system-space
« Antwort #4 am: Donnerstag, 1. Oktober 2009, 11:32 »
Hallo Robert,

ich habe mir die Spacing-Möglichkeiten enfach mal in mein aktuelles Stück kopiert und probiere jetzt damit herum. Ich gebe zu, dass ich von den vielen Möglichkeiten bisher höchstens die Hälfte verstehe  ::)

Aber warum hast du geschrieben, dass Bezeichnungen, die weit aus der Zeile ragen, dadurch nicht mehr Platz haben? Padding ist doch die unsichtbare Mauer um ein Objekt herum. Diese kann doch vom System darüber nicht überschritten werden, folglich ist dann zwischen den Systemen mehr Platz. Oder habe ich da was falsch verstanden?

Grüße von Trulli

RobUr

  • Member
Re: Frage zu between-system-padding und between-system-space
« Antwort #5 am: Donnerstag, 1. Oktober 2009, 14:32 »
Zitat
Das würde wohl für die meisten Fälle bedeuten, dass ein fester padding-Wert optisch besser aussieht als ein fester spacing-Wert, weil dadurch Vortragsbezeichnungen und sehr hohe/tiefe Noten mehr Platz haben.

Sie haben aber nicht mehr Platz, weil sie ja nicht in die „padding area“ hineingelassen werden! Zwischen den Systemen ist mehr Platz, das ist richtig. Padding legt quasi die Dicke der Mauer fest; die Objekte kommen lediglich bis ran, aber weder hinein noch drüber. Wenn z.B. über einem c''' (im Violinschlüssel auf der 2. Hilfslinie über der Zeile) noch ein f[orte] steht, erscheint die Zeile nach unten versetzt, weil die Oberkante vom f an die Mauer stößt und alles andere hinter sich lässt. Gleiches gilt für das obere System. Beide teilen sich ja die Mauer, die aber immer gleich dick bleibt. Eindeutiger?

Liebe Grüße,
Robert

trulli

  • Member
Re: Frage zu between-system-padding und between-system-space
« Antwort #6 am: Freitag, 2. Oktober 2009, 11:11 »
Zitat
Zwischen den Systemen ist mehr Platz, das ist richtig.

Ja, das meinte ich: den Platz zwischen den Systemen. Und dadurch bekommt (zumindest in eine Richtung) das Objekt mehr Platz...

...hmm, wo ich meinen Satz jetzt lese, wird mir unser Missverständnis klar: ich meine mit mehr Platz, dass zwischen den Systemen mehr leerer Raum ist, wodurch auch ein Randobjekt in eine Richtung mehr leeren Raum bekommt. Der leere Raum ist in dem Falle unsere System-Padding-Mauer.

Du meinst mit mehr Platz, dass das Objekt grundsätzlich mehr leeren Raum bekommt, in jede Richtung. Das kann ich natürlich nicht mit System-Padding steuern, sondern z.B. mit \tweak # padding für das entsprechende Objekt. Das ändert dann die Objekt-Padding-Mauer.

Kommen wir so auf einen Nenner?  :)

Grüße von Trulli   



RobUr

  • Member
Re: Frage zu between-system-padding und between-system-space
« Antwort #7 am: Freitag, 2. Oktober 2009, 14:11 »
Ja genau, so kriegen wir das hin: Mauer an Mauer ;)

Mit den Padding- und Y-offset-Tweaks verschiebe ich immer Objekte, die ohnehin außerhalb der Zeile notiert werden, z.B. Akzente, Fermaten usw. Bei Dynamikzeichen, die auch mal in die Zeile sollen, geht es nur mit Y-extent-Overrides iVm Y-offsets.

Wenn nur gelegentlich einzelne Systeme vertikal versetzt werden müssen (z.B. das erste oder letzte System auf einer Seite), bin ich am schnellsten mit meiner quick-and-dirty-Methode: ich weise einer Note/Pause in der ersten Systemzeile (am besten einer Pause auf der Mittellinie) leeres Markup zu und überschreibe dessen Y-extent, z.B.
\once \override TextScript #'Y-extent = #'( 0 . <positiver Wert> )
r^\markup { \null }
verschiebt das System nach unten, da mehr Ausdehnung nach oben.

Umgekehrter Fall:
\once \override TextScript #'Y-extent = #'( <negativer Wert> . 0 )
r_\markup { \null }
verschiebt das System nach oben, da mehr Ausdehnung nach unten.

Falls in der letzten Zeile LyricText vorhanden ist, weise ich einer Silbe in dieser Zeile eine andere vertikale Ausdehnung zu, da das an eine Pause gebundene Markup den Text verschieben würde:
\lyricmode {
quod __ est su -- per om -- ne no -- men,
\once \override LyricText #'Y-extent = #'( <negativer Wert> . 0 )
quod est su -- per om -- ne __ no -- men,
}

Man muss halt immer schauen, wessen Ausdehnung man ändert, und muss nicht global an den Randeinstellungen schrauben. Wie gesagt: quick'n'dirty ;)
Eine gute Hilfe dabei ist das Anzeigen der Skylines: #(ly:set-option 'debug-skylines #t)

Grüße,
Robert

trulli

  • Member
Re: Frage zu between-system-padding und between-system-space
« Antwort #8 am: Samstag, 3. Oktober 2009, 11:50 »
Sehr schöne Tipps, vielen Dank! 

Die Methode mit den leeren Markups finde ich super, das geht schnell und man kann jeden gewünschten Abstand einstellen.

Die Skyline-Ansicht ist ja interessant  :o  Da sieht man ja auch genau, ob mit padding oder extra-offset verschoben wurde...

Was bei einer dummen Frage so alles herauskommen kann  ;D  ;D

Grüße von Trulli