Referencia de la notación de GNU LilyPond: 5.4.6 Visibility of objects

### 5.4.6 Visibility of objects

Hay cuatro formas principales en que se puede controlar la visibilidad de los objetos de presentación: se puede eliminar su sello, se pueden volver transparentes, se pueden pintar de blanco, o se puede sobreescribir su propiedad `break-visibility`. Las tres primeras se aplican a todos los objetos de presentación; la última sólo a unos pocos: los objetos divisibles. El Manual de aprendizaje introduce estas cuatro técnicas, véase of objects Visibility and color of objects.

Hay también algunas otras técnicas que son específicas de ciertos objetos de presentación. Se estudian bajo Consideraciones especiales.

#### Removing the stencil

Todo objeto de presentación tiene una propiedad stencil (sello). De forma predeterminada está establecida a la función específica que dibuja ese objeto. Se se sobreescribe eesta propiedad a `#f` no se llama a ninguna función y el objeto no se dibuja. La acción predeterminada se puede recuperar con `\revert`.

>     a1 a
>     \override Score.BarLine #'stencil = ##f
>     a a
>     \revert Score.BarLine #'stencil
>     a a a

#### Making objects transparent

Todo objeto de presentación tiene una propiedad transparent (transparente) que de forma predeterminada está establecida a `#f`. Si se fija a `#t` el objeto aún ocupa espacio pero es invisible.

>     a4 a
>     \once \override NoteHead #'transparent = ##t
>     a a

#### Painting objects white

Todo objeto de presentación tiene una propiedad de color que de forma predeterminada está establecida a `black` (negro). Si se sobreescribe a `white` (blanco) el objeto será indistinguible del fondo blanco. Sin embargo, si el objeto cruza a otros objetos, el color de los puntos de cruce queda determinado por el orden en que se dibujan estos objetos, lo que puede dejar una imagen fantasma del objeto blanco, como puede verse aquí:

>     \override Staff.Clef #'color = #white
>     a1

Se puede evitar esto cambiando el orden de impresión de los objetos. Todos los objetos de presentación tienen una propiedad `layer` (capa) que se debe establecer a un valor entero. Los objetos con el valor de `layer` más bajo se dibujan primero, después se dibujan los objetos con valores progresivamente mayores, y así los objetos con valores más altos se dibujan encima de los que tienen valores más bajos. De forma predeterminada, casi todos los objetos tienen asignado un valor `layer` de `1`, aunque algunos objetos, entre ellos el pentagrama y las líneas divisorias, `StaffSymbol` y `BarLine`, tienen asignado un calor de `0`. El orden de impresión de los objetos con el mismo valor de `layer` es indeterminado.

En el ejemplo de arriba, la clave blanca, con un valor `layer` predeterminado de `1`, se dibuja después de las líneas del pentragrama (valor `layer` predeterminado de `0`), sobreimpresionándolas. Para cambiarlo, se debe dar al objeto `Clef` un valor de `layer` más bajo, digamos `-1`, para que se dibuje antes:

>     \override Staff.Clef #'color = #white
>     \override Staff.Clef #'layer = #-1
>     a1

#### Using break-visibility

Casi todos los objetos de presentación se imprimen una sola vez, pero algunos como las líneas divisorias, claves, indicaciones de compás y armaduras de tonalidad, se pueden tener que imprimir dos veces cuando se produce un salto de línea : una vez al final de la línea y otra al comienzo de la siguiente. Estos objetos reciben el nombre de divisibles, y tienen una propiedad, `break-visibility` (visibilidad en el salto), para controlar su visibilidad en las tres posiciones en que pueden aparecer: al comienzo de una línea, dentro de la línea si se produce un cambio, y al final de la línea si el cambio se produce en ese lugar.

Por ejemplo, la indicación de compás se imprime de forma predeterminada al comienzo de la primera línea y en ningún otro lugar a no ser que cambie, en cuyo caso se imprime en el punto en que se produce el cambio. Si este cambio se produce al final de una línea, la nueva indicación de compás se imprime al principio de la línea siguiente y también al final de la línea anterior como indicación de precaución.

Este comportamiento se controla por medio de la propiedad `break-visibility`, que se explica en Visibility and color of objects. Esta propiedad toma un vector de tres valores booleanos que, por orden, determinan si el objeto se imprime al final, dentro, o al principio de la línea. O, para ser más exactos: antes del salto de línea, si no hay salto, o después del salto.

Como alternativa se puede especificar cualquiera de las ocho combinaciones mediante funciones predefinidas cuya definición está en ‘`scm/output-lib.scm`’, donde las tres últimas columnas indican si los objetos de presentación serán visibles en las posiciones que se muestran en el encabezamiento de cada columna:

Forma | Forma | Antes del | Si no hay | Después del
--- | --- | --- | --- | ---
de función | de vector | salto | salto | salto
`all-visible` | `'#(#t #t #t)` | sí | sí | sí
`begin-of-line-visible` | `'#(#f #f #t)` | no | no | sí
`center-visible` | `'#(#f #t #f)` | no | sí | no
`end-of-line-visible` | `'#(#t #f #f)` | sí | no | no
`begin-of-line-invisible` | `'#(#t #t #f)` | sí | sí | no
`center-invisible` | `'#(#t #f #t)` | sí | no | sí
`end-of-line-invisible` | `'#(#f #t #t)` | no | sí | sí
`all-invisible` | `'#(#f #f #f)` | no | no | no

Los ajustes predeterminados de `break-visibility` dependen del objeto de presentación. La tabla siguiente muestra todos los objetos de presentación de interés que resultan afectados por `break-visibility` y el ajuste predeterminado de esta propiedad:

Objeto | Contexto usual | Valor predet.
--- | --- | ---
`BarLine` | `Score` | calculado
`BarNumber` | `Score` | `begin-of-line-visible`
`BreathingSign` | `Voice` | `begin-of-line-invisible`
`Clef` | `Staff` | `begin-of-line-visible`
`Custos` | `Staff` | `end-of-line-visible`
`DoublePercentRepeat` | `Voice` | `begin-of-line-invisible`
`KeySignature` | `Staff` | `begin-of-line-visible`
`OctavateEight` | `Staff` | `begin-of-line-visible`
`RehearsalMark` | `Score` | `end-of-line-invisible`
`TimeSignature` | `Staff` | `all-visible`

El ejemplo de abajo muestra el uso de la forma de vector para controlar la visibilidad de las líneas divisorias:

>     f4 g a b
>     f4 g a b
>     % Remove bar line at the end of the current line
>     \once \override Score.BarLine #'break-visibility = #'#(#f #t #t)
>     \break
>     f4 g a b
>     f4 g a b

Aunque los tres componentes del vector utilizado para sobreescribir `break-visibility` deben estar presentes, no todos son efectivos para todos los objetos de presentación, y algunas combinaciones pueden incluso dar errores. Son de aplicación las siguientes limitaciones:

- Las líneas divisorias no se pueden imprimir al principio de la línea.
- No se puede imprimir el número de compás al principio de la primera línea a no ser que su valor establecido sea distinto de 1.
- Clave: véase más abajo
- Las repeticiones dobles de tipo porcentaje se imprimen completamente o se suprimen por completo. Utilice begin-of line-invisible para imprimirlas y all-invisible para suprimirlas.
- Armadura: véase más abajo
- OctavateEight: véase más abajo

#### Special considerations

Visibilidad después de un cambio explícito

La propiedad `break-visibility` controla la visibilidad de las armaduras y cambios de clave sólo al principio de las líneas, es decir, después de un salto. No tiene ningún efecto sobre la visibilidad de la armadura o la clave después de un cambio explícito de tonalidad o de clave dentro o al final de una línea. En el ejemplo siguiente la armadura que sigue al cambio explícito de tonalidad a Si bemol mayor es visible incluso con `all-invisible` establecido.

>     \key g \major
>     f4 g a b
>     % Try to remove all key signatures
>     \override Staff.KeySignature #'break-visibility = #all-invisible
>     \key bes \major
>     f4 g a b
>     \break
>     f4 g a b
>     f4 g a b

La visibilidad de estos cambios explícitos de tonalidad y de clave se controla por medio de las propiedades `explicitKeySignatureVisibility` y `explicitClefVisibility`. Son los equivalentes de la propiedad `break-visibility` y las dos toman un vector de tres valores booleanos o las funciones predefinidas relacionadas anteriormente, exactamente igual que `break-visibility`. Las dos son propiedades del contexto Staff, no de los propios objetos de presentación, y por tanto se establecen utilizando la instrucción `\set`. Las dos están establecidas de forma predeterminada al valor `all-visible`. Estas propiedades controlan sólo la visibilidad de las armaduras y las claves que resultan de los cambios explícitos y no afectan a las armaduras y tonalidades que están al principio de las líneas; para quitarlas, aún se debe sobreescribir la propiedad `break-visibility` en el objeto correspondiente.

>     \key g \major
>     f4 g a b
>     \set Staff.explicitKeySignatureVisibility = #all-invisible
>     \override Staff.KeySignature #'break-visibility = #all-invisible
>     \key bes \major
>     f4 g a b \break
>     f4 g a b
>     f4 g a b

Visibilidad de las alteraciones de precaución

Para eliminar las alteraciones de precaución que se imprimen en un cambio de tonalidad explícito, establezca la propiedad `printKeyCancellation` del contexto Staff a `#f`:

>     \key g \major
>     f4 g a b
>     \set Staff.explicitKeySignatureVisibility = #all-invisible
>     \set Staff.printKeyCancellation = ##f
>     \override Staff.KeySignature #'break-visibility = #all-invisible
>     \key bes \major
>     f4 g a b \break
>     f4 g a b
>     f4 g a b

Con estas sobreescrituras solamente permanecen las alteraciones accidentales delante de las notas para indicar el cambio de tonalidad.

Automatic bars

Como caso especial, la impresión de las líneas divisorias también se puede inhabilitar estableciendo la propiedad `automaticBars` en el contexto Score. Si se fija a `#f`, las barras de compás no se imprimen automáticamente; se deben crear explícitamente con una instrucción `\bar`. A diferencia de la instrucción predefinida `\cadenzaOn`, los compases se siguen contando. La generación de compases continúa de acuerdo a esta cuenta si esta propiedad se establece posteriormente a `#t`. Si se fija al valor `#f`, sólo pueden producirse saltos de línea en instrucciones `\bar` explícitas.

Octavated clefs

El pequeño símbolo de octava sobre las claves en octava alta o baja se produce por parte del objeto `OctavateEight`. Su visibilidad se controla independientemente de la del objeto `Clef`, así que es necesario aplicar las sobreescrituras correspondientes `break-visibility` tanto a los objetos `Clef` como `OctavateEight` para suprimir completamente estos símbolos de clave al comienzo de cada línea.

Para los cambios de clave explícitos, la propiedad `explicitClefVisibility` controla tanto el símbolo de clave como el símbolo de octava asociado.

#### Véase también

Manual de aprendizaje: Visibility and color of objects

Other languages: English.

#### Manual de referencia de la notación