@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@c This file is part of lilypond.tely
@ignore
-Translation of GIT committish: dfae8d829c653d1c011f8823cd51d09c33400b66
+Translation of GIT committish: 88f1608ae6fd17b05344bafb2f0721aafdac657b
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
* Overview of modifying properties::
* The set command::
* The override command::
-* set versus override::
* The tweak command::
+* set versus override::
@end menu
* Input modes::
* Direction and placement::
* Distances and measurements::
+* Staff symbol properties::
* Spanners::
+* Visibility of objects::
+* Line styles::
+* Rotating objects::
@end menu
@node Input modes
@ref{Page formatting},
@ref{Setting the staff size}.
+
+@node Staff symbol properties
+@subsection Staff symbol properties
+
+@cindex ajuste del símbolo del pentagrama
+@cindex dibujar el símbolo del pentagrama
+@cindex pentagrama, establecer el símbolo del
+
+@c TODO Extend or remove this section. See also NR 1.6.2 Staff symbol
+@c Need to think of uses for these properties. Eg 'line-positions
+@c is used in a snippet to thicken centre line.
+@c If retained, add @ref to here in 1.6.2 -td
+
+Se puede definir al mismo tiempo la posición vertical de las líneas de
+la pauta y el número de líneas de la misma. Como muestra el siguiente
+ejemplo, las posiciones de las notas no están influidas por las
+posiciones de las líneas de la pauta.
+
+@warning{La propiedad @code{'line-positions} sobreescribe a la
+propiedad @code{'line-count}. El número de líneas de la pauta está
+definido implícitamente por el número de elementos de la lista de
+valores de @code{'line-positions}.}
+
+@lilypond[verbatim,quote,relative=1]
+\new Staff \with {
+ \override StaffSymbol #'line-positions = #'(7 3 0 -4 -6 -7)
+}
+{ a4 e' f b | d1 }
+@end lilypond
+
+Se puede modificar la anchura de la pauta. Las unidades son espacios
+de pentagrama. El espaciado de los objetos dentro del pentagrama no
+resulta afectado por este ajuste.
+
+@lilypond[verbatim,quote,relative=1]
+\new Staff \with {
+ \override StaffSymbol #'width = #23
+}
+{ a4 e' f b | d1 }
+@end lilypond
+
+
@node Spanners
@subsection Spanners
@node Rotating layout objects
@unnumberedsubsubsec Rotating layout objects
-@untranslated
+@cindex rotating objects
+@cindex objects, rotating
+
+Todos los objetos de presentación que contemplan el interface
+@code{grob-interface} se pueden rotar estableciendo su propiedad
+@code{rotation}. Acepta una lista de tres elementos: el ángulo de la
+rotación en sentido antihorario, y las coordenadas x e y del punto con
+relación al punto de referencia del objeto, alrededor del que se va a
+realizar la rotación. El ángulo de rotación se pespecifica en grados
+y las coordenadas en espacios de pentagrama.
+
+El ángulo de rotación y las coordenadas del punto de rotación se deben
+determinar por ensayo y error.
+
+@cindex reguladores en ángulo
+@cindex ángulo, reguladores en
+
+Solamente en ciertas ocasiones es útil la rotación de objetos de
+presentación; el ejemplo siguiente muestra una situación en que puede
+serlo:
+
+@lilypond[quote,verbatim,relative=1]
+g4\< e' d' f\!
+\override Hairpin #'rotation = #'(20 -1 0)
+g,,4\< e' d' f\!
+@end lilypond
@node Rotating markup
@unnumberedsubsubsec Rotating markup
-@untranslated
+Todos los textos de marcado se pueden rotar para que se dispongan en
+cualquier ángulo predeciéndolos de la instrucción @code{\rotate}. La
+instrucción acepta dos argumentos: el ángulo de rotación en grados en
+sentido antihorario, y el texto que rotar. Los límites que ocupa el
+texto no se rotan: toman su valor a partir de los extremos de las
+coordenadas x e y del texto rotado. En el ejemplo siguiente la
+propiedad @code{outside-staff-priority} del texto se establece a
+@code{#f} para desactivar la evitación automática de colisiones, lo
+que empuja al texto a una posición muy alta.
+
+@lilypond[quote,verbatim,relative=1]
+\override TextScript #'outside-staff-priority = ##f
+g4^\markup { \rotate #30 "a G" }
+b^\markup { \rotate #30 "a B" }
+des^\markup { \rotate #30 "a D-Flat" }
+fis^\markup { \rotate #30 "an F-Sharp" }
+@end lilypond
@node Advanced tweaks
@section Advanced tweaks
-@untranslated
+Esta sección trata sobre distintos enfoques en la realización de
+ajustes finos a la apariencia de la partitura impresa.
@menu
* Aligning objects::
* Modifying shapes::
@end menu
+@seealso
+
+Manual de aprendizaje:
+@rlearning{Tweaking output},
+@rlearning{Other sources of information}.
+
+Referencia de la notación:
+@ref{Explaining the Internals Reference},
+@ref{Modifying properties},
+@ref{Interfaces for programmers}.
+
+Archivos de inicio:
+@file{scm/@/define@/-grobs@/.scm}.
+
+Fragmentos de código:
+@rlsr{Tweaks and overrides}.
+
+Referencia de funcionamiento interno:
+@rinternals{All layout objects}.
+
@node Aligning objects
@subsection Aligning objects
-@untranslated
+Los objetos gráficos que soportan el interface
+@code{self-alignment-interface} y/o el @code{side-position-interface}
+se pueden alinear contra un objeto colocado previamente, de diversas
+maneras. Para ver una lista de estos objetos, consulte
+@rinternals{self-alignment-interface} y
+@rinternals{side-position-interface}.
+
+Todos los objetos gráficos tienen un punto de referencia, una
+extensión horizontal y una extensión vertical. La extensión
+horizontal es una pareja de números que dan los desplazamientos a
+partir del punto de referencia de los bordes izquierdo y derecho,
+siendo negativos los desplazamientos hacia la izquierda. La extensión
+vertical es una pareja de números que dan el desplazamiento a partir
+del punto de referencia hasta los bordes inferior y superior, siendo
+negativos los deplazamientos hacia abajo.
+
+La posición de un objeto sobre el pentagrama viene dada por los
+valores de las propiedades @code{X-offset} e @code{Y-offset}. El
+valor de @code{X-offset} da el desplazamiento desde la coordenada x
+del punto de referencia del objeto padre, y el valor de
+@code{Y-offset} da el desplazamiento a partir de la línea central del
+pentagrama. Los valores de @code{X-offset} y @code{Y-offset} se
+pueden establecer directamente o se puede dejar que se calculen por
+parte de procedimientos para conseguir una alineación con el objeto
+padre de distintas maneras.
+
+@warning{Muchos objetos tienen consideraciones de posicionamiento
+especiales que hacen que se ignore o se modifique cualquier ajuste
+realizado a @code{X-offset} o a @code{Y-offset}, a pesar de que el
+objeto contemple el interface @code{self-alignment-interface}.}
+
+Por ejemplo, una alteración accidental se puede reposicionar
+verticalmente estableciendo @code{Y-offset} pero los cambios a
+@code{X-offset} no tienen ningún efecto.
+
+Las letras de ensayo se pueden alinear con objetos divisibles como
+líneas divisorias, claves, armaduras e indicaciones de compás. Hay
+propiedades especiales que se encuentran en
+@code{break-aligned-interface} para el posicionamiento de las letras
+de ensayo sobre dichos objetos.
@menu
* Setting @code{X-offset} and @code{Y-offset} directly::
@node Setting @code{X-offset} and @code{Y-offset} directly
@unnumberedsubsubsec Setting @code{X-offset} and @code{Y-offset} directly
-@untranslated
+Se pueden dar valores numéricos a las propiedades @code{X-offset} y
+@code{Y-offset} de muchos objetos. El ejemplo siguiente muestra tres
+notas con una digitación en su posición predeterminada y con los
+valores @code{X-offset} y @code{Y-offset} modificados.
+
+@lilypond[verbatim,quote,relative=2]
+a-3
+a
+-\tweak #'X-offset #0
+-\tweak #'Y-offset #0
+-3
+a
+-\tweak #'X-offset #-1
+-\tweak #'Y-offset #1
+-3
+@end lilypond
+
+@c TODO write more
@node Using the @code{side-position-interface}
@unnumberedsubsubsec Using the @code{side-position-interface}
-@untranslated
+Un objeto que contempla el @code{side-position-interface} se puede
+colocar junto a su objeto padre de forma que los bordes especificados
+de los dos objetos se toquen. El objeto se puede situar encima,
+debajo, a la derecha o a la izquierda del objeto padre. El padre no
+se puede especificar; ciene determinado por el orden de los elementos
+en el flujo de entrada. Casi todos los objetos tienen la cabeza de la
+nota asociada como padre.
+
+Los valores de las propiedades @code{side-axis} y @code{direction}
+determinan dónde colocar el objeto, como sigue:
+
+@c TODO add an example of each to the table
+
+@multitable @columnfractions .3 .3 .3
+@headitem @code{side-axis} @tab @code{direction} @tab
+@headitem propiedad @tab propiedad @tab colocación
+
+@item @code{0} @tab @code{-1} @tab izquierda
+@item @code{0} @tab @code{1} @tab derecha
+@item @code{1} @tab @code{-1} @tab debajo
+@item @code{1} @tab @code{1} @tab encima
+
+@end multitable
+
+Si @code{side-axis} es @code{0}, @code{X-offset} se debe establecer al
+procedimiento @code{ly:side-position-interface::x-aligned-side}. Este
+procedimiento devuelve el calor correcto de @code{X-offset} para
+situar el objeto al lado izquierdo o derecho del padre de acuerdo con
+el valor de @code{direction}.
+
+Si @code{side-axis} es @code{1}, @code{Y-offset} se debe establecer al
+procedimiento @code{ly:side-position-interface::y-aligned-side}. Este
+procedimiento devuelve el valor correcto de @code{Y-offset} para
+situar el objeto encima o debajo del padre de acuerdo con el valor de
+@code{direction}.
+
+@c TODO Add examples
@node Using the @code{self-alignment-interface}
@unnumberedsubsubsec Using the @code{self-alignment-interface}
-@untranslated
+@emph{Auto-alineación horizontal de los objetos}
+
+La alineación horizontal de un objeto que contempla el interface
+@code{self-alignment-interface} está controlada por el valor de la
+propiedad @code{self-alignment-X}, siempre y cuando la propiedad
+@code{X-offset} de este objeto esté establecida a
+@code{ly:self-alignment-interface::x-aligned-on-self}. Se le puede
+dar a @code{self-alignment-X} cualquier valor real, en unidades de la
+mitad de la extensión X total del objeto. Los valores negativos
+mueven el objeto a la derecha, los positivos hacia la izquierda. Un
+valor de @code{0} centra el objeto sobre el punto de referencia de su
+padre, un valor de @code{-1} alinea el borde izquierdo del objeto
+sobre el punto de referencia de su padre, y un valor de @code{1}
+alinea el borde derecho del objeto sobre el punto de referencia de su
+padre. Se pueden usar los símbolos @code{LEFT}, @code{CENTER} y
+@code{RIGHT} en sustitución de los valores @code{-1, 0, 1},
+respectivamente.
+
+Normalmente se usaría la instrucción @code{\override} para modificar
+el valor de @code{self-alignment-X}, pero se puede usar la instrucción
+@code{\tweak} para alinear varias anotaciones por separado sobre una
+sola nota:
+
+@lilypond[quote,verbatim,relative=1]
+a'
+-\tweak #'self-alignment-X #-1
+^"left-aligned"
+-\tweak #'self-alignment-X #0
+^"center-aligned"
+-\tweak #'self-alignment-X #RIGHT
+^"right-aligned"
+-\tweak #'self-alignment-X #-2.5
+^"aligned further to the right"
+@end lilypond
+
+@emph{Auto-alineación vertical de los objetos}
+
+Los objetos se pueden alinear verticalmente en una forma análoga a la
+alineación horizontal si la propiedad @code{Y-offset} está establecida
+a @code{ly:self-alignment-interface::y-aligned-on-self}. Sin embargo,
+a menudo se encuentran implicados otros mecanismos en la alineación
+vertical: el valor de @code{Y-offset} es tan sólo una variable que se
+tiene en cuenta. Esto puede hacer que ajustar el valor de ciertos
+objetos sea una tarea dificultosa. Las unidades son sólo la mitad de
+las dimensiones verticales del objeto, que suele ser bastante pequeño,
+por lo que pueden requerirse números bastante grandes. Un valor de
+@code{-1} alinea el borde inferior del objeto con el punto de
+referencia del objeto padre, un valor de @code{0} alinea el centro del
+objeto con el punto de referencia del padre, y un valor de @code{1}
+alinea el borde superior del objeto con el punto de referencia del
+padre. Se pueden usar los símbolos @code{DOWN}, @code{CENTER},
+@code{UP} en sustitución de @code{-1, 0, 1} respectivamente.
+
+@emph{Auto-alineación de objetos en las dos direcciones}
+
+Estableciendo tanto @code{X-offset} como @code{Y-offset}, se puede
+alinear un objeto en las dos direcciones simultáneamente.
+
+El ejemplo siguiente muestra cómo ajustar una digitación de forma que
+se acerque a la cabeza de la nota.
+
+@lilypond[quote,verbatim,relative=2]
+a
+-\tweak #'self-alignment-X #0.5 % move horizontally left
+-\tweak #'Y-offset #ly:self-alignment-interface::y-aligned-on-self
+-\tweak #'self-alignment-Y #-1 % move vertically up
+-3 % third finger
+@end lilypond
+
+@ignore
+@unnumberedsubsubsec Using the @code{aligned-on-parent} procedures
+
+@c Cannot document as they do not seem to operate consistently on all objects -td
+@c TODO investigate further
+
+The @code{aligned-on-parent} procedures are used in the same way
+as the @code{aligned-on-self} procedures, they difference being
+that they permit an object to be aligned with the @emph{edges} of
+the parent rather than the parent's reference point. The following
+example shows the difference:
+
+@c TODO Add example
+
+@lilypond[verbatim,quote]
+@end lilypond
+
+@end ignore
+
+@ignore
+@unnumberedsubsubsec Using the @code{centered-on-parent} procedures
+
+@c Cannot document as they do not seem to operate consistently on all objects -td
+@c TODO investigate further
+
+@end ignore
+
+@c TODO The align-interface, BassFigureAlignment and VerticalAlignment
+
@node Using the @code{break-aligned-interface}
@unnumberedsubsubsec Using the @code{break-aligned-interface}
-@untranslated
+Las letras de ensayo se pueden alinear con objetos de notación
+distintos a las barras de compás. Estos objetos son @code{ambitus},
+@code{breathing-sign}, @code{clef}, @code{custos}, @code{staff-bar},
+@code{left-edge}, @code{key-cancellation}, @code{key-signature} y
+@code{time-signature}.
+
+De forma predeterminada, las letras de ensayo se centran
+horizontalmente sobre el objeto:
+
+@lilypond[verbatim,quote,relative=1]
+e1
+% the RehearsalMark will be centered above the Clef
+\override Score.RehearsalMark #'break-align-symbols = #'(clef)
+\key a \major
+\clef treble
+\mark "↓"
+e
+% the RehearsalMark will be centered above the TimeSignature
+\override Score.RehearsalMark #'break-align-symbols = #'(time-signature)
+\key a \major
+\clef treble
+\time 3/4
+\mark "↓"
+e2.
+@end lilypond
+
+La alineación de la letra de enzayo con relación al objeto de notación
+se puede cambiar, como se ve en el ejemplo siguiente. En una
+partitura con varios pentagramas, este ajuste se debe hacer para todos
+los pentagramas.
+
+@lilypond[verbatim,quote,relative=1]
+% The RehearsalMark will be centered above the KeySignature
+\override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
+\key a \major
+\clef treble
+\time 4/4
+\mark "↓"
+e1
+% The RehearsalMark will be aligned with the left edge of the KeySignature
+\once \override Score.KeySignature #'break-align-anchor-alignment = #LEFT
+\mark "↓"
+\key a \major
+e
+% The RehearsalMark will be aligned with the right edge of the KeySignature
+\once \override Score.KeySignature #'break-align-anchor-alignment = #RIGHT
+\key a \major
+\mark "↓"
+e
+@end lilypond
+
+La letra de ensayo también se puede desplazar al borde derecho o
+izquierdo en una medida arbitraria. Las unidades son espacios de
+pentagrama:
+
+@lilypond[verbatim,quote,relative=1]
+% The RehearsalMark will be aligned with the left edge of the KeySignature
+% and then shifted right by 3.5 staff-spaces
+\override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
+\once \override Score.KeySignature #'break-align-anchor = #3.5
+\key a \major
+\mark "↓"
+e
+% The RehearsalMark will be aligned with the left edge of the KeySignature
+% and then shifted left by 2 staff-spaces
+\once \override Score.KeySignature #'break-align-anchor = #-2
+\key a \major
+\mark "↓"
+e
+@end lilypond
+
@node Vertical grouping of grobs
@subsection Vertical grouping of grobs
partitura, pero cada @code{Staff}, @code{Lyrics}, etc. tiene su propio
@code{VerticalAxisGroup}.
+
@node Modifying stencils
@subsection Modifying stencils
-@untranslated
+Todos los objetos de presentación tienen una propiedad @code{stencil}
+que es parte del @code{grob-interface}. De forma predeterminada, esta
+propiedad suele estar establecida a una función específica del objeto
+que está hecha a medida para disponer el símbolo que lo representa en
+la salida. Por ejemplo, el ajuste estándar para la propiedad
+@code{stencil} del objeto @code{MultiMeasureRest} es
+@code{ly:multi-measure-rest::print}.
+
+El símbolo estándar de cualquier objeto se puede sustituir modificando
+la propiedad @code{stencil} para que haga referencia a un
+procedimiento diferente escrito especialmente. Esto requiere un alto
+nivel de conocimiento del funcionamiento interno de LilyPond, pero hay
+una forma más fácil que a menudo puede dar resultados adecuados.
+
+El procedimiento es establecer la propiedad @code{stencil} al
+procedimiento que imprime texto (@code{ly:text-interface::print}) y
+añadir una propiedad @code{text} al objeto ajustada para que contenga
+el texto de marcado que produce el símbolo requerido. Debido a la
+flexibilidad del marcado, se pueden conseguir muchas cosas; en
+particular, consulte @ref{Graphic notation inside markup}.
+
+El ejemplo siguiente muestra esto cambiando el símbolo de la cabeza de
+la nota a unas aspas dentro de una circunferencia.
+
+@lilypond[verbatim,quote]
+XinO = {
+ \once \override NoteHead #'stencil = #ly:text-interface::print
+ \once \override NoteHead #'text = \markup {
+ \combine
+ \halign #-0.7 \draw-circle #0.85 #0.2 ##f
+ \musicglyph #"noteheads.s2cross"
+ }
+}
+\relative c'' {
+ a a \XinO a a
+}
+@end lilypond
+
+Cualquiera de los glifos de la fuente tipográfica Feta se puede pasar
+a la instrucción de marcado @code{\musicglyph}: véase @ref{The Feta
+font}.
+
+@c TODO Add inserting eps files or ref to later
+
+@c TODO Add inserting Postscript or ref to later
+
+@seealso
+
+Referencia de la notación:
+@ref{Graphic notation inside markup},
+@ref{Formatting text},
+@ref{Text markup commands},
+@ref{The Feta font}.
+
@node Modifying shapes
@subsection Modifying shapes
@node Modifying ties and slurs
@unnumberedsubsubsec Modifying ties and slurs
-@untranslated
+Las ligaduras de unión, de expresión y de fraseo se trazan como curvas
+de Bézier de tercer orden. Si la forma de la ligadura calculada
+automáticamente no resulta óptima, se puede modificar su forma
+manualmente mediante la especificación explícita de los cuatro puntos
+de control necesarios para definir una curva de Bézier de tercer
+orden.
+
+Las curvas Bézier de tercer orden o cúbicas están definidas por cuatro
+puntos de control. El primer y cuarto puntos de control son
+exactamente los puntos extremos de comienzo y de final de la curva.
+Los dos puntos de contros intermedios definen la forma. Se pueden
+encontrar en la web animaciones que muestran cómo se traza la curva,
+pero la descripción siguiente puede ser de ayuda. La curva comienza a
+partir del primer punto de control dirigiéndose directamente hacia el
+segundo, curvándose progresivamente para dirigirse hacia el tercero y
+continuando la curva hacia el cuarto, llegando a éste en viaje directo
+desde el tercer punto de control. La curva está contenida enteramente
+dentro del cuadrilátero definido por los cuatro puntos de control.
+
+He aquí un ejemplo de un caso en que la ligadura no es óptima, y donde
+@code{\tieDown} no sirve de ayuda.
+
+@lilypond[verbatim,quote,relative=1]
+<<
+ { e1 ~ e }
+\\
+ { r4 <g c,> <g c,> <g c,> }
+>>
+@end lilypond
+
+Una forma de mejorar esta ligadura es modificar manualmente sus puntos
+de control como sigue.
+
+Las coordenadas de los puntos de control de Bézier se especifican en
+unidades de espacios de pentagrama. La coordenada@tie{}X está en
+relación con el punto de referencia de la nota a la que está unida la
+ligadura, y la coordenada@tie{}Y está en relación con la línea central
+del pentagrama. Las coordenadas se introducen como una lista de
+cuatro parejas de números decimales (reales). Un enfoque es estimar
+las coordenadas de los dos puntos extremos, y luego tratar de adivinar
+los dos puntos intermedios. Los valores óptimos se encuentran por
+ensayo y error.
+
+Es útil recordar que una curva simétrica necesita puntos de contros
+simétricos, y que las curvas de Bézier tienen la útil propiedad de que
+las transformaciones de la curva tales como la traslación, rotación y
+escalado se pueden obtener aplicando la misma transformación a los
+puntos de control de la curva.
+
+Para el ejemplo anterior, la sobreescritura siguiente da una ligadura
+satisfactoria:
+
+@lilypond[verbatim,quote,relative=1]
+<<
+ \once \override Tie
+ #'control-points = #'((1 . -1) (3 . 0.6) (12.5 . 0.6) (14.5 . -1))
+ { e1 ~ e1 }
+\\
+ { r4 <g c,> <g c,> <g c,>4 }
+>>
+@end lilypond
+
+@knownissues
+
+No es posible modificar la forma de las ligaduras de unión o de
+expresión cambiando la propiedad @code{control-points} si hay más de
+una en el mismo mom ento musical, ni siquiera usando la instrucción
+@code{\tweak}.
+