Erklärung Clef.x-extent

Begonnen von C_E, Dienstag, 23. März 2021, 22:05

« vorheriges - nächstes »

C_E

Ich habe eine Frage zur Internals Reference:

Hier (http://lilypond.org/doc/v2.22/Documentation/internals/clef) gibt es einen Eintrag zum Y-extent, aber keinen für x.
Weil mir das hier im Forum vorgeschlagen wurde, habe ich ein bisschen damit rumprobiert, und herausgefunden, dass der erste Wert den Schlüssel mit allem rechts davon verschiebt, der zweite Wert nur alles rechts davon. Ist das so richtig beschrieben, oder ist das was ich gefunden habe eigentlich nur ein Randeffekt von irgendeiner tiefergreifenden Veränderung?

Hier mal ein Minimalbeispiel zum rumprobieren:
\version "2.20.0"
\language "deutsch"

\relative c' {
  \cadenzaOn

  \clef "bass"
  % Kadenz:
  \cadenzaOn
    g8 ([ h d cis ) ] \bar ""
    \once \override Staff.Clef.extra-offset = #'(-3 . 0)
    \once \override Staff.Clef.X-extent = #'(-3 . 0.5)
    \clef "violin" cis4  \bar ""
    \cadenzaOff
}

Arnold

Ja, C_E,

mit anderen Worten ausgedrückt:
X-extent und Y-extent beschreiben die sogenannte Boundig-Box, also das »umhüllende Rechteck« - bei Markups kann man diese auch mittels \with-dimensions setzen.
Manuell kann man diese »Grenzen« sowohl größer als auch kleiner als die eigentlichen Geometrieausdehnung setzen.
Viele Platzierungsalgorithmen benutzen genau dieses umhüllende Rechteck um den Platzbedarf der Einzelelemente zu bestimmen und so Kollisionen zu vermeiden.
Andere Platzierungsalgorithmen in Lilypond benutzen »horizontale und vertikale Skylines«, z. Bsp. beim Notenzeilenabstand.

Arnold.

harm6

Hallo,

Arnold hat ja schon über X-extent geschrieben.
Ich möchte noch etwas zur IR anfügen.

Wenn Du bei einem grob, z.B. Clef, nachschaust, dann siehst Du ein Reihe von properties mit kurzer Erklärung und dem default.
Es werden aber nur die properties aufgeführt, die auch tatsächlich eine default-Setzung haben (extrahiert aus define-grobs.scm).
(Es gibt auch Setzungen, die in .cc-files als fall-back auftauchen oder durch den entsprechenden engraver oder die stencil-procedure o.ä. erst berechnet werden.)

Aber es gibt diverse properties die zusätzlich gesetzt werden können und auch den output verändern (zumindest solange irgendwo dieses property gelesen und bearbeitet wird).
Ganz banal z.B. das color-property, aber auch extra-offset.
Diese properties sind irgendwo in den unterstützten interfaces zu finden.
color, extra-offset und X-extent im höchst allgemeinen grob-interface.

Gruß,
  Harm

C_E

Wunderbar, vielen Dank an euch für die Ausführungen.
Gruß