@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@c This file is part of lilypond.tely
@ignore
- Translation of GIT committish: dfae8d829c653d1c011f8823cd51d09c33400b66
+Translation of GIT committish: 88f1608ae6fd17b05344bafb2f0721aafdac657b
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@node Changing defaults
@chapter Changing defaults
-
-El objetivo del diseño de LilyPond es proporcionar por defecto la más
-alta calidad de los resultados. A pesar de ello, podría tener que
-cambiar este resultado por defecto. La disposición sobre el papel se
-controla a través de un amplio número de proverbiales @q{botones e
-interruptores}. Este capítulo no relaciona todos y cada uno de los
-botones. Más bien da una visión de conjunto sobre qué grupos de
-controles se encuentran disponibles y explica la forma de hallar el
-botón exacto que se debe utilizar para conseguir un determinado
-efecto.
-
+El objetivo del diseño de LilyPond es proporcionar la más alta calidad
+de los resultados, de forma predeterminada. A pesar de ello, podría
+tener que cambiar este resultado predeterminado. La disposición sobre
+el papel se controla a través de un amplio número de @q{botones e
+interruptores} llamados en su conjunto @q{propiedades}. En el Manual
+de aprendizaje podemos encontrar una introducción en forma de tutorial
+al acceso y modificación de estas propiedades, véase
+@rlearning{Tweaking output}. Éste debería leerse en primer lugar.
+Este capítulo cubre un terreno similar, pero con un estilo más
+adecuado para un manual de referencia.
@cindex Referencia de funcionamiento interno
-Los controles disponibles para los ajustes finos se describen en un
-documento separado,
-@iftex
-el Manual de referencia de funcionamiento interno.
-@end iftex
-@ifnottex
-la @ref{Top,Referencia de funcionamiento interno,,lilypond-internals}.
-@end ifnottex
-Dicho manual relaciona todas las variables, funciones y opciones que
-se encuentran disponibles en LilyPond. Está escrito como un documento
-HTML, que se puede encontrar en
+La descripción definitiva de los controles que están dipsonibles para
+su ajuste fino están en un documento aparte: @rinternalsnamed{Top,la
+Referencia de funcionamiento interno}. Dicho manual relaciona todas
+las variables, funciones y opciones que se encuentran disponibles en
+LilyPond. Está escrito como un documento HTML, que se puede encontrar
+en
@c leave the @uref as one long line.
@uref{http://@/lilypond@/.org/@/doc/@/stable/@/Documentation/@/user/@/lilypond@/-internals/,on@/-line},
pero que también va incluido en el paquete de la documentación de LilyPond.
-Hay cuatro áreas en las que se pueden cambiar los valores por defecto:
-
-@itemize
-@item
-Notación automática: cambiar la creación automática de los elementos
-de notación. Por ejemplo, cambiar las reglas de barrado de las
-figuras.
-
-@item
-Salida: cambiar el aspecto de los objetos individuales. Por ejemplo,
-cambiar las direcciones de las plicas o la situación exacta de los
-subíndices.
-
-@item
-Contexto: modificar aspectos de la traducción de los eventos musicales
-en notación. Por ejemplo, dar a cada pentagrama una indicación de
-compás distinta.
-
-@item
-Disposición de la página: cambiar el aspecto visual del espaciado, los
-saltos de línea y las dimensiones de la página. Estas modificaciones
-se discuten en @ref{General input and output} y @ref{Spacing issues}.
-@end itemize
-
Internamente, LilyPond utiliza el lenguaje Scheme (un dialecto de
LISP) para aportar la infraestructura. La sobreescritura de las
decisiones de disposición da acceso efectivo a las interioridades del
tutorial} contiene un breve tutorial sobre la introducción de números,
listas, cadenas y símbolos en Scheme.}
-
@menu
-* Interpretation contexts::
-* Explaining the Internals Reference::
-* Modifying properties::
-* Useful concepts and properties::
-* Common properties::
-* Advanced tweaks::
+* Interpretation contexts::
+* Explaining the Internals Reference::
+* Modifying properties::
+* Useful concepts and properties::
+* Advanced tweaks::
@end menu
Esta sección explica qué son los contextos y cómo modificarlos.
@menu
-* Contexts explained::
-* Creating contexts::
-* Modifying context plug-ins::
-* Changing context default settings::
-* Defining new contexts::
-* Aligning contexts::
+* Contexts explained::
+* Creating contexts::
+* Modifying context plug-ins::
+* Changing context default settings::
+* Defining new contexts::
+* Aligning contexts::
@end menu
+@seealso
+
+Manual de aprendizaje:
+@rlearning{Contexts and engravers}.
+
+Archivos de inicio:
+@file{ly/@/engraver@/-init@/.ly},
+@file{ly/@/performer@/-init@/.ly}.
+
+Fragmentos de código:
+@rlsr{Contexts and engravers}.
+
+Referencia de funcionamiento interno:
+@rinternals{Contexts},
+@rinternals{Engravers and Performers}.
+
@node Contexts explained
@subsection Contexts explained
-Cuando se imprime la música, se tienen que añadir a la salida una gran
-cantidad de elementos notacionales. Por ejemplo, compare la entrada y
-la salida del siguiente ejemplo:
+Los contextos se disponen de forma jerárquica:
-@lilypond[quote,verbatim,relative=2,fragment]
-cis4 cis2. g4
-@end lilypond
+@menu
+* Score - the master of all contexts::
+* Top-level contexts - staff containers::
+* Intermediate-level contexts - staves::
+* Bottom-level contexts - voices::
+@end menu
-La entrada es bastante escueta, pero en la salida se añaden líneas
-divisorias, alteraciones accidentales, la clave y la indicación de
-compás. LilyPond @emph{interpreta} la entrada. En esta fase se
-inspecciona la información musical en orden temporal, de forma
-parecida a la lectura de una partitura de izquierda a
-derecha. Mientras se lee la entrada, el programa recuerda dónde se
-encuentran los límites de los compases, y qué notas requieren
-alteraciones explícitas. Esta información se puede presentar sobre
-varios niveles. Por ejemplo, el efecto de una alteración accidental
-se encuentra limitada a un solo pentagrama, mientras que una barra
-divisoria debe estar sincronizada a través de la partitura de arriba a
+@node Score - the master of all contexts
+@unnumberedsubsubsec Score - the master of all contexts
+
+Este es el contexto de notación del nivel más alto. Ningún otro
+contexto puede contener a un contexto Score. De forma predeterminada,
+el contexto Score maneja la administración de las indicaciones de
+compás y se asegura de que ciertos elementos como claves, compases y
+armaduras están siempre alineados entre los distintos pentagramas.
+
+Se crea implícitamente una instancia del contexto Score cuando se
+procesa un bloque @code{\score @{@dots{}@}} o @code{\layout
+@{@dots{}@}}, o explícitamente cuando se ejecuta una instrucción
+@code{\new Score}.
+
+@node Top-level contexts - staff containers
+@unnumberedsubsubsec Top-level contexts - staff containers
+
+@strong{@emph{StaffGroup}}
+
+Agrupa pentagramas y añade un corchete en la parte izquierda, formando
+un grupo. Las líneas divisorias de los pentagramas contenidos se
+conectan verticalmente. StaffGroup sólo consiste en una colección de
+pentagramas, con un corchete delante y líneas divisorias de arriba a
abajo.
-Dentro de LilyPond, estas reglas y pequeñas porciones de información
-se agrupan en @emph{Contexts}. Algunos ejemplos de contextos son
-@code{Voice} (Voz), @code{Staff} (Pauta o pentagrama) y @code{Score}
-(Partitura). Los contextos son jerárquicos, por ejemplo: un
-@code{Staff} contener muchas @code{Voice}s, y una @code{Score} puede
-contener muchos contextos de @code{Staff}.
+@strong{@emph{ChoirStaff}}
-@quotation
-@sourceimage{context-example,5cm,,}
-@end quotation
+Idéntico a StaffGroup excepto que las barras de compás de los
+pentagramas contenidos no se conectan verticalmente.
+
+@strong{@emph{GrandStaff}}
+
+Un grupo de pentagramas, con una llave en la parte izquierda que
+abarca el grupo. Las barras de compás de los pentagramas contenidos
+se conectan verticalmente.
+
+@strong{@emph{PianoStaff}}
+
+@c TODO No longer correct? Check. -td
+Igual que GrandStaff pero con una distancia fija entre los
+pentagramas, de manera que se pueden usar ligaduras y barras que
+cruzan de un pentagrama a otro.
+
+@ignore
+@strong{@emph{InnerStaffGroup}}
+
+TODO -td
+
+@strong{@emph{InnerChoirStaff}}
+
+TODO -td
+
+@end ignore
+
+@node Intermediate-level contexts - staves
+@unnumberedsubsubsec Intermediate-level contexts - staves
+
+@strong{@emph{Staff}}
+
+Maneja claves, barras de compás, tonalidades y alteraciones
+accidentales. Puede contener contextos de Voice.
+
+@strong{@emph{RhythmicStaff}}
+
+Como Staff, pero para imprimir ritmos. Se ignoran las alturas de las
+notas; las notas se imprimen sobre una línea.
+
+@strong{@emph{TabStaff}}
+
+Contexto para generar tablaturas. De forma predeterminada dispone la
+expresión musical como una tablatura de guitarra, impresa sobre seis
+líneas.
+
+@strong{@emph{DrumStaff}}
+
+Maneja el tipografiado para instrumentos de percusión. Puede contener
+contextos DrumVoice.
+
+@strong{@emph{VaticanaStaff}}
+
+Iguall que Staff, excepto que está pensado para tipografiar piezas en
+estilo gregoriano.
+
+@strong{@emph{MensuralStaff}}
+
+Igual que Staff, excepto que está diseñado para tipografiar piezas en
+estilo mensural.
+
+
+@node Bottom-level contexts - voices
+@unnumberedsubsubsec Bottom-level contexts - voices
+
+Los contextos del mismo nivel que Voice dan un valor inicial a ciertas
+propiedades e inician los grabadores correspondientes. Siendo
+contextos del nivel más bajo, no pueden contener a otros contextos.
+
+@strong{@emph{Voice}}
+
+Corresponde a una voz sobre un pentagrama. este contexto maneja la
+conversión de las indicaciones dinámicas, plicas, barras, subíndices y
+superíndices, ligaduras de expresión y de unión, y silencios. Tenemos
+que crear instancias explícitas de este contexto si necesitamos varias
+voces en el mismo pentagrama.
+
+@strong{@emph{VaticanaVoice}}
+
+Lo mismo que Voice, excepto que está diseñado para tipografiar piezas
+en estilo gregoriano.
+
+@strong{@emph{MensuralVoice}}
+
+Lo mismmo que Voice, con modificaciones para el tipografiado de piezas
+en estilo mensural.
+
+@strong{@emph{Lyrics}}
+
+Corresponde a una voz con letra. Maneja la impresión de una sola
+línea de letra.
+
+@strong{@emph{DrumVoice}}
+
+El contexto de voz utilizado en una pauta de percusión.
+
+@strong{@emph{FiguredBass}}
+
+El contexto en que los objetos BassFigure se crean a partir de la
+entrada escrita en el modo @code{\figuremode}.
+
+@strong{@emph{TabVoice}}
+
+El contexto de voz utilizado dentro de un contexto TabStaff. Se suele
+dejar que se cree implícitamente.
+
+@strong{@emph{ChordNames}}
+
+Tipografía nombres de acordes.
-Cada contexto asume la responsabilidad de imponer algunas reglas de
-notación, creando ciertos objetos de notación y manteniendo las
-propiedades asociadas. Por ejemplo, el contexto @code{Voice} puede
-introducir una alteración accidental y entonces el contexto
-@code{Staff} mantiene la regla de mostrar o suprimir la alteración
-para el resto del compás. La sincronización de las líneas divisorias
-se gestiona dentro del contexto de la partitura, @code{Score}.
-
-Sin embargo, en algunas músicas posiblemente no queramos que las
-líneas divisorias estén sincronizada (pensemos en una partitura
-polimétrica en compases de 4/4 y de 3/4). En tales casos, debemos
-modificar los ajustes por omisión de los contextos @code{Score} y
-@code{Staff}.
-
-Para partituras muy sencillas, los contextos se crean implícitamente y
-no debemos preocuparnos por ellos. Para piezas mayores, como por
-ejemplo cualquiera que tenga más de un pentagrama, los contextos se
-deben crear explícitamente para asegurarnos de que tendremos la
-cantidad exacta de pentagramas que necesitamos, y que están en el
-orden correcto. Para tipografiar piezas con notación especializada,
-puede ser útil modificar contextos existentes o definir unos nuevos.
-
-
-En la referencia del programa se encuentra una descripción completa de
-todos los contextos que están disponibles, consulte
-@ifhtml
-@rinternals{Contexts}.
-@end ifhtml
-@ifnothtml
-Traducción @expansion{} Contexto.
-@end ifnothtml
@node Creating contexts
@subsection Creating contexts
muestran métodos más sofisticados para quitar objetos en
@rlearning{Visibility and color of objects}.
-EL ejemplo siguiente muestra una aplicación práctica. Normalmente las
+El ejemplo siguiente muestra una aplicación práctica. Normalmente las
líneas divisorias y las indicaciones de compás están sincronizadas a
lo largo de toda la partitura. Lo hacen los grabadores
@code{Timing_translator} y @code{Default_bar_line_engraver}. Estos
otros contextos existentes. Esto podría ser de utilidad al preparar
un pentagrama vocal (@rlearning{Vocal ensembles}) y un ossia,
-@c ARREGLAR: esta sección no funciona en PDF. (¿?)
-
@cindex ossia
@findex alignAboveContext
@findex alignBelowContext
}
@end lilypond
+@cindex nested contexts
+@cindex contexts, nested
+@funindex \accepts
+@funindex \denies
+
+Los contextos como @code{PianoStaff} pueden llevar dentro otros
+contextos anidados. Los contextos que se pueden aceptar para su
+anidamiento están definidos por la lista @qq{accepts} (acepta) de un
+contexto. Los contextos que no están en esta lista se colocan debajo
+del contexto exterior en la partitura impresa. Por ejemplo, el
+contexto @code{PianoStaff} está definido para que acepte contextos
+@code{Staff} y @code{FiguredBass} de forma predeterminada, pero no un
+contexto @code{Lyrics}, por ejemplo. Así pues, en la siguiente
+estructura la letra se sitúa debajo del sistema de piano en lugar de
+colocarse entre los dos pentagramas:
+
+@lilypond[verbatim,quote,relative=1]
+\new PianoStaff
+<<
+ \new Staff { e4 d c2 }
+ \addlyrics { Three blind mice }
+ \new Staff {
+ \clef "bass"
+ { c,1 }
+ }
+>>
+@end lilypond
+
+La lista @qq{accepts} de un contexto se puede modificar para que
+incluya contextos anidados adicionales, y así si quisiéramos que la
+letra apareciese entre los dos pentagramas podríamos usar:
+
+@lilypond[verbatim,quote,relative=1]
+\new PianoStaff \with { \accepts Lyrics }
+<<
+ \new Staff { e4 d c2 }
+ \addlyrics { Three blind mice }
+ \new Staff {
+ \clef "bass"
+ { c,1 }
+ }
+>>
+@end lilypond
+
+Lo contrario de @code{\accepts} (acepta) es @code{\denies} (deniega);
+esto suprime un contexto de la lista @qq{accepts}.
@node Explaining the Internals Reference
@menu
-* Navigating the program reference::
-* Layout interfaces::
-* Determining the grob property::
-* Naming conventions::
+* Navigating the program reference::
+* Layout interfaces::
+* Determining the grob property::
+* Naming conventions::
@end menu
digitación (en @ref{Fingering instructions}), encontrará:
@quotation
-@seealso
+@strong{Véase también}
Referencia de funcionamiento interno: @rinternals{Fingering}.
f
@end lilypond
-
En este caso, el contexto de este truco es @code{Voice}. Este hecho
se puede deducir también a partir de la referencia del programa, ya
que la página dedicada al añadido @rinternals{Fingering_engraver} dice
@node Naming conventions
@subsection Naming conventions
-@untranslated
+@ignore
+Another thing that is needed, is an overview of the various naming
+conventions:
+
+ scheme functions: lowercase-with-hyphens (incl. one-word
+names)
+ scheme functions: ly:plus-scheme-style
+ music events, music classes and music properties:
+as-scheme-functions
+ Grob interfaces: scheme-style
+ backend properties: scheme-style (but X and Y!)
+ contexts (and MusicExpressions and grobs): Capitalized or
+CamelCase
+ context properties: lowercaseFollowedByCamelCase
+ engravers:
+Capitalized_followed_by_lowercase_and_with_underscores
+
+Which of these are conventions and which are rules?
+Which are rules of the underlying language, and which are
+LP-specific?
+@end ignore
@node Modifying properties
@section Modifying properties
@menu
-* Overview of modifying properties::
-* The set command::
-* The override command::
-* set versus override::
-* The tweak command::
+* Overview of modifying properties::
+* The set command::
+* The override command::
+* The tweak command::
+* set versus override::
@end menu
@code{Stem} dentro del pentagrama en curso @code{Staff}. Después de
que la instrucción se ha interpretado, todas las plicas se engrosan.
-DE manera análoga a @code{\set}, el argumento @var{contexto} se puede
+De manera análoga a @code{\set}, el argumento @var{contexto} se puede
omitir, ocasionando que se utilice el contexto predeterminado
@code{Voice}. Al añadir @code{\once} se aplica el cambio durante un
solo paso de tiempo.
\revert Staff.Stem #'thickness
@end example
-Salgunas opciones «trucables» se llaman @q{subpropiedades} y residen
+Algunas opciones «trucables» se llaman @q{subpropiedades} y residen
dentro de las propiedades normales. Para trucarlas, utilice
instrucciones de la forma
@rinternals{OverrideProperty},
@rinternals{RevertProperty},
@rinternals{PropertySet},
-@rinternals{Backend} y
+@rinternals{Backend},
@rinternals{All layout objects}.
R1*2
@end lilypond
-Los contextos so jerárquicos, y si se ha especificado un contexto
+Los contextos son jerárquicos, y si se ha especificado un contexto
mayor, por ejemplo @code{Staff}, entonces el cambio se aplicaría
también a todos los contextos @code{Voice} dentro del pentagrama
actual. El cambio se aplica @q{al vuelo}, durante la música, de
Mostraremos a continuación cómo localizar esta información en el
manual de notación y en la referencia de funcionamiento interno.
+
+@node The tweak command
+@subsection The @code{\tweak} command
+
+@funindex \tweak
+@cindex trucar
+
+En ocasiones es posible tomar un atajo para realizar el ajuste fino de
+los objetos gráficos. Para objetos que reusultan directamente de un
+elemento de código de la entrada, puede usar la función @code{\tweak},
+por ejemplo
+
+@lilypond[relative=2,verbatim]
+< c
+ \tweak #'color #red
+ d
+ g
+ \tweak #'duration-log #1
+ a
+> 4
+-\tweak #'padding #8
+-^
+@end lilypond
+
+@cindex chord, modifying one note in
+
+Pero el uso principal de la instrucción @code{\tweak} es modificar
+solamente uno de varios elementos de notación que dan comienzo en el
+mismo momento musical, como las notas de un acorde, o corchetes de
+tresillo que empiezan al mismo tiempo.
+
+Para ver una introducción a la sintaxis y los usos de la instrucción
+tweak, consulte @rlearning{Tweaking methods}.
+
+La instrucción @code{\tweak} fija una propiedad en el objeto que viene
+a continuación de forma directa, sin necesidad de especificar el
+nombre del grob o el contexto. Para que esto funcione, es necesario
+que la instrucción @code{\tweak} permanezca inmediatamente adyacente
+al objeto al que se aplica, después de que el archivo de entrada se ha
+convertido en un flujo musical. Con frecuencia no es el caso, pues
+muchos elementos adicionales se insertan en la corriente musical de
+forma implícita. Por ejemplo, cuando se procesa una nota que no forma
+parte de un acorde, LilyPond inserta implícitamente un evento
+@code{ChordEvent} antes de la nota, separando así el truco de la nota.
+Sin embargo, si los símbolos de acorde se sitúan cerca del truco y la
+nota, la instrucción @code{\tweak} viene después del @code{ChordEvent}
+en el flujo musical, permaneciendo así adyacente a la nota, y con la
+posibilidad de modificarla.
+
+Así, esto funciona:
+
+@lilypond[relative=2,verbatim,quote]
+<\tweak #'color #red c>4
+@end lilypond
+
+@noindent
+pero esto no funciona:
+
+@lilypond[relative=2,verbatim,quote]
+\tweak #'color #red c4
+@end lilypond
+
+Si se colocan varios elementos similares en el mismo momento musical,
+la instrucción @code{\override} no se puede usar para modificar uno
+solo de ellos: aquí es donde se debe usar la instrucción
+@code{\tweak}. Entre los elementos que pueden aparecer más de una vez
+en el mismo momento musical están los siguientes:
+
+@c TODO expand to include any further uses of \tweak
+@itemize
+@item las cabezas de las notas de un acorde
+@item signos de articulación sobre la misma nota
+@item ligaduras de unión entre notas de un acorde
+@item corchetes de grupos especials que comienzan en el mismo momento
+@end itemize
+
+@c TODO add examples of these
+
+@noindent
+y se puede usar @code{\tweak} para modificar cualquier aparición
+específica de estos elementos.
+
+Es de resaltar que la instrucción @code{\tweak} no se puede usar para
+modificar plicas, barras o alteraciones accidentales, porque éstos se
+generan más tarde por parte de las cabezas de nota, en vez de por
+elementos musicales que están en el flujo de entrada. Ni se puede
+usar una instrucción @code{\tweak} para modificar claves o
+indicaciones de compás, ya que éstos están separados de cualquier
+instrucción @code{\tweak} precedente en el flujo de entrada a causa de
+la inserción automática de elementos adicionales necesarios para
+especificar el contexto.
+
+Pero la instrucción @code{\tweak} se puede usar como alternativa a la
+instrucción @code{\override} para modificar estos elementos
+notacionales que no producen la adición de ningún elemento notacional
+implícito antes de ellos mismos en el flujo musical. Por ejemplo, las
+ligaduras de expresión se pueden modificar de esta forma:
+
+@lilypond[verbatim,quote,relative=1]
+c-\tweak #'thickness #5 ( d e f)
+@end lilypond
+
+También se pueden escribir varias instrucciones @code{\tweak} antes de
+un elemento notacional, y todas ellas le afectan:
+
+@lilypond[verbatim,quote,relative=1]
+c
+-\tweak #'style #'dashed-line
+-\tweak #'dash-fraction #0.2
+-\tweak #'thickness #3
+-\tweak #'color #red
+ \glissando
+f'
+@end lilypond
+
+El flujo musical que se genera a partir de una sección de un archivo
+de entrada, incluido cualquier elemento insertado automáticamente,
+puede examinarse, véase @ref{Displaying music expressions}. Esto
+puede ser de utilidad en la determinación de lo que puede modificarse
+por medio de una instrucción @code{\tweak}.
+
+@seealso
+
+Manual de aprendizaje:
+@rlearning{Tweaking methods}.
+
+Referencia de la notación:
+@ref{Displaying music expressions}.
+
+@knownissues
+
+@cindex trucos en una variable
+La instrucción @code{\tweak} no se puede usar dentro de una variable.
+
+@cindex trucos en la letra
+Las instrucciones @code{\tweak} no se pueden usar dentro del modo @code{\lyricmode}.
+
+@cindex trucar puntos de control
+@cindex control, trucar puntos de
+
+La instrucción @code{\tweak} no se puede usar para modificar los
+puntos de control de una única ligadura entre varias dentro de un
+acorde, aparte de la primera que aparece en el archivo de entrada.
+
@node set versus override
@subsection @code{\set} vs. @code{\override}
(modificada con @code{\set}).
-@node The tweak command
-@subsection The @code{\tweak} command
-
-@funindex \tweak
-
-En ocasiones es posible tomar un atajo para realizar el ajuste fino de
-los objetos gráficos. Para objetos que reusultan directamente de un
-elemento de código de la entrada, puede usar la función @code{\tweak},
-por ejemplo
-
-@lilypond[relative=2,fragment,verbatim,ragged-right]
-<
- c
- \tweak #'color #red d
- g
- \tweak #'duration-log #1 a
->4-\tweak #'padding #10 -.
-@end lilypond
-
-Como podemos ver, las propiedades se establecen directamente dentro de
-los objetos, sin hacer mención al nombre del grob ni al contexto en el
-que se tendría que aplicar.
-
-Esta técnica sólo funciona para los objetos que están conectados
-directamente a un @rinternals{Event} (evento) del texto de entrada,
-por ejemplo
-
-@itemize
-@item cabezas de nota, producidas por chord-pitch (p. ej.: las notas de un acorde)
-@item signos de articulación, producidos por instrucciones de articulación
-@end itemize
-
-Posiblemente no funcione para plicas y alteraciones accidentales
-(éstos están producidos por parte de las cabezas de nota, no por los
-eventos musicales) ni para las claves (éstos no están producidos por
-ninguna entrada musical, sino más bien a causa de un cambio en el
-valor de una propiedad).
-
-Existen muy pocos objetos que estén conectados @emph{directamente} al
-resultado de salida. Una nota normal (como @code{c4}) no está
-conectada directamente a la salida, así que
-
-@example
-\tweak #'color #red c4
-@end example
-
-@noindent
-no cambia el color. Consulte @ref{Displaying music expressions} para
-ver más detalles.
-
@node Useful concepts and properties
@section Useful concepts and properties
@menu
-* Input modes::
-* Direction and placement::
-* Distances and measurements::
-* Spanners::
+* Input modes::
+* Direction and placement::
+* Distances and measurements::
+* Staff symbol properties::
+* Spanners::
+* Visibility of objects::
+* Line styles::
+* Rotating objects::
@end menu
@node Input modes
de entrada se interprete con la sintaxis de la notación de percusión,
véase @ref{Basic percussion notation}.
-EL modo de percusión también se activa con la instrucción
+El modo de percusión también se activa con la instrucción
@code{\drums}. También crea un contexto @code{DrumStaff} nuevo y hace
que el código que sigue se interprete con la sintaxis de la notación
de percusión y se imprima como símbolos de percusión sobre un
@node Distances and measurements
@subsection Distances and measurements
-@untranslated
+@cindex distances, absolute
+@cindex distances, scaled
+
+@funindex \mm
+@funindex \cm
+@funindex \in
+@funindex \pt
+
+Las distancias en LilyPond son de dos tipos: absolutas y escaladas.
+
+Las distancias absolutas se usan para especificar márgenes, sangrados
+y otros detalles de diseño de página, y de forma predeterminada se
+especifican en milímetros. Las distancias se pueden especificar en
+otras unidades escribiendo después de la cifra indicativa de la
+cantidad, @code{\mm}, @code{\cm}, @code{\in}@tie{}(pulgadas), o
+@code{\pt}@tie{}(puntos, 1/72.27 pulgadas). Las distancias de diseño
+de página se pueden especificar también en unidades escalables (véase
+el párrafo siguiente) adjuntando @code{\staff-space} a la cantidad.
+La disposición de página se describe en detalle en @ref{Page
+formatting}.
+
+Las distancias escaladas siempre se especifican en unidades de un
+espacio del pentagrama o, más raramente, medio espacio del pentagrama.
+El espacio de pentagrama es la distancia entre dos líneas del
+pentagrama adyacentes. El valor predeterminado se puede cambiar
+globalmente fijando el tamaño global del pentagrama, o se puede
+sobreescribir localmente cambiando la propiedad @code{staff-space} del
+objeto @code{StaffSymbol}. Las distancias escaladas se escalan
+automáticamente con cualquier cambio al tamaño global del pentagrama o
+a la propiedad @code{staff-space} del objeto @code{StaffSymbol}, pero
+las fuentes tipográficas se escalan solamente con los cambios
+efectuados al tamaño global del pentagrama. Así, el tamaño global del
+pentagrama posibilita la fácil variación del tamaño general de una
+partitura impresa. Para ver los métodos de establecimiento del tamaño
+global del pentagrama, véase @ref{Setting the staff size}.
+
+@funindex magstep
+
+Si se necesita dibujar sólo una sección de una partitura a una escala
+distinta, por ejemplo una sección ossia o una nota al pie, no se puede
+simplemente cambiar el tamaño global del pentagrama porque esto
+afectaría a toda la partitura. En tales casos, el cambio de tamaño se
+hace sobreescribiendo tanto la propiedad @code{staff-space} de
+@code{StaffSymbol} como el tamaño de las fuentes tipográficas. Está a
+nuestra disposición una función de Scheme, @code{magstep}, para
+convertir de un cambio en el tamaño de la fuente al cambio equivalente
+en @code{staff-space}. Para ver una explicación y un ejemplo de su
+utilización, consulte @rlearning{Length and thickness of objects}.
+
+@seealso
+
+Manual de aprendizaje:
+@rlearning{Length and thickness of objects}.
+
+Referencia de la notación:
+@ref{Page formatting},
+@ref{Setting the staff size}.
+
+
+@node Staff symbol properties
+@subsection Staff symbol properties
+
+@cindex ajuste del símbolo del pentagrama
+@cindex dibujar el símbolo del pentagrama
+@cindex pentagrama, establecer el símbolo del
+
+@c TODO Extend or remove this section. See also NR 1.6.2 Staff symbol
+@c Need to think of uses for these properties. Eg 'line-positions
+@c is used in a snippet to thicken centre line.
+@c If retained, add @ref to here in 1.6.2 -td
+
+Se puede definir al mismo tiempo la posición vertical de las líneas de
+la pauta y el número de líneas de la misma. Como muestra el siguiente
+ejemplo, las posiciones de las notas no están influidas por las
+posiciones de las líneas de la pauta.
+
+@warning{La propiedad @code{'line-positions} sobreescribe a la
+propiedad @code{'line-count}. El número de líneas de la pauta está
+definido implícitamente por el número de elementos de la lista de
+valores de @code{'line-positions}.}
+
+@lilypond[verbatim,quote,relative=1]
+\new Staff \with {
+ \override StaffSymbol #'line-positions = #'(7 3 0 -4 -6 -7)
+}
+{ a4 e' f b | d1 }
+@end lilypond
+
+Se puede modificar la anchura de la pauta. Las unidades son espacios
+de pentagrama. El espaciado de los objetos dentro del pentagrama no
+resulta afectado por este ajuste.
+
+@lilypond[verbatim,quote,relative=1]
+\new Staff \with {
+ \override StaffSymbol #'width = #23
+}
+{ a4 e' f b | d1 }
+@end lilypond
+
@node Spanners
@subsection Spanners
estas propiedades son comunes a todos los objetos de extensión; otras
se limitan a un subconjunto de los extensores.
+Todos los objetos de extensión contemplan el interface
+@code{spanner-interface}. Algunos, básicamente aquellos que trazan
+una línea recta entre los dos objetos, contemplan también el interface
+@code{line-spanner-interface}.
-@node Common properties
-@section Common properties
+@unnumberedsubsubsec Using the @code{spanner-interface}
-@menu
-* Controlling visibility of objects::
-* Line styles::
-* Rotating objects::
-* Aligning objects::
-@end menu
+Este interface proporciona dos propiedades que se aplican a varios
+extensores.
-@node Controlling visibility of objects
-@subsection Controlling visibility of objects
+@strong{@i{La propiedad @code{minimum-length}}}
+La longitud mínima del objeto de extensión se pesoecifica a través de
+la propiedad @code{minimum-length}. Su aumento suele producir el
+efecto necesario de aumentar el espaciado de las notas entre los dos
+puntos extremos. Sin embargo, esta sobreescritura no tiene ningún
+efecto sobre muchos extensores, pues su longitud está determinada por
+otras consideraciones. Más abajo se muestran algunos ejemplos de
+dónde es efectiva.
-@node Line styles
-@subsection Line styles
+@ignore
+Works for:
+ Tie
+ MultiMeasureRest
+ Hairpin
+ Slur
+ PhrasingSlur
+
+Works as long as callback is made:
+ Glissando
+ Beam
+
+Works not at all for:
+ LyricSpace
+ LyricHyphen
+ LyricExtender
+ TextSpanner
+ System
-Ciertas indicaciones de ejecución, p.ej., @i{rallentando},
-@i{accelerando} y los @i{trinos} se escriben como texto y se extienden
-sobre muchos compases mediante líneas, a veces punteadas u onduladas.
+@end ignore
-Todos ellos usan las mismas rutinas que el glissando para dibujar los textos y las líneas,
-y por ello el ajuste fino de su comportamiento se hace de la
-misma manera. Se hace con un spanner (un objeto de extensión), y la rutina responsable
-de dibujar los objetos de extensión es @code{ly:line-interface::print}. Esta
-rutina determina la colocación exacta de los dos @i{extremos del
-objeto de extensión} y dibuja una línea entre ellos, en el estilo solicitado.
+@lilypond[verbatim,quote,relative=2]
+a~a
+a
+% increase the length of the tie
+-\tweak #'minimum-length #5
+~a
+@end lilypond
-He aquí un ejemplo de los distintos estilos de línea disponibles, y cómo
-aplicarles ajustes finos.
+@lilypond[verbatim,quote,relative=2]
+a1
+\compressFullBarRests
+R1*23
+% increase the length of the rest bar
+\once \override MultiMeasureRest #'minimum-length = #20
+R1*23
+a1
+@end lilypond
-@lilypond[relative=2,ragged-right,verbatim,fragment]
-d2 \glissando d'2
-\once \override Glissando #'style = #'dashed-line
-d,2 \glissando d'2
-\override Glissando #'style = #'dotted-line
-d,2 \glissando d'2
-\override Glissando #'style = #'zigzag
-d,2 \glissando d'2
-\override Glissando #'style = #'trill
-d,2 \glissando d'2
+@lilypond[verbatim,quote,relative=2]
+a \< a a a \!
+% increase the length of the hairpin
+\override Hairpin #'minimum-length = #20
+a \< a a a \!
@end lilypond
-La información que determina los puntos extremos se calcula al vuelo
-para cada objeto gráfico, pero es posible sobreescribirlos.
+Esta sobreescritura se puede usar también para aumentar la longitud de
+las ligaduras de expresión y de fraseo:
-@lilypond[relative=2,ragged-right,verbatim,fragment]
-e2 \glissando f
+@lilypond[verbatim,quote,relative=2]
+a( a)
+a
+-\tweak #'minimum-length #5
+( a)
+
+a\( a\)
+a
+-\tweak #'minimum-length #5
+\( a\)
+@end lilypond
+
+Para algunos objetos de preesentación, la propiedad
+@code{minimum-length} es efectiva sólo si se llama explícitamente al
+procedimiento @code{set-spacing-rods}. Para hacerlo, se debe fijar la
+propiedad @code{springs-and-rods} al valor
+@code{ly:spanner::set-spacing-rods}. Por ejemplo, la longitud mínima
+de un glissando no tiene efecto a no ser que se establezca la
+propiedad @code{springs-and-rods}:
+
+@lilypond[verbatim,quote,relative=1]
+% default
+e \glissando c'
+
+% not effective alone
+\once \override Glissando #'minimum-length = #20
+e, \glissando c'
+
+% effective only when both overrides are present
+\once \override Glissando #'minimum-length = #20
+\once \override Glissando #'springs-and-rods = #ly:spanner::set-spacing-rods
+e, \glissando c'
+@end lilypond
+
+Lo mismo se puede decir del objeto @code{Beam}:
+
+@lilypond[verbatim,quote,relative=1]
+% not effective alone
+\once \override Beam #'minimum-length = #20
+e8 e e e
+
+% effective only when both overrides are present
+\once \override Beam #'minimum-length = #20
+\once \override Beam #'springs-and-rods = #ly:spanner::set-spacing-rods
+e8 e e e
+@end lilypond
+
+@strong{@i{The @code{to-barline} property}}
+
+La segunda propiedad útil del @code{spanner-interface} es
+@code{to-barline}. De forma predeterminada tiene el valor cierto,
+haciendo que los reguladores y otros objetos de extensión que terminan
+sobre la primera nota de un compás, en vez de eso terminen en la línea
+divisoria inmediatamente precedente. Si se establece al valor falso,
+el extensor llegará más allá de la barra de compás y terminará
+excatamente sobre la nota:
+
+@lilypond[verbatim,quote,relative=2]
+a \< a a a a \! a a a \break
+\override Hairpin #'to-barline = ##f
+a \< a a a a \! a a a
+@end lilypond
+
+Esta propiedad no es efectiva para todos los extensores. Por ejemplo,
+su establecimiento a @code{#t} no tienen ningún efecto sobre las
+ligaduras de expresión o de fraseo, o sobre otros extensores para los
+que terminar en la barra de compás no tendría ningún significado.
+
+@unnumberedsubsubsec Using the @code{line-spanner-interface}
+
+Entre los objetos que contemplan el interface
+@code{line-spanner-interface} se encuentran
+
+@itemize
+@item @code{DynamicTextSpanner}
+@item @code{Glissando}
+@item @code{TextSpanner}
+@item @code{TrillSpanner}
+@item @code{VoiceFollower}
+@end itemize
+
+La rutina responsable de dibujar los sellos de estos extensores es
+@code{ly:line-interface::print}. esta rutina determina la
+localización exacta de los dos puntos extremos y traza una línea entre
+ellos, en el estilo solicitado. Las posiciones de los dos puntos
+extremos del extensor se calculan al vuelo, pero es posible
+sobreescribir sus coordenadas Y. Las propiedades que se deben
+especificar están anidadas a dos niveles de profundidad en la
+jerarquía de propiedades, pero la sintaxis de la instrucción
+@code{\override} es bastante sencilla:
+
+@lilypond[relative=2,quote,verbatim]
+e2 \glissando b
+\once \override Glissando #'bound-details #'left #'Y = #3
\once \override Glissando #'bound-details #'right #'Y = #-2
-e2 \glissando f
+e2 \glissando b
@end lilypond
-El objeto @code{Glissando}, como cualquier otro que use la rutina
-@code{ly:line-interface::print}, conlleva una lista asociativa
-anidada. En la instrucción anterior, el valor de @code{Y}
-se establece a @code{-2} para la lista asociativa correspondiente al extremo final de la
-derecha. Por supuesto, también es posible ajustar el extremo de la izquierda con
-@code{left} en vez de @code{right}.
+Las unidades para la propiedad @code{Y} son @code{staff-space}s,
+siendo el punto del cero la línea central del pentagrama. Para el
+glissando, esto es el valor de @code{Y} en la coordenada X que
+corresponde al punto central de cada cabeza de nota si nos imaginamos
+que la línea se extiende hasta allí.
-Si no se establece el valor de @code{Y}, se calcula a partir de la posición
-vertical del punto de anclaje derecho del objeto de extensión.
+Si no está fijado @code{Y}, su valor se calcula a partir de la
+posición vertical del punto de anclaje correspondiente del extensor.
-En el caso de un salto de línea, los valores de los puntos extremos se extienden
-con los contenidos de las sublistas @code{left-broken} y @code{right-broken},
-por ejemplo
+En caso de salto de línea, los valores para los puntos extremos se
+especifican por las sub-listas @code{left-broken} y
+@code{right-broken} de @code{bound-details}. Por ejemplo:
@lilypond[relative=2,ragged-right,verbatim,fragment]
-\override Glissando #'breakable = ##T
+\override Glissando #'breakable = ##t
\override Glissando #'bound-details #'right-broken #'Y = #-3
c1 \glissando \break
f1
@end lilypond
-Las siguientes propiedades se pueden usar para el ajuste fino de los objetos de extensión:
+Un número de propiedades adicionales de las sub-listas @code{left} y
+@code{right} de la propiedad @code{bound-details} se pueden
+especificar de la misma forma que @code{Y}:
@table @code
@item Y
-Establece la coordenada Y del punto extremo, en espacios de pentagrama. Por
-omisión, es el centro del objeto con que enlaza. Así, para un glissando
-apuntaría al centro vertical de la cabeza de la nota.
+Establece la coordenada Y del punto extremo, en desplazamientos de
+@code{staff-space}s desde la línea central del pentagrama. De forma
+predeterminada es el centro del objeto ancla, y así un glissando
+apunta al centro vertical de la cabeza de la nota.
-Para objetos de extensión horizontales, como el de texto y los trinos, tiene el valor
-fijo de cero.
+Para extensores horizontales como los extensores de texto y los
+trinos, está inamoviblemente codificado como 0.
-@item attach-dir
-Determina el lugar donde la línea comienza y acaba en la dirección X,
-relativo al objeto al que se enlaza. Así, un valor de @code{-1} (o
-@code{LEFT}) hace que la línea comience o acabe en el lado izquierdo de la cabeza de la nota
-a la que el objeto se encuentra adjuntado.
+@item attach-dir (dirección de anclaje)
+Determina dónde comienza y termina la línea en la dirección X, con
+relación al objeto ancla. Sí, un valor de @code{-1} (o @code{LEFT},
+izquierda) hace que la línea comienze o termine en el lado izquierdo
+de la cabeza de la nota a la que está anclado.
@item X
-Es la coordenada absoluta del extremo final. Normalmente
-se calcula al vuelo y no tiene mucho sentido sobreescribirlo.
+Es la coordenada X absoluta del punto extremo. Se suele calcular al
+vuelo, y su sobreescritura no tiene un efecto útil.
-@item stencil
-Los objetos extensores de línea pueden tener símbolos al principio o al final, que se encuentra contenido
-dentro de esta subpropiedad. Es para uso interno y se recomienda
-usar @code{text}.
+@item stencil (sello)
+Los extensores de línea pueden tener símbolos al comienzo o al final,
+lo que está contenido en esta sub-propiedad. Esto es para uso
+interno; se recomienda en su lugar el uso de @code{text}.
-@item text
-Es un elemento de marcado que se evalúa para generar la propiedad stencil anterior. Se usa
-para poner @i{cresc.} y @i{tr} sobre los objetos de extensión horizontales.
+@item text (texto)
+Es un elemento de marcado que se evalúa para dar lugar al sello. Se
+usa para escribir @i{cresc.}, @i{tr} y otros textos sobre los objetos
+de extensión horizontales.
@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
\override TextSpanner #'bound-details #'left #'text
c2\startTextSpan b c a\stopTextSpan
@end lilypond
-@item stencil-align-dir-y
-@item stencil-offset
-Sin un valor establecido para esto, el stencil se coloca simplemente sobre el extremo del final,
-tal y como se encuentra definido por las subpropiedades @code{X} e @code{Y}.
-La asignación de un valor para @code{stencil-align-dir-y} o para @code{stencil-offset}
-desplaza el símbolo del extremo de forma relativa al extremo de la línea
+@item stencil-align-dir-y (alineación del sello en y)
+@item stencil-offset (desplazamiento del sello)
+Si no se modifican uno u otro, el sello se coloca sencillamente en el
+punto extremo, centrado sobrer la línea, como viene definido por las
+subpropiedades @code{X} e @code{Y}. Si se fijan
+@code{stencil-align-dir-y} o @code{stencil-offset} se moverá el
+símbolo del borde verticalmente con relación al extremo de la línea:
@lilypond[relative=1,fragment,verbatim]
-\override TextSpanner #'bound-details #'left #'stencil-align-dir-y = #DOWN
-\override TextSpanner #'bound-details #'right #'stencil-align-dir-y = #UP
-
-\override TextSpanner #'bound-details #'left #'text = #"gggg"
-\override TextSpanner #'bound-details #'right #'text = #"hhhh"
+\override TextSpanner #'bound-details
+ #'left #'stencil-align-dir-y = #-2
+\override TextSpanner #'bound-details
+ #'right #'stencil-align-dir-y = #UP
+
+\override TextSpanner #'bound-details
+ #'left #'text = #"ggg"
+\override TextSpanner #'bound-details
+ #'right #'text = #"hhh"
c4^\startTextSpan c c c \stopTextSpan
@end lilypond
+Observe que los valores negativos mueven el texto @emph{hacia arriba},
+al contrario de lo que podríoa esperarse, pues el valor de @code{-1} o
+@code{DOWN} (abajo) significa alinear el bborde @emph{inferior} del
+texto con la línea de extensión. Un valor de @code{1} o @code{UP}
+(arriba) alinea el borde superior del texto con la línea extensora.
+
@item arrow (flecha)
-El establecimiento de esta subpropiedad al valor de @code{#t} produce una cabeza de flecha al final de la
-línea.
+Al establecer esta sub-propiedad a @code{#t} se produce una punta de
+flecha en el extremo de la línea.
@item padding (relleno)
-Esta subpropiedad controla el espacio entre el punto extremo de la línea especificado
-y el extremo real. Sin relleno, un glissando empezaría
-y acabaría en el centro de las cabezas de las notas.
+Esta sub-propiedad controla el espacio entre el punto extremo
+especificado de la línea y el extremo real. Sin relleno, un glissando
+empezaría y terminaría en el centro de la cabeza de las notas.
@end table
-La función musical \endSpanners termina los objetos de extensión y los
-reguladores después de una nota exactamente.
+La función musical @code{\endSpanners} finaliza de forma prematura el
+extensor que comienza sobre la nota que sigue inmediatamente a
+continuación. Se termina después de una nota exactamente, o en la
+siguiente barra de compás si @code{to-barline} es verdadero y se
+produce una divisoria antes de la siguiente nota.
@lilypond[verbatim,quote,ragged-right,relative=2,fragment]
\endSpanners
-c2 \startTextSpan c2
-c2 \< c2
+c2 \startTextSpan c2 c2
+\endSpanners
+c2 \< c2 c2
@end lilypond
-Al utilizar \endSpanners no es necesario cerrar \startTextSpan con
-\stopTextSpan, ni tampoco cerrar los reguladores con \!.
+Si se usa @code{\endSpanners} no es necesario cerrar \startTextSpan
+con \stopTextSpan, ni cerrar los reguladores con @code{\!}.
@seealso
-Referencia del programa:
+Referencia de funcionamiento interno:
@rinternals{TextSpanner},
@rinternals{Glissando},
@rinternals{VoiceFollower},
@rinternals{line-spanner-interface}.
+@node Visibility of objects
+@subsection Visibility of objects
+
+@cindex objetos, visibilidad de
+@cindex grobs, visibilidad de
+@cindex visibilidad de los objetos
+
+Hay cuatro formas principales en que se puede controlar la visibilidad
+de los objetos de presentación: se puede eliminar su sello, se pueden
+volver transparentes, se pueden pintar de blanco, o se puede
+sobreescribir su propiedad @code{break-visibility}. Las tres primeras
+se aplican a todos los objetos de presentación; la última sólo a unos
+pocos: los objetos @emph{divisibles}. El Manual de aprendizaje
+introduce estas cuatro técnicas, véase @rlearning{Visibility and color
+of objects}.
+
+Hay también algunas otras técnicas que son específicas de ciertos
+objetos de presentación. Se estudian bajo Consideraciones especiales.
+
+@menu
+* Removing the stencil::
+* Making objects transparent::
+* Painting objects white::
+* Using break-visibility::
+* Special considerations::
+@end menu
+
+
+@node Removing the stencil
+@unnumberedsubsubsec Removing the stencil
+
+@cindex sello, eliminar
+
+Todo objeto de presentación tiene una propiedad stencil (sello). De
+forma predeterminada está establecida a la función específica que
+dibuja ese objeto. Se se sobreescribe eesta propiedad a @code{#f} no
+se llama a ninguna función y el objeto no se dibuja. La acción
+predeterminada se puede recuperar con @code{\revert}.
+
+@lilypond[quote,verbatim,relative=1]
+a1 a
+\override Score.BarLine #'stencil = ##f
+a a
+\revert Score.BarLine #'stencil
+a a a
+@end lilypond
+
+@node Making objects transparent
+@unnumberedsubsubsec Making objects transparent
+
+@cindex transparentes, hacer los objetos
+
+Todo objeto de presentación tiene una propiedad transparent
+(transparente) que de forma predeterminada está establecida a
+@code{#f}. Si se fija a @code{#t} el objeto aún ocupa espacio pero es
+invisible.
+
+@lilypond[quote,verbatim,relative=2]
+a4 a
+\once \override NoteHead #'transparent = ##t
+a a
+@end lilypond
+
+@node Painting objects white
+@unnumberedsubsubsec Painting objects white
+
+@cindex objetos, coloreado de
+@cindex coloreado de objetos
+@cindex capas
+@cindex impresión, orden de
+@cindex sobreescritura de objetos
+@cindex objetos, sobreescritura de
+@cindex grobs, sobreescritura de
+
+Todo objeto de presentación tiene una propiedad de color que de forma
+predeterminada está establecida a @code{black} (negro). Si se
+sobreescribe a @code{white} (blanco) el objeto será indistinguible del
+fondo blanco. Sin embargo, si el objeto cruza a otros objetos, el
+color de los puntos de cruce queda determinado por el orden en que se
+dibujan estos objetos, lo que puede dejar una imagen fantasma del
+objeto blanco, como puede verse aquí:
+
+@lilypond[quote,verbatim,relative=2]
+\override Staff.Clef #'color = #white
+a1
+@end lilypond
+
+Se puede evitar esto cambiando el orden de impresión de los objetos.
+Todos los objetos de presentación tienen una propiedad @code{layer}
+(capa) que se debe establecer a un valor entero. Los objetos con el
+valor de @code{layer} más bajo se dibujan primero, después se dibujan
+los objetos con valores progresivamente mayores, y así los objetos con
+valores más altos se dibujan encima de los que tienen valores más
+bajos. De forma predeterminada, casi todos los objetos tienen
+asignado un valor @code{layer} de @code{1}, aunque algunos objetos,
+entre ellos el pentagrama y las líneas divisorias, @code{StaffSymbol}
+y @code{BarLine}, tienen asignado un calor de @code{0}. El orden de
+impresión de los objetos con el mismo valor de @code{layer} es
+indeterminado.
+
+En el ejemplo de arriba, la clave blanca, con un valor @code{layer}
+predeterminado de @code{1}, se dibuja después de las líneas del
+pentragrama (valor @code{layer} predeterminado de @code{0}),
+sobreimpresionándolas. Para cambiarlo, se debe dar al objeto
+@code{Clef} un valor de @code{layer} más bajo, digamos @code{-1}, para
+que se dibuje antes:
+
+@lilypond[quote,verbatim,relative=2]
+\override Staff.Clef #'color = #white
+\override Staff.Clef #'layer = #-1
+a1
+@end lilypond
+
+@node Using break-visibility
+@unnumberedsubsubsec Using break-visibility
+
+@c TODO Add making other objects breakable
+
+@cindex break-visibility
+
+Casi todos los objetos de presentación se imprimen una sola vez, pero
+algunos como las líneas divisorias, claves, indicaciones de compás y
+armaduras de tonalidad, se pueden tener que imprimir dos veces cuando
+se produce un salto de línea : una vez al final de la línea y otra al
+comienzo de la siguiente. Estos objetos reciben el nombre de
+@emph{divisibles}, y tienen una propiedad, @code{break-visibility}
+(visibilidad en el salto), para controlar su visibilidad en las tres
+posiciones en que pueden aparecer: al comienzo de una línea, dentro de
+la línea si se produce un cambio, y al final de la línea si el cambio
+se produce en ese lugar.
+
+Por ejemplo, la indicación de compás se imprime de forma
+predeterminada al comienzo de la primera línea y en ningún otro lugar
+a no ser que cambie, en cuyo caso se imprime en el punto en que se
+produce el cambio. Si este cambio se produce al final de una línea,
+la nueva indicación de compás se imprime al principio de la línea
+siguiente y también al final de la línea anterior como indicación de
+precaución.
+
+Este comportamiento se controla por medio de la propiedad
+@code{break-visibility}, que se explica en
+@c Leave this ref on a newline - formats incorrectly otherwise -td
+@rlearning{Visibility and color of objects}. Esta propiedad toma un
+vector de tres valores booleanos que, por orden, determinan si el
+objeto se imprime al final, dentro, o al principio de la línea. O,
+para ser más exactos: antes del salto de línea, si no hay salto, o
+después del salto.
+
+Como alternativa se pueden especificar siete de las ocho combinaciones
+mediante funciones predefinidas cuya definición está en
+@file{scm/output-lib.scm}, donde las tres últimas columnas indican si
+los objetos de presentación serán visibles en las posiciones que se
+muestran en el encabezamiento de cada columna:
+
+@multitable @columnfractions .40 .15 .1 .1 .1
+@c TODO check these more carefully
+@headitem Forma @tab Forma @tab Antes del @tab Si no hay @tab Después del
+@headitem de función @tab de vector @tab salto @tab salto @tab salto
+
+@item @code{all-invisible} @tab @code{'#(#f #f #f)} @ @ @tab no @tab no @tab no
+@item @code{begin-of-line-visible} @tab @code{'#(#f #f #t)} @tab no @tab no @tab sí
+@item @code{end-of-line-visible} @tab @code{'#(#t #f #f)} @tab sí @tab no @tab no
+@item @code{all-visible} @tab @code{'#(#t #t #t)} @tab sí @tab sí @tab sí
+@c The center-visible function is not defined
+@c @item @code{center-visible} @tab @code{'#(#f #t #f)} @tab no @tab sí @tab no
+@item @code{begin-of-line-invisible} @tab @code{'#(#t #t #f)} @tab sí @tab sí @tab no
+@item @code{end-of-line-invisible} @tab @code{'#(#f #t #t)} @tab no @tab sí @tab sí
+@item @code{center-invisible} @tab @code{'#(#t #f #t)} @tab sí @tab no @tab sí
+@end multitable
+
+La función @code{center-visible} no está predefinida.
+
+Los ajustes predeterminados de @code{break-visibility} dependen del
+objeto de presentación. La tabla siguiente muestra todos los objetos
+de presentación de interés que resultan afectados por
+@code{break-visibility} y el ajuste predeterminado de esta propiedad:
+
+@multitable @columnfractions .3 .3 .4
+
+@headitem Objeto @tab Contexto usual @tab Valor predet.
+
+@c omit Ambitus as it appears not to be affected by break-visibility -td
+@c @item @code{Ambitus} @tab as specified @tab @code{begin-of-line-visible}
+@item @code{BarLine} @tab @code{Score} @tab calculado
+@item @code{BarNumber} @tab @code{Score} @tab @code{begin-of-line-visible}
+@c omit the following item until it can be explained -td
+@c @item @code{BreakAlignGroup} @tab @code{Score} @tab calculated
+@item @code{BreathingSign} @tab @code{Voice} @tab @code{begin-of-line-invisible}
+@item @code{Clef} @tab @code{Staff} @tab @code{begin-of-line-visible}
+@item @code{Custos} @tab @code{Staff} @tab @code{end-of-line-visible}
+@item @code{DoublePercentRepeat} @tab @code{Voice} @tab @code{begin-of-line-invisible}
+@c omit KeyCancellation until it can be explained -td
+@c @item @code{KeyCancellation} @tab ?? @tab @code{begin-of-line-invisible}
+@item @code{KeySignature} @tab @code{Staff} @tab @code{begin-of-line-visible}
+@c omit LeftEdge until it can be explained -td
+@c @item @code{LeftEdge} @tab @code{Score} @tab @code{center-invisible}
+@item @code{OctavateEight} @tab @code{Staff} @tab @code{begin-of-line-visible}
+@item @code{RehearsalMark} @tab @code{Score} @tab @code{end-of-line-invisible}
+@item @code{TimeSignature} @tab @code{Staff} @tab @code{all-visible}
+
+@end multitable
+
+El ejemplo de abajo muestra el uso de la forma de vector para
+controlar la visibilidad de las líneas divisorias:
+
+@lilypond[quote,verbatim,relative=1,ragged-right]
+f4 g a b
+f4 g a b
+% Remove bar line at the end of the current line
+\once \override Score.BarLine #'break-visibility = #'#(#f #t #t)
+\break
+f4 g a b
+f4 g a b
+@end lilypond
+
+Aunque los tres componentes del vector utilizado para sobreescribir
+@code{break-visibility} deben estar presentes, no todos son efectivos
+para todos los objetos de presentación, y algunas combinaciones pueden
+incluso dar errores. Son de aplicación las siguientes limitaciones:
+
+@itemize @bullet
+@item Las líneas divisorias no se pueden imprimir al principio de la línea.
+@item No se puede imprimir el número de compás al principio de la primera
+línea a no ser que su valor establecido sea distinto de 1.
+@item Clave: véase más abajo
+@item Las repeticiones dobles de tipo porcentaje se imprimen completamente o
+se suprimen por completo. Utilice begin-of line-invisible para
+imprimirlas y all-invisible para suprimirlas.
+@item Armadura: véase más abajo
+@item OctavateEight: véase más abajo
+@end itemize
+
+@node Special considerations
+@unnumberedsubsubsec Special considerations
+
+@strong{@emph{Visibilidad después de un cambio explícito}}
+
+@cindex armadura, visibilidad después de un cambio explícito
+@cindex explicitKeySignatureVisibility
+@cindex clave, visibilidad después de un cambio explícito
+@cindex explicitClefVisibility
+
+La propiedad @code{break-visibility} controla la visibilidad de las
+armaduras y cambios de clave sólo al principio de las líneas, es
+decir, después de un salto. No tiene ningún efecto sobre la
+visibilidad de la armadura o la clave después de un cambio explícito
+de tonalidad o de clave dentro o al final de una línea. En el ejemplo
+siguiente la armadura que sigue al cambio explícito de tonalidad a Si
+bemol mayor es visible incluso con @code{all-invisible} establecido.
+
+@lilypond[quote,verbatim,relative=1,ragged-right]
+\key g \major
+f4 g a b
+% Try to remove all key signatures
+\override Staff.KeySignature #'break-visibility = #all-invisible
+\key bes \major
+f4 g a b
+\break
+f4 g a b
+f4 g a b
+@end lilypond
+
+La visibilidad de estos cambios explícitos de tonalidad y de clave se
+controla por medio de las propiedades
+@code{explicitKeySignatureVisibility} y @code{explicitClefVisibility}.
+Son los equivalentes de la propiedad @code{break-visibility} y las dos
+toman un vector de tres valores booleanos o las funciones predefinidas
+relacionadas anteriormente, exactamente igual que
+@code{break-visibility}. Las dos son propiedades del contexto Staff,
+no de los propios objetos de presentación, y por tanto se establecen
+utilizando la instrucción @code{\set}. Las dos están establecidas de
+forma predeterminada al valor @code{all-visible}. Estas propiedades
+controlan sólo la visibilidad de las armaduras y las claves que
+resultan de los cambios explícitos y no afectan a las armaduras y
+tonalidades que están al principio de las líneas; para quitarlas, aún
+se debe sobreescribir la propiedad @code{break-visibility} en el
+objeto correspondiente.
+
+@lilypond[quote,verbatim,relative=1,ragged-right]
+\key g \major
+f4 g a b
+\set Staff.explicitKeySignatureVisibility = #all-invisible
+\override Staff.KeySignature #'break-visibility = #all-invisible
+\key bes \major
+f4 g a b \break
+f4 g a b
+f4 g a b
+@end lilypond
+
+@strong{@emph{Visibilidad de las alteraciones de precaución}}
+
+Para eliminar las alteraciones de precaución que se imprimen en un
+cambio de tonalidad explícito, establezca la propiedad
+@code{printKeyCancellation} del contexto Staff a @code{#f}:
+
+@lilypond[quote,verbatim,relative=1,ragged-right]
+\key g \major
+f4 g a b
+\set Staff.explicitKeySignatureVisibility = #all-invisible
+\set Staff.printKeyCancellation = ##f
+\override Staff.KeySignature #'break-visibility = #all-invisible
+\key bes \major
+f4 g a b \break
+f4 g a b
+f4 g a b
+@end lilypond
+
+Con estas sobreescrituras solamente permanecen las alteraciones
+accidentales delante de las notas para indicar el cambio de tonalidad.
+
+@c TODO Add visibility of cautionary accidentals before notes
+
+@strong{@emph{Automatic bars}}
+
+@cindex automaticBars
+@cindex líneas divisorias, eliminación
+
+Como caso especial, la impresión de las líneas divisorias también se
+puede inhabilitar estableciendo la propiedad @code{automaticBars} en
+el contexto Score. Si se fija a @code{#f}, las barras de compás no se
+imprimen automáticamente; se deben crear explícitamente con una
+instrucción @code{\bar}. A diferencia de la instrucción predefinida
+@code{\cadenzaOn}, los compases se siguen contando. La generación de
+compases continúa de acuerdo a esta cuenta si esta propiedad se
+establece posteriormente a @code{#t}. Si se fija al valor @code{#f},
+sólo pueden producirse saltos de línea en instrucciones @code{\bar}
+explícitas.
+
+@c TODO Add example
+
+@strong{@emph{Octavated clefs}}
+
+@cindex octavadas, visibilidad de las claves
+@cindex visibilidad de las claves octavadas
+@cindex claves, visibilidad de la octavación
+
+El pequeño símbolo de octava sobre las claves en octava alta o baja se
+produce por parte del objeto @code{OctavateEight}. Su visibilidad se
+controla independientemente de la del objeto @code{Clef}, así que es
+necesario aplicar las sobreescrituras correspondientes
+@code{break-visibility} tanto a los objetos @code{Clef} como
+@code{OctavateEight} para suprimir completamente estos símbolos de
+clave al comienzo de cada línea.
+
+Para los cambios de clave explícitos, la propiedad
+@code{explicitClefVisibility} controla tanto el símbolo de clave como
+el símbolo de octava asociado.
+
+@seealso
+
+Manual de aprendizaje:
+@rlearning{Visibility and color of objects}
+
+
+@node Line styles
+@subsection Line styles
+
+Ciertas indicaciones de ejecución, p.ej., @i{rallentando},
+@i{accelerando} y los @i{trinos} se escriben como texto y se extienden
+sobre muchos compases mediante líneas, a veces punteadas u onduladas.
+
+Todos ellos usan las mismas rutinas que el glissando para dibujar los
+textos y las líneas, y por ello el ajuste fino de su comportamiento se
+hace de la misma manera. Se hace con un spanner (un objeto de
+extensión), y la rutina responsable de dibujar los objetos de
+extensión es @code{ly:line-interface::print}. Esta rutina determina la
+colocación exacta de los dos @i{extremos del objeto de extensión} y
+dibuja una línea entre ellos, en el estilo solicitado.
+
+He aquí un ejemplo de los distintos estilos de línea disponibles, y
+cómo aplicarles ajustes finos.
+
+@lilypond[relative=2,ragged-right,verbatim,fragment]
+d2 \glissando d'2
+\once \override Glissando #'style = #'dashed-line
+d,2 \glissando d'2
+\override Glissando #'style = #'dotted-line
+d,2 \glissando d'2
+\override Glissando #'style = #'zigzag
+d,2 \glissando d'2
+\override Glissando #'style = #'trill
+d,2 \glissando d'2
+@end lilypond
+
+Las posiciones de los puntos extremos del objeto de extensión se
+computan al vuelo para cada uno de los objetos gráficos, pero es
+posible sobreescribirlos:
+
+@lilypond[relative=2,ragged-right,verbatim,fragment]
+e2 \glissando f
+\once \override Glissando #'bound-details #'right #'Y = #-2
+e2 \glissando f
+@end lilypond
+
+El valor de @code{Y} está establecido a @code{-2} para el extremo
+derecho. El lado izquierdo se puede ajustar de forma similar
+especificando @code{left} en vez de @code{right}.
+
+Si no está establecido @code{Y}, el valor se computa a partir de la
+posición vertical de los puntos de anclaje izquierdo y derecho del
+extensor.
+
+Son posibles otros ajustes de los extensores, para ver más detalles
+consulte @ref{Spanners}.
+
+
@node Rotating objects
@subsection Rotating objects
-@node Aligning objects
-@subsection Aligning objects
+Tanto los objetos de presentación como los elementos de texto de
+marcado se pueden girar cualquier ángulo respecto a cualquier punto,
+pero difiere el método de hacerlo.
+
+@menu
+* Rotating layout objects::
+* Rotating markup::
+@end menu
+
+@node Rotating layout objects
+@unnumberedsubsubsec Rotating layout objects
+
+@cindex rotating objects
+@cindex objects, rotating
+
+Todos los objetos de presentación que contemplan el interface
+@code{grob-interface} se pueden rotar estableciendo su propiedad
+@code{rotation}. Acepta una lista de tres elementos: el ángulo de la
+rotación en sentido antihorario, y las coordenadas x e y del punto con
+relación al punto de referencia del objeto, alrededor del que se va a
+realizar la rotación. El ángulo de rotación se pespecifica en grados
+y las coordenadas en espacios de pentagrama.
+
+El ángulo de rotación y las coordenadas del punto de rotación se deben
+determinar por ensayo y error.
+
+@cindex reguladores en ángulo
+@cindex ángulo, reguladores en
+
+Solamente en ciertas ocasiones es útil la rotación de objetos de
+presentación; el ejemplo siguiente muestra una situación en que puede
+serlo:
+
+@lilypond[quote,verbatim,relative=1]
+g4\< e' d' f\!
+\override Hairpin #'rotation = #'(20 -1 0)
+g,,4\< e' d' f\!
+@end lilypond
+@node Rotating markup
+@unnumberedsubsubsec Rotating markup
+
+Todos los textos de marcado se pueden rotar para que se dispongan en
+cualquier ángulo predeciéndolos de la instrucción @code{\rotate}. La
+instrucción acepta dos argumentos: el ángulo de rotación en grados en
+sentido antihorario, y el texto que rotar. Los límites que ocupa el
+texto no se rotan: toman su valor a partir de los extremos de las
+coordenadas x e y del texto rotado. En el ejemplo siguiente la
+propiedad @code{outside-staff-priority} del texto se establece a
+@code{#f} para desactivar la evitación automática de colisiones, lo
+que empuja al texto a una posición muy alta.
+
+@lilypond[quote,verbatim,relative=1]
+\override TextScript #'outside-staff-priority = ##f
+g4^\markup { \rotate #30 "a G" }
+b^\markup { \rotate #30 "a B" }
+des^\markup { \rotate #30 "a D-Flat" }
+fis^\markup { \rotate #30 "an F-Sharp" }
+@end lilypond
@node Advanced tweaks
@section Advanced tweaks
+Esta sección trata sobre distintos enfoques en la realización de
+ajustes finos a la apariencia de la partitura impresa.
+
@menu
-* Vertical grouping of grobs::
-* Modifying ends of spanners::
-* Modifying stencils::
+* Aligning objects::
+* Vertical grouping of grobs::
+* Modifying stencils::
+* Modifying shapes::
@end menu
+@seealso
+
+Manual de aprendizaje:
+@rlearning{Tweaking output},
+@rlearning{Other sources of information}.
+
+Referencia de la notación:
+@ref{Explaining the Internals Reference},
+@ref{Modifying properties},
+@ref{Interfaces for programmers}.
+
+Archivos de inicio:
+@file{scm/@/define@/-grobs@/.scm}.
+
+Fragmentos de código:
+@rlsr{Tweaks and overrides}.
+
+Referencia de funcionamiento interno:
+@rinternals{All layout objects}.
+
+
+@node Aligning objects
+@subsection Aligning objects
+
+Los objetos gráficos que soportan el interface
+@code{self-alignment-interface} y/o el @code{side-position-interface}
+se pueden alinear contra un objeto colocado previamente, de diversas
+maneras. Para ver una lista de estos objetos, consulte
+@rinternals{self-alignment-interface} y
+@rinternals{side-position-interface}.
+
+Todos los objetos gráficos tienen un punto de referencia, una
+extensión horizontal y una extensión vertical. La extensión
+horizontal es una pareja de números que dan los desplazamientos a
+partir del punto de referencia de los bordes izquierdo y derecho,
+siendo negativos los desplazamientos hacia la izquierda. La extensión
+vertical es una pareja de números que dan el desplazamiento a partir
+del punto de referencia hasta los bordes inferior y superior, siendo
+negativos los deplazamientos hacia abajo.
+
+La posición de un objeto sobre el pentagrama viene dada por los
+valores de las propiedades @code{X-offset} e @code{Y-offset}. El
+valor de @code{X-offset} da el desplazamiento desde la coordenada x
+del punto de referencia del objeto padre, y el valor de
+@code{Y-offset} da el desplazamiento a partir de la línea central del
+pentagrama. Los valores de @code{X-offset} y @code{Y-offset} se
+pueden establecer directamente o se puede dejar que se calculen por
+parte de procedimientos para conseguir una alineación con el objeto
+padre de distintas maneras.
+
+@warning{Muchos objetos tienen consideraciones de posicionamiento
+especiales que hacen que se ignore o se modifique cualquier ajuste
+realizado a @code{X-offset} o a @code{Y-offset}, a pesar de que el
+objeto contemple el interface @code{self-alignment-interface}.}
+
+Por ejemplo, una alteración accidental se puede reposicionar
+verticalmente estableciendo @code{Y-offset} pero los cambios a
+@code{X-offset} no tienen ningún efecto.
+
+Las letras de ensayo se pueden alinear con objetos divisibles como
+líneas divisorias, claves, armaduras e indicaciones de compás. Hay
+propiedades especiales que se encuentran en
+@code{break-aligned-interface} para el posicionamiento de las letras
+de ensayo sobre dichos objetos.
+
+@menu
+* Setting @code{X-offset} and @code{Y-offset} directly::
+* Using the @code{side-position-interface}::
+* Using the @code{self-alignment-interface}::
+* Using the @code{break-aligned-interface}::
+@end menu
+
+@node Setting @code{X-offset} and @code{Y-offset} directly
+@unnumberedsubsubsec Setting @code{X-offset} and @code{Y-offset} directly
+
+Se pueden dar valores numéricos a las propiedades @code{X-offset} y
+@code{Y-offset} de muchos objetos. El ejemplo siguiente muestra tres
+notas con una digitación en su posición predeterminada y con los
+valores @code{X-offset} y @code{Y-offset} modificados.
+
+@lilypond[verbatim,quote,relative=2]
+a-3
+a
+-\tweak #'X-offset #0
+-\tweak #'Y-offset #0
+-3
+a
+-\tweak #'X-offset #-1
+-\tweak #'Y-offset #1
+-3
+@end lilypond
+
+@c TODO write more
+
+@node Using the @code{side-position-interface}
+@unnumberedsubsubsec Using the @code{side-position-interface}
+
+Un objeto que contempla el @code{side-position-interface} se puede
+colocar junto a su objeto padre de forma que los bordes especificados
+de los dos objetos se toquen. El objeto se puede situar encima,
+debajo, a la derecha o a la izquierda del objeto padre. El padre no
+se puede especificar; ciene determinado por el orden de los elementos
+en el flujo de entrada. Casi todos los objetos tienen la cabeza de la
+nota asociada como padre.
+
+Los valores de las propiedades @code{side-axis} y @code{direction}
+determinan dónde colocar el objeto, como sigue:
+
+@c TODO add an example of each to the table
+
+@multitable @columnfractions .3 .3 .3
+@headitem @code{side-axis} @tab @code{direction} @tab
+@headitem propiedad @tab propiedad @tab colocación
+
+@item @code{0} @tab @code{-1} @tab izquierda
+@item @code{0} @tab @code{1} @tab derecha
+@item @code{1} @tab @code{-1} @tab debajo
+@item @code{1} @tab @code{1} @tab encima
+
+@end multitable
+
+Si @code{side-axis} es @code{0}, @code{X-offset} se debe establecer al
+procedimiento @code{ly:side-position-interface::x-aligned-side}. Este
+procedimiento devuelve el calor correcto de @code{X-offset} para
+situar el objeto al lado izquierdo o derecho del padre de acuerdo con
+el valor de @code{direction}.
+
+Si @code{side-axis} es @code{1}, @code{Y-offset} se debe establecer al
+procedimiento @code{ly:side-position-interface::y-aligned-side}. Este
+procedimiento devuelve el valor correcto de @code{Y-offset} para
+situar el objeto encima o debajo del padre de acuerdo con el valor de
+@code{direction}.
+
+@c TODO Add examples
+
+@node Using the @code{self-alignment-interface}
+@unnumberedsubsubsec Using the @code{self-alignment-interface}
+
+@emph{Auto-alineación horizontal de los objetos}
+
+La alineación horizontal de un objeto que contempla el interface
+@code{self-alignment-interface} está controlada por el valor de la
+propiedad @code{self-alignment-X}, siempre y cuando la propiedad
+@code{X-offset} de este objeto esté establecida a
+@code{ly:self-alignment-interface::x-aligned-on-self}. Se le puede
+dar a @code{self-alignment-X} cualquier valor real, en unidades de la
+mitad de la extensión X total del objeto. Los valores negativos
+mueven el objeto a la derecha, los positivos hacia la izquierda. Un
+valor de @code{0} centra el objeto sobre el punto de referencia de su
+padre, un valor de @code{-1} alinea el borde izquierdo del objeto
+sobre el punto de referencia de su padre, y un valor de @code{1}
+alinea el borde derecho del objeto sobre el punto de referencia de su
+padre. Se pueden usar los símbolos @code{LEFT}, @code{CENTER} y
+@code{RIGHT} en sustitución de los valores @code{-1, 0, 1},
+respectivamente.
+
+Normalmente se usaría la instrucción @code{\override} para modificar
+el valor de @code{self-alignment-X}, pero se puede usar la instrucción
+@code{\tweak} para alinear varias anotaciones por separado sobre una
+sola nota:
+
+@lilypond[quote,verbatim,relative=1]
+a'
+-\tweak #'self-alignment-X #-1
+^"left-aligned"
+-\tweak #'self-alignment-X #0
+^"center-aligned"
+-\tweak #'self-alignment-X #RIGHT
+^"right-aligned"
+-\tweak #'self-alignment-X #-2.5
+^"aligned further to the right"
+@end lilypond
+
+@emph{Auto-alineación vertical de los objetos}
+
+Los objetos se pueden alinear verticalmente en una forma análoga a la
+alineación horizontal si la propiedad @code{Y-offset} está establecida
+a @code{ly:self-alignment-interface::y-aligned-on-self}. Sin embargo,
+a menudo se encuentran implicados otros mecanismos en la alineación
+vertical: el valor de @code{Y-offset} es tan sólo una variable que se
+tiene en cuenta. Esto puede hacer que ajustar el valor de ciertos
+objetos sea una tarea dificultosa. Las unidades son sólo la mitad de
+las dimensiones verticales del objeto, que suele ser bastante pequeño,
+por lo que pueden requerirse números bastante grandes. Un valor de
+@code{-1} alinea el borde inferior del objeto con el punto de
+referencia del objeto padre, un valor de @code{0} alinea el centro del
+objeto con el punto de referencia del padre, y un valor de @code{1}
+alinea el borde superior del objeto con el punto de referencia del
+padre. Se pueden usar los símbolos @code{DOWN}, @code{CENTER},
+@code{UP} en sustitución de @code{-1, 0, 1} respectivamente.
+
+@emph{Auto-alineación de objetos en las dos direcciones}
+
+Estableciendo tanto @code{X-offset} como @code{Y-offset}, se puede
+alinear un objeto en las dos direcciones simultáneamente.
+
+El ejemplo siguiente muestra cómo ajustar una digitación de forma que
+se acerque a la cabeza de la nota.
+
+@lilypond[quote,verbatim,relative=2]
+a
+-\tweak #'self-alignment-X #0.5 % move horizontally left
+-\tweak #'Y-offset #ly:self-alignment-interface::y-aligned-on-self
+-\tweak #'self-alignment-Y #-1 % move vertically up
+-3 % third finger
+@end lilypond
+
+@ignore
+@unnumberedsubsubsec Using the @code{aligned-on-parent} procedures
+
+@c Cannot document as they do not seem to operate consistently on all objects -td
+@c TODO investigate further
+
+The @code{aligned-on-parent} procedures are used in the same way
+as the @code{aligned-on-self} procedures, they difference being
+that they permit an object to be aligned with the @emph{edges} of
+the parent rather than the parent's reference point. The following
+example shows the difference:
+
+@c TODO Add example
+
+@lilypond[verbatim,quote]
+@end lilypond
+
+@end ignore
+
+@ignore
+@unnumberedsubsubsec Using the @code{centered-on-parent} procedures
+
+@c Cannot document as they do not seem to operate consistently on all objects -td
+@c TODO investigate further
+
+@end ignore
+
+@c TODO The align-interface, BassFigureAlignment and VerticalAlignment
+
+
+@node Using the @code{break-aligned-interface}
+@unnumberedsubsubsec Using the @code{break-aligned-interface}
+
+Las letras de ensayo se pueden alinear con objetos de notación
+distintos a las barras de compás. Estos objetos son @code{ambitus},
+@code{breathing-sign}, @code{clef}, @code{custos}, @code{staff-bar},
+@code{left-edge}, @code{key-cancellation}, @code{key-signature} y
+@code{time-signature}.
+
+De forma predeterminada, las letras de ensayo se centran
+horizontalmente sobre el objeto:
+
+@lilypond[verbatim,quote,relative=1]
+e1
+% the RehearsalMark will be centered above the Clef
+\override Score.RehearsalMark #'break-align-symbols = #'(clef)
+\key a \major
+\clef treble
+\mark "↓"
+e
+% the RehearsalMark will be centered above the TimeSignature
+\override Score.RehearsalMark #'break-align-symbols = #'(time-signature)
+\key a \major
+\clef treble
+\time 3/4
+\mark "↓"
+e2.
+@end lilypond
+
+La alineación de la letra de enzayo con relación al objeto de notación
+se puede cambiar, como se ve en el ejemplo siguiente. En una
+partitura con varios pentagramas, este ajuste se debe hacer para todos
+los pentagramas.
+
+@lilypond[verbatim,quote,relative=1]
+% The RehearsalMark will be centered above the KeySignature
+\override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
+\key a \major
+\clef treble
+\time 4/4
+\mark "↓"
+e1
+% The RehearsalMark will be aligned with the left edge of the KeySignature
+\once \override Score.KeySignature #'break-align-anchor-alignment = #LEFT
+\mark "↓"
+\key a \major
+e
+% The RehearsalMark will be aligned with the right edge of the KeySignature
+\once \override Score.KeySignature #'break-align-anchor-alignment = #RIGHT
+\key a \major
+\mark "↓"
+e
+@end lilypond
+
+La letra de ensayo también se puede desplazar al borde derecho o
+izquierdo en una medida arbitraria. Las unidades son espacios de
+pentagrama:
+
+@lilypond[verbatim,quote,relative=1]
+% The RehearsalMark will be aligned with the left edge of the KeySignature
+% and then shifted right by 3.5 staff-spaces
+\override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
+\once \override Score.KeySignature #'break-align-anchor = #3.5
+\key a \major
+\mark "↓"
+e
+% The RehearsalMark will be aligned with the left edge of the KeySignature
+% and then shifted left by 2 staff-spaces
+\once \override Score.KeySignature #'break-align-anchor = #-2
+\key a \major
+\mark "↓"
+e
+@end lilypond
+
@node Vertical grouping of grobs
@subsection Vertical grouping of grobs
@code{VerticalAxisGroup}.
-@node Modifying ends of spanners
-@subsection Modifying ends of spanners
+@node Modifying stencils
+@subsection Modifying stencils
+
+Todos los objetos de presentación tienen una propiedad @code{stencil}
+que es parte del @code{grob-interface}. De forma predeterminada, esta
+propiedad suele estar establecida a una función específica del objeto
+que está hecha a medida para disponer el símbolo que lo representa en
+la salida. Por ejemplo, el ajuste estándar para la propiedad
+@code{stencil} del objeto @code{MultiMeasureRest} es
+@code{ly:multi-measure-rest::print}.
+
+El símbolo estándar de cualquier objeto se puede sustituir modificando
+la propiedad @code{stencil} para que haga referencia a un
+procedimiento diferente escrito especialmente. Esto requiere un alto
+nivel de conocimiento del funcionamiento interno de LilyPond, pero hay
+una forma más fácil que a menudo puede dar resultados adecuados.
+
+El procedimiento es establecer la propiedad @code{stencil} al
+procedimiento que imprime texto (@code{ly:text-interface::print}) y
+añadir una propiedad @code{text} al objeto ajustada para que contenga
+el texto de marcado que produce el símbolo requerido. Debido a la
+flexibilidad del marcado, se pueden conseguir muchas cosas; en
+particular, consulte @ref{Graphic notation inside markup}.
+
+El ejemplo siguiente muestra esto cambiando el símbolo de la cabeza de
+la nota a unas aspas dentro de una circunferencia.
+
+@lilypond[verbatim,quote]
+XinO = {
+ \once \override NoteHead #'stencil = #ly:text-interface::print
+ \once \override NoteHead #'text = \markup {
+ \combine
+ \halign #-0.7 \draw-circle #0.85 #0.2 ##f
+ \musicglyph #"noteheads.s2cross"
+ }
+}
+\relative c'' {
+ a a \XinO a a
+}
+@end lilypond
+
+Cualquiera de los glifos de la fuente tipográfica Feta se puede pasar
+a la instrucción de marcado @code{\musicglyph}: véase @ref{The Feta
+font}.
-@untranslated
+@c TODO Add inserting eps files or ref to later
+@c TODO Add inserting Postscript or ref to later
-@node Modifying stencils
-@subsection Modifying stencils
+@seealso
+
+Referencia de la notación:
+@ref{Graphic notation inside markup},
+@ref{Formatting text},
+@ref{Text markup commands},
+@ref{The Feta font}.
+
+
+@node Modifying shapes
+@subsection Modifying shapes
+
+@menu
+* Modifying ties and slurs::
+@end menu
+
+@node Modifying ties and slurs
+@unnumberedsubsubsec Modifying ties and slurs
+
+Las ligaduras de unión, de expresión y de fraseo se trazan como curvas
+de Bézier de tercer orden. Si la forma de la ligadura calculada
+automáticamente no resulta óptima, se puede modificar su forma
+manualmente mediante la especificación explícita de los cuatro puntos
+de control necesarios para definir una curva de Bézier de tercer
+orden.
+
+Las curvas Bézier de tercer orden o cúbicas están definidas por cuatro
+puntos de control. El primer y cuarto puntos de control son
+exactamente los puntos extremos de comienzo y de final de la curva.
+Los dos puntos de contros intermedios definen la forma. Se pueden
+encontrar en la web animaciones que muestran cómo se traza la curva,
+pero la descripción siguiente puede ser de ayuda. La curva comienza a
+partir del primer punto de control dirigiéndose directamente hacia el
+segundo, curvándose progresivamente para dirigirse hacia el tercero y
+continuando la curva hacia el cuarto, llegando a éste en viaje directo
+desde el tercer punto de control. La curva está contenida enteramente
+dentro del cuadrilátero definido por los cuatro puntos de control.
+
+He aquí un ejemplo de un caso en que la ligadura no es óptima, y donde
+@code{\tieDown} no sirve de ayuda.
+
+@lilypond[verbatim,quote,relative=1]
+<<
+ { e1 ~ e }
+\\
+ { r4 <g c,> <g c,> <g c,> }
+>>
+@end lilypond
+
+Una forma de mejorar esta ligadura es modificar manualmente sus puntos
+de control como sigue.
+
+Las coordenadas de los puntos de control de Bézier se especifican en
+unidades de espacios de pentagrama. La coordenada@tie{}X está en
+relación con el punto de referencia de la nota a la que está unida la
+ligadura, y la coordenada@tie{}Y está en relación con la línea central
+del pentagrama. Las coordenadas se introducen como una lista de
+cuatro parejas de números decimales (reales). Un enfoque es estimar
+las coordenadas de los dos puntos extremos, y luego tratar de adivinar
+los dos puntos intermedios. Los valores óptimos se encuentran por
+ensayo y error.
+
+Es útil recordar que una curva simétrica necesita puntos de contros
+simétricos, y que las curvas de Bézier tienen la útil propiedad de que
+las transformaciones de la curva tales como la traslación, rotación y
+escalado se pueden obtener aplicando la misma transformación a los
+puntos de control de la curva.
+
+Para el ejemplo anterior, la sobreescritura siguiente da una ligadura
+satisfactoria:
+
+@lilypond[verbatim,quote,relative=1]
+<<
+ \once \override Tie
+ #'control-points = #'((1 . -1) (3 . 0.6) (12.5 . 0.6) (14.5 . -1))
+ { e1 ~ e1 }
+\\
+ { r4 <g c,> <g c,> <g c,>4 }
+>>
+@end lilypond
+
+@knownissues
+
+No es posible modificar la forma de las ligaduras de unión o de
+expresión cambiando la propiedad @code{control-points} si hay más de
+una en el mismo mom ento musical, ni siquiera usando la instrucción
+@code{\tweak}.
-@untranslated
-@c -*- coding: utf-8; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
@ignore
- Translation of GIT committish: 7c57f1469e057f25f5d7a7b75c18f33bb4e5bed9
+ Translation of GIT committish: 5f6b41e0a22a8c235def146b97f5d48e67fd30f6
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
unidas por una barra.
@c Two 64th notes are needed to obtain beams
-@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+@lilypond[quote,verbatim,relative=2]
\time 8/1
c\longa c\breve c1 c2
c4 c8 c16 c32 c64 c64
anterior. Por omisión, el valor de la primera nota es el de una
negra.
-@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
+@lilypond[quote,verbatim,relative=2]
a a a2 a a4 a a1 a
@end lilypond
(@code{.}) después del número. Las notas con doble puntillo se
especifican escribiendo dos puntos, y así sucesivamente.
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
a4 b c4. b8 a4. b4.. c8.
@end lilypond
tresillo, en el que 3 notas tienen el valor de 2, por tanto las notas
duran 2/3 de su valor escrito
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
a2 \times 2/3 { b4 b b }
c4 c \times 2/3 { b4 a g }
@end lilypond
Los grupos pueden anidarse unos dentro de otros:
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
\autoBeamOff
c4 \times 4/5 { f8 e f \times 2/3 { e[ f g] } } f4 |
@end lilypond
En el siguiente ejemplo las tres primeras notas duran exactamente dos
partes, pero no se imprime ningún corchete de tresillo.
-@lilypond[quote,ragged-right,fragment,relative=2,verbatim]
+@lilypond[quote,relative=2,verbatim]
\time 2/4
% Alter durations to triplets
a4*2/3 gis4*2/3 a4*2/3
rodean el punto son necesarios. He aquí un ejemplo que muestra cómo
se puede comprimir y expandir la música:
-@lilypond[quote,fragment,relative=2,ragged-right,verbatim]
+@lilypond[quote,relative=2,verbatim]
\time 2/4
% Normal durations
<c a>4 c8 a
Se introduce una ligadura de unión usando el símbolo de la tilde curva
@code{~}
-@lilypond[quote,ragged-right,fragment,verbatim]
-e'2 ~ e'
+@lilypond[quote,verbatim,relative=2]
+a2 ~ a
@end lilypond
@noindent
subdivisiones del compás de mayor duración:
@c KEEP LY
-@lilypond[fragment,quote,ragged-right]
+@lilypond[verbatim,quote]
\relative c' {
r8^"sí" c8 ~ c2 r4 |
- r8^"not" c2 ~ c8 r4
+ r8^"no" c2 ~ c8 r4
}
@end lilypond
ningún par de cabezas, no se crea ninguna ligadura. Los acordes se
pueden ligar parcialmente colocando la ligadura dentro del acorde.
-@lilypond[quote,ragged-right,fragment,verbatim,relative=1]
+@lilypond[quote,verbatim,relative=1]
<c e g> ~ <c e g>
<c~ e g~ b> <c e g b>
@end lilypond
Cuando la segunda vez de una repetición comienza con una nota ligada,
es necesario especificar la ligadura repetida como sigue:
-@lilypond[fragment,quote,ragged-right,relative=2,verbatim]
+@lilypond[quote,relative=2,verbatim]
\repeat volta 2 { c g <c e>2 ~ }
\alternative {
% First alternative: following note is tied normally
{ <c e>2. r4 }
% Second alternative: following note has a repeated tie
- {<c e>2\repeatTie d4 c }}
+ { <c e>2\repeatTie d4 c } }
@end lilypond
@cindex laissez vibrer
la notación para piano, arpa y otros instrumentos de cuerda y
percusión. Se pueden introducir de la siguiente manera:
-@lilypond[fragment,quote,ragged-right,verbatim,relative=1]
+@lilypond[quote,verbatim,relative=1]
<c f g>1\laissezVibrer
@end lilypond
@c \time 16/1 is used to avoid spurious bar lines
@c and long tracts of empty measures
-@lilypond[fragment,quote,ragged-right,verbatim]
+@lilypond[fragment,quote,verbatim]
\new Staff {
% These two lines are just to prettify this example
\time 16/1
formateador automático de colisiones de silencios no mueve estos
silencios.
-@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
a4\rest d4\rest
@end lilypond
un desplazamiento de una cierta magnitud temporal. @code{\skip}
requiere una duración explícita.
-@lilypond[quote,ragged-right,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
<<
{
a2 \skip2 a2 a2
Los silencios de uno o más compases completos se introducen como notas
con el nombre @code{R} en mayúscula:
-@lilypond[quote,fragment,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
% Rest measures contracted to single measure
\compressFullBarRests
R1*4
silencio multi-compás debe ser siempre un número entero de compases,
por lo que con frecuencia han de utilizarse puntillos o fracciones:
-@lilypond[quote,ragged-right,fragment,verbatim]
+@lilypond[quote,fragment,verbatim]
\compressFullBarRests
\time 2/4
R1 | R2 |
redonda o de breve, centrado en el compás, según el tipo de compás
vigente.
-@lilypond[quote,ragged-right,fragment,verbatim]
+@lilypond[quote,verbatim,fragment]
\time 4/4
R1 |
\time 6/4
presentar como un solo compás que contiene un símbolo de silencio
multicompás, con el número de compases impreso encima del compás:
-@lilypond[quote,ragged-right,fragment,verbatim]
+@lilypond[quote,fragment,verbatim]
% Default behavior
\time 3/4 r2. | R2.*2 |
\time 2/4 R2 |
proporciona la instrucción predefinida @code{\fermataMarkup} para
añadir calderones.
-@lilypond[quote,ragged-right,verbatim,fragment]
+@lilypond[quote,verbatim,fragment]
\compressFullBarRests
\time 3/4
R2.*10^\markup { \italic "ad lib." }
R2.^\fermataMarkup
@end lilypond
-@warning{ Los elementos de marcado que se añaden a un silencio
+@warning{
+Los elementos de marcado que se añaden a un silencio
multicompás son objetos del tipo @code{MultiMeasureRestText}, no
@code{TextScript}. Las sobreescrituras de propiedades deben ir
dirigidas hacia el objeto correcto, o se ignorarán. Véase el ejemplo
-siguiente. }
+siguiente.
+}
-@lilypond[quote,ragged-right,verbatim,fragment]
+@lilypond[quote,verbatim,fragment]
% This fails, as the wrong object name is specified
\override TextScript #'padding = #5
R1^"wrong"
La indicación de compás se establece como sigue:
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
\time 2/4 c2
\time 3/4 c2.
@end lilypond
puede modificar este comportamiento predeterminado, véase
@c ref{Controlling visibility of objects}.
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
\time 2/4
c2 c
\break
El símbolo de compás que se usa en 2/2 y 4/4 se puede cambiar a un
estilo numérico:
-@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
% Default style
\time 4/4 c1
\time 2/2 c1
donde @code{duración} es el valor rítmico que se se debe añadir antes
del comienzo del siguiente compás completo:
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
\partial 4 e4 |
a2. c,4 |
@end lilypond
El compás parcial puede ser de cualquier duración menor de un compás
completo:
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
\partial 8*3 c8 d e |
a2. c,4 |
@end lilypond
compás automáticos, utilice la instrucción @code{\cadenzaOn}, y para
activarlos de nuevo use @code{\cadenzaOff}.
-@lilypond[verbatim,quote,ragged-right,relative=2,fragment]
+@lilypond[verbatim,relative=2,fragment]
c4 d e d
\cadenzaOn
c4 c d8 d d f4 g4.
La numeración de compases se continúa al final de la cadencia como si
la cadencia no existiera:
-@lilypond[verbatim,quote,ragged-right,relative=2,fragment]
+@lilypond[verbatim,relative=2,fragment]
% Show all bar numbers
\override Score.BarNumber #'break-visibility = #all-visible
c4 d e d
las duraciones que se muestran están multiplicadas por 3/5, pues 3/5 *
10/8 = 3/4.
-@lilypond[quote,ragged-right,verbatim,fragment]
+@lilypond[quote,verbatim,fragment]
\relative c' { <<
\new Staff {
\time 3/4
independiente trasladando el grabador @code{Timing_translator} al
contexto de @code{Staff}.
-@lilypond[quote,verbatim,ragged-right]
+@lilypond[quote,verbatim]
\layout {
\context {
\Score
que atraviesan la barra de compás se dividen y se unen mediante una
ligadura.
-@lilypond[quote,fragment,verbatim,relative=1,line-width=12\cm]
+@lilypond[quote,verbatim,relative=1]
\new Voice \with {
\remove "Note_heads_engraver"
\consists "Completion_heads_engraver"
las notas se convierten en barras inclinadas, y el pentagrama tiene
una sola línea:
-@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+@lilypond[quote,relative=1,verbatim]
<<
\new RhythmicStaff {
\new Voice = "myRhythm" {
@code{\improvisationOff}.
@snippets
-@c TODO -- Convert to snippet;
-@c tag for both Rhythms and Guitar? Move to @seealso?
-
-Para la música de guitarra, es posible mostrar los ritmos de rasgueo,
-además de las notas de la melodía, acordes y diagramas de posiciones.
-
-@lilypond[quote,verbatim]
-\include "predefined-guitar-fretboards.ly"
-<<
- \new ChordNames {
- \chordmode {
- c1 f g c
- }
- }
-
- \new FretBoards {
- \chordmode {
- c1 f g c
- }
- }
-
-
- \new Voice \with {
- \consists Pitch_squash_engraver
- } \relative c'' {
- \improvisationOn
- c4 c8 c c4 c8 c
- f4 f8 f f4 f8 f
- g4 g8 g g4 g8 g
- c4 c8 c c4 c8 c
- }
-
- \new Voice = "melody" {
- \relative c'' {
- \improvisationOff
- c2 e4 e4
- f2. r4
- g2. a4
- e4 c2.
- }
- }
-
- \new Lyrics {
- \lyricsto "melody" {
- This is my song.
- I like to sing.
- }
- }
->>
-@end lilypond
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{guitar-strum-rhythms.ly}
@seealso
@cindex barras manuales
@cindex manuales, barras
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
\time 2/4 c8 c c c
\time 6/8 c c c c8. c16 c8
@end lilypond
El barrado automático se puede habilitar o desactivar con las
instrucciones @code{\autoBeamOff} y @code{\autoBeamOn}:
-@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+@lilypond[quote,relative=1,verbatim]
c4 c8 c8. c16 c8. c16 c8
\autoBeamOff
c4 c8 c8. c16 c8.
Los patrones de barrado se pueden alterar con la propiedad
@code{beatGrouping}:
-@lilypond[quote,verbatim,relative=2,fragment,ragged-right]
+@lilypond[quote,verbatim,relative=2]
\time 5/16
\set beatGrouping = #'(2 3)
c8[^"(2+3)" c16 c8]
c8[^"(3+2)" c16 c8]
@end lilypond
+@funindex subdivideBeams
+
+@c TODO convert to snippet called "Sub-dividing beams"
+@c Added to lsr 18 Oct 08
+
De forma predeterminada, las barras de semicorchea o notas más cortas
no se subdividen. Esto es, el grupo de tres o más barras se amplía
sin romperse sobre grupos enteros de notas. Este comportamiento se
duración del subgrupo de barras usando la función @code{make-moment},
como se muestra aquí:
-@lilypond[fragment,ragged-right,quote,relative=2,verbatim]
+@lilypond[quote,relative=2,verbatim]
c32[ c c c c c c c]
\set subdivideBeams = ##t
c32[ c c c c c c c]
Normalmente están prohibidos los saltos de línea cuando las barras
atraviesan a la línea divisoria. Este comportamiento se puede
modificar ajustando la propiedad @code{breakable}:
-@code{\override Beam #'breakable = ##t}.
-@lilypond[ragged-right,relative=2,fragment,verbatim,quote]
+@lilypond[relative=2,verbatim,quote]
\override Beam #'breakable = ##t
c8 \repeat unfold 15 { c[ c] } c
@end lilypond
de la barra). De forma predeterminada @code{auto-knee-gap} está
establecido al valor de 5.5 espacios de pentagrama.
-@lilypond[fragment,ragged-right,quote,verbatim]
+@lilypond[fragment,quote,verbatim]
f8 f''8 f8 f''8
\override Beam #'auto-knee-gap = #6
f8 f''8 f8 f''8
@node Setting automatic beam behavior
@unnumberedsubsubsec Setting automatic beam behavior
+@funindex autoBeaming
@funindex autoBeamSettings
@funindex (end * * * *)
@funindex (begin * * * *)
+
@cindex barras automáticas, ajuste fino
@cindex ajuste fino de las barras automáticas
+@cindex automáticas, generación de barras
+@cindex barras automáticas
+@cindex letra y barrado
-@c [TODO: use \applyContext]
+@warning{Si se usan barras para indicar los melismas en las canciones,
+el barrado automático debe desactivarse con @code{\autoBeamOff} e
+indicar los barrados manualmente.}
En compases de tipo normal, las barras automáticas pueden comenzar en
cualquier nota pero solamente pueden terminar en algunas poriciones
@end itemize
Por ejemplo, si las barras automáticas siempre deben terminar sobre la
-primera negra, use
+primera negra, para cualquier tipo de compás o duración de la barra,
+use
-@example
+@lilypond[quote,verbatim,relative=2]
+a8 a a a a a a a
#(override-auto-beam-setting '(end * * * *) 1 4)
-@end example
+a8 a a a a a a a
+@end lilypond
Podemos forzar los ajustes de las barras para que sólo tengan efecto
sobre barras cuya nota más breve es una cierta duración:
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
\time 2/4
% end 1/16 beams for all time signatures at the 1/16 moment
#(override-auto-beam-setting '(end 1 16 * *) 1 16)
Podemos forzar los ajustes de las barras para que sólo tengan efecto
en ciertos tipos de compás:
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
\time 5/8
% end beams of all durations in 5/8 time signature at the 2/8 moment
#(override-auto-beam-setting '(end * * 5 8) 2 8)
c8 c d d d
@end lilypond
-También podemos eliminar una regla de fin de barrado previamente
-establecida usando
+Si se usan varias voces, se debe especificar el contexto @code{Staff}:
+
+@lilypond[quote,verbatim,relative=2]
+\time 7/8
+% rhythm 3-1-1-2
+% Context not specified - does not work correctly
+#(override-auto-beam-setting '(end * * 7 8) 3 8)
+#(override-auto-beam-setting '(end * * 7 8) 4 8)
+#(override-auto-beam-setting '(end * * 7 8) 5 8)
+<< {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >>
+
+% Works correctly with context specified
+#(override-auto-beam-setting '(end * * 7 8) 3 8 'Staff)
+#(override-auto-beam-setting '(end * * 7 8) 4 8 'Staff)
+#(override-auto-beam-setting '(end * * 7 8) 5 8 'Staff)
+<< {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >>
+@end lilypond
+
+@c TODO Add example using Score for multiple staves?
+
+@warning{Si se produce un comportamiento inesperado de las barras,
+compruebe la existencia de una posible interferencia en los ajustes
+predeterminados del barrado automático que están en
+@file{scm/@/auto@/-beam@/.scm}, porque los finales de barra definidos
+aquí aún son válidos además de los suyos.}
+
+Debemos revertir cualquer final predeterminado indeseado o
+conflictivo, para nuestro compás concreto. Podemos eliminar una regla
+de barrado automático previamente establecida usando
@example
#(revert-auto-beam-setting
@code{límite-barra}, @code{numerador-barra}, @code{denominador-barra},
@code{numerador-compás}, @code{denominador-compás},
@code{numerador-momento}, @code{denominador-momento} y @code{contexto}
-son los mismos que antes. Observe que las reglas predeteminadas se
-especifican en @file{scm/@/auto@/-beam@/.scm}, así que podemos
-revertir las reglas que no hayamos creado explícitamente.
+son los mismos que antes.
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
\time 4/4
a16 a a a a a a a a a a a a a a a
% undo a rule ending 1/16 beams in 4/4 time at 1/4 moment
corresponderse exactamente con la regla original. Esto es, no se
tiene en cuenta ninguna expansión de comodines.
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
\time 1/4
#(override-auto-beam-setting '(end 1 16 1 4) 1 8)
a16 a a a
a a a a
@end lilypond
-@c TODO: old material -- not covered by above stuff, I think.
-Si las barras automáticas han de terminar en cada negra de un compás
-de 5/4 time, especifique todas las terminaciones
-@example
-#(override-auto-beam-setting '(end * * * *) 1 4 'Staff)
-#(override-auto-beam-setting '(end * * * *) 1 2 'Staff)
-#(override-auto-beam-setting '(end * * * *) 3 4 'Staff)
-#(override-auto-beam-setting '(end * * * *) 5 4 'Staff)
-@dots{}
-@end example
+@snippets
+
+@c TODO Add to LSR with name "Beam grouping in 7/8 time"
+@c Added 19 Oct 08
+There are no default automatic beam groupings specified for 7/8
+time, so if automatic beams are required the grouping must be
+specified. For example, to group all beams 2-3-2 in 7/8 time,
+specify beam endings at 2/8 and 5/8:
-Se puede usar la misma sintaxis para especificar los puntos de inicio
-de las barras. En este ejemplo, las barras automáticas sólo pueden
+@lilypond[quote,verbatim,relative=2]
+\time 7/8
+% rhythm 2-3-2
+a8 a a a a a a
+#(override-auto-beam-setting '(end * * 7 8) 2 8)
+#(override-auto-beam-setting '(end * * 7 8) 5 8)
+a8 a a a a a a
+@end lilypond
+
+@ignore
+@c TODO Fix this example and convert to @lilypond
+@c Seems like setting beam starting points is no longer
+@c necessary, and/or has no effect. Remove mention?
+
+Se puede usar la misma sintaxis para especificar los puntos de inicio de las barras.
+
+@c TODO Does this example add anything?
+
+ En este ejemplo, las barras automáticas sólo pueden
terminar sobre una negra con puntillo:
+
@example
#(override-auto-beam-setting '(end * * * *) 3 8)
#(override-auto-beam-setting '(end * * * *) 1 2)
pueden terminar sobre 3/8 y sobre el cuarto pulso del compás (después
de que 3/4, esto es, 2 veces 3/8, han transcurrido del compás).
-Si se produce cualquier comportamiento inesperado de las barras,
-compruebe los ajustes de barrado automático predeterminados que están
-en @file{scm/@/auto@/-beam@/.scm} en busca de una posible
-interferencia, porque los finales de barra que están allí definidos
-aún se aplicarán encima de sus propias sobreescrituras. Cualquier
-final no deseado en los valores predeterminados se debe revertir para
-nuestro compás concreto.
+@end ignore
-Por ejemplo, para tipografiar finales de barra de @code{(3 4 3 2)} en
-un 12/8, comience por
+@c TODO Convert to snippet called "Reverting default beam endings"
+@c Added to lsr 19 Oct 08
-@example
-%%% revertir los valores predeterminados de scm/auto-beam.scm repecto al compás de 12/8
-#(revert-auto-beam-setting '(end * * 12 8) 3 8)
-#(revert-auto-beam-setting '(end * * 12 8) 3 4)
-#(revert-auto-beam-setting '(end * * 12 8) 9 8)
+Para tipografiar finales de barra de @code{(3 4 3 2)} en un 12/8, es
+necesario sobreescribir en primer lugar los finales de barra
+predeterminados en 12/8, y después preparar los finales de barra
+nuevos:
-%%% sus nuevos valores
-#(override-auto-beam-setting '(end 1 8 12 8) 3 8)
-#(override-auto-beam-setting '(end 1 8 12 8) 7 8)
-#(override-auto-beam-setting '(end 1 8 12 8) 10 8)
-@end example
+@lilypond[verbatim,quote,relative=2]
+\time 12/8
-@cindex automática, generación de barras
-@cindex auto-barrado
-@funindex autoBeaming
-@cindex letra
+% Default beaming
+a8 a a a a a a a a a a a
-Si se usan barras para indicar melismas en canciones, entonces el
-barrado automático se debe inhabilitar con @code{\autoBeamOff}.
+% Revert default values in scm/auto-beam.scm for 12/8 time
+#(revert-auto-beam-setting '(end * * 12 8) 3 8)
+#(revert-auto-beam-setting '(end * * 12 8) 3 4)
+#(revert-auto-beam-setting '(end * * 12 8) 9 8)
+a8 a a a a a a a a a a a
+% Set new values for beam endings
+#(override-auto-beam-setting '(end * * 12 8) 3 8)
+#(override-auto-beam-setting '(end * * 12 8) 7 8)
+#(override-auto-beam-setting '(end * * 12 8) 10 8)
+a8 a a a a a a a a a a a
+@end lilypond
@predefined
especifican manualmente marcando los puntos de comienzo y final con
@code{[} y @code{]}
-@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+@lilypond[quote,relative=1,verbatim]
{
r4 r8[ g' a r8] r8 g[ | a] r8
}
Se pueden marcar notas individuales con @code{\noBeam} para evitar que
resulten unidas por una barra:
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
\time 2/4 c8 c\noBeam c c
@end lilypond
este ejemplo, el último Fa se imprime con sólo una barra en el lado
izquierdo, es decir, la barra de corchea del grupo como un todo.
-@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
-{
- f8[ r16 f g a]
- f8[ r16
- \set stemLeftBeamCount = #1
- f g a]
-}
+@lilypond[quote,relative=2,verbatim]
+a8[ r16 f g a]
+a8[ r16
+\set stemLeftBeamCount = #2
+\set stemRightBeamCount = #1
+f
+\set stemLeftBeamCount = #1
+g a]
@end lilypond
@snippets
gradualmente. Las cuatro primeras fusas se aceleran gradualmente,
mientras que las últimas cuatro fusas están a un tempo constante.
-@lilypond[ragged-right,relative=1,fragment,verbatim,quote]
+@lilypond[relative=1,verbatim,quote]
\override Beam #'grow-direction = #LEFT
\featherDurations #(ly:make-moment 2 1)
{ c16[ c c c c c c c] }
cambiar por otros tipos con la instrucción @code{\bar}. Por ejemplo,
se suele poner una doble barra de cierre al final de la pieza:
-@lilypond[quote,ragged-right,relative=1,fragment,verbatim]
+@lilypond[quote,relative=1,verbatim]
e4 d c2 \bar "|."
@end lilypond
-@c TODO -- make this warning more clear. What does it mean?
-@warning{Una duración incorrecta lleva a un formato defectuoso en la
-música.}
-
-@c TODO -- check this. I think this behavior no longer happens
-@c with completion_heads_engraver, but it may with note_heads_engraver
-@c Make an example showing the problem
-
No deja de ser válida la última nota de un compás si no termina sobre
la línea divisoria automática: se supone que la nota se prolonga sobre
el compás siguiente. Pero una secuencia larga de dichos compases
prolongados puede hacer que la música aparezca comprimida o incluso
que se salga de la página. Esto es a causa de que los saltos de línea
automáticos solamente se producen al final de compases completos, es
-decir, cuando el final de una nota coincide con el final del compás.
+decir, cuando todas las notas han finalizado antes de que el compás
+termine.
+
+@warning{Una duración incorrecta puede hacer que se trate de evitar la
+producción de saltos de línea, dando como resultado una línea de
+música con una compresión exagerada o música que se sale de la
+página.}
@cindex línea, saltos
@cindex líneas divisorias invisibles
Están disponibles para su inserción manual la línea divisoria simple y
cinco tipos de doble barra:
-@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+@lilypond[quote,relative=1,verbatim]
f1 \bar "|" g \bar "||" a \bar ".|" b \bar ".|." c \bar "|.|" d \bar "|." e
@end lilypond
@noindent
así como la barra de puntos y la discontinua:
-@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+@lilypond[quote,relative=1,verbatim]
f1 \bar ":" g \bar "dashed" a
@end lilypond
@noindent
y cinco tipos de barra de repetición:
-@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+@lilypond[quote,relative=1,verbatim]
f1 \bar "|:" g \bar ":|:" a \bar ":|.|:" b \bar ":|.:" c \bar ":|" d
@end lilypond
final de la línea y una repetición izquierda (de comienzo) al
principio de la línea siguiente.
-@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
+@lilypond[quote,relative=2,verbatim]
\override Score.RehearsalMark #'padding = #3
c c c c
\bar "||:"
líneas resultantes se conectan entre los distintos pentagramas de un
@code{StaffGroup}, @code{PianoStaff} o @code{GrandStaff}.
-@lilypond[quote,ragged-right,fragment,verbatim]
+@lilypond[quote,fragment,verbatim]
<<
\new StaffGroup <<
\new Staff {
@seealso
Referencia de la notación:
-@ref{Line breaking},
-@ref{Repeats}.
+@ref{Line breaking},
+@ref{Repeats},
+@ref{Grouping staves}.
+
Fragmentos de código:
@rlsr{Rhythms}.
automáticamente para cada compás. También se puede establecer
manualmente:
-@lilypond[verbatim,ragged-right,quote,fragment,relative]
+@lilypond[verbatim,quote,fragment,relative=1]
c1 c c c
\break
\set Score.currentBarNumber = #50
ejemplo siguiente se imprimen los números de compás en todos los
sitios posibles:
-@lilypond[verbatim,ragged-right,quote,fragment,relative]
+@lilypond[verbatim,quote,relative=1]
\override Score.BarNumber #'break-visibility = #'#(#t #t #t)
\set Score.currentBarNumber = #11
\bar "" % Permit first bar number to be printed
y aquí los números de compás se imprimen cada dos compases excepto al
final de la línea:
-@lilypond[verbatim,ragged-right,quote,fragment,relative]
+@lilypond[verbatim,quote,relative=1]
\override Score.BarNumber #'break-visibility = #'#(#f #t #t)
\set Score.currentBarNumber = #11
\bar "" % Permit first bar number to be printed
alternativa de especificar @code{#(#f #t #t)} para
@code{break-visibility}.
-@lilypond[verbatim,ragged-right,quote,fragment,relative]
+@lilypond[verbatim,quote,relative=1]
% Prevent bar numbers at the end of a line and permit them elsewhere
\override Score.BarNumber #'break-visibility
= #end-of-line-invisible
pueden colocar directamente sobre la línea divisoria o alinearse por
la derecha con ella:
-@lilypond[verbatim,ragged-right,quote,fragment,relative]
+@lilypond[verbatim,quote,relative=1]
\set Score.currentBarNumber = #111
\override Score.BarNumber #'break-visibility = #'#(#t #t #t)
% Increase the size of the bar number by 2
grabador @code{Bar_number_engraver} de números de compás del contexto
de partitura @code{Score}.
-@lilypond[verbatim,ragged-right,quote]
+@lilypond[verbatim,quote]
\layout {
\context {
\Score
pieza, se debe insertar allí una barra de compás vacía, y se debe
poner un valor distinto a @code{1} en @code{currentBarNumber}:
-@lilypond[verbatim,ragged-right,quote,fragment,relative]
+@lilypond[verbatim,quote,relative=1]
\set Score.currentBarNumber = #50
\bar ""
c1 c c c
cuando aparece en el código de entrada, en vez de comprobar el final
de un compás.
-@lilypond[quote,ragged-right,verbatim]
+@lilypond[quote,verbatim]
pipeSymbol = \bar "||"
{
c'2 c'2 |
Para imprimir una letra de ensayo, utilice la orden @code{\mark}
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
c1 \mark \default
c1 \mark \default
c1 \mark #8
establece con el valor de una función que produce un número encerrado
en una caja.
-@lilypond[fragment,quote,ragged-right,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
\set Score.markFormatter = #format-mark-numbers
c1 \mark \default
c1 \mark \default
\set Score.markFormatter = #format-mark-box-numbers
c1 \mark \default
+\set Score.markFormatter = #format-mark-circle-numbers
c1 \mark \default
+\set Score.markFormatter = #format-mark-circle-letters
c1
@end lilypond
@code{format-mark-circle-barnumbers} para obtener números de compás en
lugar de números o letras secuenciales.
-Otros estilos de marca de ensayo se pueden especificar de forma
+Se pueden especificar otros estilos de letra de ensayo de forma
manual:
@example
Los glifos musicales (como el segno) se pueden imprimir dentro de un
elemento @code{\mark}
-@lilypond[fragment,quote,ragged-right,verbatim,relative]
+@lilypond[quote,verbatim,relative=1]
c1 \mark \markup { \musicglyph #"scripts.segno" }
c1 \mark \markup { \musicglyph #"scripts.coda" }
c1 \mark \markup { \musicglyph #"scripts.ufermata" }
Consulte @ref{The Feta font} 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 marcas de
+Para ver formas comunes de trucar la colocación de las letras de
ensayo, consulte @ref{Text marks}.
@seealso
Referencia de funcionamiento interno:
@rinternals{RehearsalMark}.
-@c Ejemplos: @c @lsr{parts,rehearsal-mark-numbers.ly}
-
@node Special rhythmic concerns
@subsection Special rhythmic concerns
en un tipo más pequeño y no ocupan ningún tiempo lógico en el
compás.
-@lilypond[quote,ragged-right,relative=2,verbatim,fragment]
+@lilypond[quote,relative=2,verbatim]
c4 \grace c16 c4
\grace { c16[ d16] } c2
@end lilypond
de la nota principal, y se denota como una nota pequeña, ligada, sin
tachar.
-@lilypond[quote,ragged-right,relative=2,verbatim,fragment]
+@lilypond[quote,relative=2,verbatim]
\grace c8 b4
\acciaccatura d8 c4
\appoggiatura e8 d4
pentagramas. En el siguiente ejemplo, hay dos semicorcheas de adorno
por cada corchea de adorno:
-@lilypond[quote,ragged-right,relative=2,verbatim,fragment]
+@lilypond[quote,relative=2,verbatim]
<< \new Staff { e2 \grace { c16[ d e f] } e2 }
\new Staff { c2 \grace { g8[ b] } c2 } >>
@end lilypond
@code{\afterGrace}. Toma dos argumentos: la nota principal, y las
notas de adorno que siguen a la nota principal.
-@lilypond[quote,ragged-right,verbatim,relative=2,fragment]
+@lilypond[quote,verbatim,relative=2]
c1 \afterGrace d1 { c16[ d] } c1
@end lilypond
siguiente muestra el resultado de establecer el espacio en su valor
predeterminado, en 15/16, y por último en 1/2 de la nota principal.
-@lilypond[quote,ragged-right,verbatim,relative=2,fragment]
+@lilypond[quote,verbatim,relative=2]
<<
\new Staff {
c1 \afterGrace d1 { c16[ d] } c1
especificar usando espaciadores. El ejemplo siguiente sitúa la nota de
adorno después de un espacio que dura 7/8 de la nota principal.
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
\new Voice {
<< { d1^\trill_( }
{ s2 s4. \grace { c16[ d] } } >>
adorno. Aquí, la dirección predeterminada de la plica de la nota de
adorno se sobreescribe y luego se revierte.
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
\new Voice {
\acciaccatura {
\stemDown
El trazo inclinado que atraviesa al corchete de las
@emph{acciaccatura}s se puede aplicar en otras situaciones:
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
\relative c'' {
\override Stem #'stroke-style = #"grace"
c8( d2) e8( f4)
@code{Stem} (plica) para este adorno, y así las plicas no siempre
apuntan hacia arriba.
-@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
\relative c'' {
\new Staff {
#(add-grace-property 'Voice 'Stem 'direction ly:stem::calc-direction)
Se puede forzar la alineación de las notas de adorno con las notas
normales de los otros pentagramas:
-@lilypond[verbatim,quote,ragged-right]
+@lilypond[verbatim,quote]
\relative c'' {
<<
\override Score.SpacingSpanner #'strict-grace-spacing = ##t
@knownissues
-Una @emph{acciaccatura} de varias notas con una barra se imprime sin
+Una @i{acciaccatura} de varias notas con una barra se imprime sin
tachar, y tiene exactamente la misma apariencia que una
-@emph{appoggiatura} de varias notas con barra.
+@i{appoggiatura} de varias notas con barra.
@c TODO Add link to LSR snippet to add slash when available
La sincronización de las notas de adorno también puede acarrear
divisorias, etc., se sincronizan también. Ponga cuidado cuando mezcle
pentagramas con adornos y sin adornos, por ejemplo
-@lilypond[quote,ragged-right,relative=2,verbatim,fragment]
+@lilypond[quote,relative=2,verbatim]
<< \new Staff { e4 \bar "|:" \grace c16 d2. }
\new Staff { c4 \bar "|:" d2. } >>
@end lilypond
duraciones correspondientes en los otros pentagramas. Para el ejemplo
anterior
-@lilypond[quote,ragged-right,relative=2,verbatim,fragment]
+@lilypond[quote,relative=2,verbatim]
<< \new Staff { e4 \bar "|:" \grace c16 d2. }
\new Staff { c4 \bar "|:" \grace s16 d2. } >>
@end lilypond
de música como argumento y generan un @code{\skip} o silencio
multicompás, de la longitud exacta del fragmento.
-@lilypond[verbatim,ragged-right,quote]
+@lilypond[verbatim,quote]
MyCadenza = \relative c' {
c4 d8 e f g g4
f2 g4 g
hasta 5/8, acortando ese compás en 1/8. Entonces, la siguiente línea
divisoria cae en 9/8 en vez de hacerlo en 5/4.
-@lilypond[quote,ragged-right,verbatim,relative,fragment]
+@lilypond[quote,verbatim,relative=1]
\set Score.measureLength = #(ly:make-moment 5 4)
c1 c4
c1 c4