Autor Thema: Funktion set-paper-size  (Gelesen 2117 mal)

DieTuba

  • Member
Funktion set-paper-size
« am: Freitag, 22. Februar 2013, 21:39 »
Hallo an alle!
Ich habe eine Sammlung von Märschen, die per "#(set-dafault-paper-size "a5" 'landscape)" und "#(set-global-Staff-size xx)" so "compiliert" werden, daß sie immer auf eine A5-Seite passen. Wenn ich die Märsche jetzt in einem Buch zusammenfasse, muß ich ja die unterschiedlichen Staff-Größen in jedem \bookpart{} in einer \paper {} Anweisung passend zu Stück einstellen. Leider erzeugt die Anweisung \paper { #(set-paper-size "a5") } im bookpart eine völig anderes ergebnis, als wenn ich auf der obersten Ebene #(se-global-staff-size "a5") verwende. Außerdem ist der Zusatz 'landscape im bookpart wirkungslos. Und die automatische Anpassung per #(layout-set-staff-size xx) funktioniert im bookpart auch nicht. Hätte ich fast vergessen: Ich verwende Version 2.16.2.

Was mache ich falsch?

Ich hänge zwei Dateien an, einmal den Marsch, wie es als einzelne Datei funktioniert und einmal mit der \book {} Definition.

Be-3

  • Member
Re: Funktion set-paper-size
« Antwort #1 am: Freitag, 22. Februar 2013, 23:07 »
Leider erzeugt die Anweisung \paper { #(set-paper-size "a5") } im bookpart eine völig anderes ergebnis, als wenn ich auf der obersten Ebene #(se-global-staff-size "a5") verwende. Außerdem ist der Zusatz 'landscape im bookpart wirkungslos.

Hallo Tuba,

a) Das Papierformat muß in auf \book-Ebene (nicht im \bookpart!) definiert werden. Im Grunde würde ich es sogar mit #(set-default-paper-size ...) auf oberster Ebene setzen - was spricht dagegen? In einem Buch haben in der Regel doch alle Seiten das gleiche Format, oder?

b) Die Systemgröße individuell pro \score läßt sich (mit erheblichen Einschränkungen) im \layout-Block (nach den Noten!) einstellen.
Problem: verändert nicht den Abstand zwischen den Notenlinien und andere Abstände. Wenn Du viele, viele Einzel-Nachjustierungen anwenden willst (z. B. den Abstand zwischen den Notenlinien: StaffSymbol #'staff-space) oder den "Zeilenabstand" zwischen den Systemen, kannst Du es hinbekommen.

Andererseits halte ich es nicht für schön, wenn in einem Buch/Heft verschiedene Staff-Größen bunt gemischt werden, wenn auch der verständliche Wunsch besteht, die Noten jeweils so groß wie möglich, aber so klein wie nötig zu machen, daß der jeweilige Marsch auf eine (Doppel-)Seite paßt...

Viele Grüße
Torsten

DieTuba

  • Member
Re: Funktion set-paper-size
« Antwort #2 am: Freitag, 22. Februar 2013, 23:44 »
Hallo, Be-3,
die Seitengröße kann ich in der obersten Ebene einstellen, weil das ganze Buch im A5-Format ausgegeben werden soll. Die Staff-größen sind nicht soo bunt gemischt, sie liegen alle zwischen 13 und 15. Die Optikmist in diesem Fall auch nicht das entscheidende, weil es sich um ein Marschheft handelt und daher jedes Stück auf eine Seite passsen muß, was aber auch funktioniert, wenn die jeweils einzeln erzeugt werden.
Ich möchte nur vermeiden, bei einer Zusammenfasssung der Stücke in jedem Score-Part alle Abstände einzeln einzustellen. Vor allem, weil ich gar nicht weiß, an welchen Stellschrauben ich überhaupt drehen muß, damit die Stücke wieder auf eine Seite passen.

Be-3

  • Member
Re: Funktion set-paper-size
« Antwort #3 am: Samstag, 23. Februar 2013, 00:34 »
Hallo Tuba,

wie gesagt funktioniert #(layout-set-staff-size xx) auf \layout-Ebene nicht vollständig, das sieht man an diversen Abständen. Das Problem ist zwar bekannt und wird irgendwann wohl auch gelöst, aber momentan muß mann da noch viel von Hand basteln.

Ich würde Dir empfehlen, auf oberster Ebene mit #(set-global-staff-size 14) ein "mittleres" Format einzustellen, dann stimmen die Größenverhälnisse wenigstens näherungsweise (zumindest viel besser als beim Sprung von Default-20 auf 15...
Eventuell Makros für die verschiedenen Größen 13, 14 und 15 mit allen erforderlichen Einstellungen schreiben.

Auf jeden Fall empfiehlt es sich, im \paper-Block auf oberster Ebene die allgemeingültigen Dinge zu hinterlegen - dann müssen sie nicht jedes Mal lokal eingegeben werden.

Vor allem: Wenn Du page-count = #1 setzt, versucht Lilypond mit Gewalt, jedes Stück auf eine Seite zu bringen. Zusammen mit ragged-last-bottom = ##f ist dann die Seite auf jeden Fall voll ausgefüllt - mal etwas lichter, mal etwas gedrängter.
Da hast Du Dir viel Gebastel gespart; jeder Marsch nimmt genau eine Seite ein (in Einzelfällen kannst Du das ja lokal ändern, wenn nötig) und so könnte man sogar auf die (minimale) Änderung der Systemgrößen verzichten

\version "2.16.2"
\language "deutsch"

#(set-default-paper-size "a5" 'landscape)
#(set-global-staff-size 15)

\paper {
  page-count = #1
  ragged-last-bottom = ##f
  indent = 0
}

\header  {
  piece  = "2. Bass"
  tagline = ##f
}

TubaMarschEins = \relative c {
  \transposition c

  \clef bass
  \key b \major
  \time 2/2
  \repeat unfold 100 { b4 r f r } 
  \bar "|."
}

TubaMarschZwei = \relative c {
  \transposition c

  \clef bass
  \key b \major
  \time 2/2
  \repeat unfold 75 { b4 r f r } 
  \bar "|."
}

TubaMarschDrei = \relative c {
  \transposition c

  \clef bass
  \key b \major
  \time 2/2
  \repeat unfold 50 { b4 r f r } 
  \bar "|."
}

\book {
 
  \bookpart {
    \header {
      title = "100 Takte"
      subtitle = "Marsch"
      composer = "Long John Silver"
    }
    \score {
      \new Staff \TubaMarschEins
      \layout {}
    }
  }

  \bookpart {
    \header {
      title = "75 Takte"
      subtitle = "Marsch"
      composer = "Percy Middle"
    }
    \score {
      \new Staff \TubaMarschZwei
      \layout {}
    }
  }
 
  \bookpart {
    \header {
      title = "50 Takte"
      subtitle = "Marsch"
      composer = "Bermuda Short"
    }
    \score {
      \new Staff \TubaMarschDrei
      \layout {}
    }
  }
 
}

Viele Grüße
Torsten
« Letzte Änderung: Samstag, 23. Februar 2013, 00:37 von Be-3 »

DieTuba

  • Member
Re: Funktion set-paper-size
« Antwort #4 am: Samstag, 23. Februar 2013, 01:26 »
Hallo, Be-3,
herzlichen dank, so funktionierts ohne viel "Gebastel"!

Viele Grüße

Wolfgang