@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@ignore
-Translation of GIT committish: 4e7839892d676e4863e07e11ea4968cffe34f97f
+Translation of GIT committish: a43fe59b0205af99f84532935b103d0c064b4526
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.17.20"
+@c \version "2.19.2"
@node Cambiar los valores por omisión
@chapter Cambiar los valores por omisión
Los contextos se disponen de forma jerárquica:
@menu
+* Definiciones de salida - estructura de los contextos::
* Score. El contexto maestro::
* Contextos del nivel superior. Contenedores de pentagramas::
* Contextos de nivel intermedio. Pentagramas::
* Contextos del nivel más bajo. Voces::
@end menu
+@node Definiciones de salida - estructura de los contextos
+@unnumberedsubsubsec Definiciones de salida - estructura de los contextos
+@translationof Output definitions - blueprints for contexts
+
+Esta sección explica la relevancia de las definiciones de salida
+cuando se trabaja con los contextos. Más adelante ofrecemos
+ejemplos de definiciones de salida reales (véase
+@ref{Cambiar todos los contextos del mismo tipo}).
+
+@cindex salida, definiciones de
+@funindex \layout
+Aunque la música escrita en un archivo haga referencia a tipos y
+nombres de contexto, los contextos se crean solamente cuando la
+música se está realmente interpretando. LilyPond interpreta la
+música bajo el control de una @q{definición de salida} y puede
+hacerlo así para varias definiciones de salida distintas, dando
+como resultado distintas salidas también. La definicion de salida
+que corresponde a la impresión de la música se especifica mediante
+@code{\layout}.
+
+@funindex \midi
+Una definición de salida mucho más sencilla que se usa para la
+producción de MIDI se especifica mediante @code{\midi}.
+Internamente, LilyPond utiliza varias otras definiciones de
+salida, como cuando se usa el combinador de particellas
+(@ref{Combinación automática de las partes}) o se crean fragmentos
+de notas guía citadas (@ref{Citar otras voces}).
+
+Las definiciones de salida establecen la relación entre los
+contextos así como sus respectivos valores predeterminados.
+Aunque la mayor parte de los cambios se suelen hacer dentro de un
+bloque @code{\layout}, los ajustes de valores relacionados con el
+MIDI solamente tienen efecto cuando se hacen dentro de un bloque
+@code{\midi} block.
+
+@funindex autoBeaming
+Algunos ajustes afectan a varias salidas: por ejemplo, si se
+desactiva el barrado automático, @code{autoBeaming}, dentro de
+algún contexto, las barras cuentan como melismas en lo que
+respecta a la correspondencia entre la música y la letra, como se
+describe en @ref{Duración automática de las sílabas}. Esta
+correspondencia se hace tanto para la salida impresa como para el
+MIDI. Si los cambios hechos sobre el @code{autoBeaming} dentro de
+la definición de contexto de un bloque @code{\layout} no se
+repiten dentro del correspondiente bloque @code{\midi}, la letra y
+la música dejarán de estar sincronizadas dentro del MIDI.
+
+@seealso
+Archivos instalados:
+@file{ly/engraver-init.ly}.
+@file{ly/performer-init.ly}.
@node Score. El contexto maestro
@unnumberedsubsubsec Score. El contexto maestro
armaduras están siempre alineados entre los distintos pentagramas.
Se crea implícitamente una instancia del contexto Score cuando se
-procesa un bloque @code{\score @{@dots{}@}} o @code{\layout
-@{@dots{}@}}.
+procesa un bloque @code{\score @{@dots{}@}}.
@node Contextos del nivel superior. Contenedores de pentagramas
@strong{@emph{RhythmicStaff}}
-Como @code{Staff}, pero para imprimir ritmos. Se ignoran las alturas
-de las notas; las notas se imprimen sobre una línea.
+Como @code{Staff}, pero para imprimir ritmos. Al imprimir
+se ignoran las alturas de las notas; las notas se imprimen
+sobre una línea. La salida de MIDI conserva las alturas
+sin modificación.
@strong{@emph{TabStaff}}
similar. Véase @rlearning{Organizar las piezas mediante variables}.
@item
-
@code{\context} sin ningún nombre corresponderá con el primer
contexto que se encuentre entre los creados previamente que sean
del mismo tipo dentro de la misma jerarquía de contextos, incluso
@code{\with}, véase @ref{Cambiar solamente un contexto determinado}.
@seealso
-
Manual de aprendizaje:
@rlearning{Organizar las piezas mediante variables}.
\new Staff \with {
\consists "Timing_translator"
\consists "Default_bar_line_engraver"
- } {
+ }
+ \relative c'' {
\time 3/4
c4 c c c c c
}
\new Staff \with {
\consists "Timing_translator"
\consists "Default_bar_line_engraver"
- } {
+ }
+ \relative c'' {
\time 2/4
c4 c c c c c
}
@funindex \context
@funindex \layout
-Los ajustes de contexto que se han de usar de forma predeterminada
-dentro de @code{Score}, @code{Staff}, @code{Voice} y otros contextos
+Los ajustes de contexto predeterminados que se han de usar para la composición
+tipográfica dentro de @code{Score}, @code{Staff}, @code{Voice} y otros contextos
se pueden especificar en un bloque @code{\context} dentro de cualquier
-bloque @code{\layout}. El bloque @code{\layout} se debe colocar
+bloque @code{\layout}.
+
+Los ajustes para la salida MIDI, al contrario que para la
+composición tipográfica, se tendrán que especificar aparte en
+bloques @code{\midi} (véase
+@ref{Definiciones de salida - estructura de los contextos}).
+
+El bloque @code{\layout} se debe colocar
dentro del bloque @code{\score} al que se aplica, después de la
música.
de las instrucciones @code{\new} @var{context-type}:
@example
-\new Staff
-\with @{
- [ajustes de contexto para esta única instancia de contexto]
-@} @{
-...
+\new Staff \with @{ [ajustes de contexto para esta instancia de contexto solamente] @}
+@{
+ @dots{}
@}
@end example
+Dado que dicha @q{modificación de contexto} está especificada
+dentro de la música, afectará a @emph{todas} las salidas
+(tipografía @emph{y también} el MIDI), a diferencia de los cambios
+que se hacen dentro de una definición de salida.
+
Se pueden especificar los siguientes tipos de ajustes:
@itemize
@lilypond[quote,verbatim]
\score {
\new Staff {
- \new Voice
- \with {
- \override Stem.thickness = #4.0
- }
+ \new Voice \with { \override Stem.thickness = #4.0 }
{
\relative c'' {
a4^"Thick stems" a a a
a4 a a a
}
}
- \new Staff
- \with {
- fontSize = #-4
- } {
+ \new Staff \with { fontSize = #-4 }
+ {
\relative c'' {
a4^"Smaller font" a a a
a4 a a a
}
}
}
- \new Staff
- \with { \accidentalStyle dodecaphonic }
+ \new Staff \with { \accidentalStyle dodecaphonic }
{
- \new Voice
- \with { \dynamicUp }
+ \new Voice \with { \dynamicUp }
{
\relative c'' {
a4^"Dynamics above" a a a
@item
de lo contrario, se usa el valor tomado del bloque @code{\context} más
-reciente que corresponda dentro de los bloques @code{\layout},
+reciente que corresponda dentro de los bloques @code{\layout} o @code{\midi},
@item
de lo contrario se usa el valor predeterminado que LilyPond lleva
@ref{Contextos del nivel más bajo. Voces},
@ref{La instrucción set},
@ref{La instrucción override},
-@ref{El bloque \layout}.
+@ref{El bloque layout,,El bloque @code{@bs{}layout}}.
@node Definir contextos nuevos
\consists "Pitch_squash_engraver"
squashedPosition = #0
\override NoteHead.style = #'slash
- \override Stem.transparent = ##t
+ \hide Stem
\alias Voice
}
\context { \Staff
@example
\override NoteHead.style = #'slash
-\override Stem.transparent = ##t
+\hide Stem
@end example
-Todos estos añadidos tienen que cooperar, y esto se consigue con un
-añadido especial, que se debe marcar con la palabra clave
-@code{\type}. Este será siempre @code{Engraver_group},
+Todos estos complementos o plug-ins tienen que comunicarse bajo el
+control del contexto. Los mecanismos con el que se comunican los
+contextos se establecen mediante la declaración del @code{\type}
+(tipo) del contexto. Dentro de un bloque @code{\layout}, casi
+todos los contextos serán del tipo @code{Engraver_group}. Algunos
+contextos especiales y los contextos de los bloques @code{\midi}
+usan otros tipos. La copia y la modificación de una definición de
+contexto existente también cumplimentan el tipo. Como este
+ejemplo crea una definición partiendo de cero, tiene que ser
+especificada explícitamente.
@example
\type "Engraver_group"
\consists "Pitch_squash_engraver"
squashedPosition = #0
\override NoteHead.style = #'slash
- \override Stem.transparent = ##t
+ \hide Stem
\alias Voice
@}
@end example
@}
@end example
+Para completar el ejemplo, los cambios que afectan a la jerarquía
+de contextos se deben repetir dentro de un bloque @code{\midi} de
+manera que la salida MIDI dependa de las mismas relaciones de
+contexto.
+
@seealso
Referencia de funcionamiento interno:
anidarse dentro de él.
La lista @qq{accepts} de un contexto se puede cambiar con las
-instrucciones @code{\accepts} (acepta) y @code{\denies} (niega).
+instrucciones @code{\accepts} (acepta) o @code{\denies} (niega).
@code{\accepts} añade un contexto a la lista @qq{accepts} y
-@code{\denies} elimina un contexto de la lista. Por ejemplo,
-normalmente no sería deseable que los acordes de cifrado americano
-estuvieran anidados dentro de un contexto @code{Staff}, por lo que el
-contexto @code{ChordNames} no se incluye de forma predeterminada
-dentro de la lista @qq{accepts} del contexto @code{Staff}, pero podría
-hacerse si fuera necesario:
+@code{\denies} elimina un contexto de la lista.
+
+Por ejemplo, un grupo de pentagramas con un corchete cuadrado no
+se encuentra normalmente en el interior de un pentagrama con llave
+curva que tenga conectadas las líneas divisorias, y un
+@code{GrandStaff} para piano no acepta un @code{StaffGroup} dentro
+de él, de forma predeterminada.
@lilypond[verbatim,quote]
\score {
- \new Staff {
- c' d' e' f'
- \chords { d1:m7 b1:min7.5- }
- }
+ \new GrandStaff <<
+ \new StaffGroup <<
+ \new Staff { c'1 }
+ \new Staff { d'1 }
+ >>
+ \new Staff { \set Staff.instrumentName = bottom f'1 }
+ >>
}
@end lilypond
+Sin embargo, usando la instrucción @code{\accepts}, se puede
+añadir un @code{StaffGroup} al contexto @code{GrandStaff}:
+
@lilypond[verbatim,quote]
\score {
- \new Staff {
- c' d' e' f'
- \chords { d1:m7 b1:min7.5- }
- }
+ \new GrandStaff <<
+ \new StaffGroup <<
+ \new Staff { c'1 }
+ \new Staff { d'1 }
+ >>
+ \new Staff { \set Staff.instrumentName = bottom f'1 }
+ >>
\layout {
\context {
- \Staff
- \accepts "ChordNames"
+ \GrandStaff
+ \accepts "StaffGroup"
}
}
}
@subsection @code{\set} frente a @code{\override}
@translationof set versus override
-@c HACER: probablemente esta sección es innecesaria.
-
-@ignore
-We have seen two methods of changing properties: @code{\set} and
-@code{\override}. There are actually two different kinds of
-properties.
-
-@code{fontSize} is a special property: it is equivalent to
-entering @code{\override @dots{} #'font-size} for all pertinent
-objects. Since this is a common change, the special
-property (modified with @code{\set}) was created.
-
-@end ignore
+@c TODO Should't a bunch of that be explained earlier?
+@funindex \set
+@funindex \override
+Tanto @code{\set} como @code{\override} manipulan propiedades
+asociadas a contextos. En ambos casos las propiedades tienen en
+cuenta la jerarquía de contextos: las propiedades no establecidas en
+el propio contexto presentan los valores del contexto padre
+respectivo.
+
+El valor y la duración en el tiempo de las propiedades de contexto son
+dinámicos y están disponibles solamente cuando la música se está
+interpretando o @q{iterando}. En el momento de la creación del
+contexto, se inicializan las propiedades a partir de la definición de
+contexto correspondiente y las posibles modificaciones de contexto.
+Después de esto, cualquier cambio se obtiene a través de instrucciones
+de establecimiento de propiedades dentro de la propia música.
+
+Ahora bien, las definiciones de grob (objetos gráficos) son una clase
+especial de propiedades de contexto. Dado que su estructura,
+mantenimiento y utilización es distinta de las propiedades de contexto
+ordinarias, se accede a ellas con un conjunto de instrucciones
+diferente, y se estudian por separado dentro de la documentación.
+
+A diferencia de las propiedades de contexto normales, las definiciones
+de grob están subdivididas en propiedades de grob. Un @qq{grob}
+(objeto gráfico) se crea normalmente por parte de un grabador en el
+momento de la interpretación de una expresión musical y recibe sus
+propiedades iniciales de la definición de grob en curso del contexto
+del grabador. El grabador (u otras partes del @q{backend} de
+LilyPond) pueden después añadir o modificar propiedades del grob, pero
+ello no afecta a la definición de grob del contexto.
+
+Lo que conocemos como @q{propiedades de grob} en el contexto del
+trucaje a nivel de usuario son en realidad las propiedades de la
+definición de grob de un contexto. A diferencia de las propiedades de
+contexto normales, las definiciones de grob mantienen la contabilidad
+necesaria para seguir la pista de sus partes, las propiedades de grob
+individuales (e incluso subpropiedades de éstos), de forma separada,
+de forma que es posible definir dichas partes dentro de contextos
+diferentes y hacer que la definición de grob en su conjunto, en el
+momento de la creación del grob, se monte a partir de las piezas
+proporcionadas en diferentes contextos entre el contexto actual y sus
+contextos padre.
+
+Las definiciones de grob se manipulan usando @code{\override} y
+@code{\revert} y tienen un nombre que empieza con una letra mayúscula
+(como @samp{NoteHead}) mientras que las propiedades de contexto
+ordinarias se manipulan utilizando @code{\set} y @code{\unset} y se
+nombran empezando en letra minúscula.
+
+@cindex tweak, relación con @code{\override}
+@funindex \tweak
+@funindex \overrideProperty
+Las instrucciones especiales @code{\tweak} y @code{\overrideProperty}
+cambian las propiedades de grob pasando por encima de las propiedades
+de contexto completamente. En su lugar, atrapan a los grobs tan
+pronto se crean, y después establecen propiedades sobre ellos
+directamente cuando se originan a partir de un evento musical trucado
+o son de un tipo en particular, respectivamente.
@node Modificación de las listas-A
@subsection Modificación de las listas-A
@end ignore
@lilypond[verbatim,quote,relative=2]
-a~a
+a~ a
a
% increase the length of the tie
-\tweak minimum-length #5
-~a
+~ a
@end lilypond
@lilypond[verbatim,quote,relative=2]
las ligaduras de expresión y de fraseo:
@lilypond[verbatim,quote,relative=2]
-a( a)
+a( g)
a
-\tweak minimum-length #5
-( a)
+( g)
-a\( a\)
+a\( g\)
a
-\tweak minimum-length #5
-\( a\)
+\( g\)
@end lilypond
Para algunos objetos de presentación, la propiedad
@translationof Removing the stencil
@cindex sello, eliminar
+@funindex \omit
Todo objeto de presentación tiene una propiedad stencil (sello). De
forma predeterminada está establecida a la función específica que
a a a
@end lilypond
+Esta operación, bastante común, tiene la forma abreviada @code{\omit}
+como atajo:
+
+@lilypond[quote,verbatim,relative=1]
+a1 a
+\omit Score.BarLine
+a a
+\undo \omit Score.BarLine
+a a a
+@end lilypond
+
@node Hacer transparentes los objetos
@unnumberedsubsubsec Hacer transparentes los objetos
@translationof Making objects transparent
@cindex transparentes, hacer los objetos
+@funindex \hide
Todo objeto de presentación tiene una propiedad transparent
(transparente) que de forma predeterminada está establecida a
a a
@end lilypond
+Esta operación, bastante común, tiene la forma abreviada @code{\hide}
+como atajo:
+
+@lilypond[quote,verbatim,relative=2]
+a4 a
+\once \hide NoteHead
+a a
+@end lilypond
+
@node Pintar los objetos de blanco
@unnumberedsubsubsec Pintar los objetos de blanco
* Agrupación vertical de objetos gráficos::
* Modificación de los sellos::
* Modificación de las formas::
+* Modificación de objetos de extensión divididos::
* Contenedores unpure-pure::
@end menu
predeterminado, con el que se alinean las marcas de ensayo:
@lilypond[verbatim,quote,relative=1]
-% The rehearsal mark will be aligned to right edge of the Clef
+% The rehearsal mark will be aligned to the right edge of the Clef
\override Score.RehearsalMark.break-align-symbols = #'(clef)
\key a \major
\clef treble
\mark "↓"
e1
-% The rehearsal mark will be centered above the Time Signature
+% The rehearsal mark will be aligned to the left edge of the Time Signature
\override Score.RehearsalMark.break-align-symbols = #'(time-signature)
\key a \major
\clef treble
@lilypond[verbatim,quote,relative=1]
<<
- { e1~ e }
+ { e1~ 1 }
\\
{ r4 <g c,> <g c,> <g c,> }
>>
<<
{
\shape #'((0 . 0.5) (0 . 0.5) (0 . 0.5) (0 . 0.5)) Tie
- e1~ e
+ e1~ 1
}
\\
{ r4 <g c,> <g c,> <g c,> }
@rinternals{TieColumn}.
+@node Modificación de objetos de extensión divididos
+@subsection Modificación de objetos de extensión divididos
+@translationof Modifying broken spanners
+
+@menu
+* Uso de alterBroken::
+@end menu
+
+@node Uso de alterBroken
+@unnumberedsubsubsec Uso de @code{\alterBroken}
+@translationof Using alterBroken
+
+@cindex extensión, modificación de objetos de
+@cindex divididos, modificación de objetos de extensión
+@funindex \alterBroken
+
+Cuando un @qq{spanner} u objeto extenso atraviesa uno o varios saltos
+de línea, cada fragmento hereda los atributos del objeto de extensión
+original. Así, el trucado ordinario de un objeto dividido aplica las
+mismas modificaciones a todos y cada uno de sus segmentos. En el
+ejemplo que aparece a continuación, la sobreescritura de
+@code{thickness} (grosor) afecta a la ligadura a ambos lados del salto
+de línea.
+
+@lilypond[verbatim,quote,ragged-right,relative=2]
+r2
+\once\override Slur.thickness = 10
+c8( d e f
+\break
+g8 f e d) r2
+@end lilypond
+
+Es posible modificar de forma independiente el aspecto de los
+fragmentos individuales de un objeto de extensión dividido, con la
+instrucción @code{\alterBroken}. Esta instrucción puede producir un
+@code{\override} o bien un @code{\tweak} de una propiedad del objeto
+de extensión.
+
+La sintaxis de @code{\alterBroken} es
+
+@example
+[-]@code{\alterBroken} @var{propiedad} @var{valores} @var{elemento}
+@end example
+
+El argumento @var{valores} es una lista de valores, uno por cada
+fragmento. Si @var{elemento} el el nombre de un grob como @code{Slur}
+o @code{Staff.PianoPedalBracket}, el resultado es una instrucción de
+sobreescritura @code{\override} del tipo de grob especificado. Si
+@var{elemento} es una expresión musical como @qq{(} o @qq{[} el
+resultado es la misma expresión musical con el correspondiente truco
+aplicado.
+
+El guión inicial se debe utilizar con la forma de trucaje,
+@code{\tweak}. No lo escriba cuando utilice @code{\alterBroken} como
+una operación de sobreescritura, @code{\override}.
+
+En su uso como @code{\override}, @code{\alterBroken} puede ir
+precedido de @code{\once} o @code{\temporary} y ser revertido con
+@code{\revert} con el argumento @var{propiedad}.
+
+EL código siguiente aplica un @code{\override} independiente a cada
+uno de los fragmentos de la ligadura del ejemplo anterior:
+
+@lilypond[verbatim,quote,ragged-right,relative=2]
+r2
+\alterBroken thickness #'(10 1) Slur
+c8( d e f
+\break
+g8 f e d) r2
+@end lilypond
+
+La instrucción @code{\alterBroken} se puede usar con cualquier objeto
+de extensión, incluidos @code{Tie}, @code{PhrasingSlur}, @code{Beam} y
+@code{TextSpanner}. Por ejemplo, un editor que está preparando una
+edición académica podría desear indicar la ausencia de parte de una
+ligadura de fraseo en una fuente haciendo discontinuo solamente el
+segmento que se ha añadido. El siguiente ejemplo ilustra de qué
+manera se puede hacer esto, en este caso usando la forma @code{\tweak}
+de la instrucción:
+
+@lilypond[verbatim,quote,ragged-right,relative=2]
+% The empty list is conveniently used below, because it is the
+% default setting of dash-definition, resulting in a solid curve.
+c2-\alterBroken dash-definition #'(() ((0 1.0 0.4 0.75))) \(e
+\break
+g2 e\)
+@end lilypond
+
+Es importante comprender que @code{\alterBroken} fija cada pieza del
+objeto fragmentado al valor correspondiente dentro del argumento
+@var{valores}. Cuando hay menos valores que piezas, cualquier
+fragmento adicional recibe la asignación de la lista vacía. Esto
+puede conllevar resultados no deseados si la propiedad de disposición
+no está establecida a la lista vacía de forma predeterminada. En
+estos casos, se debe asignar a cada segmento un valor adecuado.
+
+@knownissues
+Los saltos de línea pueden ocurrir en distintos lugares según cambia
+la disposición de la música. Los ajustes elegidos para
+@code{\alterBroken} podrían no ser adecuados para un objeto de
+extensión que ya no está dividido o que se fragmenta en más piezas que
+antes. El uso explícito (manual) de saltos de línea mediante
+@code{\break} puede prevenir situaciones como ésta.
+
+La instrucción @code{\alterBroken} no es efectiva para propiedades de
+los objetos extensos accedidas antes del salto de línea, como
+@code{direction}.
+
+@seealso
+Extender LilyPond:
+@rextend{Trucos difíciles}.
+
+
@node Contenedores unpure-pure
@subsection Contenedores unpure-pure
@translationof Unpure-pure containers
\once \override TextScript.padding = #padding
#})
-\relative c''' {
+\relative c'' {
c4^"piu mosso" b a b
\padText #1.8
- c4^"piu mosso" d e f
+ c4^"piu mosso" b a b
\padText #2.6
- c4^"piu mosso" fis a g
+ c4^"piu mosso" b a b
}
@end lilypond