Uso de break-visibility (visibilidad en el salto)
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
Visibilidad y color de los objetos. 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 |
KeyCancellation | Staff | begin-of-line-invisible |
KeySignature | Staff | begin-of-line-visible |
ClefModifier | 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:
\relative { f'4 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 la sección siguiente.
- Las repeticiones dobles de tipo porcentaje se imprimen todas
siempre o bien no se imprimen nunca. Utilice
begin-of line-invisible
para imprimirlas yall-invisible
para suprimirlas. - Armadura: véase la sección siguiente.
- ClefModifier: véase la sección siguiente.