Deutschsprachiges LilyPond Forum

Allgemeine Fragen und Probleme => Fragen und Probleme aller Art => Thema gestartet von: C_E am Dienstag, 23. März 2021, 22:05

Titel: Erklärung Clef.x-extent
Beitrag von: C_E am Dienstag, 23. März 2021, 22:05
Ich habe eine Frage zur Internals Reference:

Hier (http://lilypond.org/doc/v2.22/Documentation/internals/clef (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
}
Titel: Antw:Erklärung Clef.x-extent
Beitrag von: Arnold am Mittwoch, 24. März 2021, 08:36
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.
Titel: Antw:Erklärung Clef.x-extent
Beitrag von: harm6 am Mittwoch, 24. März 2021, 10:26
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
Titel: Antw:Erklärung Clef.x-extent
Beitrag von: C_E am Mittwoch, 24. März 2021, 17:04
Wunderbar, vielen Dank an euch für die Ausführungen.
Gruß