[ < ] [ > ]   [ << ] [ Amunt ] [ >> ]         [Part superior] [Continguts] [Índex] [ ? ]

5.3 Modificació de les propietats

@translationof Modifying properties


[ < ] [ > ]   [ << ] [ Amunt ] [ >> ]         [Part superior] [Continguts] [Índex] [ ? ]

5.3.1 Panoràmica de la modificació de les propietats

@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.

Vegeu també

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.

Advertiments i problemes coneguts

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] [ ? ]

5.3.2 L’ordre \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

[image of music]

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
}

[image of music]

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

[image of music]

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
}

[image of music]

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

[image of music]

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.

Vegeu també

Referència de funcionament intern: (internals)Tunable context properties section ‘Tunable context properties’ in Referència de funcionament intern.


[ < ] [ > ]   [ << ] [ Amunt ] [ >> ]         [Part superior] [Continguts] [Índex] [ ? ]

5.3.3 L’ordre \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''

[image of music]

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

[image of music]

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
}

[image of music]

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

[image of music]

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

[image of music]

Vegeu també

Referència de funcionament intern: (internals)Backend section ‘Backend’ in Referència de funcionament intern


[ < ] [ > ]   [ << ] [ Amunt ] [ >> ]         [Part superior] [Continguts] [Índex] [ ? ]

5.3.4 L’ordre \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

[image of music]

\tweak es pot usar per modificar lligadures d’expressió:

 
\relative { c'-\tweak thickness #5 ( d e f) }

[image of music]

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

[image of music]

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

[image of music]

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

[image of music]

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.

Vegeu també

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.

Advertiments i problemes coneguts

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] [ ? ]

5.3.5 \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] [ ? ]

5.3.6 L’ordre \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.

Propietats que admeten el desplaçament

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:

Els exemples següents presenten diverses propietats de grob en front als criteris que s’han exposat.

\offset como sobreescriptura

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

[image of music]

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

[image of music]

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

[image of music]

\offset com ajustament

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
}

[image of music]

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

[image of music]

\offset amb objectes extensos dividits

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

[image of music]

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

[image of music]


[ < ] [ > ]   [ << ] [ Amunt ] [ >> ]         [Part superior] [Continguts] [Índex] [ ? ]

5.3.7 Modificació de les llistes-A

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

[image of music]

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

[image of music]

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.