4.4.2 Posicionament explícit dels pentagrames i els sistemes

Una forma d’entendre els mecanismes de l’espaiat vertical flexible que s’han explicat més a dalt es com una col·lecció d’ajustaments que controlen la quantitat de farciment vertical entre els pentagrames i els sistemes.

És possible enfrontar-se a l’espaiat vertical d’una forma diferent utilitzant NonMusicalPaperColumn.line-break-system-details. Mentre que els mecanismes de l’espaiat vertical flexible especifiquen farciment vertical, NonMusicalPaperColumn.line-break-system-details pot especificar posicions verticals exactes sobre la pàgina.

NonMusicalPaperColumn.line-break-system-details accepta una llista associativa de quatre ajustament diferents:

Les sobreescriptures dels objectes gràfics, entre elles las de NonMusicalPaperColumn que apareixen més avall, poden ocórrer en tres llocs diferents dins d’un fitxer d’entrada:

Quan sobreescrivim NonMusicalPaperColumn, usem l’ordre \override usual en els blocs \context i en el bloc \with. Per una altra part, quan sobreescrivim NonMusicalPaperColumn en mig de les notes, hem d’usar l’ordre especial \overrideProperty. A continuació es poden trobar algunes sobreescriptures de NonMusicalPaperColumn d’exemple amb l’ordre especial especial \overrideProperty:

\overrideProperty NonMusicalPaperColumn.line-break-system-details
  #'((X-offset . 20))

\overrideProperty NonMusicalPaperColumn.line-break-system-details
  #'((Y-offset . 40))

\overrideProperty NonMusicalPaperColumn.line-break-system-details
  #'((X-offset . 20)
     (Y-offset . 40))

\overrideProperty NonMusicalPaperColumn.line-break-system-details
  #'((alignment-distances . (15)))

\overrideProperty NonMusicalPaperColumn.line-break-system-details
  #'((X-offset . 20)
     (Y-offset . 40)
     (alignment-distances . (15)))

Per entendre com funciona cada un dels diferents ajustament, comencem observant un exemple que no inclou absolutament cap sobreescriptura.

\header { tagline = ##f }
\paper { left-margin = 0\mm }
\book {
  \score {
    <<
      \new Staff <<
        \new Voice {
          s1*5 \break
          s1*5 \break
          s1*5 \break
        }
        \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
      >>
      \new Staff {
        \repeat unfold 15 { d'4 d' d' d' }
      }
    >>
  }
}

[image of music]

Aquesta partitura manté aïllada tant la informació dels salts de línia com els de pàgina d’una veu dedicada a això. Aquesta tècnica de crear una veu de salts ajuda a mantenir separada de l’escriptura de notes conforme l’exemple es torna més complicat. Consulteu Salts.

Utilitzant ordres \break explícites, la música es divideix en línies de cinc compassos cada una. L’espaiat vertical prové dels ajustos predeterminats del LilyPond però el punt d’origen vertical de cada sistema es fixa explícitament usant el parell Y-offset a l’atribut line-break-system-details del grob (objecte gràfic) NonMusicalPaperColumn:

\header { tagline = ##f }
\paper { left-margin = 0\mm }
\book {
  \score {
    <<
      \new Staff <<
        \new Voice {
          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
            #'((Y-offset . 0))
          s1*5 \break
          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
            #'((Y-offset . 40))
          s1*5 \break
          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
            #'((Y-offset . 60))
          s1*5 \break
        }
        \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
      >>
      \new Staff {
        \repeat unfold 15 { d'4 d' d' d' }
      }
    >>
  }
}

[image of music]

Observeu que line-break-system-details pren una llista associativa d’una quantitat de valors potencialment elevada, però aquí sols establim un valor. Observeu també que aquí la propietat Y-offset determina la posició vertical exacta sobre la pàgina en la qual es traçarà cadascú dels nous sistemes.

En contrast amb la localització absoluta que es pot fer usant Y-offset y X-offset, es possible una localització relativa amb la propietat extra-offset de line-break-system-details. La col·locació és relativa a la disposició predeterminada o al posicionament absolut creat mitjançant l’establiment dels valors de X-offset i de Y-offset. La propietat extra-offset accepta una parella de nombres (un pair) que consisteix en desplaçaments al llarg dels eixos X i Y.

\header { tagline = ##f }
\paper { left-margin = 0\mm }
\book {
  \score {
    <<
      \new Staff <<
        \new Voice {
          s1*5 \break
          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
            #'((extra-offset . (0 . 10)))
          s1*5 \break
          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
            #'((extra-offset . (0 . 10)))
          s1*5 \break
        }
        \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
      >>
      \new Staff {
        \repeat unfold 15 { d'4 d' d' d' }
      }
    >>
  }
}

[image of music]

Ara que hem establert explícitament el punt d’origen vertical de cada sistema, podem també establir manualment les distàncies verticals entre els pentagrames dins de cada sistema. Ho fem usant la subpropietat alignment-distances de line-break-system-details.

\header { tagline = ##f }
\paper { left-margin = 0\mm }
\book {
  \score {
    <<
      \new Staff <<
        \new Voice {
          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
            #'((Y-offset . 20)
               (alignment-distances . (10)))
          s1*5 \break
          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
            #'((Y-offset . 60)
               (alignment-distances . (15)))
          s1*5 \break
          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
          #'((Y-offset . 85)
             (alignment-distances . (20)))
          s1*5 \break
        }
        \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
      >>
      \new Staff {
        \repeat unfold 15 { d'4 d' d' d' }
      }
    >>
  }
}

[image of music]

Observeu que aquí assignem dos valors diferents a l’atribut line-break-system-details del grob NonMusicalPaperColumn. Tot i que l’atribut alist de line-break-system-details accepta molts paràmetres d’espaiat addicionals (entre ells, per exemple, un parell X-offset corresponent), sols hem d’establir el desplaçament Y-offset y els parells alignment-distances per controlar el punt d’origen vertical de cada sistema i pentagrama. Finalment, observeu que alignment-distances especifica el posicionament vertical dels pentagrames però no dels grups de pentagrames.

\header { tagline = ##f }
\paper { left-margin = 0\mm }
\book {
  \score {
    <<
      \new Staff <<
        \new Voice {
          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
            #'((Y-offset . 0)
               (alignment-distances . (30 10)))
          s1*5 \break
          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
            #'((Y-offset . 60)
               (alignment-distances . (10 10)))
          s1*5 \break
          \overrideProperty Score.NonMusicalPaperColumn.line-break-system-details
            #'((Y-offset . 100)
               (alignment-distances . (10 30)))
          s1*5 \break
        }
        \new Voice { \repeat unfold 15 { c'4 c' c' c' } }
      >>
      \new StaffGroup <<
        \new Staff { \repeat unfold 15 { d'4 d' d' d' } }
        \new Staff { \repeat unfold 15 { e'4 e' e' e' } }
      >>
    >>
  }
}

[image of music]

Alguns punts a tenir en compte:

Vegeu també

Fragments de codi: Spacing.


Referència de la notació del GNU LilyPond v2.25.21 (branca de desenvolupament).