]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/es/notation/changing-defaults.itely
Rerun scripts/auxiliar/update-with-convert-ly.sh
[lilypond.git] / Documentation / es / notation / changing-defaults.itely
index f6b45f646af79ac12c0c85a53ab4e13e3a0b38d0..b353852f9c2295fd49fa9d5d7b0452611809a454 100644 (file)
@@ -1,14 +1,14 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 
 @ignore
-Translation of GIT committish: ffb5c20633459831cea21859f3423ea50060d705
+Translation of GIT committish: 44011e382e91f43fb6752b3fbbf8d8984131a565
 
     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.20"
+@c \version "2.17.6"
 
 @node Cambiar los valores por omisión
 @chapter Cambiar los valores por omisión
@@ -34,7 +34,7 @@ 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},
+@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
@@ -72,7 +72,6 @@ Esta sección explica qué son los contextos y cómo modificarlos.
 * Orden de disposición de los contextos::
 @end menu
 
-
 @seealso
 Manual de aprendizaje:
 @rlearning{Contextos y grabadores}.
@@ -102,6 +101,7 @@ Los contextos se disponen de forma jerárquica:
 * Contextos del nivel más bajo. Voces::
 @end menu
 
+
 @node Score. El contexto maestro
 @unnumberedsubsubsec Score. El contexto maestro
 @translationof Score - the master of all contexts
@@ -116,6 +116,7 @@ Se crea implícitamente una instancia del contexto Score cuando se
 procesa un bloque @code{\score @{@dots{}@}} o @code{\layout
 @{@dots{}@}}.
 
+
 @node Contextos del nivel superior. Contenedores de pentagramas
 @unnumberedsubsubsec Contextos del nivel superior: contenedores de pentagramas
 @translationof Top-level contexts - staff containers
@@ -144,6 +145,7 @@ se conectan verticalmente.
 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
 @translationof Intermediate-level contexts - staves
@@ -382,6 +384,7 @@ Para que se interprete dentro de los niveles de @code{Score} o
 
 @end itemize
 
+
 @node Mantener vivos los contextos
 @subsection Mantener vivos los contextos
 @translationof Keeping contexts alive
@@ -550,8 +553,8 @@ 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.
+@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
@@ -660,101 +663,348 @@ 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
 
-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:
+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 que se han de usar de forma predeterminada
+dentro de @code{Score}, @code{Staff}, @code{Voice} y otros contextos
+se pueden especificar en un bloque @code{\context} dentro de cualquier
+bloque @code{\layout}.  El bloque @code{\layout} se debe colocar
+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:
+
+@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
+    a4^"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 c'' {
+    a4^"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 c'' {
+    a4^"Dynamics above" a a a
+    a4 a a\ff a
+  }
+  \layout {
+    \context {
+      \Voice
+      \dynamicUp
+    }
+    \context {
+      \Staff
+      \accidentalStyle dodecaphonic
+    }
+  }
+}
+@end lilypond
 
-Los cambios de contexto se pueden poner dentro de una variable y
-aplicarse a una definición de contexto @code{\context} anteponiendo la
-modificación mediante @code{\with}:
+@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}.
 
 @lilypond[quote,verbatim]
-blubb = \with {
+StaffDefaults = \with {
   fontSize = #-4
-  \override Stem #'thickness = #4.0
-  \remove "Time_signature_engraver"
 }
 
-bla = \with {
-  fontSize = #3
-  \override Stem #'thickness = #-2.0
+\score {
+  \new Staff {
+    \relative c'' {
+      a4^"Smaller font" a a a
+      a4 a a a
+    }
+  }
+  \layout {
+    \context {
+      \Staff
+      \StaffDefaults
+    }
+  }
 }
+@end lilypond
 
-melody = \relative c'' {
-  a4 a a a |
-  a4 a a a |
+@end itemize
+
+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 c'' {
+      a4^"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
+\new Staff
+\with @{
+  [ajustes de contexto para esta única instancia de contexto]
+@} @{
+...
+@}
+@end example
+
+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 c'' {
+        a4^"Thick stems" a a a
+        a4 a a a
+      }
+    }
+  }
+}
+@end lilypond
+
+@item
+Estableciendo una propiedad de contexto directamente
 
+@lilypond[quote,verbatim]
 \score {
   <<
-    \new Staff <<
-      \melody
-      s1*0^"Small, thicker stems, no time signature"
-    >>
-    \new Staff \bla <<
-      \melody
-      s1*0^"Different"
-    >>
+    \new Staff {
+      \relative c'' {
+        a4^"Default font" a a a
+        a4 a a a
+      }
+    }
+    \new Staff
+    \with {
+      fontSize = #-4
+    } {
+      \relative c'' {
+        a4^"Smaller font" a a a
+        a4 a a a
+      }
+    }
   >>
-  \layout {
-    \context {
-      \Staff
-      \blubb
+}
+@end lilypond
+
+@item
+Una instrucción predefinida tal como @code{\dynamicUp}
+
+@lilypond[quote,verbatim]
+\score {
+  <<
+    \new Staff {
+      \new Voice {
+        \relative c'' {
+          a4^"Dynamics below" a a a
+          a4 a a\ff a
+        }
+      }
     }
-  }
+    \new Staff
+    \with { \accidentalStyle dodecaphonic }
+    {
+      \new Voice
+      \with { \dynamicUp }
+      {
+        \relative c'' {
+          a4^"Dynamics above" a a a
+          a4 a a\ff a
+        }
+      }
+    }
+  >>
 }
 @end lilypond
 
-@c TODO: add \with in here.
+@end itemize
 
+@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},
+
+@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}.
 
 
 @node Definir contextos nuevos
@@ -795,11 +1045,11 @@ 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
+  \override Stem.transparent = ##t
+  \override Flag.transparent = ##t
   \alias Voice
 }
 \context { \Staff
@@ -847,14 +1097,14 @@ El contexto imprimirá notas y textos explicativos, por ello tenemos
 que añadir los grabadores que aportan esta funcionalidad:
 
 @example
-\consists Note_heads_engraver
-\consists Text_engraver
+\consists "Note_heads_engraver"
+\consists "Text_engraver"
 @end example
 
 pero sólo necesitamos esto en la línea central:
 
 @example
-\consists Pitch_squash_engraver
+\consists "Pitch_squash_engraver"
 squashedPosition = #0
 @end example
 
@@ -866,9 +1116,9 @@ establece sus posiciones verticales al valor de
 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
+\override Stem.transparent = ##t
+\override Flag.transparent = ##t
 @end example
 
 Todos estos añadidos tienen que cooperar, y esto se consigue con un
@@ -887,11 +1137,11 @@ Al juntarlo todo, obtenemos
   \type "Engraver_group"
   \consists "Note_heads_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
+  \override Stem.transparent = ##t
+  \override Flag.transparent = ##t
   \alias Voice
 @}
 @end example
@@ -1008,7 +1258,48 @@ encuentra una instrucción donde no hay un contexto apropiado para
 contenerlo.  Esto puede dar lugar a pentagramas o partituras nuevos no
 esperados.
 
+@cindex alignAboveContext
+@cindex alignBelowContext
+@funindex alignAboveContext
+@funindex alignBelowContext
+
+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 reposicionallo por encima del contexto que
+tenga el nombre @qq{principal}, debería definirse de esta forma:
+
+@example
+@code{\new Staff \with @{ alignAboveContext = #"principal" @} }
+@end example
+
+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}.
+
 @seealso
+Manual de aprendizaje:
+@rlearning{Anidado de expresiones musicales}.
+
+Referencia de la notación:
+@ref{Modificación de pentagramas sueltos},
+@ref{Técnicas específicas para la letra}.
+
 Manual de utilización del programa:
 @rprogram{Aparece un pentagrama de más}.
 
@@ -1020,7 +1311,6 @@ Archivos instalados:
 @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::
@@ -1265,7 +1555,7 @@ 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:
 @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
@@ -1273,7 +1563,7 @@ Fingering, es decir, antes del @code{c2}, llegamos al siguiente
 resultado:
 
 @lilypond[quote,relative=2,verbatim]
-\once \override Voice.Fingering #'padding = #3
+\once \override Voice.Fingering.padding = #3
 c-2
 \stemUp
 f
@@ -1315,6 +1605,7 @@ Preguntas aún sin respuesta
 @end itemize
 @end ignore
 
+
 @node Modificar las propiedades
 @section Modificar las propiedades
 @translationof Modifying properties
@@ -1369,7 +1660,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
@@ -1381,7 +1672,7 @@ Aquí vemos la instrucción en pleno funcionamiento:
 
 @lilypond[quote,verbatim,relative=2]
 c4
-\override Staff.Stem #'thickness = #4.0
+\override Staff.Stem.thickness = #4.0
 c4
 c4
 c4
@@ -1398,7 +1689,7 @@ solo paso de tiempo.
 
 @lilypond[quote,verbatim,relative=2]
 c4
-\once \override Stem #'thickness = #4.0
+\once \override Stem.thickness = #4.0
 c4
 c4
 @end lilypond
@@ -1409,9 +1700,9 @@ 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
+\override Slur.thickness = #3.0
 c8[( c
-\override Beam #'beam-thickness = #0.6
+\override Beam.beam-thickness = #0.6
 c8 c])
 @end lilypond
 
@@ -1427,8 +1718,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
@@ -1444,7 +1735,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
@@ -1457,9 +1748,7 @@ 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
@@ -1606,15 +1895,14 @@ 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
@@ -1657,7 +1945,7 @@ sobreescribiendo la propiedad @code{thickness} (grosor) del objeto
 
 @lilypond[quote,verbatim,relative=2]
 c4 c
-\override Voice.Stem #'thickness = #3.0
+\override Voice.Stem.thickness = #3.0
 c4 c
 @end lilypond
 
@@ -1665,11 +1953,11 @@ 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
+{ \override Staff.Stem.thickness = #3.0
   <<
     {
       e4 e
-      \override Stem #'thickness = #0.5
+      \override Stem.thickness = #0.5
       e4 e
     } \\ {
       c4 c c c
@@ -1687,9 +1975,9 @@ puede deshacer con @code{\revert}:
 
 @lilypond[quote,verbatim,relative=2]
 c4
-\override Voice.Stem #'thickness = #3.0
+\override Voice.Stem.thickness = #3.0
 c4 c
-\revert Voice.Stem #'thickness
+\revert Voice.Stem.thickness
 c4
 @end lilypond
 
@@ -1702,11 +1990,11 @@ adelante:
   <<
     {
       e4
-      \override Staff.Stem #'thickness = #3.0
+      \override Staff.Stem.thickness = #3.0
       e4 e e
     } \\ {
       c4 c c
-      \revert Staff.Stem #'thickness
+      \revert Staff.Stem.thickness
       c4
     }
   >>
@@ -1723,11 +2011,11 @@ al instante de tiempo actual:
 {
   <<
     {
-      \override Stem #'thickness = #3.0
+      \override Stem.thickness = #3.0
       e4 e e e
     } \\ {
       c4
-      \once \override Stem #'thickness = #3.0
+      \once \override Stem.thickness = #3.0
       c4 c c
     }
   >>
@@ -1740,7 +2028,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
@@ -1758,7 +2046,7 @@ en el interior de las propiedades normales.  Para modificarlas utilice
 instrucciones de la forma
 
 @example
-\override Stem #'(details beamed-lengths) = #'(4 4 3)
+\override Stem.details.beamed-lengths = #'(4 4 3)
 @end example
 
 @cindex documentación interna
@@ -1780,10 +2068,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
@@ -1799,11 +2087,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
@@ -1813,13 +2102,13 @@ por ejemplo
 
 @lilypond[relative=2,verbatim,quote]
 < c
-  \tweak #'color #red
+  \tweak color #red
   d
   g
-  \tweak #'duration-log #1
+  \tweak duration-log #1
   a
 > 4
--\tweak #'padding #8
+-\tweak padding #8
 -^
 @end lilypond
 
@@ -1848,14 +2137,14 @@ posibilidad de modificarla.
 Así, esto funciona:
 
 @lilypond[relative=2,verbatim,quote]
-<\tweak #'color #red c>4
+<\tweak color #red c>4
 @end lilypond
 
 @noindent
 pero esto no funciona:
 
 @lilypond[relative=2,verbatim,quote]
-\tweak #'color #red c4
+\tweak color #red c4
 @end lilypond
 
 @end ignore
@@ -1886,10 +2175,10 @@ dentro del mismo acorde:
 
 @lilypond[relative=2,verbatim,quote]
 < c
-  \tweak #'color #red
+  \tweak color #red
   d
   g
-  \tweak #'duration-log #1
+  \tweak duration-log #1
   a
 > 4
 @end lilypond
@@ -1897,45 +2186,55 @@ dentro del mismo acorde:
 @code{\tweak} se puede usar para modificar ligaduras de expresión:
 
 @lilypond[verbatim,quote,relative=1]
-c-\tweak #'thickness #5 ( d e f)
+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:
+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[relative=2,verbatim,quote]
-\tweak #'color #red c4
-<\tweak #'color #red c>4
+\tweak color #red c4
+\tweak color #red <c e>4
+<\tweak color #red c e>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.
+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.
 
-También se pueden escribir varias instrucciones @code{\tweak} antes de
-un elemento notacional, y todas ellas le afectan:
+Tales objetos de presencaión creados indirectamente se pueden trucar
+usando la forma explícita de la instrucción @code{\tweak}:
+
+@lilypond[relative=2,verbatim,quote]
+\tweak Stem.color #red
+\tweak Beam.color #green c8 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,quote,relative=1]
 c
--\tweak #'style #'dashed-line
--\tweak #'dash-fraction #0.2
--\tweak #'thickness #3
--\tweak #'color #red
+-\tweak style #'dashed-line
+-\tweak dash-fraction #0.2
+-\tweak thickness #3
+-\tweak color #red
  \glissando
 f'
 @end lilypond
@@ -1946,7 +2245,6 @@ 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:
 @rlearning{Métodos de trucaje}.
@@ -1954,21 +2252,16 @@ 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}
@@ -2043,7 +2336,7 @@ 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   }
@@ -2065,7 +2358,7 @@ 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)
@@ -2085,10 +2378,10 @@ 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)
@@ -2131,6 +2424,7 @@ como listas-A.}
 * Rotación de objetos::
 @end menu
 
+
 @node Modos de entrada
 @subsection Modos de entrada
 @translationof Input modes
@@ -2235,7 +2529,6 @@ interpretar dichas indicaciones:
 @end lilypond
 
 
-
 @node Dirección y posición
 @subsection Dirección y posición
 @translationof Direction and placement
@@ -2300,19 +2593,20 @@ se puede especificar estableciendo @code{direction} a @code{0} ó a
 instrucciones predefinidas para especificar la dirección.  Todas ellas
 son de la forma:
 
-@noindent
-@code{\xxxUp}, @code{xxxDown}, @code{xxxNeutral}
+@example
+@code{\xxxUp}, @code{\xxxDown} o @code{\xxxNeutral}
+@end example
 
 @noindent
-donde @code{xxxNeutral} significa @qq{utilizar la dirección
+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
+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}, como antes.
+significan @qq{utilizar la dirección predeterminada}.
 
 Estas indicaciones afectan a todas las notas hasta que son canceladas.
 
@@ -2325,6 +2619,17 @@ c2( c)
 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}.
+
+@seealso
+Manual de aprendizaje:
+@rlearning{Objetos interiores al pentagrama}.
+
+Referencia de la notación:
+@ref{Varias voces}.
+
 
 @node Distancias y medidas
 @subsection Distancias y medidas
@@ -2379,7 +2684,6 @@ 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:
 @rlearning{Longitud y grosor de los objetos}.
@@ -2414,7 +2718,7 @@ valores de @code{'line-positions}.}
 
 @lilypond[verbatim,quote,relative=1]
 \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 }
 @end lilypond
@@ -2425,7 +2729,7 @@ resulta afectado por este ajuste.
 
 @lilypond[verbatim,quote,relative=1]
 \new Staff \with {
-  \override StaffSymbol #'width = #23
+  \override StaffSymbol.width = #23
 }
 { a4 e' f b | d1 }
 @end lilypond
@@ -2488,7 +2792,7 @@ Works not at all for:
 a~a
 a
 % increase the length of the tie
--\tweak #'minimum-length #5
+-\tweak minimum-length #5
 ~a
 @end lilypond
 
@@ -2497,7 +2801,7 @@ a1
 \compressFullBarRests
 R1*23
 % increase the length of the rest bar
-\once \override MultiMeasureRest #'minimum-length = #20
+\once \override MultiMeasureRest.minimum-length = #20
 R1*23
 a1
 @end lilypond
@@ -2505,7 +2809,7 @@ a1
 @lilypond[verbatim,quote,relative=2]
 a \< a a a \!
 % increase the length of the hairpin
-\override Hairpin #'minimum-length = #20
+\override Hairpin.minimum-length = #20
 a \< a a a \!
 @end lilypond
 
@@ -2515,12 +2819,12 @@ las ligaduras de expresión y de fraseo:
 @lilypond[verbatim,quote,relative=2]
 a( a)
 a
--\tweak #'minimum-length #5
+-\tweak minimum-length #5
 ( a)
 
 a\( a\)
 a
--\tweak #'minimum-length #5
+-\tweak minimum-length #5
 \( a\)
 @end lilypond
 
@@ -2537,12 +2841,12 @@ propiedad @code{springs-and-rods}:
 e \glissando c'
 
 % not effective alone
-\once \override Glissando #'minimum-length = #20
+\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
+\once \override Glissando.minimum-length = #20
+\once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods
 e, \glissando c'
 @end lilypond
 
@@ -2550,12 +2854,12 @@ Lo mismo se puede decir del objeto @code{Beam}:
 
 @lilypond[verbatim,quote,relative=1]
 % not effective alone
-\once \override Beam #'minimum-length = #20
+\once \override Beam.minimum-length = #20
 e8 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
+\once \override Beam.minimum-length = #20
+\once \override Beam.springs-and-rods = #ly:spanner::set-spacing-rods
 e8 e e e
 @end lilypond
 
@@ -2571,7 +2875,7 @@ exactamente sobre la nota:
 
 @lilypond[verbatim,quote,relative=2]
 a \< a a a a \! a a a \break
-\override Hairpin #'to-barline = ##f
+\override Hairpin.to-barline = ##f
 a \< a a a a \! a a a
 @end lilypond
 
@@ -2605,8 +2909,8 @@ jerarquía de propiedades, pero la sintaxis de la instrucción
 
 @lilypond[relative=2,quote,verbatim]
 e2 \glissando b
-\once \override Glissando #'(bound-details left Y) = #3
-\once \override Glissando #'(bound-details right Y) = #-2
+\once \override Glissando.bound-details.left.Y = #3
+\once \override Glissando.bound-details.right.Y = #-2
 e2 \glissando b
 @end lilypond
 
@@ -2624,8 +2928,8 @@ 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
+\override Glissando.breakable = ##t
+\override Glissando.bound-details.right-broken.Y = #-3
 c1 \glissando \break
 f1
 @end lilypond
@@ -2665,7 +2969,7 @@ 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)
+\override TextSpanner.bound-details.left.text
    = \markup { \small \bold Slower }
 c2\startTextSpan b c a\stopTextSpan
 @end lilypond
@@ -2679,15 +2983,11 @@ subpropiedades @code{X} e @code{Y}.  Si se fijan
 símbolo del borde verticalmente con relación al extremo de la línea:
 
 @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.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"
 c4^\startTextSpan c c c \stopTextSpan
 @end lilypond
 
@@ -2724,7 +3024,6 @@ c2 \< c2 c2
 Si se usa @code{\endSpanners} no es necesario cerrar \startTextSpan
 con \stopTextSpan, ni cerrar los reguladores con @code{\!}.
 
-
 @seealso
 Referencia de funcionamiento interno:
 @rinternals{TextSpanner},
@@ -2777,12 +3076,13 @@ predeterminada se puede recuperar con @code{\revert}.
 
 @lilypond[quote,verbatim,relative=1]
 a1 a
-\override Score.BarLine #'stencil = ##f
+\override Score.BarLine.stencil = ##f
 a a
-\revert Score.BarLine #'stencil
+\revert Score.BarLine.stencil
 a a a
 @end lilypond
 
+
 @node Hacer transparentes los objetos
 @unnumberedsubsubsec Hacer transparentes los objetos
 @translationof Making objects transparent
@@ -2796,10 +3096,11 @@ invisible.
 
 @lilypond[quote,verbatim,relative=2]
 a4 a
-\once \override NoteHead #'transparent = ##t
+\once \override NoteHead.transparent = ##t
 a a
 @end lilypond
 
+
 @node Pintar los objetos de blanco
 @unnumberedsubsubsec Pintar los objetos de blanco
 @translationof Painting objects white
@@ -2821,7 +3122,7 @@ 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
+\override Staff.Clef.color = #white
 a1
 @end lilypond
 
@@ -2846,11 +3147,12 @@ sobreimpresionándolas.  Para cambiarlo, se debe dar al objeto
 para que se dibuje antes:
 
 @lilypond[quote,verbatim,relative=2]
-\override Staff.Clef #'color = #white
-\override Staff.Clef #'layer = #-1
+\override Staff.Clef.color = #white
+\override Staff.Clef.layer = #-1
 a1
 @end lilypond
 
+
 @node Uso de break-visibility (visibilidad en el salto)
 @unnumberedsubsubsec Uso de break-visibility (visibilidad en el salto)
 @translationof Using break-visibility
@@ -2893,7 +3195,7 @@ combinaciones mediante funciones predefinidas cuya definición está en
 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
 
@@ -2944,7 +3246,7 @@ controlar la visibilidad de las líneas divisorias:
 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)
+\once \override Score.BarLine.break-visibility = #'#(#f #t #t)
 \break
 f4 g a b
 f4 g a b
@@ -2967,6 +3269,7 @@ imprimirlas y all-invisible para suprimirlas.
 @item OctavateEight: véase más abajo
 @end itemize
 
+
 @node Consideraciones especiales
 @unnumberedsubsubsec Consideraciones especiales
 @translationof Special considerations
@@ -2990,7 +3293,7 @@ bemol mayor es visible incluso con @code{all-invisible} establecido.
 \key g \major
 f4 g a b
 % Try to remove all key signatures
-\override Staff.KeySignature #'break-visibility = #all-invisible
+\override Staff.KeySignature.break-visibility = #all-invisible
 \key bes \major
 f4 g a b
 \break
@@ -3018,7 +3321,7 @@ objeto correspondiente.
 \key g \major
 f4 g a b
 \set Staff.explicitKeySignatureVisibility = #all-invisible
-\override Staff.KeySignature #'break-visibility = #all-invisible
+\override Staff.KeySignature.break-visibility = #all-invisible
 \key bes \major
 f4 g a b \break
 f4 g a b
@@ -3036,7 +3339,7 @@ cambio de tonalidad explícito, establezca la propiedad
 f4 g a b
 \set Staff.explicitKeySignatureVisibility = #all-invisible
 \set Staff.printKeyCancellation = ##f
-\override Staff.KeySignature #'break-visibility = #all-invisible
+\override Staff.KeySignature.break-visibility = #all-invisible
 \key bes \major
 f4 g a b \break
 f4 g a b
@@ -3084,7 +3387,6 @@ 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.
 
-
 @seealso
 Manual de aprendizaje:
 @rlearning{Visibilidad y color de los objetos}
@@ -3111,13 +3413,13 @@ cómo aplicarles ajustes finos.
 
 @lilypond[relative=2,ragged-right,verbatim,quote]
 d2 \glissando d'2
-\once \override Glissando #'style = #'dashed-line
+\once \override Glissando.style = #'dashed-line
 d,2 \glissando d'2
-\override Glissando #'style = #'dotted-line
+\override Glissando.style = #'dotted-line
 d,2 \glissando d'2
-\override Glissando #'style = #'zigzag
+\override Glissando.style = #'zigzag
 d,2 \glissando d'2
-\override Glissando #'style = #'trill
+\override Glissando.style = #'trill
 d,2 \glissando d'2
 @end lilypond
 
@@ -3128,7 +3430,7 @@ posible sobreescribirlos:
 @c TODO Complete
 @lilypond[relative=2,ragged-right,verbatim,quote]
 e2 \glissando f
-\once \override Glissando #'(bound-details right Y) = #-2
+\once \override Glissando.bound-details.right.Y = #-2
 e2 \glissando f
 @end lilypond
 
@@ -3184,10 +3486,11 @@ serlo:
 
 @lilypond[quote,verbatim,relative=1]
 g4\< e' d' f\!
-\override Hairpin #'rotation = #'(20 -1 0)
+\override Hairpin.rotation = #'(20 -1 0)
 g,,4\< e' d' f\!
 @end lilypond
 
+
 @node Rotación de elementos de marcado
 @unnumberedsubsubsec Rotación de elementos de marcado
 @translationof Rotating markup
@@ -3203,13 +3506,14 @@ propiedad @code{outside-staff-priority} del texto se establece a
 que empuja al texto a una posición muy alta.
 
 @lilypond[quote,verbatim,relative=1]
-\override TextScript #'outside-staff-priority = ##f
+\override TextScript.outside-staff-priority = ##f
 g4^\markup { \rotate #30 "a G" }
 b^\markup { \rotate #30 "a B" }
 des^\markup { \rotate #30 "a D-Flat" }
 fis^\markup { \rotate #30 "an F-Sharp" }
 @end lilypond
 
+
 @node Trucos avanzados
 @section Trucos avanzados
 @translationof Advanced tweaks
@@ -3222,9 +3526,9 @@ 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::
+* Contenedores unpure-pure::
 @end menu
 
-
 @seealso
 Manual de aprendizaje:
 @rlearning{Trucar la salida},
@@ -3234,6 +3538,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}.
@@ -3241,9 +3547,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}.
 
@@ -3297,7 +3600,10 @@ propiedades especiales que se encuentran en
 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
@@ -3307,6 +3613,7 @@ 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
@@ -3319,17 +3626,18 @@ 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
+-\tweak X-offset #0
+-\tweak Y-offset #0
 -3
 a
--\tweak #'X-offset #-1
--\tweak #'Y-offset #1
+-\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
@@ -3372,6 +3680,7 @@ situar el objeto encima o debajo del padre de acuerdo con el valor de
 
 @c TODO Add examples
 
+
 @node Uso del self-alignment-interface
 @unnumberedsubsubsec Uso del @code{self-alignment-interface}
 @translationof Using the self-alignment-interface
@@ -3401,13 +3710,13 @@ sola nota:
 
 @lilypond[quote,verbatim,relative=1]
 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
 
@@ -3440,9 +3749,9 @@ se acerque a la cabeza de la nota.
 
 @lilypond[quote,verbatim,relative=2]
 a
--\tweak #'self-alignment-X #0.5  % move horizontally left
--\tweak #'Y-offset #ly:self-alignment-interface::y-aligned-on-self
--\tweak #'self-alignment-Y #-1  % move vertically up
+-\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
 
@@ -3494,20 +3803,20 @@ se centran horizontalmente sobre el objeto:
 
 @lilypond[verbatim,quote,relative=1]
 % The rehearsal mark will be centered above the Clef
-\override Score.RehearsalMark #'break-align-symbols = #'(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)
+\override Score.RehearsalMark.break-align-symbols = #'(time-signature)
 \key a \major
 \clef treble
 \time 3/4
 \mark "↓"
 e2.
 % 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
@@ -3527,14 +3836,14 @@ 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)
+\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
 \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 "↓"
@@ -3542,7 +3851,7 @@ 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 "↓"
@@ -3556,19 +3865,19 @@ los pentagramas.
 
 @lilypond[verbatim,quote,relative=1]
 % The RehearsalMark will be centered above the Key Signature
-\override Score.RehearsalMark #'break-align-symbols = #'(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
+\once \override Score.KeySignature.break-align-anchor-alignment = #LEFT
 \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
+\once \override Score.KeySignature.break-align-anchor-alignment = #RIGHT
 \key a \major
 \mark "↓"
 e1
@@ -3581,14 +3890,14 @@ pentagrama:
 @lilypond[verbatim,quote,relative=1]
 % 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
 % 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
@@ -3641,8 +3950,8 @@ 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"
@@ -3660,7 +3969,6 @@ a la instrucción de marcado @code{\musicglyph}: véase @ref{La tipografía Feta
 
 @c TODO Add inserting Postscript or ref to later
 
-
 @seealso
 Referencia de la notación:
 @ref{Notación gráfica dentro de elementos de marcado},
@@ -3677,6 +3985,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
@@ -3743,8 +4052,7 @@ de unión.
 @lilypond[verbatim,quote,relative=1]
 <<
   {
-    \once \override Tie
-      #'control-points = #'((1 . -1) (3 . 0.6) (12.5 . 0.6) (14.5 . -1))
+    \once \override Tie.control-points = #'((1 . -1) (3 . 0.6) (12.5 . 0.6) (14.5 . -1))
      e1 ~ e
   }
 \\
@@ -3764,6 +4072,117 @@ inicio y la dirección según se requiera.
 Referencia de funcionamiento interno:
 @rinternals{TieColumn}.
 
+@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
+
+
+@node Contenedores unpure-pure
+@subsection Contenedores unpure-pure
+@translationof Unpure-pure containers
+
+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.
+
+@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.
+
+@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
@@ -3784,6 +4203,7 @@ de entrada de LilyPond.  Se describen otras funciones más complejas en
 * 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
@@ -3815,8 +4235,9 @@ debe devolver @code{#t}.
 @item @code{@var{@dots{}música@dots{}}}
 @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) para referenciar argumentos (p.ej. @samp{#arg1}).
+(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
@@ -3846,9 +4267,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}.
 
@@ -3878,7 +4297,7 @@ padText =
      (parser location padding)
      (number?)
    #{
-     \once \override TextScript #'padding = #padding
+     \once \override TextScript.padding = #padding
    #})
 
 \relative c''' {
@@ -3893,20 +4312,17 @@ padText =
 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)
      (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 }
@@ -3918,16 +4334,16 @@ Se pueden definir funciones de sustitución con más de un argumento:
 tempoPadded =
 #(define-music-function
      (parser location padding tempotext)
-     (number? string?)
+     (number? markup?)
    #{
-     \once \override Score.MetronomeMark #'padding = #padding
+     \once \override Score.MetronomeMark.padding = #padding
      \tempo \markup { \bold #tempotext }
    #})
 
 \relative c'' {
   \tempo \markup { "Low tempo" }
   c4 d e f g1
-  \tempoPadded #4.0 #"High tempo"
+  \tempoPadded #4.0 "High tempo"
   g4 f e d c1
 }
 @end lilypond