Deutschsprachiges LilyPond-Forum

Allgemeine Fragen und Probleme => Fragen und Probleme aller Art => Thema gestartet von: hotte am Dienstag, 20. April 2021, 21:38

Titel: Paper-Variable
Beitrag von: hotte am Dienstag, 20. April 2021, 21:38
Liebe Leute,

kann man für eine \book-\bookpart-Umgebung mit Scheme eine Paper-Variable definieren um auf den verschiedenen Buchseiten Scores mit unterschiedlichem Abstand schreiben zu können? Wenn man ein etwas dickeres Buch schreibt wird das sonst leicht unübersichtlich.

Also z.B. statt ...

\version "2.22.0"
\language "deutsch"

\book {
  \bookpart {
    \paper { system-system-spacing.basic-distance = #15 }
    \score { ...  }
  }
  \bookpart {
    \paper { system-system-spacing.basic-distance = #18 }
    \score { ... }
  }
}


... vielleicht ...

\version "2.22.0"
\language "deutsch"

\book {
  \bookpart {
    \myDist #15
    \score { ...  }
  }
  \bookpart {
    \myDist #18
    \score { ... }
  }
}


... oder so ähnlich.

Ich bin einfach noch nicht so firm mit dieser Sprache.

Danke und Grüße
hotte
Titel: Antw:Paper-Variable
Beitrag von: harm6 am Mittwoch, 21. April 2021, 11:36
Du kannst folgendes machen:

\version "2.22.0"

tst =
#(define-scheme-function (val)(number?)
#{
  \paper { system-system-spacing.basic-distance = #val }
#})

\book {
  \bookpart {
    \tst #30
    \score { { R1 \break R1 } }
  }
  \bookpart {
    \tst #60
    \score { { R1 \break R1 } }
  }
}

Allerdings setzt die scheme-function einen einzigen Wert für eine einzige Variable.
\paper kann natürlich viel mehr enthalten, dann mußt Du zusätzliche \paper benutzen oder entsprechende Funktionen.
Mit anderen Worten, auf lange Sicht bezweifel ich die Sinnhaftigkeit dieser Vorgehensweise.

Gruß,
  Harm
Titel: Antw:Paper-Variable
Beitrag von: hotte am Mittwoch, 21. April 2021, 23:35
Vielen Dank Harm,

ich habe natürlich einen ganz normalen globalen Paper-Block mit allen Einstellungen die für alle Seiten gleich bleiben.
Nur diese Abstands-Variable brauche ich auf verschiedene Arten. Deshalb ist das für mich prima so.

Grüße
hotte