| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Modifying properties
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Overview of modifying properties
Cada context és responsable de la creació de certs tipus d’objectes gràfics. Els ajustaments que s’usen per imprimir aquests objectes també s’emmagatzemen per context. Mitjançant la modificació d’aquests ajustaments, es pot alterar l’aparença dels objectes.
Hi ha dos tipus diferents de propietats emmagatzemades als contextos: les propietats de context i les propietats de grob. Les propietats de context són propietats que s’apliquen al context com un tot i controlen la forma en la qual el propi context s’imprimeix. Per contra, les propietats de grob s’apliquen als tipus de grob específics que s’imprimiran dins del context.
Les ordres \set i \unset s’usen per canviar els
valors de les propietats de context. Les ordres \override
i \revert s’usen per canviar els valors de les propietats
de grob.
Referència de funcionament intern: (internals)Backend section ‘Backend’ in Referència de funcionament intern, (internals)All layout objects section ‘All layout objects’ in Referència de funcionament intern, (internals)OverrideProperty section ‘OverrideProperty’ in Referència de funcionament intern, (internals)RevertProperty section ‘RevertProperty’ in Referència de funcionament intern, (internals)PropertySet section ‘PropertySet’ in Referència de funcionament intern.
El «back-end» o motor de sortida no és massa estricte en la comprovació de tipus de les propietats d’objectes. Les referències cícliques en valors Scheme de propietats poden produir aturades o sortides abruptes, o les dues coses.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
\set@translationof The set command
Cada context pot tenir diferents propietats, variables
contingudes dins d’aquest context. Es poden canviar mentre dura
el pas d’interpretació. S’aconsegueix inserint l’ordre
\set dins de la música:
\set context.propietat = #valor |
valor és un objecte de l’Scheme, raó per la qual va precedit
del caràcter coixinet, #.
El nom de les propietats de context sol anar en minúscules amb
majúscula al mig. Controlen sobre tot la traducció de la música a
la notació, per exemple localAlterations (per determinar si
s’ha d’imprimir alteracions o no), o measurePosition (per
determinar quan s’ha d’imprimir una línia divisòria). El valor de
les propietats de context pot modificar-se amb el temps durant la
interpretació de la musica; un exemple obvi és
measurePosition. Les propietats de context es modifiquen
mitjançant l’ordre \set.
Per exemple, els silencis multicompàs es combinen en un sol compàs
si el valor de la propietat de context skipBars s’estableix
a #t (vertader):
R1*2 \set Score.skipBars = ##t R1*2
Si s’omet l’argument context, llavors s’utilitza el context
actual de nivell més baix (normalment ChordNames,
Voice o Lyrics). En aquest exemple:
\set Score.autoBeaming = ##f \relative { e''8 e e e \set autoBeaming = ##t e8 e e e } \\ \relative { c''8 c c c c8 c c c }
El canvi s’aplica ‘al vol’, mentre dura la música, de forma que l’ajustament sols afecta al segon grup de corxeres.
Observeu que el context del nivell més baix no sempre conté la
propietat que voldríem modificar: per exemple, intentar ajustar el
valor de la propietat skipBars del context predeterminat
del nivell més baix, que en aquest cas és Voice, no tindrà
cap efecte, perquè skipBars és una propietat del context Score.
R1*2 \set skipBars = ##t R1*2
Els contextos són jeràrquics, i si s’ha especificat un context
major, per exemple Staff, aleshores el canvi s’aplicaria
també a tots els contextos Voice dins del pentagrama actual.
També hi ha una ordre \unset:
\unset context.propietat |
que elimina la definició de propietat. Aquesta ordre
elimina la definició sols si s’està establint dins de
context. Les propietats que s’han establert a contextos que
envolten no s’alteraran per un \unset en un context envoltat:
\set Score.autoBeaming = ##t \relative { \unset autoBeaming e''8 e e e \unset Score.autoBeaming e8 e e e } \\ \relative { c''8 c c c c8 c c c }
Com \set, l’argument context no s’ha d’especificar
per a un context del nivell més baix, per la qual cosa els dos enunciats
\set Voice.autoBeaming = ##t \set autoBeaming = ##t |
són equivalents si el context inferior en curs és Voice.
Els ajustaments amb \set o \unset que s’apliquen
sols a un únic pas de temps es poden escriure amb
\once, per exemple a
c''4 \once \set fontSize = #4.7 c''4 c''4
En el manual de Referència de funcionament intern hi ha una descripció completa de totes les propietats de context disponibles, consulteu (internals)Tunable context properties section ‘Tunable context properties’ in Referència de funcionament intern.
Referència de funcionament intern: (internals)Tunable context properties section ‘Tunable context properties’ in Referència de funcionament intern.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
\override@translationof The override command
Hi ha un tipus especial de propietat de context: la descripció
dels grobs. Les descripcions dels grobs reben un nom a
MajúsculesDeCamell (començant amb majúscula). Contenen els
‘ajustos predeterminatats’ per a un tipus particular de grob, en
forma de llista associativa. Consulteu
‘scm/define-grobs.scm’ per veure els ajustos de cada
descripció de grob. Les descripcions de grob es modifiquen amb
\override.
La sintaxi de l’ordre \override és
\override [context.]NomDelGrob.propietat = #valor |
Per exemple, podem augmentar el gruix de la plica d’una figura
sobreescrivint la propietat thickness (gruix) de l’objecte
Stem (plica):
c''4 c'' \override Voice.Stem.thickness = #3.0 c''4 c''
Si no s’ha especificat cap context a l’ordre \override,
s’utilitza el context del nivell inferior:
\override Staff.Stem.thickness = #3.0 << \relative { e''4 e \override Stem.thickness = #0.5 e4 e } \\ \relative { c''4 c c c } >>
Algunes opcions susceptibles d’ajustament s’anomenen ‘subpropietats’ i resideixen dins de les propietats. Per efectuar ajustaments sobre ells, utilitzeu ordres de la forma
\override Stem.details.beamed-lengths = #'(4 4 3) |
o per modificar els extrems dels objectes extensos, utilitzeu una forma com ara les següents:
\override TextSpanner.bound-details.left.text = "left text" \override TextSpanner.bound-details.right.text = "right text" |
L’efecte d’una ordre de sobreescriptura \override es pot
desfer amb \revert.
La sintaxi de l’ ordre \revert és
\revert [Context.]NomDelGrob.propietat |
Por exemple,
\relative { c''4 \override Voice.Stem.thickness = #3.0 c4 c \revert Voice.Stem.thickness c4 }
Els efectes de \override i \revert s’apliquen a tots
els grobs del context afectat partint del moment actual i fins endavant:
<< \relative { e''4 \override Staff.Stem.thickness = #3.0 e4 e e } \\ \relative { c''4 c c \revert Staff.Stem.thickness c4 } >>
Es pot usar \once amb \override o \revert per
afectar sols l’instant de temps actual:
<< \relative c { \override Stem.thickness = #3.0 e''4 e e e } \\ \relative { c''4 \once \override Stem.thickness = #3.0 c4 c c } >>
Referència de funcionament intern: (internals)Backend section ‘Backend’ in Referència de funcionament intern
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
\tweak@translationof The tweak command
El canvi de les propietats de grob mitjançant \override
produeix l’aplicació del canvi a tots els grobs donats al context
en el moment en el qual s’aplica aquest canvi. Tanmateix, en
certes ocasions podem desitjar que els canvis s’apliquin a un sol
grob en lloc de a tots els grobs del context afectat. Això
s’aconsegueix amb l’ordre \tweak, que té la sintaxi següent:
\tweak [objecte-de-presentació.]propietat-del-grob valor |
És opcional especificar el objecte-de-presentació. L’ordre
\tweak s’aplica a l’objecte musical que ve immediatament
després de valor dins del flux musical.
Per veure una introducció a la sintaxi i els usos de l’ordre tweak, consulteu (learning)Mètodes d’ajustament section ‘Mètodes d'ajustament’ in Manual d’aprenentatge.
Si es col·loquen diversos elements semblants al mateix moment
musical, l’ordre \override no es pot fer servir per
modificar un sol d’ells: aquí és on s’ha d’usar l’ordre
\tweak. Entre els elements que poden aparèixer més d’un
cop al mateix moment musical estan els següents:
En aquest exemples es modifiquen el color d’un cap i el tipus d’un altre, dins del mateix acord:
< c'' \tweak color #red d'' g'' \tweak duration-log #1 a'' > 4
\tweak es pot usar per modificar lligadures d’expressió:
\relative { c'-\tweak thickness #5 ( d e f) }
Perquè funcioni l’ordre \tweak, ha de romandre adjacent a
l’objecte al qual s’ha d’aplicar després que el codi d’entrada
s’hagi convertit en un flux musical. L’ajustament d’un acord
complet no fa res perquè el seu esdeveniment musical actua sols
com un contenidor, i tots el objectes de presentació es creen a
partir d’esdeveniments dins del EventChord:
\tweak color #red c''4 \tweak color #red <c'' e''>4 <\tweak color #red c'' e''>4
L’ordre \tweak senzilla no es pot fer servir per modificar
cap objecte que no s’hagi creat directament a partir de
l’entrada. Concretament, no afecta a les pliques, barres
automàtiques ni alteraciones, perquè aquests objectes es generen
posteriorment per part d’objectes de presentació
NoteHead més que per elements musicals del flux d’entrada.
Aquests objectes de presentació creats indirectament es poden
ajustar usant la forma de l’ordre \tweak en la qual el nom
del grob s’especifica de forma explícita:
\tweak Stem.color #red \tweak Beam.color #green c''8 e'' <c'' e'' \tweak Accidental.font-size #-3 ges''>4
No es pot usar \tweak per modificar les claus o les
indicacions de compàs, perquè aquests objectes se separen de
qualsevol ordre \tweak precedent dins del flux d’entrada
gràcies a la inserció automàtica d’elements addicionals que es
requereixen per completar el context.
Es poden col·locar diverses ordres \tweak abans d’un
element de notació; totes l’afecten:
c' -\tweak style #'dashed-line -\tweak dash-fraction #0.2 -\tweak thickness #3 -\tweak color #red \glissando f''
El flux musical que es genera a partir d’una secció d’un fitxer d’entrada (incloent qualsevol element inserit automàticament) pot examinar-se, vegeu
El flujo musical que se genera a partir de una sección de un
archivo de entrada (incluido cualquier elemento insertado
automáticamente) puede examinarse, véase
(extending)Displaying music expressions section ‘Presentació de les expressions musicals’ in Extensions. Això pot ser d’utilitat en la determinació
del que es pot modificar per mitjà d’una ordre \tweak.
Manual d’aprenentatge: (learning)Mètodes d’ajustament section ‘Mètodes d'ajustament’ in Manual d’aprenentatge.
Manual de extensió: (extending)Displaying music expressions section ‘Presentació de les expressions musicals’ in Extensions.
No es pot usar l’ordre \tweak per modificar els punts de
control d’una sola de diverses lligadures d’unió dins d’un acord,
a part de la primera que es trobi en el codi d’entrada.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
\set comparat a \override@translationof set versus override
Tant l’ordre \set com \override manipulen propietats
associades a contextos. En ambdós casos les propietats segueixen
una jerarquia de contextos: les propietats que no
s’estableixen dins del context encara presenten els valors del
context del seu pare respectiu.
El valor i la duració en el temps d’una propietat de context són dinàmics i estan disponibles sols quan la música s’està interpretant o ‘iterant’. Al moment de la creació del context, s’inicialitzen les propietats a partir de les modificacions d’aquest context. Qualsevol canvi posterior s’obté a través d’ordres d’establiment de propietats dins de la mateixa música.
Les definicions de grob (objectes gràfics) són una classe especial de propietats de context, ja que la seva estructura i ús són diferents de les propietats de context ordinàries. A diferència de les propietats dels contextos normals, les definicions de grob se subdivideixen en propietats de grob.
A més, en contrast amb les propietats de context normals, les definicions de grob tenen el seu propi conjunt d’‘utilitats de manteniment’ de les propietats individuals i, en el seu cas, sub-propietats. Això suposa que és possible definir les diferents parts dins de diferents contextos i encara tenir la definició completa del grob en el moment de la seva creació, muntada a partir de totes les peces proporcionades pel context actual i el seu ancestre o ancestres, conjuntament.
Un grob o objecte gràfic es crea normalment per part d’un gravador en el moment de la interpretació d’una expressió musical i rep les seves propietats inicials de la definició de grob en curs del context del gravador. El gravador (o altres parts del ‘backend’ del LilyPond) poden després modificar (o afegir-se a) les propietats inicials del grob; malgrat això, això no afecta a la definició de grob del context.
El que el Lilypond coneix com ‘propietats de grob’ en el context de l’ajustament a nivell d’usuari són en realitat les propietats de la definició de grob d’un context.
s’accedeix a les definicions de grob amb un conjunt d’ordres
diferents. Es manipulen usant \override i
\revert i tenen un nom que comença amb una lletra majúscula
(com ‘NoteHead’) mentre que les propietats de context
ordinàries es manipulen utilitzant \set i
\unset i s’anomenen començant amb lletra minúscula
Les ordres \tweak i \overrideProperty canvien les
propietats de grob passant per sobre de les propietats de context
completament. En el seu lloc, atrapen els grobs tan aviat es
creen, i estableixen propietats sobre ells directament amb
\tweak quan s’originen a partir d’un esdeveniment musical
o, en el cas de \overrideProperty, per a una
sobreescriptura específica.
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
\offset@translationof The offset command
Tot i que és possible fixar propietats de grob a valors nous amb
les ordres \override, \tweak i
\overrideProperty, moltes vegades convé més modificar
aquestes propietats en una quantitat relativa al valor
predeterminat. L’ordre \offset es troba disponible per fer això.
La sintaxi de \offset és
[-]\offset propietat increments element |
L’ordre funciona afegint el contingut de increments a l’ajustament predeterminat de la propietat del grob indicat per element.
Depenent de la formulació de l’ordre, \offset pot actuar
com un \tweak (ajustament) o com un \override
(sobreescriptura). Les variaciones en el seu ús s’explicaran
després d’haver exaaminat les propietats de grob que es poden usar
amb \offset.
Moltes, però no totes, les propietats del grob admeten l’aplicació
d’un desplaçament. Si propietat no es pot desplaçar,
l’objecte romandrà sense canvis i s’omet l’advertiment. En
aquests casos s’han d’usar en el seu lloc \override o
\tweak per modificar l’objecte.
Es pot treballar per prova i error i deixar que els advertiments ens serveixen de guia per saber el que pot i no pot ser desplaçat. És possible, no obstant, un enfocament més sistemàtic.
Els criteris següents determinen si una propietat es pot modificar
amb \offset:
number, una llista de numbers,
number-pair, i number-pair-list. Les pàgines de
(internals)All layout objects section ‘All layout objects’ in Referència de funcionament intern contenen una llista dels tipus de
dades característiques de cada propietat. No importa si
l’ajustament predeterminat és una funció.
Els exemples següents presenten diverses propietats de grob en front als criteris que s’han exposat.
Hairpin.heightAquesta propietat no és una subpropietat, i està a la llista que
apareix a
(internals)Hairpin section ‘Hairpin’ in Referència de funcionament intern. En quan al seu valor, admet
‘dimension, in staff space’ (dimensió, en espais de pentagrama)
que està establert a 0.6666 (que clarament és un
nombre no infinit).
Arpeggio.positionsA la llista de la pagina que descriu
(internals)Arpeggio section ‘Arpeggio’ in Referència de funcionament intern apareix
una propietat positions que admet una ‘parella de
nombres’. El seu valor predeterminat és
ly:arpeggio::positions, que é un ‘callback’ que s’avalua
durant la fase de gravat per donar com a resultat una parella de
nombres per qualsevol objecte Arpeggio donat.
Hairpin.colorNo hi ha un llistat per color a
(internals)Hairpin section ‘Hairpin’ in Referència de funcionament intern.
Hairpin.circled-tipLa llista de Hairpin.circled-tip a la pàgina de
(internals)Hairpin section ‘Hairpin’ in Referència de funcionament intern mostra que admet un valor boolean. Els
valors booleans no són numèrics.
Stem.details.lengthsTot i que està llistat a
(internals)Stem section ‘Stem’ in Referència de funcionament intern i el seu valor
predeterminat és una llista de numbers, és una
‘subpropietat’. De moment les ‘propietats niuades’ no tenen
suport.
Si element és un nom de grob com Arpeggio o
Staff.OttavaBracket, el resultat es un \override o
sobreescriptura del tipus de grob especificat.
\offset propietat increment [context.]NomDeGrob |
Observeu que el guió precedent mai no s’utilitza amb la
forma ‘override’, d’igual manera que mai no s’usa amb la pròpia
ordre \override.
L’exemple següent usa la forma ‘override’, de sobreescriptura,
per allargar els arpegis predeterminats que apareixen al primer
compàs perquè cobreixin tota la mida dels acords. Els arpegis
s’amplien en mig espai de pentagrama cap amunt i cap avall. També
es mostra la mateixa operació efectuada sobre el primer acord amb
una sobreescriptura normal de la propietat positions.
Aquest mètode és en absolut expressiu de l’acció de ‘ampliar en
mig espai de pentagrama’ perquè els extrems s’han d’especificar
mitjançant coordenades absolutes, no relatives. A més, caldrien
sobreescriptures individuals per als altres acords, atès que
varien en mida i posició.
arpeggioMusic = { <c' e' g'>\arpeggio <a' c'' e''>\arpeggio <d' f' a' c''>\arpeggio <c' e' g' b' d'' f'' a''>\arpeggio } { \arpeggioMusic \bar "||" \offset positions #'(-0.5 . 0.5) Arpeggio \arpeggioMusic \bar "||" \once \override Arpeggio.positions = #'(-3.5 . -0.5) <c' e' g'>1\arpeggio \bar "||" }
En el seu ús com ‘override’, \offset es pot fer precedir
per \once o per \temporary i revertir-se mitjançant
\revert amb la propietat. Això és perquè
\offset en realitat crea un \override per la propietat.
music = { c'8\< d' e' f'\! } { \music \offset height 1 Hairpin \music \music \revert Hairpin.height \music \bar "||" \once \offset height 1 Hairpin \music \music \bar "||" \override Hairpin.height = 0.2 \music \temporary \offset height 2 Hairpin \music \music \revert Hairpin.height \music \bar "||" }
Així com \override, la forma ‘override’ de \offset
es pot usar amb \undo i amb \single.
longStem = \offset length 6 Stem { \longStem c'4 c''' c' c'' \bar "||" \undo \longStem c'4 c''' c' c'' \bar "||" \single \longStem c'4 c''' c' c'' \bar "||" }
Si element és una expressió musical com \arpeggio, el
resultat és la mateixa expressió musical amb l’ajustament aplicat.
[-]\offset [NomDeGrob.]propietat increments expressió-musical |
La sintaxi de \offset en forma de ‘tweak’ és anàloga a la
pròpia ordre \tweak, tant en ordre com en quant a la
presència o absència del guió inicial.
L’exemple següent usa la forma ‘tweak’ per ajustar la posició
vertical de l’objecte BreathingSign. Compareu-lo amb
l’ordre \tweak normal que també apareix. La sintaxi és
equivalent; malgrat això, la sortida de \tweak és menys
intuïtiva, ja que BreathingSign.Y-offset es calcula a
partir de la tercera línia del pentagrama. No cal saber com es
calcula Y-offset, en usar \offset.
{ c''4 \breathe c''4 \offset Y-offset 2 \breathe c''2 \tweak Y-offset 3 \breathe }
A l’exemple anterior, els objectes ajustats s’han creat
directament a partir de l’entrada de l’usuari: l’ordre
\breathe era una ordre explícita per retornar un objecte
BreathingSign. Atès que l’objecte de l’ordre no és ambigu,
no hi havia necessitat d’especificar el nom de l’objecte. Malgrat
això, quan un objecte es crea indirectament, cal incloure
el nom del grob. És el mateix que per a l’ordre \tweak.
A l’exemple següent, l’objecte Beam es baixa en dos espais
de pentagrama aplicant \offset a la propietat positions.
La primera aplicació de \offset exigeix que s’inclogui el
nom del grob, perquè no hi ha res al codi d’entrada que creï
explícitament la barra. A la segona aplicació, la barra es crea
manualment amb l’expressió musical [; per tant, el nom del
grob no cal (també apareix a la il·lustració una abreviatura: un
sol nombre s’aplica als dos membres d’una parella).
{ c''8 g'' e'' d'' \offset Beam.positions #'(-2 . -2) c''8 g'' e'' d'' c''8 g'' e'' d'' c''8-\offset positions #-2 [ g'' e'' d''] }
També es poden modificar segments d’un objecte que s’estén sobre un salt o salts de línia. En aquest cas, offsets admet una llista de valors del tipus de dades requerit per la propietat.
L’ordre \offset usada d’aquesta forma és semblant a l’ordre
\alterBroken (vegeu Modificació d’objectes d’extensió dividits). No obstant això, a diferència de \alterBroken,
els valors que se li donen a \offset són relatius, no
absoluts.
A l’exemple següent desplaça l’objecte ‘dividit’
OttavaBracket a través de la seva propietat
staff-padding. Atès que la propietat agafa un
number, se li proporciona a increments una llista de
nombres per aplicar-los als dos segments creats pel salt de
línia. La part de clau de la primera línia queda, en realitat,
inalterada, ja que s’afageix 0 al seu valor per defecte de
staff-padding. El segment que està a la segona línia
s’eleva tres espais de pentagrama a partir de la seva alçada per
defecte. L’alçada predeterminada resulta ser 2, tot i que
no cal saber-lo per aconseguir la posició desitjada.
{ \offset staff-padding #'(0 3) Staff.OttavaBracket \ottava #1 c'''2 c''' \break c'''2 c''' }
L’exemple següent copia l’efecte de l’ordre \shape
mitjançant l’increment de la propietat control-points de
l’objecte Slur. Aquí, increments és una llista de
parelles de nombres, una per cada segment de la lligadura. Aquest
exemple produeix un resultat idèntic a la il·lustració
corresponent que apareix a Modificació de les formes.
{ c'4-\offset control-points #'( ((0 . 0) (0 . 0) (0 . 0) (0 . 1)) ((0.5 . 1.5) (1 . 0) (0 . 0) (0 . -1.5)) ) ( f'4 g' c'' \break d'4 c'' f' c') }
| [ < ] | [ > ] | [ << ] | [ Amunt ] | [ >> ] | [Part superior] | [Continguts] | [Índex] | [ ? ] |
@translationof Modifying alists
Certes propietats configurables per part de l’usuari es representen internament com llistes-A (llistes associatives), que emmagatzemen duples de claves i valors. L’estructura d’una llista-A és la següent:
'((clave1 . valor1) (clave2 . valor2) (clave3 . valor3) …) |
Si una llista-A és una propietat d’un grob o una variable de
\paper, les seves claus es poden modificar individualment
sense que afecti a les altres claus.
Per exemple, per reduir l’espai entre pentagrames adjacents dins
d’un grup, useu la propietat staff-staff-spacing del grob
StaffGrouper. La propietat és una llista-A amb quatre
claus: basic-distance (distància bàsica),
minimum-distance (distància mínima), padding
(farcit) i stretchability (ampliabilitat). Els ajustaments
estàndard per a aquesta propietat es relacionen a la secció
“Backend” de la Referència de Funcionament Intern (vegeu
(internals)StaffGrouper section ‘StaffGrouper’ in Referència de funcionament intern):
'((basic-distance . 9) (minimum-distance . 7) (padding . 1) (stretchability . 5)) |
Una forma d’apropar els pentagrames entre sí és reduir el valor de
la clau basic-distance (9) perquè es correspongui
amb el valor de minimum-distance (7). Per modificar
una única clau de forma individual, utilitzeu una
declaració niuada:
% espai predeterminat entre pentagrames \new PianoStaff << \new Staff { \clef treble c''1 } \new Staff { \clef bass c1 } >> % espai reduït entre pentagrames \new PianoStaff \with { % aquesta és la declaració niuada \override StaffGrouper.staff-staff-spacing.basic-distance = #7 } << \new Staff { \clef treble c''1 } \new Staff { \clef bass c1 } >>
La utilització d’una declaració niuada actualitza la clau
especificada (com basic-distance a l’exemple anterior)
sense alterar cap de les altres claus que ja s’havien establert
per a la mateixa propietat.
Ara suposem que desitgem que els pentagrames estiguin tan propers com sigui possible sense que es superposin. La manera més senzilla de fer-lo és establir les quatre claus de la llista-A a zero. Malgrat això, no cal escriure quatre declaracions niuades, una per cada clau. En lloc d’això, es pot redefinir completament la propietat amb una sola declaració, com una llista-A:
\new PianoStaff \with { \override StaffGrouper.staff-staff-spacing = #'((basic-distance . 0) (minimum-distance . 0) (padding . 0) (stretchability . 0)) } << \new Staff { \clef treble c''1 } \new Staff { \clef bass c1 } >>
Observeu que qualsevol clau que no hagi estat relacionada
explícitament a la definició de la llista-A, serà reiniciada als
seus valors predeterminats si no s’han fixat. En el cas de
staff-staff-spacing, el valor de qualsevol clau no fixada
es reiniciaria a zero (excepte stretchability, que agafa el
valor de basic-distance si no es fixa). Aixi, les dues
declaracions següents són equivalents:
\override StaffGrouper.staff-staff-spacing =
#'((basic-distance . 7))
\override StaffGrouper.staff-staff-spacing =
#'((basic-distance . 7)
(minimum-distance . 0)
(padding . 0)
(stretchability . 7))
|
Una conseqüència d’això (possiblement no intencionada) és
l’eliminació de qualsevol valor estàndard que s’estableixi en un
fitxer d’inici i que es carrega cada cop que es compila un fitxer
d’entrada. A l’exemple anterior, els ajustaments estàndard per a
padding i minimum-distance (definits a
‘scm/define-grobs.scm’) es reinicien al seus valors
predeterminats si no s’han fixat (zero per a les dues claus). La
definició d’una propietat o variable com una llista-A (de
qualsevol mida) sempre reinicia tots els valors de clau no
establertes als seus valors predeterminats si no s’han fixat. A
no ser que aquest sigui el resultat desitjat, és més segur
actualitzar els valors de clau individualment amb una declaració
niuada.
Nota: Les declaracions niuades no funcionen per a les llists-A
de propietats de context (com beamExceptions,
keyAlterations, timeSignatureSettings, etc.).
Aquestes propietats sols es poden modificar redefinint-les
completament com a llistes-A.
| [ < ] | [ > ] | [ << ] | [ 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.