+@node Visibility of objects
+@subsection Visibility of objects
+
+@cindex objetos, visibilidad de
+@cindex grobs, visibilidad de
+@cindex visibilidad de los objetos
+
+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 @code{break-visibility}. Las tres primeras
+se aplican a todos los objetos de presentación; la última sólo a unos
+pocos: los objetos @emph{divisibles}. El Manual de aprendizaje
+introduce estas cuatro técnicas, véase @rlearning{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.
+
+@menu
+* Removing the stencil::
+* Making objects transparent::
+* Painting objects white::
+* Using break-visibility::
+* Special considerations::
+@end menu
+
+
+@node Removing the stencil
+@unnumberedsubsubsec Removing the stencil
+
+@cindex sello, eliminar
+
+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. Si se sobreescribe esta propiedad a @code{#f} no
+se llama a ninguna función y el objeto no se dibuja. La acción
+predeterminada se puede recuperar con @code{\revert}.
+
+@lilypond[quote,verbatim,relative=1]
+a1 a
+\override Score.BarLine #'stencil = ##f
+a a
+\revert Score.BarLine #'stencil
+a a a
+@end lilypond
+
+@node Making objects transparent
+@unnumberedsubsubsec Making objects transparent
+
+@cindex transparentes, hacer los objetos
+
+Todo objeto de presentación tiene una propiedad transparent
+(transparente) que de forma predeterminada está establecida a
+@code{#f}. Si se fija a @code{#t} el objeto aún ocupa espacio pero es
+invisible.
+
+@lilypond[quote,verbatim,relative=2]
+a4 a
+\once \override NoteHead #'transparent = ##t
+a a
+@end lilypond
+
+@node Painting objects white
+@unnumberedsubsubsec Painting objects white
+
+@cindex objetos, coloreado de
+@cindex coloreado de objetos
+@cindex capas
+@cindex impresión, orden de
+@cindex sobreescritura de objetos
+@cindex objetos, sobreescritura de
+@cindex grobs, sobreescritura de
+
+Todo objeto de presentación tiene una propiedad de color que de forma
+predeterminada está establecida a @code{black} (negro). Si se
+sobreescribe a @code{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í:
+
+@lilypond[quote,verbatim,relative=2]
+\override Staff.Clef #'color = #white
+a1
+@end lilypond
+
+Se puede evitar esto cambiando el orden de impresión de los objetos.
+Todos los objetos de presentación tienen una propiedad @code{layer}
+(capa) que se debe establecer a un valor entero. Los objetos con el
+valor de @code{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 @code{layer} de @code{1}, aunque algunos objetos,
+entre ellos el pentagrama y las líneas divisorias, @code{StaffSymbol}
+y @code{BarLine}, tienen asignado un calor de @code{0}. El orden de
+impresión de los objetos con el mismo valor de @code{layer} es
+indeterminado.
+
+En el ejemplo de arriba, la clave blanca, con un valor @code{layer}
+predeterminado de @code{1}, se dibuja después de las líneas del
+pentagrama (valor @code{layer} predeterminado de @code{0}),
+sobreimpresionándolas. Para cambiarlo, se debe dar al objeto
+@code{Clef} un valor de @code{layer} más bajo, digamos @code{-1}, para
+que se dibuje antes:
+
+@lilypond[quote,verbatim,relative=2]
+\override Staff.Clef #'color = #white
+\override Staff.Clef #'layer = #-1
+a1
+@end lilypond
+
+@node Using break-visibility
+@unnumberedsubsubsec Using break-visibility
+
+@c TODO Add making other objects breakable
+
+@cindex 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
+@emph{divisibles}, y tienen una propiedad, @code{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
+@code{break-visibility}, que se explica en
+@c Leave this ref on a newline - formats incorrectly otherwise -td
+@rlearning{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
+@file{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:
+
+@multitable {@code{begin-of-line-invisible}} {@code{'#(#t #t #t)}} {yes} {yes} {yes}
+@headitem Forma @tab Forma @tab Antes del @tab Si no hay @tab Después del
+@headitem de función @tab de vector @tab salto @tab salto @tab salto
+
+@item @code{all-visible} @tab @code{'#(#t #t #t)} @tab sí @tab sí @tab sí
+@item @code{begin-of-line-visible} @tab @code{'#(#f #f #t)} @tab no @tab no @tab sí
+@item @code{center-visible} @tab @code{'#(#f #t #f)} @tab no @tab sí @tab no
+@item @code{end-of-line-visible} @tab @code{'#(#t #f #f)} @tab sí @tab no @tab no
+@item @code{begin-of-line-invisible} @tab @code{'#(#t #t #f)} @tab sí @tab sí @tab no
+@item @code{center-invisible} @tab @code{'#(#t #f #t)} @tab sí @tab no @tab sí
+@item @code{end-of-line-invisible} @tab @code{'#(#f #t #t)} @tab no @tab sí @tab sí
+@item @code{all-invisible} @tab @code{'#(#f #f #f)} @tab no @tab no @tab no
+@end multitable
+
+Los ajustes predeterminados de @code{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
+@code{break-visibility} y el ajuste predeterminado de esta propiedad:
+
+@multitable @columnfractions .3 .3 .4
+
+@headitem Objeto @tab Contexto usual @tab Valor predet.
+
+@c omit Ambitus as it appears not to be affected by break-visibility -td
+@c @item @code{Ambitus} @tab as specified @tab @code{begin-of-line-visible}
+@item @code{BarLine} @tab @code{Score} @tab calculado
+@item @code{BarNumber} @tab @code{Score} @tab @code{begin-of-line-visible}
+@c omit the following item until it can be explained -td
+@c @item @code{BreakAlignGroup} @tab @code{Score} @tab calculated
+@item @code{BreathingSign} @tab @code{Voice} @tab @code{begin-of-line-invisible}
+@item @code{Clef} @tab @code{Staff} @tab @code{begin-of-line-visible}
+@item @code{Custos} @tab @code{Staff} @tab @code{end-of-line-visible}
+@item @code{DoublePercentRepeat} @tab @code{Voice} @tab @code{begin-of-line-invisible}
+@c omit KeyCancellation until it can be explained -td
+@c @item @code{KeyCancellation} @tab ?? @tab @code{begin-of-line-invisible}
+@item @code{KeySignature} @tab @code{Staff} @tab @code{begin-of-line-visible}
+@c omit LeftEdge until it can be explained -td
+@c @item @code{LeftEdge} @tab @code{Score} @tab @code{center-invisible}
+@item @code{OctavateEight} @tab @code{Staff} @tab @code{begin-of-line-visible}
+@item @code{RehearsalMark} @tab @code{Score} @tab @code{end-of-line-invisible}
+@item @code{TimeSignature} @tab @code{Staff} @tab @code{all-visible}
+
+@end multitable
+
+El ejemplo de abajo muestra el uso de la forma de vector para
+controlar la visibilidad de las líneas divisorias:
+
+@lilypond[quote,verbatim,relative=1,ragged-right]
+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
+@end lilypond
+
+Aunque los tres componentes del vector utilizado para sobreescribir
+@code{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:
+
+@itemize @bullet
+@item Las líneas divisorias no se pueden imprimir al principio de la línea.
+@item 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.
+@item Clave: véase más abajo
+@item 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.
+@item Armadura: véase más abajo
+@item OctavateEight: véase más abajo
+@end itemize
+
+@node Special considerations
+@unnumberedsubsubsec Special considerations
+
+@strong{@emph{Visibilidad después de un cambio explícito}}
+
+@cindex armadura, visibilidad después de un cambio explícito
+@cindex explicitKeySignatureVisibility
+@cindex clave, visibilidad después de un cambio explícito
+@cindex explicitClefVisibility
+
+La propiedad @code{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 @code{all-invisible} establecido.
+
+@lilypond[quote,verbatim,relative=1,ragged-right]
+\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
+@end lilypond
+
+La visibilidad de estos cambios explícitos de tonalidad y de clave se
+controla por medio de las propiedades
+@code{explicitKeySignatureVisibility} y @code{explicitClefVisibility}.
+Son los equivalentes de la propiedad @code{break-visibility} y las dos
+toman un vector de tres valores booleanos o las funciones predefinidas
+relacionadas anteriormente, exactamente igual que
+@code{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 @code{\set}. Las dos están establecidas de
+forma predeterminada al valor @code{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 @code{break-visibility} en el
+objeto correspondiente.
+
+@lilypond[quote,verbatim,relative=1,ragged-right]
+\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
+@end lilypond
+
+@strong{@emph{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
+@code{printKeyCancellation} del contexto Staff a @code{#f}:
+
+@lilypond[quote,verbatim,relative=1,ragged-right]
+\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
+@end lilypond
+
+Con estas sobreescrituras solamente permanecen las alteraciones
+accidentales delante de las notas para indicar el cambio de tonalidad.
+
+@c TODO Add visibility of cautionary accidentals before notes
+
+@strong{@emph{Automatic bars}}
+
+@cindex automaticBars
+@cindex líneas divisorias, eliminación
+
+Como caso especial, la impresión de las líneas divisorias también se
+puede inhabilitar estableciendo la propiedad @code{automaticBars} en
+el contexto Score. Si se fija a @code{#f}, las barras de compás no se
+imprimen automáticamente; se deben crear explícitamente con una
+instrucción @code{\bar}. A diferencia de la instrucción predefinida
+@code{\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 @code{#t}. Si se fija al valor @code{#f},
+sólo pueden producirse saltos de línea en instrucciones @code{\bar}
+explícitas.
+
+@c TODO Add example
+
+@strong{@emph{Octavated clefs}}
+
+@cindex octavadas, visibilidad de las claves
+@cindex visibilidad de las claves octavadas
+@cindex claves, visibilidad de la octavación
+
+El pequeño símbolo de octava sobre las claves en octava alta o baja se
+produce por parte del objeto @code{OctavateEight}. Su visibilidad se
+controla independientemente de la del objeto @code{Clef}, así que es
+necesario aplicar las sobreescrituras correspondientes
+@code{break-visibility} tanto a los objetos @code{Clef} como
+@code{OctavateEight} para suprimir completamente estos símbolos de
+clave al comienzo de cada línea.
+
+Para los cambios de clave explícitos, la propiedad
+@code{explicitClefVisibility} controla tanto el símbolo de clave como
+el símbolo de octava asociado.
+
+
+@seealso
+Manual de aprendizaje:
+@rlearning{Visibility and color of objects}
+
+
+@node Line styles
+@subsection Line styles
+
+Ciertas indicaciones de ejecución, p.ej., @i{rallentando},
+@i{accelerando} y los @i{trinos} se escriben como texto y se extienden
+sobre muchos compases mediante líneas, a veces punteadas u onduladas.
+
+Todos ellos usan las mismas rutinas que el glissando para dibujar los
+textos y las líneas, y por ello el ajuste fino de su comportamiento se
+hace de la misma manera. Se hace con un spanner (un objeto de
+extensión), y la rutina responsable de dibujar los objetos de
+extensión es @code{ly:line-interface::print}. Esta rutina determina la
+colocación exacta de los dos @i{extremos del objeto de extensión} y
+dibuja una línea entre ellos, en el estilo solicitado.
+
+He aquí un ejemplo de los distintos estilos de línea disponibles, y
+cómo aplicarles ajustes finos.
+
+@lilypond[relative=2,ragged-right,verbatim,fragment]
+d2 \glissando d'2
+\once \override Glissando #'style = #'dashed-line
+d,2 \glissando d'2
+\override Glissando #'style = #'dotted-line
+d,2 \glissando d'2
+\override Glissando #'style = #'zigzag
+d,2 \glissando d'2
+\override Glissando #'style = #'trill
+d,2 \glissando d'2
+@end lilypond
+
+Las posiciones de los puntos extremos del objeto de extensión se
+computan al vuelo para cada uno de los objetos gráficos, pero es
+posible sobreescribirlos:
+
+@lilypond[relative=2,ragged-right,verbatim,fragment]
+e2 \glissando f
+\once \override Glissando #'(bound-details right Y) = #-2
+e2 \glissando f
+@end lilypond
+
+El valor de @code{Y} está establecido a @code{-2} para el extremo
+derecho. El lado izquierdo se puede ajustar de forma similar
+especificando @code{left} en vez de @code{right}.
+
+Si no está establecido @code{Y}, el valor se computa a partir de la
+posición vertical de los puntos de anclaje izquierdo y derecho del
+extensor.
+
+Son posibles otros ajustes de los extensores, para ver más detalles
+consulte @ref{Spanners}.
+
+