Siguiente: , Anterior: Panorámica de la modificación de las propiedades, Arriba: Modificar las propiedades


5.3.2 The \set command

Cada contexto puede tener distintas propiedades, variables contenidas dentro de ese contexto. Se pueden cambiar mientras dura el paso de interpretación. Se consigue insertando la instrucción \set dentro de la música:

\set contexto.propiedad = #valor

Por ejemplo:

     
     R1*2
     \set Score.skipBars = ##t
     R1*2

[image of music]

Estas instrucción salta los compases que no tienen notas. El resultado es que los silencios multicompás se condensan. El valor asignado es un objeto de Scheme. En este caso, es #t, el valor booleano True o verdadero.

Si se omite el argumento context, entonces se utiliza el contexto actual de nivel más bajo (normalmente ChordNames, Voice o Lyrics). En este ejemplo:

     
     c8 c c c
     \set autoBeaming = ##f
     c8 c c c

[image of music]

el argumento contexto de la instrucción \set se omite, así pues el barrado automático se desactiva en la voz actual. Observe que el contexto de nivel más bajo no siempre contiene la propiedad que queremos cambiar (por ejemplo, no tendrá ningún efecto intentar establecer un valor para la propiedad skipBars del contexto de nivel más bajo, en este caso Voice).

     
     R1*2
     \set skipBars = ##t
     R1*2

[image of music]

Los contextos so jerárquicos, y si se ha especificado un contexto mayor, por ejemplo Staff, entonces el cambio se aplicaría también a todos los contextos Voice dentro del pentagrama actual. El cambio se aplica ‘al vuelo’, durante la música, de manera que el ajuste sólo afecta al segundo grupo de corcheas.

También existe una instrucción \unset:

\unset contexto.propiedad

que elimina la definición de propiedad. Esta instrucción elimina la definición solamente si está establecida dentro de contexto, de manera que

\set Staff.autoBeaming = ##f

introduce un ajuste de la propiedad en el nivel de Staff. El ajuste también se aplica a la Voice actual. Sin embargo:

\unset Voice.autoBeaming

no tiene ningúun efecto. Para cancelar este ajuste, se debe especificar el \unset en el mismo nivel que el \set original. Dicho de otra forma, para deshacer el efecto de Staff.autoBeaming = ##f se necesita

\unset Staff.autoBeaming

Como \set, el argumento contexto no se tiene que especificar para un contexto del nivel más bajo, por lo que los dos enunciados

\set Voice.autoBeaming = ##t
\set autoBeaming = ##t

son equivalentes.

Los ajustes que se aplican solamente a un único paso de tiempo se pueden escribir con \once, por ejemplo en

     
     c4
     \once \set fontSize = #4.7
     c4
     c4

[image of music]

la propiedad fontSize se deshace automáticamente después de la segunda nota.

En el manual de Referencia de funcionamiento interno hay una descripción completa de todas las propiedades de contexto disponibles, consulte Tunable context properties.

Esta página corresponde a LilyPond-2.11.58 (rama de desarrollo).

Informe de los fallos a través de la lista en español lilypond-es, o en inglés a través de http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs.

Se agradecen las sugerencias para la documentación.

Otros idiomas: English, français.