Propietats d’espaiat dins dels sistemes

Els mecanismes d’espaiat vertical dins del sistema es controlen amb dos conjunts de propietats de grob. El primer conjunt està associat amb el grob VerticalAxisGroup, que es crea per part de totes les pautes i línies que no són pautes. El segon conjunt està associat amb el grob StaffGrouper, que pot crear-se per part dels grups de pentagrames, però sol si se’l crida explícitament. Aquestes propietats es descriuen individualment al final de la secció actual.

El noms d’aquestes propietats (excepte per a staff-affinity) segueixen el format element1-element2-spacing, on element1 i element2 són els elements que s’espaiaran. Observeu que element2 no està necessàriamen per sota de element1; por exemple, nonstaff-relatedstaff-spacing mesura cap a munt a partir de la línia de tipus no-pauta si staff-affinity és UP.

Cada distància es mesura entre els punts de referència dels dos elements. El punto de referència per a un pentagrama i un altre tipus de pauta és el centre vertical del seu StaffSymbol (és a dir, la línia central si line-count és un nombre imparell; l’espai central si line-count és parell). Els punts de referència per a les línies individuals que no són pautes apareixen a la taula següent:

Línia que no és una pautaPunt de referència
ChordNameslínia de base
NoteNamesliniaa de base
Lyricslínia de base
Dynamicsla meitat de l’alçada de la ‘m’
FiguredBasspunt més alt
FretBoardslínia superior

A la imatge següent, les línies horitzontals indiquen les posicions d’aquests punts de referència:

[image of music]

Cada una de les propietats de grob de l’espaiat vertical (excepte staff-affinity) usa la mateixa estructura de llita-A que les variables d’espaiat del bloc \paper que s’han estudiat a Variables flexibles d’espaiat vertical de \paper. A Modificació de les llistes-A s’estudien mètodes específics per a la modificació de les llistes-A. Les propietats dels grobs s’han d’ajustar amb un \override dins d’un bloc \score o \layout, y no dins d’un bloc \paper.

L’exemple que segueix mostra les dues maneres de modificar aquestes llistes-A. La primera declaració actualitza un parell clau-valor de forma individual, i la segona redefineix la propietat completament:

\new Staff \with {
  \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
} { … }

\new Staff \with {
  \override VerticalAxisGroup.default-staff-staff-spacing =
    #'((basic-distance . 10)
       (minimum-distance . 9)
       (padding . 1)
       (stretchability . 10))
} { … }

Per modificar globalment qualssevol dels ajustos d’espaiat, poseu-los dins del bloc \layout:

\layout {
  \context {
    \Staff
    \override VerticalAxisGroup.default-staff-staff-spacing.basic-distance = #10
  }
}

Els ajustos estàndard per a les propietats de grob de l’espaiat vertical s’indiquen a VerticalAxisGroup i a StaffGrouper. Les sobreescriptures predeterminades per als tipus específics de línies que no són pautes estan indicades a les descripcions de context corresponents a Contexts.

Propietats del grob VerticalAxisGroup

Les propietats de VerticalAxisGroup se solen ajustar amb una ordre \override al nivell de Staff (o equivalent).

staff-staff-spacing

S’utilitza per determinar la distància entre la pauta actual i la pauta que està just per sota d’ella dins del mateix sistema, fins i tot si hi ha més línies que no són pautes (com ara Lyrics) entre les dues pautes. No s’aplica a la pauta inferior d’un sistema.

Inicialment, el valor de l’espaiat staff-staff-spacing d’un grup VerticalAxisGroup és una funció de l’Scheme que aplica les propietats del StaffGrouper si la pauta forma part d’un grup, o el default-staff-staff-spacing de la pauta en cas contrari. Això fa possible que les pautes estiguin espaiades de forma diferent quan estan agrupades. Per aconseguir un espaiat regular sense importar l’agrupament, aquesta funció es pot substituir per una llista-A d’espaiat flexible, utilitzant la forma de sobreescriptura de redefinició completa que s’ha mostrat abans.

default-staff-staff-spacing

Una llista-A d’espaiat fleixble que defineix l’espai staff-staff-spacing que s’usarà per a les pautes sense agrupar, a no ser que s’hagi sobreescrit explícitament staff-staff-spacing amb una ordre \override.

staff-affinity

Direcció de la pauta a utilitzar per a l’espaiat de la línia actual que no és pauta. Es pot escollir entre UP (amunt), DOWN (avall) i CENTER (centre). Si és CENTER, la línia del tipo no-pauta es col·loca equidistant entre les dues pautes contigües a ambdós costat, a no ser que l’impedeixin col·lisions o altres restriccions d’espaiat. Les línies del tipus no-pauta adjacents han de portar valors de staff-affinity no creixents des de la part superior fins la inferior, per exemple una línia del tipus no-pauta establerta a UP no hauria de seguir immediatament a una altra que estigui establerta a DOWN. Les línies del tipus no-pauta a la part superior d’un sistema han d’usar DOWN; les de la part inferior han d’usar UP. L’ajustament de staff-affinity per a una pauta fa que se la tracti com una línia que no és una pauta. L’establiment de staff-affinity a #f per a una línia que no és una pauta fa que es tracti com una pauta. L’establiment de staff-affinity a UP, CENTER, o DOWN fa que el pentagrama resulti espaiat com si fos una línia que no és una pauta.

nonstaff-relatedstaff-spacing

Distància entre la línia del tipus no-pauta actual i la pauta més pròxima en la direcció de staff-affinity, si no hi ha cap línia que no sigui una pauta entre les dues, i staff-affinity és UP o DOWN. Si staff-affinity és CENTER, aleshores s’usa nonstaff-relatedstaff-spacing per a les pautes més pròximes als dos costats, fins i tot que apareguin altres línies del tipus no-pauta entre la pauta actual i una de les altres. Això significa que la col·locació d’una línia que no és una pauta depèn tant de les pautes que la rodegen com de les línies que no són pautes i que la rodegen. L’establiment el paràmetre d’ampliat stretchability d’un d’aquests tipus d’espaiat a un valor més petit provoca que aquest espaiat domini. L’establiment de stretchability a un valor més gran fa que aquest espaiat tingui un efecte menor.

nonstaff-nonstaff-spacing

Distància entre la línia actual del tipus no-pauta i la següent línia del tipus no-pauta en la direcció de staff-affinity, si les dues estan al mateix cantó de la pauta relacionada, i staff-affinity és UP o DOWN.

nonstaff-unrelatedstaff-spacing

Distància entre la línia actual del tipus no-pauta i la pauta en la direcció oposada de staff-affinity, si no hi ha cap altra línia del tipus no-pauta entre les dues, i staff-affinity està establert a UP o DOWN. Es pot usar, per exemple, per requerir de farciment mínim entre una línia de Lyrics i la pauta a la que no pertany.

Propietats del grob StaffGrouper

Les propietats de StaffGrouper se solen ajustar amb una ordre \override al nivell de StaffGroup (o equivalent).

staff-staff-spacing

Distància entre pautes consecutives dins del grup de pautes actual. La propietat staff-staff-spacing del grob VerticalAxisGroup d’una pauta individual es pot sobreescriure amb diferents ajustaments d’espaiat per a aquesta pauta.

staffgroup-staff-spacing

Distància entre l’última pauta del grup en curs i la pauta que està just per sota d’ella dins del mateix sistema, fins i tot si existeixen una o més línies que no són pautes (tals com Lyrics) entre les dues pautes. No s’aplica al pentagrama o pauta inferior d’un sistema. La propietat staff-staff-spacing del grob VerticalAxisGroup d’una pauta individual es pot sobreescriure amb diferents ajustament d’espaiat per a aquesta pauta.

Vegeu també

Referencia de la notació: Variables flexibles d’espaiat vertical de \paper, Modificació de les llistes-A.

Fitxers d’inici: ly/engraver-init.ly, scm/define-grobs.scm.

Referència de funcionament intern: Contexts, VerticalAxisGroup, StaffGrouper.


Referència de la notació del GNU LilyPond v2.25.22 (development-branch).