]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/es/notation/changing-defaults.itely
Doc-es: update Notation/Changing.
[lilypond.git] / Documentation / es / notation / changing-defaults.itely
index 9660880cfb65b05d6572efb871b9caa387a8d97a..f904df2cbfdb358bf651ca9fd9570f720d70b9b5 100644 (file)
@@ -1,48 +1,51 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 
 @ignore
-Translation of GIT committish: f0978ed121192fee9bdf2453a325d98693148acf
+Translation of GIT committish: 18d03fa6a724b0102ccc47d194209802cea02f2e
 
     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.15.10"
+@c \version "2.19.22"
 
 @node Cambiar los valores por omisión
 @chapter Cambiar los valores por omisión
 @translationof Changing defaults
 
-El objetivo del diseño de LilyPond es proporcionar la más alta calidad
-de los resultados, de forma predeterminada.  A pesar de ello, podría
-tener que cambiar este resultado predeterminado.  La disposición sobre
-el papel se controla a través de un amplio número de @q{botones e
-interruptores} llamados en su conjunto @q{propiedades}.  En el Manual
-de aprendizaje podemos encontrar una introducción en forma de tutorial
-al acceso y modificación de estas propiedades, véase
-@rlearning{Trucar la salida}.  Éste debería leerse en primer lugar.
-Este capítulo cubre un terreno similar, pero con un estilo más
-adecuado para un manual de referencia.
+El objetivo del diseño de LilyPond es proporcionar la más alta
+calidad de los resultados, de forma predeterminada.  A pesar de
+ello, podría tener que cambiar este resultado predeterminado.  La
+disposición sobre el papel se controla a través de un amplio
+número de @q{botones e interruptores} llamados en su conjunto
+@q{propiedades}.  En el Manual de aprendizaje podemos encontrar
+una introducción en forma de tutorial al acceso y modificación de
+estas propiedades, véase @rlearning{Trucar la salida}.  Éste
+debería leerse en primer lugar.  Este capítulo cubre un terreno
+similar, pero con un estilo más adecuado para un manual de
+referencia.
 
 @cindex Referencia de funcionamiento interno
 
-La descripción definitiva de los controles que están disponibles para
-su ajuste fino están en un documento aparte: la
-@rinternalsnamed{Top,Referencia de funcionamiento interno}.
-Dicho manual relaciona todas
-las variables, funciones y opciones que se encuentran disponibles en
-LilyPond.  Está escrito como un documento HTML, que se puede encontrar
+La descripción definitiva de los controles que están disponibles
+para su ajuste fino están en un documento aparte: la
+@rinternalsnamed{Top,Referencia de funcionamiento interno}.  Dicho
+manual relaciona todas las variables, funciones y opciones que se
+encuentran disponibles en LilyPond.  Está escrito como un
+documento HTML, que se puede encontrar
 @c leave the @uref as one long line.
-@uref{http://@/lilypond@/.org/@/doc/@/stable/@/Documentation/@/user/@/lilypond@/-internals/,en línea},
-pero que también va incluido en el paquete de la documentación de LilyPond.
+@uref{http://@/lilypond@/.org/@/doc/@/stable/@/Documentation/@/internals/,en@tie{}línea},
+pero que también va incluido en el paquete de la documentación de
+LilyPond.
 
 Internamente, LilyPond utiliza el lenguaje Scheme (un dialecto de
 LISP) para aportar la infraestructura.  La sobreescritura de las
-decisiones de disposición da acceso efectivo a las interioridades del
-programa, lo que requiere código de Scheme como entrada.  Los
-elementos de Scheme se inauguran dentro de un archivo @file{.ly} con
-el símbolo de cuadradillo@tie{}@code{#}.@footnote{@rextend{Tutorial de Scheme}
+decisiones de disposición da acceso efectivo a las interioridades
+del programa, lo que requiere código de Scheme como entrada.  Los
+elementos de Scheme se inauguran dentro de un archivo @file{.ly}
+con el símbolo de
+cuadradillo@tie{}@code{#}.@footnote{@rextend{Tutorial de Scheme}
 contiene un breve tutorial sobre la introducción de números,
 listas, cadenas y símbolos en Scheme.}
 
@@ -64,15 +67,14 @@ Esta sección explica qué son los contextos y cómo modificarlos.
 
 @menu
 * Explicación de los contextos::
-* Crear contextos::
+* Crear y referenciar contextos::
 * Mantener vivos los contextos::
 * Modificar los complementos (plug-ins) de contexto::
 * Cambiar los valores por omisión de los contextos::
 * Definir contextos nuevos::
-* Alinear los contextos::
+* Orden de disposición de los contextos::
 @end menu
 
-
 @seealso
 Manual de aprendizaje:
 @rlearning{Contextos y grabadores}.
@@ -96,25 +98,79 @@ Referencia de funcionamiento interno:
 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
 @translationof Score - the master of all contexts
 
 Este es el contexto de notación del nivel más alto.  Ningún otro
-contexto puede contener a un contexto Score.  De forma predeterminada,
-el contexto Score maneja la administración de las indicaciones de
-compás y se asegura de que ciertos elementos como claves, compases y
-armaduras están siempre alineados entre los distintos pentagramas.
+contexto puede contener a un contexto Score.  De forma
+predeterminada, el contexto Score maneja la administración de las
+indicaciones de compás y se asegura de que ciertos elementos como
+claves, compases y 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
 @unnumberedsubsubsec Contextos del nivel superior: contenedores de pentagramas
@@ -122,27 +178,28 @@ procesa un bloque @code{\score @{@dots{}@}} o @code{\layout
 
 @strong{@emph{StaffGroup}}
 
-Agrupa pentagramas y añade un corchete en la parte izquierda, formando
-un grupo.  Las líneas divisorias de los pentagramas contenidos se
-conectan verticalmente.  @code{StaffGroup} sólo consiste en una
-colección de pentagramas, con un corchete delante y líneas divisorias
-de arriba a abajo.
+Agrupa pentagramas y añade un corchete en la parte izquierda,
+formando un grupo.  Las líneas divisorias de los pentagramas
+contenidos se conectan verticalmente.  @code{StaffGroup} sólo
+consiste en una colección de pentagramas, con un corchete delante
+y líneas divisorias de arriba a abajo.
 
 @strong{@emph{ChoirStaff}}
 
-Idéntico a @code{StaffGroup} excepto que las barras de compás de los
-pentagramas contenidos no se conectan verticalmente.
+Idéntico a @code{StaffGroup} excepto que las barras de compás de
+los pentagramas contenidos no se conectan verticalmente.
 
 @strong{@emph{GrandStaff}}
 
 Un grupo de pentagramas, con una llave en la parte izquierda que
-abarca el grupo.  Las barras de compás de los pentagramas contenidos
-se conectan verticalmente.
+abarca el grupo.  Las barras de compás de los pentagramas
+contenidos se conectan verticalmente.
 
 @strong{@emph{PianoStaff}}
 
-Igual que @code{GrandStaff}, pero contempla la posibilidad de poner el
-nombre del instrumento a la izquierda del sistema.
+Igual que @code{GrandStaff}, pero contempla la posibilidad de
+poner el nombre del instrumento a la izquierda del sistema.
+
 
 @node Contextos de nivel intermedio. Pentagramas
 @unnumberedsubsubsec Contextos de nivel intermedio. Pentagramas
@@ -155,8 +212,9 @@ accidentales.  Puede contener contextos de @code{Voice}.
 
 @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}}
 
@@ -184,9 +242,12 @@ piezas en estilo mensural.
 @unnumberedsubsubsec Contextos del nivel más bajo. Voces
 @translationof Bottom-level contexts - voices
 
-Los contextos del mismo nivel que Voice dan un valor inicial a ciertas
-propiedades e inician los grabadores correspondientes.  Siendo
-contextos del nivel más bajo, no pueden contener a otros contextos.
+Los contextos del mismo nivel que Voice dan un valor inicial a
+ciertas propiedades e inician los grabadores correspondientes.  Un
+contexto del nivel más bajo es aquel que no tiene un contexto
+descendiente predeterminado @code{defaultchild}.  Aunque es
+posible hacer que pueda aceptar o contener subcontextos, éstos
+solo se pueden crear e introducir de forma explícita.
 
 @strong{@emph{Voice}}
 
@@ -198,13 +259,13 @@ voces en el mismo pentagrama.
 
 @strong{@emph{VaticanaVoice}}
 
-Lo mismo que @code{Voice}, excepto que está diseñado para tipografiar
-piezas en estilo gregoriano.
+Lo mismo que @code{Voice}, excepto que está diseñado para
+tipografiar piezas en estilo gregoriano.
 
 @strong{@emph{MensuralVoice}}
 
-Lo mismo que @code{Voice}, con modificaciones para el tipografiado de
-piezas en estilo mensural.
+Lo mismo que @code{Voice}, con modificaciones para el tipografiado
+de piezas en estilo mensural.
 
 @strong{@emph{Lyrics}}
 
@@ -217,8 +278,8 @@ El contexto de voz utilizado en una pauta de percusión.
 
 @strong{@emph{FiguredBass}}
 
-El contexto en que los objetos @code{BassFigure} se crean a partir de
-la entrada escrita en el modo @code{\figuremode}.
+El contexto en que los objetos @code{BassFigure} se crean a partir
+de la entrada escrita en el modo @code{\figuremode}.
 
 @strong{@emph{TabVoice}}
 
@@ -237,150 +298,220 @@ Normalmente se deja que se cree implícitamente.
 Tipografía nombres de acordes.
 
 
-@node Crear contextos
-@subsection Crear contextos
-@translationof Creating contexts
-
-@c TODO more complete descriptions rather than learning style
-
-Para partituras que sólo tienen una voz y un pentagrama, los contextos
-se crean automáticamente.  Para partituras más complejas, es necesario
-crearlos a mano.  Existen tres instrucciones que hacen esto.
-
-@itemize
-
-@item
-La instrucción más fácil es @code{\new}, y es también la más rápida de
-escribir.  Se antepone a una expresión musical, por ejemplo
+@node Crear y referenciar contextos
+@subsection Crear y referenciar contextos
+@translationof Creating and referencing contexts
 
 @funindex \new
-@cindex nuevos, contextos
-@cindex Contexto, creación de
+@funindex \context
+@cindex nuevos contextos
+@cindex contextos, creación y referenciación de
+@cindex referenciar contextos
+
+LilyPond crea automáticamente contextos de nifel inferior si se
+encuentra una expresión musical antes de que exista un contexto
+adecuado, pero normalmente esto sólo funciona bien para partituras
+sencillas o fragmentos musicales como los que aparecen en la
+documentación.  Para partituras más complejas, se recomienda
+especificar explícitamente todos los contextos con las
+instrucciones @code{\new} o @code{\context}.  La sintaxis de estas
+dos instrucciones es muy similar:
 
 @example
-\new @var{tipo} @var{expresión_musical}
+[\new | \context] @var{Contexto} [ = @var{nombre}] [@var{expresión_musical}]
 @end example
 
 @noindent
-donde @var{tipo} es el nombre de un contexto (como @code{Staff} o
-@code{Voice}).  Esta instrucción crea un contexto nuevo, y empieza a
-interpretar la @var{expresión_musical} con él.
+donde se puede especificar @code{\new} o @code{\context}.
+@var{Contexto} es el tipo de contexto que se desea crear,
+@var{nombre} es un nombre opcional que se da al contexto concreto
+que se está creando, y @var{expresión_musical} es una sola
+expresión musical que será interpretada por los complementos
+grabadores y reproductores dentro de este contexto.
 
-Una aplicación práctica de @code{\new} es una partitura con muchos
-pentagramas.  Cada parte que debe ir en su propio pentagrama, va
-precedida de @code{\new Staff}.
+El prefijo @code{\new} sin ningún nombre se usa con frecuencia
+para crear partituras con muchos pentagramas:
 
-@lilypond[quote,verbatim,relative=2,ragged-right]
+@lilypond[quote,verbatim]
 <<
-  \new Staff { c4 c }
-  \new Staff { d4 d }
+  \new Staff \relative {
+    % leave the Voice context to be created implicitly
+    c''4 c
+  }
+  \new Staff \relative {
+    d''4 d
+  }
 >>
 @end lilypond
 
-La instrucción @code{\new} puede también dar nombre al contexto,
+@noindent
+y para introducir varias voces dentro de un solo pentagrama:
 
-@example
-\new @var{tipo} = @var{identificador} @var{música}
-@end example
-Sin embargo, este nombre especificado por el usuario sólo se utiliza
-si no hay ya otro contexto anterior con el mismo nombre.
+@lilypond[quote,verbatim]
+\new Staff <<
+  \new Voice \relative {
+    \voiceOne
+    c''8 c c4 c c
+  }
+  \new Voice \relative {
+    \voiceTwo
+    g'4 g g g
+  }
+>>
+@end lilypond
 
+@noindent
+@code{\new} debería usarse siempre para especificar contextos sin
+nombre.
 
-@funindex \context
+La diferencia entre @code{\new} y @code{\context} se encuentra en
+la acción que se realiza:
 
+@itemize
 @item
-Como @code{\new}, la instrucción @code{\context} también dirige una
-expresión musical a un objeto de contexto, pero da al contexto un
-nombre explícito.  La sintaxis es
+@code{\new} con un nombre o sin él, siempre crea un contexto nuevo
+y distinto, incluso si ya existe un contexto con el mismo nombre:
 
-@example
-\context @var{tipo} = @var{identificador} @var{música}
-@end example
+@lilypond[quote,verbatim]
+\new Staff <<
+  \new Voice = "A" \relative {
+    \voiceOne
+    c''8 c c4 c c
+  }
+  \new Voice = "A" \relative {
+    \voiceTwo
+    g'4 g g g
+  }
+>>
+@end lilypond
 
-En esta forma, la instrucción buscará un contexto existente del
-@var{tipo} especificado que tenga el nombre @var{identificador}.  Si
-ese contexto aún no existe, se crea un contexto nuevo con el nombre
-especificado.  Esto es útil si nos vamos a referir más tarde al
-contexto.  Por ejemplo, cuando se escribe la letra, la melodía está
-dentro de un contexto con nombre
+@item
+@code{\context} con un nombre especificado, crea un contexto nuevo
+solamente si no existe ya un contexto del mismo tipo y con el
+mismo nombre, dentro de la misma jerarquía de contextos.  En caso
+contrario, se toma como referencia a dicho contexto creado
+previamente, y su expresión musical se pasa a este contexto para
+su interpretación.
 
-@example
-\context Voice = "@b{tenor}" @var{música}
-@end example
+Una aplicación de los contextos con nombre es la separación entre
+la disposición de la partitura y el contenido musical.  Son
+válidas culaquiera de las dos formas siguientes:
 
-@noindent
-de forma que los textos se puedan alinear correctamente con sus notas,
+@lilypond[quote,verbatim]
+\score {
+  <<
+    % score layout
+    \new Staff <<
+      \new Voice = "one" {
+        \voiceOne
+      }
+      \new Voice = "two" {
+        \voiceTwo
+      }
+    >>
 
-@example
-\new Lyrics \lyricsto "@b{tenor}" @var{letra}
-@end example
+    % musical content
+    \context Voice = "one" {
+      \relative {
+        c''4 c c c
+      }
+    }
+    \context Voice = "two" {
+      \relative {
+        g'8 g g4 g g
+      }
+    }
+  >>
+}
+@end lilypond
 
-@noindent
+@lilypond[quote,verbatim]
+\score {
+  <<
+    % score layout
+    \new Staff <<
+      \context Voice = "one" {
+        \voiceOne
+      }
+      \context Voice = "two" {
+        \voiceTwo
+      }
+    >>
 
-Otro uso posible de los contextos con nombre es la fusión de dos
-expresiones musicales distintas en un solo contexto.  En el siguiente
-ejemplo, se introducen por separado las articulaciones y las notas:
+    % musical content
+    \context Voice = "one" {
+      \relative {
+        c''4 c c c
+      }
+    }
+    \context Voice = "two" {
+      \relative {
+        g'8 g g4 g g
+      }
+    }
+  >>
+}
+@end lilypond
 
-@example
-musica = @{ c4 c4 @}
-decoracion = @{ s4-. s4-> @}
-@end example
+@noindent
+De manera alternativa, se pueden utilizar variables con un efecto
+similar. Véase @rlearning{Organizar las piezas mediante variables}.
 
-se combinan enviando los dos al mismo contexto @code{Voice},
+@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
+si tiene nombre, y su expresión musical se pasará a dicho contexto
+para su interpretación.  Esta forma rara vez es útil.  Sin
+embargo, @code{\context} sin nombre y sin expresión musical se usa
+para establecer el contexto en que se ejecuta un procedimiento de
+Scheme especificado con @code{\applyContext}:
 
 @example
-<<
-  \new Staff \context Voice = "A" \musica
-  \context Voice = "A" \decoracion
->>
+\new Staff \relative @{
+  c'1
+  \context Timing
+  \applyContext #(lambda (ctx)
+                   (newline)
+                   (display (ly:context-current-moment ctx)))
+  c1
+@}
 @end example
-@lilypond[quote,ragged-right]
-music = { c4 c4 }
-arts = { s4-. s4-> }
-\relative c'' <<
-  \new Staff \context Voice = "A" \music
-  \context Voice = "A" \arts
->>
-@end lilypond
 
-Con este mecanismo, es posible definir un @qq{urtext} (una edición
-original), con la posibilidad de poner articulaciones distintas sobre
-las mismas notas.
+@end itemize
 
-@cindex crear contextos
+Un contexto debe tener un nombre si se va a hacer referencia a él
+más tarde, por ejemplo cuando se asocia la letra con la música:
 
-@item
-La tercera instrucción para crear contextos es
 @example
-\context @var{tipo} @var{música}
+\new Voice = "tenor" @var{música}
+@dots{}
+\new Lyrics \lyricsto "tenor" @var{letra}
 @end example
 
-
 @noindent
-Esto es similar a @code{\context} con @code{= @var{identificador}},
-pero se corresponde con cualquier contexto del tipo @var{tipo}, sin
-importar qué nombre se le ha dado.
+Para ver más detalles sobre la asociación de letra y música,
+consulte @ref{Duración automática de las sílabas}.
 
-Esta variante se usa con expresiones musicales que se pueden
-interpretar en varios niveles.  Por ejemplo, la instrucción
-@code{\applyOutput} (véase
-@rextend{Ejecutar una función sobre todos los objetos de la presentación}).
-Sin una instrucción @code{\context}
-explícita, normalmente se aplicaría a @code{Voice}
+Las propiedades de todos los contextos de un tipo en particular se
+pueden modificar dentro de un bloque @code{\layout} (con una
+sintaxis diferente), véase
+@ref{Cambiar todos los contextos del mismo tipo}.
 
-@example
-\applyOutput #'@var{contexto} #@var{función}   % aplicar al contexto Voice
-@end example
+Esta construcción también ofrece una forma de mantener las
+instrucciones de disposición separadas del contenido musical.  Si
+se va a modificar un solo contexto, debe usarse un bloque
+@code{\with}, véase
+@ref{Cambiar solamente un contexto determinado}.
 
-Para que se interprete dentro de los niveles de @code{Score} o
-@code{Staff}, utilice las siguientes formas:
+@seealso
+Manual de aprendizaje:
+@rlearning{Organizar las piezas mediante variables}.
 
-@example
-\applyOutput #'Score #@var{función}
-\applyOutput #'Staff #@var{función}
-@end example
+Referencia de la notación:
+@ref{Cambiar solamente un contexto determinado},
+@ref{Duración automática de las sílabas}.
 
-@end itemize
 
 @node Mantener vivos los contextos
 @subsection Mantener vivos los contextos
@@ -389,44 +520,51 @@ Para que se interprete dentro de los niveles de @code{Score} o
 @cindex contextos, mantener vivos
 @cindex contextos, tiempo de vida
 
-Normalmente los contextos finalizan en el primer momento musical en
-que no tienen nada que hacer.  Así, los contextos de @code{Voice}
-mueren tan pronto como ya no contienen ningún evento; los contextos de
-@code{Staff} mueren tan pronto como todos los contextos de
-@code{Voice} que contenían ya no contengan ningún evento; etc.  Esto
-puede ocasionar dificultades si se tiene que hacer referencia a
-contextos anteriores que ya han muerto, por ejemplo, al cambiar de
-pentagramas con instrucciones @code{\change}, asociar letra con una
-voz mediante instrucciones @code{\lyricsto}, o cuando se añaden
-eventos musicales adicionales a un contexto anterior.
-
-Existe una excepción a esta regla general: precisamente uno de los
-contextos de @code{Voice} que están dentro de un contexto de
-@code{Staff} o de una construcción @code{<<...>>} persiste siempre
-hasta el final de, contexto de @code{Staff} circundante o la
-construcción @code{<<...>>}, incluso aunque puede haber períodos en
-que no tiene nada que hacer.  El contexto que persiste de esta forma
-será el primero que se encuentre en la primera construcción encerrada
-entre llaves @code{@{...@}}, ignorando cualquiera que se encuentre
-dentro de construcciones encerradas por ángulos dobles @code{<<...>>}.
+Normalmente los contextos finalizan en el primer momento musical
+en que no tienen nada que hacer.  Así, los contextos de
+@code{Voice} mueren tan pronto como ya no contienen ningún evento,
+los contextos de @code{Staff} mueren tan pronto como todos los
+contextos de @code{Voice} que contenían ya no contengan ningún
+evento, etc.  Esto puede ocasionar dificultades si se tiene que
+hacer referencia a contextos anteriores que ya han muerto, por
+ejemplo, al cambiar de pentagramas con instrucciones
+@code{\change}, asociar letra con una voz mediante instrucciones
+@code{\lyricsto}, o cuando se añaden eventos musicales adicionales
+a un contexto anterior.
+
+Existe una excepción a esta regla general: dentro de una
+construcción @code{@{@dots{}@}} (música secuencial), la noción que
+la construcción tiene del @qq{contexto actual} descenderá un nivel
+cada vez que un elemento de la secuencia finaliza en un
+subcontexto del contexto anterior.  Esto evita la creación espúrea
+de contextos implícitos en ciertas situaciones, pero significa que
+el primer contexto dentro del que se desciende, se va a mantener
+vivo hasta el final de la expresión.
+
+Como contraste, los contextos de una expresión hecha con la
+construcción @code{<<@dots{}>>} (música simultánea) no se
+prolongan, por lo que si una instrucción que crea un contexto se
+encierra en otro par de @code{<<@dots{}>>}, se impedirá que el
+contexto persista durante toda la duración de la secuencia
+@code{@{@dots{}@}} que lo contiene.
 
 Cualquier contexto se puede mantener vivo si nos aseguramos de que
 tiene algo que hacer en cualquier momento musical dado.  Los
-contextos de @code{Staff} se mantienen con vida si nos aseguramos de
-que una de sus voces se mantiene viva.  Una manera de hacerlo es
-añadir silencios de separación a una voz en paralelo con la música
-real.  Éstos deben añadirse a todos y cada uno de los contextos de
-@code{Voice} que se hayan de mantener vivos.  Si se van a usar
-esporádicamente varias voces, es más seguro mantenerlas todas vivas en
-lugar de tratar de confiar en las excepciones que hemos mencionado
-arriba.
+contextos de @code{Staff} se mantienen con vida si nos aseguramos
+de que una de sus voces se mantiene viva.  Una manera de hacerlo
+es añadir silencios de separación a una voz en paralelo con la
+música real.  Éstos deben añadirse a todos y cada uno de los
+contextos de @code{Voice} que se hayan de mantener vivos.  Si se
+van a usar esporádicamente varias voces, es más seguro mantenerlas
+todas vivas en lugar de tratar de confiar en las excepciones que
+hemos mencionado arriba.
 
 En el ejemplo siguiente, tanto la voz A como la voz B se mantienen
 vivas de esta manera durante la duración de la pieza:
 
 @lilypond[quote,verbatim]
-musicA = \relative c'' { d4 d d d }
-musicB = \relative c'' { g4 g g g }
+musicA = \relative { d''4 d d d }
+musicB = \relative { g'4 g g g }
 keepVoicesAlive = {
   <<
     \new Voice = "A" { s1*5 }  % Keep Voice "A" alive for 5 bars
@@ -458,14 +596,14 @@ music = {
 
 @cindex letra, alineación con melodía esporádica
 
-El ejemplo siguiente muestra cómo se puede escribir una línea melódica
-esporádica con letra utilizando este enfoque.  Por supuesto, en una
-situación real la melodía y el acompañamiento consistirían en varias
-secciones diferentes.
+El ejemplo siguiente muestra cómo se puede escribir una línea
+melódica esporádica con letra utilizando este enfoque.  Por
+supuesto, en una situación real la melodía y el acompañamiento
+consistirían en varias secciones diferentes.
 
 @lilypond[quote,verbatim]
-melody = \relative c'' { a4 a a a }
-accompaniment = \relative c' { d4 d d d }
+melody = \relative { a'4 a a a }
+accompaniment = \relative { d'4 d d d }
 words = \lyricmode { These words fol -- low the mel -- o -- dy }
 \score {
   <<
@@ -504,14 +642,14 @@ incluyendo notas espaciadoras para alinearla correctamente con el
 acompañamiento:
 
 @lilypond[quote,verbatim]
-melody = \relative c'' {
+melody = \relative {
   s1  % skip a bar
-  a4 a a a
+  a'4 a a a
   s1  % skip a bar
   a4 a a a
 }
-accompaniment = \relative c' {
-  d4 d d d
+accompaniment = \relative {
+  d'4 d d d
   d4 d d d
   d4 d d d
   d4 d d d
@@ -545,13 +683,13 @@ words = \lyricmode { These words fol -- low the mel -- o -- dy }
 
 @c TODO Should this be Modifying engravers or Modifying contexts?
 
-Los contextos de notación (como @code{Score} y @code{Staff}) no sólo
-almacenan propiedades, también contienen «plug-ins» o complementos
-llamados @q{grabadores} que crean elementos de notación.  Por ejemplo,
-el contexto @code{Voice} contiene un grabador
-@code{Note_heads_engraver} que crea las cabezas de nota y el contexto
-@code{Staff} contiene un grabador @code{Key_signature_engraver} que
-crea la indicación de compás.
+Los contextos de notación (como @code{Score} y @code{Staff}) no
+sólo almacenan propiedades, también contienen «plug-ins» o
+complementos llamados @q{grabadores} que crean elementos de
+notación.  Por ejemplo, el contexto @code{Voice} contiene un
+grabador @code{Note_heads_engraver} que crea las cabezas de nota y
+el contexto @code{Staff} contiene un grabador @code{Key_engraver}
+que crea la armadura.
 
 Para ver una descripción completa de todos y cada uno de los
 complementos, consulte
@@ -571,9 +709,9 @@ Referencia de funcionamiento interno @expansion{} Traducción @expansion{} Conte
 relaciona los grabadores que se usan para ese contexto.
 
 
-Puede ser de utilidad jugar un poco con estos complementos.  Se hace
-iniciando un contexto nuevo con @code{\new} o @code{\context} y
-modificándolo:
+Puede ser de utilidad jugar un poco con estos complementos.  Se
+hace iniciando un contexto nuevo con @code{\new} o @code{\context}
+modificándolo:
 
 @funindex \with
 
@@ -586,46 +724,47 @@ modificándolo:
   @emph{etc.}
 @}
 @{
-  @emph{..música..}
+  @emph{@dots{}música@dots{}}
 @}
 @end example
 
 @noindent
-donde los @dots{} deben ser el nombre de un grabador.  Aquí tenemos un
-ejemplo sencillo que suprime los grabadores
-@code{Time_signature_engraver} y @code{Clef_engraver} de un contexto
-@code{Staff}:
+donde los @dots{} deben ser el nombre de un grabador.  Aquí
+tenemos un ejemplo sencillo que suprime los grabadores
+@code{Time_signature_engraver} y @code{Clef_engraver} de un
+contexto @code{Staff}:
 
-@lilypond[quote,relative=1,verbatim]
+@lilypond[quote,verbatim]
 <<
-  \new Staff {
-    f2 g
+  \new Staff \relative {
+    f'2 g
   }
   \new Staff \with {
      \remove "Time_signature_engraver"
      \remove "Clef_engraver"
-  } {
-    f2 g2
+  } \relative {
+    f'2 g2
   }
 >>
 @end lilypond
 
-En el segundo pentagrama no hay indicación de compás ni clave.  Éste
-es un método bastante rudimentario de hacer que desaparezcan los
-objetos porque afecta a todo el pentagrama.  Este método también
-afecta al espaciado, lo que puede ser deseable o no serlo.  Se
-muestran métodos más sofisticados para quitar objetos en
+En el segundo pentagrama no hay indicación de compás ni clave.
+Éste es un método bastante rudimentario de hacer que desaparezcan
+los objetos porque afecta a todo el pentagrama.  Este método
+también afecta al espaciado, lo que puede ser deseable o no serlo.
+Se muestran métodos más sofisticados para quitar objetos en
 @rlearning{Visibilidad y color de los objetos}.
 
-El ejemplo siguiente muestra una aplicación práctica.  Normalmente las
-líneas divisorias y las indicaciones de compás están sincronizadas a
-lo largo de toda la partitura.  Lo hacen los grabadores
-@code{Timing_translator} y @code{Default_bar_line_engraver}.  Estos
-complementos mantienen al día la administración de las indicaciones de
-compás, posición dentro del compás, etc.  Moviendo estos grabadores
-desde el contexto de @code{Score} al de @code{Staff}, podemos
-conseguir una partitura en la que cada pentagrama tiene su propio
-compás independiente.
+El ejemplo siguiente muestra una aplicación práctica.  Normalmente
+las líneas divisorias y las indicaciones de compás están
+sincronizadas a lo largo de toda la partitura.  Lo hacen los
+grabadores @code{Timing_translator} y
+@code{Default_bar_line_engraver}.  Estos complementos mantienen al
+día la administración de las indicaciones de compás, posición
+dentro del compás, etc.  Moviendo estos grabadores desde el
+contexto de @code{Score} al de @code{Staff}, podemos conseguir una
+partitura en la que cada pentagrama tiene su propio compás
+independiente.
 
 @cindex polimétricas, partituras
 @cindex compases distintos al mismo tiempo
@@ -636,16 +775,18 @@ compás independiente.
     \new Staff \with {
       \consists "Timing_translator"
       \consists "Default_bar_line_engraver"
-    } {
+    }
+    \relative {
         \time 3/4
-        c4 c c c c c
+        c''4 c c c c c
     }
   \new Staff \with {
     \consists "Timing_translator"
     \consists "Default_bar_line_engraver"
-  } {
+  }
+  \relative {
       \time 2/4
-      c4 c c c c c
+      c''4 c c c c c
   }
 >>
 \layout {
@@ -660,82 +801,379 @@ compás independiente.
 
 @knownissues
 
-Normalmente, el orden en que se especifican los grabadores no tiene
-importancia, pero en algunos casos especiales sí la tiene, por ejemplo
-donde un grabador escribe una propiedad y otro la lee, o donde un
-grabador crea un groby otro debe procesarlo.  El orden en que los
-grabadores se especifican es el orden en que se llaman para realizar
-su tarea de procesamiento.
+El orden en que los grabadores se especifican es el orden en que
+se llaman para realizar su tarea de procesamiento.  Normalmente,
+el orden en que se especifican los grabadores no tiene
+importancia, pero en algunos casos especiales sí la tiene, por
+ejemplo donde un grabador escribe una propiedad y otro la lee, o
+donde un grabador crea un groby otro debe procesarlo.
+
+Las siguientes ordenaciones son importantes:
+
+@itemize
+@item
+el grabador de compases @code{Bar_engraver} debe ir normalmente en
+primer lugar,
+
+@item
+el grabador de digitaciones @code{New_fingering_engraver} debe ir
+antes del grabador @code{Script_column_engraver} de columnas de
+inscripciones,
+
+@item
+el @code{Timing_translator} debe ir antes del grabador de números
+de compás @code{Bar_number_engraver}.
+
+@end itemize
+
+@seealso
+Archivos instalados:
+@file{ly/engraver-init.ly}.
 
-Las siguientes ordenaciones son importantes: el grabador de compases
-@code{Bar_engraver} debe ir normalmente en primer lugar, y el grabador
-de digitaciones @code{New_fingering_engraver} debe ir antes del
-grabador @code{Script_column_engraver} de columnas de inscripciones.
-Podría haber otros que tengan dependencias de ordenación.
 
 @node Cambiar los valores por omisión de los contextos
 @subsection Cambiar los valores por omisión de los contextos
 @translationof Changing context default settings
 
-Los ajustes de contexto que están preparados para usarse de forma
-predeterminada en los contextos @code{Score}, @code{Staff} y
-@code{Voice}, se pueden especificar dentro de un bloque
-@code{\layout}, como se ilustra en el ejemplo siguiente.  El bloque
-@code{\layout} se debe colocar dentro del bloque @code{\score} en que
-se quiere que haga efecto, pero fuera de la música.
+@cindex predeterminadas, cambio de propiedades de contexto
+@cindex contexto, cambiar propiedades predeterminadas de
+
+Se pueden cambiar las propiedades de contexto y de grob con las
+instrucciones @code{\set} y @code{\override}, tal y como se
+describe en @ref{Modificar las propiedades}.  Estas instrucciones
+crean eventos musicales, haciendo que los cambios tengan efecto en
+el punto temporal en que la música se está procesando.
+
+Por contra, esta sección explica la forma de cambiarlos valores
+@emph{predeterminados} de las propiedades de contexto y de grob en
+el momento en que se crea el contexto.  Existen dos formas de
+hacerlo.  Una modifica los valores predeterminados en todos los
+contextos de un tipo dado, y el otro modifica los valores
+predeterminados solamente en una instancia concreta de un
+contexto.
+
+@menu
+* Cambiar todos los contextos del mismo tipo::
+* Cambiar solamente un contexto determinado::
+* Orden de precedencia::
+@end menu
+
+@node Cambiar todos los contextos del mismo tipo
+@unnumberedsubsubsec Cambiar todos los contextos del mismo tipo
+@translationof Changing all contexts of the same type
+
+@cindex \context dentro de un bloque \layout
+@funindex \context
+@funindex \layout
+
+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}.
+
+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.
+
+@example
+\layout @{
+  \context @{
+    \Voice
+    [ajustes de contexto para todos los contextos Voice]
+  @}
+  \context @{
+    \Staff
+    [ajustes de contexto para todos los contextos Staff]
+  @}
+@}
+@end example
+
+Se pueden especificar los siguientes tipos de ajustes:
 
-Observe que la propia instrucción @code{\set} y el contexto se deben
-omitir cuando se especifican de esta manera los valores de contexto
-predeterminados:
+@itemize
+@item
+Una instrucción @code{\override}, pero omitiendo el nombre del
+contexto
 
 @lilypond[quote,verbatim]
 \score {
-  \relative c'' {
-    a4^"Really small, thicker stems, no time signature" a a a
-    a a a a
+  \relative {
+    a'4^"Thicker stems" a a a
+    a4 a a\ff a
+  }
+  \layout {
+    \context {
+      \Staff
+      \override Stem.thickness = #4.0
+    }
+  }
+}
+@end lilypond
+
+@item
+Estableciendo una propiedad de contexto directamente
+
+@lilypond[quote,verbatim]
+\score {
+  \relative {
+    a'4^"Smaller font" a a a
+    a4 a a\ff a
   }
   \layout {
     \context {
       \Staff
       fontSize = #-4
-      \override Stem #'thickness = #4.0
-      \remove "Time_signature_engraver"
     }
   }
 }
 @end lilypond
 
-En este ejemplo, la instrucción @code{\Staff} especifica que los
-ajustes siguientes se apliquen a todos los pentagramas dentro del
-bloque de partitura.
+@item
+Una instrucción predefinida tal como @code{\dynamicUp} o una
+expresión musical como @code{\accidentalStyle dodecaphonic}
 
-Se pueden realizar de forma similar modificaciones al contexto
-@code{Score} o a todos los contextos @code{Voice}.
+@lilypond[quote,verbatim]
+\score {
+  \relative {
+    a'4^"Dynamics above" a a a
+    a4 a a\ff a
+  }
+  \layout {
+    \context {
+      \Voice
+      \dynamicUp
+    }
+    \context {
+      \Staff
+      \accidentalStyle dodecaphonic
+    }
+  }
+}
+@end lilypond
 
-@knownissues
+@item
+Una variable definida por el usuario que contenga un bloque
+@code{\with}; para ver detalles acerca del bloque @code{\with},
+consulte @ref{Cambiar solamente un contexto determinado}.
 
-No es posible recolectar cambios de contexto dentro de una variable y
-aplicarlos a una definición de @code{\context} por referencia a dicha
-variable.
+@lilypond[quote,verbatim]
+StaffDefaults = \with {
+  fontSize = #-4
+}
+
+\score {
+  \new Staff {
+    \relative {
+      a'4^"Smaller font" a a a
+      a4 a a a
+    }
+  }
+  \layout {
+    \context {
+      \Staff
+      \StaffDefaults
+    }
+  }
+}
+@end lilypond
+
+@end itemize
 
-La instrucción @code{\RemoveEmptyStaves} sobreescribe nuestros ajustes
-en curso para el contexto @code{\Staff}.  Si queremos cambiar los
-valores predeterminados para un pentagrama que utilice
-@code{\RemoveEmptyStaves}, debemos hacerlo después de llamar a
-@code{\RemoveEmptyStaves}, o sea
+Las instrucciones de ajuste de propiedades se pueden disponer
+dentro de un bloque @code{\layout} sin que estén encerradas en un
+bloque @code{\context}.  Tales ajustes son equivalentes a incluir
+las mismas instrucciones de ajuste de propiedades al comienzo de
+cada uno de los contextos del tipo especificado.  Si no se
+especifica ningún contexto, @emph{todos y cada uno} de los
+contextos del nivel inferior quedan afectados, véase
+@ref{Contextos del nivel más bajo. Voces}.  La sintaxis de una
+instrucción de ajuste de propiedades dentro de un bloque
+@code{\layout} es la misma que si la misma instrucción estuviera
+escrita en el propio flujo musical.
+
+@lilypond[quote,verbatim]
+\score {
+  \new Staff {
+    \relative {
+      a'4^"Smaller font" a a a
+      a4 a a a
+    }
+  }
+  \layout {
+    \accidentalStyle dodecaphonic
+    \set fontSize = #-4
+    \override Voice.Stem.thickness = #4.0
+  }
+}
+@end lilypond
+
+
+@node Cambiar solamente un contexto determinado
+@unnumberedsubsubsec Cambiar solamente un contexto determinado
+@translationof Changing just one specific context
+
+@cindex \with
+@funindex \with
+
+Las propiedades de contexto de una única instancia de contexto
+pueden cambiarse dentro de un bloque @code{\with}.  Todas las
+demás instancias de contexto del mismo tipo retienen los ajustes
+predeterminados que LilyPond tiene programados y que se modifican
+por parte de cualquier bloque @code{\layout} que se encuentre
+dentro del ámbito.  El bloque @code{\with} se debe situar
+inmediatamente después de las instrucciones @code{\new}
+@var{context-type}:
 
 @example
-\layout @{
-  \context @{
-    \Staff \RemoveEmptyStaves
+\new Staff \with @{ [ajustes de contexto para esta instancia de contexto solamente] @}
+@{
+  @dots{}
+@}
+@end example
 
-    \override Stem #'thickness = #4.0
-  @}
+De forma alternativa, si la música se escribe usando la forma
+corta de las instrucciones de especificación de modo, como por
+ejemplo @code{\chords} en lugar de @code{\chordmode}, la
+instrucción @code{\with} se debe colocar inmediatamente después de
+la instrucción que especifica el modo:
+
+@example
+\chords \with @{ [ajustes de contexto para esta instancia de contexto (implícita) solamente] @}
+@{
+  @dots{}
 @}
 @end example
 
-@c TODO: add \with in here.
+@noindent
+dado que es el contexto implícito creado por estas formas breves
+el que se quiere modificar.  Se aplica la misma consideración a
+las otras formas cortas de especificar el modo de entrada
+(@code{\drums}, @code{\figures}), véase @ref{Modos de entrada}.
+
+Dado las modificaciones de contexto especificadas en bloques
+@code{\with} están dentro de la música, afectarán 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
+@item
+Una instrucción @code{\override}, pero omitiendo el nombre del
+contexto
+
+@lilypond[quote,verbatim]
+\score {
+  \new Staff {
+    \new Voice \with { \override Stem.thickness = #4.0 }
+    {
+      \relative {
+        a'4^"Thick stems" a a a
+        a4 a a a
+      }
+    }
+  }
+}
+@end lilypond
+
+@item
+Estableciendo una propiedad de contexto directamente
+
+@lilypond[quote,verbatim]
+\score {
+  <<
+    \new Staff {
+      \relative {
+        a'4^"Default font" a a a
+        a4 a a a
+      }
+    }
+    \new Staff \with { fontSize = #-4 }
+    {
+      \relative {
+        a'4^"Smaller font" a a a
+        a4 a a a
+      }
+    }
+  >>
+}
+@end lilypond
+
+@item
+Una instrucción predefinida tal como @code{\dynamicUp}
+
+@lilypond[quote,verbatim]
+\score {
+  <<
+    \new Staff {
+      \new Voice {
+        \relative {
+          a'4^"Dynamics below" a a a
+          a4 a a\ff a
+        }
+      }
+    }
+    \new Staff \with { \accidentalStyle dodecaphonic }
+    {
+      \new Voice \with { \dynamicUp }
+      {
+        \relative {
+          a'4^"Dynamics above" a a a
+          a4 a a\ff a
+        }
+      }
+    }
+  >>
+}
+@end lilypond
+
+@end itemize
+
+@seealso
+Referencia de la notación:
+@ref{Modos de entrada}
+
+@node Orden de precedencia
+@unnumberedsubsubsec Orden de precedencia
+@translationof Order of precedence
+
+El valor de una propiedad que se aplica en un momento determinado
+se determina de la siguiente forma:
 
+@itemize
+@item
+si está en efecto una instrucción @code{\override} o @code{\set}
+dentro del flujo musical, se usa dicho valor,
+
+@item
+de lo contrario, se usa el valor predeterminado tomado de un
+enunciado @code{\with} en las instrucciones de inicio del
+contexto,
+
+@item
+de lo contrario, se usa el valor tomado del bloque @code{\context}
+más reciente que corresponda dentro de los bloques @code{\layout}
+o @code{\midi},
+
+@item
+de lo contrario se usa el valor predeterminado que LilyPond lleva
+preprogramado.
+@end itemize
+
+@seealso
+Manual de aprendizaje:
+@rlearning{Modificar las propiedades de los contextos}.
+
+Referencia de la notación:
+@ref{Explicación de los contextos},
+@ref{Contextos del nivel más bajo. Voces},
+@ref{La instrucción set},
+@ref{La instrucción override},
+@ref{El bloque layout,,El bloque @code{@bs{}layout}}.
 
 
 @node Definir contextos nuevos
@@ -746,29 +1184,23 @@ valores predeterminados para un pentagrama que utilice
 @cindex grabadores, incluir en contextos
 
 @funindex \alias
-@funindex alias
 @funindex \name
-@funindex name
 @funindex \type
-@funindex type
 @funindex \consists
-@funindex consists
 @funindex \accepts
-@funindex accepts
 @funindex \denies
-@funindex denies
 
 Los contextos específicos, como @code{Staff} y @code{Voice}, están
-construidos a base de bloques sencillos.  Es posible crear nuevos
-tipos de contextos con combinaciones distintas de añadidos grabadores.
+construidos a partir de bloques sencillos.  Es posible crear
+nuevos tipos de contextos con combinaciones distintas de añadidos
+grabadores.
 
 El siguiente ejemplo muestra cómo construir un tipo diferente de
 contexto de @code{Voice} partiendo de cero.  Será parecido a
 @code{Voice}, pero imprime solamente cabezas centradas en forma de
-barra inclinada.  Se puede usar para indicar improvisación en piezas
-de jazz,
+barra inclinada.  Se puede usar para indicar improvisación en
+piezas de jazz,
 
-@c KEEP LY
 @lilypond[quote,ragged-right]
 \layout { \context {
   \name ImproVoice
@@ -776,27 +1208,26 @@ de jazz,
   \consists "Note_heads_engraver"
   \consists "Rhythmic_column_engraver"
   \consists "Text_engraver"
-  \consists Pitch_squash_engraver
+  \consists "Pitch_squash_engraver"
   squashedPosition = #0
-  \override NoteHead #'style = #'slash
-  \override Stem #'transparent = ##t
-  \override Flag #'transparent = ##t
+  \override NoteHead.style = #'slash
+  \hide Stem
   \alias Voice
 }
 \context { \Staff
   \accepts "ImproVoice"
 }}
 
-\relative c'' {
-  a4 d8 bes8 \new ImproVoice { c4^"ad lib" c
-   c4 c^"desvístete" c_"mientras tocas :)" c }
+\relative {
+  a'4 d8 bes8 \new ImproVoice { c4^"ad lib" c
+   c4 c^"undress" c_"while playing :)" c }
   a1
 }
 @end lilypond
 
 
-Estos ajustes se definen dentro de un bloque @code{\context} que a su
-vez está dentro de un bloque @code{\layout},
+Estos ajustes se definen dentro de un bloque @code{\context} que a
+su vez está dentro de un bloque @code{\layout},
 
 @example
 \layout @{
@@ -809,52 +1240,64 @@ vez está dentro de un bloque @code{\layout},
 En el siguiente análisis, la entrada de ejemplo que se muestra debe ir
 en el lugar de los puntos suspensivos @dots{} del fragmento anterior.
 
-En primer lugar es necesario definir un nombre para el nuevo contexto:
+En primer lugar es necesario definir un nombre para el nuevo
+contexto:
 
 @example
 \name ImproVoice
 @end example
 
-Debido a que es parecido al contexto @code{Voice}, queremos órdenes
-que funcionen sobre contextos de @code{Voice} (existentes) para que
-siga funcionando.  Esto se consigue dando al contexto nuevo un alias
-@code{Voice},
+Debido a que es parecido al contexto @code{Voice}, queremos
+órdenes que funcionen dentro de los contextos @code{Voice}
+(existentes) para que siga funcionando.  Esto se consigue dando al
+contexto nuevo un alias de @code{Voice},
 
 @example
 \alias Voice
 @end example
 
-El contexto imprimirá notas y textos explicativos, por ello tenemos
-que añadir los grabadores que aportan esta funcionalidad:
+El contexto imprimirá notas y textos explicativos, por ello
+tenemos que añadir los grabadores que aportan esta funcionalidad,
+y además el grabador que agrupa las notas, plicas y silencios que
+están en el mismo momento musical en forma de columnas,
 
 @example
-\consists Note_heads_engraver
-\consists Text_engraver
+\consists "Note_heads_engraver"
+\consists "Text_engraver"
+\consists "Rhythmic_column_engraver"
 @end example
 
-pero sólo necesitamos esto en la línea central:
+Las cabezas de todas las notas se deben situar sobre la línea
+central,
 
 @example
-\consists Pitch_squash_engraver
+\consists "Pitch_squash_engraver"
 squashedPosition = #0
 @end example
 
-El grabador @rinternals{Pitch_squash_engraver} modifica las cabezas de
-nota (creadas por el grabador @rinternals{Note_heads_engraver}) y
+El grabador @code{Pitch_squash_engraver} modifica las cabezas de
+nota (creadas por el grabador @code{Note_heads_engraver}) y
 establece sus posiciones verticales al valor de
-@code{squashedPosition}, en este caso@tie{}@code{0}, la línea central.
+@code{squashedPosition}, en este caso@tie{}@code{0}, la línea
+central.
 
 Las notas parecen barras inclinadas y no tienen plica:
 
 @example
-\override NoteHead #'style = #'slash
-\override Stem #'transparent = ##t
-\override Flag #'transparent = ##t
+\override NoteHead.style = #'slash
+\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"
@@ -868,20 +1311,20 @@ Al juntarlo todo, obtenemos
   \type "Engraver_group"
   \consists "Note_heads_engraver"
   \consists "Text_engraver"
-  \consists Pitch_squash_engraver
+  \consists "Rhythmic_column_engraver"
+  \consists "Pitch_squash_engraver"
   squashedPosition = #0
-  \override NoteHead #'style = #'slash
-  \override Stem #'transparent = ##t
-  \override Flag #'transparent = ##t
+  \override NoteHead.style = #'slash
+  \hide Stem
   \alias Voice
 @}
 @end example
 
 @funindex \accepts
-Los contextos dan lugar a jerarquías.  Queremos colgar el contexto
-@code{ImproVoice} bajo el contexto @code{Staff}, como simples
-@code{Voice}s normales.  Por tanto, modificamos la definición de
-@code{Staff} con la instrucción @code{\accepts} (acepta),
+Los contextos dan lugar a jerarquías.  Queremos poner el contexto
+@code{ImproVoice} dentro del contexto @code{Staff}, igual que los
+contextos de voz normales.  Por tanto, modificamos la definición
+de @code{Staff} con la instrucción @code{\accepts} (acepta),
 
 @example
 \context @{
@@ -890,12 +1333,41 @@ Los contextos dan lugar a jerarquías.  Queremos colgar el contexto
 @}
 @end example
 
+@funindex \inherit-acceptability
+Con frecuencia, al reutilizar una definición de contexto
+existente, el contexto resultante se puede usar en cualquier lugar
+donde el contexto original hubiera podido hacerlo.
+
+@example
+\layout @{
+  @dots{}
+  \inherit-acceptability @var{to} @var{from}
+@}
+@end example
+
+@noindent
+consigue que tengamos contextos del tipo @var{to} aceptados por
+todos los contextos que asimismo aceptan @var{from}.  Por ejemplo,
+usar
+
+@example
+\layout @{
+  @dots{}
+  \inherit-acceptability "ImproVoice" "Voice"
+@}
+@end example
+
+@noindent
+añade un @code{\accepts} para @code{ImproVoice} tanto a la
+definición de @code{Staff} como a la de @code{RhythmicStaff}.
+
 @funindex \denies
-Lo opuesto a @code{\accepts} (acepta) es @code{\denies} (deniega), lo
-que a veces se necesita cuando se están reutilizando definiciones de
-contexto existentes.
+Lo opuesto a @code{\accepts} (acepta) es @code{\denies} (deniega),
+lo que a veces se necesita cuando se están reutilizando
+definiciones de contexto existentes.
 
-Ponemos ambos dentro de un bloque @code{\layout}, como
+Organizar las piezas requeridas dentro de un bloque @code{\layout}
+nos deja con
 
 @example
 \layout @{
@@ -903,10 +1375,7 @@ Ponemos ambos dentro de un bloque @code{\layout}, como
     \name ImproVoice
     @dots{}
   @}
-  \context @{
-    \Staff
-    \accepts "ImproVoice"
-  @}
+  \inherit-acceptability "ImproVoice" "Voice"
 @}
 @end example
 
@@ -914,8 +1383,8 @@ Así pues, la salida que aparece al comienzo de esta sub-sección se
 puede escribir como
 
 @example
-\relative c'' @{
-  a4 d8 bes8
+\relative @{
+  a'4 d8 bes8
   \new ImproVoice @{
     c4^"ad lib" c
     c4 c^"desvístete"
@@ -925,86 +1394,163 @@ puede escribir como
 @}
 @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:
+@rinternals{Note_heads_engraver},
+@rinternals{Text_engraver},
+@rinternals{Rhythmic_column_engraver},
+@rinternals{Pitch_squash_engraver}.
+
+
+@node Orden de disposición de los contextos
+@subsection Orden de disposición de los contextos
+@translationof Context layout order
+
+@cindex contextos, orden de disposición
+@funindex \accepts
+@funindex \denies
+
+Los contextos se disponen en un sistema normalmente desde arriba
+hacia abajo en el orden en que se encuentran en el archivo de
+entrada.  Cuando los contextos se anidan unos dentro de otros, el
+contexto exterior incluye a los contextos anidados tal y como se
+especifica en el archivo de entrada, siempre y cuando los
+contextos interiores estén incluidos en la lista @qq{accepts} del
+contexto externo.  Los contextos anidados que no está nincluidos
+en la lista @qq{accepts} del contexto externo se recolocan debajo
+del contexto externo en lugar de anidarse dentro de él.
+
+La lista @qq{accepts} de un contexto se puede cambiar con las
+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, 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 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 GrandStaff <<
+    \new StaffGroup <<
+      \new Staff { c'1 }
+      \new Staff { d'1 }
+    >>
+    \new Staff { \set Staff.instrumentName = bottom f'1 }
+  >>
+  \layout {
+    \context {
+      \GrandStaff
+      \accepts "StaffGroup"
+    }
+  }
+}
+@end lilypond
+
+@code{\denies} se usa principalmente cuando un contexto nuevo se
+está basando en otro, pero los anidamientos requeridos difieren.
+Por ejemplo, el contexto @code{VaticanaStaff} está basado en el
+contexto @code{Staff}, pero con el contexto @code{VaticanaVoice}
+sustituido por el contexto @code{Voice} en la lista @qq{accepts}.
 
-@node Alinear los contextos
-@subsection Alinear los contextos
-@translationof Aligning contexts
 
-Los contextos nuevos se pueden alinear por encima o por debajo de
-otros contextos existentes.  Esto podría ser de utilidad al preparar
-un pentagrama vocal (@rlearning{Conjuntos vocales}) y en el ossia,
+@cindex contextos implícitos
+@cindex implícitos, contextos
+@funindex \defaultchild
 
-@cindex ossia
+Observe que discretamente se crea un contexto de forma implícita
+si se encuentra una instrucción donde no hay un contexto apropiado
+para contenerlo.
+
+Dentro de una definición de contexto, el tipo de un subcontexto
+que se va a crear implícitamente se especifica usando
+@code{\defaultchild} (hijo predeterminado).  Algunos eventos
+musicales requieren un contexto @samp{Bottom} (inferior): cuando
+se encuentra este evento, se crean subcontextos de forma recursiva
+hasta que se alcanza un contexto que no tiene establecido el
+@samp{defaultchild}.
+
+La creación implícita de contextos puede dar lugar a pentagramas o
+partituras nuevos no esperados.  La utilización de @code{\new}
+para crear contextos explícitamente evita esos problemas.
+
+@cindex alignAboveContext
+@cindex alignBelowContext
 @funindex alignAboveContext
 @funindex alignBelowContext
 
-@lilypond[quote,ragged-right]
-ossia = { f4 f f f }
-\score{
-  \relative c' \new Staff = "main" {
-    c4 c c c
-    <<
-      \new Staff \with { alignAboveContext = #"main" } \ossia
-      { d8 f d f d f d f }
-    >>
-  }
-}
-@end lilypond
+En ocasiones se necesita que un contexto exista durante un breve
+intervalo de tiempo, siendo un buen ejemplo el contexto de
+pentagrama de un ossia.  Esto se consigue normalmente mediante la
+introducción de la definición del contexto en el lugar apropiado
+en paralelo con la sección correspondiente de la música principal.
+De forma predeterminada, el contexto tempral se coloca debajo de
+todos los contextos existentes.  Para reposicionarlo por encima
+del contexto que tenga el nombre @qq{principal}, debería definirse
+de esta forma:
 
-@cindex nested contexts
-@cindex contexts, nested
+@example
+\new Staff \with @{ alignAboveContext = #"principal" @}
+@end example
 
-@funindex \accepts
-@funindex \denies
+Se presenta una situación similar cuando se posiciona un contexto
+temporal de letra de una canción dentro de una disposición de varios
+pentagramas tal como @code{ChoirStaff}, por ejemplo, cuando se añade
+una segunda estrofa a una sección que se repite.  De forma
+predeterminada, el contexto temporal de letra se coloca debajo de los
+pentagramas inferiores.  Mediante la definición del contexto temporal
+de letra con @code{alignBelowContext} se puede posicionar
+correctamente debajo del contexto de letra con nombre que contiene el
+texto de la primera estrofa.
+
+En diversos lugares pueden verse ejemplos que muestran esta
+recolocación de contextos temporales: véase
+@rlearning{Anidado de expresiones musicales},
+@ref{Modificación de pentagramas sueltos} y
+@ref{Técnicas específicas para la letra}.
 
-Los contextos como @code{PianoStaff} pueden llevar dentro otros
-contextos anidados.  Los contextos que se pueden aceptar para su
-anidamiento están definidos por la lista @qq{accepts} (acepta) de un
-contexto.  Los contextos que no están en esta lista se colocan debajo
-del contexto exterior en la partitura impresa.  Por ejemplo, el
-contexto @code{PianoStaff} está definido para que acepte contextos
-@code{Staff} y @code{FiguredBass} de forma predeterminada, pero no un
-contexto @code{Lyrics}, por ejemplo.  Así pues, en la siguiente
-estructura la letra se sitúa debajo del sistema de piano en lugar de
-colocarse entre los dos pentagramas:
-
-@lilypond[verbatim,quote,relative=1]
-\new PianoStaff
-<<
-  \new Staff { e4 d c2 }
-  \addlyrics { Three blind mice }
-  \new Staff {
-    \clef "bass"
-    { c,1 }
-  }
->>
-@end lilypond
+@seealso
+Manual de aprendizaje:
+@rlearning{Anidado de expresiones musicales}.
 
-La lista @qq{accepts} de un contexto se puede modificar para que
-incluya contextos anidados adicionales, y así si quisiéramos que la
-letra apareciese entre los dos pentagramas podríamos usar:
+Referencia de la notación:
+@ref{Modificación de pentagramas sueltos},
+@ref{Técnicas específicas para la letra}.
 
-@lilypond[verbatim,quote,relative=1]
-\new PianoStaff \with { \accepts Lyrics }
-<<
-  \new Staff { e4 d c2 }
-  \addlyrics { Three blind mice }
-  \new Staff {
-    \clef "bass"
-    { c,1 }
-  }
->>
-@end lilypond
+Manual de utilización del programa:
+@rprogram{Aparece un pentagrama de más}.
 
-Lo contrario de @code{\accepts} (acepta) es @code{\denies} (deniega);
-esto suprime un contexto de la lista @qq{accepts}.
+Archivos instalados:
+@file{ly/engraver-init.ly}.
 
 
 @node Explicación del Manual de referencia de funcionamiento interno
 @section Explicación del Manual de referencia de funcionamiento interno
 @translationof Explaining the Internals Reference
 
-
 @menu
 * Navegar por la referencia del programa::
 * Interfaces de la presentación::
@@ -1013,7 +1559,6 @@ esto suprime un contexto de la lista @qq{accepts}.
 @end menu
 
 
-
 @node Navegar por la referencia del programa
 @subsection Navegar por la referencia del programa
 @translationof Navigating the program reference
@@ -1021,10 +1566,8 @@ esto suprime un contexto de la lista @qq{accepts}.
 Supongamos que queremos mover la indicación de digitación del
 fragmento siguiente:
 
-@lilypond[quote,relative=2,verbatim]
-c-2
-\stemUp
-f
+@lilypond[quote,fragment,verbatim]
+c''-2
 @end lilypond
 
 Si hace una visita a la documentación en busca de instrucciones de
@@ -1039,14 +1582,14 @@ Referencia de funcionamiento interno: @rinternals{Fingering}.
 
 @ifnothtml
 La referencia del programador se encuentra disponible en forma de
-documento HTML.  Se recomienda mucho que lo lea en la forma HTML, bien
-en línea o bien descargando los archivos de la documentación HTML.
-Esta sección sería mucho más difícil de entender si está utilizando el
-manual en formato PDF.
+documento HTML.  Se recomienda mucho que lo lea en la forma HTML,
+bien en línea o bien descargando los archivos de la documentación
+HTML.  Esta sección sería mucho más difícil de entender si está
+utilizando el manual en formato PDF.
 @end ifnothtml
 
-Siga el enlace que lleva a @rinternals{Fingering}.  Al principio de la
-página, puede ver
+Siga el enlace que lleva a @rinternals{Fingering}.  Al principio
+de la página, puede ver
 
 @quotation
 Los objetos de digitación se crean por parte de:
@@ -1054,7 +1597,8 @@ Los objetos de digitación se crean por parte de:
 @end quotation
 
 Siguiendo los enlaces relacionados dentro de la referencia del
-programa, podemos seguir el flujo de información dentro del programa:
+programa, podemos seguir el flujo de información dentro del
+programa:
 
 @itemize
 
@@ -1070,23 +1614,23 @@ El tipo de evento musical @code{fingering-event} está descrito en
 Expresiones musicales con el nombre de @rinternals{FingeringEvent}
 @end itemize
 
-Este camino se recorre en contra de la corriente de información del
-programa: comienza por la salida y acaba en el evento de entrada.
-También podríamos haber empezado por un evento de la entrada, y leído
-siguiendo el flujo de información terminando en su caso en el objeto
-(u objetos) de la salida.
+Este camino se recorre en contra de la corriente de información
+del programa: comienza por la salida y acaba en el evento de
+entrada.  También podríamos haber empezado por un evento de la
+entrada, y leído siguiendo el flujo de información terminando en
+su caso en el objeto (u objetos) de la salida.
 
-La referencia del programa también se puede examinar como un documento
-normal.  Contiene capítulos que tratan de
+La referencia del programa también se puede examinar como un
+documento normal.  Contiene capítulos que tratan de
 @ifhtml
 @rinternals{Music definitions},
 @end ifhtml
 @ifnothtml
 @code{Music definitions}
 @end ifnothtml
-de la @rinternals{Translation}, y del @rinternals{Backend}.  Cada uno
-de los capítulos relaciona todas las definiciones utilizadas y todas
-las propiedades que se pueden ajustar.
+de la @rinternals{Translation}, y del @rinternals{Backend}.  Cada
+uno de los capítulos relaciona todas las definiciones utilizadas y
+todas las propiedades que se pueden ajustar.
 
 
 @node Interfaces de la presentación
@@ -1098,13 +1642,14 @@ las propiedades que se pueden ajustar.
 @cindex grob
 
 La página HTML que pudimos ver en la sección anterior describe el
-objeto de presentación llamado @rinternals{Fingering}.  Dicho objeto
-es un símbolo dentro de la partitura.  Tiene propiedades que guardan
-números (como grosores y direcciones), pero también punteros a objetos
-relacionados.  Un objeto de presentación también se llama un
-@emph{Grob}, que es una abreviatura de Graphical Object (objeto
-gráfico).  Para ver más detalles acerca de los objetos gráficos o
-Grobs, consulte @rinternals{grob-interface}.
+objeto de presentación llamado @rinternals{Fingering}.  Dicho
+objeto es un símbolo dentro de la partitura.  Tiene propiedades
+que guardan números (como grosores y direcciones), pero también
+punteros a objetos relacionados.  Un objeto de presentación
+también se llama un @emph{Grob}, que es una abreviatura de
+Graphical Object (objeto gráfico).  Para ver más detalles acerca
+de los objetos gráficos o Grobs, consulte
+@rinternals{grob-interface}.
 
 La página dedicada a @code{Fingering} relaciona las definiciones del
 objeto @code{Fingering}.  Por ejemplo, la página dice
@@ -1120,25 +1665,25 @@ lo que significa que el número se mantendrá a una distancia de al
 menos 0.5 de la cabeza de la nota.
 
 
-Cada objeto de presentación puede tener varias funciones como elemento
-notacional o tipográfico.  Por ejemplo, el objeto de digitación
-Fingering tiene los siguientes aspectos
+Cada objeto de presentación puede tener varias funciones como
+elemento notacional o tipográfico.  Por ejemplo, el objeto de
+digitación Fingering tiene los siguientes aspectos
 
 @itemize
 @item
-Su tamaño es independiente del espaciado horizontal, al contrario de
-las ligaduras o las barras de las figuras.
+Su tamaño es independiente del espaciado horizontal, al contrario
+de las ligaduras o las barras de las figuras.
 
 @item
 Es un elemento de texto.  Casi seguro que es un texto muy corto.
 
 @item
-este elemento de texto se tipografía con un tipo de letra, no como las
-ligaduras o las barras de las figuras.
+este elemento de texto se tipografía con un tipo de letra, no como
+las ligaduras o las barras de las figuras.
 
 @item
-Horizontalmente, el centro del símbolo se debe alinear con el centro
-de la cabeza de la nota.
+Horizontalmente, el centro del símbolo se debe alinear con el
+centro de la cabeza de la nota.
 
 @item
 Verticalmente, el símbolo se coloca cerca de la nota y del pentagrama.
@@ -1164,8 +1709,8 @@ Este objeto contempla los siguientes interfaces:
 Al pulsar sobre cualquiera de los enlaces nos desplazaremos a la
 página del respectivo interfaz del objeto.  Cada interfaz tiene un
 cierto número de propiedades.  Algunas de ellas no son para que el
-usuario las pueda ajustar (@q{Propiedades internas}), pero otras sí se
-pueden modificar.
+usuario las pueda ajustar (@q{Propiedades internas}), pero otras
+sí se pueden modificar.
 
 Hemos estado hablando de @emph{el} objeto @code{Fingering}, pero
 realmente esto no significa mucho.  El archivo de inicialización
@@ -1196,9 +1741,9 @@ realmente esto no significa mucho.  El archivo de inicialización
 @end example
 
 @noindent
-Como podemos ver, el objeto @code{Fingering} no es más que un montón
-de valores de variables, y la página web de la Referencia de
-funcionamiento interno se genera directamente a partir de esta
+Como podemos ver, el objeto @code{Fingering} no es más que un
+montón de valores de variables, y la página web de la Referencia
+de funcionamiento interno se genera directamente a partir de esta
 definición.
 
 
@@ -1208,16 +1753,14 @@ definición.
 
 Recordemos que queríamos cambiar la posición del @b{2} en
 
-@lilypond[quote,relative=2,verbatim]
-c-2
-\stemUp
-f
+@lilypond[quote,fragment,verbatim]
+c''-2
 @end lilypond
 
-Puesto que el @b{2} se encuentra colocado verticalmente sobre su nota,
-tenemos que negociar con el interfaz asociado con esta colocación.
-Esto se hace usando @code{side-position-interface}.  La página que
-describe este interface dice:
+Puesto que el @b{2} se encuentra colocado verticalmente sobre su
+nota, tenemos que negociar con el interfaz asociado con esta
+colocación.  Esto se hace usando @code{side-position-interface}.
+La página que describe este interface dice:
 
 @quotation
 @code{side-position-interface}
@@ -1231,45 +1774,43 @@ derecha, encima o debajo?)
 @cindex relleno
 @cindex padding (relleno)
 @noindent
-Debajo de esta descripción, la variable @code{padding} (relleno) se
-describe como
+Debajo de esta descripción, la variable @code{padding} (relleno)
+se describe como
 
 @quotation
 @table @code
 @item padding
 (dimensión, en espacios de pentagrama)
 
-Añadir esta cantidad de espacio adicional entre objetos que están unos
-junto a otros.
+Añadir esta cantidad de espacio adicional entre objetos que están
+unos junto a otros.
 @end table
 @end quotation
 
 Aumentando el valor de @code{padding}, podemos alejar la cifra de
 digitación de la cabeza de la nota.  La siguiente orden inserta un
-espacio en blanco de 3 espacios de pentagrama entre la nota y la
-digitación:
+espacio en blanco de tres @qq{espacios de pentagrama} entre la
+nota y la digitación:
+
 @example
-\once \override Voice.Fingering #'padding = #3
+\once \override Voice.Fingering.padding = #3
 @end example
 
-Al insertar esta instrucción antes de que se haya creado el objeto
-Fingering, es decir, antes del @code{c2}, llegamos al siguiente
-resultado:
+Al insertar este relleno antes de que se haya creado el objeto de
+digitación, llegamos al siguiente resultado:
 
-@lilypond[quote,relative=2,verbatim]
-\once \override Voice.Fingering #'padding = #3
-c-2
-\stemUp
-f
+@lilypond[quote,fragment,verbatim]
+\once \override Voice.Fingering.padding = #3
+c''-2
 @end lilypond
 
-En este caso, el contexto de este truco es @code{Voice}.  Este hecho
-se puede deducir también a partir de la referencia del programa, ya
-que la página dedicada al añadido @rinternals{Fingering_engraver} dice
+En este caso, el contexto de este truco es @code{Voice}.  Véase el
+apartado dedicado al añadido @rinternals{Fingering_engraver}, que
+dice:
 
 @quotation
-El grabador Fingering_engraver es parte de los contextos: @dots{}
-@rinternals{Voice}
+El grabador Fingering_engraver forma parte de los contextos:
+@dots{}  @rinternals{Voice}
 @end quotation
 
 
@@ -1281,13 +1822,20 @@ Se hace necesario presentar una panorámica de las diversas
 convenciones de nomenclatura:
 
 @itemize
-@item funciones de Scheme: minúsculas-con-guiones (incluso nombres de una sola palabra)
-@item funciones de Scheme: ly:más-estilo-de-scheme
+@item funciones de Scheme: minúsculas-con-guiones (lo que incluye a los nombres de una sola palabra)
+
+@item funciones de Scheme específicas de LilyPond: ly:más-estilo-de-scheme
+
 @item eventos, clases y propiedades musicales: como-las-funciones-de-scheme
+
 @item interfaces de Grobs: estilo-scheme
+
 @item propiedades de backend: estilo-scheme (¡pero X e Y en mayúsculas!)
+
 @item contextos (y ExpresionesMusicales y grobs): Mayúsculas o MayúsculasDeCamello
+
 @item propiedades de contexto: minúsculasSeguidoDeMayúsculasDeCamello
+
 @item grabadores: Mayúsculas_seguido_de_minúsculas_y_con_barras_bajas
 @end itemize
 
@@ -1295,10 +1843,12 @@ convenciones de nomenclatura:
 Preguntas aún sin respuesta
 @itemize
 @item ¿Cuáles de aquéllas son convenciones y cuáles son reglas?
+
 @item ¿Cuáles son reglas del lenguaje subyacente, y cuáles son específicas de LilyPond?
 @end itemize
 @end ignore
 
+
 @node Modificar las propiedades
 @section Modificar las propiedades
 @translationof Modifying properties
@@ -1318,21 +1868,23 @@ Preguntas aún sin respuesta
 @translationof Overview of modifying properties
 
 Cada contexto es responsable de la creación de ciertos tipos de
-objetos gráficos.  Los ajustes que se usan para imprimir estos objetos
-también se almacenan por contexto.  Mediante la modificación de estos
-ajustes, se puede alterar la apariencia de los objetos.
+objetos gráficos.  Los ajustes que se usan para imprimir estos
+objetos también se almacenan por contexto.  Mediante la
+modificación de estos ajustes, se puede alterar la apariencia de
+los objetos.
 
 Existen dos tipos diferentes de propiedades almacenadas en los
-contextos: las propiedades de contexto y las propiedades de grob.  Las
-prpopiedades de contexto son propiedades que se aplican al contexto
-como un todo y controlan la forma en que el propio contexto se
-imprime.  Por contra, las propiedades de grob se aplican a los tipos
-de grob específicos que se imprimirán dentro del contexto.
-
-Las instrucciones @code{\set} y @code{\unset} se usan para cambiar los
-valores de las propiedades de contexto.  Las instrucciones
-@code{\override} y @code{\revert} se usan para cambiar los valores de
-las propiedades de grob.
+contextos: las propiedades de contexto y las propiedades de grob.
+Las propiedades de contexto son propiedades que se aplican al
+contexto como un todo y controlan la forma en que el propio
+contexto se imprime.  Por contra, las propiedades de grob se
+aplican a los tipos de grob específicos que se imprimirán dentro
+del contexto.
+
+Las instrucciones @code{\set} y @code{\unset} se usan para cambiar
+los valores de las propiedades de contexto.  Las instrucciones
+@code{\override} y @code{\revert} se usan para cambiar los valores
+de las propiedades de grob.
 
 @ignore
 La sintaxis de esto es
@@ -1353,7 +1905,7 @@ funcionalidad des esta instrucción.
 La instrucción
 
 @verbatim
-\override Staff.Stem #'thickness = #4.0
+\override Staff.Stem.thickness = #4.0
 @end verbatim
 
 @noindent
@@ -1363,12 +1915,12 @@ instrucción especifica como contexto a @code{Staff}, sólo se aplica al
 pentagrama actual.  Otros pentagramas mantienen su aspecto normal.
 Aquí vemos la instrucción en pleno funcionamiento:
 
-@lilypond[quote,verbatim,relative=2]
-c4
-\override Staff.Stem #'thickness = #4.0
-c4
-c4
-c4
+@lilypond[quote,fragment,verbatim]
+c''4
+\override Staff.Stem.thickness = #4.0
+c''4
+c''4
+c''4
 @end lilypond
 
 La instrucción @code{\override} modifica la definición de la plica
@@ -1380,11 +1932,11 @@ omitir, ocasionando que se utilice el contexto predeterminado
 @code{Voice}.  Al añadir @code{\once} se aplica el cambio durante un
 solo paso de tiempo.
 
-@lilypond[quote,verbatim,relative=2]
-c4
-\once \override Stem #'thickness = #4.0
-c4
-c4
+@lilypond[quote,fragment,verbatim]
+c''4
+\once \override Stem.thickness = #4.0
+c''4
+c''4
 @end lilypond
 
 El @code{\override} se debe hacer antes de que el objeto se inicia.
@@ -1392,11 +1944,11 @@ Por tanto, al alterar objetos @emph{Spanner} «de extensión» como
 ligaduras o barras, la instrucción @code{\override} se debe ejecutar
 en el momento en que se crea el objeto.  En este ejemplo:
 
-@lilypond[quote,verbatim,relative=2]
-\override Slur #'thickness = #3.0
-c8[( c
-\override Beam #'beam-thickness = #0.6
-c8 c])
+@lilypond[quote,fragment,verbatim]
+\override Slur.thickness = #3.0
+c''8[( c''
+\override Beam.beam-thickness = #0.6
+c''8 c''])
 @end lilypond
 
 @noindent
@@ -1411,8 +1963,8 @@ del mismo contexto.  En otras palabras, el @code{\revert} del
 siguiente ejemplo no hace nada.
 
 @example
-\override Voice.Stem #'thickness = #4.0
-\revert Staff.Stem #'thickness
+\override Voice.Stem.thickness = #4.0
+\revert Staff.Stem.thickness
 @end example
 
 Algunas opciones «trucables» se llaman @q{subpropiedades} y residen
@@ -1428,7 +1980,7 @@ instrucciones de la forma
 tales como
 
 @example
-\override Stem #'(details beamed-lengths) = #'(4 4 3)
+\override Stem.details.beamed-lengths = #'(4 4 3)
 @end example
 
 @end ignore
@@ -1441,13 +1993,11 @@ Referencia de funcionamiento interno:
 @rinternals{RevertProperty},
 @rinternals{PropertySet}.
 
-
 @knownissues
-
-El «back-end» o motor de salida no es muy estricto en la comprobación
-de tipos de las propiedades de objetos.  Las referencias cíclicas en
-valores Scheme de propiedades pueden producir cuelgues o salidas
-abruptas, o las dos cosas.
+El «back-end» o motor de salida no es muy estricto en la
+comprobación de tipos de las propiedades de objetos.  Las
+referencias cíclicas en valores Scheme de propiedades pueden
+producir cuelgues o salidas abruptas, o las dos cosas.
 
 
 @node La instrucción set
@@ -1459,32 +2009,33 @@ abruptas, o las dos cosas.
 @cindex cambiar propiedades
 
 Cada contexto puede tener distintas @emph{propiedades}, variables
-contenidas dentro de ese contexto.  Se pueden cambiar mientras dura el
-paso de interpretación.  Se consigue insertando la instrucción
-@code{\set} dentro de la música:
+contenidas dentro de ese contexto.  Se pueden cambiar mientras
+dura el paso de interpretación.  Se consigue insertando la
+instrucción @code{\set} dentro de la música:
 
 @example
 \set @var{contexto}.@var{propiedad} = #@var{valor}
 @end example
 
-@var{valor} es un objeto de Scheme, razón por la que va precedido del
-carácter almohadilla,@tie{}@code{#}.
-
-El nombre de las propiedades de contexto suele ir en minúsculas con
-mayúscula en medio.  Controlan sobre todo la traducción de la música a
-la notación, p.ej. @code{localKeySignature} (para determinar si hay
-que impriir alteraciones o no), o @code{measurePosition} (para
-determinar cuándo hay que imprimir una línea divisoria).  El valor de
-las propiedades de contexto puede modifcarse con el tiempo durante la
-interpretación de la música; un ejemplo obvio es
-@code{measurePosition}.  Las propiedades de contexto se modifican
-mediante la instrucción @code{\set}.
-
-Por ejemplo, los silencios multicompás se combinan en un solo compás
-si el valor de la propiedad de contexto @code{skipBars} se establece a
-@code{#t} (verdadero):
-
-@lilypond[quote,verbatim,relative=2]
+@var{valor} es un objeto de Scheme, razón por la que va precedido
+del carácter almohadilla,@tie{}@code{#}.
+
+El nombre de las propiedades de contexto suele ir en minúsculas
+con mayúscula en medio.  Controlan sobre todo la traducción de la
+música a la notación, p.ej. @code{localAlterations} (para
+determinar si hay que impriir alteraciones o no), o
+@code{measurePosition} (para determinar cuándo hay que imprimir
+una línea divisoria).  El valor de las propiedades de contexto
+puede modifcarse con el tiempo durante la interpretación de la
+música; un ejemplo obvio es @code{measurePosition}.  Las
+propiedades de contexto se modifican mediante la instrucción
+@code{\set}.
+
+Por ejemplo, los silencios multicompás se combinan en un solo
+compás si el valor de la propiedad de contexto @code{skipBars} se
+establece a @code{#t} (verdadero):
+
+@lilypond[quote,fragment,verbatim]
 R1*2
 \set Score.skipBars = ##t
 R1*2
@@ -1494,29 +2045,29 @@ Si se omite el argumento @var{context}, entonces se utiliza el
 contexto actual de nivel más bajo (normalmente @code{ChordNames},
 @code{Voice} o @code{Lyrics}). En este ejemplo:
 
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,fragment,verbatim]
 \set Score.autoBeaming = ##f
-<<
-  {
-    e8 e e e
-    \set autoBeaming = ##t
-    e8 e e e
-  } \\ {
-    c8 c c c c8 c c c
-  }
->>
+\relative {
+  e''8 e e e
+  \set autoBeaming = ##t
+  e8 e e e
+} \\
+\relative {
+  c''8 c c c c8 c c c
+}
 @end lilypond
 
-El cambio se aplica @q{al vuelo}, mientras dura la música, de forma
-que el ajuste sólo afecta al segundo grupo de corcheas.
+El cambio se aplica @q{al vuelo}, mientras dura la música, de
+forma que el ajuste sólo afecta al segundo grupo de corcheas.
 
 Observe que el contexto del nivel más bajo no siempre contiene la
-propiedad que querríamos modificar: por ejemplo, intentar ajustar el
-valor de la propiedad @code{skipBars} del contexto predeterminado del
-nivel más bajo, que en este caso es @code{Voice}, no tendrá ningún
-efecto, porque skipBars es una propiedad del contexto @code{Score}.
+propiedad que querríamos modificar: por ejemplo, intentar ajustar
+el valor de la propiedad @code{skipBars} del contexto
+predeterminado del nivel más bajo, que en este caso es
+@code{Voice}, no tendrá ningún efecto, porque skipBars es una
+propiedad del contexto @code{Score}.
 
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,fragment,verbatim]
 R1*2
 \set skipBars = ##t
 R1*2
@@ -1540,23 +2091,22 @@ elimina la definición solamente si está establecida dentro de
 @var{contexto}.  Properties that have been set in enclosing contexts will
 not be altered by an unset in an enclosed context:
 
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,fragment,verbatim]
 \set Score.autoBeaming = ##t
-<<
-  {
-    \unset autoBeaming
-    e8 e e e
-    \unset Score.autoBeaming
-    e8 e e e
-  } \\ {
-    c8 c c c c8 c c c
-  }
->>
+\relative {
+  \unset autoBeaming
+  e''8 e e e
+  \unset Score.autoBeaming
+  e8 e e e
+} \\
+\relative {
+  c''8 c c c c8 c c c
+}
 @end lilypond
 
 Como @code{\set}, el argumento @var{contexto} no se tiene que
-especificar para un contexto del nivel más bajo, por lo que los dos
-enunciados
+especificar para un contexto del nivel más bajo, por lo que los
+dos enunciados
 
 @example
 \set Voice.autoBeaming = ##t
@@ -1568,19 +2118,20 @@ son equivalentes si el contexto inferior en curso es @code{Voice}.
 
 
 @cindex \once
-Los ajustes que se aplican solamente a un único paso de tiempo se
-pueden escribir con @code{\once}, por ejemplo en
+Los ajustes con @code{\set} o @code{\unset} que se aplican
+solamente a un único paso de tiempo se pueden escribir con
+@code{\once}, por ejemplo en
 
-@lilypond[quote,verbatim,relative=2]
-c4
+@lilypond[quote,fragment,verbatim]
+c''4
 \once \set fontSize = #4.7
-c4
-c4
+c''4
+c''4
 @end lilypond
 
 En el manual de Referencia de funcionamiento interno hay una
-descripción completa de todas las propiedades de contexto disponibles,
-consulte
+descripción completa de todas las propiedades de contexto
+disponibles, consulte
 @ifhtml
 @rinternals{Tunable context properties}.
 @end ifhtml
@@ -1590,132 +2141,137 @@ usuario.
 @end ifnothtml
 
 @seealso
-
 Referencia de funcionamiento interno:
 @rinternals{Tunable context properties}.
 
-
-@cindex grob, propiedades de
-@cindex propiedades de grob
-@funindex \override
-
 @node La instrucción override
 @subsection La instrucción @code{\override}
 @translationof The override command
 
-Existe un tipo especial de propiedad de contexto: la descripción de
-los grobs.  Las decscripciones de los grobs reciben un nombre en
-@code{MayúsculasDeCamello} (empezando en mayúscula).  Contienen los
-@q{ajustes predeterminados} para un tipo particular de grob, en forma
-de lista asociativa.  Consulte @file{scm/define-grobs.scm} para
-ver los ajustes de cada descripción de grob.  Las descripciones de
-grob se modifican con @code{\override}.
-
-@code{\override} es en realidad una forma abreviada;
+@cindex grob, propiedades de
+@cindex propiedades de grob
+@funindex \override
 
-@example
-\override @var{contexto}.@var{NombreDelGrob} #'@var{propiedad} = #@var{valor}
-@end example
+Existe un tipo especial de propiedad de contexto: la descripción
+de los grobs.  Las decscripciones de los grobs reciben un nombre
+en @code{MayúsculasDeCamello} (empezando en mayúscula).  Contienen
+los @q{ajustes predeterminados} para un tipo particular de grob,
+en forma de lista asociativa.  Consulte
+@file{scm/define-grobs.scm} para ver los ajustes de cada
+descripción de grob.  Las descripciones de grob se modifican con
+@code{\override}.
 
-@noindent
-equivale más o menos a
+La sintaxis de la instrucción @code{\override} es
 
-@c  leave this long line -gp
 @example
-\set @var{contexto}.@var{NombreDelGrob}  =
-  #(cons (cons '@var{propiedad} @var{valor})
-         <valor anterior de @var{contexto}.@var{NombreDelGrob}>)
+\override [@var{contexto}.]@var{NombreDelGrob}.@var{propiedad} = #@var{valor}
 @end example
 
-El valor de @code{contexto}.@code{NombreDelGrob} (la lista-A) se
-utiliza para inicializar las propiedades de los grobs individuales.
-Los grobs tienen propiedades, denominadas en el estilo de Scheme, con
-@code{palabras-con-guiones}.  Los valores de las propiedades de grob
-cambian durante el proceso de formateo: éste se realiza básicamente
-calculando las propiedades utilizando funciones de @q{callback}
-(pasadas como parámetro).
-
 Por ejemplo, podemos aumentar el grosor de la plica de una figura
 sobreescribiendo la propiedad @code{thickness} (grosor) del objeto
 @code{Stem} (plica):
 
-@lilypond[quote,verbatim,relative=2]
-c4 c
-\override Voice.Stem #'thickness = #3.0
-c4 c
+@lilypond[quote,fragment,verbatim]
+c''4 c''
+\override Voice.Stem.thickness = #3.0
+c''4 c''
 @end lilypond
 
 Si no se ha especificado ningún contexto en la instrucción
 @code{\override}, se utiliza el contexto del nivel inferior:
 
-@lilypond[quote,verbatim,relative=2]
-{ \override Staff.Stem #'thickness = #3.0
-  <<
-    {
-      e4 e
-      \override Stem #'thickness = #0.5
-      e4 e
-    } \\ {
-      c4 c c c
-    }
-  >>
-}
+@lilypond[quote,fragment,verbatim]
+\override Staff.Stem.thickness = #3.0
+<<
+  \relative {
+    e''4 e
+    \override Stem.thickness = #0.5
+    e4 e
+  } \\
+  \relative {
+    c''4 c c c
+  }
+>>
 @end lilypond
 
+Algunas opciones susceptibles de trucaje, se llaman
+@q{subpropiedades} y residen dentro de las propiedades.  Para
+efectura trujajes sobre ellas, utilice instrucciones de la forma
+
+@example
+\override Stem.details.beamed-lengths = #'(4 4 3)
+@end example
+
+o para modificar los extremos de los objetos extensos, utilice una
+forma como las siguientes:
+
+@example
+\override TextSpanner.bound-details.left.text = #"left text"
+\override TextSpanner.bound-details.right.text = #"right text"
+@end example
+
 @funindex \revert
 @cindex reversión de sobreescrituras
 @cindex sobreescrituras, reversión de
 
 El efecto de una instrucción de sobreescritura @code{\override} se
-puede deshacer con @code{\revert}:
+puede deshacer con @code{\revert}.
 
-@lilypond[quote,verbatim,relative=2]
-c4
-\override Voice.Stem #'thickness = #3.0
-c4 c
-\revert Voice.Stem #'thickness
-c4
-@end lilypond
+La sintaxis de la instrucción @code{\revert} es
 
-Los efectos de @code{\override} y @code{\revert} se aplican a todos
-los grobs del contexto afectado partiendo del momento actual y hacia
-adelante:
+@example
+\revert [@var{Contexto}.]@var{NombreDelGrob}.@var{propiedad}
+@end example
 
-@lilypond[quote,verbatim,relative=2]
-{
-  <<
-    {
-      e4
-      \override Staff.Stem #'thickness = #3.0
-      e4 e e
-    } \\ {
-      c4 c c
-      \revert Staff.Stem #'thickness
-      c4
-    }
-  >>
+Por ejemplo,
+
+@lilypond[quote,verbatim]
+\relative {
+  c''4
+  \override Voice.Stem.thickness = #3.0
+  c4 c
+  \revert Voice.Stem.thickness
+  c4
 }
 @end lilypond
 
+Los efectos de @code{\override} y @code{\revert} se aplican a
+todos los grobs del contexto afectado partiendo del momento actual
+y hacia adelante:
+
+@lilypond[quote,verbatim]
+<<
+  \relative {
+    e''4
+    \override Staff.Stem.thickness = #3.0
+    e4 e e
+  } \\
+  \relative {
+    c''4 c c
+    \revert Staff.Stem.thickness
+    c4
+  }
+>>
+@end lilypond
+
 @funindex \once
 @cindex sobreescritura para un solo momento
 
-Se puede usar @code{\once} con @code{\override} para afectar solamente
-al instante de tiempo actual:
+Se puede usar @code{\once} con @code{\override} o @code{\revert}
+para afectar solamente al instante de tiempo actual:
 
-@lilypond[quote,verbatim,relative=2]
-{
-  <<
-    {
-      \override Stem #'thickness = #3.0
-      e4 e e e
-    } \\ {
-      c4
-      \once \override Stem #'thickness = #3.0
-      c4 c c
-    }
-  >>
-}
+@lilypond[quote,verbatim]
+<<
+  \relative c {
+    \override Stem.thickness = #3.0
+    e''4 e e e
+  } \\
+  \relative {
+    c''4
+    \once \override Stem.thickness = #3.0
+    c4 c c
+  }
+>>
 @end lilypond
 
 
@@ -1724,7 +2280,7 @@ Las instrucciones que modifican la salida tienen por lo general un
 aspecto como
 
 @example
-\override Voice.Stem #'thickness = #3.0
+\override Voice.Stem.thickness = #3.0
 @end example
 
 @noindent
@@ -1737,14 +2293,6 @@ Para construir este truco debemos determinar los siguientes datos:
 @item un valor adecuado: aquí @code{3.0}.
 @end itemize
 
-Ciertas opciones ajustables se denominan @q{subpropiedades} y residen
-en el interior de las propiedades normales.  Para modificarlas utilice
-instrucciones de la forma
-
-@example
-\override Stem #'(details beamed-lengths) = #'(4 4 3)
-@end example
-
 @cindex documentación interna
 @cindex buscar objetos gráficos
 @cindex gráficos, descripción de los objetos
@@ -1764,10 +2312,10 @@ manual de notación y en la referencia de funcionamiento interno.
 @end ignore
 
 @seealso
-
 Referencia de funcionamiento interno:
 @rinternals{Backend}
 
+
 @node La instrucción tweak
 @subsection La instrucción @code{\tweak}
 @translationof The tweak command
@@ -1783,11 +2331,12 @@ a todos los grobs del contexto afectado.  Esto se consigue con la
 instrucción @code{\tweak}, que tiene la sintaxis siguiente:
 
 @example
-\tweak #'@code{propiedad-del-grob} #@code{valor}
+\tweak [@var{objeto-de-presentación}.]@var{propiedad-del-grob} @var{valor}
 @end example
 
-La instrucción @code{\tweak} se aplica al objeto que viene
-inmediatamente después de @code{valor} dentro del flujo musical.
+Es opcional especificar el @var{objeto-de-presentación}.  La
+instrucción @code{\tweak} se aplica al objeto musical que viene
+inmediatamente después de @var{valor} dentro del flujo musical.
 
 @ignore
 En ocasiones es posible tomar un atajo para realizar el ajuste fino de
@@ -1795,21 +2344,23 @@ los objetos gráficos.  Para objetos que resultan directamente de un
 elemento de código de la entrada, puede usar la función @code{\tweak},
 por ejemplo
 
-@lilypond[relative=2,verbatim,quote]
-< c
-  \tweak #'color #red
-  d
-  g
-  \tweak #'duration-log #1
-  a
-> 4
--\tweak #'padding #8
--^
+@lilypond[verbatim,quote]
+\relative {
+  < c''
+    \tweak color #red
+    d
+    g
+    \tweak duration-log #1
+    a
+  > 4
+  -\tweak padding #8
+  -^
+}
 @end lilypond
 
 
 
-Pero el uso principal de la instrucción @code{\tweak} es modificar
+El uso principal de la instrucción @code{\tweak} es modificar
 solamente uno de varios elementos de notación que dan comienzo en el
 mismo momento musical, como las notas de un acorde, o corchetes de
 tresillo que empiezan al mismo tiempo.
@@ -1831,15 +2382,15 @@ posibilidad de modificarla.
 
 Así, esto funciona:
 
-@lilypond[relative=2,verbatim,quote]
-<\tweak #'color #red c>4
+@lilypond[verbatim,fragment,quote]
+<\tweak color #red c''>4
 @end lilypond
 
 @noindent
 pero esto no funciona:
 
-@lilypond[relative=2,verbatim,quote]
-\tweak #'color #red c4
+@lilypond[verbatim,fragment,quote]
+\tweak color #red c''4
 @end lilypond
 
 @end ignore
@@ -1847,11 +2398,12 @@ pero esto no funciona:
 Para ver una introducción a la sintaxis y los usos de la instrucción tweak,
 consulte @rlearning{Métodos de trucaje}.
 
-Si se colocan varios elementos similares en el mismo momento musical,
-la instrucción @code{\override} no se puede usar para modificar uno
-solo de ellos: aquí es donde se debe usar la instrucción
-@code{\tweak}.  Entre los elementos que pueden aparecer más de una vez
-en el mismo momento musical están los siguientes:
+Si se colocan varios elementos similares en el mismo momento
+musical, la instrucción @code{\override} no se puede usar para
+modificar uno solo de ellos: aquí es donde se debe usar la
+instrucción @code{\tweak}.  Entre los elementos que pueden
+aparecer más de una vez en el mismo momento musical están los
+siguientes:
 
 @c TODO expand to include any further uses of \tweak
 @itemize
@@ -1865,71 +2417,82 @@ en el mismo momento musical están los siguientes:
 
 @cindex acorde, modificación de una nota
 
-En este ejemplo se modifican el color de una cabeza y el tipo de otra,
-dentro del mismo acorde:
+En este ejemplo se modifican el color de una cabeza y el tipo de
+otra, dentro del mismo acorde:
 
-@lilypond[relative=2,verbatim,quote]
-< c
-  \tweak #'color #red
-  d
-  g
-  \tweak #'duration-log #1
-  a
+@lilypond[verbatim,fragment,quote]
+< c''
+  \tweak color #red
+  d''
+  g''
+  \tweak duration-log #1
+  a''
 > 4
 @end lilypond
 
 @code{\tweak} se puede usar para modificar ligaduras de expresión:
 
-@lilypond[verbatim,quote,relative=1]
-c-\tweak #'thickness #5 ( d e f)
+@lilypond[verbatim,quote]
+\relative { c'-\tweak thickness #5 ( d e f) }
 @end lilypond
 
 
 Para que funcione la instrucción @code{\tweak}, debe permanecer
 adyacente al objeto al que se ha de aplicar después de que el código
-de entrada se ha convertido a un flujo musical.  A veces, LilyPond
-puede insertar elementos adicionales dentro del flujo de música
-durante el proceso de análisis sintáctico.  Por ejemplo, cuando una
-nota que no es parte explícita de un acorde se coloca dentro de un
-acorde por parte de LilyPond de manera que las notas que se pretenden
-modificar con @code{\tweak} se deben poner dentro de una construcción
-de acorde:
-
-@lilypond[relative=2,verbatim,quote]
-\tweak #'color #red c4
-<\tweak #'color #red c>4
-@end lilypond
-
-La instrucción @code{\tweak} no se puede usar para modificar ningún
-elemento que no aparezca explícitamente en el código de entrada.
-Concretamente, no se puede usar para modificar plicas, barras o
-alteraciones directamente, porque éstos se generan posteriormente por
-parte de las cabezas de las notas, más que por elementos musicales del
-flujo de entrada.  Tampoco se puede usar @code{\tweak} para modificar
-las claves ni las indicaciones de compás, porque se separarán de
-cualquier instrucción @code{\tweak} que aparezca en el flujo de
-entrada debido a la inserción automática de los elementos adicionales
-que se requieren para especificar el contexto.
-
-También se pueden escribir varias instrucciones @code{\tweak} antes de
-un elemento notacional, y todas ellas le afectan:
-
-@lilypond[verbatim,quote,relative=1]
-c
--\tweak #'style #'dashed-line
--\tweak #'dash-fraction #0.2
--\tweak #'thickness #3
--\tweak #'color #red
- \glissando
-f'
-@end lilypond
-
-El flujo musical que se genera a partir de una sección de un archivo
-de entrada (incluido cualquier elemento insertado automáticamente)
-puede examinarse, véase @rextend{Presentación de las expresiones musicales}.
-Esto puede ser de utilidad en la determinación de lo que
-puede modificarse por medio de una instrucción @code{\tweak}.
+de entrada se ha convertido a un flujo musical.  El trucaje de un
+acorde completo no hace nada porque su evento musical actúa solamente
+como un contenedor, y todos los objetos de presentación se crean a
+partir de eventos dentro del @code{EventChord}:
+
+@lilypond[verbatim,fragment,quote]
+\tweak color #red c''4
+\tweak color #red <c'' e''>4
+<\tweak color #red c'' e''>4
+@end lilypond
+
+La instrucción @code{\tweak} sencilla no se puede usar para
+modificar ningún objeto que no se haya creado directamente a
+partir de la entrada.  Concretamente, no afecta a las plicas,
+barras automáticas ni alteraciones, porque éstos se generan
+posteriormente por parte de objetos de presentación
+@code{NoteHead} más que por elementos musicales del flujo de
+entrada.
+
+Tales objetos de presentación creados indirectamente se pueden
+trucar usando la forma de la instrucción @code{\tweak} en que el
+nombre del grob se especifica de forma explícita:
+
+@lilypond[fragment,verbatim,quote]
+\tweak Stem.color #red
+\tweak Beam.color #green c''8 e''
+<c'' e'' \tweak Accidental.font-size #-3 ges''>4
+@end lilypond
+
+No se puede usar @code{\tweak} para modificar las claves o las
+indicaciones de compás, porque éstos se separan de cualquier
+instrucción @code{\tweak} precedente dentro del flujo de entrada
+merced a la inserción automática de elementos adicionales que se
+requieren para especificar el contexto.
+
+Se pueden colocar varias instrucciones @code{\tweak} antes de un
+elemento de notación; todos le afectan:
+
+@lilypond[verbatim,fragment,quote]
+c'
+  -\tweak style #'dashed-line
+  -\tweak dash-fraction #0.2
+  -\tweak thickness #3
+  -\tweak color #red
+  \glissando
+f''
+@end lilypond
 
+El flujo musical que se genera a partir de una sección de un
+archivo de entrada (incluido cualquier elemento insertado
+automáticamente) puede examinarse, véase
+@rextend{Presentación de las expresiones musicales}.  Esto puede
+ser de utilidad en la determinación de lo que puede modificarse
+por medio de una instrucción @code{\tweak}.
 
 @seealso
 Manual de aprendizaje:
@@ -1938,49 +2501,431 @@ Manual de aprendizaje:
 Manual de extensión:
 @rextend{Presentación de las expresiones musicales}.
 
-
 @knownissues
 
-@cindex trucos en una variable
-La instrucción @code{\tweak} no se puede usar dentro de una variable.
-
-@cindex trucos en la letra
-Las instrucciones @code{\tweak} no se pueden usar dentro del modo
-@code{\lyricmode}.
-
 @cindex trucar puntos de control
 @cindex control, trucar puntos de
 
-La instrucción @code{\tweak} solamente se aplica a la primera de
-varias ligaduras generadas dentro de un acorde.
+No se puede usar la instrucción @code{\tweak} para modificar los
+puntos de control de una sola de varias ligaduras de unión dentro
+de un acorde, aparte de la primera que se encuentre en el código
+de entrada.
+
 
 @node set frente a override
 @subsection @code{\set} frente a @code{\override}
 @translationof set versus override
 
-@c HACER: probablemente esta sección es innecesaria.
+@c TODO Should't a bunch of that be explained earlier?
 
-@ignore
-We have seen two methods of changing properties: @code{\set} and
-@code{\override}.  There are actually two different kinds of
-properties.
+@funindex \set
+@funindex \override
 
-@code{fontSize} is a special property: it is equivalent to
-entering @code{\override ... #'font-size} for all pertinent
-objects.  Since this is a common change, the special
-property (modified with @code{\set}) was created.
+Tanto la instrucción @code{\set} como @code{\override} manipulan
+propiedades asociadas a contextos.  En ambos casos las propiedades
+siguen una@emph{jerarquía de contextos}: las propiedades que no se
+establecen dentro del contexto aún presentan los valores del
+contexto de su padre respectivo.
+
+El valor y la duración en el tiempo de una propiedad 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 las
+definiciones correspondientes (así como otras posibles
+modificaciones) de dicho contexto.  Cualquier cambio posterior se
+obtiene a través de instrucciones de establecimiento de
+propiedades dentro de la propia música.
+
+Las definiciones de grob (objetos gráficos) son una clase
+@emph{especial} de propiedades de contexto, pues su estructura y
+uso son distintos de las propiedades de contexto ordinarias.  A
+diferencia de las propiedades de los contextos normales, las
+definiciones de grob se subdividen en @emph{propiedades de grob}.
+
+Además, en contraste con las propiedades de contexto normales, las
+definiciones de grob tienen su propio conjunto de @q{utilidades de
+mantenimiento} de las propiedades individuales y, en su caso,
+sub-propiedades.  Esto supone que es posible definir las distintas
+partes dentro de diferentes contextos y aún tener la definición
+completa del grob en el momento de su creación, montada a partir
+de todas las piezas proporcionadas por el contexto actual y su
+ancestro o ancestros, conjuntamente.
+
+Un grob u 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 modificar (o
+añadirse a) las propiedades iniciales del grob; sin embargo, ello
+no afecta a la definición de grob del contexto.
+
+Lo que LilyPond conoce 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.
+
+Se accede a las definiciones de grob con un conjunto de
+instrucciones diferente.  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
 
-@end ignore
+Las instrucciones @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 establecen propiedades sobre ellos directamente
+con @code{\tweak} cuando se originan a partir de un evento musical
+o, en el caso de @code{\overrideProperty}, para una sobreescritura
+específica.
+
+@node La instrucción offset
+@subsection La instrucción @code{\offset}
+@translationof The offset command
+
+@funindex \offset
+@cindex desplazamiento
+@cindex valores predeterminados, desplazar
+
+Aunque es posible fijar propiedades de grob a valores nuevos con
+las instrucciones @code{\override}, @code{\tweak} y
+@code{\overrideProperty}, muchas veces conviene más modificar
+dichas propiedades en una cantidad relativa al valor
+predeterminado.  La instrucción @code{\offset} se encuentra
+disponible para este fin.
+
+La sintaxis de @code{\offset} es
+
+@example
+[-]\offset @var{propiedad} @var{incrementos} @var{elemento}
+@end example
+
+La instrucción funciona añadiendo el contenido de
+@var{incrementos} al ajuste predeterminado de la @var{propiedad}
+del grob indicado por @var{elemento}.
+
+Dependiendo de la formulación de la instrucción, @code{\offset}
+puede actuar como un @code{\tweak} (trucaje) o como un
+@code{\override} (sobreescritura).  Las variaciones en su uso se
+explicarán después de haber examinado las propiedades de grob que
+se pueden usar con @code{\offset}.
+
+@subsubsubheading{Propiedades que admiten el desplazamiento}
+
+Muchas, pero no todas, las propiedades de grob admiten la
+aplicación de un desplazamiento.  Si @var{propiedad} no se puede
+desplazar, el objeto permanece sin cambios y se emite una
+advertencia.  En estos casos se deben usar en su lugar
+@code{\override} o @code{\tweak} para modificar el objeto.
+
+Se puede trabajar por ensayo y error y dejar que las advertencias
+nos sirvan de guía para saber lo que puede o no puede ser
+desplazado.  Sin embargo, es posible un enfoque más sistemático.
+
+Los criterios siguientes determinan si una propiedad se puede
+modificar con @code{\offset}:
+
+@itemize
+
+@item
+La propiedad tiene un @q{ajuste predeterminado} en la descripción
+del grob.  Tales propiedades aparecen listadas para cada grob en
+@rinternals{All layout objects} (y también están en
+@file{scm/define-grobs.scm}).
+
+@item
+La propiedad admite un valor numérico.  Entre los valores
+numéricos se encuentran @code{number}, una lista de
+@code{number}s, @code{number-pair}, y @code{number-pair-list}.
+Las páginas de @rinternals{All layout objects} contienen una lista
+de los tipos de datos característicos de cada propiedad.  No
+importa si el ajuste predeterminado es una función.
+
+@item
+La propiedad no puede ser una @q{subpropiedad} (una propiedad que
+reside dentro de otra propiedad).
+
+@item
+Las propiedades establecidas a valores infinitos no se pueden
+desplazar. No hay ninguna forma sensata de incrementar los valores
+infinitos positivos o negativos.
+@end itemize
+
+Los ejemplos siguientes tratan diversas propiedades de grob frente
+a los criterios que se han expuesto.
+
+@itemize
+
+@item Propiedades que se pueden desplazar
+
+@table @asis
+
+@item @code{Hairpin.height}
+
+Esta propiedad no es una subpropiedad, y está en la lista que
+aparece en @rinternals{Hairpin}.  En cuanto a su valor, admite
+@q{dimension, in staff space} (dimensión, en espacios de
+pentagrama) fijado a @code{0.6666} (que claramente es un
+@code{number} no infinito).
+
+@item @code{Arpeggio.positions}
+
+En la lista de la página que describe @rinternals{Arpeggio}
+aparece una propiedad @code{positions} que admite una @q{pareja de
+números}.  Su valor predeterminado es
+@code{ly:arpeggio::positions}, que es un @q{callback} que se
+evalúa durante la fase de tipografiado para dar como resultado una
+pareja de números para cualguier objeto @code{Arpeggio} dado.
+
+@end table
+
+@item Propiedades que no admiten el desplazamiento
+
+@table @asis
+
+@item @code{Hairpin.color}
+
+No hay un listado para @code{color} en @rinternals{Hairpin}.
+
+@item @code{Hairpin.circled-tip}
+
+La lista de @code{Hairpin.circled-tip} en la página de
+@rinternals{Hairpin} muestra que admite un valor @code{boolean}.
+Los valores booleanos so no numéricos.
+
+@item @code{Stem.details.lengths}
+
+Aunque está listado en @rinternals{Stem} y su valor por omisión es
+una lista de @code{number}s, es una @q{subpropiedad}.  Por el
+momento no se contemplan las @q{propiedades anidadas}.
+
+@end table
+
+@end itemize
+
+@subsubsubheading{@bs{}offset como sobreescritura}
+
+Si @var{elemento} es un nombre de grob como @code{Arpeggio} o
+@code{Staff.OttavaBracket}, el resultado es un @code{\override} o
+sobreescritura de el tipo de grob especificado.
+
+@example
+\offset @var{propiedad} @var{incremento} [@var{contexto}.]@var{NombreDeGrob}
+@end example
+
+Observe que el guión precedente @emph{nunca} se utiliza con la
+forma @q{override}, de igual manera que nunca se usa con la propia
+instrucción @code{\override}.
+
+El ejemplo siguiente usa la forma @q{override}, de sobreescritura,
+para alargar los arpegios predeterminados que aparecen en el
+primer compás para que cubran todo el tamaño de los acordes.  Los
+arpegios se amplían en medio espacio de pentagrama hacia arriba y
+hacia abajo.  También se muestra la misma operación efectuada
+sobre el primer acorde con una sobreescritura normal de la
+propiedad the @code{positions}.  Este método no es en absoluto
+expresivo de la acción de @q{ampliar en medio espacio de
+pentagrama}, porque los extremos se tienen que especificar
+mediante coordenadas absolutas, no relativas.  Además, se
+necesitarían sobreescrituras individuales para los otros acordes,
+ya que varían en tamaño y posición.
+
+@lilypond[quote,verbatim]
+arpeggioMusic = {
+  <c' e' g'>\arpeggio <a' c'' e''>\arpeggio
+  <d' f' a' c''>\arpeggio <c' e' g' b' d'' f'' a''>\arpeggio
+}
+
+{
+  \arpeggioMusic
+  \bar "||"
+  \offset positions #'(-0.5 . 0.5) Arpeggio
+  \arpeggioMusic
+  \bar "||"
+  \once \override Arpeggio.positions = #'(-3.5 . -0.5)
+  <c' e' g'>1\arpeggio
+  \bar "||"
+}
+@end lilypond
+
+En su uso como @q{override}, @code{\offset} se puede hacer
+preceder por @code{\once} o por @code{\temporary} y revertirse
+mediante @code{\revert} con la @var{propiedad}.  Esto se sigue a
+partir del hecho de que @code{\offset} en realidad crea un
+@code{\override} para la @var{propiedad}.
+
+@lilypond[quote,verbatim]
+music = { c'8\< d' e' f'\! }
+
+{
+  \music
+  \offset height 1 Hairpin
+  \music
+  \music
+  \revert Hairpin.height
+  \music
+  \bar "||"
+  \once \offset height 1 Hairpin
+  \music \music
+  \bar "||"
+  \override Hairpin.height = 0.2
+  \music
+  \temporary \offset height 2 Hairpin
+  \music
+  \music
+  \revert Hairpin.height
+  \music
+  \bar "||"
+}
+@end lilypond
+
+Así como @code{\override}, la forma @q{override} de @code{\offset}
+se puede usar con @code{\undo} y con @code{\single}.
+
+@lilypond[quote,verbatim]
+longStem = \offset length 6 Stem
+
+{
+ \longStem c'4 c''' c' c''
+ \bar "||"
+ \undo \longStem c'4 c''' c' c''
+ \bar "||"
+ \single \longStem c'4 c''' c' c''
+ \bar "||"
+}
+@end lilypond
+
+@subsubsubheading{@bs{}offset como trucaje}
+
+Si @var{elemento} es una expresión musical como @code{(} o
+@code{\arpeggio}, el resultado es la misma expresión musical con
+un trucaje aplicado.
+
+@example
+[-]\offset [@var{NombreDeGrob}.]@var{propiedad} @var{incrementos} @var{expresión-musical}
+@end example
+
+La sintaxis de @code{\offset} en forma de @q{tweak} es análoga a
+la propia instrucción @code{\tweak}, tanto en orden como en cuanto
+a la presencia o ausencia del guión inicial.
+
+El ejemplo siguiente usa la forma @q{tweak} para ajustar la
+posición vertical del objeto @code{BreathingSign}.  Compárelo con
+la instrucción @code{\tweak} normal que también aparece.  La
+sintaxis es equivalente; sin embargo, la salida de @code{\tweak}
+es menos intuitiva, ya que @code{BreathingSign.Y-offset} se
+calcula a partir de la tercera línea del pentagrama.  No es
+necesario saber cómo se calcula @code{Y-offset}, al usar
+@code{\offset}.
+
+@lilypond[quote,verbatim]
+{
+  c''4
+  \breathe
+  c''4
+  \offset Y-offset 2 \breathe
+  c''2
+  \tweak Y-offset 3 \breathe
+}
+@end lilypond
+
+En el ejemplo anterior, los objetos trucados se crearon
+directamente a partir de la entrada del usuario: la instrucción
+@code{\breathe} era una instrucción explícita para devolver un
+objeto @code{BreathingSign}.  Dado que el objeto de la instrucción
+no es ambiguo, no había necesidad de especificar el nombre del
+objeto.  Sin embargo, cuando un objeto se crea
+@emph{indirectamente}, es necesario incluir el nombre del grob.
+Es lo mismo que para la instrucción @code{\tweak}.
+
+En el ejemplo siguiente, el objeto @code{Beam} se baja en dos
+espacios de pentagrama aplicando @code{\offset} a la propiedad
+@code{positions}.
+
+La primera aplicación de @code{\offset} exige que se incluya el
+nombre del grob, porque nada en el código de entrada crea
+explícitamente la barra.  En la segunda aplicación, la barra se
+crea manualmente con la expresión musical @code{[}; por tanto, el
+nombre del grob no es necesario (también aparece en la ilustración
+una abreviatura: un solo número se aplica a los dos miembros de
+una pareja).
+
+@lilypond[quote,verbatim]
+{
+  c''8 g'' e'' d''
+  \offset Beam.positions #'(-2 . -2)
+  c''8 g'' e'' d''
+  c''8 g'' e'' d''
+  c''8-\offset positions #-2 [ g'' e'' d'']
+}
+@end lilypond
+
+@subsubsubheading{@bs{}offset con objetos extensos divididos}
+
+También es posible modificar segmentos de un objeto que se
+extiende sobre un salto o saltos de línea.  En este caso,
+@var{offsets} admite una lista de valores del tipo de datos
+requerido por la propiedad.
+
+La instrucción @code{\offset} usada de esta forma es similar a la
+instrucción @code{\alterBroken}
+(véase @ref{Modificación de objetos de extensión divididos}).  Sin
+embargo, a diferencia de @code{\alterBroken}, los valores que se
+le dan a @code{\offset} son relativos, no absolutos.
+
+El ejemplo siguiente desplaza el objeto @q{dividido}
+@code{OttavaBracket} a través de su propiedad
+@code{staff-padding}.  Dado que la propiedad toma un
+@code{number}, se le proporciona a @var{incrementos} una lista de
+números para aplicarlos a los dos segmentos creados por el salto
+de línea.  La parte de ligadura de la primera línea queda, en
+realidad, inalterada, ya que se añade @code{0} a su valor por
+omisión.  El segmento que está en la segunda línea se eleva dos
+espacios de pentagrama a partir de su altura por omisión.  La
+altura predeterminada resulta ser @code{2}, aunque no es necesario
+saberlo.
+
+@lilypond[quote,verbatim]
+{
+  \offset staff-padding #'(0 3) Staff.OttavaBracket
+  \ottava #1
+  c'''2 c'''
+  \break
+  c'''2 c'''
+}
+@end lilypond
+
+El ejemplo siguiente copia el efecto de la instrucción
+@code{\shape} mediante el incremento de la propiedad
+@code{control-points} del objeto @code{Slur}.  Aquí,
+@var{incrementos} es una lista de parejas de números, una por cada
+segmento de la ligadura.  Este ejemplo produce un resultado
+idéntico a la ilustración correspondiente que aparece en
+@ref{Modificación de las formas}.
+
+@lilypond[quote,verbatim]
+{
+  c'4-\offset control-points #'(
+               ((0 . 0) (0 . 0) (0 . 0) (0 . 1))
+               ((0.5 . 1.5) (1 . 0) (0 . 0) (0 . -1.5))
+              ) ( f'4 g' c''
+  \break
+  d'4 c'' f' c')
+}
+@end lilypond
 
 
 @node Modificación de las listas-A
 @subsection Modificación de las listas-A
 @translationof Modifying alists
 
-Ciertas propiedades configurables por parte del usuario se representan
-internamente como @emph{listas-A} (listas asociativas), que almacenan
-duplas de @emph{claves} y @emph{valores}.  La estructura de una
-lista-A es la siguiente:
+Ciertas propiedades configurables por parte del usuario se
+representan internamente como @emph{listas-A} (listas
+asociativas), que almacenan duplas de @emph{claves} y
+@emph{valores}.  La estructura de una lista-A es la siguiente:
 
 @example
 '((@var{clave1} . @var{valor1})
@@ -1990,19 +2935,18 @@ lista-A es la siguiente:
 @end example
 
 Si una lista-A es una propiedad de un grob o una variable de
-@code{\paper}, sus claves se pueden modificar individualmente sin que
-afecte a las otras claves.
+@code{\paper}, sus claves se pueden modificar individualmente sin
+que afecte a las otras claves.
 
 Por ejemplo, para reducir el espacio entre pentagramas adyacentes
 dentro de un grupo, use la propiedad @code{staff-staff-spacing}
-del grob @code{StaffGrouper}.  La propiedad es una lista-A con cuatro
-claves: @code{basic-distance} (distancia básica),
-@code{minimum-distance} (distancia mínima), @code{padding} (relleno)
-y @code{stretchability} (ampliabilidad).
-Los ajustes estándar para esta propiedad
-se relacionan en la sección
-@qq{Backend} de la Referencia de Funcionamiento Interno
-(véase @rinternals{StaffGrouper}):
+del grob @code{StaffGrouper}.  La propiedad es una lista-A con
+cuatro claves: @code{basic-distance} (distancia básica),
+@code{minimum-distance} (distancia mínima), @code{padding}
+(relleno) y @code{stretchability} (ampliabilidad).  Los ajustes
+estándar para esta propiedad se relacionan en la sección
+@qq{Backend} de la Referencia de Funcionamiento Interno (véase
+@rinternals{StaffGrouper}):
 
 @example
 '((basic-distance . 9)
@@ -2011,10 +2955,11 @@ se relacionan en la sección
   (stretchability . 5))
 @end example
 
-Una forma de acercar los pentagramas entre sí es reducir el valor de
-la clave @code{basic-distance} (@code{9}) para que se corresponda con el valor
-de @code{minimum-distance} (@code{7}).  Para modificar una única clave
-de forma individual, utilice una @emph{declaración anidada}:
+Una forma de acercar los pentagramas entre sí es reducir el valor
+de la clave @code{basic-distance} (@code{9}) para que se
+corresponda con el valor de @code{minimum-distance} (@code{7}).
+Para modificar una única clave de forma individual, utilice una
+@emph{declaración anidada}:
 
 @lilypond[quote,verbatim]
 % default space between staves
@@ -2026,7 +2971,7 @@ de forma individual, utilice una @emph{declaración anidada}:
 % reduced space between staves
 \new PianoStaff \with {
   % this is the nested declaration
-  \override StaffGrouper #'staff-staff-spacing #'basic-distance = #7
+  \override StaffGrouper.staff-staff-spacing.basic-distance = #7
 } <<
   \new Staff { \clef treble c''1 }
   \new Staff { \clef bass   c1   }
@@ -2035,20 +2980,20 @@ de forma individual, utilice una @emph{declaración anidada}:
 
 La utilización de una declaración anidada actualiza la clave
 especificada (como @code{basic-distance} en el ejemplo anterior)
-sin alterar ninguna
-de las otras claves que ya se habían establecido para la misma
-propiedad.
+sin alterar ninguna de las otras claves que ya se habían
+establecido para la misma propiedad.
 
-Ahora, supongamos que deseamos que los pentagramas estén tan próximos
-como sea posible sin que se superpongan.  La manera más sencilla de
-hacerlo es establecer las cuatro claves de la lista-A a cero.  Sin
-embargo, no es necesario escribir cuatro declaraciones anidadas,
-una por cada clave.  En lugar de eso, se puede redefinir
-completamente la propiedad con una sola declaración, como una lista-A:
+Ahora, supongamos que deseamos que los pentagramas estén tan
+próximos como sea posible sin que se superpongan.  La manera más
+sencilla de hacerlo es establecer las cuatro claves de la lista-A
+a cero.  Sin embargo, no es necesario escribir cuatro
+declaraciones anidadas, una por cada clave.  En lugar de eso, se
+puede redefinir completamente la propiedad con una sola
+declaración, como una lista-A:
 
 @lilypond[quote,verbatim]
 \new PianoStaff \with {
-  \override StaffGrouper #'staff-staff-spacing =
+  \override StaffGrouper.staff-staff-spacing =
     #'((basic-distance . 0)
        (minimum-distance . 0)
        (padding . 0)
@@ -2060,18 +3005,18 @@ completamente la propiedad con una sola declaración, como una lista-A:
 @end lilypond
 
 Observe que cualquier clave que no haya sido relacionada
-explícitamente en la definición de la lista-A, será reiniciada a sus
-valores @emph{predeterminados si no se han fijado}.  En el caso de
-@code{staff-staff-spacing}, el valor de cualquier clave no fijada se
-reiniciaría a cero (excepto @code{stretchability}, que toma el valor
-de @code{basic-distance} si no se fija).  Así, las dos declaraciones siguientes
-son equivalentes:
+explícitamente en la definición de la lista-A, será reiniciada a
+sus valores @emph{predeterminados si no se han fijado}.  En el
+caso de @code{staff-staff-spacing}, el valor de cualquier clave no
+fijada se reiniciaría a cero (excepto @code{stretchability}, que
+toma el valor de @code{basic-distance} si no se fija).  Así, las
+dos declaraciones siguientes son equivalentes:
 
 @example
-\override StaffGrouper #'staff-staff-spacing =
+\override StaffGrouper.staff-staff-spacing =
   #'((basic-distance . 7))
 
-\override StaffGrouper #'staff-staff-spacing =
+\override StaffGrouper.staff-staff-spacing =
   #'((basic-distance . 7)
      (minimum-distance . 0)
      (padding . 0)
@@ -2079,22 +3024,22 @@ son equivalentes:
 @end example
 
 Una consecuencia de esto (posiblemente no intencionada) es la
-eliminación de cualquier valor estándar que
-se establezca en un archivo de inicio y que se carga cada vez que se
-compila un archivo de entrada.  En el ejemplo anterior, los ajustes
-estándar para @code{padding} y
-@code{minimum-distance} (definidos en @file{scm/define-grobs.scm}) se
-reinician a sus valores predeterminados si no se han fijado (cero para
-las dos claves).  La definición de una propiedad o variable como una
-lista-A (de cualquier tamaño) siempre reinicia todos los valores de
-clave no establecidos a sus valores predeterminados si no se han
-fijado.  Ano ser que este sea el resultado deseado, es más seguro
-actualizar los valores de clave individualmente con una declaración
-anidada.
-
-@warning{Las declaraciones anidadas no funcionan para las listas-A de
-propiedades de contexto (como @code{beamExceptions},
-@code{keySignature}, @code{timeSignatureSettings}, etc.).  Estas
+eliminación de cualquier valor estándar que se establezca en un
+archivo de inicio y que se carga cada vez que se compila un
+archivo de entrada.  En el ejemplo anterior, los ajustes estándar
+para @code{padding} y @code{minimum-distance} (definidos en
+@file{scm/define-grobs.scm}) se reinician a sus valores
+predeterminados si no se han fijado (cero para las dos claves).
+La definición de una propiedad o variable como una lista-A (de
+cualquier tamaño) siempre reinicia todos los valores de clave no
+establecidos a sus valores predeterminados si no se han fijado.
+Ano ser que este sea el resultado deseado, es más seguro
+actualizar los valores de clave individualmente con una
+declaración anidada.
+
+@warning{Las declaraciones anidadas no funcionan para las listas-A
+de propiedades de contexto (como @code{beamExceptions},
+@code{keyAlterations}, @code{timeSignatureSettings}, etc.).  Estas
 propiedades sólo se pueden modificar redefiniéndolas completamente
 como listas-A.}
 
@@ -2107,8 +3052,8 @@ como listas-A.}
 @menu
 * Modos de entrada::
 * Dirección y posición::
-* Orden de disposición de los contextos::
 * Distancias y medidas::
+* Dimensiones::
 * Propiedades del símbolo del pentagrama::
 * Objetos de extensión::
 * Visibilidad de los objetos::
@@ -2121,46 +3066,61 @@ como listas-A.}
 @translationof Input modes
 
 La forma en que se interpreta la notación contenida dentro de un
-archivo de entrada, está determinada por el modo de entrada en curso.
-
-@strong{Modo de acordes}
+archivo de entrada, está determinada por el modo de entrada en
+curso.  In general,
+there are two ways of specifying the mode: a long form, e.g.
+@code{\chordmode}, and a short form, e.g. @code{\chords}.  The long
+form is typically used when supplying input to a variable or when
+entering input directly into an explicitly created context.  The short
+form implicitly creates a context of the correct type for the input and
+passes the input directly to it.  It is useful in simple situations
+when there is no requirement to explicitly create the receiving context.
+
+@subsubsubheading 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{Notación de acordes}.  Los acordes se imprimen como notas sobre un
-pentagrama.
+entrada se interprete con al sintaxis de la notación de acordes,
+véase @ref{Notación de acordes}.  Music in chord mode is rendered as chords on a staff
+when entered into a @code{Staff} context, as chord names when entered
+into a @code{ChordNames} context or as fret boards when entered into
+a @code{FretBoards} context.
 
 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 con la sintaxis de la
-notación de acordes y se imprima como nombres de acorde dentro del
-contexto @code{ChordNames}, véase @ref{Impresión de los nombres de acorde}.
+@code{\chords}.  Esto también produce que el código que sigue se interprete con la
+sintaxis de la notación de acordes but in addition it implicitly creates a new
+@code{ChordNames} context and renders the input into it as chord names, véase @ref{Impresión de los nombres de acorde}.
 
-@strong{Modo de percusión}
+@subsubsubheading 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{Notación básica 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{Notación básica de percusión}.  Music in drum mode is rendered as
+percussion notes when entered into a @code{DrumStaff} context.
 
 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{Notación básica de percusión}.
+@code{\drums}.  También 
+hace que el código que sigue se interprete con la sintaxis de la
+notación de percusión but in addition it implicitly creates a new
+@code{DrumStaff} context and renders the input into it as percussion
+notes, véase @ref{Notación básica de
+percusión}.
 
-@strong{Modo de cifras}
+@subsubsubheading 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{Introducir el bajo cifrado}.
+@ref{Introducir el bajo cifrado}.  Music in figure mode is rendered as
+figured bass when entered into a @code{FiguredBass} context or a
+@code{Staff} context.
 
-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{Introducción al bajo cifrado}.
+El modo de cifras también se activa con la instrucción
+@code{\figures}.  También hace que el código que viene a continuación se interprete
+con la sintaxis del bajo cifrado but in addition it implicitly creates a new
+@code{FiguredBass} context and renders the input into it as figured
+bass, véase
+@ref{Introducción al bajo cifrado}.
 
-@strong{Modos de traste y tablatura}
+@subsubsubheading Modos de traste y tablatura
 
 No existen modos de entrada especiales para introducir símbolos de
 trastes y de tablatura.
@@ -2169,88 +3129,90 @@ 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{Tablaturas predeterminadas}.
 
-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{Marcas de diagramas de trastes}.
+Para crear diagramas de trastes encima de un pentagrama, enter notes or chords in either
+note mode or chord mode and render them in a @code{FretBoards} context, véase @ref{Diagramas de traste automáticos}.  Alternatively, los diagramas de trastes  se pueden introducir como elementos de marcado encima de las notas
+utilizando la instrucción @code{\fret-diagram}, véase
+@ref{Marcas de diagramas de trastes}.
 
-@strong{Modo de letra}
+@subsubsubheading 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{Música vocal}.
+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{Música vocal}.  Input in
+lyric mode is rendered as lyric syllables when entered into a
+@code{Lyrics} context.
 
 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.
+@code{\addlyrics}.  This
+also causes the following input to be interpreted as lyric syllables
+but in addition it implicitly creates a new @code{Lyrics} context and
+renders the input into it as lyric syllables.
 
-@strong{Modo de marcado}
+Lyric mode is also activated with the @code{\addlyrics} command.  Esto también crea un contexto @code{Lyrics}
+nuevo y además añade una instrucción @code{\lyricsto} implícita que asocia la
+letra que viene a continuación con la música precedente, véase @ref{Automatic syllable durations}.
 
-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}.
+@subsubsubheading Modo de marcado
 
-@c silly work-around for texinfo broken-ness
-@c (@strong{Note...} causes a spurious cross-reference in Info)
-@b{Modo de notas}
+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}.
+
+@subsubsubheading 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.
+@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
-
+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.
 
 
 @node Dirección y posición
 @subsection Dirección y posición
 @translationof 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 letra, 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.
+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 letra, 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.
+
+@menu
+* Indicadores de dirección de las articulaciones::
+* La propiedad de dirección::
+@end menu
+
 
-@strong{Acciones predeterminadas}
+@node Indicadores de dirección de las articulaciones
+@unnumberedsubsubsec Indicadores de dirección de las articulaciones
+@translationof Articulation direction indicators
 
-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).
+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
 
-Se puede sobreescribir la acción predeterminada mediante el prefijado
-de la articulación por un @emph{indicacor de dirección}.  Están disponibles
-tres indicadores de dirección: @code{^} (que significa @qq{arriba}), @code{_}
-(que significa @qq{abajo}) o @code{-} (que significa @qq{usar la
-dirección predeterminada}).  El indicador de dirección se puede normalmente
-omitir, en cuyo caso se supone el indicador predeterminado
-@code{-}, pero se necesita un indicador de dirección @strong{siempre}
-antes de:
+Se puede sobreescribir la acción predeterminada mediante el
+prefijado de la articulación por un @emph{indicacor de dirección}.
+Están disponibles tres indicadores de dirección: @code{^} (que
+significa @qq{arriba}), @code{_} (que significa @qq{abajo}) o
+@code{-} (que significa @qq{usar la dirección predeterminada}).
+El indicador de dirección se puede normalmente omitir, en cuyo
+caso se supone el indicador predeterminado @code{-}, pero se
+necesita un indicador de dirección @strong{siempre} antes de:
 
 @itemize
 @item las instrucciones @code{\tweak}
@@ -2263,82 +3225,76 @@ antes de:
 
 Estas indicaciones afectan sólo a la nota siguiente.
 
-@lilypond[verbatim,quote,relative=2]
-c2( c)
-c2_( c)
-c2( c)
-c2^( c)
+@lilypond[verbatim,quote]
+\relative {
+  c''2( c)
+  c2_( c)
+  c2( c)
+  c2^( c)
+}
 @end lilypond
 
-@strong{La propiedad de dirección}
+
+@node La propiedad de dirección
+@unnumberedsubsubsec La propiedad de dirección
+@translationof The direction property
 
 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
-@w{@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 @w{@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:
+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 @w{@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 @w{@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}
+@example
+\xxxUp, \xxxDown or \xxxNeutral
+@end example
 
 @noindent
-donde @code{xxxNeutral} significa @qq{utilizar la dirección
-predeterminada}.  Véase @rlearning{Objetos interiores al pentagrama}.
+donde @code{\xxxNeutral} significa @qq{utilizar la dirección
+predeterminada}.  Véase @rlearning{Objetos interiores al
+pentagrama}.
 
-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
-@w{@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.
+En alguna que otra ocasión como en el arpegio, el valor de la
+propiedad @code{direction} puede especificar si el objeto se debe
+colocar a la izquierda o a la derecha del objeto padre.  En este
+caso @w{@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}.
 
-Estas indicaciones afectan a todas las notas hasta que son canceladas.
+Estas indicaciones afectan a todas las notas hasta que son
+canceladas.
 
-@lilypond[verbatim,quote,relative=2]
-c2( c)
-\slurDown
-c2( c)
-c2( c)
-\slurNeutral
-c2( c)
+@lilypond[verbatim,quote]
+\relative {
+  c''2( c)
+  \slurDown
+  c2( c)
+  c2( c)
+  \slurNeutral
+  c2( c)
+}
 @end lilypond
 
+En música polifónica, en general es mejor especificar una voz
+explícita que cambiar la dirección de un objeto.  Para ver más
+información, véase @ref{Varias voces}.
 
-@node Orden de disposición de los contextos
-@subsection Orden de disposición de los contextos
-@translationof Context layout order
-
-@cindex contextos, orden de disposición
+@seealso
+Manual de aprendizaje:
+@rlearning{Objetos interiores al pentagrama}.
 
-Los contextos se disponen en un sistema normalmente desde arriba hacia
-abajo en el orden en que se encuentran en el archivo de entrada.
-Cuando los contextos se anidan unos dentro de otros, el contexto
-exterior incluye a los contextos anidados tal y como se especifica en
-el archivo de entrada, siempre y cuando los contextos interiores estén
-incluidos en la lista @qq{accepts} del contexto externo.  Los
-contextos anidados que no está nincluidos en la lista @qq{accepts} del
-contexto externo se recolocan debajo del contexto externo en lugar de
-anidarse dentro de él.
-
-Observe que discretamente se crea un contexto de forma implícita si se
-encuentra una instrucción donde no hay un contexto apropiado para
-contenerlo.  Esto puede dar lugar a pentagramas o partituras nuevos no
-esperados.
-
-El orden predeterminado en que los contextos se disponen, así como la
-lista @qq{accepts}, pueden cambiarse; véase @ref{Alinear los
-contextos}.
+Referencia de la notación:
+@ref{Varias voces}.
 
-@seealso
-Manual de utilización del programa:
-@rprogram{Aparece un pentagrama de más}.
 
 @node Distancias y medidas
 @subsection Distancias y medidas
@@ -2352,47 +3308,50 @@ Manual de utilización del programa:
 @funindex \in
 @funindex \pt
 
-Las distancias en LilyPond son de dos tipos: absolutas y escaladas.
-
-Las distancias absolutas se usan para especificar márgenes, sangrados
-y otros detalles de diseño de página, y de forma predeterminada se
-especifican en milímetros.  Las distancias se pueden especificar en
-otras unidades escribiendo después de la cifra indicativa de la
-cantidad, @code{\mm}, @code{\cm}, @code{\in}@tie{}(pulgadas), o
-@code{\pt}@tie{}(puntos, 1/72.27 pulgadas).  Las distancias de diseño
-de página se pueden especificar también en unidades escalables (véase
-el párrafo siguiente) adjuntando @code{\staff-space} a la cantidad.
-La disposición de página se describe en detalle en
-@ref{Disposición de la página}.
+Las distancias en LilyPond son de dos tipos: absolutas y
+escaladas.
+
+Las distancias absolutas se usan para especificar márgenes,
+sangrados y otros detalles de diseño de página, y de forma
+predeterminada se especifican en milímetros.  Las distancias se
+pueden especificar en otras unidades escribiendo después de la
+cifra indicativa de la cantidad, @code{\mm}, @code{\cm},
+@code{\in}@tie{}(pulgadas), o @code{\pt}@tie{}(puntos, 1/72.27
+pulgadas).  Las distancias de diseño de página se pueden
+especificar también en unidades escalables (véase el párrafo
+siguiente) adjuntando @code{\staff-space} a la cantidad.  La
+disposición de página se describe en detalle en @ref{Disposición
+de la página}.
 
 Las distancias escaladas siempre se especifican en unidades de un
-espacio del pentagrama o, más raramente, medio espacio del pentagrama.
-El espacio de pentagrama es la distancia entre dos líneas del
-pentagrama adyacentes.  El valor predeterminado se puede cambiar
-globalmente fijando el tamaño global del pentagrama, o se puede
-sobreescribir localmente cambiando la propiedad @code{staff-space} del
-objeto @code{StaffSymbol}.  Las distancias escaladas se escalan
-automáticamente con cualquier cambio al tamaño global del pentagrama o
-a la propiedad @code{staff-space} del objeto @code{StaffSymbol}, pero
-las fuentes tipográficas se escalan solamente con los cambios
-efectuados al tamaño global del pentagrama.  Así, el tamaño global del
-pentagrama posibilita la fácil variación del tamaño general de una
-partitura impresa.  Para ver los métodos de establecimiento del tamaño
-global del pentagrama, véase @ref{Establecer el tamaño del pentagrama}.
+espacio del pentagrama o, más raramente, medio espacio del
+pentagrama.  El espacio de pentagrama es la distancia entre dos
+líneas del pentagrama adyacentes.  El valor predeterminado se
+puede cambiar globalmente fijando el tamaño global del pentagrama,
+o se puede sobreescribir localmente cambiando la propiedad
+@code{staff-space} del objeto @code{StaffSymbol}.  Las distancias
+escaladas se escalan automáticamente con cualquier cambio al
+tamaño global del pentagrama o a la propiedad @code{staff-space}
+del objeto @code{StaffSymbol}, pero las fuentes tipográficas se
+escalan solamente con los cambios efectuados al tamaño global del
+pentagrama.  Así, el tamaño global del pentagrama posibilita la
+fácil variación del tamaño general de una partitura impresa.  Para
+ver los métodos de establecimiento del tamaño global del
+pentagrama, véase @ref{Establecer el tamaño del pentagrama}.
 
 @funindex magstep
 
-Si se necesita dibujar sólo una sección de una partitura a una escala
-distinta, por ejemplo una sección ossia o una nota al pie, no se puede
-simplemente cambiar el tamaño global del pentagrama porque esto
-afectaría a toda la partitura.  En tales casos, el cambio de tamaño se
-hace sobreescribiendo tanto la propiedad @code{staff-space} de
-@code{StaffSymbol} como el tamaño de las fuentes tipográficas.  Está a
-nuestra disposición una función de Scheme, @code{magstep}, para
-convertir de un cambio en el tamaño de la fuente al cambio equivalente
-en @code{staff-space}.  Para ver una explicación y un ejemplo de su
-utilización, consulte @rlearning{Longitud y grosor de los objetos}.
-
+Si se necesita dibujar sólo una sección de una partitura a una
+escala distinta, por ejemplo una sección ossia o una nota al pie,
+no se puede simplemente cambiar el tamaño global del pentagrama
+porque esto afectaría a toda la partitura.  En tales casos, el
+cambio de tamaño se hace sobreescribiendo tanto la propiedad
+@code{staff-space} de @code{StaffSymbol} como el tamaño de las
+fuentes tipográficas.  Está a nuestra disposición una función de
+Scheme, @code{magstep}, para convertir de un cambio en el tamaño
+de la fuente al cambio equivalente en @code{staff-space}.  Para
+ver una explicación y un ejemplo de su utilización, consulte
+@rlearning{Longitud y grosor de los objetos}.
 
 @seealso
 Manual de aprendizaje:
@@ -2403,6 +3362,38 @@ Referencia de la notación:
 @ref{Establecer el tamaño del pentagrama}.
 
 
+@node Dimensiones
+@subsection Dimensiones
+@translationof Dimensions
+
+@cindex dimensiones
+@cindex caja circundante
+
+Las dimensiones de un objeto gráfico especifican las posiciones de
+los límites izquierdo y derecho, así como los límites inferior y
+superior de las cajas limítrofes de los objetos como distancias a
+partir del punto de referencia del objeto en unidades de espacios
+de pentagrama.  Estas posiciones se codifican frecuentemente como
+dos parejas de valores de Scheme.  Por ejemplo, la instrucción de
+marcado de texto @code{\with-dimensions} toma tres argumentos, de
+los cuales los dos primeros son una pareja de Scheme que da las
+posiiciones de los bordes izquierdo y derecho y otra pareja de
+Scheme que da las posiciones de los límites inferior y superior:
+
+@example
+\with-dimensions #'(-5 . 10) #'(-3 . 15) @var{arg}
+@end example
+
+Esto especifica una caja circundante para @var{arg} con su límite
+izquierdo en -5, su límite derecho en 10, el inferior en -3 y el
+superior e 15, todos ellos medidos a partir del punto de
+referencia del objeto en unidades de espacios de pentagrama.
+
+@seealso
+Referencia de la notación:
+@ref{Distancias y medidas}.
+
+
 @node Propiedades del símbolo del pentagrama
 @subsection Propiedades del símbolo del pentagrama
 @translationof Staff symbol properties
@@ -2416,32 +3407,32 @@ Referencia de la notación:
 @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.
+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}.}
+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]
+@lilypond[verbatim,quote]
 \new Staff \with {
-  \override StaffSymbol #'line-positions = #'(7 3 0 -4 -6 -7)
+  \override StaffSymbol.line-positions = #'(7 3 0 -4 -6 -7)
 }
-{ a4 e' f b | d1 }
+\relative { 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.
+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]
+@lilypond[verbatim,quote]
 \new Staff \with {
-  \override StaffSymbol #'width = #23
+  \override StaffSymbol.width = #23
 }
-{ a4 e' f b | d1 }
+\relative { a4 e' f b | d1 }
 @end lilypond
 
 
@@ -2451,31 +3442,39 @@ resulta afectado por este ajuste.
 
 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.
+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.
 
 Todos los objetos de extensión contemplan el interface
-@code{spanner-interface}.  Algunos, básicamente aquellos que trazan
-una línea recta entre los dos objetos, contemplan también el interface
-@code{line-spanner-interface}.
+@code{spanner-interface}.  Algunos, básicamente aquellos que
+trazan una línea recta entre los dos objetos, contemplan también
+el interface @code{line-spanner-interface}.
+
+@menu
+* Uso del spanner-interface::
+* Uso del line-spanner-interface::
+@end menu
 
+@node Uso del spanner-interface
 @unnumberedsubsubsec Uso del @code{spanner-interface}
+@translationof Using the spanner-interface
 
 Este interface proporciona dos propiedades que se aplican a varios
 extensores.
 
-@strong{@i{La propiedad @code{minimum-length}}}
+@subsubsubheading La propiedad @code{minimum-length} (longitud mínima)
 
-La longitud mínima del objeto de extensión se especifica a través de
-la propiedad @code{minimum-length}.  Su aumento suele producir el
-efecto necesario de aumentar el espaciado de las notas entre los dos
-puntos extremos.  Sin embargo, esta sobreescritura no tiene ningún
-efecto sobre muchos extensores, pues su longitud está determinada por
-otras consideraciones.  Más abajo se muestran algunos ejemplos de
-dónde es efectiva.
+La longitud mínima del objeto de extensión se especifica a través
+de la propiedad @code{minimum-length}.  Su aumento suele producir
+el efecto necesario de aumentar el espaciado de las notas entre
+los dos puntos extremos.  Sin embargo, esta sobreescritura no
+tiene ningún efecto sobre muchos extensores, pues su longitud está
+determinada por otras consideraciones.  Más abajo se muestran
+algunos ejemplos de dónde es efectiva.
 
 @ignore
 Works for:
@@ -2498,103 +3497,113 @@ Works not at all for:
 
 @end ignore
 
-@lilypond[verbatim,quote,relative=2]
-a~a
-a
+@lilypond[verbatim,quote,fragment]
+a'~ a'
+a'
 % increase the length of the tie
--\tweak #'minimum-length #5
-~a
+-\tweak minimum-length #5
+~ a'
 @end lilypond
 
-@lilypond[verbatim,quote,relative=2]
-a1
-\compressFullBarRests
-R1*23
-% increase the length of the rest bar
-\once \override MultiMeasureRest #'minimum-length = #20
-R1*23
-a1
+@lilypond[verbatim,quote]
+\relative \compressMMRests {
+  a'1
+  R1*23
+  % increase the length of the rest bar
+  \once \override MultiMeasureRest.minimum-length = #20
+  R1*23
+  a1
+}
 @end lilypond
 
-@lilypond[verbatim,quote,relative=2]
-a \< a a a \!
-% increase the length of the hairpin
-\override Hairpin #'minimum-length = #20
-a \< a a a \!
+@lilypond[verbatim,quote]
+\relative {
+  a' \< a a a \!
+  % increase the length of the hairpin
+  \override Hairpin.minimum-length = #20
+  a \< a a a \!
+}
 @end lilypond
 
-Esta sobreescritura se puede usar también para aumentar la longitud de
-las ligaduras de expresión y de fraseo:
+Esta sobreescritura se puede usar también para aumentar la
+longitud de las ligaduras de expresión y de fraseo:
 
-@lilypond[verbatim,quote,relative=2]
-a( a)
-a
--\tweak #'minimum-length #5
-( a)
+@lilypond[verbatim,quote]
+\relative {
+  a'( g)
+  a
+  -\tweak minimum-length #5
+  ( g)
 
-a\( a\)
-a
--\tweak #'minimum-length #5
-\( a\)
+  a\( g\)
+  a
+  -\tweak minimum-length #5
+  \( g\)
+}
 @end lilypond
 
 Para algunos objetos de presentación, la propiedad
-@code{minimum-length} es efectiva sólo si se llama explícitamente al
-procedimiento @code{set-spacing-rods}.  Para hacerlo, se debe fijar la
-propiedad @code{springs-and-rods} al valor
-@code{ly:spanner::set-spacing-rods}.  Por ejemplo, la longitud mínima
-de un glissando no tiene efecto a no ser que se establezca la
-propiedad @code{springs-and-rods}:
-
-@lilypond[verbatim,quote,relative=1]
+@code{minimum-length} es efectiva sólo si se llama explícitamente
+al procedimiento @code{set-spacing-rods}.  Para hacerlo, se debe
+fijar la propiedad @code{springs-and-rods} al valor
+@code{ly:spanner::set-spacing-rods}.  Por ejemplo, la longitud
+mínima de un glissando no tiene efecto a no ser que se establezca
+la propiedad @code{springs-and-rods}:
+
+@lilypond[verbatim,fragment,quote]
 % default
-e \glissando c'
+e' \glissando c''
 
 % not effective alone
-\once \override Glissando #'minimum-length = #20
-e, \glissando c'
+\once \override Glissando.minimum-length = #20
+e' \glissando c''
 
 % effective only when both overrides are present
-\once \override Glissando #'minimum-length = #20
-\once \override Glissando #'springs-and-rods = #ly:spanner::set-spacing-rods
-e, \glissando c'
+\once \override Glissando.minimum-length = #20
+\once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods
+e' \glissando c''
 @end lilypond
 
 Lo mismo se puede decir del objeto @code{Beam}:
 
-@lilypond[verbatim,quote,relative=1]
+@lilypond[verbatim,fragment,quote]
 % not effective alone
-\once \override Beam #'minimum-length = #20
-e8 e e e
+\once \override Beam.minimum-length = #20
+e'8 e' e' e'
 
 % effective only when both overrides are present
-\once \override Beam #'minimum-length = #20
-\once \override Beam #'springs-and-rods = #ly:spanner::set-spacing-rods
-e8 e e e
+\once \override Beam.minimum-length = #20
+\once \override Beam.springs-and-rods = #ly:spanner::set-spacing-rods
+e'8 e' e' e'
 @end lilypond
 
-@strong{@i{The @code{to-barline} property}}
+@subsubsubheading La propiedad @code{to-barline}
 
 La segunda propiedad útil del @code{spanner-interface} es
 @code{to-barline}.  De forma predeterminada tiene el valor cierto,
-haciendo que los reguladores y otros objetos de extensión que terminan
-sobre la primera nota de un compás, en vez de eso terminen en la línea
-divisoria inmediatamente precedente.  Si se establece al valor falso,
-el extensor llegará más allá de la barra de compás y terminará
-exactamente sobre la nota:
+haciendo que los reguladores y otros objetos de extensión que
+terminan sobre la primera nota de un compás, en vez de eso
+terminen en la línea divisoria inmediatamente precedente.  Si se
+establece al valor falso, el extensor llegará más allá de la barra
+de compás y terminará exactamente sobre la nota:
 
-@lilypond[verbatim,quote,relative=2]
-a \< a a a a \! a a a \break
-\override Hairpin #'to-barline = ##f
-a \< a a a a \! a a a
+@lilypond[verbatim,quote]
+\relative {
+  a' \< a a a a \! a a a \break
+  \override Hairpin.to-barline = ##f
+  a \< a a a a \! a a a
+}
 @end lilypond
 
-Esta propiedad no es efectiva para todos los extensores.  Por ejemplo,
-su establecimiento a @code{#t} no tienen ningún efecto sobre las
-ligaduras de expresión o de fraseo, o sobre otros extensores para los
-que terminar en la barra de compás no tendría ningún significado.
+Esta propiedad no es efectiva para todos los extensores.  Por
+ejemplo, su establecimiento a @code{#t} no tienen ningún efecto
+sobre las ligaduras de expresión o de fraseo, o sobre otros
+extensores para los que terminar en la barra de compás no tendría
+ningún significado.
 
+@node Uso del line-spanner-interface
 @unnumberedsubsubsec Uso del @code{line-spanner-interface}
+@translationof Using the line-spanner-interface
 
 Entre los objetos que contemplan el interface
 @code{line-spanner-interface} se encuentran
@@ -2608,108 +3617,108 @@ Entre los objetos que contemplan el interface
 @end itemize
 
 La rutina responsable de dibujar los sellos de estos extensores es
-@code{ly:line-interface::print}.  esta rutina determina la
-localización exacta de los dos puntos extremos y traza una línea entre
-ellos, en el estilo solicitado.  Las posiciones de los dos puntos
-extremos del extensor se calculan al vuelo, pero es posible
+@code{ly:line-spanner::print}.  esta rutina determina la
+localización exacta de los dos puntos extremos y traza una línea
+entre ellos, en el estilo solicitado.  Las posiciones de los dos
+puntos extremos del extensor se calculan al vuelo, pero es posible
 sobreescribir sus coordenadas Y.  Las propiedades que se deben
 especificar están anidadas a dos niveles de profundidad en la
 jerarquía de propiedades, pero la sintaxis de la instrucción
 @code{\override} es bastante sencilla:
 
-@lilypond[relative=2,quote,verbatim]
-e2 \glissando b
-\once \override Glissando #'(bound-details left Y) = #3
-\once \override Glissando #'(bound-details right Y) = #-2
-e2 \glissando b
+@lilypond[quote,fragment,verbatim]
+e''2 \glissando b'
+\once \override Glissando.bound-details.left.Y = #3
+\once \override Glissando.bound-details.right.Y = #-2
+e''2 \glissando b'
 @end lilypond
 
 Las unidades para la propiedad @code{Y} son @code{staff-space}s,
 siendo el punto del cero la línea central del pentagrama.  Para el
 glissando, esto es el valor de @code{Y} en la coordenada X que
-corresponde al punto central de cada cabeza de nota si nos imaginamos
-que la línea se extiende hasta allí.
+corresponde al punto central de cada cabeza de nota si nos
+imaginamos que la línea se extiende hasta allí.
 
 Si no está fijado @code{Y}, su valor se calcula a partir de la
-posición vertical del punto de anclaje correspondiente del extensor.
+posición vertical del punto de anclaje correspondiente del
+extensor.
 
 En caso de salto de línea, los valores para los puntos extremos se
 especifican por las sub-listas @code{left-broken} y
 @code{right-broken} de @code{bound-details}.  Por ejemplo:
 
-@lilypond[relative=2,ragged-right,verbatim,quote]
-\override Glissando #'breakable = ##t
-\override Glissando #'(bound-details right-broken Y) = #-3
-c1 \glissando \break
-f1
+@lilypond[ragged-right,fragment,verbatim,quote]
+\override Glissando.breakable = ##t
+\override Glissando.bound-details.right-broken.Y = #-3
+c''1 \glissando \break
+f''1
 @end lilypond
 
-Un número de propiedades adicionales de las sub-listas @code{left} y
-@code{right} de la propiedad @code{bound-details} se pueden
+Un número de propiedades adicionales de las sub-listas @code{left}
+@code{right} de la propiedad @code{bound-details} se pueden
 especificar de la misma forma que @code{Y}:
 
 @table @code
 @item Y
 Establece la coordenada Y del punto extremo, en desplazamientos de
-@code{staff-space}s desde la línea central del pentagrama.  De forma
-predeterminada es el centro del objeto ancla, y así un glissando
-apunta al centro vertical de la cabeza de la nota.
+@code{staff-space}s desde la línea central del pentagrama.  De
+forma predeterminada es el centro del objeto ancla, y así un
+glissando apunta al centro vertical de la cabeza de la nota.
 
 Para extensores horizontales como los extensores de texto y los
 trinos, está inamoviblemente codificado como 0.
 
 @item attach-dir (dirección de anclaje)
 Determina dónde comienza y termina la línea en la dirección X, con
-relación al objeto ancla.  Sí, un valor de @w{@code{-1}} (o @code{LEFT},
-izquierda) hace que la línea comience o termine en el lado izquierdo
-de la cabeza de la nota a la que está anclado.
+relación al objeto ancla.  Sí, un valor de @w{@code{-1}} (o
+@code{LEFT}, izquierda) hace que la línea comience o termine en el
+lado izquierdo de la cabeza de la nota a la que está anclado.
 
 @item X
-Es la coordenada X absoluta del punto extremo.  Se suele calcular al
-vuelo, y su sobreescritura no tiene un efecto útil.
+Es la coordenada X absoluta del punto extremo.  Se suele calcular
+al vuelo, y su sobreescritura no tiene un efecto útil.
 
 @item stencil (sello)
-Los extensores de línea pueden tener símbolos al comienzo o al final,
-lo que está contenido en esta sub-propiedad.  Esto es para uso
-interno; se recomienda en su lugar el uso de @code{text}.
+Los extensores de línea pueden tener símbolos al comienzo o al
+final, lo que está contenido en esta sub-propiedad.  Esto es para
+uso interno; se recomienda en su lugar el uso de @code{text}.
 
 @item text (texto)
-Es un elemento de marcado que se evalúa para dar lugar al sello.  Se
-usa para escribir @i{cresc.}, @i{tr} y otros textos sobre los objetos
-de extensión horizontales.
+Es un elemento de marcado que se evalúa para dar lugar al sello.
+Se usa para escribir @i{cresc.}, @i{tr} y otros textos sobre los
+objetos de extensión horizontales.
 
-@lilypond[quote,ragged-right,relative=2,verbatim]
-\override TextSpanner #'(bound-details left text)
+@lilypond[quote,ragged-right,fragment,verbatim]
+\override TextSpanner.bound-details.left.text
    = \markup { \small \bold Slower }
-c2\startTextSpan b c a\stopTextSpan
+\relative { c''2\startTextSpan b c a\stopTextSpan }
 @end lilypond
 
 @item stencil-align-dir-y (alineación del sello en y)
 @item stencil-offset (desplazamiento del sello)
-Si no se modifican uno u otro, el sello se coloca sencillamente en el
-punto extremo, centrado sobre la línea, como viene definido por las
-subpropiedades @code{X} e @code{Y}.  Si se fijan
+Si no se modifican uno u otro, el sello se coloca sencillamente en
+el punto extremo, centrado sobre la línea, como viene definido por
+las subpropiedades @code{X} e @code{Y}.  Si se fijan
 @code{stencil-align-dir-y} o @code{stencil-offset} se moverá el
-símbolo del borde verticalmente con relación al extremo de la línea:
+símbolo del borde verticalmente con relación al extremo de la
+línea:
+
+@lilypond[quote,fragment,verbatim]
+\override TextSpanner.bound-details.left.stencil-align-dir-y = #-2
+\override TextSpanner.bound-details.right.stencil-align-dir-y = #UP
 
-@lilypond[relative=1,quote,verbatim]
-\override TextSpanner
-  #'(bound-details left stencil-align-dir-y) = #-2
-\override TextSpanner
-  #'(bound-details right stencil-align-dir-y) = #UP
+\override TextSpanner.bound-details.left.text = #"ggg"
+\override TextSpanner.bound-details.right.text = #"hhh"
 
-\override TextSpanner
-  #'(bound-details left text) = #"ggg"
-\override TextSpanner
-  #'(bound-details right text) = #"hhh"
-c4^\startTextSpan c c c \stopTextSpan
+\relative { c'4^\startTextSpan c c c \stopTextSpan }
 @end lilypond
 
-Observe que los valores negativos mueven el texto @emph{hacia arriba},
-al contrario de lo que podría esperarse, pues el valor de @w{@code{-1}} o
-@code{DOWN} (abajo) significa alinear el borde @emph{inferior} del
-texto con la línea de extensión.  Un valor de @code{1} o @code{UP}
-(arriba) alinea el borde superior del texto con la línea extensora.
+Observe que los valores negativos mueven el texto @emph{hacia
+arriba}, al contrario de lo que podría esperarse, pues el valor de
+@w{@code{-1}} o @code{DOWN} (abajo) significa alinear el borde
+@emph{inferior} del texto con la línea de extensión.  Un valor de
+@code{1} o @code{UP} (arriba) alinea el borde superior del texto
+con la línea extensora.
 
 @item arrow (flecha)
 Al establecer esta sub-propiedad a @code{#t} se produce una punta de
@@ -2717,27 +3726,30 @@ flecha en el extremo de la línea.
 
 @item padding (relleno)
 Esta sub-propiedad controla el espacio entre el punto extremo
-especificado de la línea y el extremo real.  Sin relleno, un glissando
-empezaría y terminaría en el centro de la cabeza de las notas.
+especificado de la línea y el extremo real.  Sin relleno, un
+glissando empezaría y terminaría en el centro de la cabeza de las
+notas.
 
 @end table
 
-La función musical @code{\endSpanners} finaliza de forma prematura el
-extensor que comienza sobre la nota que sigue inmediatamente a
+La función musical @code{\endSpanners} finaliza de forma prematura
+el extensor que comienza sobre la nota que sigue inmediatamente a
 continuación.  Se termina después de una nota exactamente, o en la
 siguiente barra de compás si @code{to-barline} es verdadero y se
 produce una divisoria antes de la siguiente nota.
 
-@lilypond[verbatim,quote,ragged-right,relative=2]
-\endSpanners
-c2 \startTextSpan c2 c2
-\endSpanners
-c2 \< c2 c2
+@lilypond[verbatim,quote,ragged-right]
+\relative c'' {
+  \endSpanners
+  c2 \startTextSpan c2 c2
+  \endSpanners
+  c2 \< c2 c2
+}
 @end lilypond
 
-Si se usa @code{\endSpanners} no es necesario cerrar \startTextSpan
-con \stopTextSpan, ni cerrar los reguladores con @code{\!}.
-
+Si se usa @code{\endSpanners} no es necesario cerrar
+\startTextSpan con \stopTextSpan, ni cerrar los reguladores con
+@code{\!}.
 
 @seealso
 Referencia de funcionamiento interno:
@@ -2756,16 +3768,18 @@ Referencia de funcionamiento interno:
 @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{Visibilidad y color 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{Visibilidad y color de los objetos}.
 
 Hay también algunas otras técnicas que son específicas de ciertos
-objetos de presentación.  Se estudian bajo Consideraciones especiales.
+objetos de presentación.  Se estudian bajo Consideraciones
+especiales.
 
 @menu
 * Eliminar el sello::
@@ -2781,38 +3795,62 @@ objetos de presentación.  Se estudian bajo Consideraciones especiales.
 @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 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,fragment,verbatim]
+a1 a
+\override Score.BarLine.stencil = ##f
+a a
+\revert Score.BarLine.stencil
+a a a
+@end lilypond
 
-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}.
+Esta operación, bastante común, tiene la forma abreviada
+@code{\omit} como atajo:
 
-@lilypond[quote,verbatim,relative=1]
+@lilypond[quote,fragment,verbatim]
 a1 a
-\override Score.BarLine #'stencil = ##f
+\omit Score.BarLine
 a a
-\revert Score.BarLine #'stencil
+\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
-@code{#f}.  Si se fija a @code{#t} el objeto aún ocupa espacio pero es
-invisible.
+@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
+@lilypond[quote,fragment,verbatim]
+a'4 a'
+\once \override NoteHead.transparent = ##t
+a' a'
+@end lilypond
+
+Esta operación, bastante común, tiene la forma abreviada @code{\hide}
+como atajo:
+
+@lilypond[quote,fragment,verbatim]
+a'4 a'
+\once \hide NoteHead
+a' a'
 @end lilypond
 
+
 @node Pintar los objetos de blanco
 @unnumberedsubsubsec Pintar los objetos de blanco
 @translationof Painting objects white
@@ -2825,45 +3863,46 @@ a a
 @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 @w{@code{-1}}, para
-que se dibuje antes:
-
-@lilypond[quote,verbatim,relative=2]
-\override Staff.Clef #'color = #white
-\override Staff.Clef #'layer = #-1
-a1
+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,fragment,verbatim]
+\override Staff.Clef.color = #white
+a'1
+@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
+@w{@code{-1}}, para que se dibuje antes:
+
+@lilypond[quote,fragment,verbatim]
+\override Staff.Clef.color = #white
+\override Staff.Clef.layer = #-1
+a'1
 @end lilypond
 
+
 @node Uso de break-visibility (visibilidad en el salto)
 @unnumberedsubsubsec Uso de break-visibility (visibilidad en el salto)
 @translationof Using break-visibility
@@ -2872,58 +3911,59 @@ a1
 
 @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.
+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.
+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{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.
+@rlearning{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
-@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:
+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}
+@multitable {@code{begin-of-line-invisible}} {@code{#(#t #t #t)}} {Antes del} {Si no hay} {Después del}
 @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
+@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:
+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
 
@@ -2939,12 +3979,11 @@ de presentación de interés que resultan afectados por
 @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{KeyCancellation}     @tab @code{Staff}          @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{ClefModifier}       @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}
 
@@ -2953,150 +3992,209 @@ de presentación de interés que resultan afectados por
 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
+@lilypond[quote,verbatim,ragged-right]
+\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
+}
 @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:
+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
+@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
+@emph{primera} línea a no ser que su valor establecido sea
+distinto de @code{1}.
+
+@item Clave: véase la sección siguiente.
+
+@item
+Las repeticiones dobles de tipo porcentaje se imprimen todas
+siempre o bien no se imprimen nunca.  Utilice @code{begin-of
+line-invisible} para imprimirlas y @code{all-invisible} para
+suprimirlas.
+
+@item Armadura: véase la sección siguiente.
+
+@item ClefModifier: véase la sección siguiente.
 @end itemize
 
+
 @node Consideraciones especiales
 @unnumberedsubsubsec Consideraciones especiales
 @translationof Special considerations
 
-@strong{@emph{Visibilidad después de un cambio explícito}}
+@subsubsubheading 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
+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,ragged-right]
+\relative {
+  \key g \major
+  f'4 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.
+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
+@lilypond[quote,verbatim,ragged-right]
+\relative {
+  \key g \major
+  f'4 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}}
+@subsubsubheading 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
+Para eliminar las alteraciones de cancelació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
+@lilypond[quote,verbatim,ragged-right]
+\relative {
+  \key g \major
+  f'4 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.
+accidentales delante de las notas para indicar el cambio de
+tonalidad.
+
+Observe que al modificar la tonalidad a Do@tie{}mayor o
+La@tie{}menor, las alteraciones de cancelación serían @emph{la
+única} indicación del cambio de armadura.  En este caso, el
+establecimiento de @code{printKeyCancellation} al valor @code{#f}
+no tiene ningún efecto:
+
+@lilypond[quote,verbatim,ragged-right]
+\relative {
+  \key g \major
+  f'4 g a b
+  \set Staff.explicitKeySignatureVisibility = #all-invisible
+  \set Staff.printKeyCancellation = ##f
+  \key c \major
+  f4 g a b \break
+  f4 g a b
+  f4 g a b
+}
+@end lilypond
+
+En lugar de ello, para suprimir las alteraciones de cancelación
+aún cuando la armadura cambia a Do@tie{}mayor o a La@tie{}menor,
+sobreescriba la visibilidad del grob @code{KeyCancellation}:
+
+@lilypond[quote,verbatim,ragged-right]
+\relative {
+  \key g \major
+  f'4 g a b
+  \set Staff.explicitKeySignatureVisibility = #all-invisible
+  \override Staff.KeyCancellation.break-visibility = #all-invisible
+  \key c \major
+  f4 g a b \break
+  f4 g a b
+  f4 g a b
+}
+@end lilypond
 
 @c TODO Add visibility of cautionary accidentals before notes
 
-@strong{@emph{Automatic bars}}
+@subsubsubheading Líneas divisorias automáticas
 
 @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}
+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}}
+@subsubsubheading Claves transportadas
 
-@cindex octavadas, visibilidad de las claves
-@cindex visibilidad de las claves octavadas
-@cindex claves, visibilidad de la octavación
+@cindex transportadas, visibilidad de las claves
+@cindex visibilidad de las claves transportadas
+@cindex claves, visibilidad de la transposició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
-hereda automáticamente de la del objeto @code{Clef}, así que no es
+El pequeño símbolo de transposición sobre una clave se produce por
+parte del objeto @code{ClefModifier}.  Su visibilidad se hereda
+automáticamente de la del objeto @code{Clef}, así que no es
 necesario aplicar las sobreescrituras correspondientes
-@code{break-visibility} a los objetos
-@code{OctavateEight} para suprimir los símbolos de octavación
-para las claves invisibles.
+@code{break-visibility} a los objetos @code{ClefModifier} para
+suprimir los símbolos de transposición u octavación para las
+claves invisibles.
 
 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.
-
+@code{explicitClefVisibility} controla tanto el símbolo de clave
+como el símbolo de transposición o de octava asociado.
 
 @seealso
 Manual de aprendizaje:
@@ -3108,30 +4206,34 @@ Manual de aprendizaje:
 @translationof 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,quote]
-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
+@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-spanner::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[ragged-right,verbatim,quote]
+\relative {
+  d''2 \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
@@ -3139,22 +4241,24 @@ computan al vuelo para cada uno de los objetos gráficos, pero es
 posible sobreescribirlos:
 
 @c TODO Complete
-@lilypond[relative=2,ragged-right,verbatim,quote]
-e2 \glissando f
-\once \override Glissando #'(bound-details right Y) = #-2
-e2 \glissando f
+@lilypond[ragged-right,verbatim,quote]
+\relative {
+  e''2 \glissando f
+  \once \override Glissando.bound-details.right.Y = #-2
+  e2 \glissando f
+}
 @end lilypond
 
-El valor de @code{Y} está establecido a @w{@code{-2}} para el extremo
-derecho.  El lado izquierdo se puede ajustar de forma similar
-especificando @code{left} en vez de @code{right}.
+El valor de @code{Y} está establecido a @w{@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{Objetos de extensión}.
+Son posibles otros ajustes de los extensores, para ver más
+detalles consulte @ref{Objetos de extensión}.
 
 
 @node Rotación de objetos
@@ -3162,8 +4266,8 @@ consulte @ref{Objetos de extensión}.
 @translationof Rotating objects
 
 Tanto los objetos de presentación como los elementos de texto de
-marcado se pueden girar cualquier ángulo respecto a cualquier punto,
-pero difiere el método de hacerlo.
+marcado se pueden girar cualquier ángulo respecto a cualquier
+punto, pero difiere el método de hacerlo.
 
 @menu
 * Rotación de objetos de presentación::
@@ -3179,50 +4283,53 @@ pero difiere el método de hacerlo.
 
 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 especifica en grados
-y las coordenadas en espacios de pentagrama.
+@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
+especifica 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.
+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:
+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\!
+@lilypond[quote,fragment,verbatim]
+g4\< e' d'' f''\!
+\override Hairpin.rotation = #'(20 -1 0)
+g4\< e' d'' f''\!
 @end lilypond
 
+
 @node Rotación de elementos de marcado
 @unnumberedsubsubsec Rotación de elementos de marcado
 @translationof Rotating markup
 
-Todos los textos de marcado se pueden rotar para que se dispongan en
-cualquier ángulo precedié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
+Todos los textos de marcado se pueden rotar para que se dispongan
+en cualquier ángulo precedié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,fragment,verbatim]
+\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" }
+des'^\markup { \rotate #30 "a D-Flat" }
+fis'^\markup { \rotate #30 "an F-Sharp" }
 @end lilypond
 
+
 @node Trucos avanzados
 @section Trucos avanzados
 @translationof Advanced tweaks
@@ -3235,9 +4342,10 @@ ajustes finos a la apariencia de la partitura impresa.
 * 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
 
-
 @seealso
 Manual de aprendizaje:
 @rlearning{Trucar la salida},
@@ -3247,6 +4355,8 @@ Referencia de la notación:
 @ref{Explicación del Manual de referencia de funcionamiento interno},
 @ref{Modificar las propiedades}.
 
+Manual de extensión:
+@rextend{Interfaces para programadores}.
 
 Archivos de inicio:
 @file{scm/define-grobs.scm}.
@@ -3254,9 +4364,6 @@ Archivos de inicio:
 Fragmentos de código:
 @rlsr{Tweaks and overrides}.
 
-Extender:
-@rextend{Interfaces para programadores}.
-
 Referencia de funcionamiento interno:
 @rinternals{All layout objects}.
 
@@ -3266,51 +4373,55 @@ Referencia de funcionamiento interno:
 @translationof Aligning objects
 
 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
+@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 desplazamientos hacia abajo.
+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 desplazamientos 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.
+valor de @code{X-offset} da el desplazamiento desde la coordenada
+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.
 
 @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}.  La
-sobreescritura de las propiedades @code{X-offset} ó @code{Y-offset} a
-un valor fijo hace que se descarte la respectiva propiedad
-@code{self-alignment}.}
+sobreescritura de las propiedades @code{X-offset} ó
+@code{Y-offset} a un valor fijo hace que se descarte la respectiva
+propiedad @code{self-alignment}.}
 
 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.
+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.
 
 @seealso
-@ref{Uso del break-alignable-interface},
+Referencia de la notación:
+@ref{Uso del break-alignable-interface}.
+
+Manual de extensión:
 @rextend{Funciones de callback}.
 
 @menu
@@ -3320,40 +4431,42 @@ de ensayo sobre dichos objetos.
 * Uso del break-alignable-interface::
 @end menu
 
+
 @node Establecer directamente X-offset e Y-offset
 @unnumberedsubsubsec Establecer directamente @code{X-offset} y @code{Y-offset}
 @translationof Setting X-offset and Y-offset directly
 
-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.
+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
+@lilypond[verbatim,fragment,quote]
+a'-3
+a'
+-\tweak X-offset #0
+-\tweak Y-offset #0
 -3
-a
--\tweak #'X-offset #-1
--\tweak #'Y-offset #1
+a'
+-\tweak X-offset #-1
+-\tweak Y-offset #1
 -3
 @end lilypond
 
 @c TODO write more
 
+
 @node Uso del side-position-interface
 @unnumberedsubsubsec Uso del @code{side-position-interface}
 @translationof Using the side-position-interface
 
 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; viene 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.
+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; viene 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:
@@ -3371,60 +4484,64 @@ determinan dónde colocar el objeto, como sigue:
 
 @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
+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}.
+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
+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}.
+situar el objeto encima o debajo del padre de acuerdo con el valor
+de @code{direction}.
 
 @c TODO Add examples
 
+
 @node Uso del self-alignment-interface
 @unnumberedsubsubsec Uso del @code{self-alignment-interface}
 @translationof Using the self-alignment-interface
 
-@emph{Auto-alineación horizontal de los objetos}
+@subsubsubheading 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 @w{@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 @w{@code{-1}}, @code{0} y @code{1},
+@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 @w{@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 @w{@code{-1}}, @code{0} y @code{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:
+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]
+@lilypond[quote,verbatim,fragment]
 a'
--\tweak #'self-alignment-X #-1
+-\tweak self-alignment-X #-1
 ^"left-aligned"
--\tweak #'self-alignment-X #0
+-\tweak self-alignment-X #0
 ^"center-aligned"
--\tweak #'self-alignment-X #RIGHT
+-\tweak self-alignment-X #RIGHT
 ^"right-aligned"
--\tweak #'self-alignment-X #-2.5
+-\tweak self-alignment-X #-2.5
 ^"aligned further to the right"
 @end lilypond
 
-@emph{Auto-alineación vertical de los objetos}
+@subsubsubheading 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
@@ -3448,14 +4565,14 @@ padre.  Se pueden usar los símbolos @code{DOWN}, @code{CENTER},
 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.
+El ejemplo siguiente muestra cómo ajustar una digitación de forma
+que se acerque a la cabeza dela 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
+@lilypond[quote,verbatim,fragment]
+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
 
@@ -3497,114 +4614,115 @@ example shows the difference:
 @cindex break-align-symbols
 
 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}.
+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 y los números de compás
-se centran horizontalmente sobre el objeto:
+Cada tipo de objeto tiene su propio punto de referencia
+predeterminado, con el que se alinean las marcas de ensayo:
 
-@lilypond[verbatim,quote,relative=1]
-% The rehearsal mark will be centered above the Clef
-\override Score.RehearsalMark #'break-align-symbols = #'(clef)
+@lilypond[verbatim,quote,fragment]
+% 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
-\override Score.RehearsalMark #'break-align-symbols = #'(time-signature)
+e'1
+% 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
 \time 3/4
 \mark "↓"
-e2.
+e'2.
 % The rehearsal mark will be centered above the Breath Mark
-\override Score.RehearsalMark #'break-align-symbols = #'(breathing-sign)
+\override Score.RehearsalMark.break-align-symbols = #'(breathing-sign)
 \key a \major
 \clef treble
 \time 4/4
-e1
+e'1
 \breathe
 \mark "↓"
 @end lilypond
 
-Se puede especificar una lista de posibles objetos para la alineación.
-Si algunos de los objetos son invisibles en ese punto debido al valor
-de @code{break-visibility} o a valores de visibilidad explícitos para
-las armaduras y las claves, la letra de ensayo o número de compás se
-alinean con el primer objeto de la lista que sea visible.  Si ningún
-objeto de la lista es visible, el objeto se alinea con la línea
-divisoria.  Si la línea divisoria es invisible, el objeto se alinea
-con el punto en el que se encontraría la línea divisoria.
-
-@lilypond[verbatim,quote,relative=1]
-% The rehearsal mark will be centered above the Key Signature
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+Se puede especificar una lista de posibles objetos para la
+alineación.  Si algunos de los objetos son invisibles en ese punto
+debido al valor de @code{break-visibility} o a valores de
+visibilidad explícitos para las armaduras y las claves, la letra
+de ensayo o número de compás se alinean con el primer objeto de la
+lista que sea visible.  Si ningún objeto de la lista es visible,
+el objeto se alinea con la línea divisoria.  Si la línea divisoria
+es invisible, el objeto se alinea con el punto en el que se
+encontraría la línea divisoria.
+
+@lilypond[verbatim,quote,fragment]
+% The rehearsal mark will be aligned to the right edge of the Key Signature
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
 \key a \major
 \clef treble
 \mark "↓"
-e1
-% The rehearsal mark will be centered above the Clef
+e'1
+% The rehearsal mark will be aligned to the right edge of the Clef
 \set Staff.explicitKeySignatureVisibility = #all-invisible
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
 \key a \major
 \clef bass
 \mark "↓"
-gis,,1
+gis,1
 % The rehearsal mark will be centered above the Bar Line
 \set Staff.explicitKeySignatureVisibility = #all-invisible
 \set Staff.explicitClefVisibility = #all-invisible
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
 \key a \major
 \clef treble
 \mark "↓"
-e''1
+e'1
 @end lilypond
 
-La alineación de la letra de ensayo 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.
+La alineación de la letra de ensayo 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 Key Signature
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
+@lilypond[verbatim,quote,fragment]
+% The RehearsalMark will be aligned with the right edge of the Key Signature
+\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 Key Signature
-\once \override Score.KeySignature #'break-align-anchor-alignment = #LEFT
+e'1
+% The RehearsalMark will be centered above the Key Signature
+\once \override Score.KeySignature.break-align-anchor-alignment = #CENTER
 \mark "↓"
 \key a \major
-e1
-% The RehearsalMark will be aligned with the right edge of the Key Signature
-\once \override Score.KeySignature #'break-align-anchor-alignment = #RIGHT
+e'1
+% The RehearsalMark will be aligned with the left edge of the Key Signature
+\once \override Score.KeySignature.break-align-anchor-alignment = #LEFT
 \key a \major
 \mark "↓"
-e1
+e'1
 @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]
+@lilypond[verbatim,quote,fragment]
 % The RehearsalMark will be aligned with the left edge of the Key Signature
 % 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
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature)
+\once \override Score.KeySignature.break-align-anchor = #3.5
 \key a \major
 \mark "↓"
-e1
+e'1
 % The RehearsalMark will be aligned with the left edge of the Key Signature
 % and then shifted left by 2 staff-spaces
-\once \override Score.KeySignature #'break-align-anchor = #-2
+\once \override Score.KeySignature.break-align-anchor = #-2
 \key a \major
 \mark "↓"
-e1
+e'1
 @end lilypond
 
 
@@ -3612,13 +4730,16 @@ e1
 @subsection Agrupación vertical de objetos gráficos
 @translationof Vertical grouping of grobs
 
+@c TODO Expand this section
+
 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
+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}.
 
 
@@ -3626,50 +4747,54 @@ partitura, pero cada @code{Staff}, @code{Lyrics}, etc. tiene su propio
 @subsection Modificación de los sellos
 @translationof Modifying stencils
 
-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.
+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{Notación gráfica dentro de elementos de marcado}.
+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{Notación gráfica dentro de
+elementos de marcado}.
 
-El ejemplo siguiente muestra esto cambiando el símbolo de la cabeza de
-la nota a unas aspas dentro de una circunferencia.
+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 {
+  \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
+\relative {
+  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{La tipografía Feta}.
-
-@c TODO Add inserting eps files or ref to later
+Cualquiera de los glifos de  @emph{Feta} usados en  la fuente tipográfica Emmentaler se puede
+pasar a la instrucción de marcado @code{\musicglyph}: véase
+@ref{La tipografía Emmentaler}.
 
-@c TODO Add inserting Postscript or ref to later
+Se pueden insertar en línea tanto imágenes en formato @file{EPS}
+como instrucciones de Postscript usando las instrucciones de
+marcado @code{\epsfile} y @code{\postscript} respectivamente;
+véase @ref{Graphic}.
 
 
 @seealso
@@ -3677,7 +4802,8 @@ Referencia de la notación:
 @ref{Notación gráfica dentro de elementos de marcado},
 @ref{Formatear el texto},
 @ref{Text markup commands},
-@ref{La tipografía Feta}.
+@ref{La tipografía Emmentaler},
+@ref{Graphic}.
 
 
 @node Modificación de las formas
@@ -3688,6 +4814,7 @@ Referencia de la notación:
 * Modificación de ligaduras de unión y de expresión::
 @end menu
 
+
 @node Modificación de ligaduras de unión y de expresión
 @unnumberedsubsubsec Modificación de ligaduras de unión y de expresión
 @translationof Modifying ties and slurs
@@ -3697,84 +4824,483 @@ Referencia de la notación:
 @cindex Bézier, curvas de, puntos de control
 @cindex puntos de control en curvas de Bézier
 
-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 control 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
+Las ligaduras de unión (@code{Tie}s), de expresión (@code{Slur}s),
+de fraseo (@code{PhrasingSlur}s), de dejar vibrar
+(@code{LaissezVibrerTie}s) y de repetición (@code{RepeatTie}s) 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 de dos formas:
+
+@enumerate a
+@item
+mediante la especificación de los desplazamientos que se quieren
+realizar sobre los puntos de control de la curva de Bézier
+calculada automáticamente, o bien
+
+@item
+mediante la especificación explícita de las posiciones de los
+cuatro puntos de control que se requieren para definir la curva
+deseada.
+@end enumerate
+
+A continuación se explican ambos métodos.  El primer método es más
+adecuado cuando solo se requieren ligeros ajustes de la curva; el
+segundo puede ser mejor para crear curvas que tienen relación con
+una única nota.
+
+@subsubsubheading Curvas de Bézier cúbicas
+
+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 control 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.
+Todas las traslaciones, rotaciones y escalado de los puntos de
+control producen exactamente las mismas operaciones sobre la
+curva.
+
+@subsubsubheading Especificar desplazamientos a partir de los puntos de control actuales
 
-He aquí un ejemplo de un caso en que la ligadura no es óptima, y donde
-@code{\tieDown} no sirve de ayuda.
+@cindex conformar ligaduras
+@funindex \shape
 
-@lilypond[verbatim,quote,relative=1]
+En este ejemplo, la colocación automática de la ligadura no
+resulta óptima, y @code{\tieDown} no es la solución.
+
+@lilypond[verbatim,quote]
 <<
-  { e1~ e }
+  { e'1~ 1 }
 \\
-  { r4 <g c,> <g c,> <g c,> }
+  \relative { r4 <g' c,> <g c,> <g c,> }
 >>
 @end lilypond
 
-Una forma de mejorar esta ligadura es modificar manualmente sus puntos
-de control como sigue.
+El ajuste de los puntos de control de la ligadura mediante la
+instrucción @code{\shape} permite evitar las colisiones.
+
+La sintaxis de @code{\shape} es:
+
+@example
+[-]\shape @var{desplazamientos} @var{elemento}
+@end example
 
-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.
+Esta instrucción recoloca los puntos de control de @var{elemento}
+en las cantidades dadas por @var{desplazamientos}.  El argumento
+@var{desplazamientos} es una lista de parejas de números o una
+lista de tales listas.  Cada elemento de una pareja representa el
+desplazamiento de una de las coordenadas de un punto de control.
+Si el @var{elemento} es una cadena de caracteres, el resultado es
+@code{\once\override} para el tipo de grob especificado.  Si
+@var{elemento} es una expresión musical, el resultado es la misma
+expresión musical con la consiguiente modificación aplicada.
+
+En otras palabras, la función @code{\shape} puede actuar como una
+instrucción @code{\once\override} o como una instrucción
+@code{\tweak} dependiendo de si el argumento @var{elemento} es el
+nombre de un grob, como @qq{Slur}, o una expresión musical, como
+@qq{(}.  El argumento @var{desplazamientos} especifica los
+desplazamientos de los cuatro puntos de control como una lista de
+cuatro parejas de valores (dx . dy) en unidades de espacios de
+pentagrama (o una lista de tales listas si la curva tiene más de
+un segmento).
+
+El guión precedente se exige si, y sólo si, se usa la forma
+@code{\tweak}.
+
+Así, usando el mismo ejemplo de arriba y la forma
+@code{\once\override} de la instrucción @code{\shape}, lo
+siguiente tiene el efecto de elevar la ligadura de unión en la
+mitad de un espacio de pentagrama:
 
-Es útil recordar que una curva simétrica necesita puntos de control
-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.
+@lilypond[verbatim,quote]
+<<
+  {
+    \shape #'((0 . 0.5) (0 . 0.5) (0 . 0.5) (0 . 0.5)) Tie
+    e'1~ 1
+  }
+\\
+  \relative { r4 <g' c,> <g c,> <g c,> }
+>>
+@end lilypond
 
-Para el ejemplo anterior, la sobreescritura siguiente da una ligadura
-satisfactoria.  Observe la colocación: debe ir inmediatamente antes de
-la nota a la que se asigna el comienzo de la ligadura de expresión o
-de unión.
+Este posicionamiento de la ligadura de unión es mejor, pero quizá
+debería elevarse más en la parte central.  El ejemplo siguiente
+hace esto, esta vez usando la forma alternativa @code{\tweak}:
 
-@lilypond[verbatim,quote,relative=1]
+@lilypond[verbatim,quote]
 <<
   {
-    \once \override Tie
-      #'control-points = #'((1 . -1) (3 . 0.6) (12.5 . 0.6) (14.5 . -1))
-     e1 ~ e
+    e'1-\shape #'((0 . 0.5) (0 . 1) (0 . 1) (0 . 0.5)) ~ e'
   }
 \\
-  { r4 <g c,> <g c,> <g c,> }
+  \relative { r4 <g' c,> <g c,> <g c,> }
 >>
 @end lilypond
 
+Los cambios en las posiciones horizontales de los puntos de
+control se pueden hacer de la misma forma, y dos curvas distintas
+que dan comienzo en el mismo momento musical se pueden conformar
+también:
+
+@lilypond[verbatim,quote,ragged-right]
+\relative {
+  c''8(\( a) a'4 e c\)
+  \shape #'((0.7 . -0.4) (0.5 . -0.4) (0.3 . -0.3) (0 . -0.2)) Slur
+  \shape #'((0 . 0) (0 . 0.5) (0 . 0.5) (0 . 0)) PhrasingSlur
+  c8(\( a) a'4 e c\)
+}
+@end lilypond
+
+La función @code{\shape} también puede desplazar los puntos de
+control de las curvas que se extienden atravesando saltos de
+línea.  Cada pieza de la curva dividida puede recibir su propia
+lista de desplazamientos.  Si no se necesita hacer cambios a uno
+de los segmentos en particular, se puede usar una lista vacía como
+contenedor.  En este ejemplo, el salto de línea hace que la única
+ligadura de expresión aparezca como si fueran dos:
+
+@lilypond[verbatim,quote,ragged-right]
+\relative {
+  c'4( f g c
+  \break
+  d,4 c' f, c)
+}
+@end lilypond
+
+Los cambios en la forma de las dos mitades de la ligadura de
+expresión deja más claro que la ligadura continúa más allá del
+salto de línea:
+
+@lilypond[verbatim,quote,ragged-right]
+% () may be used as a shorthand for ((0 . 0) (0 . 0) (0 . 0) (0 . 0))
+% if any of the segments does not need to be changed
+\relative c' {
+  \shape #'(
+             (( 0 . 0) (0 . 0) (0 . 0) (0 . 1))
+             ((0.5 . 1.5) (1 . 0) (0 . 0) (0 . -1.5))
+           ) Slur
+  c4( f g c
+  \break
+  d,4 c' f, c)
+}
+@end lilypond
+
+En una curva en forma de «S» siempre es necesario ajustar
+manualmente los puntos de control: LilyPond nunca escoge tales
+formas automáticamente.
+
+@lilypond[verbatim,quote]
+\relative c'' {
+  c8( e b-> f d' a e-> g)
+  \shape #'((0 . -1) (5.5 . -0.5) (-5.5 . -10.5) (0 . -5.5)) PhrasingSlur
+  c8\( e b-> f d' a e-> g\)
+}
+@end lilypond
+
+@subsubsubheading Especificar los puntos de control explícitamente
+
+Las coordenadas de los puntos de contro de Bézier se especifican
+en unidades de espacios de pentagrama.  La coordenada@tie{}X es
+relativa al punto de referencia al que se adjunta la ligadura, y
+la coordenada@tie{}Y es relativa a la línea central del
+pentagrama.  Las coordenadas se especifican como una lista de
+cuatro parejas de números decimales (reales).  Un enfoque consiste
+en estimar las coordenadas de los dos extremos, y después adivinar
+los dos puntos intermedios.  Los valores óptimos se encuentran
+después por ensayo y error.  Tenga en cuenta que estos valores
+podrían requerir un ajuste manual si se hace posteriormente
+cualquier cambio manual a la música o a la disposición.
+
+Una situación en la que es preferible especificar los puntos de
+control explícitamente a especificar los desplazamientos es cuando
+se necesita especificarlos de forma relativa a una nota única.  A
+continuación presentamos un ejemplo de esto.  Muestra una forma de
+indicar una ligadura que se extiende hacia el interior de las
+casillas de primera y segunda vez de una repetición.
+
+@lilypond[verbatim,quote]
+\relative {
+  c''1
+  \repeat volta 3 { c4 d( e f }
+  \alternative {
+    { g2) d }
+    {
+      g2
+      % create a slur and move it to a new position
+      % the <> is just an empty chord to carry the slur termination
+      -\tweak control-points #'((-2 . 3.8) (-1 . 3.9) (0 . 4) (1 . 3.4)) ( <> )
+      f,
+    }
+    {
+      e'2
+      % create a slur and move it to a new position
+      -\tweak control-points #'((-2 . 3) (-1 . 3.1) (0 . 3.2) (1 . 2.4)) ( <> )
+      f,
+    }
+  }
+}
+@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 momento musical, ni siquiera usando la instrucción
-@code{\tweak}.  Sin embargo, se puede sobreescribir la propiedad @code{tie-configuration} de
-@code{TieColumn} para fijar la línea de inicio y la dirección según se requiera.
+expresión cambiando la propiedad @code{control-points} si hay más
+de una en el mismo momento musical, ni siquiera usando la
+instrucción @code{\tweak}.  Sin embargo, se puede sobreescribir la
+propiedad @code{tie-configuration} de @code{TieColumn} para fijar
+la línea de inicio y la dirección según se requiera.
 
 @seealso
 Referencia de funcionamiento interno:
 @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 c'' {
+  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
+[-]\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 c'' {
+  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]
+% The empty list is conveniently used below, because it is the
+% default setting of dash-definition, resulting in a solid curve.
+\relative {
+  c''2-\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
+
+@cindex Scheme, contenedores puros
+@cindex Scheme, contenedores no-puros
+@cindex puros, contenedores de Scheme
+@cindex no-puros: contenedores de Scheme
+@cindex horizontal, sobreescribir el espaciado
+
+Los contenedores @q{unpure-pure} (pura y no pura) son útiles para
+la sobreescritura de los cálculos del espaciado en el @emph{eje Y}
+(concretamente @code{Y-offset} e @code{Y-extent}) con una función
+de Scheme en lugar de un literal, es decir, un número o una pareja
+de números.
+
+Para ciertos objetos gráficos, las dimensiones @code{Y-extent}
+están basadas en la propiedad @code{stencil}, la sobreescritura de
+la propiedad de sello de éstos requiere una sobreescritura
+adicional de @code{Y-extent} con un contenedor unpure-pure.
+Cuando una función sobreescribe una dimensión @code{Y-offset} y/o
+@code{Y-extent} se supone que esto dispara los cálculos de los
+saltos de línea prematuramente durante la compilación.  Así pues,
+la función no se evalúa en absoluto (devolviendo por lo general un
+valor de @samp{0} o @samp{'(0 . 0)}) lo que puede dar lugar a
+colisiones.  Una función @q{pura} no afecta a las propiedades,
+objetos o suicidios de grobs, y por ello siempre ven sus valores
+relacionados con el eje Y evaluados correctamente.
+
+Actualmente hay unas treinta funciones que ya se consideran
+@q{puras} y los contenedores Unpure-pure son una manera de
+establecer funciones que no están en esta lista como @q{puras}.
+La función @q{pura} se evalúa @emph{antes} de cualquier salto de
+línea y así el espaciado horizontal se puede ajustar @q{a tiempo}.
+La función @q{impura} se evalúa entonces @emph{después} del salto
+de línea.
+
+@warning{Dado que es difícil saber siempre qué funciones están en
+esta lista, recomendamos que cualquier función @q{pura} que
+estemos creando no utilice los grobs @code{Beam} o
+@code{VerticalAlignment}.}
+
+Un contenedor @q{unpure-pure} se contruye de la manera siguiente:
+
+@code{(ly:make-unpure-pure-container f0 f1)}
+
+donde @code{f0} es una función que toma @var{n} argumentos (@var{n >=
+1}) y el primer argumento siempre debe ser el grob.  Ésta es la
+función que da el resultado real.  @var{f1} es la función que se
+etiqueta como @q{pura} que toma @var{n + 2} argumentos.  De nuevo, el
+primer argumento debe ser siempre el grob pero los argumentos segundo
+y tercero son argumentos de @q{inicio} y de @q{final}.
+
+@var{inicio} y @var{final} son, a todos los efectos, valores mudos
+que sólo tienen importancia para los @code{objetos de extensión}
+(o sea: @code{Hairpin}, regulador, o @code{Beam}, barra), que
+pueden devolver distintas estimaciones de altura basadas en una
+columna de inicio y una de final.
+
+El resto son los otros argumentos para la primera función (que
+puede no ser ninguno si @var{n = 1}).
+
+El resultado de la segunda función se usa como una aproximación del
+valor necesario, que se usa entonces por la primera función para
+obtener el valor real que se usa a continuación para el ajuste de
+precisión mucho más tardío durante el proceso de espaciado.
+
+@c TODO: The following example supposedly showing a collision no longer
+@c 'works' since 2.18.x. Another example of a collision is needed.
+@c Issue #3512
+
+@lilypond[verbatim,quote,ragged-right]
+#(define (square-line-circle-space grob)
+(let* ((pitch (ly:event-property (ly:grob-property grob 'cause) 'pitch))
+      (notename (ly:pitch-notename pitch)))
+ (if (= 0 (modulo notename 2))
+     (make-circle-stencil 0.5 0.0 #t)
+     (make-filled-box-stencil '(0 . 1.0)
+                              '(-0.5 . 0.5)))))
+
+squareLineCircleSpace = {
+  \override NoteHead.stencil = #square-line-circle-space
+}
+
+smartSquareLineCircleSpace = {
+  \squareLineCircleSpace
+  \override NoteHead.Y-extent =
+   #(ly:make-unpure-pure-container
+      ly:grob::stencil-height
+      (lambda (grob start end) (ly:grob::stencil-height grob)))
+}
+
+\new Voice \with { \remove "Stem_engraver" }
+\relative c'' {
+  \squareLineCircleSpace
+  cis4 ces disis d
+  \smartSquareLineCircleSpace
+  cis4 ces disis d
+}
+@end lilypond
+
+En el primer compás, sin el contenedor @emph{unpure-pure}, el
+motor de espaciado no conoce la anchura de la cabeza de la nota y
+permite que colisione con las alteraciones accidentales.  En el
+segundo compás, el motor de espaciado conoce la anchura de las
+cabezas de las notas y evita la colisión mediante el alargamiento
+de la línea en la medida adecuada.
+
+Normalmente, para cálculos simples se pueden usar funciones casi
+idénticas tanto para las partes @q{no pura} y @q{pura},
+simplemente cambiando el número de argumentos que se pasan a, y el
+ámbito de, la función.  Este caso de utilización es lo bastante
+frecuente como para que @code{ly:make-unpure-pure-container}
+construya dicha segunda función de forma predeterminada cuando se
+llama con solo un argumento de función.
+
+@warning{Si una función está caracterizada como @q{pura} y resulta
+que no lo es, el resultado puede ser inesperado.}
+
+
 @node Uso de las funciones musicales
 @section Uso de las funciones musicales
 @translationof Using music functions
@@ -3784,27 +5310,28 @@ Referencia de funcionamiento interno:
 Dondequiera que se necesite reutilizar trucos con distintas
 expresiones musicales, con frecuencia conviene hacer que el truco
 forme parte de una @emph{función musical}.  En esta sección
-estudiaremos solamente las funciones de @emph{sustitución}, en las que
-el objeto es sustituir una variable dentro de un fragmento de código
-de entrada de LilyPond.  Se describen otras funciones más complejas en
-@rextend{Funciones musicales}.
+estudiaremos solamente las funciones de @emph{sustitución}, en las
+que el objeto es sustituir una variable dentro de un fragmento de
+código de entrada de LilyPond.  Se describen otras funciones más
+complejas en @rextend{Funciones musicales}.
 
 @menu
 * Sintaxis de las funciones de sustitución::
 * Ejemplos de funciones de sustitución::
 @end menu
 
+
 @node Sintaxis de las funciones de sustitución
 @subsection Sintaxis de las funciones de sustitución
 @translationof Substitution function syntax
 
-Es fácil hacer una función que sustituya una variable dentro de código
-de LilyPond.  La forma general de estas funciones es
+Es fácil hacer una función que sustituya una variable dentro de
+código de LilyPond.  La forma general de estas funciones es
 
 @example
 funcion =
 #(define-music-function
-     (parser location @var{arg1} @var{arg2} @dots{})
+     (@var{arg1} @var{arg2} @dots{})
      (@var{type1?} @var{type2?} @dots{})
    #@{
      @var{@dots{}música@dots{}}
@@ -3823,24 +5350,23 @@ donde
 debe devolver @code{#t}.
 
 @item @code{@var{@dots{}música@dots{}}}
-@tab entrada de LilyPond normal, que utiliza @code{$} para
-referenciar argumentos (p.ej. @samp{$arg1}).
+@tab código de entrada normal de LilyPond, que utiliza @code{$} (en los
+lugares en que sólo se permiten construcciones de LilyPond) o
+@code{#} (para usarlo como un valor de Scheme o un argumento de
+función musical o música dentro de listas de música) para
+referenciar argumentos (p.ej. @samp{#arg1}).
 @end multitable
 
-
-Los argumentos @code{parser} y @code{location} son necesarios, y se
-utilizan en algunas situaciones avanzadas como se encuentra descrito
-en @rextend{Sintaxis de las funciones musicales}.  Para las funciones
-de sustitución, tan sólo hemos de asegurarnos de incluirlos.
-
-También es necesaria la lista de predicados de tipo.  Algunos de los
+Es necesaria la lista de predicados de tipo.  Algunos de los
 predicados de tipo más comunes que se utilizan en las funciones
 musicales son:
 
 @example
 boolean?
 cheap-list?  @emph{(utilizar en lugar de }@q{list?}@emph{ para un procesado más rápido)}
+ly:duration?
 ly:music?
+ly:pitch?
 markup?
 number?
 pair?
@@ -3853,9 +5379,7 @@ Para ver una lista de los predicados de tipo disponibles, consulte
 @ref{Predicados de tipo predefinidos}.  También se permiten los
 predicados de tipo definidos por el usuario.
 
-
 @seealso
-
 Referencia de la notación:
 @ref{Predicados de tipo predefinidos}.
 
@@ -3872,69 +5396,101 @@ Archivos instalados:
 @subsection Ejemplos de funciones de sustitución
 @translationof Substitution function examples
 
-Esta sección presenta algunos ejemplos de funciones de sustitución.
-No pretenden ser exhaustivas, sino demostrar algunas de las
-posibilidades de las funciones de sustitución sencillas.
+Esta sección presenta algunos ejemplos de funciones de
+sustitución.  No pretenden ser exhaustivas, sino demostrar algunas
+de las posibilidades de las funciones de sustitución sencillas.
 
-En el primer ejemplo se define una función que simplifica el ajuste
-del relleno de un elemento de inscripción de texto TextScript:
+En el primer ejemplo se define una función que simplifica el
+ajuste del relleno de un elemento de inscripción de texto
+TextScript:
 
 @lilypond[quote,verbatim,ragged-right]
 padText =
 #(define-music-function
-     (parser location padding)
+     (padding)
      (number?)
    #{
-     \once \override TextScript #'padding = $padding
+     \once \override TextScript.padding = #padding
    #})
 
-\relative c''' {
-  c4^"piu mosso" b a b
+\relative {
+  c''4^"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
 
 Además de números, podemos usar expresiones musicales, como notas,
 para los argumentos de las funciones musicales:
 
-@c TODO: use a better example (the music argument is redundant).
-
 @lilypond[quote,verbatim,ragged-right]
 custosNote =
 #(define-music-function
-     (parser location note)
+     (note)
      (ly:music?)
    #{
-     \once \override Voice.NoteHead #'stencil =
-       #ly:text-interface::print
-     \once \override Voice.NoteHead #'text =
-       \markup \musicglyph #"custodes.mensural.u0"
-     \once \override Voice.Stem #'stencil = ##f
-     $note
+     \tweak NoteHead.stencil #ly:text-interface::print
+     \tweak NoteHead.text
+        \markup \musicglyph #"custodes.mensural.u0"
+     \tweak Stem.stencil ##f
+     #note
    #})
 
-\relative c' { c4 d e f \custosNote g }
+\relative { c'4 d e f \custosNote g }
+@end lilypond
+
+@funindex \etc
+Ambas funciones son expresiones únicas sencillas en las que solo
+falta el último elemento de una lamada de función o
+sobreescritura.  Para estas definiciones de función en particular,
+existe una sintaxis alternativa más simple que consiste
+simplemente en escribir la parte constante de la expresión y
+sustituir el elemento final que falta por @code{\etc}:
+
+@lilypond[quote,verbatim,ragged-right]
+padText =
+  \once \override TextScript.padding = \etc
+
+\relative {
+  c''4^"piu mosso" b a b
+  \padText #1.8
+  c4^"piu mosso" b a b
+  \padText #2.6
+  c4^"piu mosso" b a b
+}
+@end lilypond
+
+@lilypond[quote,verbatim,ragged-right]
+custosNote =
+  \tweak NoteHead.stencil #ly:text-interface::print
+  \tweak NoteHead.text
+     \markup \musicglyph #"custodes.mensural.u0"
+  \tweak Stem.stencil ##f
+  \etc
+
+\relative { c'4 d e f \custosNote g }
 @end lilypond
 
-Se pueden definir funciones de sustitución con más de un argumento:
+
+Se pueden definir funciones de sustitución con más de un
+argumento:
 
 @lilypond[quote,verbatim,ragged-right]
 tempoPadded =
 #(define-music-function
-     (parser location padding tempotext)
-     (number? string?)
+     (padding tempotext)
+     (number? markup?)
    #{
-     \once \override Score.MetronomeMark #'padding = $padding
-     \tempo \markup { \bold $tempotext }
+     \once \override Score.MetronomeMark.padding = #padding
+     \tempo \markup { \bold #tempotext }
    #})
 
-\relative c'' {
+\relative {
   \tempo \markup { "Low tempo" }
-  c4 d e f g1
-  \tempoPadded #4.0 #"High tempo"
+  c''4 d e f g1
+  \tempoPadded #4.0 "High tempo"
   g4 f e d c1
 }
 @end lilypond