Autor Thema: Explizite Positionierung von Systemen  (Gelesen 1849 mal)

chf

  • Member
Explizite Positionierung von Systemen
« am: Sonntag, 2. September 2012, 15:46 »
Liebe Freunde,
"juppes" kommt mit dieser Sache offensichtlich zurecht -
                                          http://lilypond.org/doc/v2.14/Documentation/notation/explicit-staff-and-system-positioning.de.html
- ich auch ein bisschen, allerdings nur mit einzelnen Systemgruppen.
Nun möchte ich das gerne auf eine ganze Seite (DIN A4) anwenden, und das will mir nicht gelingen.
Ich brauche  folgendes Bild mit vernünftigen Abständen:
\score {
  <<
        \new Staff \with { instrumentName = "Fagott   " fontSize = #-2
        \override StaffSymbol #'staff-space = #(magstep -2)
        \override StaffSymbol #'thickness = #(magstep -2)
    }
     
    << \global \Fagott >>

    \new PianoStaff \with { instrumentName = "Klavier" }       
       
       <<
                        \new Staff = "1" <<\global \upper >>
                        \dynamics
                        \new Staff = "2" <<\global \lower >>
                >>
        >>
   }
Ich stoße wiedermal an Verständnisgrenzen.
_____
Inzwischen habe ich weiter probiert. Ich wünschte mir das Bild von Seite 2 mit 4 Akkoladen auf allen Seiten (18 werden es). Die erste Zeile - warum hat sie nicht die gleichen Proportionen wie die anderen?

Gruß
chf

« Letzte Änderung: Montag, 3. September 2012, 13:01 von chf »

harm6

  • Member
Re: Explizite Positionierung von Systemen
« Antwort #1 am: Dienstag, 4. September 2012, 22:25 »
Hallo Christa,

ich habe etwas gezögert Dir zu antworten, denn ein manuelles layout mittels
\overrideProperty #"Score.NonMusicalPaperColumn"
ist die Hölle.
Ich habe das ein einziges mal gemacht und mir dann geschworen: nie wieder!!
Wenn es irgendwie geht nutze die anderen tools zum vertical-spacing.

Nichtsdestotrotz zu Deinem Code:
Es waren einige Fehler drin. Bitte beachte die log-warnungen!!
z.B:
in \paper war `system-count =` angegeben aber ohne Wert.
Ebenso:
global = {} { \overrideProperty #"Score.NonMusicalPaperColumn" ... } Diese Einklammerung funktioniert natürlich nicht. LilPond setzt dann einen völlig neuen, weitgehend unsichtbaren Score, denn es sind ja nur spacer enthalten. Einzig die Taktzahlen erscheinen.

Zu Deiner Frage:
Zitat
Die erste Zeile - warum hat sie nicht die gleichen Proportionen wie die anderen?

Du hast in \score vier contexts angegeben: für das Solo-Instrument, Klavier oben, Klavier unten und Dynamics. Im \layout steht u.a. \RemoveEmptyStaffContext. dynamics ist leer.

\RemoveEmptyStaffContext entfernt aber nicht leere Zeilen aus dem ersten System einer Partitur. D.h., Du hast im ersten System vier Zeilen. In allen anderen Systemen drei.
\override VerticalAxisGroup #'remove-first = ##f scheint hier nicht zu wirken.

Ich habe dynamics zur Veranschaulichung mal mit Inhalt gefüllt, sowie einiges hier und da verändert, und erhalte dann:

\version "2.14.2"

\paper {
  %#(set! paper-alist (cons '("mein Format" . (cons (* 15 in) (* 3 in))) paper-alist))   ??? Hilfe!!!
#(layout-set-staff-size 18)
  indent = #16
  page-count = 2
%  system-count =
  top-margin = #14
        inner-margin = #14
        outer-margin = #18
        two-sided = ##t
        bottom-margin = #13
        ragged-last-bottom = ##f
        ragged-right = ##f       
  tagline = ##f
  print-page-number = ##f
  first-page-number = #3
  print-first-page-number = ##t
  oddHeaderMarkup = \markup \fill-line {\null \on-the-fly #not-first-page \fontsize #1.5 \fromproperty #'page:page-number-string % 1
                       }
  evenHeaderMarkup = \markup \fill-line { \fontsize #1.5 \fromproperty #'page:page-number-string \null }
}

\header {
title = \markup \fontsize #1.5 "Capriccio (2006)"
subtitle = " "
copyright = \markup \column {\fill-line {" "}
               \fill-line {" "}
               \fill-line {" "}
               \fill-line \fontsize #-1 {"Copyright © 2007 by EBERT MUSIK VERLAG Leipzig  * EMV 07006 *"   \null \null}
               \fill-line \fontsize #-1 {"ISMN: M-2052-1021-2" \null \null}}
}
\markup \column {
     \fill-line {" "}
     \fill-line {" "}
     \fill-line \bold \fontsize #3.5 {\null "1. Einzeln und gemeinsam " \null }
     \fill-line {" "}
     \fill-line {" "}
     \fill-line \fontsize #0 {\null \null "Erhard Fietz, 2006"}
     
}   

global = {     
          \overrideProperty #"Score.NonMusicalPaperColumn"
            #'line-break-system-details #'((Y-offset . 25)
                                   (alignment-distances . (10 5 8)))       
          s1*4 \break
          \overrideProperty #"Score.NonMusicalPaperColumn"
            #'line-break-system-details #'((Y-offset . 57)
                                   (alignment-distances . (10 5 8)))       
          s1*4 \break
          \overrideProperty #"Score.NonMusicalPaperColumn"
            #'line-break-system-details #'((Y-offset . 90)
                                    (alignment-distances . (10 5 8)))       
          s1*4 \break
          \overrideProperty #"Score.NonMusicalPaperColumn"
            #'line-break-system-details #'((Y-offset . 125)
                                      (alignment-distances . (10 5 8)))     
          s1*4 \pageBreak
          s1*16\bar "|."
        }
       

Fag = \relative c'' {
\repeat unfold 16 { d4 d d d }
\repeat unfold 16 { d4 d d d }       
}

upper = \relative c' {
  \repeat unfold 16 { e4 e e e }
  \repeat unfold 16 { e4 e e e }
}

lower = \relative c' {
\repeat unfold 16 { e4 e e e }
\repeat unfold 16 { e4 e e e }
}

dynamics = \new Dynamics { \repeat unfold  128 s4\p }


\layout {
 \context {
  \type "Engraver_group"
  \name Dynamics
  \alias Voice % So that \cresc works, for example.
  \consists "Output_property_engraver"

  %\override VerticalAxisGroup #'minimum-Y-extent = #'(-1 . 1)
  %\override DynamicLineSpanner #'Y-offset = #0

  %\override VerticalAxisGroup #'nonstaff-relatedstaff-spacing = #'((basic-distance . 5) (stretchability . 10) (padding . 0.2))
 
  \consists  "Script_engraver"
  \consists  "Dynamic_engraver"
  \consists  "Text_engraver"

%  \override TextScript #'font-size = #2
%  \override TextScript #'font-shape = #'italic
%  \consists "Skip_event_swallow_translator"

  \consists "Axis_group_engraver"
 
 }
 \context { \PianoStaff \accepts Dynamics }

\context {
          \Voice
            \consists "Horizontal_bracket_engraver"
   
  }
}   

\score {
 
  <<
        \new Staff \with { instrumentName = "Fagott   " fontSize = #-2
        \override StaffSymbol #'staff-space = #(magstep -2)
        \override StaffSymbol #'thickness = #(magstep -2)
      }
    << \global \Fag >>

       \new PianoStaff \with { instrumentName = "Klavier"       
         
         
       }
       <<
                        \new Staff = "upper" <<\global \upper >>
                        \dynamics
                        \new Staff = "lower" <<\global \lower >>
                >>
        >>

}
\layout {
   
    \context {
      \RemoveEmptyStaffContext
      %\overrideProperty #"Score.NonMusicalPaperColumn"
      %#'line-break-system-details #'((Y-offset . 60)
      % (alignment-distances . (10 10)))
      \override VerticalAxisGroup #'remove-first = ##t
      \consists "Horizontal_bracket_engraver"
    }
  }
\layout {
  \context {
      \PianoStaff
      \remove "Keep_alive_together_engraver"
  }





Wenn Du die dummy-music jetzt aber wieder durch die richtige ersetzt mag es sein, daß Du alle Werte für
\overrideProperty #"Score.NonMusicalPaperColumn" ...
wieder anpassen mußt.

Insoweit nochmal: BENUTZE
\overrideProperty #"Score.NonMusicalPaperColumn" ...
NUR, WENN ES ÜBERHAUPT NICHT ANDERS GEHT.


Gruß,
  Harm

chf

  • Member
Re: Explizite Positionierung von Systemen
« Antwort #2 am: Mittwoch, 5. September 2012, 16:01 »
Hallo Harm,

danke für deine Mühe und Warnung!
Ich glaube auch, dass ich mir was anderes überlegen muss. Leider habe ich immer wieder Probleme mit den Abständen, und bei allem Nachlesen und Probieren geht mir nicht wirklich ein Licht auf. Es erscheint alles mehr oder weniger zufällig. Ist es von Nachteil, die Klavierstimme mit zentrierter Dynamik zu schreiben?
Ich wäre glücklich über eine Patentlösung. Tut mir leid, dass das Brett vorm Kopf so dick ist. Ich probiere und lese halt weiter...

Gruß
Christa

Inzwischen kann ich mir die Frage bezüglich der zentrierten Dynamik selber beantworten:
Selbstverständlich braucht die Dynamik-Zeile Platz.
Ich bin also der Patentlösung ein wesentliches Stück näher gekommen.
chf
« Letzte Änderung: Donnerstag, 20. September 2012, 22:37 von chf »