]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge branch 'master' into lilypond/translation
authorFrancisco Vila <francisco.vila@hispalinux.es>
Fri, 5 Mar 2010 12:20:06 +0000 (13:20 +0100)
committerFrancisco Vila <francisco.vila@hispalinux.es>
Fri, 5 Mar 2010 12:20:06 +0000 (13:20 +0100)
26 files changed:
Documentation/es/changes.tely
Documentation/es/essay.tely
Documentation/es/essay/engraving.itely
Documentation/es/extending.tely
Documentation/es/extending/programming-interface.itely
Documentation/es/extending/scheme-tutorial.itely
Documentation/es/included/generating-output.itexi
Documentation/es/learning.tely
Documentation/es/learning/introduction.itely [deleted file]
Documentation/es/learning/tutorial.itely
Documentation/es/learning/tweaks.itely
Documentation/es/learning/working.itely [deleted file]
Documentation/es/notation.tely
Documentation/es/notation/fretted-strings.itely
Documentation/es/notation/pitches.itely
Documentation/es/notation/rhythms.itely
Documentation/es/usage.tely
Documentation/es/usage/external.itely
Documentation/es/usage/running.itely
Documentation/es/web.texi
Documentation/es/web/introduction.itexi
Documentation/es/web/news-front.itexi
Documentation/es/web/news.itexi
Documentation/fr/notation/input.itely
Documentation/hu/usage/updating.itely [new file with mode: 0644]
Documentation/po/hu.po

index 7bf42bc15e6a0a3bd12ae06584b2a5b1057f01fe..35b2a9cf53253bbb2b8548340d80b0da94d2779d 100644 (file)
@@ -1,6 +1,6 @@
 \input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 89d34c60267f06f630d11e540eb4681748aa540f
+    Translation of GIT committish: e18567dccce0f16b680e6b7e562329e5f8bcae59
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -50,8 +50,7 @@ Este documento está disponible también en formato
 de LilyPond}.
 @end ifhtml
 
-
-
+@allowcodebreaks false
 
 @itemize @bullet
 
index f32b9d80bac87d72bcbc16c1b3fc7967552d740b..7e9c54c9ead3fa88a6924c0a0f838251a90eac0e 100644 (file)
@@ -1,6 +1,6 @@
 \input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: 829d4293f61b7583e20ecdd3c427cde11e942fef
+    Translation of GIT committish: e18567dccce0f16b680e6b7e562329e5f8bcae59
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -55,6 +55,8 @@ Copyright @copyright{} 2002--2010 por los autores.
 
 @contents
 
+@allowcodebreaks false
+
 @include essay/engraving.itely
 @include essay/literature.itely
 
index e161b7a09b25e94d6bcdb1d4484ae7f2a353be31..3bdf602baf654ae352dd2ac3073710dbf12affad 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 
 @ignore
-    Translation of GIT committish: c1eb9d63bb22ba4a9243942599f68768f5631e34
+    Translation of GIT committish: fda031b689de1614e45d6f647f5ffb85e91fca8c
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
 @chapter Grabado musical
 @translationof Music engraving
 
-Esta sección describe las metas generales y la arquitectura de
-LilyPond.
+Este ensayo describe porqué se creó LilyPond
+y cómo puede producir partituras musicales tan bellas.
 
 @c TODO:
 @c remove 3mm eps bounding box left padding for Sarabande (This will
 @c     require adding a new snippet option to lilypond-book.py
 @c check formatting of HTML output
-@c
 
 @c Notes:
 @c Incorrect beaming in the Sarabande is a known bug.
@@ -40,12 +39,11 @@ LilyPond.
 @unnumberedsec Historia de LilyPond
 @translationof The LilyPond story
 
-Antes de que LilyPond tuviera una comunidad de usuarios a lo largo y
-ancho del mundo, antes de que se hubiera utilizado para producir
-apuntes de cursos universitarios o partituras de estrenos mundiales de
-óperas, antes de que existiera un ensayo sobre grabado musical o
-cualquier código de programa o incluso algún equipo organizado de
-desarrolladores, LilyPond comenzó con esta pregunta:
+Mucho antes de que LilyPond se hubiese utilizado para editar preciosas
+partituras de trabajo, antes de que pudiese crear apuntes de cursos
+universitarios o incluso melodías sencillas, antes de que tuviera una
+comunidad de usuarios a lo largo y ancho del mundo o incluso un ensayo
+sobre grabado musical, LilyPond comenzó con esta pregunta:
 
 @quotation
 ¿Por qué casi ninguna de las partituras hechas con ordenador consigue
@@ -65,15 +63,19 @@ La primera es una hermosa partitura grabada a mano en 1950 y la
 segunda es una edición moderna hecha con ordenador.
 
 @ifnottex
+@quotation
 @noindent
 Bärenreiter BA 320, @copyright{}1950:
 
 @sourceimage{baer-suite1-fullpage,,,png}
+@end quotation
 
+@quotation
 @noindent
 Henle núm. 666, @copyright{}2000:
 
 @sourceimage{henle-suite1-fullpage,,,png}
+@end quotation
 @end ifnottex
 
 Aquí, las notas son idénticas, y proceden de la primera suite para
@@ -142,12 +144,12 @@ aspectos que hemos tratado de imitar en LilyPond.
 @noindent
 Bärenreiter BA 320, @copyright{}1950:
 
-@sourceimage{baer-suite1-fullpage,16cm,,}
+@sourceimage{baer-suite1-fullpage-hires,16cm,,}
 @page
 @noindent
 Henle núm. 666, @copyright{}2000:
 @sp 3
-@sourceimage{henle-suite1-fullpage,16cm,,}
+@sourceimage{henle-suite1-fullpage-hires,16cm,,}
 @page
 @end iftex
 
@@ -396,34 +398,11 @@ el contrario, forman conglomerados de notas plica abajo @/ plica
 arriba.  Un grabador maestro ajustaría el espacio según se necesite
 para agradar al ojo.
 
-Otro ejemplo de espaciado óptico es el juego visual entre las barras
-de corchea y semicorchea y las líneas divisorias.  Cuando una plica
-hacia arriba precede a la línea divisoria, se necesita un poco más de
-espacio para evitar la sensación de aglomeración:
-
-@lilypond
-\paper {
-  ragged-right = ##t
-}
-
-\score {
-  {
-    c''8 c'' c'' c'' c'' c'' c'' c'' \break
-    a' a' a' a' a' a' a' a'
-  }
-  \layout {
-    \context {
-      \Staff
-      \remove "Time_signature_engraver"
-      \override NoteSpacing #'stem-spacing-correction = #0.7
-    }
-    \context {
-      \Score
-      \remove "Bar_number_engraver"
-    }
-  }
-}
-@end lilypond
+Los algoritmos de espaciado de LilyPond tienen incluso en cuenta a las
+líneas divisorias que es la razón por la que la última plica dirigida
+hacia arriba en el ejemplo bien espaciado ha recibido un poco más de
+espacio antes de la línea divisoria para evitar que tenga un aspecto
+aglomerado.  Una plica hacia abajo no necesitaría este ajuste.
 
 @node Líneas adicionales
 @unnumberedsubsec Líneas adicionales
@@ -609,8 +588,8 @@ gusta tocar.
 @cindex grabado automatizado
 @cindex automatizado, grabado
 
-Esta sección describe lo que se necesita para crear un software que
-pueda recrear la disposición de las partituras grabadas: un método de
+Aquí describimos lo que se necesita para crear un software que pueda
+recrear la disposición de las partituras grabadas: un método de
 explicar las buenas disposiciones al ordenador, comparaciones
 detalladas con grabados reales, y la flexibilidad suficiente para
 enfrentarse al amplio rango de desafíos que puede presentar la música
@@ -837,7 +816,12 @@ punto de la pieza en que el sujeto vuelve a aparecer en un estrecho a
 tres partes y conduce a la sección conclusiva.  En la versión de
 Finale, hemos resistido la tentación de hacer cualquier ajuste sobre
 la salida predeterminada porque tratamos de mostrar qué cosas hace
-bien cada programa sin ayuda.
+bien cada programa sin ayuda.  Las únicas manipulaciones de
+importancia que hemos hecho ha sido los ajustes del tamaño de la
+página para que se corresponda con este ensayo y forzar que la música
+quepa en dos sistemas para facilitar la comparación.  De forma
+predeterminada, Finale habría compuesto dos sistemas de tres compases
+cada uno y un último sistema de plena anchura con un solo compás.
 
 Muchas de las diferencias entre los dos grabados son visibles en los
 compases 28 al 29, como se muestra aquí con Finale en primer lugar y
@@ -949,16 +933,16 @@ completa que la que Finale le concede.
 @end itemize
 
 Este ejemplo no pretende sugerir que Finale no se pueda usar para
-producir un resultado bello.  Por el contrario, en las manos de un
-usuario hábil puede hacerlo y de hecho lo hace, pero requiere destreza
-y tiempo.  Una de las diferencias fundamentales entre LilyPond y los
-editores de partituras comerciales es que LilyPond aspira a reducir la
-cantidad de intervención humana a un mínimo absoluto, mientras que
-otros paquetes pretenden ofrecer un interfaz atractivo en el que hacer
-este tipo de ediciones.
+producir resultados con calidad de producción.  Por el contrario, en
+las manos de un usuario hábil puede hacerlo y de hecho lo hace, pero
+requiere destreza y tiempo.  Una de las diferencias fundamentales
+entre LilyPond y los editores de partituras comerciales es que
+LilyPond aspira a reducir la cantidad de intervención humana a un
+mínimo absoluto, mientras que otros paquetes pretenden ofrecer un
+interfaz atractivo en el que hacer este tipo de ediciones.
 
-Una omisión particularmente flagrante que hemos encontrado en la
-muestra de Finale es un bemol en el compás 33:
+Una omisión particularmente flagrante que hemos encontrado por parte
+de Finale es un bemol en el compás 33:
 
 @quotation
 @iftex
@@ -972,22 +956,21 @@ muestra de Finale es un bemol en el compás 33:
 @noindent
 El símbolo del bemol es necesario para cancelar el becuadro que está
 en el mismo compás, pero Finale lo omite porque aparece en una voz
-distinta.  El usuario no debe recordar solamente ejecutar un
-complemento o plug-in de barrado y re-espaciar las cabezas y los
-silencios, también tiene que comprobar la coherencia de las
-alteraciones entre las voces si pretende evitar la interrupción de un
+distinta.  De forma que además de ejecutar un complemento de barrado y
+comprobar el espaciado sobre las cabezas de nota y los silencios, el
+usuario también tiene que comprobar las alteraciones entre voces
+cruzadas para cada compás si pretende evitar la interrupción de un
 ensayo a causa de un error en la edición de la partitura.
 
 Si está interesado en examinar estos ejemplos con más detalle, el
-ejemplo de siete compases completo está al final de este ensayo en
-grabados de Finale y de LilyPond junto a otros cuatro grabados
-diferentes publicados.  Un examen detenido revela que hay una cierta
-variación aceptable entre los grabados manuales, pero también que
-LilyPond se compara de forma razonablemente buena con este rango
-aceptable.  Aún existen algunos inconvenientes en la salida de
-LilyPond, por ejemplo, parece ser un tanto agresiva en acortar algunas
-de las plicas, así que aún hay espacio para un desarrollo y ajuste
-fino posteriores.
+ejemplo de siete compases completo está al final de este ensayo junto
+a cuatro ediciones publicadas distintas.  Un examen detenido revela
+que hay una cierta variación aceptable entre los grabados manuales,
+pero también que LilyPond se compara de forma razonablemente buena con
+este rango aceptable.  Aún existen algunos inconvenientes en la salida
+de LilyPond, por ejemplo, parece ser un tanto agresiva en acortar
+algunas de las plicas, así que aún hay lugar para un desarrollo y
+ajuste fino posteriores.
 
 Por supuesto, la tipografía se basa en el juicio humano sobre la
 apariencia, de manera que las personas no se pueden sustituir por
index e12b1fe6be77dd53727b86a99e925918875b39e5..c7edd1d5fe302ec2b3dadf8a32daf5f22c45b374 100644 (file)
@@ -1,6 +1,6 @@
 \input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: 829d4293f61b7583e20ecdd3c427cde11e942fef
+    Translation of GIT committish: e18567dccce0f16b680e6b7e562329e5f8bcae59
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -60,6 +60,7 @@ Apéndices
 
 @contents
 
+@allowcodebreaks false
 
 @include extending/scheme-tutorial.itely
 @include extending/programming-interface.itely
index d175bda285d67905f47a8240bc33f755e6c1023c..5df3e0070f2a01dca8bac6a446585ce921e2759b 100644 (file)
@@ -1,11 +1,10 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
-
+@c This file is part of extending.tely
 @ignore
-    Translation of GIT committish: d4f58bb3ad4e7fe1967a6b48f25e3addffc8aa14
+    Translation of GIT committish: ee7518558c4c46cd59030ca8e343cefe01037a67
 
     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..
+    version that you are working on.  See TRANSLATION for details.
 @end ignore
 
 @c \version "2.12.0"
 
 Se pueden realizar trucos avanzados mediante el uso de Scheme.  Si no
 está familiarizado con Scheme, le conviene leer nuestro tutorial de
-Scheme, @rlearning{Tutorial de Scheme}.
+Scheme, @ref{Tutorial de Scheme}.
+
 
 @menu
 * Funciones musicales::
-* Interfaces para el programador::
-* Interfaz de marcado para el programador::
+* Funciones de marcado::
 * Contextos para programadores::
-* Procedimientos de Scheme como propiedades::
-* Usar código de Scheme en lugar de \tweak::
+* Funciones de callback::
+* Código de Scheme en línea::
 * Trucos difíciles::
 @end menu
 
-
 @node Funciones musicales
 @section Funciones musicales
 @translationof Music functions
 
-Esta sección trata sobre cómo crear funciones musicales dentro de
-LilyPond.
+Las funciones musicales son funciones de Scheme que se utilizan para
+crear automáticamente expresiones musicales.  Se pueden usar para
+simplificar enormemente el archivo de entrada.
 
 @menu
-* Panorámica de las funciones musicales::
+* Sintaxis de las funciones musicales::
 * Funciones de sustitución sencillas::
-* Funciones de sustitutión en parejas::
+* Funciones de sustitución intermedias::
 * Matemáticas dentro de las funciones::
 * Funciones vacías::
 * Funciones sin argumentos::
-* Panorámica de las funciones musicales disponibles::
 @end menu
 
-@node Panorámica de las funciones musicales
-@subsection Panorámica de las funciones musicales
-@translationof Overview of music functions
+@node Sintaxis de las funciones musicales
+@subsection Sintaxis de las funciones musicales
+@translationof Music function syntax
 
-Es fácil hacer una función que sustituya a una variable en código de
-LilyPond.  La forma general de estas funciones es:
+La sintaxis general de una función musical es:
 
 @example
-function =
-#(define-music-function (parser location @var{var1} @var{var2}...@var{vari}... )
-                        (@var{var1-type?} @var{var2-type?}...@var{vari-type?}...)
-  #@{
-    @emph{...música...}
-  #@})
+miFuncion =
+#(define-music-function (parser location @var{var_1} @var{var_2}...@var{var_n})
+                        (@var{var_1-type?} @var{var_2-type?}...@var{var_n-type?})
+    @var{...expresión musical válida...})
 @end example
 
 @noindent
 donde
 
 @multitable @columnfractions .33 .66
-@item @var{vari}         @tab @var{i}-ésima variable
-@item @var{vari-type?}   @tab tipo de la @var{i}-ésima variable
-@item @var{...música...}  @tab entrada normal de LilyPond, usando las variables como @code{#$var1}, etc.
+@item @var{var_i}         @tab @var{i}-ésima variable
+@item @var{var_i-type?}   @tab tipo de la @var{i}-ésima variable
+@item @var{...expresión musical válida...}  @tab expresión que devuelve
+música válida, generalmente en la forma de una expresión de Scheme.
+También hay una sintaxis especial que permite la existencia de código
+de entrada de LilyPond dentro de esta expresión musical.
 @end multitable
 
-Los siguientes tipos de entrada se pueden usar como variables en una
-función musical.  Esta lista no es exhaustiva; consulte otros lugares
-de la documentación específica de Scheme para ver otros tipos de
-variables.
+Los comprobadores de tipo de variable son procedimientos de Scheme que
+devuelven @code{#t} si una variable es de un tipo dado.  Se muestran
+algunos tipos comunes en la tabla de abajo.  Hay más tipos en los
+archivos @file{lily/music-scheme.cc} y @file{scm/c++.scm}.
 
 @multitable @columnfractions .33 .66
-@headitem Tipo de entrada       @tab notación de @var{vari-type?}
-@item Entero                    @tab @code{integer?}
-@item Flotante (número decimal) @tab @code{number?}
-@item Cadena de texto           @tab @code{string?}
-@item Marcado                   @tab @code{markup?}
-@item Expresión musical         @tab @code{ly:music?}
-@item Pareja de variables          @tab @code{pair?}
+@headitem Tipo de entrada          @tab notación de @var{vari-type?}
+@item Entero                  @tab @code{integer?}
+@item Flotante (número decimal)  @tab @code{number?}
+@item Cadena de texto         @tab @code{string?}
+@item Marcado                 @tab @code{markup?}
+@item Expresión musical       @tab @code{ly:music?}
+@item Pareja de variables     @tab @code{pair?}
 @end multitable
 
-Los argumentos @code{parser} y @code{location} son obligatorios, y se
-usan en ciertas situaciones avanzadas.  El argumento @code{parser} se
-usa para tener acceso al valor de otra variable de LilyPond.  El
-argumento @code{location} se usa para establecer el @q{origen} de la
-expresión musical que construye la función musical, de forma que en
-caso de producirse un error de sintaxis LilyPond pueda informar al
-usuario de un lugar adecuado donde buscar en el archivo de entrada.
+Los argumentos @code{parser} y @code{location} son obligatorios.  El
+argumento @code{parser} se usa en el cuerpo de la función para tener
+acceso al valor de otra variable de LilyPond.  El argumento
+@code{location} se usa para establecer el @q{origen} de la expresión
+musical que se construye por parte de la función musical, de forma que
+en caso de un error de sintaxis LilyPond pueda comunicar al usuario el
+lugar adecuado del archivo de entrada en que buscar.
 
 
 @node Funciones de sustitución sencillas
 @subsection Funciones de sustitución sencillas
 @translationof Simple substitution functions
 
-He aquí un ejemplo sencillo:
+Una función de sustitución sencilla es una función musical cuya
+expresión musical de salida está escrita en código de LilyPond, pero
+con una variable de entrada sustituida en el código de LilyPond.  La
+forma general de estas funciones es:
+
+@example
+miFuncion =
+#(define-music-function (parser location @var{var1})
+                        (@var{var1-type?})
+  #@{
+    @emph{... código de entrada de LilyPond con} @code{#$var1} @emph{para sustituir ...}
+  #@})
+@end example
+
+Observe que los caracteres especiales @code{#@{} y @code{#@}}
+encierran la música de LilyPond.
+
+@multitable @columnfractions .33 .66
+@item @var{vari}         @tab @var{i}-ésima variable
+@item @var{vari-type?}   @tab tipo de la @var{i}-ésima variable
+@item @var{...música...}  @tab código de entrada normal de LilyPond, que utiliza variables como @code{#$var1}, etc.
+@end multitable
+
+Por ejemplo, se puede definir una función que simplifique el
+establecimiento de un relleno para un guión de texto TextScript:
 
 @lilypond[quote,verbatim,ragged-right]
 padText = #(define-music-function (parser location padding) (number?)
@@ -116,7 +138,8 @@ padText = #(define-music-function (parser location padding) (number?)
 }
 @end lilypond
 
-También se pueden sustituir las expresiones musicales:
+Además de números, podemos usar expresiones musicales, como por
+ejemplo notas, como argumentos de las funciones musicales:
 
 @lilypond[quote,verbatim,ragged-right]
 custosNote = #(define-music-function (parser location note)
@@ -129,55 +152,42 @@ custosNote = #(define-music-function (parser location note)
     \once \override Voice.Stem #'stencil = ##f
     $note
   #})
-
-{ c' d' e' f' \custosNote g' }
 @end lilypond
 
-Se puede usar más de una variable:
-
-@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 }
-#})
 
-\relative c'' {
-  \tempo \markup { "Low tempo" }
-  c4 d e f g1
-  \tempoPadded #4.0 #"High tempo"
-  g4 f e d c1
-}
-@end lilypond
+@node Funciones de sustitución intermedias
+@subsection Funciones de sustitución intermedias
+@translationof Intermediate substitution functions
 
+Algo más complicadas que las funciones de sustitución sencillas, las
+funciones de sustitución intermedias contienen una mezcla de código de
+Scheme y de LilyPond dentro de la expresión musical que se devuelve.
 
-@node Funciones de sustitutión en parejas
-@subsection Funciones de sustitutión en parejas
-@translationof Paired substitution functions
+Algunas instrucciones @code{\override} requieren un argumento que
+consiste en una pareja de números (llamada una @code{célula cons} en
+Scheme).
 
-Algunas instrucciones @code{\override} requieren un par de números
-(llamados en Scheme una @code{célula cons}).  Para pasar estos números
-a una función, usamos una variable @code{pair?} o bien insertamos el
-@code{cons} en la función musical.
+La pareja se puede pasar directamente dentro de la función musical,
+usando una variable @code{pair?}:
 
 @quotation
 @example
-manualBeam =
-#(define-music-function (parser location beg-end)
+barraManual =
+#(define-music-function (parser location principio-final)
                         (pair?)
 #@{
-  \once \override Beam #'positions = #$beg-end
+  \once \override Beam #'positions = #$principio-final
 #@})
 
 \relative @{
-  \manualBeam #'(3 . 6) c8 d e f
+  \barraManual #'(3 . 6) c8 d e f
 @}
 @end example
 @end quotation
 
-@noindent
-o bien
+De forma alternativa, los números que componen la pareja se pueden
+pasar como argumentos separados, y el código de Scheme que se ha usado
+para crear la pareja se puede incluir dentro de la expresión musical:
 
 @lilypond[quote,verbatim,ragged-right]
 manualBeam =
@@ -250,12 +260,12 @@ musical vacía es el proceso realizado por la función, no la expresión
 musical que se devuelve.
 
 @example
-noPointAndClick =
+noApuntarYPulsar =
 #(define-music-function (parser location) ()
    (ly:set-option 'point-and-click #f)
    (make-music 'SequentialMusic 'void #t))
 ...
-\noPointAndClick   % desactivar la funcionalidad Apuntar y Pulsar.
+\noApuntarYPulsar   % desactivar la funcionalidad Apuntar y Pulsar.
 @end example
 
 
@@ -274,7 +284,7 @@ Sin embargo, en raras ocasiones puede ser de utilidad crear una
 función musical sin argumentos:
 
 @example
-displayBarNum =
+mostrarNumeroDeCompas =
 #(define-music-function (parser location) ()
    (if (eq? #t (ly:get-option 'display-bar-numbers))
        #@{ \once \override Score.BarNumber #'break-visibility = ##f #@}
@@ -289,195 +299,24 @@ lilypond -d display-bar-numbers ARCHIVO.ly
 @end example
 
 
-@node Panorámica de las funciones musicales disponibles
-@subsection Panorámica de las funciones musicales disponibles
-@translationof Overview of available music functions
-
-@c fixme ; this should be move somewhere else?
-Las siguientes instrucciones son funciones musicales:
-
-@include identifiers.tely
-
-
-@node Interfaces para el programador
-@section Interfaces para el programador
-@translationof Programmer interfaces
-
-Esta sección contiene información sobre cómo mezclar LilyPond y
-Scheme.
-
-@menu
-* Variables de entrada y Scheme::
-* Representación interna de la música::
-@end menu
-
-@node Variables de entrada y Scheme
-@subsection Variables de entrada y Scheme
-@translationof Input variables and Scheme
-
-El formato de entrada contempla la noción de variables: en el ejemplo
-siguiente, se asigna una expresión musical a una variable con el
-nombre @code{traLaLa}.
-
-@example
-traLaLa = @{ c'4 d'4 @}
-@end example
-
-@noindent
-
-También existe una forma de ámbito léxico: en el ejemplo siguiente, el
-bloque @code{\layout} también contiene una variable @code{traLaLa},
-que es independiente de la @code{\traLaLa} exterior.
-
-@example
-traLaLa = @{ c'4 d'4 @}
-\layout @{ traLaLa = 1.0 @}
-@end example
-@c
-De hecho, cada archivo de entrada es un ámbito léxico, y todos los
-bloques @code{\header}, @code{\midi} y @code{\layout} son ámbitos
-anidados dentro de dicho ámbito de nivel superior.
-
-Tanto el ámbito léxico como las variables están implementados en el
-sistema de módulos GUILE.  Se adjunta un módulo anónimo de Scheme a
-cada ámbito.  Una asignación de la forma
-@example
-traLaLa = @{ c'4 d'4 @}
-@end example
-
-@noindent
-se convierte internamente a una definición de Scheme
-@example
-(define traLaLa @var{Scheme value of `@code{... }'})
-@end example
-
-Esto supone que las variables de entrada y las variables de Scheme se
-pueden entremezclar con libertad.  En el ejemplo siguiente, se
-almacena un fragmento musical en la variable @code{traLaLa}, y se
-duplica utilizando Scheme.  El resultado se importa en un bloque
-@code{\score} por medio de una segunda variable @code{twice}:
-
-@lilypond[verbatim]
-traLaLa = { c'4 d'4 }
-
-%% dummy action to deal with parser lookahead
-#(display "this needs to be here, sorry!")
-
-#(define newLa (map ly:music-deep-copy
-  (list traLaLa traLaLa)))
-#(define twice
-  (make-sequential-music newLa))
-
-{ \twice }
-@end lilypond
-
-@c Due to parser lookahead
-
-En este ejemplo, la asignación se produce después de que el analizador
-sintáctico ha verificado que no ocurre nada interesante después de
-@code{traLaLa = @{ ... @}}.  Sin el argumento mudo del ejemplo, la
-definición @code{newLa} se ejecuta antes de que se defina
-@code{traLaLa}, conduciendo a un error de sintaxis.
-
-El ejemplo anterior muestra cómo @q{exportar} expresiones musicales
-desde la entrada hasta el intérprete de Scheme.  También es posible lo
-contrario.  Envolviendo un valor de Scheme en la función
-@code{ly:export}, un valor de Scheme se interpreta como si hubiera
-sido introducido en sintaxis de LilyPond.  En vez de definir
-@code{\twice}, el ejemplo anterior podría también haberse escrito como
-
-@example
-...
-@{ #(ly:export (make-sequential-music (list newLa))) @}
-@end example
-
-El código de Scheme se evalúa tan pronto como el analizador sintáctico
-lo encuentra.  Para definir código de Scheme en un macro (para
-llamarlo con posterioridad), use @ref{Funciones vacías}, o bien
-
-@example
-#(define (nopc)
-  (ly:set-option 'point-and-click #f))
-
-...
-#(nopc)
-@{ c'4 @}
-@end example
-
-@knownissues
-
-No es posible mezclar variables de Scheme y de LilyPond con la opción
-@code{--safe}.
-
-
-@node Representación interna de la música
-@subsection Representación interna de la música
-@translationof Internal music representation
-
-Cuando se analiza sintácticamente una expresión musical, se convierte
-en un conjunto de objetos musicales de Scheme.  La propiedad que
-define a un objeto musical es que tiene una cierta duración.  El
-tiempo es un número racional que mide la longitud de un fragmento de
-música en unidades del valor de una redonda.
-
-Un objeto musical tiene tres clases de tipos:
-@itemize
-@item
-nombre musical: cada expresión musical tiene un nombre.  Por ejemplo,
-una nota conduce a un evento @rinternals{NoteEvent}, y
-@code{\simultaneous} conduce a @rinternals{SimultaneousMusic}.  Hay
-una lista de todas las expresiones que están disponibles en el Manual
-de referencia de funcionamiento interno, bajo @rinternals{Music
-expressions}.
-
-@item
-@q{tipo} o interface: cada nombre de música tiene varios @q{tipos} o
-interfaces, por ejemplo una nota es un @code{event}, pero también es
-un @code{note-event}, un @code{rhythmic-event} y un
-@code{melodic-event}.  Todas las clases musicales se encuentran
-relacionadas en la Referencia de funcionamiento interno bajo
-@rinternals{Music classes}.
-
-@item
-Objeto de C++: cada objeto musical está representado por un objeto de
-la clase de C++ @code{Music}.
-@end itemize
+@node Funciones de marcado
+@section Funciones de marcado
+@translationof Markup functions
 
-La información real de una expresión musical se almacena en forma de
-propiedades.  Por ejemplo, un evento @rinternals{NoteEvent} tiene
-propiedades @code{pitch} y @code{duration} que almacenan la altura y
-duración de la nota.  Hay una lista completa de las propiedades que
-están disponibles en la Referencia de funcionamiento interno, bajo
-@rinternals{Music properties}.
+Los elementos de marcado están implementados como funciones de Scheme
+especiales que producen un objeto @code{Stencil} dada una serie de
+argumentos.
 
-Una expresión musical compuesta es un objeto musical que contiene
-otros objetos musicales en sus propiedades.  Se puede almacenar una
-lista de objetos en la propiedad @code{elements} de un objeto musical,
-o un solo objeto musical @q{hijo} en la propiedad @code{element}.  Por
-ejemplo, @rinternals{SequentialMusic} tiene sus hijos en
-@code{elements}, y @rinternals{GraceMusic} tiene su elemento único en
-@code{element}.  El cuerpo de una repetición se almacena en la
-propiedad @code{element} de @rinternals{RepeatedMusic}, y las
-alternativas en @code{elements}.
-
-
-
-@node Interfaz de marcado para el programador
-@section Interfaz de marcado para el programador
-@translationof Markup programmer interface
-
-Los marcados están implementados como funciones de Scheme especiales
-que producen un elemento Stencil (sello) dado un número de argumentos.
 
 @menu
-* Construcción del marcado en Scheme::
-* Cómo funciona internamente el marcado::
+* Construcción de elementos de marcado en Scheme::
+* Cómo funcionan internamente los elementos de marcado::
 * Definición de una instrucción de marcado nueva::
 * Definición de nuevas instrucciones de lista de marcado::
 @end menu
 
-@node Construcción del marcado en Scheme
-@subsection Construcción del marcado en Scheme
+@node Construcción de elementos de marcado en Scheme
+@subsection Construcción de elementos de marcado en Scheme
 @translationof Markup construction in Scheme
 
 @cindex marcado, definir instrucciones de
@@ -521,10 +360,11 @@ Por ejemplo, podemos usar llamadas a funciones dentro de @code{markup}
 para así manipular cadenas de caracteres.  Esto es útil si se están
 definiendo instrucciones de marcado nuevas (véase @ref{Definición de una instrucción de marcado nueva}).
 
+
 @knownissues
 
 El argumento markup-list de instrucciones como @code{#:line},
-@code{#:center} y @code{#:column} no pueden se una variable o el
+@code{#:center} y @code{#:column} no puede ser una variable ni el
 resultado de la llamada a una función.
 
 @lisp
@@ -540,8 +380,8 @@ no es válido.  Hay que usar las funciones @code{make-line-markup},
 @end lisp
 
 
-@node Cómo funciona internamente el marcado
-@subsection Cómo funciona internamente el marcado
+@node Cómo funcionan internamente los elementos de marcado
+@subsection Cómo funcionan internamente los elementos de marcado
 @translationof How markups work internally
 
 En un elemento de marcado como
@@ -580,218 +420,342 @@ resto de la sección podrán verse ejemplos más complejos, así como en
 @subsection Definición de una instrucción de marcado nueva
 @translationof New markup command definition
 
-Las instrucciones de marcado nuevas se pueden definir con el macro de
-Scheme @code{define-markup-command}.
+Esta sección trata sobre la definición de nuevas instrucciones de
+marcado.
+
+
+@menu
+* Sintaxis de la definición de instrucciones de marcado::
+* Acerca de las propiedades::
+* Un ejemplo completo::
+* Adaptación de instrucciones incorporadas::
+@end menu
+
+@node Sintaxis de la definición de instrucciones de marcado
+@unnumberedsubsubsec Sintaxis de la definición de instrucciones de marcado
+@translationof Markup command definition syntax
+
+Se pueden definir instrucciones de marcado nuevas usando el macro de
+Scheme @code{define-markup-command}, en el nivel sintáctico superior.
 
 @lisp
 (define-markup-command (@var{nombre-de-la-instruccion} @var{layout} @var{props} @var{arg1} @var{arg2} ...)
-            (@var{arg1-type?} @var{arg2-type?} ...)
+    (@var{tipo-de-arg1?} @var{tipo-de-arg2?} ...)
+    [ #:properties ((@var{propiedad1} @var{valor-predeterminado1})
+                    ...) ]
   ..command body..)
 @end lisp
 
 Los argumentos son
 
 @table @var
-@item argi
-@var{i}-ésimo argumento de la instrucción
-@item argi-type?
-predicado de tipo para el argumento @var{i}-ésimo
+@item nombre-de-la-instruccion
+nombre de la instrucción de marcado
 @item layout
-la definición de @q{presentación}
+la definición de @q{layout} (disposición).
 @item props
-lista de listas asociativas, que contiene todas las propiedades
+una lista de listas asociativas, que contienen todas las propiedades
 activas.
+@item argi
+argumento @var{i}-ésimo de la instrucción
+@item tipo-de-argi?
+predicado de tipo para el argumento @var{i}-ésimo
 @end table
 
-Como ejemplo sencillo, mostramos cómo añadir una instrucción
-@code{\smallcaps}, que selecciona una tipografía de versalitas.
-Normalmente podríamos seleccionar la tipografía de versalitas,
+Si la instrucción utiliza propiedades de los argumentos @var{props},
+se puede usar la palabra clave @code{#:properties} para especificar
+qué propiedades se usan, y sus valores predeterminados.
 
-@example
-\markup @{ \override #'(font-shape . caps) Texto-en-versalitas @}
-@end example
+@knownissues
+Existen algunas restricciones sobre los argumentos posibles de una
+instrucción de marcado.
 
-@noindent
-Esto selecciona la tipografía de versalitas mediante el
-establecimiento de la propiedad @code{font-shape} a @code{#'caps} para
-la interpretación de @code{Texto-en-versalitas}.
+Los argumentos se distinguen según su tipo:
+@itemize
+@item un marcado, que corresponde al predicado de tipo @code{markup?};
+@item una lista de marcados, que corresponde al predicado de tipo
+@code{markup-list?};
+@item cualquier otro objeto de Scheme, que corresponde a predicados de tipo como
+@code{list?}, @code{number?}, @code{boolean?}, etc.
+@end itemize
 
-Para poner lo anterior disponible como la instrucción
-@code{\smallcaps}, tenemos que definir una función utilizando
-@code{define-markup-command}.  La instrucción ha de tomar un argumento
-del tipo @code{markup}.  Por tanto, el inicio de la definición ha de
-ser
+Actualmente las combinaciones de argumentos que hay disponibles
+(después de los argumentos estándar @var{layout} y @var{props}) para
+una instrucción de marcado definida con @code{define-markup-command}
+se limitan a la siguiente lista:
 
-@example
-(define-markup-command (smallcaps layout props argument) (markup?)
-@end example
+@table @asis
+@item (sin argumentos)
+@itemx @var{markup-list}
+@itemx @var{markup}
+@itemx @var{markup markup}
+@itemx @var{scheme}
+@itemx @var{scheme markup}
+@itemx @var{scheme scheme}
+@itemx @var{scheme scheme markup}
+@itemx @var{scheme scheme markup markup}
+@itemx @var{scheme markup markup}
+@itemx @var{scheme scheme scheme}
+@end table
 
 @noindent
-
-Lo que aparece a continuación es el contenido de la instrucción:
-debemos interpretar el @code{argument} como un marcado, es decir:
+Esto significa que no es posible definir con p.ej. tres argumentos de
+Scheme y un argumento de marcado, como:
 
 @example
-(interpret-markup layout @dots{} argument)
+#(define-markup-command (fulanito layout props
+                         num1    num2    lista  marcado)
+                        (number? number? list?  markup?)
+  ...)
 @end example
 
 @noindent
-Esta interpretación tiene que añadir @code{'(font-shape . caps)} a las
-propiedades activas, por lo que sustituimos lo siguiente por los
-@dots{} en el ejemplo anterior:
+Si la aplicamos como, digamos,
 
 @example
-(cons (list '(font-shape . caps) ) props)
+\markup \fulanito #1 #2 #'(mengano zutano) Loquesea
 @end example
 
+@cindex firma de Scheme
+@cindex Scheme, firma de
 @noindent
-La variable @code{props} es una lista de a-listas, y se lo anteponemos
-haciendo la operación cons de una lista con el ajuste adicional.
+@command{lilypond} protesta diciendo que no puede analizar
+@code{fulanito} debido a su firma de Scheme desconocida.
 
-Supongamos que estamos tipografiando un recitativo de una ópera y nos
-gustaría definir una instrucción que presente los nombres de los
-personajes de una forma personalizada.  Queremos que los nombres se
-impriman con versalitas y se desplacen un poco a la izquierda y hacia
-arriba.  Definimos una instrucción @code{\character} que toma en
-cuenta la traslación necesaria y utiliza la instrucción
-@code{\smallcaps} recién definida:
+
+@node Acerca de las propiedades
+@unnumberedsubsubsec Acerca de las propiedades
+@translationof On properties
+
+Los argumentos @code{layout} y @code{props} de las instrucciones de
+marcado traen a escena un contexto para la interpretación del marcado:
+tamaño de la tipografía, grueso de línea, etc.
+
+El argumento @code{layout} permite el acceso a las propiedades
+definidas en los bloques @code{paper}, usando la función
+@code{ly:output-def-lookup}.  Por ejemplo, el grueso de línea (el
+mismo que el que se usa en las partituras) se lee usando:
 
 @example
-#(define-markup-command (character layout props nombre) (string?)
-  "Imprimir el nombre del personaje en versalitas, desplazado a la izquierda y hacia
-  arriba.  Sintaxis: \\character #\"nombre\""
-  (interpret-markup layout props
-   (markup #:hspace 0 #:translate (cons -3 1) #:smallcaps nombre)))
+(ly:output-def-lookup layout 'line-width)
 @end example
 
-Esta es una complicación que requiere una explicación: los textos por
-encima y por debajo del pentagrama se mueven verticalmente de forma
-que estén a una cierta distancia (la propiedad @code{padding}) del
-pentagrama y de las notas.  Para asegurar que este mecanismo no anula
-el efecto de nuestro @code{#:translate}, añadimos una cadena vacía
-(@code{#:hspace 0}) antes del texto trasladado.  Ahora el
-@code{#:hspace 0} se pone encima de las notas, y el @code{nombre} se
-mueve en relación a dicha cadena vacía.  El efecto neto es que el
-texto se mueve hacia la izquierda y hacia arriba.
+El argumento @code{props} hace accesibles algunas propiedades a las
+instrucciones de marcado.  Por ejemplo, cuando se interpreta el
+marcado del título de un libro, todas las variables definidas dentro
+del bloque @code{\header} se añaden automáticamente a @code{props}, de
+manera que el marcado del título del libro puede acceder al título del
+libro, el autor, etc.  También es una forma de configurar el
+comportamiento de una instrucción de marcado: por ejemplo, cuando una
+instrucción utiliza tamaños de tipografía durante el procesado, el
+tamaño se lee de @code{props} en vez de tener un argumento
+@code{font-size}.  El que llama a una instrucción de marcado puede
+cambiar el valor de la propiedad del tamaño de la tipografía con el
+objeto de modificar el comportamiento.  Utilice la palabra clave
+@code{#:properties} de @code{define-markup-command} para especificar
+qué propiedades se deben leer a partir de los argumentos de
+@code{props}.
+
+El ejemplo de la sección siguiente ilustra cómo acceder y
+sobreescribir las propiedades de una instrucción de marcado.
+
+
+@node Un ejemplo completo
+@unnumberedsubsubsec Un ejemplo completo
+@translationof A complete example
+
+El ejemplo siguiente define una instrucción de marcado para trazar un
+rectángulo doble alrededor de un fragmento de texto.
+
+En primer lugar, necesitamos construir un resultado aproximado
+utilizando marcados.  Una consulta a @ruser{Text markup commands} nos
+muestra que es útil la instrucción @code{\box}:
+
+@lilypond[quote,verbatim,ragged-right]
+\markup \box \box HELLO
+@end lilypond
 
-El resultado final es como sigue:
+Ahora, consideramos que es preferible tener más separación entre el
+texto y los rectángulos.  Según la documentación de @code{\box}, esta
+instrucción usa una propiedad @code{box-padding}, cuyo valor
+predeterminado es 0.2.  La documentación también menciona cómo
+sobreescribir este valor:
+
+@lilypond[quote,verbatim,ragged-right]
+\markup \box \override #'(box-padding . 0.6) \box A
+@end lilypond
+
+Después, el relleno o separación entre los dos rectángulos nos parece
+muy pequeño, así que lo vamos a sobreescribir también:
+
+@lilypond[quote,verbatim,ragged-right]
+\markup \override #'(box-padding . 0.4) \box \override #'(box-padding . 0.6) \box A
+@end lilypond
+
+Repetir esta extensa instrucción de marcado una y otra vez sería un
+quebradero de cabeza.  Aquí es donde se necesita una instrucción de
+marcado.  Así pues, escribimos una instrucción de marcado
+@code{double-box}, que toma un argumento (el texto).  Dibuja los dos
+rectángulos y añade una separación.
+
+@lisp
+#(define-markup-command (double-box layout props text) (markup?)
+  "Trazar un rectángulo doble rodeando el texto."
+  (interpret-markup layout props
+    (markup #:override '(box-padding . 0.4) #:box
+            #:override '(box-padding . 0.6) #:box text)))
+@end lisp
+
+@code{text} es el nombre del argumento de la instrucción, y
+@code{markup?} es el tipo: lo identifica como un elemento de marcado.
+La función @code{interpret-markup} se usa en casi todas las
+instrucciones de marcado: construye un sello, usando @code{layout},
+@code{props}, y un elemento de marcado.  Aquí, la marca se construye
+usando el macro de Scheme @code{markup}, véase @ref{Construcción de
+elementos de marcado en Scheme}.  La transformación de una expresión
+@code{\markup} en una expresión de marcado de Scheme es directa.
+
+La instrucción nueva se puede usar como sigue:
 
 @example
-@{
-  c''^\markup \character #"Cleopatra"
-  e'^\markup \character #"Giulio Cesare"
-@}
+\markup \double-box A
 @end example
 
-@lilypond[quote,ragged-right]
-#(define-markup-command (smallcaps layout props str) (string?)
-  "Print the string argument in small caps.  Syntax: \\smallcaps #\"string\""
-  (interpret-markup layout props
-   (make-line-markup
-    (map (lambda (s)
-          (if (= (string-length s) 0)
-              s
-              (markup #:large (string-upcase (substring s 0 1))
-                      #:translate (cons -0.6 0)
-                      #:tiny (string-upcase (substring s 1)))))
-         (string-split str #\Space)))))
-
-#(define-markup-command (character layout props name) (string?)
-  "Print the character name in small caps, translated to the left and
-  top.  Syntax: \\character #\"name\""
+Sería buen hacer que la instrucción @code{double-box} fuera
+personalizable: aquí, los valores de relleno @code{box-padding} son
+fijos, y no se pueden cambiar por parte del usuario.  Además, sería
+mejor distinguir la separación entre los dos rectángulos, del relleno
+entre el rectángulo interno y el texto.  Así pues, introducimos una
+nueva propiedad, @code{inter-box-padding}, para el relleno entre los
+rectángulos.  El @code{box-padding} se usará para el relleno interno.
+Ahora el código nuevo es como se ve a continuación:
+
+@lisp
+#(define-markup-command (double-box layout props text) (markup?)
+  #:properties ((inter-box-padding 0.4)
+                (box-padding 0.6))
+  "Trazar un rectángulo doble rodeando el texto."
   (interpret-markup layout props
-   (markup #:hspace 0 #:translate (cons -3 1) #:smallcaps name)))
+    (markup #:override `(box-padding . ,inter-box-padding) #:box
+            #:override `(box-padding . ,box-padding) #:box text)))
+@end lisp
 
-{
-  c''^\markup \character #"Cleopatra" c'' c'' c''
-  e'^\markup \character #"Giulio Cesare" e' e' e'
-}
-@end lilypond
+Aquí, la palabra clave @code{#:properties} se usa de manera que las
+propiedades @code{inter-box-padding} y @code{box-padding} se leen a
+partir del argumento @code{props}, y se les proporcionan unos valores
+predeterminados si las propiedades no están definidas.
 
-Hemos usado la forma de fuente tipográfica @code{caps}, pero
-supongamos que nuestra fuente no tiene la variante de versalitas.  En
-ese caso tenemos que hacer una falsa fuente de mayúsculas pequeñas
-haciendo que la cadena en mayúsculas tenga la primera legra un poco
-mayor:
+Después estos valores se usan para sobreescribir las propiedades
+@code{box-padding} usadas por las dos instrucciones @code{\box}.
+Observe el apóstrofo invertido y la coma en el argumento de
+@code{\override}: nos permiten introducir un valor de variable dentro
+de una expresión literal.
 
-@example
-#(define-markup-command (smallcaps layout props str) (string?)
-  "Print the string argument in small caps."
+Ahora, la instrucción se puede usar dentro de un elemento de marcado,
+y el relleno de los rectángulos se puede personalizar:
+
+@lilypond[quote,verbatim,ragged-right]
+#(define-markup-command (double-box layout props text) (markup?)
+  #:properties ((inter-box-padding 0.4)
+                (box-padding 0.6))
+  "Draw a double box around text."
   (interpret-markup layout props
-   (make-line-markup
-    (map (lambda (s)
-          (if (= (string-length s) 0)
-              s
-              (markup #:large (string-upcase (substring s 0 1))
-                      #:translate (cons -0.6 0)
-                      #:tiny (string-upcase (substring s 1)))))
-         (string-split str #\Space)))))
-@end example
+    (markup #:override `(box-padding . ,inter-box-padding) #:box
+            #:override `(box-padding . ,box-padding) #:box text)))
 
-La instrucción @code{smallcaps} primero divide su argumento de cadena
-en unidades o palabras separadas por espacios (@code{(string-split str
-#\Space)}); para cada unidad o palabra, se construye un marcado con la
-primera letra agrandada y en mayúscula (@code{#:large (string-upcase
-(substring s 0 1))}), y un segundo marcado construido con las letras
-siguientes reducidas de tamaño y en mayúsculas (@code{#:tiny
-(string-upcase (substring s 1))}).  Como LilyPond introduce un espacio
-entre los marcados de una misma línea, el segundo marcado se traslada
-a la izquierda (@code{#:translate (cons -0.6 0) ...}).  Después, los
-marcados construidos para cada palabra se ponen en una línea mediante
-@code{(make-line-markup ...)}.  Finalmente, el marcado resultante se
-pasa a la función @code{interpret-markup}, con los argumentos
-@code{layout} y @code{props}.
-
-Nota: ahora existe una instrucción interna @code{\smallCaps} que se
-puede usar para poner texto en versalitas.  Consulte @ref{Text markup commands}, para ver más detalles.
+\markup \double-box A
+\markup \override #'(inter-box-padding . 0.8) \double-box A
+\markup \override #'(box-padding . 1.0) \double-box A
+@end lilypond
 
-@knownissues
 
-Actualmente las combinaciones de argumentos que hay disponibles
-(después de los argumentos estándar @var{layout} y @var{props}) para
-una instrucción de marcado definida con @code{define-markup-command}
-se limitan a la siguiente lista:
+@node Adaptación de instrucciones incorporadas
+@unnumberedsubsubsec Adaptación de instrucciones incorporadas
+@translationof Adapting builtin commands
 
-@table @asis
-@item (ningún argumento)
-@itemx @var{list}
-@itemx @var{markup}
-@itemx @var{markup markup}
-@itemx @var{scm}
-@itemx @var{scm markup}
-@itemx @var{scm scm}
-@itemx @var{scm scm markup}
-@itemx @var{scm scm markup markup}
-@itemx @var{scm markup markup}
-@itemx @var{scm scm scm}
-@end table
+Una buena manera de comenzar a escribir una instrucción de marcado
+nueva, es seguir el ejemplo de otra instrucción ya incorporada.  Casi
+todas las instrucciones de marcado que están incorporadas en LilyPond
+se pueden encontrar en el archivo
+@file{scm/@/define@/-markup@/-commands@/.scm}.
 
-@noindent
-En la tabla de arriba, @var{scm} representa los tipos de datos nativos
-de Scheme como @q{number} (número) o @q{string} (cadena).
+Por ejemplo, querríamos adaptar la instrucción @code{\draw-line}, para
+que trace una línea doble.  La instrucción @code{\draw-line} está
+definida como sigue (se han suprimido los comentarios de
+documentación):
 
-Como ejemplo, no es posible usar una instrucción de marcado
-@code{fulanito} con cuatro argumentos definida como
+@lisp
+(define-markup-command (draw-line layout props dest)
+  (number-pair?)
+  #:category graphic
+  #:properties ((thickness 1))
+  "...documentación..."
+  (let ((th (* (ly:output-def-lookup layout 'line-thickness)
+               thickness))
+        (x (car dest))
+        (y (cdr dest)))
+    (make-line-stencil th 0 0 x y)))
+@end lisp
 
-@example
-#(define-markup-command (fulanito layout props
-                         num1    str1    num2    str2)
-                        (number? string? number? string?)
-  ...)
-@end example
+Para definir una instrucción nueva basada en otra existente, copie la
+definición y cámbiele el nombre.  La palabra clave @code{#:category}
+se puede eliminar sin miedo, pues sólo se utiliza para generar
+documentación de LilyPond, y no tiene ninguna utilidad para las
+instrucciones de marcado definidas por el usuario.
 
-@noindent
-Si la aplicamos como, digamos,
+@lisp
+(define-markup-command (draw-double-line layout props dest)
+  (number-pair?)
+  #:properties ((thickness 1))
+  "...documentación..."
+  (let ((th (* (ly:output-def-lookup layout 'line-thickness)
+               thickness))
+        (x (car dest))
+        (y (cdr dest)))
+    (make-line-stencil th 0 0 x y)))
+@end lisp
 
-@example
-\markup \fulanito #1 #"mengano" #2 #"zutano"
-@end example
+A continuación se añade una propiedad para establecer la separación
+entre las dos líneas, llamada @code{line-gap}, con un valor
+predeterminado de p.ej. 0.6:
 
-@cindex Scheme signature
-@cindex signature, Scheme
-@noindent
-@command{lilypond} protesta diciendo que no puede analizar
-@code{fulanito} debido a su firma de Scheme desconocida.
+@lisp
+(define-markup-command (draw-double-line layout props dest)
+  (number-pair?)
+  #:properties ((thickness 1)
+                (line-gap 0.6))
+  "...documentación..."
+  ...
+@end lisp
+
+Finalmente, se añade el código para trazar las dos líneas.  Se usan
+dos llamadas a @code{make-line-stencil} para trazar las líneas, y los
+sellos resultantes se combinan usando @code{ly:stencil-add}:
+
+@lilypond[quote,verbatim,ragged-right]
+#(define-markup-command (my-draw-line layout props dest)
+  (number-pair?)
+  #:properties ((thickness 1)
+                (line-gap 0.6))
+  "..documentation.."
+  (let* ((th (* (ly:output-def-lookup layout 'line-thickness)
+                thickness))
+         (dx (car dest))
+         (dy (cdr dest))
+         (w (/ line-gap 2.0))
+         (x (cond ((= dx 0) w)
+                  ((= dy 0) 0)
+                  (else (/ w (sqrt (+ 1 (* (/ dx dy) (/ dx dy))))))))
+         (y (* (if (< (* dx dy) 0) 1 -1)
+               (cond ((= dy 0) w)
+                     ((= dx 0) 0)
+                     (else (/ w (sqrt (+ 1 (* (/ dy dx) (/ dy dx))))))))))
+     (ly:stencil-add (make-line-stencil th x y (+ dx x) (+ dy y))
+                     (make-line-stencil th (- x) (- y) (- dx x) (- dy y)))))
+
+\markup \my-draw-line #'(4 . 3)
+\markup \override #'(line-gap . 1.2) \my-draw-line #'(4 . 3)
+@end lilypond
 
 
 @node Definición de nuevas instrucciones de lista de marcado
@@ -800,8 +764,9 @@ Si la aplicamos como, digamos,
 
 Las instrucciones de listas de marcado se definen con el macro de
 Scheme @code{define-markup-list-command}, que es similar al macro
-@code{define-markup-command} descrito en @ref{Definición de una instrucción de marcado nueva}, excepto que donde éste devuelve un sello único, aquél
-devuelve una lista de sellos.
+@code{define-markup-command} descrito en @ref{Definición de una
+instrucción de marcado nueva}, excepto que donde éste devuelve un
+sello único, aquél devuelve una lista de sellos.
 
 En el siguiente ejemplo se define una instrucción de lista de marcado
 @code{\paragraph}, que devuelve una lista de líneas justificadas,
@@ -810,10 +775,10 @@ del argumento @code{props}.
 
 @example
 #(define-markup-list-command (paragraph layout props args) (markup-list?)
-   (let ((indent (chain-assoc-get 'par-indent props 2)))
-     (interpret-markup-list layout props
-       (make-justified-lines-markup-list (cons (make-hspace-markup indent)
-                                               args)))))
+   #:properties ((par-indent 2))
+   (interpret-markup-list layout props
+     (make-justified-lines-markup-list (cons (make-hspace-markup par-indent)
+                                             args))))
 @end example
 
 Aparte de los argumentos usuales @code{layout} y @code{props}, la
@@ -892,7 +857,6 @@ la compilación:
 @subsection Ejecutar una función sobre todos los objetos de la presentación
 @translationof Running a function on all layout objects
 
-
 @cindex código, llamar sobre objetos de presentación
 @funindex \applyOutput
 
@@ -917,6 +881,7 @@ siguientes argumentos:
 @item el contexto en que se procesa @code{\applyOutput}.
 @end itemize
 
+
 Además, la causa del objeto de presentación, es decir el objeto o
 expresión musical que es responsable de haberlo creado, está en la
 propiedad @code{cause} del objeto.  Por ejemplo, para la cabeza de una
@@ -939,12 +904,13 @@ cabezas de las notas que están sobre la línea central:
 @end lilypond
 
 
-@node Procedimientos de Scheme como propiedades
-@section Procedimientos de Scheme como propiedades
-@translationof Scheme procedures as properties
+@node Funciones de callback
+@section Funciones de callback
+@translationof Callback functions
 
-Las propiedades (como el grosor, la dirección, etc.) se pueden
-establecer a valores fijos con \override, p. ej.
+Las propiedades (como @code{thickness} (grosor), @code{direction}
+(dirección), etc.) se pueden establecer a valores fijos con \override,
+p. ej.:
 
 @example
 \override Stem #'thickness = #2.0
@@ -985,7 +951,7 @@ puede insertar con una cerradura de grob.  He aquí un ajuste
 procedente de @code{AccidentalSuggestion},
 
 @example
-(X-offset .
+`(X-offset .
   ,(ly:make-simple-closure
     `(,+
         ,(ly:make-simple-closure
@@ -1015,10 +981,18 @@ argumento de @var{proc}, el exterior asegura que el resultado de la
 función es lo que se devuelve, en lugar del objeto
 @code{simple-closure}.
 
+Desde dentro de un callback, el método más fácil para evaluar un
+elemento de marcado es usar grob-interpret-markup.  Por ejemplo:
+
+@example
+mi-callback = #(lambda (grob)
+                 (grob-interpret-markup grob (markup "fulanito")))
+@end example
+
 
-@node Usar código de Scheme en lugar de \tweak
-@section Usar código de Scheme en lugar de @code{\tweak}
-@translationof Using Scheme code instead of \tweak
+@node Código de Scheme en línea
+@section Código de Scheme en línea
+@translationof Inline Scheme code
 
 La principal desventaja de @code{\tweak} es su inflexibilidad
 sintáctica.  Por ejemplo, lo siguiente produce un error de sintaxis.
@@ -1062,6 +1036,7 @@ función de Scheme @code{acons}, y finalmente el resultado se escribe
 de nuevo con @code{set!}.  El último elemento del bloque @code{let} es
 el valor de retorno, el propio @code{m}.
 
+
 @node Trucos difíciles
 @section Trucos difíciles
 @translationof Difficult tweaks
@@ -1070,6 +1045,7 @@ Hay un cierto número de tipos de ajustes difíciles.
 
 @itemize
 
+
 @item
 Un tipo de ajuste difícil es la apariencia de los objetos de
 extensión, como las ligaduras de expresión y de unión.  Inicialmente,
@@ -1160,4 +1136,8 @@ como se espera dentro de los bloques @code{\context}.
 @chapter Interfaces de Scheme de LilyPond
 @translationof LilyPond Scheme interfaces
 
-@untranslated
+Este capítulo cubre las diversas herramientas proporcionadas por
+LilyPond como ayuda a los programadores de Scheme a extraer e
+introducir información de los flujos musicales.
+
+HACER @c TODO -- figure out what goes in here and how to organize it
index 35cd3c98390b34d14c1b7b3e6f21910499f991b9..94b96ec504dfbf5ff208bc785e88ee8e35b94537 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 
 @ignore
-    Translation of GIT committish: 6af1d076865b903c39c6c240d337d3d7719b0ce4
+    Translation of GIT committish: e18567dccce0f16b680e6b7e562329e5f8bcae59
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -213,7 +213,7 @@ También existen tipos de datos compuestos en Scheme.  Entre los tipos
 más usados en la programación de LilyPond se encuentran las parejas,
 las listas, las listas-A y las tablas de hash.
 
-@unnumberedsubsubsec Parejas
+@subheading Parejas
 
 El tipo fundacional de datos compuestos de Scheme es la @code{pareja}.
 Como se espera por su nombre, una pareja son dos valores unidos en uno
@@ -271,7 +271,7 @@ véase
 @uref{http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-14.html#footnote_Temp_133}
 
 
-@unnumberedsubsubsec Listas
+@subheading Listas
 
 Una estructura de datos muy común en Scheme es la @emph{lista}.
 Formalmente, una lista se define como la lista vacía (representada
@@ -302,7 +302,7 @@ considera un dialecto de Lisp, donde @q{lisp} es una abreviatura de
 @q{List Processing} (proceso de listas).  Todas las expresiones de
 Scheme son listas.
 
-@unnumberedsubsubsec Listas asociativas (listas-A)
+@subheading Listas asociativas (listas-A)
 
 Un tipo especial de listas son las @emph{listas asociativas} o
 @emph{listas-A}.  Se puede usar una lista-A para almacenar datos para
@@ -328,7 +328,7 @@ guile>
 Las listas-A se usan mucho en LilyPond para almacenar propiedades y
 otros datos.
 
-@unnumberedsubsubsec Tablas de hash
+@subheading Tablas de hash
 
 Estructuras de datos que se utilizan en LilyPond de forma ocasional.
 Una tabla de hash es similar a una matriz, pero los índices de la
@@ -505,7 +505,7 @@ Los procedimientos de Scheme son expresiones de Scheme ejecutables que
 devuelven un valor resultante de su ejecución.  También pueden
 manipular variables definidas fuera del procedimiento.
 
-@unnumberedsubsubsec Definir procedimientos
+@subheading Definir procedimientos
 
 Los procedimientos se definen en Scheme con @code{define}:
 
@@ -531,7 +531,7 @@ guile> (media 3 12)
 15/2
 @end lisp
 
-@unnumberedsubsubsec Predicados
+@subheading Predicados
 
 Los procedimientos de Scheme que devuelven valores booleanos se suelen
 llamar @emph{predicados}.  Por convenio (pero no por necesidad),
@@ -545,7 +545,7 @@ guile> (menor-que-diez? 15)
 #f
 @end lisp
 
-@unnumberedsubsubsec Valores de retorno
+@subheading Valores de retorno
 
 A veces, el usuario quiere tener varias expresiones de Scheme dentro
 de un procedimiento.  Existen dos formas en que se pueden combinar
@@ -575,7 +575,7 @@ guile> (let ((x 2) (y 3) (z 4)) (display (+ x y)) (display (- z 4))
 @subsection Condicionales de Scheme
 @translationof Scheme conditionals
 
-@unnumberedsubsubsec if
+@subheading if
 
 Scheme tiene un procedimiento @code{if}:
 
@@ -596,7 +596,7 @@ guile> (if (> a b) "a es mayor que b" "a no es mayor que b")
 "a no es mayor que b"
 @end lisp
 
-@unnumberedsubsubsec cond
+@subheading cond
 
 Otro procedimiento condicional en scheme es @code{cond}:
 
@@ -844,7 +844,7 @@ variable.
 @subsection Variables de LilyPond compuestas
 @translationof LilyPond compound variables
 
-@unnumberedsubsubsec Desplazamientos
+@subheading Desplazamientos
 
 Los desplazamientos bidimensionales (coordenadas X e Y) así como los
 tamaños de los objetos (intervalos con un punto izquierdo y otro
@@ -863,15 +863,15 @@ objeto TextScript.  Estos números se miden en espacios de pentagrama,
 y así esta instrucción mueve el objeto un espacio de pentagrama a la
 derecha, y dos espacios hacia arriba.
 
-@unnumberedsubsubsec Dimensiones
+@subheading Dimensiones
 
 HACER @c todo -- write something about extents
 
-@unnumberedsubsubsec Listas-A de propiedades
+@subheading Listas-A de propiedades
 
 HACER @c todo -- write something about property alists
 
-@unnumberedsubsubsec Cadenas de listas-A
+@subheading Cadenas de listas-A
 
 HACER @c todo -- write something about alist chains
 
index e633959c0e504d1487b6263b45b20a6f5fab0b2a..89f9034f2bfda34d78c8eb7339462907b6776229 100644 (file)
@@ -3,7 +3,7 @@
 @c learning/tutorial.itely
 
 @ignore
-    Translation of GIT committish: a48879a125150c95571cc2cd06fd626e75cd3b65
+    Translation of GIT committish: c5cf27d9491435a6422127d2e6b3361300233124
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
index 482a52e9ccf78f959d340a32fe31b69373e74988..1e0bed4a6ede44663cb6e91de82ae7c45fa2429a 100644 (file)
@@ -1,6 +1,6 @@
 \input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 829d4293f61b7583e20ecdd3c427cde11e942fef
+    Translation of GIT committish: e18567dccce0f16b680e6b7e562329e5f8bcae59
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -63,6 +63,7 @@ Apéndices
 @c TOC - tex
 @contents
 
+@allowcodebreaks false
 
 @c INCLUDES
 
diff --git a/Documentation/es/learning/introduction.itely b/Documentation/es/learning/introduction.itely
deleted file mode 100644 (file)
index f384e77..0000000
+++ /dev/null
@@ -1,1203 +0,0 @@
-@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
-
-@ignore
-    Translation of GIT committish: 45945bd973aa9161b10e3f517902afb7ef4b4a56
-
-    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.13.4"
-
-@c Translation status: post-GDP
-
-@node Introducción
-@chapter Introducción
-@translationof Introduction
-
-En este capítulo se presentan al lector LilyPond y su documentación.
-
-@menu
-* Antecedentes::
-* Sobre la documentación::
-@end menu
-
-@node Antecedentes
-@section Antecedentes
-@translationof Background
-
-Esta sección se ocupa de las metas principales y la arquitectura de
-LilyPond.
-
-
-@menu
-* Grabado::
-* Grabado automático::
-* ¿Qué símbolos grabar?::
-* Representación musical::
-* Aplicaciones de ejemplo::
-@end menu
-
-
-@node Grabado
-@unnumberedsubsec Grabado
-@translationof Engraving
-
-@cindex grabado
-@cindex tipografía musical
-@cindex musical, tipografía
-@cindex plancha, grabado en
-@cindex musical, grabado
-
-El arte de la tipografía musical se conoce como @emph{grabado (en
-plancha)}.  El término deriva del proceso tradicional de la impresión
-musical.  Hace sólo unas décadas, la música impresa se hacía
-estampando la música sobre planchas de zinc o estaño de forma
-invertida como en un espejo.  Después la plancha se entintaba y las
-depresiones causadas por los cortes y estampados retenían la tinta.
-Al presionar una hoja de papel sobre la plancha, se formaba una
-imagen.  El estampado y cortado se hacía completamente a mano.
-Cualquier corrección era muy fastidiosa de realizar, si es que era
-posible hacerla siquiera, así que el grabado tenía que quedar perfecto
-a la primera.  El grabado era una habilidad altamente especializada;
-un artesano necesitaba unos cinco años de preparación antes de poder
-ostentar el título de maestro grabador, y se necesitaban otros cinco
-años de experiencia para ser un auténtico experto.
-
-Hoy en día, toda la música impresa nueva se produce con ordenadores.
-Esto tiene unas ventajas evidentes: las copias son más baratas de
-producir y el trabajo editorial se puede repartir por correo
-electrónico.  Desgraciadamente la penetrante utilización de
-ordenadores también ha hecho disminuir la calidad gráfica de las
-partituras.  Las impresiones de ordenador tienen un aspecto insulso y
-mecánico, lo que hace que sea desagradable tocar a partir de ellas.
-
-@c introduce illustrating aspects of engraving, font...
-Las imágenes siguientes ilustran la diferencia entre el grabado
-tradicional y la salida típica de ordenador, y la tercera imagen
-muestra cómo LilyPond imita el aspecto tradicional.  La imagen de la
-izquierda presenta el dibujo escaneado de un símbolo de bemol sacado
-de una edición publicada en el año 2000.  La del centro es un símbolo
-procedente de una edición de Bärenreiter grabada a mano de la
-misma música.  La de la izquierda ilustra los típicos puntos débiles
-de la impresión por ordenador: las líneas del pentagrama son muy
-delgadas, el peso del símbolo del bemol es también demasiado ligero
-como las líneas del pentagrama, y tiene una apariencia rectilínea con
-esquinas afiladas.  En contraste, el bemol de Bärenreiter tiene una
-apariencia redonda, pesada, casi voluptuosa.  Nuestro símbolo del
-bemol se diseñó según éste, entre otros.  Es de forma redondeada y su
-peso está en armonía con el grosor de nuestras líneas de pentagrama,
-que son asimismo mucho más gruesas que las de la edición por
-ordenador.
-
-@multitable @columnfractions .125 .25 .25 .25 .125
-@item @tab
-@ifnotinfo
-@iftex
-@image{pictures/henle-flat-gray,,4cm}
-@end iftex
-@ifnottex
-@image{pictures/henle-flat-gray,,,png}
-@end ifnottex
-
-@tab
-@iftex
-@image{pictures/baer-flat-gray,,4cm}
-@end iftex
-@ifnottex
-@image{pictures/baer-flat-gray,,,png}
-@end ifnottex
-
-@tab
-@iftex
-@image{pictures/lily-flat-bw,,4cm}
-@end iftex
-@ifnottex
-@image{pictures/lily-flat-bw,,,png}
-@end ifnottex
-@end ifnotinfo
-@ifinfo
-@image{lilypond/pictures/henle-flat-bw,,,,png} @image{lilypond/pictures/baer-flat-bw,,,,png}
-@image{lilypond/pictures/lily-flat-bw,,,,png}
-@end ifinfo
-
-@item @tab
-Henle (2000)
-@tab
-Bärenreiter (1950)
-@tab
-Tipografía Feta de LilyPond (2003)
-
-@end multitable
-
-
-@cindex símbolos musicales
-@cindex tipografías
-@cindex negrura
-@cindex equilibrio
-
-@c introduce illustrating aspects of engraving, spacing...
-Tratándose del espaciado, la distribución del espacio debe reflejar
-las duraciones que hay entre las notas.  Sin embargo muchas partituras
-modernas se atañen a las duraciones con precisión matemática, lo que
-lleva a unos resultados bastante pobres.  En el siguiente ejemplo se
-muestra un ejemplo dos veces: una utilizando espaciado matemáticamente
-exacto, y otra con ciertas correcciones.  ¿Puede adivinar cuál es
-cuál?
-
-@cindex espaciado óptico
-@c file spacing-optical.
-@c need to include it here,  because we want two images.
-@lilypond
-\paper {
-  ragged-right = ##t
-  indent = #0.0
-}
-
-music = {
-   c'4 e''4 e'4 b'4 |
-   \stemDown
-   b'8[ e'' a' e'']
-   \stemNeutral
-   e'8[ e'8 e'8 e'8]
-}
-
-\score
-{
-  \music
-  \layout {
-    \context {
-      \Staff
-      \override NoteSpacing #'stem-spacing-correction = #0.6
-    }
-  }
-}
-@end lilypond
-
-@lilypond
-\paper {
-  ragged-right = ##t
-  indent = #0.0
-}
-
-music = {
-   c'4 e''4 e'4 b'4 |
-   \stemDown
-   b'8[ e'' a' e'']
-   \stemNeutral
-   e'8[ e'8 e'8 e'8]
-}
-\score
-{
-  \music
-  \layout {
-    \context {
-      \Staff
-      \override NoteSpacing #'stem-spacing-correction = #0.0
-      \override NoteSpacing #'same-direction-correction = #0.0
-      \override StaffSpacing #'stem-spacing-correction = #0.0
-    }
-  }
-}
-@end lilypond
-
-@cindex ritmos regulares
-@cindex espaciado regular
-@cindex regular, espaciado
-
-Cada uno de los dos compases de este fragmento tiene solamente notas
-de duración constante.  El espaciado debería reflejarlo.
-Desgraciadamente el ojo nos engaña un poco; no solamente percibe la
-distancia entre las cabezas de las notas, sino que tiene también en
-cuenta la distancia entre las plicas.  Como resultado, las notas de
-una combinación plica arriba/@/plica abajo se tendrían que separar
-más, y las notas de una combinación plica abajo/@/plica arriba
-deberían juntarse, todo ello dependiendo de las posiciones combinadas
-de las notas.  Los dos compases de arriba están impresos con esta
-corrección, sin embargo los de abajo forman grupos de notas pegadas
-con plica abajo/@/plica arriba.
-
-Los músicos están normalmente más concentrados en tocar que en
-estudiar el aspecto de una partitura, y por ello las pequeñeces de los
-detalles tipográficos pueden parecer académicas.  Pero no lo son.  En
-las partituras más largas con ritmos monótonos, las correcciones de
-espaciado llevan a sutiles variaciones en la disposición de cada una
-de las líneas dándoles una especie de firma visual distintiva.  Sin
-esta firma, todas las líneas parecerían iguales, y se convertirían en
-un laberinto.  Una impronta visual algo distinta ayuda a evitar que
-los músicos puedan perder el hilo al apartar la mirada o tener un
-lapsus de concentración.
-
-De forma similar, la fuerza visual de unos símbolos pesados sobre
-gruesas líneas de pentagrama se sostiene mejor cuando el lector se
-aleja del papel: por ejemplo, cuando está sobre un atril.  Una
-distribución cuidadosa del espacio blanco permite disponer la música
-muy apretada sin que los símbolos se atosiguen unos a otros.  El
-resultado reduce a un mínimo las vueltas de página, lo que es una gran
-ventaja.
-
-Ésta es una característica normal del arte tipográfico.  La
-disposición de la página tiene que ser bonita, no sólo por sí misma,
-sino sobre todo porque así ayuda al lector en su tarea.  Para los
-materiales destinados a la interpretación, como las partituras, esto
-es de una importancia doble: los músicos tienen una capacidad de
-concentración limitada.  Cuanta menos atención necesiten para el acto
-de leer, más se pueden dedicar al acto de tocar la música.  Dicho de
-otra forma: una mejor tipografía se traduce en una mejor
-interpretación.
-
-Estos ejemplos demuestran que la tipografía musical es un arte sutil y
-complejo, y que su elaboración requiere una experiencia considerable,
-que los músicos no suelen tener.  LilyPond representa nuestro esfuerzo
-para llevar la excelencia visual de la música grabada a mano a la era
-de la informática, y ponerla a disposición de los músicos normales.
-Hemos ido afinando nuestros algoritmos, diseños de tipografía y
-preferencias del programa para producir una impresión cuya calidad se
-equipara con la de las viejas ediciones que tanto nos gusta contemplar
-y de las que tanto nos gusta tocar.
-
-
-@node Grabado automático
-@unnumberedsubsec Grabado automático
-@translationof Automated engraving
-
-@cindex grabado automatizado
-@cindex automático, grabado
-
-¿Cómo nos las arreglamos para implementar la tipografía? Si un
-artesano necesita más de diez años para convertirse en un auténtico
-maestro ¿cómo vamos a poder nosotros, simples «hackers», escribir un
-programa que les quite el trabajo?
-
-La respuesta es: no podemos.  Puesto que la tipografía se fundamenta
-en el juicio humano sobre la apariencia, nunca se puede sustituir
-completamente a las personas.  Sin embargo, se puede automatizar gran
-parte del trabajo más duro y repetitivo.  Si LilyPond resuelve la
-mayoría de las situaciones comunes de forma correcta, esto ya será una
-tremenda mejoría sobre los programas existentes.  El resto de los
-casos se podrán afinar a mano.  Con el transcurso de los años, el
-software se puede refinar para que haga un mayor número de cosas de
-forma automática, de tal forma que los ajustes manuales tienden a ser
-cada vez menos necesarios.
-
-Cuando empezamos, escribimos el programa LilyPond completamente en el
-lenguaje C++; la funcionalidad del programa quedaba como esculpida en
-piedra por los desarrolladores.  Este esquema resultó no ser muy
-satisfactorio por una serie de motivos:
-
-@itemize
-@item Cuando LilyPond comete fallos,
-los usuarios tienen la necesidad de superar las decisiones de
-formateo.  Por ello el usuario debe tener acceso al motor de formateo.
-De aquí que no podamos dejar establecidas las reglas y valores durante
-la compilación, sino que los usuarios deben poder acceder a ellos
-durante la ejecución del programa.
-
-@item El grabado de música es cosa de juicio visual y por ello es cuestión de gustos.
-A pesar de saber tanto como creemos saber, los usuarios pueden no
-estar de acuerdo con nuestras decisiones personales. Por tanto la
-definición del estilo tipográfico también debe estar al alcance del
-usuario.
-
-@item Por último, estamos continuamente refinando los algoritmos de formateo
-y por tanto necesitamos un enfoque flexible para las reglas.  El
-lenguaje C++ fuerza un cierto método para agrupar las reglas que no se
-puede aplicar fácilmente al formateo de la notación musical.
-
-@end itemize
-
-@cindex Scheme, lenguaje de programación
-
-Estos problemas se han solucionado integrando un intérprete del
-lenguaje Scheme y reescribiendo parte del código de LilyPond en
-Scheme.  La actual arquitectura de formateo se construye alrededor del
-concepto de objetos gráficos, descrita por variables y funciones de
-Scheme.  Esta arquitectura puede tratar al mismo tiempo con las reglas
-de formateo, el estilo tipográfico y las decisiones de formateo
-individuales.  El usuario tiene acceso directo a la mayor parte de
-estos controles.
-
-Las variables de Scheme controlan las decisiones de formateo.  Por
-ejemplo, muchos objetos gráficos tienen una variable de dirección que
-codifica la elección entre arriba y abajo (o izquierda y
-derecha). Aquí puede ver dos acordes con acentos y signos de arpegio.
-En el primer acorde los objetos gráficos tienen todas sus direcciones
-hacia abajo (o hacia la izquierda).  El segundo acorde tiene todas las
-direcciones hacia arriba (o hacia la derecha).
-
-@lilypond[quote,ragged-right]
-\new Score \with {
-   \override SpacingSpanner #'spacing-increment = #3
-   \override TimeSignature #'transparent = ##t
-} \relative c' {
-   \stemDown <e g b>4_>-\arpeggio
-   \override Arpeggio #'direction = #RIGHT
-   \stemUp <e g b>4^>-\arpeggio
-}
-@end lilypond
-
-@cindex partitura, dar formato a
-@cindex formato, dar a una partitura
-@cindex formateado, reglas de
-
-@noindent
-El proceso de formatear una partitura consiste en leer y escribir las
-variables de los objetos gráficos.  Ciertas variables tienen un valor
-predefinido.  Por ejemplo, el grosor de muchas líneas (una
-característica del estilo tipográfico) son variables con un valor
-preestablecido.  Podemos alterar este valor libremente dando así a
-nuestra partitura una impresión tipográfica distinta.
-
-@lilypond[quote,ragged-right]
-fragment = {
-   \clef bass f8 as8
-   c'4-~ c'16 as g f e16 g bes c' des'4
-}
-<<
-   \new Staff \fragment
-   \new Staff \with {
-      \override Beam #'beam-thickness = #0.3
-      \override Stem #'thickness = #0.5
-      \override Bar #'thickness = #3.6
-      \override Tie #'thickness = #2.2
-      \override StaffSymbol #'thickness = #3.0
-      \override Tie #'extra-offset = #'(0 .  0.3)
-      }
-      \fragment
->>
-@end lilypond
-
-Las reglas de formateo también son variables que están predefinidas:
-cada objeto tiene unas variables que contienen procedimientos.  Estos
-procedimientos realizan el trabajo real de formateo y sustituyéndolos
-por otros podemos alterar el aspecto de los objetos.  En el siguiente
-ejemplo, la regla que controla cómo se dibuja la cabeza de una nota se
-altera durante el transcurso del fragmento musical.
-
-@lilypond[quote,ragged-right]
-#(set-global-staff-size 30)
-
-#(define (mc-squared grob orig current)
-  (let* ((interfaces (ly:grob-interfaces grob))
-         (pos (ly:grob-property grob 'staff-position)))
-    (if (memq 'note-head-interface interfaces)
-        (begin
-          (ly:grob-set-property! grob 'stencil
-            (grob-interpret-markup grob
-              (make-lower-markup 0.5
-                (case pos
-                  ((-5) "m")
-                  ((-3) "c ")
-                  ((-2) (make-smaller-markup (make-bold-markup "2")))
-                  (else "bla")))))))))
-
-\new Voice \relative c' {
-  \stemUp
-  \set autoBeaming = ##f
-  \time 2/4
-  <d f g>4
-  \once \override NoteHead #'stencil = #note-head::brew-ez-stencil
-  \once \override NoteHead #'font-size = #-7
-  \once \override NoteHead #'font-family = #'sans
-  \once \override NoteHead #'font-series = #'bold
-  <d f g>4
-  \once \override NoteHead #'style = #'cross
-  <d f g>4
-  \applyOutput #'Voice #mc-squared
-  <d f g>4
-  <<
-    { d8[ es-( fis^^ g] fis2-) }
-    \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 }
-  >>
-}
-@end lilypond
-
-
-
-@node ¿Qué símbolos grabar?
-@unnumberedsubsec ¿Qué símbolos grabar?
-@translationof What symbols to engrave?
-
-@cindex grabado
-@cindex tipografía
-@cindex grabador
-@cindex plug-in
-@cindex complemento (plugin)
-
-El proceso de formateo toma las decisiones sobre dónde colocar los
-símbolos.  Sin embargo esto sólo se puede hacer una vez que se ha
-decidido @emph{qué} símbolos han de imprimirse, o dicho de otro modo:
-qué notación utilizar.
-
-La notación musical común es un sistema de registro de música que ha
-venido evolucionando desde hace mil años.  La forma que se usa en
-nuestros días data de los primeros tiempos del Renacimiento.  Aunque
-la forma básica (es decir: puntos sobre una pauta de cinco líneas) no
-ha cambiado, los detalles continúan evolucionando para expresar todas
-las innovaciones de la notación contemporánea.  Por tanto, la notación
-musical común abarca unos quinientos años de música.  Sus aplicaciones
-se extienden sobre un amplio rango que abarca desde melodías
-monofónicas hasta monstruosos contrapuntos para gran orquesta.
-
-¿Cómo podemos tratar con esta bestia de siete cabezas, y obligarla a
-que se encierre dentro de los límites de un programa de ordenador?
-Nuestra solución es trocear el problema de la notación (por oposición
-al grabado, esto es, a la tipografía) en fragmentos digeribles y más
-fáciles de programar: cada tipo de símbolo se maneja por un módulo
-separado que recibe el nombre de «plug-in».  Cada «plug-in» es
-completamente modular e independiente, de forma que puede
-desarrollarse y mejorarse por separado.  Estos «plug-ins» se llaman
-@code{engraver}s (grabadores), por analogía con los artesanos que
-traducen las ideas musicales a símbolos gráficos.
-
-En el siguiente ejemplo comenzamos con un plug-in para las cabezas de
-las notas, el @code{Note_heads_engraver}.
-
-@lilypond[quote,ragged-right]
-\include "engraver-example.ily"
-
-\score {
-  \topVoice
-  \layout {
-    \context {
-      \Voice
-      \remove "Stem_engraver"
-      \remove "Phrasing_slur_engraver"
-      \remove "Slur_engraver"
-      \remove "Script_engraver"
-      \remove "Beam_engraver"
-      \remove "Auto_beam_engraver"
-    }
-    \context {
-      \Staff
-      \remove "Accidental_engraver"
-      \remove "Key_engraver"
-      \remove "Clef_engraver"
-      \remove "Bar_engraver"
-      \remove "Time_signature_engraver"
-      \remove "Staff_symbol_engraver"
-      \consists "Pitch_squash_engraver"
-    }
-  }
-}
-@end lilypond
-
-@noindent
-A continuación un @code{Staff_symbol_engraver} (grabador del
-pentagrama) añade la pauta,
-
-@lilypond[quote,ragged-right]
-\include "engraver-example.ily"
-
-\score {
-  \topVoice
-  \layout {
-    \context {
-      \Voice
-      \remove "Stem_engraver"
-      \remove "Phrasing_slur_engraver"
-      \remove "Slur_engraver"
-      \remove "Script_engraver"
-      \remove "Beam_engraver"
-      \remove "Auto_beam_engraver"
-    }
-    \context {
-      \Staff
-      \remove "Accidental_engraver"
-      \remove "Key_engraver"
-      \remove "Clef_engraver"
-      \remove "Bar_engraver"
-      \consists "Pitch_squash_engraver"
-      \remove "Time_signature_engraver"
-    }
-  }
-}
-@end lilypond
-
-@noindent
-El @code{Clef_engraver} (grabador de la clave) define un punto de
-referencia para el pentagrama,
-
-@lilypond[quote,ragged-right]
-\include "engraver-example.ily"
-
-\score {
-  \topVoice
-  \layout {
-    \context {
-      \Voice
-      \remove "Stem_engraver"
-      \remove "Phrasing_slur_engraver"
-      \remove "Slur_engraver"
-      \remove "Script_engraver"
-      \remove "Beam_engraver"
-      \remove "Auto_beam_engraver"
-    }
-    \context {
-      \Staff
-      \remove "Accidental_engraver"
-      \remove "Key_engraver"
-      \remove "Bar_engraver"
-      \remove "Time_signature_engraver"
-    }
-  }
-}
-@end lilypond
-
-@noindent
-y el @code{Stem_engraver} (grabador de las plicas) añade las plicas.
-
-@lilypond[quote,ragged-right]
-\include "engraver-example.ily"
-
-\score {
-  \topVoice
-  \layout {
-    \context {
-      \Voice
-      \remove "Phrasing_slur_engraver"
-      \remove "Slur_engraver"
-      \remove "Script_engraver"
-      \remove "Beam_engraver"
-      \remove "Auto_beam_engraver"
-    }
-    \context {
-      \Staff
-      \remove "Accidental_engraver"
-      \remove "Key_engraver"
-      \remove "Bar_engraver"
-      \remove "Time_signature_engraver"
-    }
-  }
-}
-@end lilypond
-
-@noindent
-El @code{Stem_engraver} (grabador de plicas) recibe una notificación
-cuando llega una cabeza. Cada vez que se ve una cabeza (o más, si es
-un acorde), se crea un objeto plica y se conecta a la cabeza.
-Añadiendo grabadores para las barras, ligaduras, acentos,
-alteraciones, líneas divisorias, indicación de compás y armadura
-conseguimos una notación completa.
-
-@lilypond[quote,ragged-right]
-\include "engraver-example.ily"
-\score { \topVoice }
-@end lilypond
-
-@cindex polifonía
-@cindex grabar varias voces
-@cindex contextos
-
-Este sistema funciona bien para la música monofónica, pero ¿y con la
-polifonía?  En notación polifónica muchas voces pueden compartir el
-mismo pentagrama.
-
-@lilypond[quote,ragged-right]
-\include "engraver-example.ily"
-\new Staff << \topVoice \\ \botVoice >>
-@end lilypond
-
-En esta situación, las alteraciones y la pauta se comparten, pero las
-plicas, ligaduras, barras, etc. son propias de cada voz.  Por tanto
-los grabadores han de agruparse.  Los grabadores de cabezas, plicas,
-ligaduras, etc.  se unen en un grupo llamado @q{Contexto de voz},
-mientras que los grabadores de la armadura, alteraciones, compás, etc.
-van a un grupo que se llama @q{Contexto de la pauta}.  En el caso de
-la polifonía, un único Contexto de pauta contiene más de un Contexto
-de voz.  De forma semejante, varios Contextos de pauta pueden
-agruparse en un único Contexto de partitura.  El Contexto de partitura
-es el contexto de notación de más alto nivel.
-
-
-@seealso
-Referencia de funcionamiento interno:
-@rinternals{Contexts}.
-
-
-@lilypond[quote,ragged-right]
-\include "engraver-example.ily"
-\score {
-   <<
-      \new Staff << \topVoice \\ \botVoice >>
-      \new Staff << \pah \\ \hoom >>
-   >>
-}
-@end lilypond
-
-@node Representación musical
-@unnumberedsubsec Representación musical
-@translationof Music representation
-
-@cindex sintaxis
-@cindex recursivas, estructuras
-
-Idealmente el formato de entrada para cualquier sistema de formateo de
-alto nivel es una descripción abstracta del contenido.  En este caso,
-eso constituiría la propia música, lo que plantea un tremendo
-problema: ¿cómo podemos definir qué es realmente la música?  En lugar
-de intentar hallar una respuesta, le hemos dado la vuelta a la
-pregunta.  Escribimos un programa capaz de producir partituras y
-ajustamos el formato para que sea tan escueto como sea posible.
-Cuando el formato ya no puede reducirse más, por definición nos
-habremos quedado con el contenido musical propiamente dicho.  Nuestro
-programa sirve como definición formal de un documento musical.
-
-
-La sintaxis también es el interfaz de usuario de LilyPond, así que es
-fácil teclear
-
-@example
-@{
-  c'4 d'8
-@}
-@end example
-
-@noindent
-para crear un Do central (Do4) negra, y un Re por encima del Do
-central (Re4) corchea.
-
-@lilypond[quote]
-{
-  c'4 d'8
-}
-@end lilypond
-
-A una escala microscópica, dicha sintaxis es fácil de utilizar.  A una
-escala mayor, la sintaxis también requiere una estructura.  ¿De qué
-otra forma podríamos introducir piezas complejas como sinfonías u
-óperas?  La estructura se forma mediante el concepto de expresiones
-musicales: al combinar pequeños fragmentos de música dentro de otros
-mayores, se pueden expresar ideas musicales más complejas.  Por
-ejemplo
-
-@lilypond[quote,verbatim,fragment,relative=1]
-f4
-@end lilypond
-
-@noindent
-Los acordes se pueden construir encerrando las notas entre @code{<<} y
-@code{>>}
-
-@c < > is not a music expression,
-@c so we use <<>> iso. <> to drive home the point of
-@c expressions.  Don't change this back --hwn.
-
-@c FIXME: change this.  I can explain it better.  -gp
-@example
-<<c4 d4 e4>>
-@end example
-
-@lilypond[quote,fragment,relative=1]
-\new Voice { <<c4 d4 e>> }
-@end lilypond
-
-@noindent
-Esta expresión se coloca en secuencia encerrándola dentro de llaves
-@code{@{@tie{}@dots{}@tie{}@}}
-
-@example
-@{ f4 <<c4 d4 e4>> @}
-@end example
-
-@lilypond[quote,relative=1,fragment]
-{ f4 <<c d e4>> }
-@end lilypond
-
-@noindent
-Lo anterior, a su vez también es una expresión, y por ello se puede combinar
-de nuevo con otra expresión simultánea (una blanca) usando <<,
-@code{\\}, y >>
-
-@example
-<< g2 \\ @{ f4 <<c4 d4 e4>> @} >>
-@end example
-
-@lilypond[quote,fragment,relative=2]
-\new Voice { << g2 \\ { f4 <<c d e>> } >> }
-@end lilypond
-
-Las mencionadas estructuras recursivas se pueden especificar de forma
-nítida y formal dentro de una gramática independiente del contexto.
-El código de análisis también se genera a partir de esta gramática.
-En otras palabras, la sintaxis de LilyPond está definida de una forma
-clara y sin ambigüedades.
-
-Los interfaces de usuario y la sintaxis son lo que la persona ve y con
-lo que trata principalmente.  En parte, son fruto de preferencias
-personales y como tales están sujetas a mucha discusión.  Aunque las
-discusiones sobre el gusto tienen su mérito, no son demasiado
-productivas.  Dentro de la escena global de LilyPond, la sintaxis de
-la entrada tiene una importancia relativamente pequeña: inventarse una
-sintaxis elegante es fácil, pero escribir un código de formateo
-decente es mucho más difícil.  Esto también queda ilustrado por la
-cantidad de líneas de código de los componentes respectivos: el
-análisis y la representación se llevan menos del 10% del código
-fuente.
-
-
-@node Aplicaciones de ejemplo
-@unnumberedsubsec Aplicaciones de ejemplo
-@translationof Example applications
-
-@cindex sencillos, ejemplos
-@cindex ejemplos sencillos
-
-Escribimos LilyPond como un experimento de cómo condensar el arte del
-grabado de música dentro de un programa de ordenador.  Gracias a todo
-este duro trabajo, el programa ahora se puede usar para hacer trabajos
-útiles.  La aplicación más sencilla es imprimir notas.
-
-@lilypond[quote,relative=1]
-{
-  \time 2/4
-  c4 c g'4 g a4 a g2
-}
-@end lilypond
-
-@noindent
-Añadiendo los nombres de acordes y la letra, obtenemos una hoja guía
-de acordes (lead sheet).
-
-@c KEEP LY
-@lilypond[quote,ragged-right]
-<<
-   \chords { c2 c f2 c }
-   \new Staff
-   \relative c' {
-     \time 2/4
-     c4 c g' g a a g2
-   }
-   \addlyrics { cam -- pa -- ni -- ta del lu -- gar }
->>
-@end lilypond
-
-También se puede imprimir notación polifónica y música para piano.
-El ejemplo siguiente combina algunas otras construcciones exóticas.
-
-@lilypond[quote]
-\header {
-  title = "Screech and boink"
-  subtitle = "Random complex notation"
-  composer = "Han-Wen Nienhuys"
-}
-
-\score {
-  \context PianoStaff <<
-    \new Staff = "up" {
-      \time 4/8
-      \key c \minor
-      << {
-        \revert Stem #'direction
-        \change Staff = down
-        \set subdivideBeams = ##t
-        g16.[
-          \change Staff = up
-          c'''32
-          \change Staff = down
-          g32
-          \change Staff = up
-          c'''32
-          \change Staff = down
-          g16]
-        \change Staff = up
-        \stemUp
-        \set followVoice = ##t
-        c'''32([ b''16 a''16 gis''16 g''32)]
-      } \\ {
-        s4 \times 2/3 { d'16[ f' g'] } as'32[ b''32 e'' d'']
-      } \\ {
-        s4 \autoBeamOff d''8.. f''32
-      } \\ {
-        s4 es''4
-      } >>
-    }
-
-    \new Staff = "down" {
-      \clef bass
-      \key c \minor
-      \set subdivideBeams = ##f
-      \override Stem  #'french-beaming = ##t
-      \override Beam  #'beam-thickness = #0.3
-      \override Stem  #'thickness = #4.0
-      g'16[ b16 fis16 g16]
-      << \makeClusters {
-        as16 <as b>
-        <g b>
-        <g cis>
-      } \\ {
-        \override Staff.Arpeggio  #'arpeggio-direction =#down
-        <cis, e, gis, b, cis>4\arpeggio
-      }
-    >> }
-  >>
-  \midi {
-    \context {
-      \Score
-      tempoWholesPerMinute = #(ly:make-moment 60 8)
-    }
-  }
-  \layout {
-    \context {
-      \Staff
-      \consists Horizontal_bracket_engraver
-    }
-  }
-}
-@end lilypond
-
-Todos los fragmentos mostrados se han escrito a mano, pero esto no es
-necesariamente así.  Puesto que el motor de formateo es casi
-completamente automático, puede servir como medio de salida para otros
-programas que manipulan música.  Por ejemplo, se puede usar también
-para convertir bases de datos de fragmentos musicales en imágenes con
-destino a páginas web y presentaciones multimedia.
-
-Este manual también es un ejemplo de aplicación: el formato de entrada
-es texto sencillo, y por ello se puede empotrar fácilmente dentro de
-otros formatos basados en texto, como @LaTeX{}, HTML, o en el caso
-concreto de este manual, Texinfo.  A través de un programa especial,
-los fragmentos de entrada se pueden sustituir por imágenes musicales
-dentro de los archivos de salida PDF o HTML resultantes.  Esto
-convierte la tarea de mezclar música y texto dentro de los documentos,
-en algo muy sencillo.
-
-
-
-@node Sobre la documentación
-@section Sobre la documentación
-@translationof About the documentation
-
-Esta sección explica la distintas partes de la documentación.
-
-@cindex Manual de aprendizaje
-@cindex Glosario musical
-@cindex Referencia de la notación
-@cindex Utilización del programa
-@cindex Fragmentos de código
-@cindex Referencia de funcionamiento interno
-
-@c leave these lines wrapping around.  It's some texinfo 4.12 thing. -gp
-@c This is actually a limitation of texi2html. -jm
-@menu
-* Sobre el Manual de aprendizaje::   Este manual es una introducción a LilyPond que proporciona explicaciones en profundidad sobre cómo crear notación.
-* Sobre el Glosario Musical::    Este manual explica términos musicales y aporta traducciones de términos a otros idiomas.
-* Sobre la Referencia de la notación::  Este manual es la porción más importante de la documentación.  Proporciona información detallada sobre la creación de notación.  Este libro da por supuesto que el lector ya conoce el material básico cubierto en el Manual de aprendizaje y que está familiarizado con los términos musicales ingleses presentados en el Glosario musical.
-* Sobre el manual de Utilización del programa::  Trata sobre los programas concretos y los asuntos específicos de distintos sistemas operativos.
-* Sobre la lista de fragmentos de código::      Es una colección de ejemplos breves de LilyPond.
-* Sobre el Manual de Referencia de Funcionamiento Interno::  Este documento proporciona información sobre la programación interna de LilyPond, que es necesaria para construir los trucos.
-* Otros documentos::         Existen algunas otras porciones de la documentación, como las Noticias y los archivos históricos de las listas de correo.
-@end menu
-
-
-@node Sobre el Manual de aprendizaje
-@unnumberedsubsec Sobre el Manual de aprendizaje
-@translationof About the Learning Manual
-
-@cindex Manual de aprendizaje
-
-Este libro explica cómo empezar a aprender LilyPond, así como algunos
-conceptos clave en términos sencillos.  Se recomienda leer estos
-capítulos de forma secuencial.
-
-@itemize
-
-@item
-@ref{Introducción}:
-explica los antecedentes y las metas generales de LilyPond.
-
-@item
-@ref{Tutorial}:
-da una amable introducción a la tipografía musical.  Los usuarios que
-se acercan por primera vez deben comenzar por aquí.
-
-@item
-@ref{Conceptos fundamentales}:
-explica algunos conceptos generales sobre el formato de los archivos
-de entrada de LilyPond.  Si no está seguro de dónde colocar una
-instrucción ¡lea este capítulo!
-
-@item
-@ref{Trucar la salida}:
-muestra la manera de cambiar el grabado predeterminado que produce
-LilyPond.
-
-@item
-@ref{Trabajar en proyectos de LilyPond}:
-trata los usos prácticos de LilyPond y cómo evitar ciertos problemas
-bastante comunes.  ¡Léalo antes de emprender proyectos grandes!
-
-
-@end itemize
-
-El Manual de aprendizaje contiene también apéndices que no forman
-parte de la lectura lineal recomendada.  Pueden ser útiles para una
-mirada posterior:
-
-@itemize
-
-@item
-@ref{Plantillas}: muestra plantillas de piezas de LilyPond, listas para
-usar.  Tan sólo tiene que cortar y pegar una plantilla en un archivo,
-escribir las notas, y ¡habrá terminado!
-
-@item
-@ref{Tutorial de Scheme}: presenta una breve introducción a Scheme, el
-lenguaje de programación que usan las funciones musicales.  Se trata
-de material para trucos avanzados; muchos usuarios jamás llegan
-siquiera a tocar el Scheme.
-
-@end itemize
-
-
-@node Sobre el Glosario Musical
-@unnumberedsubsec Sobre el Glosario Musical
-@translationof About the Music Glossary
-
-@cindex Glosario musical
-@cindex frase idiomática
-@cindex jerga
-@cindex terminología
-@cindex idiomas extranjeros
-@cindex idiomas
-
-@rglosnamed{Top,Glosario musical}: explica términos musicales e incluye
-traducciones a varios idiomas.  Si no está familiarizado con la
-notación o la terminología musicales (especialmente si no es un
-anglófono nativo), es muy recomendable que consulte el glosario.
-
-
-@node Sobre la Referencia de la notación
-@unnumberedsubsec Sobre la Referencia de la notación
-@translationof About the Notation Reference
-
-@cindex Referencia de la notación
-@cindex apéndices
-@cindex referencia, cuadros de
-@cindex cuadros de referencia
-
-Este libro explica todas las instrucciones de LilyPond que producen
-notación impresa.  Da por supuesto que el lector está familiarizado
-con los conceptos del manual de aprendizaje.
-
-@itemize
-
-@item
-@ruser{Notación musical}:
-trata ciertos temas agrupados según las construcciones de notación.
-Esta sección proporciona detalles sobre notación básica que
-probablemente serán de utilidad en casi cualquier proyecto de
-notación.
-
-@item
-@ruser{Notación especializada}:
-también trata los temas agrupados por construcciones de notación.
-Esta sección proporciona detalles sobre notación especial que
-solamente será útil para ciertos grupos de instrumentos (o voces).
-
-@item
-@ruser{Entrada y salida generales}:
-trata de información general sobre los archivos de LilyPond y el
-control sobre la salida.
-
-@item
-@ruser{Problemas de espaciado}:
-trata asuntos que afectan a la salida global, como la elección del
-tamaño del papel o la especificación de los saltos de página.
-
-@item
-@ruser{Cambiar los valores por omisión}:
-explica cómo hacer los ajustes que permitan a LilyPond producir
-exactamente la notación que desee.
-
-@item
-@ruser{Interfaces para programadores}:
-explica cómo crear funciones musicales con Scheme.
-
-@end itemize
-
-El manual de Referencia de la notación también contiene unos apéndices con útiles tablas de
-referencia.
-
-
-@itemize
-
-@item
-@ruser{Lista bibliográfica}:
-contiene un conjunto de libros de referencia muy útiles para aquellas
-personas que desean saber más sobre notación y grabado.
-
-@item
-@ruser{Tablas del manual sobre notación}:
-son un conjunto de tablas que relacionan los nombres de los acordes,
-instrumentos MIDI, nombres de los colores y la tipografía Feta.
-
-@item
-@ruser{Hoja de referencia rápida}:
-es una manejable referencia de las instrucciones de LilyPond más
-comunes.
-
-@item
-@ruser{Índice de instrucciones de LilyPond}:
-un índice de todas las @code{\instrucciones} de LilyPond.
-
-@item
-@ruser{Índice de LilyPond}:
-un índice completo.
-
-@end itemize
-
-@node Sobre el manual de Utilización del programa
-@unnumberedsubsec Sobre el manual de Utilización del programa
-@translationof About the Application Usage
-
-@cindex Utilización del programa
-@cindex integrar LilyPond con otros programas
-
-Este libro explica la manera de ejecutar el programa y cómo integrar
-la notación de LilyPond con otros programas.
-
-@itemize
-
-@item
-@rprogram{Instalación}:
-explica cómo instalar LilyPond (incluyendo la compilación, si se
-desea).
-
-@item
-@rprogram{Configuración}:
-describe cómo debe configurar el sistema para una utilización óptima
-de LilyPond, como por ejemplo el uso de entornos especiales para
-determinados editores de texto.
-
-@item
-@rprogram{Ejecutar LilyPond}:
-trata sobre cómo ejecutar LilyPond y sus programas de apoyo.  Además,
-esta sección explica cómo actualizar las partituras a partir de
-versiones anteriores de LilyPond.
-
-@item
-@rprogram{LilyPond-book}:
-da los detalles que se encuentran detrás de la creación de documentos
-con ejemplos de música insertados, como este mismo manual.
-
-@item
-@rprogram{Conversión desde otros formatos}:
-explica cómo ejecutar los programas de conversión.  Estos programas
-vienen incluidos en el mismo paquete que el propio LilyPond, y
-convierten una amplia variedad de formatos de música al formato
-@code{.ly}.
-
-@end itemize
-
-@node Sobre la lista de fragmentos de código
-@unnumberedsubsec Sobre la lista de fragmentos de código
-@translationof About the Snippet List
-
-@cindex snippets (fragmentos de código)
-@cindex fragmentos de código (snippets)
-@cindex LSR
-@cindex LilyPond Snippet Repository
-
-@rlsrnamed{Top,Lista de fragmentos de código de LilyPond}: presenta un conjunto
-seleccionado de fragmentos de código de LilyPond procedentes del
-@uref{http://lsr@/.dsi@/.unimi@/.it,Repositorio de Fragmentos de
-Código} (LSR).  Todos los fragmentos se encuentran en el dominio
-público.
-
-Observe que este documento no es un subconjunto exacto de LSR.  El LSR
-ejecuta una versión estable de LilyPond, por lo que cualquier
-fragmento de código que muestre posibilidades nuevas de una versión de
-desarrollo se tiene que añadir por separado.  Éstas se almacenan en
-@file{input/new/} dentro del árbol del código fuente de LilyPond.
-
-La lista de fragmentos de código para cada una de las subsecciones del
-Manual de Referencia de la Notación también se encuentran
-enlazados desde la parte @strong{Véase también}.
-
-
-@node Sobre el Manual de Referencia de Funcionamiento Interno
-@unnumberedsubsec Sobre el Manual de Referencia de Funcionamiento Interno
-@translationof About the Internals Reference
-
-@cindex Referencia de funcionamiento interno
-
-@rinternalsnamed{Top,Referencia de funcionamiento interno}:
-es un conjunto de páginas HTML con una tupida red de enlaces cruzados,
-que documentan al detalle el meollo de todas y cada una de las clases,
-objetos y funciones de LilyPond.  Se produce directamente a partir de
-las definiciones de formateo que se utilizan.
-
-Casi toda la funcionalidad de formateo que se emplea internamente, se
-encuentra disponible para el usuario de forma directa.  Por ejemplo,
-todas las variables que controlan los valores de grosor, distancias,
-etc., se pueden cambiar dentro de los archivos de entrada.  Hay un
-enorme número de opciones de formateo, y todas ellas se describen en
-este documento.  Cada sección del manual de notación tiene una
-subsección @b{Véase también}, que hace referencia a la documentación
-generada.  En el documento HTML, estas subsecciones llevan enlaces que
-se pueden seguir, pulsando sobre ellos.
-
-
-@node Otros documentos
-@unnumberedsubsec Otros documentos
-@translationof Other documentation
-
-Existen algunos otros lugares que pueden resultar muy valiosos como
-fuente de información.
-
-@itemize
-
-@item
-@ifhtml
-@ifset bigpage
-@uref{../topdocs/NEWS.html,News}:
-@end ifset
-@ifclear bigpage
-@uref{../../topdocs/NEWS.html,News}:
-@end ifclear
-@end ifhtml
-@ifnothtml
-Noticias:
-@end ifnothtml
-es un resumen de los cambios importantes y las posibilidades nuevas de
-LilyPond desde la versión anterior.
-
-@item @uref{http://lists.gnu.org/archive/html/lilypond-user/, Los archivos de la
-lista de correo de usuarios lilypond-user}: es una recopilación de
-todos los mensajes de correo que se han enviado a la lista de
-usuarios.  Hay muchas preguntas que se han formulado varias veces; muy
-probablemente, si tiene alguna pregunta, la respuesta puede
-encontrarse en estos archivos.
-
-@item @uref{http://lists.gnu.org/archive/html/lilypond-devel/, Los
-archivos de la lista de correo de desarrollo lilypond-devel}: es una
-recopilación de todos los mensajes de correo que se han enviado a la
-lista de los desarrolladores.  Aquí la discusión tiene un carácter más
-técnico; si tiene una pregunta avanzada relacionada con el
-funcionamiento interno de lilypond, la respuesta puede estar en estos
-archivos.
-
-@item Fragmentos de música incrustados: en todos los documentos en HTML que
-tienen fragmentos de música incluidos, el código de entrada exacto de
-LilyPond que se utilizó para producir dicha imagen se puede ver
-pulsando sobre ella.
-
-@item Archivos de inicio: La localización exacta de los archivos de
-documentación que hemos mencionado puede variar de un sistema a otro.
-En ocasiones este manual hace referencia a archivos de inicialización
-y de ejemplo.  A lo largo del manual, nos referimos a archivos de
-entrada por su ruta relativa respecto de directorio de nivel más alto
-de los archivos de código fuente.  Por ejemplo,
-@file{input/@/lsr/@/carpeta/@/bla@/.ly} puede referirse al archivo
-@file{lilypond@/2.x.y/@/input/@/lsr/@/carpeta/@/bla@/.ly}.  En los
-paquetes binarios para la plataforma UNIX, normalmente la
-documentación y los ejemplos se encuentran en algún lugar dentro de
-@file{/usr/@/share/@/doc/@/lilypond/}. Los archivos de inicialización,
-como por ejemplo @file{scm/@/lily@/.scm}, o
-@file{ly/@/engraver@/-init@/.ly}, se encuentran normalmente en el
-directorio @file{/usr/@/share/@/lilypond/}. Para ver más detalles,
-consulte @ref{Otras fuentes de información}.
-
-@end itemize
index a88394b07993cffe0de6a022d4caa64e76cea1c6..808896c7bcf451dd803638fec10ba8d6155c26c0 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 
 @ignore
-    Translation of GIT committish: 53e7994b85468239c583d998fd193ec4560178a7
+    Translation of GIT committish: e18567dccce0f16b680e6b7e562329e5f8bcae59
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -623,7 +623,6 @@ versión en línea.
 @menu
 * Material omitido::
 * Ejemplos con enlace::
-* Navegación con el teclado::
 * Panorámica de los manuales::
 @end menu
 
@@ -701,8 +700,11 @@ para sus experimentos. Para poder ver exactamente el mismo resultado
 @qq{Start cut-&-pastable section} hasta el final del archivo.
 
 
-@node Navegación con el teclado
-@subsection Navegación con el teclado
+@ignore
+This is item 825
+
+@n ode Navegación con el teclado
+@s ubsection Navegación con el teclado
 @translationof Keyboard navigation
 
 @warning{Esta posibilidad sólo está disponible en los manuales en
@@ -711,7 +713,7 @@ HTML.}
 @c TODO: once this is figured out, insert it here.
 
 Estamos trabajando sobre esta funcionalidad.
-
+@end ignore
 
 @node Panorámica de los manuales
 @subsection Panorámica de los manuales
index 76cd86e1785b23c5ab122cea0312a6f2db27ac91..883eaf70067d52140d2dc811cd5759c3448821bf 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 
 @ignore
-    Translation of GIT committish: 5f51567fbc5d7a811e147ebd01f103e066f36b3a
+    Translation of GIT committish: 412fa426d510594ec7772c7cf7b568e376bd1c84
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -316,7 +316,7 @@ a b c
 Hay otra forma para la instrucción de sobreescritura,
 @code{\overrideProperty}, que ocasionalmente es necesaria.  La
 mencionamos aquí con un propósito de exhaustividad, pero para ver más
-detalles consulte @ruser{Trucos difíciles}.
+detalles consulte @rextend{Trucos difíciles}.
 @c Maybe explain in a later iteration  -td
 
 @strong{La instrucción \tweak}
@@ -858,7 +858,8 @@ Algunos de ellos son nombres de propiedades, como @code{thickness} o
 a las propiedades, como @code{italic}.  Observe la distinción entre
 esto y las cadenas de texto arbitrarias, que aparecerían
 entrecomilladas como @code{"a text string"}.  Para ver más detalles
-relacionados con los símbolos y las cadenas, consulte @ref{Tutorial de Scheme}.
+relacionados con los símbolos y las cadenas, consulte
+@rextend{Tutorial de Scheme}.
 
 Así pues, la instrucción @code{\override} necesaria para imprimir la
 letra en cursiva, es:
@@ -924,8 +925,8 @@ nombre del contexto y el nombre del objeto.}
 
 
 @seealso
-Manual de aprendizaje:
-@ref{Tutorial de Scheme}.
+Manual de Extensión:
+@rextend{Tutorial de Scheme}.
 
 
 @node Tipos de propiedades
@@ -992,8 +993,8 @@ en la instrucción @code{\override}.
 
 
 @seealso
-Manual de aprendizaje:
-@ref{Tutorial de Scheme}.
+Manual de Extensión:
+@rextend{Tutorial de Scheme}.
 
 
 @node Apariencia de los objetos
@@ -1570,7 +1571,8 @@ de forma predeterminada, a las líneas de los reguladores se les da un
 grosor de 1 unidad de @code{line-thickness}, mientras que el
 @code{thickness} de una plica es 1.3.  Observe sin embargo que ciertas
 propiedades de grosor son diferentes; por ejemplo, el grosor de las
-barras de corchea se mide en espacios de pentagrama.
+barras de corchea se controla por medio del valor de
+@code{beam-thickness}, que se mide en espacios de pentagrama.
 
 Entonces ¿cómo se tienen que escalar las longitudes en proporción al
 tamaño de la tipografía?  Se puede hacer con la ayuda de una función
@@ -1847,7 +1849,7 @@ nota, deberá elegir entre usar la instrucción @code{\once \override}
 equivalente, o usar la instrucción predefinida, seguida después de la
 nota afectada por la instrucción @code{\xxxNeutral} correspondiente.
 
-@subheading Digitaciones
+@unnumberedsubsubsec Digitaciones
 
 @cindex digitación, colocación
 @cindex digitación de acordes
@@ -2014,6 +2016,21 @@ presenta los valores numéricos predeterminados para algunos de los
 objetos fuera-del-pentagrama que están inicialmente dentro de los
 contextos @code{Staff} o @code{Voice}.
 
+@cindex objetos de extensión
+
+Observe los nombres algo inusuales de algunos de los objetos: los
+objetos de extensión se cearn automáticamente para controlar el
+posicionamiento vertical de los grobs que (quizá) comienzan y terminan
+en distintos momentos musicales, de manera que cualquier modificación
+a la prioridad @code{outside-staff-priority} del grob subyacente no
+tiene ningún efecto.  Por ejemplo, cambiar la
+@code{outside-staff-priority} del objeto de regulador @code{Hairpin}
+no tiene efecto sobre la posición vertical de los reguladores: en
+lugar de eso, tenemos que cambar la @code{outside-staff-priority} del
+objeto asociado @code{DynamicLineSpanner}.  Esta sobreeascritura se
+debe escribir al comienzo del objeto de extensión, que podría incluir
+varios reguladores o matices dinámicos encadenados.
+
 @multitable @columnfractions .3 .3 .3
 @headitem Objeto de presentación
   @tab Prioridad
@@ -2064,14 +2081,13 @@ de ellos.
 % Start Ottava Bracket
 \ottava #1
 c' \startTextSpan
-% Add Dynamic Text
-c\pp
-% Add Dynamic Line Spanner
-c\<
+% Add Dynamic Text and hairpin
+c\pp\<
+c
 % Add Text Script
 c^Text
 c c
-% Add Dynamic Text
+% Add Dynamic Text and terminate hairpin
 c\ff c \stopTextSpan
 % Stop Ottava Bracket
 \ottava #0
@@ -2713,11 +2729,11 @@ de él.
 
 La propiedad @code{right-padding} afecta al espaciado entre la
 alteración y la nota a que se aplica.  Normalmente no es necesaria,
-pero el ejemplo siguiente muestra una situación en la que sí se
-necesita.  Suponga que queremos presentar un acorde que contiene un Si
-natural y un Si bemol.  Para evitar la ambigüedad querríamos preceder
-las notas con un becuadro y un bemol.  Aquí vienen varios intentos de
-hacerlo así:
+pero el espaciado predeterminado puede estar mal para ciertos glifos
+de alteraciones o combinaciones de glifos que se usan en música
+microtonal.  Éstos tienen que introducirse sobreescribiendo el sello
+de la alteración con un elemento de marcado que contenga los símbolos
+deseados, así:
 
 @cindex Accidental, ejemplo de sobreescritura
 @cindex text, propiedad, ejemplo
@@ -2725,27 +2741,22 @@ hacerlo así:
 @cindex AccidentalPlacement, ejemplo de sobreescritura
 @cindex right-padding, propiedad, ejemplo
 
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-<b bes>
-<b! bes>
-<b? bes>
-@end lilypond
-
-Ninguno de ellos funciona y el segundo además presenta una fea
-colisión entre las dos alteraciones.
-
-Una forma de conseguirlo es sobreescribir el sello de la alteración
-con un elemento de marcado que contenga los símbolos de becuadro y
-bemol en el orden que nos gustaría que estuvieran, así:
 
 @lilypond[quote,ragged-right,verbatim]
-naturalplusflat = \markup { \natural \flat }
+sesquisharp = \markup { \sesquisharp }
 \relative c'' {
+  c
+  % This prints a sesquisharp but the spacing is too small
   \once \override Accidental
     #'stencil = #ly:text-interface::print
-  \once \override Accidental #'text = #naturalplusflat
-  \once \override Score.AccidentalPlacement #'right-padding = #1.5
-  <b bes>
+  \once \override Accidental #'text = #sesquisharp
+  cis c
+  % This improves the spacing
+  \once \override Score.AccidentalPlacement #'right-padding = #0.6
+  \once \override Accidental
+    #'stencil = #ly:text-interface::print
+  \once \override Accidental #'text = #sesquisharp
+  cis
 }
 @end lilypond
 
@@ -2754,8 +2765,8 @@ Esto utiliza necesariamente una sobreescritura para el sello de la
 alteración que no se estudiará hasta más adelante.  El tipo de sello
 debe ser un procedimiento, aquí modificado para que imprima el
 contenido de la propiedad @code{text} del objeto @code{Accidental},
-que a su vez está establecido como un signo de becuadro seguido de un
-bemol.  Entonces el conjunto se puede separar de la cabeza de la nota
+que a su vez está establecido como un signo de sesquisostenido.
+Entonces el signo se puede separar de la cabeza de la nota
 sobreescribiendo @code{right-padding}.
 
 @noindent
@@ -2955,9 +2966,6 @@ segunda voz.
 
 @subheading la propiedad force-hshift (forzar desplazamiento horizontal)
 
-@c FIXME: formatting stuff  (ie not important right now IMO)
-@c @a nchor Chopin finally corrected TODOgp
-
 Ahora podremos ver cómo aplicar las correcciones finales al ejemplo de
 Chopin que presentamos al final de @ref{Oigo voces}, que
 dejamos con este aspecto:
@@ -3029,7 +3037,9 @@ resultado, pero para evitar complicar demasiado el ejemplo hemos
 quitado las indicaciones dinámicas, las digitaciones y el pedal.
 
 @c The following should appear as music without code
-@lilypond[quote,ragged-right]
+@c This example should not be indexed
+@c line-width ensures no break
+@lilypond[quote,ragged-right,line-width=5.5\in]
 rhMusic = \relative c'' {
   r2
   c4.\( g8 |
@@ -3041,7 +3051,7 @@ rhMusic = \relative c'' {
   \mergeDifferentlyDottedOn
   bes2.^\markup {\bold "Moderato"} r8
   <<
-    {c,8[ d fis bes a] | }
+    {c,8 d fis bes a | }
   \\
     % Reposition the c2 to the right of the merged note
     {c,8~ \once \override NoteColumn #'force-hshift = #1.0
@@ -3091,7 +3101,8 @@ momento en que se necesiten.  Si ha olvidado cómo hacerlo, lea
 como dos variables y disponiendo la estructura de pentagramas en un
 bloque Score, y veremos qué produce LilyPond de forma predeterminada:
 
-@lilypond[quote,verbatim,ragged-right]
+@c line-width ensures no break
+@lilypond[quote,verbatim,ragged-right,line-width=5.5\in]
 rhMusic = \relative c'' {
   r2 c4. g8 |
   bes1~ |
@@ -3133,16 +3144,15 @@ lhMusic = \relative c' {
 @end lilypond
 
 Todas las notas son correctas, pero el aspecto está lejos de ser
-satisfactorio.  La ligadura de unión choca con el cambio de compás, el
-barrado del tercer compás es incorrecto, las notas no se funden
-correctamente, y faltan algunos elementos de notación.  En primer
-lugar trataremos con lo más fácil.  Podemos corregir el barrado de las
-corcheas insertando una barra manualmente, y podemos añadir fácilmente
-la ligadura de expresión de la mano izquierda y la ligadura de fraseo
-de la mano derecha, pues todo ello se estudió en el Tutorial.  Al
-hacerlo así obtenemos:
-
-@lilypond[quote,verbatim,ragged-right]
+satisfactorio.  La ligadura de unión choca con el cambio de compás,
+las notas no se funden correctamente, y faltan algunos elementos de
+notación.  En primer lugar trataremos con lo más fácil.  Podemos
+añadir fácilmente la ligadura de expresión de la mano izquierda y la
+ligadura de fraseo de la mano derecha, pues todo ello se estudió en el
+Tutorial.  Al hacerlo así obtenemos:
+
+@c line-width ensures no break
+@lilypond[quote,verbatim,ragged-right,line-width=5.5\in]
 rhMusic = \relative c'' {
   r2 c4.\( g8 |
   bes1~ |
@@ -3150,7 +3160,7 @@ rhMusic = \relative c'' {
   bes2. r8
   % Start polyphonic section of four voices
   <<
-    {c,8[ d fis bes a] | }
+    {c,8 d fis bes a | }
   \\
     {c,8~ c2 | }
   \\
@@ -3206,7 +3216,8 @@ central:
 
 Con esto se completa el compás dos, dando como resultado:
 
-@lilypond[quote,verbatim,ragged-right]
+@c line-width ensures no break
+@lilypond[quote,verbatim,ragged-right,line-width=5.5\in]
 rhMusic = \relative c'' {
   r2 c4.\( g8 |
   \once \override Tie #'staff-position = #3.5
@@ -3216,7 +3227,7 @@ rhMusic = \relative c'' {
   bes2. r8
   % Start polyphonic section of four voices
   <<
-    {c,8[ d fis bes a] | }
+    {c,8 d fis bes a | }
   \\
     {c,8~ c2 | }
   \\
@@ -3278,7 +3289,8 @@ al principio de la sección, y
 @noindent
 al final, dando como resultado:
 
-@lilypond[quote,verbatim,ragged-right]
+@c line-width ensures no break
+@lilypond[quote,ragged-right,line-width=5.5\in]
 rhMusic = \relative c'' {
   r2 c4.\( g8 |
   \once \override Tie #'staff-position = #3.5
@@ -3290,7 +3302,7 @@ rhMusic = \relative c'' {
   \mergeDifferentlyDottedOn
   % Start polyphonic section of four voices
   <<
-    {c,8[ d fis bes a] | }
+    {c,8 d fis bes a | }
   \\
     {c,8~ c2 | }
   \\
@@ -3344,7 +3356,8 @@ aplicar estos cambios obtenemos:
 @cindex Tie, ejemplo de sobreescritura
 @cindex staff-position, propiedad, ejemplo
 
-@lilypond[quote,verbatim,ragged-right]
+@c line-width ensures no break
+@lilypond[quote,verbatim,ragged-right,line-width=5.5\in]
 rhMusic = \relative c'' {
   r2 c4.\( g8 |
   \once \override Tie #'staff-position = #3.5
@@ -3356,7 +3369,7 @@ rhMusic = \relative c'' {
   \mergeDifferentlyDottedOn
   % Start polyphonic section of four voices
   <<
-    {c,8[ d fis bes a] | }
+    {c,8 d fis bes a | }
   \\
     % Move the c2 out of the main note column so the merge will work
     {c,8~ \shiftOnn c2 | }
@@ -3405,7 +3418,8 @@ final:
 @cindex Stem, ejemplo de sobreescritura
 @cindex transparent, propiedad, ejemplo
 
-@lilypond[quote,verbatim,ragged-right]
+@c line-width ensures no break
+@lilypond[quote,verbatim,ragged-right,line-width=5.5\in]
 rhMusic = \relative c'' {
   r2
   c4.\( g8 |
@@ -3417,7 +3431,7 @@ rhMusic = \relative c'' {
   \mergeDifferentlyHeadedOn
   \mergeDifferentlyDottedOn
   <<
-    {c,8[ d fis bes a] | }
+    {c,8 d fis bes a | }
   \\
     % Reposition the c2 to the right of the merged note
     {c,8~ \once \override NoteColumn #'force-hshift = #1.0
@@ -3464,6 +3478,7 @@ lhMusic = \relative c' {
 @menu
 * Otras aplicaciones de los trucos::
 * Uso de variables para los trucos::
+* Hojas de estilo::
 * Otras fuentes de información::
 * Evitar los trucos con un proceso ralentizado::
 * Trucos avanzados con Scheme::
@@ -3689,6 +3704,268 @@ VerseFour  = \lyricmode { O | \emphasize Tri -- ni -- ty \normal of | love and p
 @end lilypond
 
 
+@node Hojas de estilo
+@subsection Hojas de estilo
+@translationof Style sheets
+
+La salida que produce LilyPond se puede modificar profundamente;
+consulte @ref{Trucar la salida} para leer detalles sobre este asunto.
+Pero ¿qué ocurre si tiene muchos archivos a los que les quiere aplicar
+sus propios trucos?  O ¿qué ocurre si, sencillamente, quiere separar
+los trucos de la propia música?  Todo esto es bastante fácil de
+conseguir.
+
+Veamos un ejemplo.  No se preocupe si no entiende
+las partes que tienen todos los @code{#()}.  Esto se explicará en
+@ref{Trucos avanzados con Scheme}.
+
+@lilypond[quote,verbatim,ragged-right]
+mpdolce = #(make-dynamic-script (markup #:hspace 0 #:translate '(5 . 0)
+  #:line(#:dynamic "mp" #:text #:italic "dolce" )))
+
+inst = #(define-music-function (parser location string) (string?)
+  (make-music
+    'TextScriptEvent
+    'direction UP
+    'text (markup #:bold (#:box string))))
+
+\relative c'' {
+  \tempo 4=50
+  a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
+  \inst "Clarinet"
+  cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
+}
+@end lilypond
+
+Existen varios problemas con la salida que se superpone; los
+arreglaremos utilizando las técnicas descritas en @ref{Mover objetos}.  Pero también haremos algo respecto a las definiciones
+@code{mpdolce} e @code{inst}.  Éstas producen la salida que deseamos,
+pero quizá las querríamos utilizar en otra pieza.  Podríamos
+simplemente copiarlas y pegarlas al principio de cada archivo, pero
+sería bastante molesto.  También hace que se queden las definiciones a
+la vista dentro de nuestros archivos de música, y yo personalmente
+encuentro todos los @code{#()} bastante poco estéticos.  Los vamos a
+esconder dentro de otro archivo:
+
+@example
+%%% guardar esto en un archivo de nombre "definiciones.ily"
+mpdolce = #(make-dynamic-script (markup #:hspace 0 #:translate '(5 . 0)
+  #:line(#:dynamic "mp" #:text #:italic "dolce" )))
+
+inst = #(define-music-function (parser location string) (string?)
+  (make-music
+    'TextScriptEvent
+    'direction UP
+    'text (markup #:bold (#:box string))))
+@end example
+
+Haremos referencia a este archivo utilizando la instrucción
+@code{\include} al principio del archivo de música (la extensión
+@code{.ily} se utiliza para distinguir este archivo de inclusión --que
+se supone que no debe ser procesado de forma independiente-- del
+archivo principal).  Ahora modificaremos la música (guardemos este
+archivo como @file{"musica.ly"}).
+
+@c  We have to do this awkward example/lilypond-non-verbatim
+@c  because we can't do the \include stuff in the manual.
+
+@example
+\include "definiciones.ily"
+
+\relative c'' @{
+  \tempo 4=50
+  a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
+  \inst "Clarinete"
+  cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
+@}
+@end example
+
+@lilypond[quote,ragged-right]
+mpdolce = #(make-dynamic-script (markup #:hspace 0 #:translate '(5 . 0)
+  #:line(#:dynamic "mp" #:text #:italic "dolce" )))
+
+inst = #(define-music-function (parser location string) (string?)
+  (make-music
+    'TextScriptEvent
+    'direction UP
+    'text (markup #:bold (#:box string))))
+
+\relative c'' {
+  \tempo 4=50
+  a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
+  \inst "Clarinet"
+  cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
+}
+@end lilypond
+
+
+
+Eso tiene mejor aspecto, pero haremos algunos cambios más.  El glissando es difícil
+de ver, así que lo haremos más grueso y lo acercaremos a las cabezas de las notas.  Pondremos
+la indicación metronómica encima de la clave, en lugar de ir encima de la primera
+nota.  Y por último, mi profesor de composición odia las indicaciones de compás @q{C},
+así que la convertiremos en @q{4/4}.
+
+Sin embargo, no debemos cambiar el archivo @file{musica.ly}.
+Sustituyamos nuestro archivo @file{definiciones.ily} con éste:
+
+@example
+%%%  definiciones.ily
+mpdolce = #(make-dynamic-script (markup #:hspace 0 #:translate '(5 . 0)
+  #:line( #:dynamic "mp" #:text #:italic "dolce" )))
+
+inst = #(define-music-function (parser location string) (string?)
+  (make-music
+    'TextScriptEvent
+    'direction UP
+    'text (markup #:bold (#:box string))))
+
+\layout@{
+  \context @{ \Score
+    \override MetronomeMark #'extra-offset = #'(-9 . 0)
+    \override MetronomeMark #'padding = #'3
+  @}
+  \context @{ \Staff
+    \override TimeSignature #'style = #'numbered
+  @}
+  \context @{ \Voice
+    \override Glissando #'thickness = #3
+    \override Glissando #'gap = #0.1
+  @}
+@}
+@end example
+
+@lilypond[quote,ragged-right]
+mpdolce = #(make-dynamic-script (markup #:hspace 0 #:translate '(5 . 0)
+  #:line( #:dynamic "mp" #:text #:italic "dolce" )))
+
+inst = #(define-music-function (parser location string) (string?)
+  (make-music
+    'TextScriptEvent
+    'direction UP
+    'text (markup #:bold (#:box string))))
+
+\layout{
+  \context { \Score
+    \override MetronomeMark #'extra-offset = #'(-9 . 0)
+    \override MetronomeMark #'padding = #'3
+  }
+  \context { \Staff
+    \override TimeSignature #'style = #'numbered
+  }
+  \context { \Voice
+    \override Glissando #'thickness = #3
+    \override Glissando #'gap = #0.1
+  }
+}
+
+\relative c'' {
+  \tempo 4=50
+  a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
+  \inst "Clarinet"
+  cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
+}
+@end lilypond
+
+¡Eso tiene un aspecto mucho mejor!  Ahora suponga que quiere publicar esta
+pieza.  A mi profesor de composición no le gustan las indicaciones de compás @q{C},
+pero yo les tengo cierto cariño.  Copiaremos el archivo
+actual @file{definiciones.ily} a @file{publicar-web.ily} y modificaremos
+éste.  Como el propósito de esta música es producir un PDF que va a mostrarse
+en la pantalla, también vamos a aumentar el
+tamaño general de la salida.
+
+@example
+%%%  definiciones.ily
+mpdolce = #(make-dynamic-script (markup #:hspace 0 #:translate '(5 . 0)
+  #:line( #:dynamic "mp" #:text #:italic "dolce" )))
+
+inst = #(define-music-function (parser location string) (string?)
+  (make-music
+    'TextScriptEvent
+    'direction UP
+    'text (markup #:bold (#:box string))))
+
+#(set-global-staff-size 23)
+\layout@{
+  \context @{ \Score
+    \override MetronomeMark #'extra-offset = #'(-9 . 0)
+    \override MetronomeMark #'padding = #'3
+  @}
+  \context @{ \Staff
+  @}
+  \context @{ \Voice
+    \override Glissando #'thickness = #3
+    \override Glissando #'gap = #0.1
+  @}
+@}
+@end example
+
+@lilypond[quote,ragged-right]
+mpdolce = #(make-dynamic-script (markup #:hspace 0 #:translate '(5 . 0)
+  #:line( #:dynamic "mp" #:text #:italic "dolce" )))
+
+inst = #(define-music-function (parser location string) (string?)
+  (make-music
+    'TextScriptEvent
+    'direction UP
+    'text (markup #:bold (#:box string))))
+
+#(set-global-staff-size 23)
+\layout{
+  \context { \Score
+    \override MetronomeMark #'extra-offset = #'(-9 . 0)
+    \override MetronomeMark #'padding = #'3
+  }
+  \context { \Voice
+    \override Glissando #'thickness = #3
+    \override Glissando #'gap = #0.1
+  }
+}
+
+\relative c'' {
+  \tempo 4=50
+  a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
+  \inst "Clarinet"
+  cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
+}
+@end lilypond
+
+Ahora, en la música, simplemente sustituyo @code{\include
+"definiciones.ily"} por @code{\include "publicar-web.ily"}.  Por
+supuesto, podríamos hacer esto aún más práctico.  Podríamos hacer un
+archivo @file{definiciones.ily} que contuviera solamente las
+definiciones de @code{mpdolce} y de @code{inst}, un archivo
+@file{publicar-web.ily} que contuviera solamente la sección
+@code{\layout} que se mostró en el ejemplo, y un archivo
+@file{universidad.ily} que contendría solamente los trucos para
+producir la salida que le gusta a mi profesor.  El comienzo de
+@file{musica.ly} tendría entonces este aspecto:
+
+@example
+\include "definiciones.ily"
+
+%%%  ¡Quitar el comentario de una sola de estas líneas!
+\include "publicar-web.ily"
+%\include "universidad.ily"
+@end example
+
+Este enfoque puede ser útil incluso si va a producir sólo un conjunto
+de particellas.  Yo utilizo media docena de archivos de @q{hojas de
+estilo} para mis proyectos.  Comienzo todos los archivos de música con
+@code{\include "../global.ily"}, que contiene
+
+@example
+%%%   global.ily
+\version @w{"@version{}"}
+#(ly:set-option 'point-and-click #f)
+\include "../iniciar/iniciar-definiciones.ily"
+\include "../iniciar/iniciar-disposicion.ily"
+\include "../iniciar/iniciar-cabeceras.ily"
+\include "../iniciar/iniciar-papel.ily"
+@end example
+
+
 @node Otras fuentes de información
 @subsection Otras fuentes de información
 @translationof Other sources of information
@@ -3793,7 +4070,7 @@ explicación adicional sobre estos archivos se encuentra por el momento
 fuera del ámbito de este manual, porque se requieren conocimientos del
 lenguaje Scheme.  Se advierte a los usuarios que se necesita una
 importante cantidad de conocimientos técnicos o de tiempo para
-comprender el lenguaje Scheme y estos archivos (véase @ref{Tutorial de Scheme}).
+comprender el lenguaje Scheme y estos archivos (véase @rextend{Tutorial de Scheme}).
 
 Si ya tiene estos conocimientos, los archivos de Scheme que pueden
 interesarle son:
@@ -3846,6 +4123,13 @@ en línea con la música, de la forma siguiente:
 @}
 @end example
 
+Sin embargo, @code{keep-inside-line} es costoso en términos de
+computación y la recomendación es no activarlo, para permitir un
+procesado más rápido, hasta el momento de crear una versión
+definitiva.  De esta forma, no tiene que añadir instrucciones
+@code{\break} manualmente para evitar que el texto se salga por la
+parte derecha de la página.
+
 @node Trucos avanzados con Scheme
 @subsection Trucos avanzados con Scheme
 @translationof Advanced tweaks with Scheme
@@ -3858,7 +4142,7 @@ puede incorporar código escrito en el lenguaje de programación Scheme,
 directamente en el mecanismo de funcionamiento de LilyPond.  Por
 supuesto, para hacer esto se necesitan al menos unos conocimientos
 básicos de programación en Scheme, y damos una introducción en el
-@ref{Tutorial de Scheme}.
+@rextend{Tutorial de Scheme}.
 
 Como ejemplo que ilustra una de las muchas posibilidades, en lugar de
 dar a una propiedad un valor constante, se puede establecer al
@@ -3892,13 +4176,10 @@ notas un color que depende de su posición dentro del pentagrama.
 \relative c' {
   % Arrange to obtain color from color-notehead procedure
   \override NoteHead #'color = #color-notehead
-  c2 c' |
-  b4 g8 a b4 c |
-  c,2 a' |
-  g1 |
-}
-\addlyrics {
-  Some -- where o -- ver the Rain -- bow, way up high,
+  a2 b |
+  c2 d |
+  e2 f |
+  g2 a |
 }
 @end lilypond
 
diff --git a/Documentation/es/learning/working.itely b/Documentation/es/learning/working.itely
deleted file mode 100644 (file)
index 34278d4..0000000
+++ /dev/null
@@ -1,1304 +0,0 @@
-@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
-
-@ignore
-    Translation of GIT committish: 45945bd973aa9161b10e3f517902afb7ef4b4a56
-
-    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"
-
-@node Trabajar en proyectos de LilyPond
-@chapter Trabajar en proyectos de LilyPond
-@translationof Working on LilyPond projects
-
-Esta sección explica cómo resolver o evitar ciertos problemas comunes.
-Si tiene experiencia en programación muchos de estos
-consejos pueden parecer obvios, pero aún así le recomendamos
-que lea este capítulo.
-
-
-@menu
-* Sugerencias para escribir archivos de entrada de LilyPond::
-* Cuando las cosas no van::
-* Partituras y particellas::
-* Make y los Makefiles::
-@end menu
-
-
-@node Sugerencias para escribir archivos de entrada de LilyPond
-@section Sugerencias para escribir archivos de entrada de LilyPond
-@translationof Suggestions for writing LilyPond input files
-
-En este momento está preparado para comenzar a escribir archivos de
-LilyPond más grandes -- no sólo los pequeños ejemplos que aparecen en
-el tutorial, sino piezas completas --. Pero ¿cómo debe proceder para
-hacerlo?
-
-En la medida en que LilyPond entienda sus archivos y produzca la
-salida que usted pretendía, realmente no importa mucho qué aspecto
-tengan sus archivos.  Sin embargo existen algunas otras cosas a tener
-en cuenta cuando se escriben archivos de LilyPond.
-
-@itemize
-@item ¿Qué ocurre si comete un fallo?  La estructura de un archivo
-de LilyPond puede hacer que ciertos errores se hagan más fáciles (o
-más difíciles) de encontrar.
-
-@item ¿Qué ocurre si quiere compartir sus archivos con otras personas?
-De hecho, ¿y si quiere alterar sus propios archivos después de algunos
-años?  Algunos archivos de LilyPond se comprenden a primera vista;
-otros pueden tenerle rascándose la cabeza durante una hora.
-
-@item ¿Qué ocurre si quiere actualizar su archivo de LilyPond para poderlo usar con
-una versión más reciente del programa?  La sintaxis de la entrada se
-modifica de forma ocasional según LilyPond se va perfeccionando.  Casi
-todos los cambios se pueden hacer de forma automática con
-@code{convert-ly}, pero algunos podrían necesitar de una ayuda manual.
-Los archivos de LilyPond se pueden estructurar para que sean más
-fáciles (o más difíciles) de actualizar.
-
-@end itemize
-
-@menu
-* Sugerencias de tipo general::
-* Tipografiar música existente::
-* Proyectos grandes::
-* Ahorrar tecleo mediante variables y funciones::
-* Hojas de estilo::
-@end menu
-
-
-@node Sugerencias de tipo general
-@subsection Sugerencias de tipo general
-@translationof General suggestions
-
-Presentamos algunas sugerencias que le pueden servir de ayuda para evitar
-o corregir problemas:
-
-@itemize
-@item @strong{Incluya los números de @code{\version} en todos los archivos}.  Dése cuenta de que todas las
-plantillas contienen información sobre la @code{\version}.  Le
-recomendamos mucho que siempre incluya la @code{\version}, sin
-importar cuán pequeño pueda ser su archivo.  Desde la experiencia
-personal podemos decirle que es bastante frustrante intentar recordar
-el número de versión de LilyPond que estaba usando hace unos años.
-@code{convert-ly} requiere que declare qué versión de LilyPond
-utilizó.
-
-@item @strong{Incluya comprobaciones}: @ruser{Comprobación de compás y de número de compás},
-@ruser{Comprobación de octava}.  Si incluye comprobaciones de vez en cuando, en
-caso de que cometa un error podrá localizarlo mucho más rápidamente.
-¿Con qué frecuencia es @q{de vez en cuando}?  Depende de la
-complejidad de la música.  Para una música muy sencilla, quizá tan
-sólo una o dos veces.  Para una música muy compleja, quizá a cada
-compás.
-
-@item @strong{Un compás por cada línea de texto}.  Si hay algo muy complicado, ya sea
-en la propia música o en la salida que desea producir, a menudo
-conviene escribir un solo compás por cada línea.  El ahorro en espacio
-de pantalla que se obtiene al amontonar ocho compases por línea no
-merece la pena si luego tiene que @q{depurar} los archivos.
-
-@item @strong{Comente los archivos}.  Utilice o números de compás (de vez en cuando)
-o referencias a temas musicales (@q{segundo tema de los violines,}
-@q{cuarta variación,} etc.).  Puede que no necesite comentarios cuando
-introduce una pieza por vez primera, pero si quiere volver a ella o
-modificar algo al cabo de dos o tres años, y también si le pasa la
-fuente a un amigo, será todo un desafío determinar sus intenciones o
-de qué manera estaba estructurado el archivo si no le añadió los
-comentarios.
-
-@item @strong{Aplique márgenes a las llaves}.  Muchos problemas están causados por una
-falta de equilibrio en el número de @code{@{} y @code{@}}.
-
-@item @strong{Escriba las duraciones explícitamente} al comienzo de las secciones
-e identificadores.  Si especifica @code{c4 d e} al principio de una
-frase (en lugar de sólo @code{c d e}) se puede ahorrar problemas si
-reelabora la música más tarde.
-
-@item @strong{Separe los trucos} de las definiciones musicales.  Consulte
-@ref{Ahorrar tecleo mediante variables y funciones} y
-@ref{Hojas de estilo}.
-
-@end itemize
-
-
-@node Tipografiar música existente
-@subsection Tipografiar música existente
-@translationof Typesetting existing music
-
-Si está introduciendo música a partir de una partitura existente (es
-decir, tipografiando una hoja de música ya impresa),
-
-@itemize
-
-@item Introduzca en LilyPond un sistema del manuscrito, o copia física, de
-cada vez (pero mantenga la práctica de escribir un compás por línea de
-texto), y compruebe cada sistema cuando lo haya terminado.  Puede usar
-las propiedades @code{showLastLength} o @code{showFirstLength} para
-acelerar el proceso (véase @ruser{Saltar la música corregida}).
-
-@item Defina @code{mBreak = @{ \break @}} e inserte @code{\mBreak}
-dentro del archivo de entrada donde el manuscrito tenga un saldo de
-línea.  De esta forma le resultará mucho más fácil comparar la música
-de LilyPond con la original.  Cuando haya terminado de revisar su
-partitura podrá definir @code{mBreak = @{ @}} para quitar todos esos
-saltos de línea.  Así permitirá a LilyPond colocar los saltos donde
-éste lo estime más oportuno.
-
-@item Al escribir una parte para un instrumento transpositor dentro de una
-variable, se recomienda que las notas estén envueltas dentro de
-
-@example
-\transpose c altura-natural @{...@}
-@end example
-(donde @code{altura-natural} es la afinación natural del instrumento)
-de forma que la música dentro de la variable esté realmente en Do
-mayor.  Después podemos volver a transportarlas en sentido inverso
-cuando se utiliza la variable, si es necesario, pero quizá no queramos
-hacerlo (p.ej., al imprimir una partitura en afinación de concierto,
-al convertir una parte de trombón de clave de Sol a clave de Fa,
-etc.).  Es menos probable cometer errores en los transportes si toda
-la música que está dentro de las variables se encuentra en un tono
-coherente.
-
-Asimismo, haga los transportes exclusivamente hacia o desde Do mayor.
-Esto significa que aparte de ésta, las únicas tonalidades que usaremos
-serán los tonos de afinación de los instrumentos transpositores: bes
-para una trompeta en Si bemol, aes para un clarinete en La bemol, etc.
-
-@end itemize
-
-
-@node Proyectos grandes
-@subsection Proyectos grandes
-@translationof Large projects
-
-Al trabajar en proyecto grande se hace esencial tener una estructura clara
-en los archivos de LilyPond
-
-@itemize
-
-@item @strong{Utilice un identificador para cada voz}, con un mínimo de
-estructura dentro de la definición.  La estructura de la sección
-@code{\score} es la que cambiará con mayor probabilidad; por contra, es
-extremadamente improbable que cambie la definición de @code{violin} en
-versiones nuevas de LilyPond.
-
-@example
-violin = \relative c'' @{
-g4 c'8. e16
-@}
-...
-\score @{
-  \new GrandStaff @{
-    \new Staff @{
-      \violin
-    @}
-  @}
-@}
-@end example
-
-@item @strong{Separe los trucos de las definiciones musicales}.
-Ya se mencionó con anterioridad, pero para proyectos grandes es vital.
-Quizá tengamos que cambiar la definición de @code{fluegop}, pero en ese
-caso sólo lo tendremos que hacer una vez, y aún podremos evitar tocar
-nada dentro de @code{violin}.
-
-@example
-fluegop = _\markup@{
-  \dynamic f \italic \small @{ 2nd @} \hspace #0.1 \dynamic p @}
-violin = \relative c'' @{
-g4\fluegop c'8. e16
-@}
-@end example
-
-@end itemize
-
-
-@node Ahorrar tecleo mediante variables y funciones
-@subsection Ahorrar tecleo mediante variables y funciones
-@translationof Saving typing with variables and functions
-
-@cindex variables
-@cindex identificadores
-
-Llegado a este punto, usted ha visto cosas de este tipo:
-
-@lilypond[quote,verbatim,ragged-right]
-hornNotes = \relative c'' { c4 b dis c }
-\score {
-  {
-    \hornNotes
-  }
-}
-@end lilypond
-
-Incluso se dará cuenta de que esto puede ser útil en música
-minimalista:
-
-@lilypond[quote,verbatim,ragged-right]
-fragmentA = \relative c'' { a4 a8. b16 }
-fragmentB = \relative c'' { a8. gis16 ees4 }
-violin = \new Staff { \fragmentA \fragmentA \fragmentB \fragmentA }
-\score {
-  {
-    \violin
-  }
-}
-@end lilypond
-
-Sin embargo también puede usar estos identificadores (que también se
-conocen como variables, macros o instrucciones definidas por el
-usuario) para hacer trucos:
-
-@lilypond[quote,verbatim,ragged-right]
-dolce = \markup{ \italic \bold dolce }
-padText = { \once \override TextScript #'padding = #5.0 }
-fthenp=_\markup{ \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p }
-violin = \relative c'' {
-  \repeat volta 2 {
-    c4._\dolce b8 a8 g a b |
-    \padText
-    c4.^"hi there!" d8 e' f g d |
-    c,4.\fthenp b8 c4 c-. |
-  }
-}
-\score {
-  {
-    \violin
-  }
-\layout{ragged-right=##t}
-}
-@end lilypond
-
-Obviamente estos identificadores son útiles para ahorrar tecleo.  Pero
-son dignos de tener en cuenta incluso si se van a utilizar una sola
-vez: reducen la complejidad.  Examinemos el ejemplo anterior reescrito
-sin ningún identificador.  Encontrará que es mucho más difícil de
-leer, sobre todo la última línea.
-
-@example
-violin = \relative c'' @{
-  \repeat volta 2 @{
-    c4._\markup@{ \italic \bold dolce @} b8 a8 g a b |
-    \once \override TextScript #'padding = #5.0
-    c4.^"hi there!" d8 e' f g d |
-    c,4.\markup@{ \dynamic f \italic \small @{ 2nd @}
-      \hspace #0.1 \dynamic p @} b8 c4 c-. |
-  @}
-@}
-@end example
-
-@c TODO Replace the following with a better example  -td
-@c Skylining handles this correctly without padText
-
-Hasta ahora hemos contemplado la sustitución estática: cuando LilyPond
-se encuentra con @code{\padText}, lo sustituye con aquello que
-hemos definido que sea (es decir, todo lo que está a la derecha de
-@code{padtext=}).
-
-LilyPond también puede manejar sustituciones no estáticas (piense en
-ellas como en funciones).
-
-@lilypond[quote,verbatim,ragged-right]
-padText =
-#(define-music-function (parser location padding) (number?)
-  #{
-    \once \override TextScript #'padding = #$padding
-  #})
-
-\relative c''' {
-  c4^"piu mosso" b a b
-  \padText #1.8
-  c4^"piu mosso" d e f
-  \padText #2.6
-  c4^"piu mosso" fis a g
-}
-@end lilypond
-
-La utilización de identificadores también es una buena forma de
-reducir el trabajo si la sintaxis de entrada de LilyPond cambia (véase
-@ref{Actualizar archivos de entrada antiguos}).  Si tiene una sola definición (como
-p.ej. @code{\dolce}) para todos sus archivos (ver @ref{Hojas de estilo}),
-y después la sintaxis se modifica, sólo tendrá que actualizar su
-definición @code{\dolce} única, en lugar de tener que hacer cambios en
-cada uno de los archivos @code{.ly}.
-
-
-@node Hojas de estilo
-@subsection Hojas de estilo
-@translationof Style sheets
-
-La salida que produce LilyPond se puede modificar profundamente;
-consulte @ref{Trucar la salida} para leer detalles sobre este asunto.
-Pero ¿qué ocurre si tiene muchos archivos a los que les quiere aplicar
-sus propios trucos?  O ¿qué ocurre si, sencillamente, quiere separar
-los trucos de la propia música?  Todo esto es bastante fácil de
-conseguir.
-
-Veamos un ejemplo.  No se preocupe si no entiende
-las partes que tienen todos los @code{#()}.  Esto se explicará en
-@ref{Trucos avanzados con Scheme}.
-
-@lilypond[quote,verbatim,ragged-right]
-mpdolce = #(make-dynamic-script (markup #:hspace 0 #:translate '(5 . 0)
-  #:line(#:dynamic "mp" #:text #:italic "dolce" )))
-
-inst = #(define-music-function (parser location string) (string?)
-  (make-music
-    'TextScriptEvent
-    'direction UP
-    'text (markup #:bold (#:box string))))
-
-\relative c'' {
-  \tempo 4=50
-  a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
-  \inst "Clarinet"
-  cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
-}
-@end lilypond
-
-Existen varios problemas con la salida que se superpone; los
-arreglaremos utilizando las técnicas descritas en @ref{Mover objetos}.  Pero también haremos algo respecto a las definiciones
-@code{mpdolce} e @code{inst}.  Éstas producen la salida que deseamos,
-pero quizá las querríamos utilizar en otra pieza.  Podríamos
-simplemente copiarlas y pegarlas al principio de cada archivo, pero
-sería bastante molesto.  También hace que se queden las definiciones a
-la vista dentro de nuestros archivos de música, y yo personalmente
-encuentro todos los @code{#()} bastante poco estéticos.  Los vamos a
-esconder dentro de otro archivo:
-
-@example
-%%% guardar esto en un archivo de nombre "definiciones.ily"
-mpdolce = #(make-dynamic-script (markup #:hspace 0 #:translate '(5 . 0)
-  #:line(#:dynamic "mp" #:text #:italic "dolce" )))
-
-inst = #(define-music-function (parser location string) (string?)
-  (make-music
-    'TextScriptEvent
-    'direction UP
-    'text (markup #:bold (#:box string))))
-@end example
-
-Haremos referencia a este archivo utilizando la instrucción
-@code{\include} al principio del archivo de música (la extensión
-@code{.ily} se utiliza para distinguir este archivo de inclusión --que
-se supone que no debe ser procesado de forma independiente-- del
-archivo principal).  Ahora modificaremos la música (guardemos este
-archivo como @file{"musica.ly"}).
-
-@c  We have to do this awkward example/lilypond-non-verbatim
-@c  because we can't do the \include stuff in the manual.
-
-@example
-\include "definiciones.ily"
-
-\relative c'' @{
-  \tempo 4=50
-  a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
-  \inst "Clarinete"
-  cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
-@}
-@end example
-
-@lilypond[quote,ragged-right]
-mpdolce = #(make-dynamic-script (markup #:hspace 0 #:translate '(5 . 0)
-  #:line(#:dynamic "mp" #:text #:italic "dolce" )))
-
-inst = #(define-music-function (parser location string) (string?)
-  (make-music
-    'TextScriptEvent
-    'direction UP
-    'text (markup #:bold (#:box string))))
-
-\relative c'' {
-  \tempo 4=50
-  a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
-  \inst "Clarinet"
-  cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
-}
-@end lilypond
-
-Eso tiene mejor aspecto, pero haremos algunos cambios más.  El glissando es difícil
-de ver, así que lo haremos más grueso y lo acercaremos a las cabezas de las notas.  Pondremos
-la indicación metronómica encima de la clave, en lugar de ir encima de la primera
-nota.  Y por último, mi profesor de composición odia las indicaciones de compás @q{C},
-así que la convertiremos en @q{4/4}.
-
-Sin embargo, no debemos cambiar el archivo @file{musica.ly}.
-Sustituyamos nuestro archivo @file{definiciones.ily} con éste:
-
-@example
-%%%  definiciones.ily
-mpdolce = #(make-dynamic-script (markup #:hspace 0 #:translate '(5 . 0)
-  #:line( #:dynamic "mp" #:text #:italic "dolce" )))
-
-inst = #(define-music-function (parser location string) (string?)
-  (make-music
-    'TextScriptEvent
-    'direction UP
-    'text (markup #:bold (#:box string))))
-
-\layout@{
-  \context @{ \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
-  @}
-  \context @{ \Staff
-    \override TimeSignature #'style = #'numbered
-  @}
-  \context @{ \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
-  @}
-@}
-@end example
-
-@lilypond[quote,ragged-right]
-mpdolce = #(make-dynamic-script (markup #:hspace 0 #:translate '(5 . 0)
-  #:line( #:dynamic "mp" #:text #:italic "dolce" )))
-
-inst = #(define-music-function (parser location string) (string?)
-  (make-music
-    'TextScriptEvent
-    'direction UP
-    'text (markup #:bold (#:box string))))
-
-\layout{
-  \context { \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
-  }
-  \context { \Staff
-    \override TimeSignature #'style = #'numbered
-  }
-  \context { \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
-  }
-}
-
-\relative c'' {
-  \tempo 4=50
-  a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
-  \inst "Clarinet"
-  cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
-}
-@end lilypond
-
-¡Eso tiene un aspecto mucho mejor!  Ahora suponga que quiere publicar esta
-pieza.  A mi profesor de composición no le gustan las indicaciones de compás @q{C},
-pero yo les tengo cierto cariño.  Copiaremos el archivo
-actual @file{definiciones.ily} a @file{publicar-web.ily} y modificaremos
-éste.  Como el propósito de esta música es producir un PDF que va a mostrarse
-en la pantalla, también vamos a aumentar el
-tamaño general de la salida.
-
-@example
-%%%  definiciones.ily
-mpdolce = #(make-dynamic-script (markup #:hspace 0 #:translate '(5 . 0)
-  #:line( #:dynamic "mp" #:text #:italic "dolce" )))
-
-inst = #(define-music-function (parser location string) (string?)
-  (make-music
-    'TextScriptEvent
-    'direction UP
-    'text (markup #:bold (#:box string))))
-
-#(set-global-staff-size 23)
-\layout@{
-  \context @{ \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
-  @}
-  \context @{ \Staff
-  @}
-  \context @{ \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
-  @}
-@}
-@end example
-
-@lilypond[quote,ragged-right]
-mpdolce = #(make-dynamic-script (markup #:hspace 0 #:translate '(5 . 0)
-  #:line( #:dynamic "mp" #:text #:italic "dolce" )))
-
-inst = #(define-music-function (parser location string) (string?)
-  (make-music
-    'TextScriptEvent
-    'direction UP
-    'text (markup #:bold (#:box string))))
-
-#(set-global-staff-size 23)
-\layout{
-  \context { \Score
-    \override MetronomeMark #'extra-offset = #'(-9 . 0)
-    \override MetronomeMark #'padding = #'3
-  }
-  \context { \Voice
-    \override Glissando #'thickness = #3
-    \override Glissando #'gap = #0.1
-  }
-}
-
-\relative c'' {
-  \tempo 4=50
-  a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
-  \inst "Clarinet"
-  cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
-}
-@end lilypond
-
-Ahora, en la música, simplemente sustituyo @code{\include
-"definiciones.ily"} por @code{\include "publicar-web.ily"}.  Por
-supuesto, podríamos hacer esto aún más práctico.  Podríamos hacer un
-archivo @file{definiciones.ily} que contuviera solamente las
-definiciones de @code{mpdolce} y de @code{inst}, un archivo
-@file{publicar-web.ily} que contuviera solamente la sección
-@code{\layout} que se mostró en el ejemplo, y un archivo
-@file{universidad.ily} que contendría solamente los trucos para
-producir la salida que le gusta a mi profesor.  El comienzo de
-@file{musica.ly} tendría entonces este aspecto:
-
-@example
-\include "definiciones.ily"
-
-%%%  ¡Quitar el comentario de una sola de estas líneas!
-\include "publicar-web.ily"
-%\include "universidad.ily"
-@end example
-
-Este enfoque puede ser útil incluso si va a producir sólo un conjunto
-de particellas.  Yo utilizo media docena de archivos de @q{hojas de
-estilo} para mis proyectos.  Comienzo todos los archivos de música con
-@code{\include "../global.ily"}, que contiene
-
-@example
-%%%   global.ily
-\version @w{"@version{}"}
-#(ly:set-option 'point-and-click #f)
-\include "../iniciar/iniciar-definiciones.ily"
-\include "../iniciar/iniciar-disposicion.ily"
-\include "../iniciar/iniciar-cabeceras.ily"
-\include "../iniciar/iniciar-papel.ily"
-@end example
-
-
-@node Cuando las cosas no van
-@section Cuando las cosas no van
-@translationof When things don't work
-
-@menu
-* Actualizar archivos de entrada antiguos::
-* Errores más usuales::
-* Resolución de problemas (tomar cada parte por separado)::
-* Ejemplos mínimos::
-@end menu
-
-@node Actualizar archivos de entrada antiguos
-@subsection Actualizar archivos de entrada antiguos
-@translationof Updating old input files
-
-@cindex convert-ly
-@cindex actualizar archivos de entrada antiguos
-
-La sintaxis de la entrada de LilyPond cambia de manera ocasional.  A
-medida que el propio LilyPond mejora, la sintaxis (el lenguaje de la
-entrada) se modifica en consonancia.  A veces estos cambios se hacen
-para conseguir que la entrada sea más fácil de leer y escribir, y
-otras veces estos cambios son para dar cabida a nuevas funcionalidades
-de LilyPond.
-
-LilyPond lleva incorporado un archivo que facilita esta actualización:
-@code{convert-ly}.  Para ver detalles sobre cómo ejecutar este
-programa, consulte @rprogram{Actualizar ficheros con convert-ly}.
-
-Desgraciadamente @code{convert-ly} no puede tratar todos los cambios
-en la entrada.  Se ocupa de los cambios sencillos de búsqueda y
-sustitución (como @code{raggedright} que se convierte en
-@code{ragged-right}), pero algunos cambios son demasiado complicados.
-Los cambios de sintaxis que @code{convert-ly} es incapaz de manejar se
-relacionan en @rprogram{Actualizar ficheros con convert-ly}.
-
-Por ejemplo, en la versión 2.4 y anteriores de LilyPond, los acentos y
-las letras no inglesas se introducían utilizando LaTeX: por ejemplo,
-@code{No\"el} (que significa @q{Navidad} en francés).  En LilyPond 2.6
-y siguientes, el carácter especial @code{ë} debe introducirse
-directamente en el archivo de LilyPond como un carácter UTF-8.
-@code{convert-ly} no puede cambiar todos los caracteres especiales de
-LaTeX a caracteres de UTF-8; tendrá que actualizar manualmente sus
-archivos de LilyPond antiguos.
-
-@node Errores más usuales
-@subsection Errores más usuales
-@translationof Common errors
-
-Las condiciones de error que se han descrito más arriba se producen
-con frecuencia, aunque su causa no sea obvia o no se pueda encontrar
-fácilmente.  Una vez se han visto y comprendido, son fáciles de
-manejar.
-
-
-@menu
-* La música se sale de la página::
-* Error aparente en ../ly/init.ly::
-* Mensaje de error Unbound variable %::
-@end menu
-
-@node La música se sale de la página
-@unnumberedsubsubsec La música se sale de la página
-@translationof Music runs off the page
-
-La música que se sale de la página por el margen derecho o que aparece
-exageradamente comprimida está causada casi siempre por haber
-introducido una duración incorrecta para una nota, produciendo que la
-nota final de un compás se extienda más allá de la línea divisoria.
-Esto no es inválido si la nota final de un compás no termina sobre la
-línea divisoria introducida automáticamente, pues simplemente se
-supone que la nota se solapa encima del siguiente compás.  Pero si se
-produce una larga secuencia tales notas solapadas, la música puede
-aparecer comprimida o salirse de la página porque los saltos de línea
-automáticos solamente se pueden insertar al final de compases
-completos, es decir, aquellos en que todas las notas terminan antes de
-o justo al final del compás.
-
-@warning{Una duración incorrecta puede hacer que se inhiban los saltos
-de línea, lo que llevaría a una sola línea de música muy comprimida o
-que se salga de la página.}
-
-La duración incorrecta se puede encontrar fácilmente si se utilizan
-comprobaciones de compás, véase @ruser{Comprobación de compás y de número de compás}.
-
-Si realmente quueremos tener una serie de estos compases con notas
-solapadas, debemos insertar una línea divisoria invisible donde
-queramos el salto de línea.  Para ver más detalles, consulte
-@ruser{Barras de compás}.
-
-@node Error aparente en ../ly/init.ly
-@unnumberedsubsubsec Error aparente en @code{../ly/init.ly}
-@translationof Apparent error in ../ly/init.ly
-
-Pueden aparecer varios mensajes de error extraños acerca de errores de
-sintaxis en @code{../ly/init.ly} si el archivo de entrada no está
-correctamente formado, por ejemplo si no contiene llaves o comillas
-correctamente emparejados.
-
-El error más común es la falta de una llave de cierre, (@code{@}}), al
-final de un bloque @code{score}.  Aquí la solución es obvia: compruebe
-que el bloque @code{score} está correctamente cerrado.  La estructura
-correcta de un archivo de entrada está descrita en @ref{Cómo funcionan los archivos de entrada de LilyPond}.  Usando un editor que resalte automáticamente las
-llaves correspondientes es de mucha ayuda para evitar estos errores.
-
-Este mensaje de error también puede aparecer si se omiten las comillas
-de terminación (@code{"}).  En este caso, un mensaje de error
-adicional debería indicar un número de línea cercano al de aquella
-donde está el error.  Las comillas desbalanceadas estarán por lo
-general una o dos líneas por encima.
-
-@node Mensaje de error Unbound variable %
-@unnumberedsubsubsec Mensaje de error Unbound variable %
-@translationof Error message Unbound variable %
-
-Este mensaje de error aparece al final de los mensajes de la consola o
-del archivo de registro junto a un mensaje @qq{GUILE señaló un error
-...} cada vez que se llame a una rutina de Scheme que
-(incorrectamente) contenga un comentario @emph{de LilyPond} en lugar
-de un comentario @emph{de Scheme}.
-
-Los comentarios de LilyPond comienzan con un símbolo de porcentaje,
-(@code{%}), y no se deben utilizar dentro de las rutinas de Scheme.
-Los comentarios de Scheme comienzan con punto y coma, (@code{;}).
-
-
-@node Resolución de problemas (tomar cada parte por separado)
-@subsection Resolución de problemas (tomar cada parte por separado)
-@translationof Troubleshooting (taking it all apart)
-
-Antes o después escribirá un archivo que LilyPond no podrá compilar.
-Los mensajes que LilyPond proporciona pueden ayudarle a encontrar el
-error, pero en muchos casos tendrá que llevar a cabo algún tipo de
-investigación para determinar el origen del problema.
-
-Las herramientas más poderosas para este cometido son el comentario de
-una sola línea (indicado por @code{%}) y el comentario de bloque
-(indicado por @code{%@{ ... %@}}).  Si no sabe dónde está el problema,
-comience convirtiendo grandes secciones del archivo de entrada en un
-comentario.  Después de eliminar una sección convirtiéndola en un
-comentario, pruebe a compilar el archivo otra vez.  Si funciona,
-entonces el problema debía estar en la porción que había eliminado.
-Si no funciona, continúe eliminando material (transformándolo en
-comentarios) hasta que tenga algo que funcione.
-
-En un caso extremo podría terminar con sólo
-
-@example
-\score @{
-  <<
-    % \melodia
-    % \armonia
-    % \bajo
-  >>
-  \layout@{@}
-@}
-@end example
-
-@noindent
-(en otras palabras: un archivo sin música)
-
-Si ocurre esto, no abandone.  Descomente un trozo pequeño -- digamos
-la parte del bajo -- y observe si funciona.  Si no es así, transforme
-en comentarios toda la música del bajo (pero deje el @code{\bajo} de
-la sección @code{\score} no comentado.
-
-@example
-bajo = \relative c' @{
-%@{
-  c4 c c c
-  d d d d
-%@}
-@}
-@end example
-
-Ahora empiece poco a poco descomentando cada vez más fracciones de la
-parte del @code{bajo} hasta que encuentre la línea del problema.
-
-Otra técnica de depuración muy útil es la construcción de
-@ref{Ejemplos mínimos}.
-
-
-@node Ejemplos mínimos
-@subsection Ejemplos mínimos
-@translationof Minimal examples
-
-Un ejemplo mínimo es un ejemplo tan pequeño como sea posible.  Estos
-ejemplos son mucho más fáciles de comprender que los ejemplos largos.
-Los ejemplos mínimos se utilizan para
-
-@itemize
-@item Informes de fallos
-@item Solicitudes de ayuda a las listas de correo
-@item Añadir ejemplos al @uref{http://lsr@/.dsi@/.unimi@/.it/,Repositorio de Fragmentos de Código de LilyPond}
-@end itemize
-
-
-Para construir un ejemplo que sea lo más pequeño posible, la regla es
-bastante simple: quite todo lo que no sea necesario.  Al tratar de
-quitar partes innecesarias de un archivo, es una buena idea convertir
-líneas en comentarios en vez de borrarlas.  De esta forma, si descubre
-que en realidad sí @emph{necesitaba} algunas de estas líneas, podrá
-descomentarlas y no tendrá que teclearlas de nuevo partiendo de cero.
-
-Existen dos excepciones a la regla del @qq{lo más pequeño posible}:
-
-@itemize
-@item Incluya el número de @code{\version}.
-@item Si puede, ponga @code{\paper@{ ragged-right=##t @}} al principio del ejemplo.
-@end itemize
-
-
-En resumen, el objetivo de un ejemplo mínimo es que sea fácil de leer:
-
-@itemize
-@item Evite usar notas, tonalidades o compases demasiado complicados, a no ser que quiera
-demostrar algo sobre el comportamiento de estos elementos precisamente.
-@item No use instrucciones @code{\override} a no ser que ése sea el propósito
-del ejemplo.
-@end itemize
-
-
-@node Partituras y particellas
-@section Partituras y particellas
-@translationof Scores and parts
-
-En música orquestal, todas las notas se imprimen dos veces.  Una vez
-en las particellas para los músicos, y otra para la partitura del
-director.  Los identificadores se pueden usar para evitar la
-duplicación del trabajo.  La música se escribe una vez y se almacena
-en una variable.  El contenido de dicha variable se usa después para
-generar tanto la particella como la partitura del director.
-
-Es muy conveniente definir las notas en un archivo especial.  Por
-ejemplo, supongamos que el archivo @file{trompa.ly} contiene la
-siguiente parte de un dúo para trompa y fagot:
-
-@example
-notasTrompa = \relative c @{
-  \time 2/4
-  r4 f8 a cis4 f e d
-@}
-@end example
-
-@noindent
-Luego se hace una particella escribiendo en un archivo lo siguiente
-
-@example
-\include "trompa.ly"
-\header @{
-  instrument = "Trompa en Fa"
-@}
-
-@{
- \transpose f c' \notasTrompa
-@}
-@end example
-
-La línea
-
-@example
-\include "trompa.ly"
-@end example
-
-@noindent
-sustituye el contenido de @file{trompa.ly} en esta posición dentro del
-archivo, así que @code{notasTrompa} se define con posterioridad.  La
-instrucción @code{\transpose f@tie{}c'} indica que el argumento
-constituido por @code{\notasTrompa} se debe transponer una quinta
-hacia arriba.  Lo que suena como @code{f} se escribe como @code{c'},
-lo que corresponde con el tono de afinación de una trompa normal
-en@tie{}Fa.  La transposición se puede ver en la siguiente salida
-
-@lilypond[quote,ragged-right]
-\transpose f c' \relative c {
-  \time 2/4
-  r4 f8 a cis4 f e d
-}
-@end lilypond
-
-En piezas para conjunto, con frecuencia una de las voces no suena
-durante muchos compases.  Esto queda denotado por un silencio
-especial, el silencio multicompás.  Se introduce con una @code{R}
-mayúscula seguida de una duración (@code{1}@tie{}en el caso de la
-redonda, @code{2}@tie{}en el caso de una blanca, etc.).  Multiplicando
-la duración se pueden construir silencios más largos.  Por ejemplo,
-este silencio ocupa 3@tie{}compases de 2/4
-
-@example
-R2*3
-@end example
-
-Cuando se imprime la particella tienen que comprimirse los silencios
-multicompás.  Esto se hace estableciendo una variable en tiempo de
-ejecución
-
-@example
-\set Score.skipBars = ##t
-@end example
-
-@noindent
-Esta instrucción establece el valor de la propiedad @code{skipBars} en
-el contexto de @code{Score} a verdadero (@code{##t}).  Anteponiendo el
-silencio y esta opción a la música anterior, llegamos al siguiente
-resultado
-
-@lilypond[quote,ragged-right]
-\transpose f c' \relative c {
-  \time 2/4
-  \set Score.skipBars = ##t
-  R2*3
-  r4 f8 a cis4 f e d
-}
-@end lilypond
-
-
-Esta partitura se hace combinando toda la música junta.  Suponiendo
-que la otra voz se encuentra dentro de @code{notasFagot} en el archivo
-@file{fagot.ly}, la partitura se hace con
-
-@example
-\include "fagot.ly"
-\include "trompa.ly"
-
-<<
-  \new Staff \notasTrompa
-  \new Staff \notasFagot
->>
-@end example
-
-@noindent
-lo que nos lleva a
-
-@lilypond[quote,ragged-right]
-\relative c <<
-  \new Staff {
-    \time 2/4 R2*3
-    r4 f8 a cis4 f e d
-  }
-  \new Staff {
-    \clef bass
-    r4 d,8 f | gis4 c | b bes |
-    a8 e f4 | g d | gis f
-  }
->>
-@end lilypond
-
-
-@node Make y los Makefiles
-@section Make y los Makefiles
-@translationof Make and Makefiles
-
-@cindex make, archivos de
-@cindex make
-
-Posiblemente todas las plataformas en que puede correr LilyPond,
-contemplan una posibilidad de software llamada @code{make}. Este
-programa lee un archivo especial llamado @code{Makefile} que define
-las relaciones de dependencia entre los archivos y qué instrucciones
-necesitamos dar al sistema operativo para producir un archivo a partir
-de otro.  Por ejemplo, el archivo de make detallaría cómo obtener
-@code{balada.pdf} y @code{balada.midi} a partir de @code{balada.ly}
-mediante la ejecución de Lilypond.
-
-Existen ocasiones en las que es buena idea crear un @code{Makefile}
-para nuestro proyecto, bien sea por nuestra propia comodidad o como
-cortesía para otros que posiblemente tengan acceso a nuestros archivos
-fuente.  Esto es cierto para proyectos muy grandes con muchos archivos
-de inclusión y distintas opciones de salida (p.ej. partitura completa,
-particellas, partitura del director, reducción para piano, etc.), o
-para proyectos que requieren instrucciones difíciles para montarlas
-(como los proyectos de @code{lilypond-book}). La complejidad y
-flexibilidad de los Makefiles varía enormemente según las necesidades
-y la habilidad de los autores.  El programa GNU Make viene instalado
-en las distribuciones de GNU/Linux y en MacOS X, y también existe para
-Windows.
-
-Consulte el @strong{Manual de GNU Make} para ver todos los detalles
-sobre el uso de @code{make}, pues lo que sigue a continuación ofrece
-solamente una pincelada de todo lo que es capaz de hacer.
-
-Las instrucciones que definen las reglas en un archivo de make
-difieren en función de la plataforma; por ejemplo, las distintas
-formas de Linux y MacOS usan @code{bash}, mientras que Windows usa
-@code{cmd}.  Observeque en MacOS X, tenemos que configurar el sistema
-para que utilice el intérprete de órdenes. A continuación presentamos
-algunos makefiles de ejemplo, con versiones tanto para Linux/MacOS
-como para Windows.
-
-El primer ejemplo es para una obra orquestal en cuatro movimientos con
-la estructura de directorios siguiente:
-
-@example
-Sinfonia/
-|-- MIDI/
-|-- Makefile
-|-- Notas/
-|   |-- cello.ily
-|   |-- cifras.ily
-|   |-- trompa.ily
-|   |-- oboe.ily
-|   |-- trioCuerdas.ily
-|   |-- viola.ily
-|   |-- violinUno.ily
-|   `-- violinDos.ily
-|-- PDF/
-|-- Particellas/
-|   |-- sinfonia-cello.ly
-|   |-- sinfonia-trompa.ly
-|   |-- sinfonia-oboes.ly
-|   |-- sinfonia-viola.ly
-|   |-- sinfonia-violinUno.ly
-|   `-- sinfonia-violinDos.ly
-|-- Partituras/
-|   |-- sinfonia.ly
-|   |-- sinfoniaI.ly
-|   |-- sinfoniaII.ly
-|   |-- sinfoniaIII.ly
-|   `-- sinfoniaIV.ly
-`-- sinfoniaDefs.ily
-@end example
-
-Los archivos @code{.ly} de los directorios @code{Partituras} y
-@code{Particellas} obtienen las notas de archivos @code{.ily} que están en
-el directorio @code{Notas}:
-
-@example
-%%% principio del archivo "sinfonia-cello.ly"
-\include ../definiciones.ily
-\include ../Notas/cello.ily
-@end example
-
-El makefile tendrá los objetivos de @code{partitura} (la pieza
-completa en todo su esplendor), @code{movimientos} (partitura completa
-de los movimientos individuales) y @code{particellas} (partes
-individuales para los atriles). También existe un objetivo
-@code{archivo} que produce un tarball de los archivos fuente, adecuado
-para compartirlo a través de la web o por correo electrónico.  A
-continuación presentamos el makefile para GNU/Linux o MacOS X.  Se
-debe guardar con el nombre exacto @code{Makefile} el el directorio
-superior del proyecto:
-
-@warning{Cuando se define un objetivo o una regla de patrón, las
-líneas siguientes deben comenzar con tabuladores, no con espacios.}
-
-@example
-# nombre principal de los archivos de salida
-nombre = sinfonia
-# determinar cuántos procesadores existen
-CPU_CORES=`cat /proc/cpuinfo | grep -m1 "cpu cores" | sed s/".*: "//`
-# La instrucción para ejecutar lilypond
-LILY_CMD = lilypond -ddelete-intermediate-files \
-                    -dno-point-and-click -djob-count=$(CPU_CORES)
-
-# Los sufijos utilizados en este Makefile.
-.SUFFIXES: .ly .ily .pdf .midi
-
-# Los archivos de entrada y salida se buscan dentro de los directorios relacionados en
-# la variable VPATH.  Todos esllos son subdirectorios del directorio
-# en curso (dado por la variable de GNU make `CURDIR').
-VPATH = \
-  $(CURDIR)/Partituras \
-  $(CURDIR)/PDF \
-  $(CURDIR)/Particellas \
-  $(CURDIR)/Notas
-
-# La regla de patrón para crear archivos PDF y MIDI a partir de un archivo de entrada LY.
-# Los archivos de salida .pdf se colocan en el subdirectorio `PDF', y los archivos
-# .midi van al subdirectorio `MIDI'.
-%.pdf %.midi: %.ly
-        $(LILY_CMD) $<; \           # esta línea comienza con un salto de tabulación
-        if test -f "$*.pdf"; then \
-            mv "$*.pdf" PDF/; \
-        fi; \
-        if test -f "$*.midi"; then \
-            mv "$*.midi" MIDI/; \
-        fi
-
-notas = \
-  cello.ily \
-  trompa.ily \
-  oboe.ily \
-  viola.ily \
-  violinUno.ily \
-  violinDos.ily
-
-# Dependencias de los movimientos.
-$(nombre)I.pdf: $(nombre)I.ly $(notas)
-$(nombre)II.pdf: $(nombre)II.ly $(notas)
-$(nombre)III.pdf: $(nombre)III.ly $(notas)
-$(nombre)IV.pdf: $(nombre)IV.ly $(notas)
-
-# Dependencias de la partitura completa.
-$(nombre).pdf: $(nombre).ly $(notas)
-
-# Dependencias de las particellas.
-$(nombre)-cello.pdf: $(nombre)-cello.ly cello.ily
-$(nombre)-trompa.pdf: $(nombre)-trompa.ly trompa.ily
-$(nombre)-oboes.pdf: $(nombre)-oboes.ly oboe.ily
-$(nombre)-viola.pdf: $(nombre)-viola.ly viola.ily
-$(nombre)-violinUno.pdf: $(nombre)-violinUno.ly violinUno.ily
-$(nombre)-violinDos.pdf: $(nombre)-violinDos.ly violinDos.ily
-
-# Teclee `make partitura' para generer la partitura completa de los cuatro
-# movimientos como un archivo único.
-.PHONY: partitura
-partitura: $(nombre).pdf
-
-# Teclee `make particellas' para generar todas las particellas.
-# Teclee `make fulanito.pdf' para generar la particella del instrumento `fulanito'.
-# Ejemplo: `make sinfonia-cello.pdf'.
-.PHONY: particellas
-particellas: $(nombre)-cello.pdf \
-       $(nombre)-violinUno.pdf \
-       $(nombre)-violinDos.pdf \
-       $(nombre)-viola.pdf \
-       $(nombre)-oboes.pdf \
-       $(nombre)-trompa.pdf
-
-# Teclee `make movimientos' para generar los archivos de los
-# cuatro movimientos de forma separada.
-.PHONY: movimientos
-movimientos: $(nombre)I.pdf \
-           $(nombre)II.pdf \
-           $(nombre)III.pdf \
-           $(nombre)IV.pdf
-
-all: partitura particellas movimientos
-
-archivo:
-        tar -cvvf stamitz.tar \       # esta línea comienza con un salto de tabulación
-        --exclude=*pdf --exclude=*~ \
-        --exclude=*midi --exclude=*.tar \
-        ../Stamitz/*
-@end example
-
-
-Existen ciertas complicaciones en la plataforma Windows. Después de
-descargar e instalar el programa GNU Make para Windows, debemos
-configurar la ruta adecuada en las variables de entorno del sistema de
-forma que el shell del DOS pueda encontrar el programa Make. Para
-hacerlo, pulse con el botón derecho sobre "Mi PC", elija
-@code{Propiedades} y @code{Avanzadas}. Pulse sobre @code{Variables de
-entorno}, y luego en la pestaña @code{Variables del sistema},
-seleccione @code{Ruta}, pulse sobre @code{editar} y añada la ruta al
-archivo ejecutable de GNU Make, con lo que quedará algo parecido a lo
-siguiente:
-
-@example
-C:\Archivos de programa\GnuWin32\bin
-@end example
-
-El makefile en sí debe modificarse para que maneje distintas
-instrucciones del shell y para que pueda tratar con los espacios que
-aparecen en el nombre de algunos directorios del sistema
-predeterminados. El objetivo @code{archivo} se elimina porque Windows
-no tiene la instrucción @code{tar}, y Windows tiene también una
-extensión predeterminada distinta para los archivos MIDI.
-
-
-@example
-## VERSIÓN PARA WINDOWS
-##
-nombre = sinfonia
-LILY_CMD = lilypond -ddelete-intermediate-files \
-                    -dno-point-and-click \
-                    -djob-count=$(NUMBER_OF_PROCESSORS)
-
-#obtener el nombre 8.3 de CURDIR (rodeo para los espacios en PATH)
-workdir = $(shell for /f "tokens=*" %%b in ("$(CURDIR)") \
-          do @@echo %%~sb)
-
-.SUFFIXES: .ly .ily .pdf .mid
-
-VPATH = \
-  $(workdir)/Partituras \
-  $(workdir)/PDF \
-  $(workdir)/Particellas \
-  $(workdir)/Notas
-
-%.pdf %.mid: %.ly
-        $(LILY_CMD) $<      # esta línea comienza con un salto de tabulación
-        if exist "$*.pdf"  move /Y "$*.pdf"  PDF/ # comienzo con tab
-        if exist "$*.mid" move /Y "$*.mid" MIDI/  # comienzo con tab
-
-notas = \
-  cello.ily \
-  cifras.ily \
-  trompa.ily \
-  oboe.ily \
-  trioCuerdas.ily \
-  viola.ily \
-  violinUno.ily \
-  violinDos.ily
-
-$(nombre)I.pdf: $(nombre)I.ly $(notas)
-$(nombre)II.pdf: $(nombre)II.ly $(notas)
-$(nombre)III.pdf: $(nombre)III.ly $(notas)
-$(nombre)IV.pdf: $(nombre)IV.ly $(notas)
-
-$(nombre).pdf: $(nombre).ly $(notas)
-
-$(nombre)-cello.pdf: $(nombre)-cello.ly cello.ily
-$(nombre)-trompa.pdf: $(nombre)-trompa.ly trompa.ily
-$(nombre)-oboes.pdf: $(nombre)-oboes.ly oboe.ily
-$(nombre)-viola.pdf: $(nombre)-viola.ly viola.ily
-$(nombre)-violinUno.pdf: $(nombre)-violinUno.ly violinUno.ily
-$(nombre)-violinDos.pdf: $(nombre)-violinDos.ly violinDos.ily
-
-.PHONY: partitura
-partitura: $(nombre).pdf
-
-.PHONY: particellas
-particellas: $(nombre)-cello.pdf \
-       $(nombre)-violinUno.pdf \
-       $(nombre)-violinDos.pdf \
-       $(nombre)-viola.pdf \
-       $(nombre)-oboes.pdf \
-       $(nombre)-trompa.pdf
-
-.PHONY: movimientos
-movimientos: $(nombre)I.pdf \
-           $(nombre)II.pdf \
-           $(nombre)III.pdf \
-           $(nombre)IV.pdf
-
-all: partitura particellas movimientos
-@end example
-
-
-El Makefile siguiente es para un documento de @command{lilypond-book}
-hecho en LaTeX.  Este proyecto tiene un índice, que requiere ejecutar
-la instrucción @command{latex} dos veces para actualizar los enlaces.
-Todos los archivos de salida se almacenan en el directorio
-@code{salida} para los documentos .pdf y en el directorio
-@code{salidahtml} para la salida en formato html.
-
-@example
-SHELL=/bin/sh
-NOMBRE=miproyecto
-DIR_SALIDA=salida
-DIR_WEB=salidahtml
-VISOR=acroread
-NAVEGADOR=firefox
-LILYBOOK_PDF=lilypond-book --output=$(DIR_SALIDA) --pdf $(NOMBRE).lytex
-LILYBOOK_HTML=lilypond-book --output=$(DIR_WEB) $(NOMBRE).lytex
-PDF=cd $(DIR_SALIDA) && pdflatex $(NOMBRE)
-HTML=cd $(DIR_WEB) && latex2html $(NOMBRE)
-INDICE=cd $(DIR_SALIDA) && makeindex $(NOMBRE)
-VISTA_PREVIA=$(VISOR) $(DIR_SALIDA)/$(NOMBRE).pdf &
-
-all: pdf web guardar
-
-pdf:
-        $(LILYBOOK_PDF)  # comienza con un tab
-        $(PDF)           # comienza con un tab
-        $(INDICE)        # comienza con un tab
-        $(PDF)           # comienza con un tab
-        $(VISTA_PREVIA)  # comienza con un tab
-
-web:
-        $(LILYBOOK_HTML) # comienza con un tab
-        $(HTML)          # comienza con un tab
-        cp -R $(DIR_WEB)/$(NOMBRE)/ ./  # comienza con un tab
-        $(NAVEGADOR) $(NOMBRE)/$(NOMBRE).html &  # comienza con un tab
-
-guardar: pdf
-        cp $(DIR_SALIDA)/$(NOMBRE).pdf $(NOMBRE).pdf  # comienza con un tab
-
-clean:
-        rm -rf $(DIR_SALIDA) # comienza con un tab
-
-web-clean:
-        rm -rf $(DIR_WEB) # comienza con un tab
-
-archivo:
-        tar -cvvf miproyecto.tar \ # comienza con un tab
-        --exclude=salida/* \
-        --exclude=salidahtml/* \
-        --exclude=miproyecto/* \
-        --exclude=*midi \
-        --exclude=*pdf \
-        --exclude=*~ \
-        ../MiProyecto/*
-@end example
-
-HACER: conseguir que funcione en Windows
-
-El makefile anterior no funciona en Windows.  Una alternativa para los
-usuarios de Windows sería crear un archivo de lotes sencillo que
-contenga las instrucciones de montaje.  Esto no rastrea las
-dependencias en la manera en que lo hace un makefile, pero al menos
-reduce el proceso de construcción a una sola instrucción.  Guarde el
-código siguiente como @command{montaje.bat} o @command{montaje.cmd}.
-El archivo de lotes se puede ejecutar en la línea de comandos del DOS
-o simplemente haciendo doble click sobre su icono.
-
-@example
-lilypond-book --output=salida --pdf miproyecto.lytex
-cd salida
-pdflatex miproyecto
-makeindex miproyecto
-pdflatex miproyecto
-cd ..
-copy salida\miproyecto.pdf MiProyecto.pdf
-@end example
-
-
-@seealso
-Manual de utilización del programa:
-@rprogram{Configuración para MacOS X},
-@rprogram{Utilización desde la línea de órdenes},
-@rprogram{LilyPond-book}
index bc4f4dc38f047e71b9a27d40b4c1384f94cd3a8e..945be71c4e5b7491d92d7ad8115c237615ba58b9 100644 (file)
@@ -1,6 +1,6 @@
 \input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 829d4293f61b7583e20ecdd3c427cde11e942fef
+    Translation of GIT committish: e18567dccce0f16b680e6b7e562329e5f8bcae59
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -67,6 +67,7 @@ Apéndices
 
 @contents
 
+@allowcodebreaks false
 
 @include notation/notation.itely
 @include notation/specialist.itely
index f76ccbf886dc4dc2e054b809678a89599cf2ff7d..b64e68c7ba1dfeb8af8ec6e87a3bbf9f1e971510 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 
 @ignore
-    Translation of GIT committish: 038c58f9e216c4d4ae046fcdd82d8499b94a0392
+    Translation of GIT committish: e18567dccce0f16b680e6b7e562329e5f8bcae59
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -1381,8 +1381,9 @@ Las digitaciones de la mano derecha @var{p-i-m-a} se deben introducir
 dentro de una construcción de acorde @code{<>} para que se impriman en
 la partitura, incluso si se aplican a una nota suelta.
 
-@warning{@strong{Debe} haber un guión después de la nota y un espacio
-antes del ángulo de cierre @code{>}.}
+@warning{@strong{Debe} haber un guión antes de
+@code{@bs{}rightHandFinger} y un espacio antes del ángulo de cierre
+@code{>}.}
 
 @lilypond[quote,verbatim,relative=0]
 \clef "treble_8"
index bbd5781badb90de15f9dea8ce361fe344948e484..1f7254e4604b1ec92f428d7fdbbd9d9113f2c370 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 3ddb74ce927e6e71bb61d1bad526c4dfe34d68a4
+    Translation of GIT committish: e18567dccce0f16b680e6b7e562329e5f8bcae59
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -1141,15 +1141,19 @@ Los @notation{corchetes de Ottava} introducen un trasporte adicional
 de una octava para el pentagrama.
 
 @lilypond[verbatim,quote,relative=2]
-a'2 b
-\ottava #1
-a b
+a2 b
+\ottava #-2
+a2 b
+\ottava #-1
+a2 b
 \ottava #0
-a b
+a2 b
+\ottava #1
+a2 b
+\ottava #2
+a2 b
 @end lilypond
 
-La función @code{ottava} también admite los valores -1 (para
-8va bassa), 2@tie{}(para 15ma) y -2 (para 15ma bassa) como argumentos.
 
 @snippets
 
index 50229c754f9d3e8ca67a3f1df19012e220adf16f..e56dbe5230cdb6ad8be651075dd5596227700af4 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 765a28ffb69f6b66b58b9c8d0e2078020c511620
+    Translation of GIT committish: e18567dccce0f16b680e6b7e562329e5f8bcae59
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -2592,13 +2592,16 @@ Consulte @ref{La tipografía Feta} para ver una lista de los símbolos que se
 pueden imprimir con @code{\musicglyph}.
 
 Para ver formas comunes de trucar la colocación de las letras de
-ensayo, consulte @ref{Indicaciones de texto}.
+ensayo, consulte @ref{Indicaciones de texto}.  Para un control más
+preciso, consulte @code{break-alignable-interface} en la sección
+@ref{Alinear los contextos}.
 
 
 @seealso
 Referencia de la notación:
 @ref{La tipografía Feta},
-@ref{Formatear el texto}.
+@ref{Formatear el texto},
+@ref{Alinear los contextos}.
 
 Archivos de inicio: @file{scm/@/translation@/-functions@/.scm}
 contiene las definiciones de @code{format-mark-numbers} y de
index 2ece02735915e8231c18469ee431e2ac4123832d..50d95d41594e0dbd6436e19222b6cb9779d776a4 100644 (file)
@@ -1,6 +1,6 @@
 \input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 @ignore
-    Translation of GIT committish: 829d4293f61b7583e20ecdd3c427cde11e942fef
+    Translation of GIT committish: e18567dccce0f16b680e6b7e562329e5f8bcae59
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -67,6 +67,7 @@ Apéndices
 
 @contents
 
+@allowcodebreaks false
 
 @include usage/running.itely
 @include usage/updating.itely
index fa944b4c1e310640993fe2b1a47d162aa1507d5f..5689799d871bb54f7356c4da0ce3b56d66a2d2e2 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 
 @ignore
-    Translation of GIT committish: 96d8791be5cc001ee2be172e5cfe1cb67fe94d2f
+    Translation of GIT committish: e18567dccce0f16b680e6b7e562329e5f8bcae59
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
index 8d551737e916f134a1758c2583edc49fb335c863..175106c01353e3631572f9c6840e06524a6eb82f 100644 (file)
@@ -1,7 +1,7 @@
 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
 
 @ignore
-    Translation of GIT committish: 4b2f03141029b4bd73bee4d6175f727d92390076
+    Translation of GIT committish: e18567dccce0f16b680e6b7e562329e5f8bcae59
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -280,8 +280,12 @@ basadas en Scheme, en bruto.
 Ejemplo: @code{lilypond -dbackend=svg @var{archivo}.ly}
 
 @item preview
+@cindex vista previa, línea de órdenes
 Generar un archivo de salida que contenga solamente los títulos de
-cabecera y el primer sistema de la primera página.
+cabecera y el primer sistema de música.  Si se usan bloques
+@code{\bookpart}, los títulos y el primer sistema de todos los bloques
+@code{\bookpart} aparecerán en la salida.  Los motores @code{ps},
+@code{eps} y @code{svg} contemplan esta opción.
 
 @item print-pages
 Generar las páginas completas, el ajuste predeterminado.
index 8efe073ac58598d24107f9d4a258dd0f2478c110..c21b4b60cada8edf09feabf3632c5c10b6cc82f8 100644 (file)
@@ -1,6 +1,6 @@
 \input texinfo @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: 829d4293f61b7583e20ecdd3c427cde11e942fef
+    Translation of GIT committish: e18567dccce0f16b680e6b7e562329e5f8bcae59
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -162,6 +162,7 @@ mediante ordenador.
 
 @contents
 
+@allowcodebreaks false
 
 @c ****************** GENERAL STUFF FOR INFO ************
 @ignore
index 09465ee79d4f6dfbf8f5ca00248a53ab262bcafa..d02f3c6b6f3a0db8d836f9d504e27f956faaa19b 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: c1eb9d63bb22ba4a9243942599f68768f5631e34
+    Translation of GIT committish: e18567dccce0f16b680e6b7e562329e5f8bcae59
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
 
 @imageFloat{flat-design,png,right}
 
-El origen de la inspiración para LilyPond está en dos músicos que se
-encontraban molestos con el insípido y aburrido aspecto de la música
-impresa mediante ordenador.  Todo músico prefiere leer música impresa
-de manera hermosa, así que ¿por qué no iban a poder los programadores
-escribir software para producir partituras mejor impresas?
-
-Este programa hace simplemente eso: imprime música dentro de las
-mejores tradiciones del grabado clásico con un mínimo de
-complicaciones.  No pierda tiempo en hacer ajustes finos del
-espaciado, cambiar símbolos de sitio, o dando forma a las ligaduras.
-¡Impresione a sus amigos y colegas con partituras espectaculares!
+LilyPond apareció cuando dos músicos quisieron ir más allá de la
+inexpresiva apariencia de la música impresa mediante ordenador.  Los
+músicos prefieren leer partituras bonitas, así que ¿por qué no iban a
+poder los programadores escribir software para producir partituras
+elegantes?
+
+El resultado es un sistema que libera a los músicos de preocuparse por
+los detalles de la disposición sobre el papel, lo que les permite
+centrarse en la música.  LilyPond trabaja codo con codo con ellos para
+crear partituras de calidad editorial, realizadas dentro de las
+mejores tradiciones del grabado musical clásico.
+
 @divEnd
 
 @divClass{column-left-top}
@@ -108,15 +109,15 @@ espaciado, cambiar símbolos de sitio, o dando forma a las ligaduras.
 
 @imageFloat{flat-design,png,right}
 
-El propósito de LilyPond es que lo usemos para producir partituras
-elegantes que sean fáciles de leer.  Su comunidad de desarrolladores
-ha empleado miles de horas en desarrollar un programa de grabado
-musical que produce como resultado música impresa de forma hermosa.
-Todos los ajustes de estilo de LilyPond, el diseño de las fuentes y
-los algoritmos se han inspirado en la mejor música grabada a mano.  La
-salida de LilyPond tiene el mismo aspecto robusto, equilibrado y
-elegante que las partituras clásicas mejor grabadas.  Todo esto se
-explica con detalle en nuestro @ref{Ensayo}.
+LilyPond permite a los músicos producir partituras elegantes que sean
+fáciles de leer.  Su comunidad de desarrolladores ha empleado miles de
+horas en desarrollar un programa de grabado musical que produce como
+resultado música impresa de forma hermosa.  Todos los ajustes de
+estilo de LilyPond, el diseño de las fuentes y los algoritmos se han
+inspirado en la mejor música grabada a mano.  La salida de LilyPond
+tiene el mismo aspecto robusto, equilibrado y elegante que las
+partituras clásicas mejor grabadas.  Todo esto se explica con detalle
+en nuestro @ref{Ensayo}.
 
 
 @subsubheading Menos complicaciones
@@ -132,11 +133,10 @@ barras se inclinan ¡automáticamente!
 @subsubheading Entrada basada en texto
 
 LilyPond toma una entrada en texto normal, que podemos elaborar en
-nuestro editor de texto de preferencia, de forma rápida y cómoda.  Se
-acabaron los enredos con el ratón.  La entrada de texto contiene toda
-la información, de manera que no hay necesidad de recordar complejas
-secuencias de instrucciones.  Tan sólo grabe un código de entrada para
-que sirva como referencia futura.
+nuestro editor de texto de preferencia, de forma rápida y cómoda.  La
+entrada de texto contiene toda la información, de manera que no hay
+necesidad de recordar complejas secuencias de instrucciones: tan sólo
+guarde un código de entrada para que sirva como referencia futura.
 
 
 @subsubheading Accesibilidad
@@ -196,7 +196,7 @@ desarrollo se asegura de que los problemas se resuelven con prontitud.
 @subheading ¿Ahora qué?
 
 ¿Aún no está convencido?  Eche un vistazo a algunos @ref{Ejemplos}
-interesantes.  Si ya está decidido a probar LilyPond, en primer lugar
+concretos.  Si ya está decidido a probar LilyPond, en primer lugar
 infórmese de nuestra @ref{Entrada de texto}.
 @divEnd
 
@@ -512,9 +512,13 @@ actuaciones por todo el mundo.  Algunos titulares:
 @itemize
 
 @item
-@emph{Affaire Étrangère}, ópera de Valentin Villenave, con libreto de
-Lewis Trondheim, estrenada el 1 de febrero de 2009 en
-@uref{http://www.opera-montpellier.com/, L'Opéra Montpellier}.
+@emph{Affaire Étrangère}, ópera de
+@uref{http://www.valentin.villenave.net/,Valentin Villenave}, con
+libreto en francés de
+@uref{http://en.wikipedia.org/wiki/Lewis_Trondheim, Lewis Trondheim},
+estrenada el 1 de febrero de 2009 en
+@uref{http://www.opera-montpellier.com/, L'Opéra National de
+Montpellier}, en Francia.
 
 @item
 La interpretación de
@@ -808,14 +812,17 @@ concierto):
 Nos damos cuenta de que muchos usuarios ven un poco extraña esta forma
 de introducir la música.  Por este motivo, hemos escrito una amplia
 documentación de ayuda a los nuevos usuarios, comenzando con
-@ref{Aprendizaje}.
+@ref{Aprendizaje}.  El Manual de aprendizaje es el mejor sitio para
+empezar, porque allí se responden muchas preguntas antes de que se
+formulen.
 
 ¡Le rogamos que lea el Manual de Aprendizaje antes de protestar por
 posibles fallos en el programa!  Con frecuencia, los usuarios noveles
 creen que LilyPond no funciona, cuando de hecho está funcionando
 exactamente tal y como está diseñado para hacerlo.
 
-@c @hel p{any suggestions for a picture here?}
+Tiene a su disposición una documentación mucho más profunda en la
+sección @ref{Manuales}.
 
 
 @subsubheading Entornos de edición facilitados
@@ -861,11 +868,19 @@ está convencido?  Lea algo sobre los entornos de edición en
 
 @uref{http://denemo.org}
 
-Denemo es un editor gráfico que genera código fuente de LilyPond y
-también permite la reproducción sonora de la música.  Está en
-desarrollo actualmente y genera código para versiones antiguas de
-LilyPond (V2.8.7).  Permite a los usuarios ver el código de entrada de
-LilyPond en paralelo con la visualización gráfica.
+Denemo es un editor gráfico que genera código fuente de LilyPond, en
+la versión 2.8.7, y también permite la reproducción sonora de la
+música.  Permite a los usuarios ver el código de entrada de LilyPond
+en paralelo con la visualización gráfica.  Se pueden aplicar a las
+notas, acordes, etc. trucos de LilyPond adicionales y se guardan con
+el documento de Denemo, de forma que los usuarios pueden continuar
+editándolo de manera gráfica.
+
+Al mover el cursor por el texto de LilyPond se mueve también en la
+presentación gráfica, y los errores de sintaxis de sus trucos de
+LilyPond se destacan en la ventana de texto cuando se imprimen desde
+el programa.
+
 
 @ignore
 Import: LilyPond, MIDI
@@ -886,10 +901,10 @@ ver una imagen más grande),lilypondtool-2.12-screenshot,png,right}
 @sourceimage{logo-macosx,,,}
 @sourceimage{logo-windows,,,}
 
-@uref{http://lilypondtool@/.organum@/.hu}
+@uref{http://lilypondtool.organum.hu}
 
 Creado como un @q{plugin} o complemento para el editor de texto
-@uref{http://@/www@/.jedit@/.org@/,jEdit}, LilyPondTool es una de las
+@uref{http://www.jedit.org,jEdit}, LilyPondTool es una de las
 herramientas basadas en texto más ricas en funcionalidades para la
 edición de partituras de LilyPond.  Entre sus posibilidades se
 encuentran: un asistente de documentos que contempla la posibilidad de
@@ -948,7 +963,6 @@ escribir archivos de entrada de LilyPond.
 @divClass{column-center-top}
 @subheading Otros
 
-@c @hel p insert text and a graphic(s)
 
 @subsubheading Entorno mixto: LilyKDE
 
@@ -960,6 +974,10 @@ escribir archivos de entrada de LilyPond.
 
 @uref{http://lilykde.googlecode.com/}
 
+LilyKDE se ha sustituido por
+@uref{http://www.frescobaldi.org/,Frescobaldi}, y existe como LilyKDE3
+para KDE 3.5 y lilypond-KDE4 para KDE 4.1 solamente.
+
 LilyKDE es un complemento para el editor de texto de KDE
 @uref{http://kate-editor.org/,Kate}.  Tiene un potente asistente de
 partitura para preparar rápidamente un documento de LilyPond, y un
@@ -977,12 +995,12 @@ dentro del gestor de archivos de KDE.
 
 @sourceimage{logo-macosx,,,}
 
-@uref{http://@/www@/.uoregon@/.edu/~koch/texshop}
+@uref{http://www.uoregon.edu/~koch/texshop}
 
 El editor TexShop para MacOS@tie{}X se puede extender para que ejecute
 LilyPond, @command{lilypond-book} y @command{convert-ly} desde dentro
 del editor, utilizando las extensiones que están disponibles en
-@uref{http://@/www@/.dimi@/.uniud@/.it/vitacolo/freesoftware@/.html#desktoppub}.
+@uref{http://www.dimi.uniud.it/vitacolo/freesoftware.html#desktoppub}.
 
 @ignore
 TODO: ask somebody to sponsor/check these.  -gp
@@ -1006,20 +1024,15 @@ svn co http://svn.textmate.org/trunk/Bundles/LilyPond.tmbundle/
 @divClass{column-center-top}
 @subheading Otros programas capaces de exportar código de LilyPond
 
-@ignore
-TODO: change url back to full adress, to make it readable in printouts -ch
-@end ignore
-
-@c @hel p clean up this list, check links, etc.
 
 @subsubheading Entornos gráficos:
 
 @itemize
 @item
-@uref{http://@/noteedit@/.berlios@/.de,NoteEdit}, que importa archivos
-@uref{http://@/www@/.musicxml@/.com/xml@/.html,MusicXML}
+@uref{http://noteedit.berlios.de,NoteEdit}, que importa archivos
+@uref{http://www.musicxml.com/xml.html,MusicXML}
 @item
-@uref{http://@/www@/.rosegardenmusic@/.com,Rosegarden},
+@uref{http://www.rosegardenmusic.com,Rosegarden},
 que importa archivos MIDI
 @item
 @uref{http://vsr.informatik.tu-chemnitz.de/staff/jan/nted/nted.xhtml,NtEd},
@@ -1033,19 +1046,23 @@ hacia LilyPond.
 @uref{http://canorus.org,Canorus} puede exportar también a LilyPond,
 pero aún es un programa en fase beta, se agradecen las pruebas por
 parte de los usuarios.
+@item
+@uref{http://lilycomp.sourceforge.net, LilyComp} es un programa de
+introducción gráfica de notas, que actúa más o menos como un teclado
+numérico que produce notas de lilypond.
 @end itemize
 
 @subsubheading Herramientas de línea de comandos:
 
 @itemize
 @item
-@uref{http://www@/.volny@/.cz/smilauer/rumor/rumor@/.html,Rumor}, un
+@uref{http://www.volny.cz/smilauer/rumor/rumor.html,Rumor}, un
 convertidor monofónico de MIDI a LilyPond en tiempo real.
 @item
-@uref{http://nicolas@/.sceaux@/.free@/.fr/lilypond/lyqi@/.html,lyqi},
+@uref{http://nicolas.sceaux.free.fr/lilypond/lyqi.html,lyqi},
 un modo principal de Emacs.
 @item
-@uref{http://@/common-lisp@/.net/project/fomus/,FOMUS},
+@uref{http://common-lisp.net/project/fomus/,FOMUS},
 una biblioteca de LISP para generar notación musical
 @end itemize
 @divEnd
index 69ce11a8779acb62903085fca2e1ad5085bfbf6e..59b576eef8ea72afd5ee953c0b732750451f7419 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: 3fcde915c606979c4bc220040eedc812937ef4e5
+    Translation of GIT committish: e18567dccce0f16b680e6b7e562329e5f8bcae59
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
 @c DO NOT WRITE BETWEEN THESE LINES
 @c DO NOT WRITE BETWEEN THESE LINES
 
+@newsItem
+@subsubheading El Informe LilyPond, número 17.  @emph{1 de marzo de 2010}
+
+Viva, vuelve el Informe, con un equipo nuevo! Dicen que dos cabezas es
+mejor que una: ¿valdrá también para los diarios?  Léalo y ¡díganos qué
+le parece!  En esta edición hablaremos de páginas web y poesía, ranas
+y bichos, ¡por no mencionar una extensa reseña del editor Frescobaldi!
+
+¿A qué espera?  Acérquese y
+¡@uref{http://news.lilynet.net/The-LilyPond-Report-17, lea el Informe
+LilyPond número 17} (en inglés) ahora mismo!
+
+@newsEnd
+
+@newsItem
+@subsubheading ¡Lanzado LilyPond 2.13.14!  @emph{27 de febrero de 2010}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.13.14.  Esta
+versión está orientada a los desarrolladores solamente, e incluye una
+amplia actualización de la traducción, además de la ronda usual de
+correcciones de fallos.
+@newsEnd
+
 @newsItem
 @subsubheading ¡Lanzado LilyPond 2.13.13!  @emph{13 de febrero de 2010}
 
@@ -29,14 +52,3 @@ salida SVG.  Además, los archivos binarios instalables son ahora unos
 6 Mb más pequeños.
 @newsEnd
 
-
-@newsItem
-@subsubheading ¡Lanzado LilyPond 2.13.12!  @emph{2 de febrero de 2010}
-
-Nos complace anunciar el lanzamiento de LilyPond 2.13.12.  Esta
-versión está orientada solamente a los desarrolladores, y aporta más
-estabilidad y menos bugs al sistema de construcción y a la guía del
-colaborador.
-@newsEnd
-
-
index c802918bfe5e49cb97bb31a4a21c97c5f5e64542..0aa735ef4e69aff1102d2ebde4b8b55c022c8244 100644 (file)
@@ -1,6 +1,6 @@
 @c -*- coding: utf-8; mode: texinfo; -*-
 @ignore
-    Translation of GIT committish: 3fcde915c606979c4bc220040eedc812937ef4e5
+    Translation of GIT committish: e18567dccce0f16b680e6b7e562329e5f8bcae59
 
     When revising a translation, copy the HEAD committish of the
     version that you are working on.  For details, see the Contributors'
@@ -31,13 +31,17 @@ NOTE:
   on one day.
 
   * don't duplicate entries from news-front.itexi
-
-TODO
-
-  * add macro for long Google issues list URL
 @end ignore
 
 
+@newsItem
+@subsubheading ¡Lanzado LilyPond 2.13.12!  @emph{2 de febrero de 2010}
+
+Nos complace anunciar el lanzamiento de LilyPond 2.13.12.  Esta
+versión está orientada solamente a los desarrolladores, y aporta más
+estabilidad y menos bugs al sistema de construcción y a la guía del
+colaborador.
+@newsEnd
 
 @newsItem
 @subsubheading Lanzado LilyPond 2.13.11!  @emph{16 de enero de 2010}
@@ -191,7 +195,7 @@ Neil Puttock.
 This is hopefully the last Release Candidate before stable release 2.12,
 so you are welcome to test this release if you can to report new
 issues.@*
-@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_65&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes},
+@bugfixes{2_11_65,},
 @ref{Cambios},
 @ref{Descargas antiguas}.
 @newsEnd
@@ -242,7 +246,7 @@ LilyPond 2.11.61 has been released. It has updates to
 documentation translations, and a new automatic accidentals style
 (teaching) has been added.
 @*
-@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_61&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes},
+@bugfixes{2_11_61,},
 @ref{Cambios},
 @ref{Descargas antiguas}.
 @newsEnd
@@ -282,7 +286,7 @@ automatic beaming has been improved by Carl Sorensen, support
 for creating stem flags in a new style has been contributed by
 Reinhold Kainhofer, and a few bugs have been fixed.
 @*
-@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_58&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes},
+@bugfixes{2_11_58,},
 @ref{Cambios},
 @ref{Descargas antiguas}.
 @newsEnd
@@ -319,7 +323,8 @@ predefined commands @code{\pointAndClickOn},
 
 LilyPond 2.11.55 is out.  This release fixes several bugs, and for octavation brackets
 @code{set-octavation} has been replaced by a more user-friendly command, @code{\ottava}.
-@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_55&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes},
+@*
+@bugfixes{2_11_55,},
 @ref{Descargas antiguas}.
 @newsEnd
 
@@ -330,7 +335,8 @@ LilyPond 2.11.55 is out.  This release fixes several bugs, and for octavation br
 LilyPond 2.11.54 is out.  This release fixes a bug in tie formatting
 following a line break, and changes the behavior of @code{short-indent}
 so that short instrument names are no longer indented in the margin.
-@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_54&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes},
+@*
+@bugfixes{2_11_54,},
 @ref{Descargas antiguas}.
 @newsEnd
 
@@ -340,7 +346,7 @@ so that short instrument names are no longer indented in the margin.
 
 LilyPond 2.11.53 is out.  This release fixes a lot of bugs.
 @*
-@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_53&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes},
+@bugfixes{2_11_53,},
 @ref{Descargas antiguas}.
 @newsEnd
 
@@ -350,8 +356,10 @@ LilyPond 2.11.53 is out.  This release fixes a lot of bugs.
 
 Release 2.11.52 fixes wrong offset of a bar number when it follows
 a breath mark, and syntax changes made in recent development
-releases are now fully listed on the News page.  @ref{Cambios},
-@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_52&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes},
+releases are now fully listed on the News page.
+@*
+@bugfixes{2_11_52,},
+@ref{Cambios},
 @ref{Descargas antiguas}.
 @newsEnd
 
@@ -363,7 +371,8 @@ Release 2.11.51 has a couple of bugfixes, and a lot of changes in
 predefined command names.  Fret diagrams formatting has been
 improved by Carl Sorensen, it is now controlled
 by @code{fret-diagram-details} property.
-@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_51&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes},
+@*
+@bugfixes{2_11_51,},
 @ref{Descargas antiguas}.
 @newsEnd
 
@@ -374,7 +383,8 @@ by @code{fret-diagram-details} property.
 Release 2.11.50 adds support for metronome marks with text, and
 backslashed numbers for figured bass, contributed by
 Reinhold Kainhofer.
-@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_50&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes},
+@*
+@bugfixes{2_11_50,},
 @ref{Descargas antiguas}.
 @newsEnd
 
@@ -400,7 +410,7 @@ Follow @uref{http://valentin.villenave.info/The-LilyPond-Report-12,this link} to
 
 LilyPond 2.11.49 is out.  It fixes a number of bugs, including bugs in beams formatting.
 @*
-@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_49&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes},
+@bugfixes{2_11_49,},
 @ref{Descargas antiguas}.
 @newsEnd
 
@@ -412,7 +422,7 @@ LilyPond 2.11.48 is out.  This release fixes a few bugs, and
 @code{\compressMusic} has been renamed
 to @code{\scaleDurations}.
 @*
-@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_48&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes},
+@bugfixes{2_11_48,},
 @ref{Descargas antiguas}.
 @newsEnd
 
@@ -439,7 +449,8 @@ Follow @uref{http://valentin.villenave.info/The-LilyPond-Report-10,this link} to
 LilyPond now allows all text context properties to be markups,
 except in @code{\lyricmode}.  This release also fixes
 regression tests maintenance for developers.
-@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_47&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes},
+@*
+@bugfixes{2_11_47,},
 @ref{Descargas antiguas}.
 @newsEnd
 
@@ -449,8 +460,9 @@ regression tests maintenance for developers.
 
 Release 2.11.46 fixes a lot of bugs and includes a rewrite of
 dynamics engravers.  Support for slur-shaped arpeggios has been added.
+@*
+@bugfixes{2_11_46,},
 @ref{Cambios},
-@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_46&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes},
 @ref{Descargas antiguas}.
 @newsEnd
 
@@ -485,8 +497,9 @@ performance, a bugfix about included files, and more flexibility
 for preprocessing documents with LaTeX variants. Support for
 enclosing text in a rounded box has been contributed by Valentin
 Villenave.
+@*
+@bugfixes{2_11_45,},
 @ref{Cambios},
-@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_45&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes},
 @ref{Descargas antiguas}.
 @newsEnd
 
@@ -496,7 +509,9 @@ Villenave.
 
 Release 2.11.44 is available. Support for figured bass and chord
 names has been added to the MusicXML
-converter. @uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_44&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes},
+converter.
+@*
+@bugfixes{2_11_44,},
 @ref{Descargas antiguas}.
 @newsEnd
 
@@ -514,7 +529,9 @@ Lilypond.orgのいくつかのページの日本語訳が出来ました。
 Release 2.11.43 has been available since March 27. It fixes a
 couple of formatting bugs, and the font cache problem with
 MS-Windows binaries which caused excessive slowness has been
-fixed. @uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_43&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes},
+fixed.
+@*
+@bugfixes{2_11_43,},
 @ref{Descargas antiguas}.
 @newsEnd
 
@@ -523,8 +540,10 @@ fixed. @uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_1
 @subsubheading LilyPond 2.11.42 available.  @emph{March 9, 2008}
 
 Release 2.11.42 is out. It fixes some formatting and spacing
-bugs. (@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_42&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes},
-@ref{Descargas antiguas})
+bugs.
+@*
+@bugfixes{2_11_42,},
+@ref{Descargas antiguas}.
 @newsEnd
 
 
@@ -546,7 +565,9 @@ the articles}.
 
 Release 2.11.41 is available. It has a few bugfixes, updated
 program messages in French, German, Spanish and Vietnamese, and
-updates to the MusicXML converter. (@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_41&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes},
+updates to the MusicXML converter.
+@*
+@bugfixes{2_11_41,},
 @ref{Descargas antiguas})
 @newsEnd
 
@@ -564,7 +585,10 @@ documentation changes. (@ref{Descargas antiguas})
 
 Release 2.11.36 is now available. It has many bugfixes, updates
 for MusicXML import, and it includes major documentation changes from
-Grand Documentation Project. (@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_36&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, @ref{Descargas antiguas})
+Grand Documentation Project.
+@*
+@bugfixes{2_11_36,},
+@ref{Descargas antiguas}.
 @newsEnd
 
 
@@ -572,9 +596,10 @@ Grand Documentation Project. (@uref{http://code.google.com/p/lilypond/issues/lis
 @subsubheading LilyPond 2.11.33 and 2.10.33 available.  @emph{September 20, 2007}
 
 Release 2.11.33 is now available.
-(@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_10_33&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes
-2.10}, @uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_33&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes
-2.11}, @ref{Descargas antiguas})
+@*
+@bugfixes{2_10_33,2.10},
+@bugfixes{2_11_33,2.11},
+@ref{Descargas antiguas}.
 @newsEnd
 
 
@@ -582,7 +607,9 @@ Release 2.11.33 is now available.
 @subsubheading LilyPond 2.11.32 available.  @emph{September 2, 2007}
 
 Release 2.11.32 is now available.
-(@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_32&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, @ref{Descargas antiguas})
+@*
+@bugfixes{2_11_32,},
+@ref{Descargas antiguas}.
 @newsEnd
 
 
@@ -591,7 +618,9 @@ Release 2.11.32 is now available.
 
 Release 2.11.31 is now available. It has more bugfixes, updates
 for MusicXML import and lots of updates for the translations.
-(@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_31&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, @ref{Descargas antiguas})
+@*
+@bugfixes{2_11_31,},
+@ref{Descargas antiguas}.
 @newsEnd
 
 
@@ -600,7 +629,10 @@ for MusicXML import and lots of updates for the translations.
 
 Release 2.11.30 is now available. It has various bugfixes among
 others in the new spacing code, MusicXML import and lots of updates
-for the translations.  (@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_30&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, @ref{Descargas antiguas})
+for the translations.
+@*
+@bugfixes{2_11_30,},
+@ref{Descargas antiguas}.
 @newsEnd
 
 
@@ -610,9 +642,10 @@ for the translations.  (@uref{http://code.google.com/p/lilypond/issues/list?can=
 Release 2.11.29 is now available. 2.10.29 has a few small fixes.
 2.11.29 has several bugfixes, among others in the new spacing code,
 and lots of updates for the translations.
-(@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_10_29&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes
-2.10}, @uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_29&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes
-2.11}, @ref{Descargas antiguas})
+@*
+@bugfixes{2_10_29,2.10},
+@bugfixes{2_11_29,2.11},
+@ref{Descargas antiguas}.
 @newsEnd
 
 
@@ -631,8 +664,9 @@ do @emph{sh lilypond-2.11.28-1.freebsd-64.sh} in a command window.
 Release 2.11.28 has several updates to the manual and its
 translations,  an plethora of bugfixes and a complete cleanup of the
 spacing engine code.
-(@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_28&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes
-2.11}, @ref{Descargas antiguas})
+@*
+@bugfixes{2_11_28,},
+@ref{Descargas antiguas}.
 @newsEnd
 
 
@@ -641,8 +675,9 @@ spacing engine code.
 
 Release 2.11.26 supports page markers, eg. for use in
 tables-of-contents.  In addition, it fixes a number of bugs. Enjoy!
-(@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_26&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes
-2.11}, @ref{Descargas antiguas})
+@*
+@bugfixes{2_11_26,},
+@ref{Descargas antiguas}.
 @newsEnd
 
 
@@ -651,17 +686,20 @@ tables-of-contents.  In addition, it fixes a number of bugs. Enjoy!
 
 Release 2.11.25 has support for toplevel page breaking commands,
 and page breaking as a whole has been sped up significantly. Enjoy!
-(@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_25&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes
-2.11}, @uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_10_25&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes
-2.10}, @ref{Descargas antiguas})
+@*
+@bugfixes{2_10_25,2.10},
+@bugfixes{2_11_25,2.11},
+@ref{Descargas antiguas}.
 @newsEnd
 
 
 @newsItem
 @subsubheading LilyPond 2.10.23 and 2.11.23 available - @emph{May 1, 2007}
-This has lots of bugfixes.  (@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_23&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes
-2.11}, @uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_10_23&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes
-2.10}, @ref{Descargas antiguas})
+This has lots of bugfixes.
+@*
+@bugfixes{2_10_23,2.10},
+@bugfixes{2_11_23,2.11},
+@ref{Descargas antiguas}.
 @newsEnd
 
 
@@ -677,16 +715,21 @@ online und @ref{Descargas antiguas}.
 
 @newsItem
 @subsubheading LilyPond 2.11.22 available - @emph{April 10, 2007}
-This release has updates of the dot collision code.  (@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_22&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes
-}, @ref{Cambios}, @ref{Descargas antiguas})
+This release has updates of the dot collision code.
+@*
+@bugfixes{2_11_22,},
+@ref{Cambios},
+@ref{Descargas antiguas}.
 @newsEnd
 
 
 @newsItem
 @subsubheading LilyPond 2.11.21 available - @emph{March 24, 2007}
 This release has some documentation updates.
-(@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_21&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes
-}, @ref{Cambios}, @ref{Descargas antiguas})
+@*
+@bugfixes{2_11_21,},
+@ref{Cambios},
+@ref{Descargas antiguas}.
 @newsEnd
 
 
@@ -702,10 +745,11 @@ d&eacute;sormais traduits, et disponibles en ligne &mdash; @uref{@@DOC@@v2.10/Do
 @newsItem
 @subsubheading LilyPond 2.10.20 and 2.11.20 available - @emph{February 25, 2007}
 This release fixes many bugs.
-(@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_11_20&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes
-2.11},
-@uref{http://code.google.com/p/lilypond/issues/list?can=1&amp;q=fixed_2_10_20&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes
-2.10}, @ref{Cambios}, @ref{Descargas antiguas})
+@*
+@bugfixes{2_10_20,2.10},
+@bugfixes{2_11_20,2.11},
+@ref{Cambios},
+@ref{Descargas antiguas}.
 @newsEnd
 
 
index b755ca0b488e616abf77622c3cff468f04bac8ca..ede8dd77613a87d5df3ad00e8faa4c205abee041 100644 (file)
@@ -283,6 +283,7 @@ si vous imprimez une partition avec les deux sections balisées.
 * Contenu de la sortie MIDI::  
 * Répétitions et MIDI::             
 * Gestion des nuances en MIDI::   
+* MIDI et percussions::
 @end menu
 
 @node Création de fichiers MIDI
@@ -367,3 +368,11 @@ pourcentage.  Par exemple
 @unnumberedsubsubsec Amplitude du volume en MIDI
 @unnumberedsubsubsec Égalisation de plusieurs instruments (i)
 @unnumberedsubsubsec Égalisation de plusieurs instruments (ii)
+
+
+@node MIDI et percussions
+@subsection MIDI et percussions
+@translationof Percussion in MIDI
+
+@untranslated
+
diff --git a/Documentation/hu/usage/updating.itely b/Documentation/hu/usage/updating.itely
new file mode 100644 (file)
index 0000000..40b914d
--- /dev/null
@@ -0,0 +1,256 @@
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: hu -*-
+
+@ignore
+    Translation of GIT committish: 02a351abc96257d0111a2df8843354160477da49
+
+    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"
+
+
+@node A convert-ly használata
+@chapter A @command{convert-ly} használata
+@translationof Updating files with convert-ly
+
+@cindex fájlok frissítése
+@cindex convert-ly
+
+A LilyPond nyelvtana rendszeresen változik, hogy egyszerűsödjön és fejlődjön.
+Ennek mellékhatásaként a LilyPond olykor nem tudja értelmezni a régebbi
+forrásfájlokat. Ezt az inkompatibilitást hidalja át a @command{convert-ly}
+segédprogram, mely a verziók közötti nyelvváltozások legtöbbjét lekezeli.
+
+@menu
+* Miért változik a szintaxis?::
+* A convert-ly futtatása::
+* A convert-ly parancssori paraméterei::
+* Problémák a convert-ly futtatása közben::
+* Kézi frissítés::
+@end menu
+
+
+@node Miért változik a szintaxis?
+@section Miért változik a szintaxis?
+@translationof Why does the syntax change?
+
+Ahogy a LilyPond maga fejlődik, a szintaxis (azaz a bemenet nyelve) is ennek
+megfelelően változik. Ezek a változások azért mennek végbe, hogy a bemenetet
+könnyebb legyen olvasni és írni, vagy a LilyPond új képességeihez igazodnak.
+
+Például minden @code{\paper} és @code{\layout} blokkbeli tulajdonság nevében a
+szavak konvenció szerint kötőjelekkel kerülnek elválasztásra. A 2.11.60-as
+verzióban azonban észrevettük, hogy a @code{printallheaders} tulajdonság nem
+követi ezt a konvenciót. Felmerült a kérdés: úgy hagyjuk, ahogy eddig volt
+(így inkonzisztenciával megzavarva az új felhasználókat), vagy
+megváltoztassuk (így arra kényszerítve a régi felhasználókat, hogy meglévő
+kottáikat frissítsék)? Ebben az esetben amellett döntöttünk, hogy
+megváltoztatjuk @code{print-all-headers}-re. Szerencsére ezt a változás
+automatikusan kezelhető a @command{convert-ly} parancssori eszközzel.
+
+Sajnos a @code{convert-ly} nem képes a nyelvtan minden változását lekezelni.
+Például a LilyPond 2.4-es és korábbi verzióiban az ékezetes és egyéb, nem
+angol ábécébe tartozó karaktereket a LaTeX-ben megszokott módszerrel kellett
+megadni (pl. a francia Noël szót a következőképpen: @code{No\"el}). De a
+@c keep "-matching straight in fancy editors
+LilyPond 2.6-os verziója óta minden ilyen karakter, pl. az @code{ë} is
+közvetlenül beleírható a bemeneti fájlba UTF-8 karakterkódolással. A
+@code{convert-ly} nem képes minden LaTeX szintaxissal megadott speciális
+karaktert átkonvertálni az UTF-8 megfelelőjébe; ezeket kézzel kell frissíteni.
+
+
+@node A convert-ly futtatása
+@section A @command{convert-ly} futtatása
+@translationof Invoking convert-ly
+
+A @command{convert-ly} a forrásfájlban található @code{\version} parancs
+alapján állapítja meg a fájl verziószámát. A legtöbb esetben a forrásfájl
+frissítéséhez elegendő kiadni a
+
+@example
+convert-ly -e @var{fájlnév}.ly
+@end example
+
+@noindent
+parancsot abban a könyvtárban, ahol a fájl található. Ez a parancs helyben
+frissíti a @code{@var{fájlnév}.ly} fájlt, az eredetit pedig megőrzi
+@code{@var{fájlnév}.ly~} néven. 
+
+@warning{A @command{convert-ly} parancs alapesetben csak arra a verzióra
+frissít, amelyikben a legutóbbi szintaxisváltozás történt. Így általában
+a frissített fájl verziószáma kisebb lesz, mint az éppen használt programé.}
+
+Egy könyvtárban található összes bemeneti fájl frissítéséhez a következő
+parancs használható:
+
+@example
+convert-ly -e *.ly
+@end example
+
+Amennyiben az újabb fájlnak más nevet szeretnénk adni, és az eredeti fájlt
+változatlanul szeretnénk hagyni, a következő parancsot adjuk ki:
+
+@example
+convert-ly @var{fájlnév}.ly > @var{újfájlnév}.ly
+@end example
+
+Futása során a program kiírja a verziószámokat, amelyekre frissítés történt.
+Ha egy verziószám sincs kiírva, akkor a fájl teljesen friss.
+
+A Mac OS@tie{}X-felhasználók ezt a parancsot a grafikus felületen is elérhetik
+a @code{Compile > Update syntax} menüpontból.
+
+A Windows-felhasználóknak ezeket a parancsokat a DOS parancssorba kell beírni,
+amit tipikusan a Start menüben a @code{Programok > Kellékek > Parancssor}
+kiválasztásával lehet elindítani.
+
+
+@node A convert-ly parancssori paraméterei
+@section A @command{convert-ly} parancssori paraméterei
+@translationof Command line options for convert-ly
+
+A program meghívása a következő módon történik:
+
+@example
+convert-ly [@var{opció}]@dots{} @var{fájlnév}@dots{}
+@end example
+
+
+A következő opciók adhatóak meg:
+
+@table @code
+@item -e,--edit
+A fájl helyben frissítése.
+
+@item -f,--from=@var{forrásverzió}
+A forrásfájl verziójának megadása. Ha nincs megadva, a @command{convert-ly}
+a fájlban található @code{\version} parancs alapján kitalálja.
+Példa: @code{--from=2.10.25}
+
+@item -n,--no-version
+Alapesetben a @command{convert-ly} ellátja a kimenetét a megfelelő
+@code{\version} paranccsal. Ez az opció ezt tiltja le.
+
+@item -s, --show-rules
+Nem történik frissítés, csak a frissítési szabályok kiírása.
+
+@item --to=@var{célverzió}
+Azt adja meg, hogy melyik verzióra frissüljön a fájl. Alapértéke a legfrissebb
+elérhető verzió. Példa: @code{--to=2.12.2}
+
+@item -h, --help
+Segítség kiírása az alkalmazás használatához.
+@end table
+
+Texinfo fájlokban található LilyPond részletek frissítéséhez az alábbi parancs
+használatos:
+
+@example
+convert-ly --from=... --to=... --no-version *.itely
+@end example
+
+A LilyPond két verziója közötti, a nyelvtanban bekövetkezett változások
+megtekintéséhez pedig a következő:
+
+@example
+convert-ly --from=... --to=... -s
+@end example
+
+
+@node Problémák a convert-ly futtatása közben
+@section Problémák a @command{convert-ly} futtatása közben
+@translationof Problems running convert-ly
+
+Amikor olyan forrásfájlt frissítünk a @command{convert-ly} segédprogrammal
+Windows alatt parancssorból, amelynek elérési útja szóközt tartalmaz, a
+forrásfájl elérési útját három-három (!) idézőjel közé kell írni:
+
+@example
+convert-ly """D:/Az én kottáim/Óda.ly""" > "D:/Az én kottáim/Óda - új.ly"
+@end example
+
+Ha az egyszerű @command{convert-ly -e *.ly} parancs futása meghiúsul a fájlok
+nagy mennyisége miatt, a másik lehetőség a @command{convert-ly} futtatása
+ciklusban. A következő, UNIX alatt használható példa minden @code{.ly} fájlt
+frissít az aktuális könyvtárban:
+
+@example
+for f in *.ly; do convert-ly -e $f; done;
+@end example
+
+A Windows parancssorában a megfelelő parancs:
+
+@example
+for %x in (*.ly) do convert-ly -e """%x"""
+@end example
+
+A program nem minden változást képes kezelni.
+A Scheme kód és a LilyPond Scheme felületének frissítése nem történik meg, a
+Scheme kódrészleteket kézzel kell átírni.
+
+
+@node Kézi frissítés
+@section Kézi frissítés
+@translationof Manual conversions
+
+Ideális esetben a @command{convert-ly} minden változás kezelésére képes lenne.
+Elvégre ha a régi verzió képes volt értelmezni a régi nyelvtant, az új verzió
+pedig az újat, akkor elvileg létezhetne egy másik program, amelyik a kettő
+közötti konverziót elvégzi@footnote{Legalábbis ez abban az esetben
+lehetséges, ha a LilyPond fájl nem tartalmaz Scheme kódot. Ha viszont
+tartalmaz, akkor egy Turing-teljes nyelvvel van dolgunk, és az
+algoritmuselméletben jól ismert @qq{megállási problémába} ütközünk.}.
+
+A gyakorlatban azonban a LilyPond erőforrásai korlátosak: nem minden konverzió
+történik meg automatikusan. Íme az ismert problémák listája.
+
+
+@verbatim
+1.6 -> 2.0:
+- A számozott basszus frissítése nem tökéletes, főleg a {< >} esetében.
+Ez úgy kerülhető meg, hogy a '{<' karakterlánc összes előfordulását egy
+ideiglenes másik karakterláncra cseréljük, pl. '{#'-re. Hasonlóképpen a
+'>}' előfordulásai '&}'-re cserélendőek. A frissítés után pedig a következő
+cseréket kell végrehajtani: '{ #' -> '{ <' és '& }' -> '> }'.
+- A formázott szövegek frissítése sem mindig jó. Eddig zárójelekkel
+csoportosítani lehetett több formázó parancsot, pl.:
+   -#'((bold italic) "string")
+Ez sajnos helytelenül a következővé alakul:
+   -\markup{{\bold italic} "string"}
+A helyes ez lenne:
+   -\markup{\bold \italic "string"}
+
+2.0 -> 2.2:
+- A \partcombine frissítése nem támogatott.
+- Az \addlyrics => \lyricsto frissítés nem történik meg, ez több versszakkal
+rendelkező kották esetében problémát okozhat.
+
+2.0 -> 2.4:
+A következő konverziók nem támogatottak:
+- \magnify #m => \fontsize #f, ahol f = 6ln(m)/ln(2))
+- \applyMusic #(remove-tag '...) => \keepWithTag #'...
+- first-page-number no => print-first-page-number = ##f
+- "Első sor" \\\\ "Második sor" =>
+  \markup \center-align < "Első sor" "Második sor" >
+- \rced => \!
+- \rc => \!
+
+2.2 -> 2.4:
+A \turnOff parancs (pl. a következő esetben:
+\set Staff.VoltaBracket = \turnOff) frissítése helytelen.
+
+2.4.2 -> 2.5.9
+A \markup{ \center-align <{ ... }> } parancs a frissítés után
+\markup{ \center-align {\line { ... }} } kellene, hogy legyen, de a \line
+jelenleg hiányzik.
+
+2.4 -> 2.6
+A speciális LaTeX karakterek (pl. $~$) nem alakulnak át az UTF-8
+megfelelőjükre.
+
+2.8
+A \score{} blokknak innentől kezdve egy zenei kifejezéssel kell kezdődnie. 
+Minden más (pl. a \header{} blokk) a zene után jöhet csak.
+@end verbatim
index 63006fbe4fcce6d5987084e357694b75160c728c..93e5d21d7271992228d27eefd0acc789ebfa05da 100644 (file)
@@ -1024,3 +1024,7 @@ msgstr "Lábjegyzet"
 msgid "Table of Contents"
 msgstr "Tartalomjegyzék"
 
+#: postprocess_html.py:60
+#, python-format
+msgid "About <A HREF=\"%s\">automatic language selection</A>."
+msgstr "Az <a href=\"%s\">automatikus nyelvválasztásról</a>."