| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Vertical spacing
L’espaiat vertical es controla amb tres factors: la quantitat d’espai disponible (és a dir, la mida del paper i els marges), la separació entre els sistemes, i la separació entre els pentagrames dins d’un sistema.
| 4.4.1 Espaiat vertical flexible dins dels sistemes | ||
| 4.4.2 Posicionament explícit dels pentagrames i els sistemes | ||
| 4.4.3 Evitar les col·lisions verticals |
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Flexible vertical spacing within systems
Tres mecanismes diferents controlen l’espaiat vertical flexible dins dels sistemes, un per cada una de les categories següents:
ChoirStaff, etc.), k
Lyrics,
ChordNames, etc.).
L’alçada de cada sistema es determina en dues fases. Primer, tots els pentagrames es disposen segons la quantitat d’espai buit disponible. Després, les línies que no són pautes es distribueixen entre les pautes.
Observeu que els mecanismes d’espaiat estudiats en aquesta secció
sols controlen l’espaiat vertical de les pautes i les línies que
no són pautes dins dels sistemes individuals. L’espaiat vertical
entre diferents sistemes, partitures, marcatges i marges es
controla mitjançant variables de \paper que s’estudien a
Variables flexibles d’espaiat vertical de \paper.
| Propietats d’espaiat dins dels sistemes | ||
| Espaiat de pautes no agrupades | ||
| Espaiat de pautes agrupades | ||
| Espaiat de les línies que no són pautes |
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Within-system spacing properties
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 pauta | Punt de referència |
|---|---|
ChordNames | línia de base |
NoteNames | liniaa de base |
Lyrics | línia de base |
Dynamics | la meitat de l’alçada de la ‘m’ |
FiguredBass | punt més alt |
FretBoards | línia superior |
A la imatge següent, les línies horitzontals indiquen les posicions d’aquests punts de referència:
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 (internals)VerticalAxisGroup section ‘VerticalAxisGroup’ in Referència de funcionament intern i a (internals)StaffGrouper section ‘StaffGrouper’ in Referència de funcionament intern. 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 (internals)Contexts section ‘Contexts’ in Referència de funcionament intern.
VerticalAxisGroupLes propietats de VerticalAxisGroup se solen ajustar amb
una ordre \override al nivell de Staff (o equivalent).
staff-staff-spacingS’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-spacingUna 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-affinityDirecció 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-spacingDistà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-spacingDistà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-spacingDistà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.
StaffGrouperLes propietats de StaffGrouper se solen ajustar amb una
ordre \override al nivell de StaffGroup (o
equivalent).
staff-staff-spacingDistà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-spacingDistà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.
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: (internals)Contexts section ‘Contexts’ in Referència de funcionament intern, (internals)VerticalAxisGroup section ‘VerticalAxisGroup’ in Referència de funcionament intern, (internals)StaffGrouper section ‘StaffGrouper’ in Referència de funcionament intern.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Spacing of ungrouped staves
Les pautes, tals como els pentagrames (Staff),
pautes de percussió (DrumStaff) o de tabulatura
(TabStaff), etc. són contextos que poden contenir un o més
contextos de veu, però no poden contenir altres pautes.
Les següents propietats afecten a l’espaiat de les pautes no agrupades:
VerticalAxisGroup:
default-staff-staff-spacing
staff-staff-spacing
Aquestes propietats de grob es descriuen individualment més a dalt; vegeu Propietats d’espaiat dins dels sistemes.
Estan implicades certes propietats addicionals per a les pautes que són part d’un grup; vegeu Espaiat de pautes agrupades.
L’exemple següent mostra com la propietat
default-staff-staff-spacing pot afectar l’espaiat de pautes
no agrupades. Les mateixes sobreescriptures aplicades a
staff-staff-spacing tindrien el mateix efecte, però també
s’aplicaria en cas que les pautes estiguessin combinades en un
grup o grups.
\layout { \context { \Staff \override VerticalAxisGroup.default-staff-staff-spacing = #'((basic-distance . 8) (minimum-distance . 7) (padding . 1)) } } << % A l'última nota de totes li cal més espai que el que pot % proveir 'basic-distance, per tant la distància entre aquest % pentagrama i el següent es determina amb 'padding. \new Staff { b,2 r | } % Aquí, 'basic-distance proveeix prou espai, i no cal comprimir % l'espai (cap a 'minimum-distance) per fer espai per cap altra % cosa a la pàgina, per tant la distància entre aquest % pentagrama i el següent es determina per 'basic-distance. \new Staff { \clef bass g2 r | } % Si s'estableix 'padding a un valor negatiu, permet que les % pautes xoquin. EL valor més petit acceptable per a % 'basic-distance és 0. \new Staff \with { \override VerticalAxisGroup.default-staff-staff-spacing = #'((basic-distance . 3.5) (padding . -10)) } { \clef bass g2 r | } \new Staff { \clef bass g2 r | } >>
Fitxers d’inici: ‘scm/define-grobs.scm’.
Fragments de codi: (snippets)Spacing section ‘Spacing’ in Fragments de codi.
Referència de funcionament intern: (internals)VerticalAxisGroup section ‘VerticalAxisGroup’ in Referència de funcionament intern.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Spacing of grouped staves
En partitures grans com les orquestrals, s’acostuma a col·locar els pentagrames en grups. L’espaiat entre els grups sol ser més gran que l’espai que hi ha entre els pentagrames dins del mateix grup.
Els grups de pautes, Staff-groups (tals com
StaffGroup, ChoirStaff, etc.) són contextos que
poden contenir al mateix temps un o més pentagrames o pautes.
Les propietats següents afecten l’espaiat de les pautes dins dels grups:
VerticalAxisGroup:
staff-staff-spacing
StaffGrouper:
staff-staff-spacing
staffgroup-staff-spacing
Aquestes propietats de grob es descriuen individualment més a dalt; vegeu Propietats d’espaiat dins dels sistemes.
Aquestes propietats de grob es descriuen individualment més a dalt; vegeu Propietats d’espaiat dins dels sistemes.
L’exemple següent mostra com poden afectar les propietats del grob
StaffGrouper a l’espaiat de les pautes agrupades:
\layout { \context { \Score \override StaffGrouper.staff-staff-spacing.padding = #0 \override StaffGrouper.staff-staff-spacing.basic-distance = #1 } } << \new PianoStaff \with { \override StaffGrouper.staffgroup-staff-spacing.basic-distance = #20 } << \new Staff { c'1 } \new Staff { c'1 } >> \new StaffGroup << \new Staff { c'1 } \new Staff { c'1 } >> >>
Fitxers d’inici: ‘scm/define-grobs.scm’.
Fragments de codi: (snippets)Spacing section ‘Spacing’ in Fragments de codi.
Referència de funcionament intern: (internals)VerticalAxisGroup section ‘VerticalAxisGroup’ in Referència de funcionament intern, (internals)StaffGrouper section ‘StaffGrouper’ in Referència de funcionament intern.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Spacing of non-staff lines
Les Línies que no són pautes (com ara Lyrics,
ChordNames, etc.) sén contextos els objectes de presentació
dels quals s’imprimeixen com pentagrames (és a dir, en línies
horitzontals dins dels sistemes). Específicament, les línies que
no són pautes són contextos del tipus no-pauta que contenen el gravador
(internals)Axis_group_engraver section ‘Axis_group_engraver’ in Referència de funcionament intern.
Les propietats següents afecten a l’espaiat de les línies que no són pautes:
VerticalAxisGroup:
staff-affinity
nonstaff-relatedstaff-spacing
nonstaff-nonstaff-spacing
nonstaff-unrelatedstaff-spacing
Aquestes propietats de grob es descriuen individualment més a dalt; vegeu Propietats d’espaiat dins dels sistemes.
L’exemple següent mostra com la propietat
nonstaff-nonstaff-spacing pot afectar l’espaiat de línies
consecutives que no són pautes. Aquí, mitjançant l’establiment de
la clau de capacitat d’ampliació stretchability a un valor
més gran, la línia de lletra es capaç d’ampliar-se molt més del
que és usual:
\layout { \context { \Lyrics \override VerticalAxisGroup.nonstaff-nonstaff-spacing.stretchability = #1000 } } \new StaffGroup << \new Staff \with { \override VerticalAxisGroup.staff-staff-spacing = #'((basic-distance . 30)) } { c'1 } \new Lyrics \with { \override VerticalAxisGroup.staff-affinity = #UP } \lyricmode { up } \new Lyrics \with { \override VerticalAxisGroup.staff-affinity = #CENTER } \lyricmode { center } \new Lyrics \with { \override VerticalAxisGroup.staff-affinity = #DOWN } \lyricmode { down } \new Staff { c'1 } >>
Fitxers d’inici: ‘ly/engraver-init.ly’, ‘scm/define-grobs.scm’.
Fragments de codi: (snippets)Spacing section ‘Spacing’ in Fragments de codi.
Referència de funcionament intern: (internals)Contexts section ‘Contexts’ in Referència de funcionament intern, (internals)VerticalAxisGroup section ‘VerticalAxisGroup’ in Referència de funcionament intern.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Explicit staff and system positioning
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:
\context
\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:
alignment-distances, la lletra i d’altres
línies que no són pautes no compten com un pentagrama.
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.
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.
Fragments de codi: (snippets)Spacing section ‘Spacing’ in Fragments de codi.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Vertical collision avoidance
Podem dir intuïtivament que alguns objectes de la notació musical pertanyen al pentagrama i d’altres se situen fora del pentagrama. Entre els objectes que pertanyen a l’exterior del pentagrama estan les marques d’assaig, les marques textuals i les indicacions de dinàmica (en el que segueix, les anomenarem objectes fora del pentagrama). La regla del LilyPond per a la col·locació vertical dels objectes fora del pentagrama és posar-los tan a prop del pentagrama com sigui possible, però no tan propers com perquè xoquin amb un altre objecte.
El LilyPond fa servir la propietat outside-staff-priority
per a determinar si un grob és un objecte fora del pentagrama: si
outside-staff-priority és un nombre, el grob és un objecte
fora del pentagrama. A més, outside-staff-priority informa
al LilyPond en quin ordre s’han de situar els objectes.
En primer lloc, el LilyPond situa tots els objectes que no
pertanyen a l’exterior del pentagrama. Després ordena els
objectes fora del pentagrama d’acord a la seva propietat
outside-staff-priority (en ordre creixent). El LilyPond
agafa els objectes fora del pentagrama un a un i els col·loca de
forma que no xoquin amb cap objecte que ja hagi estat col·locat.
En altres paraules, si dos gros fora del pentagrama competeixen
pel mateix espai, el que la prioritat
outside-staff-priority més baixa es col·locarà més proper
al pentagrama.
Hi ha un llistat complet de les prioritats outside-staff-priorities a (learning)La propietat outside-staff-priority (prioritat fora del pentagrama) section ‘La propietat outside-staff-priority (prioritat fora del pentagrama)’ in Manual d’aprenentatge.
\relative c'' { c4_"Text"\pp r2. \once \override TextScript.outside-staff-priority = #1 c4_"Text"\pp % aquest cop el text estarà més a prop del pentagrama r2. % establint outside-staff-priority a un no-nombre % deshabilitem la cancel·lació automàtica de col·lisions \once \override TextScript.outside-staff-priority = ##f \once \override DynamicLineSpanner.outside-staff-priority = ##f c4_"Text"\pp % now they will collide }
El farcit vertical que rodeja als objectes fora del pentagrama es
pot controlar amb outside-staff-padding.
\relative { \once \override TextScript.outside-staff-padding = #0 a'4-"outside-staff-padding = #0" \once \override TextScript.outside-staff-padding = #3 d-"outside-staff-padding = #3" c-"default outside-staff-padding" b-"default outside-staff-padding" R1 }
De forma predeterminada, els objectes fora del pentagrama es
col·loquen de forma que evitin una col·lisió horitzontal amb els
grobs posicionats prèviament. Això pot portar a situacions en les
quals els objectes es col·loquen molt propers entre ells en el
sentit horitzontal. Com es mostra a l’exemple que apareix més a
sota, en establir outside-staff-horizontal-padding
s’incrementa l’espai horitzontal necessari, i en aquest cas es mou
el text cap a munt per evitar que quedi massa a prop de les línies
addicionals.
\relative { c''4^"Word" c c''2 R1 \once \override TextScript.outside-staff-horizontal-padding = #1 c,,4^"Word" c c''2 }
Fragments de codi: (snippets)Spacing section ‘Spacing’ in Fragments de codi.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] |
This document was generated by gub on Juliol 13, 2020 using texi2html 1.82.
Altres idiomes: English, deutsch, español, français, italiano, 日本語.
Quant a la selecció automàtica de la llengua.