]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/es/user/changing-defaults.itely
Merge branch 'master' into dev/texi2html
[lilypond.git] / Documentation / es / user / changing-defaults.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
2 @c This file is part of lilypond.tely
3 @ignore
4     Translation of GIT committish: 2ac76a5b0a5572cb259f22751764acfe431bfff2
5
6     When revising a translation, copy the HEAD committish of the
7     version that you are working on.  See TRANSLATION for details.
8 @end ignore
9
10 @c \version "2.11.51"
11
12 @node Changing defaults
13 @chapter Changing defaults
14
15
16 El objetivo del diseño de LilyPond es proporcionar por defecto la más
17 alta calidad de los resultados.  A pesar de ello, podría tener que
18 cambiar este resultado por defecto.  La disposición sobre el papel se
19 controla a través de un amplio número de proverbiales @q{botones e
20 interruptores}.  Este capítulo no relaciona todos y cada uno de los
21 botones.  Más bien da una visión de conjunto sobre qué grupos de
22 controles se encuentran disponibles y explica la forma de hallar el
23 botón exacto que se debe utilizar para conseguir un determinado
24 efecto.
25
26
27 @cindex Referencia de funcionamiento interno
28
29 Los controles disponibles para los ajustes finos se describen en un
30 documento separado,
31 @iftex
32 el Manual de referencia de funcionamiento interno.
33 @end iftex
34 @ifnottex
35 la @ref{Top,Referencia de funcionamiento interno,,lilypond-internals}.
36 @end ifnottex
37 Dicho manual relaciona todas las variables, funciones y opciones que
38 se encuentran disponibles en LilyPond.  Está escrito como un documento
39 HTML, que se puede encontrar en
40 @c leave the @uref as one long line.
41 @uref{http://@/lilypond@/.org/@/doc/@/stable/@/Documentation/@/user/@/lilypond@/-internals/,on@/-line},
42 pero que también va incluido en el paquete de la documentación de LilyPond.
43
44 Hay cuatro áreas en las que se pueden cambiar los valores por defecto:
45
46 @itemize
47 @item
48 Notación automática: cambiar la creación automática de los elementos
49 de notación.  Por ejemplo, cambiar las reglas de barrado de las
50 figuras.
51
52 @item
53 Salida: cambiar el aspecto de los objetos individuales.  Por ejemplo,
54 cambiar las direcciones de las plicas o la situación exacta de los
55 subíndices.
56
57 @item
58 Contexto: modificar aspectos de la traducción de los eventos musicales
59 en notación.  Por ejemplo, dar a cada pentagrama una indicación de
60 compás distinta.
61
62 @item
63 Disposición de la página: cambiar el aspecto visual del espaciado, los
64 saltos de línea y las dimensiones de la página.  Estas modificaciones
65 se discuten en @ref{Non-musical notation} y @ref{Spacing issues}.
66 @end itemize
67
68 Internamente, LilyPond utiliza el lenguaje Scheme (un dialecto de
69 LISP) para aportar la infraestructura.  La sobreescritura de las
70 decisiones de disposición da acceso efectivo a las interioridades del
71 programa, lo que requiere código de Scheme como entrada.  Los
72 elementos de Scheme se inauguran dentro de un archivo @code{.ly} con
73 el símbolo de cuadradillo @code{#}.@footnote{@rlearning{Scheme
74 tutorial} contiene un breve tutorial sobre la introducción de números,
75 listas, cadenas y símbolos en Scheme.}
76
77
78 @menu
79 * Interpretation contexts::     
80 * Explaining the Internals Reference::  
81 * Modifying properties::        
82 * Useful concepts and properties::  
83 * Common properties::           
84 * Advanced tweaks::             
85 * old The \override command::   
86 * Discussion of specific tweaks::  
87 @end menu
88
89
90 @node Interpretation contexts
91 @section Interpretation contexts
92
93 Esta sección explica qué son los contextos y cómo modificarlos.
94
95 @menu
96 * Contexts explained::          
97 * Creating contexts::           
98 * Modifying context plug-ins::  
99 * Changing context default settings::  
100 * Defining new contexts::       
101 * Aligning contexts::           
102 @end menu
103
104
105 @node Contexts explained
106 @subsection Contexts explained
107
108 Cuando se imprime la música, se tienen que añadir a la salida una gran
109 cantidad de elementos notacionales.  Por ejemplo, compare la entrada y
110 la salida del siguiente ejemplo:
111
112 @lilypond[quote,verbatim,relative=2,fragment]
113 cis4 cis2. g4
114 @end lilypond
115
116 La entrada es bastante escueta, pero en la salida se añaden líneas
117 divisorias, alteraciones accidentales, la clave y la indicación de
118 compás.  LilyPond @emph{interpreta} la entrada.  En esta fase se
119 inspecciona la información musical en orden temporal, de forma
120 parecida a la lectura de una partitura de izquierda a
121 derecha. Mientras se lee la entrada, el programa recuerda dónde se
122 encuentran los límites de los compases, y qué notas requieren
123 alteraciones explícitas.  Esta información se puede presentar sobre
124 varios niveles.  Por ejemplo, el efecto de una alteración accidental
125 se encuentra limitada a un solo pentagrama, mientras que una barra
126 divisoria debe estar sincronizada a través de la partitura de arriba a
127 abajo.
128
129 Dentro de LilyPond, estas reglas y pequeñas porciones de información
130 se agrupan en @emph{Contexts}.  Algunos ejemplos de contextos son
131 @code{Voice} (Voz), @code{Staff} (Pauta o pentagrama) y @code{Score}
132 (Partitura).  Los contextos son jerárquicos, por ejemplo: un
133 @code{Staff} contener muchas @code{Voice}s, y una @code{Score} puede
134 contener muchos contextos de @code{Staff}.
135
136 @quotation
137 @sourceimage{context-example,5cm,,}
138 @end quotation
139
140 Cada contexto asume la responsabilidad de imponer algunas reglas de
141 notación, creando ciertos objetos de notación y manteniendo las
142 propiedades asociadas.  Por ejemplo, el contexto @code{Voice} puede
143 introducir una alteración accidental y entonces el contexto
144 @code{Staff} mantiene la regla de mostrar o suprimir la alteración
145 para el resto del compás.  La sincronización de las líneas divisorias
146 se gestiona dentro del contexto de la partitura, @code{Score}.
147
148 Sin embargo, en algunas músicas posiblemente no queramos que las
149 líneas divisorias estén sincronizada (pensemos en una partitura
150 polimétrica en compases de 4/4 y de 3/4).  En tales casos, debemos
151 modificar los ajustes por omisión de los contextos @code{Score} y
152 @code{Staff}.
153
154 Para partituras muy sencillas, los contextos se crean implícitamente y
155 no debemos preocuparnos por ellos.  Para piezas mayores, como por
156 ejemplo cualquiera que tenga más de un pentagrama, los contextos se
157 deben crear explícitamente para asegurarnos de que tendremos la
158 cantidad exacta de pentagramas que necesitamos, y que están en el
159 orden correcto.  Para tipografiar piezas con notación especializada,
160 puede ser útil modificar contextos existentes o definir unos nuevos.
161
162
163 En la referencia del programa se encuentra una descripción completa de
164 todos los contextos que están disponibles, consulte
165 @ifhtml
166 @rinternals{Contexts}.
167 @end ifhtml
168 @ifnothtml
169 Traducción @expansion{} Contexto.
170 @end ifnothtml
171
172 @node Creating contexts
173 @subsection Creating contexts
174
175 Para partituras que sólo tienen una voz y un pentagrama, los contextos
176 se crean automáticamente.  Para partituras más complejas, es necesario
177 crearlos a mano.  Existen tres instrucciones que hacen esto.
178
179 @itemize
180
181 @item
182 La instrucción más fácil es @code{\new}, y es también la más rápida de
183 escribir.  Se antepone a una expresión musical, por ejemplo
184
185 @funindex \new
186 @cindex nuevos, contextos
187 @cindex Contexto, creación de
188
189 @example
190 \new @var{tipo} @var{expresión_musical}
191 @end example
192
193 @noindent
194 donde @var{tipo} es el nombre de un contexto (como @code{Staff} o
195 @code{Voice}).  Esta instrucción crea un contexto nuevo, y empieza a
196 interpretar la @var{expresión_musical} con él.
197
198 Una aplicación práctica de @code{\new} es una partitura con muchos pentagramas.
199 Cada parte que debe ir en su propio pentagrama, va precedida de
200 @code{\new Staff}.
201
202 @lilypond[quote,verbatim,relative=2,ragged-right,fragment]
203 <<
204   \new Staff { c4 c }
205   \new Staff { d4 d }
206 >>
207 @end lilypond
208
209 La instrucción @code{\new} puede también dar nombre al contexto,
210
211 @example
212 \new @var{tipo} = @var{identificador} @var{música}
213 @end example
214 Sin embargo, este nombre especificado por el usuario sólo se utiliza
215 si no hay ya otro contexto anterior con el mismo nombre.
216
217
218 @funindex \context
219
220 @item
221 Como @code{\new}, la instrucción @code{\context} también dirige una
222 expresión musical a un objeto de contexto, pero da al contexto un
223 nombre explícito.  La sintaxis es
224
225 @example
226 \context @var{tipo} = @var{identificador} @var{música}
227 @end example
228
229 En esta forma, la instrucción buscará un contexto existente del
230 @var{tipo} especificado que tenga el nombre @var{identificador}.  Si
231 ese contexto aún no existe, se crea un contexto nuevo con el nombre
232 especificado.  Esto es útil si nos vamos a referir más tarde al
233 contexto.  Por ejemplo, cuando se escribe la letra, la melodía está
234 dentro de un contexto con nombre
235
236 @example
237 \context Voice = "@b{tenor}" @var{música}
238 @end example
239
240 @noindent
241 de forma que los textos se puedan alienar correctamente con sus notas,
242
243 @example
244 \new Lyrics \lyricsto "@b{tenor}" @var{letra}
245 @end example
246
247 @noindent
248
249 Otro uso posible de los contextos con nombre es la fusión de dos
250 expresiones musicales distintas en un solo contexto.  En el siguiente
251 ejemplo, se introducen por separado las articulaciones y las notas,
252
253 @example
254 musica = @{ c4 c4 @}
255 decoracion = @{ s4-. s4-> @}
256 @end example
257
258 se combinan enviando los dos al mismo contexto @code{Voice},
259
260 @example
261 <<
262   \new Staff \context Voice = "A" \musica
263   \context Voice = "A" \decoracion
264 >>
265 @end example
266 @lilypond[quote,ragged-right]
267 music = { c4 c4 }
268 arts = { s4-. s4-> }
269 \relative c'' <<
270   \new Staff \context Voice = "A" \music
271   \context Voice = "A" \arts
272 >>
273 @end lilypond
274
275 Con este mecanismo, es posible definir un Urtext (una edición
276 original), con la posibilidad de poner articulaciones distintas sobre
277 las mismas notas.
278
279 @cindex crear contextos
280
281 @item
282 La tercera instrucción para crear contextos es
283 @example
284 \context @var{tipo} @var{música}
285 @end example
286
287
288 @noindent
289 Esto es similar a @code{\context} con @code{= @var{identificador}},
290 pero se corresponde con cualquier contexto del tipo @var{tipo}, sin
291 importar qué nombre se le ha dado.
292
293 Esta variante se usa con expresiones musicales que se pueden
294 interpretar en varios niveles.  Por ejemplo, la instrucción
295 @code{\applyOutput} (véase @ref{Running a function on all layout
296 objects}).  Sin una instrucción @code{\context} explícita, normalmente
297 se aplicaría a @code{Voice}
298
299 @example
300 \applyOutput #'@var{contexto} #@var{función}   % aplicar al contexto Voice
301 @end example
302
303 Para que se interprete dentro de los niveles de @code{Score} o
304 @code{Staff}, utilice las siguientes formas:
305
306 @example
307 \applyOutput #'Score #@var{función}
308 \applyOutput #'Staff #@var{función}
309 @end example
310
311 @end itemize
312
313
314 @node Modifying context plug-ins
315 @subsection Modifying context plug-ins
316
317 Los contextos de notación (como @code{Score} y @code{Staff}) no sólo
318 almacenan propiedades, también contienen «plug-ins» o complementos
319 llamados @q{grabadores} que crean elementos de notación.  Por ejemplo,
320 el contexto @code{Voice} contiene un grabador
321 @code{Note_head_engraver} que crea las cabezas de nota y el contexto
322 @code{Staff} contiene un grabador @code{Key_signature_engraver} que
323 crea la indicación de compás.
324
325 Para ver una descripción completa de todos y cada uno de los
326 complementos, consulte
327 @ifhtml
328 @rinternals{Engravers and Performers}.
329 @end ifhtml
330 @ifnothtml
331 Referencia de funcionamiento interno @expansion{} Traducción @expansion{} Grabadores.
332 @end ifnothtml
333 Cada contexto que se describe en
334 @ifhtml
335 @rinternals{Contexts}
336 @end ifhtml
337 @ifnothtml
338 Referencia de funcionamiento interno @expansion{} Traducción @expansion{} Contexto.
339 @end ifnothtml
340 relaciona los grabadores que se usan para ese contexto.
341
342
343 Puede ser de utilidad jugar un poco con estos complementos.  Se hace
344 iniciando un contexto nuevo con @code{\new} o @code{\context} y
345 modificándolo:
346
347 @funindex \with
348
349 @example
350 \new @var{contexto} \with @{
351   \consists @dots{}
352   \consists @dots{}
353   \remove @dots{}
354   \remove @dots{}
355   @emph{etc.}
356 @}
357 @{
358   @emph{..música..}
359 @}
360 @end example
361
362 @noindent
363 donde los @dots{} debe ser el nombre de un grabador.  Aquí tenemos un
364 ejemplo sencillo que suprime los grabadores
365 @code{Time_signature_engraver} y @code{Clef_engraver} de un contexto
366 @code{Staff}:
367
368 @lilypond[quote,relative=1,verbatim,fragment]
369 <<
370   \new Staff {
371     f2 g
372   }
373   \new Staff \with {
374      \remove "Time_signature_engraver"
375      \remove "Clef_engraver"
376   } {
377     f2 g2
378   }
379 >>
380 @end lilypond
381
382 En el segundo pentagrama no hay indicación de compás ni clave.  Éste
383 es un método bastante rudimentario de hacer que desaparezcan los
384 objetos porque afecta a todo el pentagrama.  Este método también
385 afecta al espaciado, lo que puede ser deseable o no serlo.  Se
386 muestran métodos más sofisticados para quitar objetos en
387 @rlearning{Visibility and color of objects}.
388
389 EL ejemplo siguiente muestra una aplicación práctica.  Normalmente las
390 líneas divisorias y las indicaciones de compás están sincronizadas a
391 lo largo de toda la partitura.  Lo hacen los grabadores
392 @code{Timing_translator} y @code{Default_bar_line_engraver}.  Estos
393 complementos mantienen al día la administración de las indicaciones de
394 compás, posición dentro del compás, etc.  Moviendo estos grabadores
395 desde el contexto de @code{Score} al de @code{Staff}, podemos
396 conseguir una partitura en la que cada pentagrama tiene su propio
397 compás independiente.
398
399 @cindex polimétricas, partituras
400 @cindex compases distintos al mismo tiempo
401
402 @lilypond[quote,relative=1,ragged-right,verbatim,fragment]
403 \new Score \with {
404   \remove "Timing_translator"
405   \remove "Default_bar_line_engraver"
406 } <<
407   \new Staff \with {
408     \consists "Timing_translator"
409     \consists "Default_bar_line_engraver"
410   } {
411       \time 3/4
412       c4 c c c c c
413   }
414   \new Staff \with {
415     \consists "Timing_translator"
416     \consists "Default_bar_line_engraver"
417   } {
418        \time 2/4
419        c4 c c c c c
420   }
421 >>
422 @end lilypond
423
424
425 @node Changing context default settings
426 @subsection Changing context default settings
427
428 Los ajustes de las secciones previas ( @ref{The \set command},
429 @ref{Modifying context plug-ins} y @ref{Overview of modifying
430 properties}) también se pueden escribir separados de la música dentro
431 del bloque @code{\layout}:
432
433 @example
434 \layout @{
435   @dots{}
436   \context @{
437     \Staff
438
439     \set fontSize = #-2
440     \override Stem #'thickness = #4.0
441     \remove "Time_signature_engraver"
442   @}
443 @}
444 @end example
445
446 La instrucción @code{\Staff} recupera la definición existente del
447 contexto de pentagrama de manera que se pueda modificar.
448
449 Los enunciados
450 @example
451 \set fontSize = #-2
452 \override Stem #'thickness = #4.0
453 \remove "Time_signature_engraver"
454 @end example
455
456 @noindent
457 afectan a todos los pentagramas de la partitura.  Otros contextos se
458 pueden modificar de forma análoga.
459
460 La palabra clave @code{\set} es opcional dentro del bloque
461 @code{\layout}, y así
462
463 @example
464 \context @{
465   @dots{}
466   fontSize = #-2
467 @}
468 @end example
469
470 @noindent
471 también funciona.
472
473
474
475 @knownissues
476
477 No es posible recolectar cambios de contexto dentro de una variable y
478 aplicarlos a una definición de @code{\context} por referencia a dicha
479 variable.
480
481 La instrucción @code{\RemoveEmptyStaffContext} sobreescribe nuestros
482 ajustes en curso para @code{\Staff}.  Si queremos cambiar los valores
483 predeterminados para un pentagrama que utilice
484 @code{\RemoveEmptyStaffContext}, debe hacerlo después de llamar a
485 @code{\RemoveEmptyStaffContext}, o sea
486
487 @example
488 \layout @{
489   \context @{
490     \RemoveEmptyStaffContext
491
492     \override Stem #'thickness = #4.0
493   @}
494 @}
495 @end example
496
497
498 @node Defining new contexts
499 @subsection Defining new contexts
500
501 Los contextos específicos, como @code{Staff} y @code{Voice}, están
502 construidos a base de bloques sencillos.  Es posible crear nuevos
503 tipos de contextos con combinaciones distintas de añadidos grabadores.
504
505 El siguiente ejemplo muestra cómo construir un tipo diferente de contexto de
506 @code{Voice} partiendo de cero.  Será parecido a
507 @code{Voice}, pero imprime solamente cabezas centradas en forma de barra inclinada.  Se puede usar
508 para indicar improvisación en piezas de jazz,
509
510 @c KEEP LY
511 @lilypond[quote,ragged-right]
512 \layout { \context {
513   \name ImproVoice
514   \type "Engraver_group"
515   \consists "Note_heads_engraver"
516   \consists "Text_engraver"
517   \consists Pitch_squash_engraver
518   squashedPosition = #0
519   \override NoteHead #'style = #'slash
520   \override Stem #'transparent = ##t
521   \alias Voice
522 }
523 \context { \Staff
524   \accepts "ImproVoice"
525 }}
526
527 \relative c'' {
528   a4 d8 bes8 \new ImproVoice { c4^"ad lib" c
529    c4 c^"desvístete" c_"mientras juegas :)" c }
530   a1
531 }
532 @end lilypond
533
534
535 Estos ajustes se definen dentro de un bloque @code{\context} que a su
536 vez está dentro de un bloque @code{\layout},
537
538 @example
539 \layout @{
540   \context @{
541     @dots{}
542   @}
543 @}
544 @end example
545
546 En el siguiente análisis, la entrada de ejemplo que se muestra debe ir
547 en el lugar de los puntos suspensivos @dots{} del fragmento anterior.
548
549 En primer lugar es necesario definir un nombre para el nuevo contexto:
550
551 @example
552 \name ImproVoice
553 @end example
554
555 Debido a que es parecido al contexto @code{Voice}, queremos órdenes
556 que funcionen sobre contextos de @code{Voice} (existentes) para que
557 siga funcionando.  Esto se consigue dando al contexto nuevo un alias
558 @code{Voice},
559
560 @example
561 \alias Voice
562 @end example
563
564 El contexto imprimirá notas y textos explicativos, por ello tenemos
565 que añadir los grabadores que aportan esta funcionalidad,
566
567 @example
568 \consists Note_heads_engraver
569 \consists Text_engraver
570 @end example
571
572 Pero sólo necesitamos esto en la línea central,
573
574 @example
575 \consists Pitch_squash_engraver
576 squashedPosition = #0
577 @end example
578
579 El grabador @rinternals{Pitch_squash_engraver} modifica las cabezas de
580 nota (creadas por el grabador @rinternals{Note_heads_engraver}) y
581 establece sus posiciones verticales al valor de
582 @code{squashedPosition}, en este caso@tie{}@code{0}, la línea central.
583
584 Las notas parecen barras inclinadas y no tienen plica,
585
586 @example
587 \override NoteHead #'style = #'slash
588 \override Stem #'transparent = ##t
589 @end example
590
591 Todos estos añadidos tienen que cooperar, y esto se consigue con un
592 añadido especial, que se debe marcar con la palabra clave
593 @code{\type}.  Este será siempre @rinternals{Engraver_group},
594
595 @example
596 \type "Engraver_group"
597 @end example
598
599 Al juntarlo todo, obtenemos
600
601 @example
602 \context @{
603   \name ImproVoice
604   \type "Engraver_group"
605   \consists "Note_heads_engraver"
606   \consists "Text_engraver"
607   \consists Pitch_squash_engraver
608   squashedPosition = #0
609   \override NoteHead #'style = #'slash
610   \override Stem #'transparent = ##t
611   \alias Voice
612 @}
613 @end example
614
615 @funindex \accepts
616 Los contextos dan lugar a jerarquías.  Queremos colgar el contexto
617 @code{ImproVoice} bajo el contexto @code{Staff}, como simples
618 @code{Voice}s normales.  Por tanto, modificamos la definición de
619 @code{Staff} con la instrucción @code{\accepts} (acepta),
620
621 @example
622 \context @{
623   \Staff
624   \accepts ImproVoice
625 @}
626 @end example
627
628 @funindex \denies
629 Lo opuesto a @code{\accepts} (acepta) es @code{\denies} (deniega), lo
630 que a veces se necesita cuando se están reutilizando definiciones de
631 contexto existentes.
632
633 Ponemos ambos dentro de un bloque @code{\layout}, como
634
635 @example
636 \layout @{
637   \context @{
638     \name ImproVoice
639     @dots{}
640   @}
641   \context @{
642     \Staff
643     \accepts "ImproVoice"
644   @}
645 @}
646 @end example
647
648 Así pues, la salida que aparece al comienzo de esta sub-sección se
649 puede escribir como
650
651 @example
652 \relative c'' @{
653   a4 d8 bes8
654   \new ImproVoice @{
655     c4^"ad lib" c
656     c4 c^"undress"
657     c c_"while playing :)"
658   @}
659   a1
660 @}
661 @end example
662
663
664 @node Aligning contexts
665 @subsection Aligning contexts
666
667 Los contextos nuevos se pueden alinear por encima o por debajo de
668 otros contextos existentes.  Esto podría ser de utilidad al preparar
669 un pentagrama vocal (@rlearning{Vocal ensembles}) y un ossia,
670
671 @c ARREGLAR: esta sección no funciona en PDF. (¿?)
672
673 @cindex ossia
674 @findex alignAboveContext
675 @findex alignBelowContext
676
677 @lilypond[quote,ragged-right]
678 ossia = { f4 f f f }
679 \score{
680   \relative c' \new Staff = "main" {
681     c4 c c c
682     <<
683       \new Staff \with {alignAboveContext=main} \ossia
684       { d8 f d f d f d f }
685     >>
686   }
687 }
688 @end lilypond
689
690
691
692
693 @node Explaining the Internals Reference
694 @section Explaining the Internals Reference
695
696
697 @menu
698 * Navigating the program reference::  
699 * Layout interfaces::           
700 * Determining the grob property::  
701 * Naming conventions::          
702 @end menu
703
704
705
706 @node Navigating the program reference
707 @subsection Navigating the program reference
708
709 Supongamos que queremos mover la indicación de digitación del
710 fragmento siguiente:
711
712 @lilypond[quote,fragment,relative=2,verbatim]
713 c-2
714 \stemUp
715 f
716 @end lilypond
717
718 Si hace una visita a la documentación en busca de instrucciones de
719 digitación (en @ref{Fingering instructions}), encontrará:
720
721 @quotation
722 @seealso
723
724 Referencia de funcionamiento interno: @rinternals{Fingering}.
725
726 @end quotation
727
728 @ifnothtml
729 La referencia del programador se encuentra disponible en forma de
730 documento HTML.  Se recomienda mucho que lo lea en la forma HTML, bien
731 en línea o bien descargando los archivos de la documentación HTML.
732 Esta sección sería mucho más difícil de entender si está utilizando el
733 manual en formato PDF.
734 @end ifnothtml
735
736 Siga el enlace que lleva a @rinternals{Fingering}.  Al principio de la
737 página, puede ver
738
739 @quotation
740 Los objetos de digitación se crean por parte de:
741 @rinternals{Fingering_engraver} y @rinternals{New_fingering_engraver}.
742 @end quotation
743
744 Siguiendo los enlaces relacionados dentro de la referencia del
745 programa, podemos seguir el flujo de información dentro del programa:
746
747 @itemize
748
749 @item @rinternals{Fingering}:
750 los objetos @rinternals{Fingering} se crean por parte de:
751 @rinternals{Fingering_engraver}
752
753 @item @rinternals{Fingering_engraver}:
754 Tipos de música aceptados: @rinternals{fingering-event}
755
756 @item @rinternals{fingering-event}:
757 El tipo de evento musical @code{fingering-event} está descrito en
758 Expresiones musicales con el nombre de @rinternals{FingerEvent}
759 @end itemize
760
761 Este camino se recorre en contra de la corriente de información del
762 programa: comienza por la salida y acaba en el evento de entrada.
763 También podríamos haber empezado por un evento de la entrada, y leído
764 siguiendo el flujo de información terminando en su caso en el objeto
765 (u objetos) de la salida.
766
767 La referencia del programa también se puede examinar como un documento
768 normal.  Contiene capítulos que tratan de
769 @ifhtml
770 @rinternals{Music definitions},
771 @end ifhtml
772 @ifnothtml
773 @code{Music definitions}
774 @end ifnothtml
775 de la @rinternals{Translation}, y del @rinternals{Backend}.  Cada uno
776 de los capítulos relaciona todas las definiciones utilizadas y todas
777 las propiedades que se pueden ajustar.
778
779
780 @node Layout interfaces
781 @subsection Layout interfaces
782
783 @cindex interfaz de la presentación
784 @cindex presentación, interfaz de la
785 @cindex grob
786
787 La página HTML que pudimos ver en la sección anterior describe el
788 objeto de presentación llamado @rinternals{Fingering}.  Dicho objeto
789 es un símbolo dentro de la partitura.  Tiene propiedades que guardan
790 números (como grosores y direcciones), pero también punteros a objetos
791 relacionados.  Un objeto de presentación también se llama un
792 @emph{Grob}, que es una abreviatura de Graphical Object (objeto
793 gráfico).  Para ver más detalles acerca de los objetos gráficos o
794 Grobs, consulte @rinternals{grob-interface}.
795
796 La página dedicada a @code{Fingering} relaciona las definiciones del
797 objeto @code{Fingering}.  Por ejemplo, la página dice
798
799 @quotation
800 @code{relleno} (dimensión, en espacios de pentagrama):
801
802 @code{0.5}
803 @end quotation
804
805 @noindent
806 lo que significa que el número se mantendrá a una distancia de al
807 menos 0.5 de la cabeza de la nota.
808
809
810 Cada objeto de presentación puede tener varias funciones como elemento
811 notacional o tipográfico.  Por ejemplo, el objeto de digitación
812 Fingering tiene los siguientes aspectos
813
814 @itemize
815 @item
816 Su tamaño es independiente del espaciado horizontal, al contrario de
817 las ligaduras o las barras de las figuras.
818
819 @item
820 Es un elemento de texto.  Casi seguro que es un texto muy corto.
821
822 @item
823 este elemento de texto se tipografía con un tipo de letra, no como las
824 ligaduras o las barras de las figuras.
825
826 @item
827 Horizontalmente, el centro del símbolo se debe alinear con el centro
828 de la cabeza de la nota.
829
830 @item
831 Verticalmente, el símbolo se coloca cerca de la nota y del pentagrama.
832
833 @item
834 La posición vertical también está coordinada con otros símbolos de
835 superíndice y de subíndice.
836 @end itemize
837
838 Cada uno de estos aspectos se capta en lo que se llaman
839 @emph{interface}s, que se relacionan al final de la página dedicada a
840 @rinternals{Fingering}
841
842 @quotation
843 Este objeto contempla los siguientes interfaces:
844 @rinternals{item-interface},
845 @rinternals{self-alignment-interface},
846 @rinternals{side-position-interface}, @rinternals{text-interface},
847 @rinternals{text-script-interface}, @rinternals{font-interface},
848 @rinternals{finger-interface} y @rinternals{grob-interface}.
849 @end quotation
850
851 Al pulsar sobre cualquiera de los enlaces nos desplazaremos a la
852 página del respectivo interfaz del objeto.  Cada interfaz tiene un
853 cierto número de propiedades.  Algunas de ellas no son para que el
854 usuario las pueda ajustar (@q{Propiedades internas}), pero otras sí se
855 pueden modificar.
856
857 Hemos estado hablando de @emph{el} objeto @code{Fingering}, pero
858 realmente esto no significa mucho.  El archivo de inicialización
859 (véase @ref{File structure}) @file{scm/@/define@/-grobs@/.scm} muestra
860 el alma del @q{objeto},
861
862 @example
863 (Fingering
864   . ((padding . 0.5)
865      (avoid-slur . around)
866      (slur-padding . 0.2)
867      (staff-padding . 0.5)
868      (self-alignment-X . 0)
869      (self-alignment-Y . 0)
870      (script-priority . 100)
871      (stencil . ,ly:text-interface::print)
872      (direction . ,ly:script-interface::calc-direction)
873      (font-encoding . fetaNumber)
874      (font-size . -5)           ; don't overlap when next to heads.
875      (meta . ((class . Item)
876      (interfaces . (finger-interface
877                     font-interface
878                     text-script-interface
879                     text-interface
880                     side-position-interface
881                     self-alignment-interface
882                     item-interface))))))
883 @end example
884
885 @noindent
886 Como podemos ver, el objeto @code{Fingering} no es más que un montón
887 de valores de variables, y la página web de la Referencia de
888 funcionamiento interno se genera directamente a partir de esta
889 definición.
890
891
892 @node Determining the grob property
893 @subsection Determining the grob property
894
895 Recordemos que queríamos cambiar la posición del @b{2} en
896
897 @lilypond[quote,fragment,relative=2,verbatim]
898 c-2
899 \stemUp
900 f
901 @end lilypond
902
903 Puesto que el @b{2} se encuentra colocado verticalmente sobre su nota,
904 tenemos que negociar con el interfaz asociado con esta colocación.
905 Esto se hace usando @code{side-position-interface}.  La página que
906 describe este interface dice:
907
908 @quotation
909 @code{side-position-interface}
910
911 Colocar un objeto víctima (este mismo) junto a otros objetos (el
912 soporte).  La propiedad @code{direction} significa dónde poner el
913 objeto víctima con relación al soporte (¿a la izquierda o a la
914 derecha, encima o debajo?)
915 @end quotation
916
917 @cindex relleno
918 @noindent
919 Debajo de esta descripción, la variable @code{padding} (relleno) se describe como
920
921 @quotation
922 @table @code
923 @item padding
924 (dimensión, en espacios de pentagrama)
925
926 Añadir esta cantidad de espacio adicional entre objetos que están unos
927 junto a otros.
928 @end table
929 @end quotation
930
931 Aumentando el valor de @code{padding}, podemos alejar la cifra de
932 digitación de la cabeza de la nota.  La siguiente orden inserta un
933 espacio en blanco de 3 espacios de pentagrama entre la nota y la
934 digitación:
935 @example
936 \once \override Voice.Fingering #'padding = #3
937 @end example
938
939 Al insertar esta instrucción antes de que se haya creado el objeto
940 Fingering, es decir, antes del @code{c2}, llegamos al siguiente
941 resultado:
942
943 @lilypond[quote,relative=2,fragment,verbatim]
944 \once \override Voice.Fingering #'padding = #3
945 c-2
946 \stemUp
947 f
948 @end lilypond
949
950
951 En este caso, el contexto de este truco es @code{Voice}.  Este hecho
952 se puede deducir también a partir de la referencia del programa, ya
953 que la página dedicada al añadido @rinternals{Fingering_engraver} dice
954
955 @quotation
956 El grabador Fingering_engraver es parte de los contextos: @dots{}
957 @rinternals{Voice}
958 @end quotation
959
960
961
962 @node Naming conventions
963 @subsection Naming conventions
964
965 UNTRANSLATED NODE: IGNORE ME
966
967 @node Modifying properties
968 @section Modifying properties
969
970 @menu
971 * Overview of modifying properties::  
972 * The \set command::            
973 * The \override command::       
974 * \set versus \override::       
975 * Objects connected to the input::  
976 @end menu
977
978
979 @node Overview of modifying properties
980 @subsection Overview of modifying properties
981
982 Cada contexto es responsable de la creación de ciertos tipos de
983 objetos gráficos.  Los ajustes que se usan para imprimir estos objetos
984 también se almacenan por contexto.  Mediante la modificación de estos
985 ajustes, se puede alterar la apariencia de los objetos.
986
987 La sintaxis de esto es
988
989 @example
990 \override @var{contexto}.@var{nombre} #'@var{propiedad} = #@var{valor}
991 @end example
992
993 Aquí @var{nombre} es el nombre de un objeto gráfico, como @code{Stem}
994 o @code{NoteHead}, y @var{propiedad} es una variable interna del
995 sistema de formateo (@q{propiedad del grob} o @q{propiedad de
996 disposición}).  Este último es un símbolo, y por ello debe ir
997 precedido de un apóstrofe.  La subsección @ref{Modifying properties}
998 explica cómo se deben cumplimentar los conceptos @var{nombre},
999 @var{propiedad} y @var{valor}.  Aquí sólo nos ocuparemos de la
1000 funcionalidad des esta instrucción.
1001
1002 La instrucción
1003
1004 @verbatim
1005 \override Staff.Stem #'thickness = #4.0
1006 @end verbatim
1007
1008 @noindent
1009 hace más gruesas las plicas (el valor predeterminado es 1.3, con el
1010 grosor de una línea del pentagrama como unidad).  Puesto que la
1011 instrucción especifica como contexto a @code{Staff}, sólo se aplica al
1012 pentagrama actual.  Otros pentagramas mantienen su aspecto normal.
1013 Aquí vemos la instrucción en pleno funcionamiento:
1014
1015 @lilypond[quote,verbatim,relative=2,fragment]
1016 c4
1017 \override Staff.Stem #'thickness = #4.0
1018 c4
1019 c4
1020 c4
1021 @end lilypond
1022
1023 La instrucción @code{\override} modifica la definición de la plica
1024 @code{Stem} dentro del pentagrama en curso @code{Staff}.  Después de
1025 que la instrucción se ha interpretado, todas las plicas se engrosan.
1026
1027 DE manera análoga a @code{\set}, el argumento @var{contexto} se puede
1028 omitir, ocasionando que se utilice el contexto predeterminado
1029 @code{Voice}.  Al añadir @code{\once} se aplica el cambio durante un
1030 solo paso de tiempo.
1031
1032 @lilypond[quote,fragment,verbatim,relative=2]
1033 c4
1034 \once \override Stem #'thickness = #4.0
1035 c4
1036 c4
1037 @end lilypond
1038
1039 El @code{\override} se debe hacer antes de que el objeto se inicia.
1040 Por tanto, al alterar objetos @emph{Spanner} «de extensión» como
1041 ligaduras o barras, la instrucción @code{\override} se debe ejecutar
1042 en el momento en que se crea el objeto.  En este ejemplo:
1043
1044 @lilypond[quote,fragment,verbatim,relative=2]
1045 \override Slur #'thickness = #3.0
1046 c8[( c
1047 \override Beam #'thickness = #0.6
1048 c8 c])
1049 @end lilypond
1050
1051 @noindent
1052 la ligadura es más gruesa pero la barra no lo es.  Esto es así porque
1053 la instrucción para @code{Beam}, la barra, va después de que la barra
1054 se ha iniciado, y por ello no tiene ningún efecto.
1055
1056 De forma análoga a @code{\unset}, la instrucción @code{\revert} para
1057 un contexto deshace una instrucción @code{\override}; como con
1058 @code{\unset}, solamente afecta a los ajustes que se hicieron dentro
1059 del mismo contexto.  En otras palabras, el @code{\revert} del
1060 siguiente ejemplo no hace nada.
1061
1062 @example
1063 \override Voice.Stem #'thickness = #4.0
1064 \revert Staff.Stem #'thickness
1065 @end example
1066
1067 Salgunas opciones «trucables» se llaman @q{subpropiedades} y residen
1068 dentro de las propiedades normales.  Para trucarlas, utilice
1069 instrucciones de la forma
1070
1071 @c leave this as a long long
1072 @example
1073 \override @var{context}.@var{name} #'@var{property} #'@var{subproperty} = #@var{value}
1074 @end example
1075
1076 @noindent
1077 tales como
1078
1079 @example
1080 \override Stem #'details #'beamed-lengths = #'(4 4 3)
1081 @end example
1082
1083
1084 @seealso
1085
1086 Referencia de funcionamiento interno:
1087 @rinternals{OverrideProperty},
1088 @rinternals{RevertProperty},
1089 @rinternals{PropertySet},
1090 @rinternals{Backend} y
1091 @rinternals{All layout objects}.
1092
1093
1094 @knownissues
1095
1096 El «back-end» o motor de salida no es muy estricto en la comprobación
1097 de tipos de las propiedades de objetos.  Las referencias cíclicas en
1098 valores Scheme de propiedades pueden producir cuelgues o salidas
1099 abruptas, o las dos cosas.
1100
1101
1102 @node The \set command
1103 @subsection The @code{\set} command
1104
1105 @cindex propiedades
1106 @funindex \set
1107 @cindex cambiar propiedades
1108
1109 Cada contexto puede tener distintas @emph{propiedades}, variables
1110 contenidas dentro de ese contexto.  Se pueden cambiar mientras dura el
1111 paso de interpretación.  Se consigue insertando la instrucción
1112 @code{\set} dentro de la música:
1113
1114 @example
1115 \set @var{contexto}.@var{propiedad} = #@var{valor}
1116 @end example
1117
1118 Por ejemplo:
1119 @lilypond[quote,verbatim,relative=2,fragment]
1120 R1*2
1121 \set Score.skipBars = ##t
1122 R1*2
1123 @end lilypond
1124
1125 Estas instrucción salta los compases que no tienen notas.  El
1126 resultado es que los silencios multicompás se condensan.  El valor
1127 asignado es un objeto de Scheme.  En este caso, es @code{#t}, el valor
1128 booleano True o verdadero.
1129
1130 Si se omite el argumento @var{context}, entonces se utiliza el
1131 contexto actual de nivel más bajo (normalmente @code{ChordNames},
1132 @code{Voice} o @code{Lyrics}). En este ejemplo:
1133
1134 @lilypond[quote,verbatim,relative=2,fragment]
1135 c8 c c c
1136 \set autoBeaming = ##f
1137 c8 c c c
1138 @end lilypond
1139
1140 @noindent
1141 el argumento @var{contexto} de la instrucción @code{\set} se omite,
1142 así pues el barrado automático se desactiva en la voz actual.  Observe
1143 que el contexto de nivel más bajo no siempre contiene la propiedad que
1144 queremos cambiar (por ejemplo, no tendrá ningún efecto intentar
1145 establecer un valor para la propiedad @code{skipBars} del contexto de
1146 nivel más bajo, en este caso @code{Voice}).
1147
1148 @lilypond[quote,verbatim,relative=2,fragment]
1149 R1*2
1150 \set skipBars = ##t
1151 R1*2
1152 @end lilypond
1153
1154 Los contextos so jerárquicos, y si se ha especificado un contexto
1155 mayor, por ejemplo @code{Staff}, entonces el cambio se aplicaría
1156 también a todos los contextos @code{Voice} dentro del pentagrama
1157 actual.  El cambio se aplica @q{al vuelo}, durante la música, de
1158 manera que el ajuste sólo afecta al segundo grupo de corcheas.
1159
1160 @funindex \unset
1161
1162 También existe una instrucción @code{\unset}:
1163 @example
1164 \unset @var{contexto}.@var{propiedad}
1165 @end example
1166
1167 @noindent
1168 que elimina la definición de @var{propiedad}.  Esta instrucción
1169 elimina la definición solamente si está establecida dentro de
1170 @var{contexto}, de manera que
1171
1172 @example
1173 \set Staff.autoBeaming = ##f
1174 @end example
1175
1176 @noindent
1177 introduce un ajuste de la propiedad en el nivel de @code{Staff}.  El
1178 ajuste también se aplica a la @code{Voice} actual.  Sin embargo:
1179
1180 @example
1181 \unset Voice.autoBeaming
1182 @end example
1183
1184 @noindent
1185 no tiene ningúun efecto.  Para cancelar este ajuste, se debe
1186 especificar el @code{\unset} en el mismo nivel que el @code{\set}
1187 original.  Dicho de otra forma, para deshacer el efecto de
1188 @code{Staff.autoBeaming = ##f} se necesita
1189 @example
1190 \unset Staff.autoBeaming
1191 @end example
1192
1193 Como @code{\set}, el argumento @var{contexto} no se tiene que
1194 especificar para un contexto del nivel más bajo, por lo que los dos
1195 enunciados
1196
1197 @example
1198 \set Voice.autoBeaming = ##t
1199 \set autoBeaming = ##t
1200 @end example
1201
1202 @noindent
1203 son equivalentes.
1204
1205
1206 @cindex \once
1207 Los ajustes que se aplican solamente a un único paso de tiempo se
1208 pueden escribir con @code{\once}, por ejemplo en
1209
1210 @lilypond[quote,verbatim,relative=2,fragment]
1211 c4
1212 \once \set fontSize = #4.7
1213 c4
1214 c4
1215 @end lilypond
1216
1217 la propiedad @code{fontSize} se deshace automáticamente después de la
1218 segunda nota.
1219
1220 En el manual de Referencia de funcionamiento interno hay una
1221 descripción completa de todas las propiedades de contexto disponibles,
1222 consulte
1223 @ifhtml
1224 @rinternals{Tunable context properties}.
1225 @end ifhtml
1226 @ifnothtml
1227 Traducción @expansion{} Propiedades de contexto modificables por el
1228 usuario.
1229 @end ifnothtml
1230
1231
1232
1233 @node The \override command
1234 @subsection The @code{\override} command
1235
1236 Las instrucciones que modifican la salida tienen por lo general un
1237 aspecto como
1238
1239 @example
1240 \override Voice.Stem #'thickness = #3.0
1241 @end example
1242
1243 @noindent
1244 Para construir este truco debemos determinar los siguientes datos:
1245
1246 @itemize
1247 @item el contexto: aquí @code{Voice}.
1248 @item el objeto de presentación: aquí @code{Stem}.
1249 @item la propiedad de presentación: aquí @code{thickness}.
1250 @item un valor adecuado: aquí @code{3.0}.
1251 @end itemize
1252
1253 Ciertas opciones ajustables se denominan @q{subpropiedades} y residen
1254 en el interior de las propiedades normales.  Para modificarlas utilice
1255 instrucciones de la forma
1256
1257 @example
1258 \override Stem #'details #'beamed-lengths = #'(4 4 3)
1259 @end example
1260
1261 @cindex documentación interna
1262 @cindex buscar objetos gráficos
1263 @cindex gráficos, descripción de los objetos
1264 @cindex trucos
1265 @funindex \override
1266 @cindex interna, documentación
1267
1268 Para muchas propiedades, independientemente del tipo de datos de la
1269 propiedad, si se establece el valor de la propiedad a falso
1270 (@code{##f}) se producirá su desactivación, ocasionando que LilyPond
1271 ignore por completo dicha propiedad.  Esto es especialmente útil para
1272 «apagar» propiedades de grobs (objetos gráficos) que de otra manera
1273 causarína problemas.
1274
1275 Mostraremos a continuación cómo localizar esta información en el
1276 manual de notación y en la referencia de funcionamiento interno.
1277
1278 @node \set versus \override
1279 @subsection @code{\set} vs. @code{\override}
1280
1281 Hemos visto dos formas de cambiar las propiedades: @code{\set} y
1282 @code{\override}.  De hecho, en realidad existen dos clases diferentes
1283 de propiedades.
1284
1285 Los contextos pueden tener propiedades, que por lo general reciben
1286 nombres en @code{mayúsculasDeCamello}.  Principalmente controlan la
1287 traducción de la música a la notación, p.ej. @code{localKeySignature}
1288 (para determinar si hay que imprimir las alteraciones accidentales),
1289 @code{measurePosition} (para determinar cuándo imprimir una línea
1290 divisoria).  Las propiedades de contexto pueden ver modificado su
1291 valor con el tiempo según se interpreta una pieza de música;
1292 @code{measurePosition} es un ejemplo obvio de esto.  Las propiedades
1293 de contexto se modifican con @code{\set}.
1294
1295 Hay un tipo especial de propiedad de contexto: la descripción del
1296 elemento.  Estas propiedades reciben nombres en
1297 @code{MayúsculasDeCamello} (comenzando en letra mayúscula).  Contienen
1298 los @q{ajustes por defecto} para dicho elemento gráfico como una lista
1299 asociativa.  Consulte @file{scm/@/define@/-grobs@/.scm} para ver qué
1300 tipos de ajustes hay.  Las descripciones de los elementos se pueden
1301 modificar con @code{\override}.
1302
1303 Realmente, @code{\override} es un atajo;
1304
1305 @example
1306 \override @var{contexto}.@var{nombre} #'@var{propiedad} = #@var{valor}
1307 @end example
1308
1309 @noindent
1310 es más o menos equivalente a
1311
1312 @c  leave this long line -gp
1313 @example
1314 \set @var{contexto}.@var{nombre} #'@var{propiedad} = #(cons (cons '@var{propiedad} @var{valor}) <valor previo de @var{contexto})
1315 @end example
1316
1317 El valor de @code{contexto} (la lista-a) se usa para da un valor
1318 inicial a las propiedades de los objetos gráficos individuales.  Los
1319 objetos gráficos también tienen propiedades, que reciben nombres en el
1320 estilo de Scheme, con @code{palabras-con-guiones}.  Los valores de las
1321 propiedades de objetos gráficos cambian durante el proceso de
1322 formateo: el formateo básicamente consiste en calcular las propiedades
1323 utilizando funciones de callback.
1324
1325 @code{fontSize} es una propiedad especial: equivale a escribir
1326 @code{\override ... #'font-size} para todos los objetos pertinentes.
1327 Al ser éste un cambio muy común, se creó la propiedad especial
1328 (modificada con @code{\set}).
1329
1330
1331 @node Objects connected to the input
1332 @subsection Objects connected to the input
1333
1334 @funindex \tweak
1335
1336 En ocasiones es posible tomar un atajo para realizar el ajuste fino de
1337 los objetos gráficos.  Para objetos que reusultan directamente de un
1338 elemento de código de la entrada, puede usar la función @code{\tweak},
1339 por ejemplo
1340
1341 @lilypond[relative=2,fragment,verbatim,ragged-right]
1342 <
1343   c
1344   \tweak #'color #red d
1345   g
1346   \tweak #'duration-log #1  a
1347 >4-\tweak #'padding #10 -.
1348 @end lilypond
1349
1350 Como podemos ver, las propiedades se establecen directamente dentro de
1351 los objetos, sin hacer mención al nombre del grob ni al contexto en el
1352 que se tendría que aplicar.
1353
1354 Esta técnica sólo funciona para los objetos que están conectados
1355 directamente a un @rinternals{Event} (evento) del texto de entrada,
1356 por ejemplo
1357
1358 @itemize
1359 @item cabezas de nota, producidas por chord-pitch (p. ej.: las notas de un acorde)
1360 @item signos de articulación, producidos por instrucciones de articulación
1361 @end itemize
1362
1363 Posiblemente no funcione para plicas y alteraciones accidentales
1364 (éstos están producidos por parte de las cabezas de nota, no por los
1365 eventos musicales) ni para las claves (éstos no están producidos por
1366 ninguna entrada musical, sino más bien a causa de un cambio en el
1367 valor de una propiedad).
1368
1369 Existen muy pocos objetos que estén conectados @emph{directamente} al
1370 resultado de salida.  Una nota normal (como @code{c4}) no está
1371 conectada directamente a la salida, así que
1372
1373 @example
1374 \tweak #'color #red c4
1375 @end example
1376
1377 @noindent
1378 no cambia el color.  Consulte @ref{Displaying music expressions} para
1379 ver más detalles.
1380
1381 @node Useful concepts and properties
1382 @section Useful concepts and properties
1383
1384
1385 @menu
1386 * Input modes::                 
1387 * Direction and placement::     
1388 * Distances and measurements::  
1389 * Spanners::                    
1390 @end menu
1391
1392 @node Input modes
1393 @subsection Input modes
1394
1395 La forma en que se interpreta la notación conenida dentro de un
1396 archivo de entrada, está determinada por el modo de entrada en curso.
1397
1398 @strong{Modo de acordes}
1399
1400 Se activa con la instrucción @code{\chordmode} y produce que la
1401 entrada se interprete con al sintaxis de la notación de acordes, véase
1402 @ref{Chord notation}.  Los acordes se imprimen como notas sobre un
1403 pentagrama.
1404
1405 El modo de acordes se activa también con la instrucción
1406 @code{\chords}.  Esto crea también un contexto @code{ChordNames} nuevo
1407 y produce que el código que sigue se interprete conla sintaxis de la
1408 notación de acordes y se imprima como nombres de acorde dentro del
1409 contexto @code{ChordNames}, véase @ref{Printing chord names}.
1410
1411 @strong{Modo de percusión}
1412
1413 Se activa con la instrucción @code{\drummode} y produce que el código
1414 de entrada se interprete con la sintaxis de la notación de percusión,
1415 véase @ref{Basic percussion notation}.
1416
1417 EL modo de percusión también se activa con la instrucción
1418 @code{\drums}.  También crea un contexto @code{DrumStaff} nuevo y hace
1419 que el código que sigue se interprete con la sintaxis de la notación
1420 de percusión y se imprima como símbolos de percusión sobre un
1421 pentagrama de percusión, véase @ref{Basic percussion notation}.
1422
1423 @strong{Modo de cifras}
1424
1425 Se activa con la instrucción @code{\figuremode} y hace que el código
1426 de entrada se interprete con la sintaxis del bajo cifrado, véase
1427 @ref{Entering figured bass}.
1428
1429 El modo de cifrase también se activa con la instrucción
1430 @code{\figures}.  También crea un contexto de @code{FiguredBass} nuevo
1431 y hace que el código que viene a continuación se interprete con la
1432 sintaxis del bajo cifrado y se imprima como símbolos de bajo cifrado
1433 dentro del contexto @code{FiguredBass}, véase @ref{Introduction to
1434 figured bass}.
1435
1436 @strong{Modos de traste y tablatura}
1437
1438 No existen modos de entrada especiales para introducir símibolos de
1439 trastes y de tablatura.
1440
1441 Para crear diagramas de trastes, escriba las notas o acordes en el
1442 modo de notas e imprímalos dentro de un contexto @code{TabStaff},
1443 véase @ref{Default tablatures}.
1444
1445 Para crear diagramas de trastes encima de un pentagrama, escríbalos
1446 como elementos de marcado encima de las notas utilizando la
1447 instrucción @code{\fret-diagram}, véase @ref{Fret diagrams}.
1448
1449 @strong{Modo de letra}
1450
1451 Se activa con la instrucción @code{\lyricmode}, y hace que la entrada
1452 se interprete como sílabas de la letra de la canción con duraciones
1453 opcionales y modificadores de letra asociados, véase @ref{Vocal
1454 music}.
1455
1456 El modo de letra también se habilita con la instrucción
1457 @code{\addlyrics}.  Esto también crea un contexto @code{Lyrics} nuevo
1458 y una instrucción @code{\lyricsto} implícita que asocia la letra que
1459 viene a continuación con la música precedente.
1460
1461 @strong{Modo de marcado}
1462
1463 Se activa con la instrucción @code{\markup}, y hace que la entrada se
1464 interprete con la sintaxis del marcado, véase @ref{Text markup
1465 commands}.
1466
1467 @c silly work-around for texinfo broken-ness
1468 @c (@strong{Note...} causes a spurious cross-reference in Info)
1469 @b{Modo de notas}
1470
1471 Es el modo predeterminado o se puede activar con la instrucción
1472 @code{\notemode}.  La entrada se interpreta como alturas, duraciones,
1473 marcado, etc. y se imprime como notación musical sobre un pentagrama.
1474
1475 Normalmente no es necesario especificar el modo de notas de forma
1476 explícita, pero puede ser útil hacerlo en ciertas situaciones, por
1477 ejemplo si estamos en el modo de letra, en el modo de acordes o en
1478 otro modo y queremos insertar algo que solamente se puede hacer con la
1479 sintaxis del modo de notas.
1480
1481 Por ejemplo, para insertar indicaciones dinámicas para las estrofas de
1482 una pieza coral es necesario entrar en el modo de notas para poder
1483 interpretar dichas indicaciones:
1484
1485 @lilypond[verbatim,relative=2,quote]
1486 { c4 c4 c4 c4 }
1487 \addlyrics {
1488   \notemode{\set stanza = \markup{ \dynamic f 1. } }
1489   To be sung loudly
1490 }
1491 \addlyrics {
1492   \notemode{\set stanza = \markup{ \dynamic p 2. } }
1493   To be sung quietly
1494 }
1495 @end lilypond
1496
1497
1498
1499 @node Direction and placement
1500 @subsection Direction and placement
1501
1502 Al tipografiar música, la dirección y colocación de muchos elementos
1503 es cuestión de elección.  Por ejemplo, las plicas de las notas se
1504 pueden dirigir hacia arriba o hacia abajo; la lestra, las indicaciones
1505 dinámicas y otrase marcas expresivas se pueden colocar encima o debajo
1506 del pentagrama; el texto se pude alinear a la izquierda, a la derecha
1507 o centrado; etc.  La mayoría de estas elecciones pueden dejarse que
1508 LilyPond las determine automáticamente, pero en ciertos casos puede
1509 ser deseable forzar una dirección o colocación concreta.
1510
1511 @strong{Acciones predeterminadas}
1512
1513 De forma predeterminada algunas direcciones siempre son hacia arriba o
1514 siempre hacia abajo (p. ej. los matices o el calderón), mientras que
1515 otras cosas pueden alternar entre arriba y abajo en función de la
1516 dirección de las plicas (como las ligaduras o los acentos).
1517
1518 @c TODO Add table showing these
1519
1520 @strong{Disposición de contexto}
1521
1522 Los contextos se colocan dentro de un sistema de arriba a abajo en el
1523 orden en que se encuentran.  Sin embargo, observe que se crea un
1524 contexto implícitamente si se encuentra una instrucción cuando no está
1525 disponible un contexto apropiado para contenerla.
1526
1527 @c TODO Add example ?
1528
1529 Se pude cambiar el orden predeterminado en que los contextos se
1530 presentan, véase @ref{Aligning contexts}
1531
1532 @strong{Indicadores de dirección de las articulaciones}
1533
1534 Al añadir articulaciones a notas se puede omitir normalmente el
1535 indicador de dirección, @code{^} (que significa @qq{arriba}), @code{_}
1536 (que significa @qq{abajo}) o @code{-} (que significa @qq{usar la
1537 dirección predeterminada}), en cuyo caso se supone el perdeterminado
1538 @code{-}.  Pero se necesita un indicador de dirección @strong{always}
1539 antes de:
1540
1541 @itemize
1542 @item las instrucciones @code{\tweak}
1543 @item las instrucciones @code{\markup}
1544 @item las instrucciones @code{\tag}
1545 @item los marcados de cadena, p.ej. -"cadena"
1546 @item las instrucciones de digitación, p.ej. @code{-1}
1547 @item las abreviaturas de articulación, p.ej. @code{-.}, @code{->}, @code{--}
1548 @end itemize
1549
1550 @strong{La propiedad de dirección}
1551
1552 La posición o dirección de muchos objetos de presentación está
1553 controlada por la propiedad @code{direction}.
1554
1555 El valor de la propiedad @code{direction} se puede establecer al valor
1556 @code{1}, con el significado de @qq{hacia arriba} o @qq{encima}, o a
1557 @code{-1}, con el significado de @qq{hacia abajo} o @qq{debajo}.  Se
1558 pueden usar los símbolos @code{UP} y @code{DOWN} en sustitución de
1559 @code{1} y @code{-1} respectivamente.  La dirección predeterminada se
1560 puede especificar estableciendo @code{direction} a @code{0} ó a
1561 @code{CENTER}.  De forma alternativa, en muchos casos existen
1562 instrucciones predefinidas para especificar la dirección.  Todas ellas
1563 son de la forma:
1564
1565 @noindent
1566 @code{\xxxUp}, @code{xxxDown}, @code{xxxNeutral}
1567
1568 @noindent
1569 donde @code{xxxNeutral} significa @qq{utilizar la dirección
1570 predeterminada}.  Véase @rlearning{Within-staff objects}.
1571
1572 En alguna que otra ocasión, con el único ejemplo usual del arpegio, el
1573 valor de la propiedad @code{direction} especifica si el objeto se debe
1574 colocar a la izquierda o a la derecha del objeto padre.  En este caso
1575 @code{-1} ó @code{LEFT} significan @qq{a la izquierda} y @code{1} ó
1576 @code{RIGHT} significan @qq{a la derecha}.  @code{0} ó @code{CENTER}
1577 significan @qq{utilizar la dirección predeterminada}, como antes.
1578
1579
1580 @node Distances and measurements
1581 @subsection Distances and measurements
1582
1583 UNTRANSLATED NODE: IGNORE ME
1584
1585 @node Spanners
1586 @subsection Spanners
1587
1588 Muchos objetos de notación musical abarcan varias notas o incluso
1589 varios compases.  Son ejemplos los crescendi, trinos, corchetes de
1590 grupo especial y corchetes de primera y segunda vez.  Estos objetos se
1591 llaman @qq{spanners} u «objetos de extensión», y tienen propiedades
1592 especiales para controlar su apariencia y comportamiento.  Algunas de
1593 estas propiedades son comunes a todos los objetos de extensión; otras
1594 se limitan a un subconjunto de los extensores.
1595
1596
1597 @node Common properties
1598 @section Common properties
1599
1600 @menu
1601 * Controlling visibility of objects::  
1602 * Line styles::                 
1603 * Rotating objects::            
1604 * Aligning objects::            
1605 @end menu
1606
1607 @node Controlling visibility of objects
1608 @subsection Controlling visibility of objects
1609
1610
1611 @node Line styles
1612 @subsection Line styles
1613
1614 Ciertas indicaciones de ejecución, p.ej., @i{rallentando},
1615 @i{accelerando} y los @i{trinos} se escriben como texto y se extienden
1616 sobre muchos compases mediante líneas, a veces punteadas u onduladas.
1617
1618 Todos ellos usan las mismas rutinas que el glissando para dibujar los textos y las líneas,
1619 y por ello el ajuste fino de su comportamiento se hace de la
1620 misma manera. Se hace con un spanner (un objeto de extensión), y la rutina responsable
1621 de dibujar los objetos de extensión es @code{ly:line-interface::print}. Esta
1622 rutina determina la colocación exacta de los dos @i{extremos del
1623 objeto de extensión} y dibuja una línea entre ellos, en el estilo solicitado.
1624
1625 He aquí un ejemplo de los distintos estilos de línea disponibles, y cómo
1626 aplicarles ajustes finos.
1627
1628 @lilypond[relative=2,ragged-right,verbatim,fragment]
1629 d2 \glissando d'2
1630 \once \override Glissando #'style = #'dashed-line
1631 d,2 \glissando d'2
1632 \override Glissando #'style = #'dotted-line
1633 d,2 \glissando d'2
1634 \override Glissando #'style = #'zigzag
1635 d,2 \glissando d'2
1636 \override Glissando #'style = #'trill
1637 d,2 \glissando d'2
1638 @end lilypond
1639
1640 La información que determina los puntos extremos se calcula al vuelo
1641 para cada objeto gráfico, pero es posible sobreescribirlos.
1642
1643 @lilypond[relative=2,ragged-right,verbatim,fragment]
1644 e2 \glissando f
1645 \once \override Glissando #'bound-details #'right #'Y = #-2
1646 e2 \glissando f
1647 @end lilypond
1648
1649 El objeto @code{Glissando}, como cualquier otro que use la rutina
1650 @code{ly:line-interface::print}, conlleva una lista asociativa
1651 anidada. En la instrucción anterior, el valor de @code{Y}
1652 se establece a @code{-2} para la lista asociativa correspondiente al extremo final de la
1653 derecha. Por supuesto, también es posible ajustar el extremo de la izquierda con
1654 @code{left} en vez de @code{right}.
1655
1656 Si no se establece el valor de @code{Y}, se calcula a partir de la posición
1657 vertical del punto de anclaje derecho del objeto de extensión.
1658
1659 En el caso de un salto de línea, los valores de los puntos extremos se extienden
1660 con los contenidos de las sublistas @code{left-broken} y @code{right-broken},
1661 por ejemplo
1662
1663 @lilypond[relative=2,ragged-right,verbatim,fragment]
1664 \override Glissando #'breakable = ##T 
1665 \override Glissando #'bound-details #'right-broken #'Y = #-3
1666 c1 \glissando \break
1667 f1
1668 @end lilypond
1669
1670 Las siguientes propiedades se pueden usar para el ajuste fino de los objetos de extensión:
1671
1672 @table @code
1673 @item Y
1674 Establece la coordenada Y del punto extremo, en espacios de pentagrama.  Por
1675 omisión, es el centro del objeto con que enlaza.  Así, para un glissando
1676 apuntaría al centro vertical de la cabeza de la nota.
1677
1678 Para objetos de extensión horizontales, como el de texto y los trinos, tiene el valor
1679 fijo de cero.
1680
1681 @item attach-dir
1682 Determina el lugar donde la línea comienza y acaba en la dirección X,
1683 relativo al objeto al que se enlaza.  Así, un valor de @code{-1} (o
1684 @code{LEFT}) hace que la línea comience o acabe en el lado izquierdo de la cabeza de la nota
1685 a la que el objeto se encuentra adjuntado.
1686
1687 @item X
1688 Es la coordenada absoluta del extremo final. Normalmente
1689 se calcula al vuelo y no tiene mucho sentido sobreescribirlo.
1690
1691 @item stencil
1692 Los objetos extensores de línea pueden tener símbolos al principio o al final, que se encuentra contenido
1693 dentro de esta subpropiedad.  Es para uso interno y se recomienda
1694 usar @code{text}.
1695
1696 @item text
1697 Es un elemento de marcado que se evalúa para generar la propiedad stencil anterior. Se usa
1698 para poner @i{cresc.} y @i{tr} sobre los objetos de extensión horizontales.
1699
1700 @lilypond[quote,ragged-right,fragment,relative=2,verbatim]
1701 \override TextSpanner #'bound-details #'left #'text
1702    = \markup { \small \bold Slower }
1703 c2\startTextSpan b c a\stopTextSpan
1704 @end lilypond
1705
1706 @item stencil-align-dir-y
1707 @item stencil-offset
1708 Sin un valor establecido para esto, el stencil se coloca simplemente sobre el extremo del final,
1709 tal y como se encuentra definido por las subpropiedades @code{X} e @code{Y}.
1710 La asignación de un valor para @code{stencil-align-dir-y} o para @code{stencil-offset}
1711 desplaza el símbolo del extremo de forma relativa al extremo de la línea
1712
1713 @lilypond[relative=1,fragment,verbatim]
1714 \override TextSpanner #'bound-details #'left #'stencil-align-dir-y = #DOWN
1715 \override TextSpanner #'bound-details #'right #'stencil-align-dir-y = #UP
1716
1717 \override TextSpanner #'bound-details #'left #'text = #"gggg"
1718 \override TextSpanner #'bound-details #'right #'text = #"hhhh"
1719 c4^\startTextSpan c c c \stopTextSpan
1720 @end lilypond
1721
1722 @item arrow (flecha)
1723 El establecimiento de esta subpropiedad al valor de @code{#t} produce una cabeza de flecha al final de la
1724 línea.
1725
1726 @item padding (relleno)
1727 Esta subpropiedad controla el espacio entre el punto extremo de la línea especificado
1728 y el extremo real.  Sin relleno, un glissando empezaría
1729 y acabaría en el centro de las cabezas de las notas.
1730
1731 @end table
1732
1733 La función musical \endSpanners termina los objetos de extensión y los
1734 reguladores después de una nota exactamente.
1735
1736 @lilypond[verbatim,quote,ragged-right,relative=2,fragment]
1737 \endSpanners
1738 c2 \startTextSpan c2
1739 c2 \< c2
1740 @end lilypond
1741
1742 Al utilizar \endSpanners no es necesario cerrar \startTextSpan con
1743 \stopTextSpan, ni tampoco cerrar los reguladores con \!.
1744
1745 @seealso
1746
1747 Referencia del programa:
1748 @rinternals{TextSpanner},
1749 @rinternals{Glissando},
1750 @rinternals{VoiceFollower},
1751 @rinternals{TrillSpanner},
1752 @rinternals{line-spanner-interface}.
1753
1754
1755 @node Rotating objects
1756 @subsection Rotating objects
1757
1758 @node Aligning objects
1759 @subsection Aligning objects
1760
1761
1762 @node Advanced tweaks
1763 @section Advanced tweaks
1764
1765 @menu
1766 * Vertical grouping of grobs::  
1767 * Modifying ends of spanners::  
1768 * Modifying stencils::          
1769 @end menu
1770
1771
1772
1773
1774 @node Vertical grouping of grobs
1775 @subsection Vertical grouping of grobs
1776
1777 Los grobs (objetos gráficos) @code{VerticalAlignment} y
1778 @code{VerticalAxisGroup} trabajan de manera coordinada.
1779 @code{VerticalAxisGroup} agrupa distintos grobs como @code{Staff},
1780 @code{Lyrics}, etc.  Después, @code{VerticalAlignment} alinea los
1781 distintos grobs agrupados previamente por @code{VerticalAxisGroup}.
1782 Normalmente sólo existe un @code{VerticalAlignment} por cada
1783 partitura, pero cada @code{Staff}, @code{Lyrics}, etc. tiene su propio
1784 @code{VerticalAxisGroup}.
1785
1786
1787 @node Modifying ends of spanners
1788 @subsection Modifying ends of spanners
1789
1790
1791 @node Modifying stencils
1792 @subsection Modifying stencils
1793
1794 @node old The \override command
1795 @section old The @code{\override} command
1796
1797 UNTRANSLATED NODE: IGNORE ME
1798
1799 @node Discussion of specific tweaks
1800 @section Discussion of specific tweaks
1801
1802 UNTRANSLATED NODE: IGNORE ME
1803
1804 @menu
1805 * old Contexts explained::      
1806 @end menu
1807
1808 @node old Contexts explained
1809 @subsection old Contexts explained
1810
1811 UNTRANSLATED NODE: IGNORE ME
1812