]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/es/notation/changing-defaults.itely
Docs: misspelling of Note_heads_engraver in the text
[lilypond.git] / Documentation / es / notation / changing-defaults.itely
index 4e229719e47b7dc035334fc51ec68b707abf3b25..f6c560a7a94b89e72e762ccb54c5155a2e894bb7 100644 (file)
@@ -1,14 +1,14 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 
 @ignore
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 
 @ignore
-Translation of GIT committish: e90fa9a8a1d71251a2c047e69798be05938a1241
+Translation of GIT committish: 7ba0a22641cb0c7f5949d66a06d1e2e1fd0b3033
 
     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
 
 
     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.12.0"
+@c \version "2.13.42"
 
 @node Cambiar los valores por omisión
 @chapter Cambiar los valores por omisión
 
 @node Cambiar los valores por omisión
 @chapter Cambiar los valores por omisión
@@ -41,9 +41,9 @@ 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
 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 @code{.ly} con
-el símbolo de cuadradillo @code{#}.@footnote{@rextend{Tutorial de
-Scheme} contiene un breve tutorial sobre la introducción de números,
+elementos de Scheme se inauguran dentro de un archivo @file{.ly} con
+el símbolo de cuadradillo @code{#}.@footnote{@rextend{Tutorial de Scheme}
+contiene un breve tutorial sobre la introducción de números,
 listas, cadenas y símbolos en Scheme.}
 
 @menu
 listas, cadenas y símbolos en Scheme.}
 
 @menu
@@ -78,8 +78,8 @@ Manual de aprendizaje:
 @rlearning{Contextos y grabadores}.
 
 Archivos de inicio:
 @rlearning{Contextos y grabadores}.
 
 Archivos de inicio:
-@file{ly/@/engraver@/-init@/.ly},
-@file{ly/@/performer@/-init@/.ly}.
+@file{ly/engraver-init.ly},
+@file{ly/performer-init.ly}.
 
 Fragmentos de código:
 @rlsr{Contexts and engravers}.
 
 Fragmentos de código:
 @rlsr{Contexts and engravers}.
@@ -97,7 +97,7 @@ Los contextos se disponen de forma jerárquica:
 
 @menu
 * Score. El contexto maestro::
 
 @menu
 * Score. El contexto maestro::
-* Contextos del nivel superior.  Contenedores de pentagramas::
+* Contextos del nivel superior. Contenedores de pentagramas::
 * Contextos de nivel intermedio. Pentagramas::
 * Contextos del nivel más bajo. Voces::
 @end menu
 * Contextos de nivel intermedio. Pentagramas::
 * Contextos del nivel más bajo. Voces::
 @end menu
@@ -114,8 +114,7 @@ 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
 
 Se crea implícitamente una instancia del contexto Score cuando se
 procesa un bloque @code{\score @{@dots{}@}} o @code{\layout
-@{@dots{}@}}, o explícitamente cuando se ejecuta una instrucción
-@code{\new Score}.
+@{@dots{}@}}.
 
 @node Contextos del nivel superior. Contenedores de pentagramas
 @unnumberedsubsubsec Contextos del nivel superior: contenedores de pentagramas
 
 @node Contextos del nivel superior. Contenedores de pentagramas
 @unnumberedsubsubsec Contextos del nivel superior: contenedores de pentagramas
@@ -242,6 +241,8 @@ Tipografía nombres de acordes.
 @subsection Crear contextos
 @translationof Creating contexts
 
 @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.
 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.
@@ -269,7 +270,7 @@ 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}.
 
 pentagramas.  Cada parte que debe ir en su propio pentagrama, va
 precedida de @code{\new Staff}.
 
-@lilypond[quote,verbatim,relative=2,ragged-right,fragment]
+@lilypond[quote,verbatim,relative=2,ragged-right]
 <<
   \new Staff { c4 c }
   \new Staff { d4 d }
 <<
   \new Staff { c4 c }
   \new Staff { d4 d }
@@ -362,8 +363,9 @@ importar qué nombre se le ha dado.
 
 Esta variante se usa con expresiones musicales que se pueden
 interpretar en varios niveles.  Por ejemplo, la instrucción
 
 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}
+@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}
 
 @example
 explícita, normalmente se aplicaría a @code{Voice}
 
 @example
@@ -547,7 +549,7 @@ 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
 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_head_engraver} que crea las cabezas de nota y el contexto
+@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_signature_engraver} que
 crea la indicación de compás.
 
@@ -594,7 +596,7 @@ ejemplo sencillo que suprime los grabadores
 @code{Time_signature_engraver} y @code{Clef_engraver} de un contexto
 @code{Staff}:
 
 @code{Time_signature_engraver} y @code{Clef_engraver} de un contexto
 @code{Staff}:
 
-@lilypond[quote,relative=1,verbatim,fragment]
+@lilypond[quote,relative=1,verbatim]
 <<
   \new Staff {
     f2 g
 <<
   \new Staff {
     f2 g
@@ -628,26 +630,32 @@ compás independiente.
 @cindex polimétricas, partituras
 @cindex compases distintos al mismo tiempo
 
 @cindex polimétricas, partituras
 @cindex compases distintos al mismo tiempo
 
-@lilypond[quote,relative=1,ragged-right,verbatim,fragment]
-\new Score \with {
-  \remove "Timing_translator"
-  \remove "Default_bar_line_engraver"
-} <<
+@lilypond[quote,verbatim]
+\score {
+  <<
+    \new Staff \with {
+      \consists "Timing_translator"
+      \consists "Default_bar_line_engraver"
+    } {
+        \time 3/4
+        c4 c c c c c
+    }
   \new Staff \with {
     \consists "Timing_translator"
     \consists "Default_bar_line_engraver"
   } {
   \new Staff \with {
     \consists "Timing_translator"
     \consists "Default_bar_line_engraver"
   } {
-      \time 3/4
+      \time 2/4
       c4 c c c c c
   }
       c4 c c c c c
   }
-  \new Staff \with {
-    \consists "Timing_translator"
-    \consists "Default_bar_line_engraver"
-  } {
-       \time 2/4
-       c4 c c c c c
-  }
 >>
 >>
+\layout {
+  \context {
+    \Score
+    \remove "Timing_translator"
+    \remove "Default_bar_line_engraver"
+    }
+  }
+}
 @end lilypond
 
 @knownissues
 @end lilypond
 
 @knownissues
@@ -710,16 +718,16 @@ 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.
 
 aplicarlos a una definición de @code{\context} por referencia a dicha
 variable.
 
-La instrucción @code{\RemoveEmptyStaffContext} sobreescribe nuestros
-ajustes en curso para @code{\Staff}.  Si queremos cambiar los valores
-predeterminados para un pentagrama que utilice
-@code{\RemoveEmptyStaffContext}, debe hacerlo después de llamar a
-@code{\RemoveEmptyStaffContext}, o sea
+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
 
 @example
 \layout @{
   \context @{
 
 @example
 \layout @{
   \context @{
-    \RemoveEmptyStaffContext
+    \Staff \RemoveEmptyStaves
 
     \override Stem #'thickness = #4.0
   @}
 
     \override Stem #'thickness = #4.0
   @}
@@ -1010,7 +1018,7 @@ esto suprime un contexto de la lista @qq{accepts}.
 Supongamos que queremos mover la indicación de digitación del
 fragmento siguiente:
 
 Supongamos que queremos mover la indicación de digitación del
 fragmento siguiente:
 
-@lilypond[quote,fragment,relative=2,verbatim]
+@lilypond[quote,relative=2,verbatim]
 c-2
 \stemUp
 f
 c-2
 \stemUp
 f
@@ -1159,7 +1167,7 @@ pueden modificar.
 Hemos estado hablando de @emph{el} objeto @code{Fingering}, pero
 realmente esto no significa mucho.  El archivo de inicialización
 (véase @rlearning{Otras fuentes de información})
 Hemos estado hablando de @emph{el} objeto @code{Fingering}, pero
 realmente esto no significa mucho.  El archivo de inicialización
 (véase @rlearning{Otras fuentes de información})
-@file{scm/@/define@/-grobs@/.scm} muestra el alma del @q{objeto},
+@file{scm/define-grobs.scm} muestra el alma del @q{objeto},
 
 @example
 (Fingering
 
 @example
 (Fingering
@@ -1172,7 +1180,7 @@ realmente esto no significa mucho.  El archivo de inicialización
      (script-priority . 100)
      (stencil . ,ly:text-interface::print)
      (direction . ,ly:script-interface::calc-direction)
      (script-priority . 100)
      (stencil . ,ly:text-interface::print)
      (direction . ,ly:script-interface::calc-direction)
-     (font-encoding . fetaNumber)
+     (font-encoding . fetaText)
      (font-size . -5)          ; don't overlap when next to heads.
      (meta . ((class . Item)
      (interfaces . (finger-interface
      (font-size . -5)          ; don't overlap when next to heads.
      (meta . ((class . Item)
      (interfaces . (finger-interface
@@ -1197,7 +1205,7 @@ definición.
 
 Recordemos que queríamos cambiar la posición del @b{2} en
 
 
 Recordemos que queríamos cambiar la posición del @b{2} en
 
-@lilypond[quote,fragment,relative=2,verbatim]
+@lilypond[quote,relative=2,verbatim]
 c-2
 \stemUp
 f
 c-2
 \stemUp
 f
@@ -1245,7 +1253,7 @@ Al insertar esta instrucción antes de que se haya creado el objeto
 Fingering, es decir, antes del @code{c2}, llegamos al siguiente
 resultado:
 
 Fingering, es decir, antes del @code{c2}, llegamos al siguiente
 resultado:
 
-@lilypond[quote,relative=2,fragment,verbatim]
+@lilypond[quote,relative=2,verbatim]
 \once \override Voice.Fingering #'padding = #3
 c-2
 \stemUp
 \once \override Voice.Fingering #'padding = #3
 c-2
 \stemUp
@@ -1298,6 +1306,7 @@ Preguntas aún sin respuesta
 * La instrucción override::
 * La instrucción tweak::
 * set frente a override::
 * La instrucción override::
 * La instrucción tweak::
 * set frente a override::
+* Modificación de las listas-A::
 @end menu
 
 
 @end menu
 
 
@@ -1351,7 +1360,7 @@ 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:
 
 pentagrama actual.  Otros pentagramas mantienen su aspecto normal.
 Aquí vemos la instrucción en pleno funcionamiento:
 
-@lilypond[quote,verbatim,relative=2,fragment]
+@lilypond[quote,verbatim,relative=2]
 c4
 \override Staff.Stem #'thickness = #4.0
 c4
 c4
 \override Staff.Stem #'thickness = #4.0
 c4
@@ -1368,7 +1377,7 @@ 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.
 
 @code{Voice}.  Al añadir @code{\once} se aplica el cambio durante un
 solo paso de tiempo.
 
-@lilypond[quote,fragment,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
 c4
 \once \override Stem #'thickness = #4.0
 c4
 c4
 \once \override Stem #'thickness = #4.0
 c4
@@ -1380,10 +1389,10 @@ 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:
 
 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,fragment,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
 \override Slur #'thickness = #3.0
 c8[( c
 \override Slur #'thickness = #3.0
 c8[( c
-\override Beam #'thickness = #0.6
+\override Beam #'beam-thickness = #0.6
 c8 c])
 @end lilypond
 
 c8 c])
 @end lilypond
 
@@ -1472,7 +1481,7 @@ 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):
 
 si el valor de la propiedad de contexto @code{skipBars} se establece a
 @code{#t} (verdadero):
 
-@lilypond[quote,verbatim,relative=2,fragment]
+@lilypond[quote,verbatim,relative=2]
 R1*2
 \set Score.skipBars = ##t
 R1*2
 R1*2
 \set Score.skipBars = ##t
 R1*2
@@ -1482,7 +1491,7 @@ 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:
 
 contexto actual de nivel más bajo (normalmente @code{ChordNames},
 @code{Voice} o @code{Lyrics}). En este ejemplo:
 
-@lilypond[quote,verbatim,relative=2,fragment]
+@lilypond[quote,verbatim,relative=2]
 \set Score.autoBeaming = ##f
 <<
   {
 \set Score.autoBeaming = ##f
 <<
   {
@@ -1504,7 +1513,7 @@ 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}.
 
 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,fragment]
+@lilypond[quote,verbatim,relative=2]
 R1*2
 \set skipBars = ##t
 R1*2
 R1*2
 \set skipBars = ##t
 R1*2
@@ -1528,7 +1537,7 @@ 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:
 
 @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,fragment]
+@lilypond[quote,verbatim,relative=2]
 \set Score.autoBeaming = ##t
 <<
   {
 \set Score.autoBeaming = ##t
 <<
   {
@@ -1559,7 +1568,7 @@ son equivalentes si el contexto inferior en curso es @code{Voice}.
 Los ajustes que se aplican solamente a un único paso de tiempo se
 pueden escribir con @code{\once}, por ejemplo en
 
 Los ajustes que se aplican solamente a un único paso de tiempo se
 pueden escribir con @code{\once}, por ejemplo en
 
-@lilypond[quote,verbatim,relative=2,fragment]
+@lilypond[quote,verbatim,relative=2]
 c4
 \once \set fontSize = #4.7
 c4
 c4
 \once \set fontSize = #4.7
 c4
@@ -1595,7 +1604,7 @@ 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
 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
+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}.
 
 ver los ajustes de cada descripción de grob.  Las descripciones de
 grob se modifican con @code{\override}.
 
@@ -1627,7 +1636,7 @@ Por ejemplo, podemos aumentar el grosor de la plica de una figura
 sobreescribiendo la propiedad @code{thickness} (grosor) del objeto
 @code{Stem} (plica):
 
 sobreescribiendo la propiedad @code{thickness} (grosor) del objeto
 @code{Stem} (plica):
 
-@lilypond[quote, verbatim, relative=2, fragment]
+@lilypond[quote,verbatim,relative=2]
 c4 c
 \override Voice.Stem #'thickness = #3.0
 c4 c
 c4 c
 \override Voice.Stem #'thickness = #3.0
 c4 c
@@ -1636,7 +1645,7 @@ c4 c
 Si no se ha especificado ningún contexto en la instrucción
 @code{\override}, se utiliza el contexto del nivel inferior:
 
 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, fragment]
+@lilypond[quote,verbatim,relative=2]
 { \override Staff.Stem #'thickness = #3.0
   <<
     {
 { \override Staff.Stem #'thickness = #3.0
   <<
     {
@@ -1657,7 +1666,7 @@ Si no se ha especificado ningún contexto en la instrucción
 El efecto de una instrucción de sobreescritura @code{\override} se
 puede deshacer con @code{\revert}:
 
 El efecto de una instrucción de sobreescritura @code{\override} se
 puede deshacer con @code{\revert}:
 
-@lilypond[quote, verbatim, relative=2, fragment]
+@lilypond[quote,verbatim,relative=2]
 c4
 \override Voice.Stem #'thickness = #3.0
 c4 c
 c4
 \override Voice.Stem #'thickness = #3.0
 c4 c
@@ -1669,7 +1678,7 @@ Los efectos de @code{\override} y @code{\revert} se aplican a todos
 los grobs del contexto afectado partiendo del momento actual y hacia
 adelante:
 
 los grobs del contexto afectado partiendo del momento actual y hacia
 adelante:
 
-@lilypond[quote, verbatim, relative=2, fragment]
+@lilypond[quote,verbatim,relative=2]
 {
   <<
     {
 {
   <<
     {
@@ -1691,7 +1700,7 @@ adelante:
 Se puede usar @code{\once} con @code{\override} para afectar solamente
 al instante de tiempo actual:
 
 Se puede usar @code{\once} con @code{\override} para afectar solamente
 al instante de tiempo actual:
 
-@lilypond[quote, verbatim, relative=2, fragment]
+@lilypond[quote,verbatim,relative=2]
 {
   <<
     {
 {
   <<
     {
@@ -1783,7 +1792,7 @@ 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
 
 elemento de código de la entrada, puede usar la función @code{\tweak},
 por ejemplo
 
-@lilypond[relative=2,verbatim]
+@lilypond[relative=2,verbatim,quote]
 < c
   \tweak #'color #red
   d
 < c
   \tweak #'color #red
   d
@@ -1914,8 +1923,8 @@ f'
 
 El flujo musical que se genera a partir de una sección de un archivo
 de entrada (incluido cualquier elemento insertado automáticamente)
 
 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 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}.
 
 
 puede modificarse por medio de una instrucción @code{\tweak}.
 
 
@@ -1960,6 +1969,130 @@ property (modified with @code{\set}) was created.
 
 @end ignore
 
 
 @end ignore
 
+
+@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:
+
+@example
+'((@var{clave1} . @var{valor1})
+  (@var{clave2} . @var{valor2})
+  (@var{clave3} . @var{valor3})
+  @dots{})
+@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.
+
+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{padding} (relleno), @code{space} (espacio),
+@code{minimum-distance} (distancia mínima) y @code{stretchability}
+(ampliabilidad).  Tres de las cuatro claves tienen valores
+predeterminados en el inicio; éstos se relacionan en la sección
+@qq{Backend} de la Referencia de Funcionamiento Interno
+(véase @rinternals{StaffGrouper}):
+
+@file{scm/define-grobs.scm}:
+
+@example
+'((basic-distance . 9) (minimum-distance . 7) (padding . 1))
+@end example
+
+Una forma de acercar los pentagramas entre sí es reducir el valor de
+la clave @code{space} (@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
+\new PianoStaff <<
+  \new Staff { \clef treble c''1 }
+  \new Staff { \clef bass   c1   }
+>>
+
+% reduced space between staves
+\new PianoStaff \with {
+  % this is the nested declaration
+  \override StaffGrouper #'staff-staff-spacing #'basic-distance = #7
+} <<
+  \new Staff { \clef treble c''1 }
+  \new Staff { \clef bass   c1   }
+>>
+@end lilypond
+
+La utilización de una declaración anidada actualiza la clave
+especificada (como @code{space} en el ejemplo anterior) 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:
+
+@lilypond[quote,verbatim]
+\new PianoStaff \with {
+  \override StaffGrouper #'staff-staff-spacing =
+    #'((padding . 0)
+       (basic-distance . 0)
+       (minimum-distance . 0)
+       (stretchability . 0))
+} <<
+  \new Staff { \clef treble c''1 }
+  \new Staff { \clef bass   c1   }
+>>
+@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{space} si no se fija).  Así, las dos declaraciones siguientes
+son equivalentes:
+
+@example
+\override StaffGrouper #'staff-staff-spacing =
+  #'((basic-distance . 7))
+
+\override StaffGrouper #'staff-staff-spacing =
+  #'((padding . 0)
+     (basic-distance . 7)
+     (minimum-distance . 0)
+     (stretchability . 7))
+@end example
+
+Una consecuencia de esto (posiblemente no intencionada) es la
+eliminación de cualquier valor predeterminado @emph{inicializado} 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 valores
+predeterminados inicializados 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 inddividualmente 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
+propiedades sólo se pueden modificar redefiniéndolas completamente
+como listas-A.}
+
+
 @node Conceptos y propiedades útiles
 @section Conceptos y propiedades útiles
 @translationof Useful concepts and properties
 @node Conceptos y propiedades útiles
 @section Conceptos y propiedades útiles
 @translationof Useful concepts and properties
@@ -2235,8 +2368,8 @@ 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.
 @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{Formateo de
-las páginas}.
+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.
 
 Las distancias escaladas siempre se especifican en unidades de un
 espacio del pentagrama o, más raramente, medio espacio del pentagrama.
@@ -2272,7 +2405,7 @@ Manual de aprendizaje:
 @rlearning{Longitud y grosor de los objetos}.
 
 Referencia de la notación:
 @rlearning{Longitud y grosor de los objetos}.
 
 Referencia de la notación:
-@ref{Formateo de las páginas},
+@ref{Disposición de la página},
 @ref{Establecer el tamaño del pentagrama}.
 
 
 @ref{Establecer el tamaño del pentagrama}.
 
 
@@ -2510,7 +2643,7 @@ 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:
 
 especifican por las sub-listas @code{left-broken} y
 @code{right-broken} de @code{bound-details}.  Por ejemplo:
 
-@lilypond[relative=2,ragged-right,verbatim,fragment]
+@lilypond[relative=2,ragged-right,verbatim,quote]
 \override Glissando #'breakable = ##t
 \override Glissando #'(bound-details right-broken Y) = #-3
 c1 \glissando \break
 \override Glissando #'breakable = ##t
 \override Glissando #'(bound-details right-broken Y) = #-3
 c1 \glissando \break
@@ -2551,7 +2684,7 @@ 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.
 
 usa para escribir @i{cresc.}, @i{tr} y otros textos sobre los objetos
 de extensión horizontales.
 
-@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
+@lilypond[quote,ragged-right,relative=2,verbatim]
 \override TextSpanner #'(bound-details left text)
    = \markup { \small \bold Slower }
 c2\startTextSpan b c a\stopTextSpan
 \override TextSpanner #'(bound-details left text)
    = \markup { \small \bold Slower }
 c2\startTextSpan b c a\stopTextSpan
@@ -2565,7 +2698,7 @@ 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:
 
 @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:
 
-@lilypond[relative=1,fragment,verbatim]
+@lilypond[relative=1,quote,verbatim]
 \override TextSpanner
   #'(bound-details left stencil-align-dir-y) = #-2
 \override TextSpanner
 \override TextSpanner
   #'(bound-details left stencil-align-dir-y) = #-2
 \override TextSpanner
@@ -2601,7 +2734,7 @@ 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.
 
 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,fragment]
+@lilypond[verbatim,quote,ragged-right,relative=2]
 \endSpanners
 c2 \startTextSpan c2 c2
 \endSpanners
 \endSpanners
 c2 \startTextSpan c2 c2
 \endSpanners
@@ -2995,7 +3128,7 @@ 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.
 
 He aquí un ejemplo de los distintos estilos de línea disponibles, y
 cómo aplicarles ajustes finos.
 
-@lilypond[relative=2,ragged-right,verbatim,fragment]
+@lilypond[relative=2,ragged-right,verbatim,quote]
 d2 \glissando d'2
 \once \override Glissando #'style = #'dashed-line
 d,2 \glissando d'2
 d2 \glissando d'2
 \once \override Glissando #'style = #'dashed-line
 d,2 \glissando d'2
@@ -3011,7 +3144,8 @@ Las posiciones de los puntos extremos del objeto de extensión se
 computan al vuelo para cada uno de los objetos gráficos, pero es
 posible sobreescribirlos:
 
 computan al vuelo para cada uno de los objetos gráficos, pero es
 posible sobreescribirlos:
 
-@lilypond[relative=2,ragged-right,verbatim,fragment]
+@c TODO Complete
+@lilypond[relative=2,ragged-right,verbatim,quote]
 e2 \glissando f
 \once \override Glissando #'(bound-details right Y) = #-2
 e2 \glissando f
 e2 \glissando f
 \once \override Glissando #'(bound-details right Y) = #-2
 e2 \glissando f
@@ -3121,13 +3255,13 @@ Referencia de la notación:
 
 
 Archivos de inicio:
 
 
 Archivos de inicio:
-@file{scm/@/define@/-grobs@/.scm}.
+@file{scm/define-grobs.scm}.
 
 Fragmentos de código:
 @rlsr{Tweaks and overrides}.
 
 Extender:
 
 Fragmentos de código:
 @rlsr{Tweaks and overrides}.
 
 Extender:
-@rextend{Interfaces for programmers}.
+@rextend{Interfaces para programadores}.
 
 Referencia de funcionamiento interno:
 @rinternals{All layout objects}.
 
 Referencia de funcionamiento interno:
 @rinternals{All layout objects}.
@@ -3155,18 +3289,21 @@ 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
 
 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
+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
 del punto de referencia del objeto padre, y el valor de
 @code{Y-offset} da el desplazamiento a partir de la línea central del
 pentagrama.  Los valores de @code{X-offset} y @code{Y-offset} se
 pueden establecer directamente o se puede dejar que se calculen por
 parte de procedimientos para conseguir una alineación con el objeto
-padre de distintas maneras.
+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
 
 @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}.}
+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}.}
 
 Por ejemplo, una alteración accidental se puede reposicionar
 verticalmente estableciendo @code{Y-offset} pero los cambios a
 
 Por ejemplo, una alteración accidental se puede reposicionar
 verticalmente estableciendo @code{Y-offset} pero los cambios a
@@ -3178,16 +3315,20 @@ propiedades especiales que se encuentran en
 @code{break-aligned-interface} para el posicionamiento de las letras
 de ensayo sobre dichos objetos.
 
 @code{break-aligned-interface} para el posicionamiento de las letras
 de ensayo sobre dichos objetos.
 
+@seealso
+@ref{Uso del break-alignable-interface},
+@rextend{Funciones de callback}.
+
 @menu
 @menu
-* Establecer directamente @code{X-offset} y @code{Y-offset}::
-* Uso del @code{side-position-interface}::
-* Uso del @code{self-alignment-interface}::
-* Uso del @code{break-alignable-interface}::
+* Establecer directamente X-offset e Y-offset::
+* Uso del side-position-interface::
+* Uso del self-alignment-interface::
+* Uso del break-alignable-interface::
 @end menu
 
 @end menu
 
-@node Establecer directamente @code{X-offset} y @code{Y-offset}
+@node Establecer directamente X-offset e Y-offset
 @unnumberedsubsubsec Establecer directamente @code{X-offset} y @code{Y-offset}
 @unnumberedsubsubsec Establecer directamente @code{X-offset} y @code{Y-offset}
-@translationof Setting @code{X-offset} and @code{Y-offset} directly
+@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
 
 Se pueden dar valores numéricos a las propiedades @code{X-offset} y
 @code{Y-offset} de muchos objetos.  El ejemplo siguiente muestra tres
@@ -3208,9 +3349,9 @@ a
 
 @c TODO write more
 
 
 @c TODO write more
 
-@node Uso del @code{side-position-interface}
+@node Uso del side-position-interface
 @unnumberedsubsubsec Uso del @code{side-position-interface}
 @unnumberedsubsubsec Uso del @code{side-position-interface}
-@translationof Using the @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
 
 Un objeto que contempla el @code{side-position-interface} se puede
 colocar junto a su objeto padre de forma que los bordes especificados
@@ -3250,9 +3391,9 @@ situar el objeto encima o debajo del padre de acuerdo con el valor de
 
 @c TODO Add examples
 
 
 @c TODO Add examples
 
-@node Uso del @code{self-alignment-interface}
+@node Uso del self-alignment-interface
 @unnumberedsubsubsec Uso del @code{self-alignment-interface}
 @unnumberedsubsubsec Uso del @code{self-alignment-interface}
-@translationof Using the @code{self-alignment-interface}
+@translationof Using the self-alignment-interface
 
 @emph{Auto-alineación horizontal de los objetos}
 
 
 @emph{Auto-alineación horizontal de los objetos}
 
@@ -3353,9 +3494,9 @@ example shows the difference:
 @c TODO The align-interface, BassFigureAlignment and VerticalAlignment
 
 
 @c TODO The align-interface, BassFigureAlignment and VerticalAlignment
 
 
-@node Uso del @code{break-alignable-interface}
+@node Uso del break-alignable-interface
 @unnumberedsubsubsec Uso del @code{break-alignable-interface}
 @unnumberedsubsubsec Uso del @code{break-alignable-interface}
-@translationof Using the @code{break-alignable-interface}
+@translationof Using the break-alignable-interface
 
 @cindex alineación a objetos
 @cindex break-align-symbols
 
 @cindex alineación a objetos
 @cindex break-align-symbols
@@ -3370,20 +3511,27 @@ De forma predeterminada, las letras de ensayo y los números de compás
 se centran horizontalmente sobre el objeto:
 
 @lilypond[verbatim,quote,relative=1]
 se centran horizontalmente sobre el objeto:
 
 @lilypond[verbatim,quote,relative=1]
-e1
-% the RehearsalMark will be centered above the Clef
+% The rehearsal mark will be centered above the Clef
 \override Score.RehearsalMark #'break-align-symbols = #'(clef)
 \key a \major
 \clef treble
 \mark "↓"
 \override Score.RehearsalMark #'break-align-symbols = #'(clef)
 \key a \major
 \clef treble
 \mark "↓"
-e
-% the RehearsalMark will be centered above the TimeSignature
+e1
+% The rehearsal mark will be centered above the Time Signature
 \override Score.RehearsalMark #'break-align-symbols = #'(time-signature)
 \key a \major
 \clef treble
 \time 3/4
 \mark "↓"
 e2.
 \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)
+\key a \major
+\clef treble
+\time 4/4
+e1
+\breathe
+\mark "↓"
 @end lilypond
 
 Se puede especificar una lista de posibles objetos para la alineación.
 @end lilypond
 
 Se puede especificar una lista de posibles objetos para la alineación.
@@ -3396,20 +3544,27 @@ 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]
 con el punto en el que se encontraría la línea divisoria.
 
 @lilypond[verbatim,quote,relative=1]
-e1
-% the RehearsalMark will be centered above the Key Signature
+% The rehearsal mark will be centered above the Key Signature
 \override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
 \key a \major
 \clef treble
 \mark "↓"
 \override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
 \key a \major
 \clef treble
 \mark "↓"
-e
-% the RehearsalMark will be centered above the Clef
+e1
+% The rehearsal mark will be centered above the Clef
 \set Staff.explicitKeySignatureVisibility = #all-invisible
 \override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
 \set Staff.explicitKeySignatureVisibility = #all-invisible
 \override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
-\key a \minor
+\key a \major
 \clef bass
 \mark "↓"
 \clef bass
 \mark "↓"
-e,
+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)
+\key a \major
+\clef treble
+\mark "↓"
+e''1
 @end lilypond
 
 La alineación de la letra de ensayo con relación al objeto de notación
 @end lilypond
 
 La alineación de la letra de ensayo con relación al objeto de notación
@@ -3418,23 +3573,23 @@ partitura con varios pentagramas, este ajuste se debe hacer para todos
 los pentagramas.
 
 @lilypond[verbatim,quote,relative=1]
 los pentagramas.
 
 @lilypond[verbatim,quote,relative=1]
-% The RehearsalMark will be centered above the KeySignature
+% The RehearsalMark will be centered above the Key Signature
 \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
 \key a \major
 \clef treble
 \time 4/4
 \mark "↓"
 e1
 \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
 \key a \major
 \clef treble
 \time 4/4
 \mark "↓"
 e1
-% The RehearsalMark will be aligned with the left edge of the KeySignature
+% The RehearsalMark will be aligned with the left edge of the Key Signature
 \once \override Score.KeySignature #'break-align-anchor-alignment = #LEFT
 \mark "↓"
 \key a \major
 \once \override Score.KeySignature #'break-align-anchor-alignment = #LEFT
 \mark "↓"
 \key a \major
-e
-% The RehearsalMark will be aligned with the right edge of the KeySignature
+e1
+% The RehearsalMark will be aligned with the right edge of the Key Signature
 \once \override Score.KeySignature #'break-align-anchor-alignment = #RIGHT
 \key a \major
 \mark "↓"
 \once \override Score.KeySignature #'break-align-anchor-alignment = #RIGHT
 \key a \major
 \mark "↓"
-e
+e1
 @end lilypond
 
 La letra de ensayo también se puede desplazar al borde derecho o
 @end lilypond
 
 La letra de ensayo también se puede desplazar al borde derecho o
@@ -3442,19 +3597,19 @@ izquierdo en una medida arbitraria.  Las unidades son espacios de
 pentagrama:
 
 @lilypond[verbatim,quote,relative=1]
 pentagrama:
 
 @lilypond[verbatim,quote,relative=1]
-% The RehearsalMark will be aligned with the left edge of the KeySignature
+% 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
 \key a \major
 \mark "↓"
 % and then shifted right by 3.5 staff-spaces
 \override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
 \once \override Score.KeySignature #'break-align-anchor = #3.5
 \key a \major
 \mark "↓"
-e
-% The RehearsalMark will be aligned with the left edge of the KeySignature
+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
 \key a \major
 \mark "↓"
 % and then shifted left by 2 staff-spaces
 \once \override Score.KeySignature #'break-align-anchor = #-2
 \key a \major
 \mark "↓"
-e
+e1
 @end lilypond
 
 
 @end lilypond
 
 
@@ -3630,15 +3785,14 @@ una en el mismo momento musical, ni siquiera usando la instrucción
 
 Dondequiera que se necesite reutilizar trucos con distintas
 expresiones musicales, con frecuencia conviene hacer que el truco
 
 Dondequiera que se necesite reutilizar trucos con distintas
 expresiones musicales, con frecuencia conviene hacer que el truco
-forme parte de una 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{Music functions}.
+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}.
 
 @menu
 * Sintaxis de las funciones de sustitución::
 
 @menu
 * Sintaxis de las funciones de sustitución::
-* Tipos de argumento comunes::
 * Ejemplos de funciones de sustitución::
 @end menu
 
 * Ejemplos de funciones de sustitución::
 @end menu
 
@@ -3651,77 +3805,69 @@ de LilyPond.  La forma general de estas funciones es
 
 @example
 funcion =
 
 @example
 funcion =
-#(define-music-function (parser location @var{var1} @var{var2}...@var{vari}... )
-                        (@var{tipo-de-var1?} @var{tipo-de-var2?}...@var{tipo-de-vari?}...)
-  #@{
-    @emph{...música...}
-  #@})
+#(define-music-function
+     (parser location @var{arg1} @var{arg2} @dots{})
+     (@var{type1?} @var{type2?} @dots{})
+   #@{
+     @var{@dots{}música@dots{}}
+   #@})
 @end example
 
 @noindent
 donde
 
 @multitable @columnfractions .33 .66
 @end example
 
 @noindent
 donde
 
 @multitable @columnfractions .33 .66
-@item @var{vari}         @tab @var{i}-ésima variable
-@item @var{tipo-de-vari?}   @tab tipo de la variable  @var{i}-ésima
-@item @var{...música...}  @tab entrada de LilyPond normal, que utiliza variables como @code{#$var1}, etc.
-@end multitable
+@item @code{@var{argN}}
+@tab @var{n}-ésimo argumento
 
 
-Los tipos de variable comunes se describen en @ref{Tipos de argumento
-comunes}.  Hay una descripción más completa de los tipos de variable
-en @rextend{Music function syntax}.  La lista completa de los tipos de
-variable definidos está en el elemento @var{type-p-name-alist} de
-@file{scm/lily.scm}.
+@item @code{@var{typeN?}}
+@tab @emph{predicado de tipo} de Scheme para el que @code{@var{argN}}
+debe devolver @code{#t}.
 
 
-@c TODO -- find an automatic way of documenting the type-p-name-alist
+@item @code{@var{@dots{}música@dots{}}}
+@tab entrada de LilyPond normal, que utiliza @code{$} 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
 
 
 Los argumentos @code{parser} y @code{location} son necesarios, y se
 utilizan en algunas situaciones avanzadas como se encuentra descrito
-en @rextend{Music function syntax}.  Para las funciones de
-sustitución, tan sólo hemos de asegurarnos de incluirlos.
-
-@seealso
+en @rextend{Sintaxis de las funciones musicales}.  Para las funciones
+de sustitución, tan sólo hemos de asegurarnos de incluirlos.
 
 
-Referencia de la notación:
-@ref{Tipos de argumento comunes}.
-
-Expansión de LilyPond:
-@rextend{Music function syntax}.
+También 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:
 
 
-@node Tipos de argumento comunes
-@subsection Tipos de argumento comunes
-@translationof Common argument types
-
-Para hacer posible la comprobación de errores, se debe definir el tipo
-de cada argumento que se pasa a una función musical.  Algunos de los
-tipos de variable comunes están relacionados en la tabla que aparece
-más abajo.
+@example
+boolean?
+cheap-list?  @emph{(utilizar en lugar de }@q{list?}@emph{ para un procesado más rápido)}
+ly:music?
+markup?
+number?
+pair?
+string?
+symbol?
+@end example
 
 
-Los siguientes tipos de entrada se pueden utilizar como variables
-dentro de una función musical.  La lista no es exhaustiva; hay más
-información sobre los posibles tipos de variable en
-@rextendnamed{Music function syntax,Sintaxis de las funciones
-musicales}.
+@noindent
+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.
 
 
-@multitable @columnfractions .33 .66
-@headitem Tipo de entrada       @tab notación de @var{tipo-de-vari?}
-@item Entero                    @tab @code{integer?}
-@item Flotante (número decimal) @tab @code{number?}
-@item Cadena de caracteres      @tab @code{string?}
-@item Marcado                   @tab @code{markup?}
-@item Expresión musical         @tab @code{ly:music?}
-@item Dupla de Scheme           @tab @code{pair?}
-@end multitable
 
 @seealso
 
 
 @seealso
 
+Referencia de la notación:
+@ref{Predicados de tipo predefinidos}.
+
 Expansión de LilyPond:
 Expansión de LilyPond:
-@rextend {Music function syntax}.
+@rextend{Sintaxis de las funciones musicales}.
 
 Archivos instalados:
 @file{lily/music-scheme.cc},
 
 Archivos instalados:
 @file{lily/music-scheme.cc},
-@file{scm/c++.scm}.
+@file{scm/c++.scm},
+@file{scm/lily.scm}.
 
 
 @node Ejemplos de funciones de sustitución
 
 
 @node Ejemplos de funciones de sustitución
@@ -3736,10 +3882,13 @@ 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]
 del relleno de un elemento de inscripción de texto TextScript:
 
 @lilypond[quote,verbatim,ragged-right]
-padText = #(define-music-function (parser location padding) (number?)
-  #{
-    \once \override TextScript #'padding = #$padding
-  #})
+padText =
+#(define-music-function
+     (parser location padding)
+     (number?)
+   #{
+     \once \override TextScript #'padding = $padding
+   #})
 
 \relative c''' {
   c4^"piu mosso" b a b
 
 \relative c''' {
   c4^"piu mosso" b a b
@@ -3754,29 +3903,33 @@ Además de números, podemos usar expresiones musicales, como notas,
 para los argumentos de las funciones musicales:
 
 @lilypond[quote,verbatim,ragged-right]
 para los argumentos de las funciones musicales:
 
 @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
-  #})
+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
+   #})
 
 
-{ c' d' e' f' \custosNote g' }
+\relative c' { c4 d e f \custosNote g }
 @end lilypond
 
 @end lilypond
 
-Se pueden definir funciones de sustitución con varios argumentos:
+Se pueden definir funciones de sustitución con más de un argumento:
 
 @lilypond[quote,verbatim,ragged-right]
 
 @lilypond[quote,verbatim,ragged-right]
-tempoPadded = #(define-music-function (parser location padding tempotext)
-  (number? string?)
-#{
-  \once \override Score.MetronomeMark #'padding = $padding
-  \tempo \markup { \bold $tempotext }
-#})
+tempoPadded =
+#(define-music-function
+     (parser location padding tempotext)
+     (number? string?)
+   #{
+     \once \override Score.MetronomeMark #'padding = $padding
+     \tempo \markup { \bold $tempotext }
+   #})
 
 \relative c'' {
   \tempo \markup { "Low tempo" }
 
 \relative c'' {
   \tempo \markup { "Low tempo" }