5.1.7 Ordre de disposició dels contextos
Els contextos es disposen en un sistema normalment des de dalt cap a baix a l’ordre en el qual es troben al fitxer d’entrada. Quan els contextos es nien uns a dins dels altres, el context exterior inclou els contextos niuats tal i com s’especifica al fitxer d’entrada, sempre i quan els contextos interiors estiguin inclosos a la llista “accepts” del context extern. Els contextos niuats que no estiguin inclosos a la llista “accepts” del context extern es recol·loquen a sota del context extern en lloc de niuar-se dins d’ell.
La llista “accepts” d’un context es pot canviar amb les ordres
\accepts
(accepta) o \denies
(denega).
\accepts
afegeix un context a la llista “accepts” i
\denies
elimina un context de la llista.
Per exemple, un grup de pentagrames amb un claudàtor no es troba
normalment a l’interior d’un pentagrama amb clau que tingui
connectats les línies divisòries, i un GrandStaff
per a
piano no accepta un StaffGroup
dins d’ell, de forma predeterminada.
\score { \new GrandStaff << \new StaffGroup << \new Staff { c'1 } \new Staff { d'1 } >> \new Staff { \set Staff.instrumentName = bottom f'1 } >> }
Malgrat això, usant l’ordre \accepts
, es pot afegir un
StaffGroup
al context GrandStaff
:
\score { \new GrandStaff << \new StaffGroup << \new Staff { c'1 } \new Staff { d'1 } >> \new Staff { \set Staff.instrumentName = bottom f'1 } >> \layout { \context { \GrandStaff \accepts StaffGroup } } }
\denies
s’usa principalment quan un context nou s’està
basant en un altre, però els niuats requerits difereixen. Per
exemple, el context VaticanaStaff
està basat en el context
Staff
, però amb el context VaticanaVoice
substituït
pel context Voice
a la llista “accepts”.
Observeu que discretament es crea un context de forma implícita si es troba una ordre on no hi ha un context apropiat per contenir-lo.
Dins d’una definició de context, el tipus d’un subcontext que es
va crear implícitament s’especifica usant \defaultchild
(fill predeterminat). Alguns esdeveniments musicals requereixen
un context ‘Bottom’ (inferior): qua es troba aquest
esdeveniment, es creen subcontextos de forma recursiva fins que
s’assoleix un context que no té establert el ‘defaultchild’.
La creació implícita de contextos pot donar lloc a inesperats
pentagrames nous o inesperades partitures noves. La utilització
de \new
per crear contextos explícitament evita aquests problemes.
En ocasions cal que un context existeixi dins un breu interval de temps, sent un bon exemple el context de pentagrama d’un ossia. Això s’aconsegueix normalment mitjançant la introducció de la definició del context en el lloc apropiat en paral·lel amb la secció corresponent de la música principal. De forma predeterminada, el context temporal es col·loca a sota de tots els contextos existents. Per tornar-lo a posicionar per sobre del context que tingui el nom “principal”, s’hauria de definir d’aquesta forma:
\new Staff \with { alignAboveContext = "principal" }
Es presenta una situació semblant quan es posiciona un context
temporal de lletra d’una cançó dins d’una disposició de diversos
pentagrames tal com ChoirStaff
, per exemple, quan s’afegeix
una segona estrofa a una secció que es repeteix. De forma
predeterminada, el context temporal de lletra es col·loca a sota
dels pentagrames inferiors. Mitjançant la definició del context
temporal de lletra amb alignBelowContext
es pot posicionar
correctament a sota del context de lletra amb nom que conté el
text de la primera estrofa.
En diversos llocs poden veure’s exemples que mostren aquesta recol·locació de contextos temporals: vegeu Niuat d'expressions musicals, Modificació de pentagrames separats i Tècniques específiques per a les lletres.
Vegeu també
Manual d’aprenentatge: Niuat d'expressions musicals.
Referència de la notació: Modificació de pentagrames separats, Tècniques específiques per a les lletres.
Manual d’utilització del programa: Apareix un pentagrama de més.
Fitxers instal·lats: ‘ly/engraver-init.ly’.