+Hemos visto dos formas de cambiar las propiedades: @code{\set} y
+@code{\override}. De hecho, en realidad existen dos clases diferentes
+de propiedades.
+
+Los contextos pueden tener propiedades, que por lo general reciben
+nombres en @code{mayúsculasDeCamello}. Principalmente controlan la
+traducción de la música a la notación, p.ej. @code{localKeySignature}
+(para determinar si hay que imprimir las alteraciones accidentales),
+@code{measurePosition} (para determinar cuándo imprimir una línea
+divisoria). Las propiedades de contexto pueden ver modificado su
+valor con el tiempo según se interpreta una pieza de música;
+@code{measurePosition} es un ejemplo obvio de esto. Las propiedades
+de contexto se modifican con @code{\set}.
+
+Hay un tipo especial de propiedad de contexto: la descripción del
+elemento. Estas propiedades reciben nombres en
+@code{MayúsculasDeCamello} (comenzando en letra mayúscula). Contienen
+los @q{ajustes por defecto} para dicho elemento gráfico como una lista
+asociativa. Consulte @file{scm/@/define@/-grobs@/.scm} para ver qué
+tipos de ajustes hay. Las descripciones de los elementos se pueden
+modificar con @code{\override}.
+
+Realmente, @code{\override} es un atajo;
+
+@example
+\override @var{contexto}.@var{nombre} #'@var{propiedad} = #@var{valor}
+@end example
+
+@noindent
+es más o menos equivalente a
+
+@c leave this long line -gp
+@example
+\set @var{contexto}.@var{nombre} #'@var{propiedad} = #(cons (cons '@var{propiedad} @var{valor}) <valor previo de @var{contexto})
+@end example
+
+El valor de @code{contexto} (la lista-a) se usa para da un valor
+inicial a las propiedades de los objetos gráficos individuales. Los
+objetos gráficos también tienen propiedades, que reciben nombres en el
+estilo de Scheme, con @code{palabras-con-guiones}. Los valores de las
+propiedades de objetos gráficos cambian durante el proceso de
+formateo: el formateo básicamente consiste en calcular las propiedades
+utilizando funciones de callback.
+
+@code{fontSize} es una propiedad especial: equivale a escribir
+@code{\override ... #'font-size} para todos los objetos pertinentes.
+Al ser éste un cambio muy común, se creó la propiedad especial
+(modificada con @code{\set}).
+
+
+@node The tweak command
+@subsection The @code{\tweak} command
+
+@funindex \tweak
+
+En ocasiones es posible tomar un atajo para realizar el ajuste fino de
+los objetos gráficos. Para objetos que reusultan directamente de un
+elemento de código de la entrada, puede usar la función @code{\tweak},
+por ejemplo
+
+@lilypond[relative=2,fragment,verbatim,ragged-right]
+<
+ c
+ \tweak #'color #red d
+ g
+ \tweak #'duration-log #1 a
+>4-\tweak #'padding #10 -.
+@end lilypond
+
+Como podemos ver, las propiedades se establecen directamente dentro de
+los objetos, sin hacer mención al nombre del grob ni al contexto en el
+que se tendría que aplicar.
+
+Esta técnica sólo funciona para los objetos que están conectados
+directamente a un @rinternals{Event} (evento) del texto de entrada,
+por ejemplo
+
+@itemize
+@item cabezas de nota, producidas por chord-pitch (p. ej.: las notas de un acorde)
+@item signos de articulación, producidos por instrucciones de articulación
+@end itemize
+
+Posiblemente no funcione para plicas y alteraciones accidentales
+(éstos están producidos por parte de las cabezas de nota, no por los
+eventos musicales) ni para las claves (éstos no están producidos por
+ninguna entrada musical, sino más bien a causa de un cambio en el
+valor de una propiedad).
+
+Existen muy pocos objetos que estén conectados @emph{directamente} al
+resultado de salida. Una nota normal (como @code{c4}) no está
+conectada directamente a la salida, así que
+
+@example
+\tweak #'color #red c4
+@end example
+
+@noindent
+no cambia el color. Consulte @ref{Displaying music expressions} para
+ver más detalles.
+
+@node Useful concepts and properties
+@section Useful concepts and properties
+
+
+@menu
+* Input modes::
+* Direction and placement::
+* Distances and measurements::
+* Spanners::
+@end menu
+
+@node Input modes
+@subsection Input modes
+
+La forma en que se interpreta la notación conenida dentro de un
+archivo de entrada, está determinada por el modo de entrada en curso.
+
+@strong{Modo de acordes}
+
+Se activa con la instrucción @code{\chordmode} y produce que la
+entrada se interprete con al sintaxis de la notación de acordes, véase
+@ref{Chord notation}. Los acordes se imprimen como notas sobre un
+pentagrama.
+
+El modo de acordes se activa también con la instrucción
+@code{\chords}. Esto crea también un contexto @code{ChordNames} nuevo
+y produce que el código que sigue se interprete conla sintaxis de la
+notación de acordes y se imprima como nombres de acorde dentro del
+contexto @code{ChordNames}, véase @ref{Printing chord names}.
+
+@strong{Modo de percusión}
+
+Se activa con la instrucción @code{\drummode} y produce que el código
+de entrada se interprete con la sintaxis de la notación de percusión,
+véase @ref{Basic percussion notation}.
+
+EL modo de percusión también se activa con la instrucción
+@code{\drums}. También crea un contexto @code{DrumStaff} nuevo y hace
+que el código que sigue se interprete con la sintaxis de la notación
+de percusión y se imprima como símbolos de percusión sobre un
+pentagrama de percusión, véase @ref{Basic percussion notation}.
+
+@strong{Modo de cifras}
+
+Se activa con la instrucción @code{\figuremode} y hace que el código
+de entrada se interprete con la sintaxis del bajo cifrado, véase
+@ref{Entering figured bass}.
+
+El modo de cifrase también se activa con la instrucción
+@code{\figures}. También crea un contexto de @code{FiguredBass} nuevo
+y hace que el código que viene a continuación se interprete con la
+sintaxis del bajo cifrado y se imprima como símbolos de bajo cifrado
+dentro del contexto @code{FiguredBass}, véase @ref{Introduction to
+figured bass}.
+
+@strong{Modos de traste y tablatura}
+
+No existen modos de entrada especiales para introducir símibolos de
+trastes y de tablatura.
+
+Para crear diagramas de trastes, escriba las notas o acordes en el
+modo de notas e imprímalos dentro de un contexto @code{TabStaff},
+véase @ref{Default tablatures}.
+
+Para crear diagramas de trastes encima de un pentagrama, escríbalos
+como elementos de marcado encima de las notas utilizando la
+instrucción @code{\fret-diagram}, véase @ref{Fret diagram markups}.
+
+@strong{Modo de letra}
+
+Se activa con la instrucción @code{\lyricmode}, y hace que la entrada
+se interprete como sílabas de la letra de la canción con duraciones
+opcionales y modificadores de letra asociados, véase @ref{Vocal
+music}.
+
+El modo de letra también se habilita con la instrucción
+@code{\addlyrics}. Esto también crea un contexto @code{Lyrics} nuevo
+y una instrucción @code{\lyricsto} implícita que asocia la letra que
+viene a continuación con la música precedente.
+
+@strong{Modo de marcado}
+
+Se activa con la instrucción @code{\markup}, y hace que la entrada se
+interprete con la sintaxis del marcado, véase @ref{Text markup
+commands}.
+
+@c silly work-around for texinfo broken-ness
+@c (@strong{Note...} causes a spurious cross-reference in Info)
+@b{Modo de notas}
+
+Es el modo predeterminado o se puede activar con la instrucción
+@code{\notemode}. La entrada se interpreta como alturas, duraciones,
+marcado, etc. y se imprime como notación musical sobre un pentagrama.
+
+Normalmente no es necesario especificar el modo de notas de forma
+explícita, pero puede ser útil hacerlo en ciertas situaciones, por
+ejemplo si estamos en el modo de letra, en el modo de acordes o en
+otro modo y queremos insertar algo que solamente se puede hacer con la
+sintaxis del modo de notas.
+
+Por ejemplo, para insertar indicaciones dinámicas para las estrofas de
+una pieza coral es necesario entrar en el modo de notas para poder
+interpretar dichas indicaciones:
+
+@lilypond[verbatim,relative=2,quote]
+{ c4 c4 c4 c4 }
+\addlyrics {
+ \notemode{\set stanza = \markup{ \dynamic f 1. } }
+ To be sung loudly
+}
+\addlyrics {
+ \notemode{\set stanza = \markup{ \dynamic p 2. } }
+ To be sung quietly
+}
+@end lilypond
+
+
+
+@node Direction and placement
+@subsection Direction and placement
+
+Al tipografiar música, la dirección y colocación de muchos elementos
+es cuestión de elección. Por ejemplo, las plicas de las notas se
+pueden dirigir hacia arriba o hacia abajo; la lestra, las indicaciones
+dinámicas y otras marcas expresivas se pueden colocar encima o debajo
+del pentagrama; el texto se pude alinear a la izquierda, a la derecha
+o centrado; etc. La mayoría de estas elecciones pueden dejarse que
+LilyPond las determine automáticamente, pero en ciertos casos puede
+ser deseable forzar una dirección o colocación concreta.
+
+@strong{Acciones predeterminadas}
+
+De forma predeterminada algunas direcciones siempre son hacia arriba o
+siempre hacia abajo (p. ej. los matices o el calderón), mientras que
+otras cosas pueden alternar entre arriba y abajo en función de la
+dirección de las plicas (como las ligaduras o los acentos).
+
+@c TODO Add table showing these
+
+@strong{Disposición de contexto}
+
+Los contextos se colocan dentro de un sistema de arriba a abajo en el
+orden en que se encuentran. Sin embargo, observe que se crea un
+contexto implícitamente si se encuentra una instrucción cuando no está
+disponible un contexto apropiado para contenerla.
+
+@c TODO Add example ?
+
+Se pude cambiar el orden predeterminado en que los contextos se
+presentan, véase @ref{Aligning contexts}
+
+@strong{Indicadores de dirección de las articulaciones}
+
+Al añadir articulaciones a notas se puede omitir normalmente el
+indicador de dirección, @code{^} (que significa @qq{arriba}), @code{_}
+(que significa @qq{abajo}) o @code{-} (que significa @qq{usar la
+dirección predeterminada}), en cuyo caso se supone el perdeterminado
+@code{-}. Pero se necesita un indicador de dirección @strong{always}
+antes de:
+
+@itemize
+@item las instrucciones @code{\tweak}
+@item las instrucciones @code{\markup}
+@item las instrucciones @code{\tag}
+@item los marcados de cadena, p.ej. -"cadena"
+@item las instrucciones de digitación, p.ej. @code{-1}
+@item las abreviaturas de articulación, p.ej. @code{-.}, @code{->}, @code{--}
+@end itemize
+
+@strong{La propiedad de dirección}
+
+La posición o dirección de muchos objetos de presentación está
+controlada por la propiedad @code{direction}.
+
+El valor de la propiedad @code{direction} se puede establecer al valor
+@code{1}, con el significado de @qq{hacia arriba} o @qq{encima}, o a
+@code{-1}, con el significado de @qq{hacia abajo} o @qq{debajo}. Se
+pueden usar los símbolos @code{UP} y @code{DOWN} en sustitución de
+@code{1} y @code{-1} respectivamente. La dirección predeterminada se
+puede especificar estableciendo @code{direction} a @code{0} ó a
+@code{CENTER}. De forma alternativa, en muchos casos existen
+instrucciones predefinidas para especificar la dirección. Todas ellas
+son de la forma:
+
+@noindent
+@code{\xxxUp}, @code{xxxDown}, @code{xxxNeutral}
+
+@noindent
+donde @code{xxxNeutral} significa @qq{utilizar la dirección
+predeterminada}. Véase @rlearning{Within-staff objects}.
+
+En alguna que otra ocasión, con el único ejemplo usual del arpegio, el
+valor de la propiedad @code{direction} especifica si el objeto se debe
+colocar a la izquierda o a la derecha del objeto padre. En este caso
+@code{-1} ó @code{LEFT} significan @qq{a la izquierda} y @code{1} ó
+@code{RIGHT} significan @qq{a la derecha}. @code{0} ó @code{CENTER}
+significan @qq{utilizar la dirección predeterminada}, como antes.
+
+
+@node Distances and measurements
+@subsection Distances and measurements
+
+@untranslated
+
+@node Spanners
+@subsection Spanners
+
+Muchos objetos de notación musical abarcan varias notas o incluso
+varios compases. Son ejemplos los crescendi, trinos, corchetes de
+grupo especial y corchetes de primera y segunda vez. Estos objetos se
+llaman @qq{spanners} u «objetos de extensión», y tienen propiedades
+especiales para controlar su apariencia y comportamiento. Algunas de
+estas propiedades son comunes a todos los objetos de extensión; otras
+se limitan a un subconjunto de los extensores.
+
+
+@node Common properties
+@section Common properties
+
+@menu
+* Controlling visibility of objects::
+* Line styles::
+* Rotating objects::
+* Aligning objects::
+@end menu
+
+@node Controlling visibility of objects
+@subsection Controlling visibility 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
+
+La información que determina los puntos extremos se calcula al vuelo
+para cada objeto gráfico, 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 objeto @code{Glissando}, como cualquier otro que use la rutina
+@code{ly:line-interface::print}, conlleva una lista asociativa
+anidada. En la instrucción anterior, el valor de @code{Y}
+se establece a @code{-2} para la lista asociativa correspondiente al extremo final de la
+derecha. Por supuesto, también es posible ajustar el extremo de la izquierda con
+@code{left} en vez de @code{right}.
+
+Si no se establece el valor de @code{Y}, se calcula a partir de la posición
+vertical del punto de anclaje derecho del objeto de extensión.
+
+En el caso de un salto de línea, los valores de los puntos extremos se extienden
+con los contenidos de las sublistas @code{left-broken} y @code{right-broken},
+por ejemplo
+
+@lilypond[relative=2,ragged-right,verbatim,fragment]
+\override Glissando #'breakable = ##T
+\override Glissando #'bound-details #'right-broken #'Y = #-3
+c1 \glissando \break
+f1
+@end lilypond
+
+Las siguientes propiedades se pueden usar para el ajuste fino de los objetos de extensión:
+
+@table @code
+@item Y
+Establece la coordenada Y del punto extremo, en espacios de pentagrama. Por
+omisión, es el centro del objeto con que enlaza. Así, para un glissando
+apuntaría al centro vertical de la cabeza de la nota.
+
+Para objetos de extensión horizontales, como el de texto y los trinos, tiene el valor
+fijo de cero.
+
+@item attach-dir
+Determina el lugar donde la línea comienza y acaba en la dirección X,
+relativo al objeto al que se enlaza. Así, un valor de @code{-1} (o
+@code{LEFT}) hace que la línea comience o acabe en el lado izquierdo de la cabeza de la nota
+a la que el objeto se encuentra adjuntado.
+
+@item X
+Es la coordenada absoluta del extremo final. Normalmente
+se calcula al vuelo y no tiene mucho sentido sobreescribirlo.
+
+@item stencil
+Los objetos extensores de línea pueden tener símbolos al principio o al final, que se encuentra contenido
+dentro de esta subpropiedad. Es para uso interno y se recomienda
+usar @code{text}.
+
+@item text
+Es un elemento de marcado que se evalúa para generar la propiedad stencil anterior. Se usa
+para poner @i{cresc.} y @i{tr} sobre los objetos de extensión horizontales.
+
+@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
+\override TextSpanner #'bound-details #'left #'text
+ = \markup { \small \bold Slower }
+c2\startTextSpan b c a\stopTextSpan
+@end lilypond
+
+@item stencil-align-dir-y
+@item stencil-offset
+Sin un valor establecido para esto, el stencil se coloca simplemente sobre el extremo del final,
+tal y como se encuentra definido por las subpropiedades @code{X} e @code{Y}.
+La asignación de un valor para @code{stencil-align-dir-y} o para @code{stencil-offset}
+desplaza el símbolo del extremo de forma relativa al extremo de la línea
+
+@lilypond[relative=1,fragment,verbatim]
+\override TextSpanner #'bound-details #'left #'stencil-align-dir-y = #DOWN
+\override TextSpanner #'bound-details #'right #'stencil-align-dir-y = #UP
+
+\override TextSpanner #'bound-details #'left #'text = #"gggg"
+\override TextSpanner #'bound-details #'right #'text = #"hhhh"
+c4^\startTextSpan c c c \stopTextSpan
+@end lilypond
+
+@item arrow (flecha)
+El establecimiento de esta subpropiedad al valor de @code{#t} produce una cabeza de flecha al final de la
+línea.
+
+@item padding (relleno)
+Esta subpropiedad controla el espacio entre el punto extremo de la línea especificado
+y el extremo real. Sin relleno, un glissando empezaría
+y acabaría en el centro de las cabezas de las notas.
+
+@end table
+
+La función musical \endSpanners termina los objetos de extensión y los
+reguladores después de una nota exactamente.
+
+@lilypond[verbatim,quote,ragged-right,relative=2,fragment]
+\endSpanners
+c2 \startTextSpan c2
+c2 \< c2
+@end lilypond
+
+Al utilizar \endSpanners no es necesario cerrar \startTextSpan con
+\stopTextSpan, ni tampoco cerrar los reguladores con \!.
+
+@seealso
+
+Referencia del programa:
+@rinternals{TextSpanner},
+@rinternals{Glissando},
+@rinternals{VoiceFollower},
+@rinternals{TrillSpanner},
+@rinternals{line-spanner-interface}.
+
+
+@node Rotating objects
+@subsection Rotating objects
+
+@node Aligning objects
+@subsection Aligning objects
+
+
+@node Advanced tweaks
+@section Advanced tweaks
+
+@menu
+* Vertical grouping of grobs::
+* Modifying ends of spanners::
+* Modifying stencils::
+@end menu
+
+
+@node Vertical grouping of grobs
+@subsection Vertical grouping of grobs
+
+Los grobs (objetos gráficos) @code{VerticalAlignment} y
+@code{VerticalAxisGroup} trabajan de manera coordinada.
+@code{VerticalAxisGroup} agrupa distintos grobs como @code{Staff},
+@code{Lyrics}, etc. Después, @code{VerticalAlignment} alinea los
+distintos grobs agrupados previamente por @code{VerticalAxisGroup}.
+Normalmente sólo existe un @code{VerticalAlignment} por cada
+partitura, pero cada @code{Staff}, @code{Lyrics}, etc. tiene su propio
+@code{VerticalAxisGroup}.
+
+
+@node Modifying ends of spanners
+@subsection Modifying ends of spanners