Referència de la notació del GNU LilyPond: 4.4.2 Posicionament explícit dels pentagrames i els sistemes

### 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:

- `X-offset` (desplaçament en X)
- `Y-offset` (desplaçament en Y)
- `extra-offset` (desplaçament addicional)
- `alignment-distances` (distancies d’alineació)

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:

- directament en mig de las notes
- en un bloc `\context`
- en el bloc `\with`

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' }
>           }
>         >>
>       }
>     }

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' }
>           }
>         >>
>       }
>     }

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' }
>           }
>         >>
>       }
>     }

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' }
>           }
>         >>
>       }
>     }

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' } }
>           >>
>         >>
>       }
>     }

Alguns punts a tenir en compte:

- En usar `alignment-distances`, la lletra i d’altres línies que no són pautes no compten com un pentagrama.
- Les unitats dels nombres que es passen a `X-offset`, `Y-offset`, `extra-offset` i `alignment-distances` s’interpreten com múltiples de la distància entre línies de pentagrama adjacents. Els valors positius mouen als pentagrames i a la lletra cap amunt, els valors negatius mouen els pentagrames i la lletra cap avall.
- A causa que els ajustaments `NonMusicalPaperColumn.line-break-system-details` donats aquí permeten el posicionament de pentagrames i sistemes en qualsevol lloc de la pàgina, és possible violar els marges o els límits del paper, o fins i tot imprimir pentagrames o sistemes uns a sobre dels altres. Això s’evitaria passant als diferents ajustaments uns valors raonables.

#### Vegeu també

Fragments de codi: Spacing.

#### LilyPond — Referència de la notació v2.22.2 (branca estable).