]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/es/user/tweaks.itely
Fix cross refs
[lilypond.git] / Documentation / es / user / tweaks.itely
1 @c -*- coding: utf-8; mode: texinfo; -*-
2 @c This file is part of lilypond.tely
3 @ignore
4     Translation of GIT committish: 09959774607dd319f60a75ab1927981d7707feee
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 @node Tweaking output
11 @chapter Tweaking output
12
13 Este capítulo trata de cómo modificar la salida.  LilyPond es extremadamente
14 configurable; prácticamente todos los fragmentos de la salida se pueden cambiar.
15
16
17 @menu
18 * Tweaking basics::             
19 * The Internals Reference manual::  
20 * Appearance of objects::       
21 * Collisions of objects::
22 * Common tweaks::               
23 * Default files::               
24 * Fitting music onto fewer pages::  
25 * Avoiding tweaks with slower processing::  
26 * Advanced tweaks with Scheme::  
27 @end menu
28
29 @node Tweaking basics
30 @section Tweaking basics
31
32 @menu
33 * Introduction to tweaks::      
34 * Objects and interfaces::      
35 * Naming conventions of objects and properties::  
36 * Tweaking methods::            
37 @end menu
38
39 @node Introduction to tweaks
40 @subsection Introduction to tweaks
41
42 El @q{Trucaje} es un término de LilyPond que denota los diversos
43 métodos que el usuario tiene a su disposición para modificar el
44 proceso de interpretación del archivo de entrada y cambiar la
45 apariencia de la salida impresa.  Algunos trucos son muy fáciles de
46 usar; otros son más complejos.  Pero en su conjunto, los métodos de
47 trucaje disponibles posibilitan conseguir casi cualquier apariencia
48 que deseemos en la música impresa.
49
50 En esta sección vamos a estudiar los conceptos básicos que se
51 necesitan para comprender el trucaje.  Más tarde daremos un amplio
52 abanico de instrucciones listas para usar, que podrá simplemente
53 copiar para obtener el mismo efecto en sus partituras, y al mismo
54 tiempo mostraremos la forma de construir dichas instrucciones para que
55 pueda aprender cómo desarrollar sus propios trucos.
56
57 Antes de comenzar con este capítulo, quizá quiera echar un vistazo a
58 la sección @ref{Contexts and engravers}, pues los Contextos, los
59 Grabadores y las Propiedades que se contienen en ellos son
60 fundamentales para comprender y construir los trucos.
61
62 @node Objects and interfaces
63 @subsection Objects and interfaces
64
65 @cindex objetos
66 @cindex grobs
67 @cindex selectores
68 @cindex interfaces
69
70 El trucaje consiste en modificar el funcionamiento y estructura
71 interna del programa LilyPond, por lo que en primer lugar
72 introduciremos algunos términos que se usan para describir dichas
73 operaciones y estructuras internas.
74
75 El término @q{Objeto} es un término genérico que se usa para referirse
76 a la multitud de estructuras internas que LilyPond construye durante
77 el procesado de un archivo de entrada.  Así, cuando se encuentra una
78 instrucción como @code{\new Staff}, se construye un objeto nuevo del
79 tipo @code{Staff}.  Entonces, este objeto @code{Staff} contiene todas
80 las propiedades asociadas con ese pentagrama en particular, por
81 ejemplo, su nombre y su armadura, además de otros detalles de los
82 grabadores que se han asignado para que operen dentro del contexto del
83 pentagrama.  De forma similar, hay objetos que guardan las propieades
84 de todos los demás contextos, como objetos de @code{Voice}, objetos de
85 @code{Score}, objetos de @code{Lyrics}, así como objetos que
86 representan todos los elementos notacionales como líneas divisorias,
87 cabezas de las notas, ligaduras, indicaciones dinámicas, etc.  Cada
88 objeto tiene su propio conjunto de valores de propiedad.
89
90 Ciertos tipos de objetos reciben nombres especiales.  Los objetos que
91 representan elementos de notación sobre la salida impresa como cabezas
92 de notas, plicas, ligaduras de expresión y de unión, digitaciones,
93 claves, etc. reciben el nombre de @q{Objetos de presentación}, a
94 menudo conocidos como @q{Objetos gráficos}, o abreviadamente
95 @q{Grobs}.  Aún son objetos en el sentido genérico que hemos
96 mencionado, y también todos ellos tienen propiedades asociadas, como
97 su posición, tamaño, color,etc.
98
99 Ciertos objetos de presentación son aún más especializados.  Las
100 ligaduras de fraseo, los reguladores, las indicaciones de octava alta
101 y baja, y muchos otros objetos gráficos no están situados en un solo
102 lugar: tienen un punto de inicio, un punto de final, y quizá otras
103 propiedades relacionadas con su forma.  Los objetos con una forma
104 extendida como estos, reciben el nombre de «Objetos de extensión» o
105 @q{Spanners}.
106
107 Aún falta por explicar qué son los @q{Interfaces}.  Muchos objetos,
108 incluso aunque son bastante diferentes, comparten funcionalidades que
109 se deben procesar de la misma manera.  Por ejemplo, todos los objetos
110 gráficos tienen un color, un tamaño, una posición, etc., y todas estas
111 propiedades se procesan de la misma forma durante la interpretación
112 del archivo de entrada por parte de LilyPond.  Para simplificar estas
113 operaciones internas, estas acciones t propiedades comunes se agrupan
114 en un objeto llamado @code{grob-interface}, interface de grob.  Hay
115 muchas otras agrupaciones de propiedades comunes como ésta, y cada
116 unoa recibe un nombre que acaba en @code{interface}.  En total hay más
117 de 100 interfaces de éstos.  Veremos más adelante porqué esto es del
118 interés y de utilidad para el usuario.
119
120 Estos son, en fin, los términos principales relativos a los objetos
121 que vamos a utilizar en este capítulo.
122
123 @node Naming conventions of objects and properties
124 @subsection Naming conventions of objects and properties
125
126 Ya hemos visto ciertas convenciones de nomenclatura de objetos, en la
127 sección @ref{Contexts and engravers}.  En este lugar, para más fácil
128 referencia, presentamos una lista de los tipos de objetos y
129 propiedades más comunes, junto con las convenciones según las cuales
130 reciben su nombre, y un par de ejemplos de nombres reales.  Hemos
131 utilizado una «A» mayúscula para denotar cualquier carácter alfabético
132 en mayúsculas, y «aaa» para cualquier número de caracteres alfabéticos
133 en minúscula.  Otros caracteres se utilizan literalmente como están.
134
135 @multitable @columnfractions .33 .33 .33
136 @headitem Objeto o tipo de propiedad
137   @tab Convención de nomenclatura
138   @tab Ejemplo
139 @item Contextos
140   @tab Aaaa o AaaaAaaaAaaa
141   @tab Staff, GrandStaff
142 @item Objetos de presentación
143   @tab Aaaa o AaaaAaaaAaaa
144   @tab Slur, NoteHead
145 @item Grabadores
146   @tab Aaaa_aaa_engraver
147   @tab Clef_engraver, Note_heads_engraver
148 @item Interfaces
149   @tab aaa-aaa-interface
150   @tab grob-interface, break-aligned-interface 
151 @item Propiedades de contextos
152   @tab aaa o aaaAaaaAaaa
153   @tab alignAboveContext, skipBars
154 @item Propiedades de objetos de presentación
155   @tab aaa o aaa-aaa-aaa
156   @tab direction, beam-thickness
157 @end multitable
158
159 Como podremos ver en breve, las propiedades de distintos tipos de
160 objeto se modifican por parte de diferentes instrucciones; así pues,
161 es útil poder reconocer el tipo de objeto a partir de sus nombres de
162 propiedad.
163
164 @node Tweaking methods
165 @subsection Tweaking methods
166
167 @strong{La instrucción \override}
168
169 @cindex override, instrucción
170 @funindex \override
171
172 Ya hemos visto las instrucciones @code{\set} y @code{\with}, que se
173 usan para cambiar las propiedades de los @strong{contextos} y para
174 quitar y poner @strong{grabadores}, en @ref{Modifying context
175 properties} y @ref{Adding and removing engravers}.  Ahora debemos
176 examinar algunas instrucciones importantes más.
177
178 La instrucción que cambia las propiedades de los @strong{objetos de
179 presentación} es @code{\override}.  Puesto que esta instrucción debe
180 modificar propiedades internas que se encuentran en un lugar profundo
181 dentro de LilyPond, su sintaxis no es tan simple como la del resto de
182 las instrucciones que hemos visto hasta ahora.  Tiene que saber
183 exactamente qué propiedad de qué objeto y en qué contexto se debe
184 modificar, y cuál debe ser su nuevo valor.  Veamos cómo se hace.
185
186 La sintaxis genérica de esta instrucción es:
187
188 @example
189 \override @emph{contexto}.@emph{objeto_de_presentación} 
190   #'@emph{propiedad_de_presentación} = #@emph{valor}
191 @end example
192
193 @noindent
194 Esto establecerá la propiedad de nombre
195 @emph{propiedad_de_presentación} del objeto de presentación con el
196 nombre @emph{objeto_de_presentación}, que es miembro del contexto
197 @emph{contexto}, al valor @emph{valor}.
198
199 El @emph{contexto} se puede omitir (y normalmente así es) cuando el
200 contexto requerido se encuentra implicado sin ambigüedad y es uno de
201 los contextos del nivel más bajo, es decir: @code{Voice},
202 @code{ChordNames} o @code{Lyrics}, y lo omitiremos en muchos de los
203 ejemplos siguientes.  Veremos más tarde cuándo se debe especificar.
204
205 Las últimas secciones tratan de forma exhaustiva las propiedades y sus
206 valores, pero para ilustrar el formato y utilización de estas
207 iinstrucciones usaremos sólo unas cuantas propiedades y valores
208 sencillos que sean fáciles de entender.
209
210 Por ahora no se preocupe por el @code{#'}, que debe anteponerse a la
211 propiedad de presentación, y el @code{#}, que debe preceder al valor.
212 Deben estar presentes siempre y de esa forma exacta.  Es la
213 instrucción de uso más común dentro del trucaje, y durante la mayor
214 parte del resto de este capítulo presentaremos ejemplos de cómo se
215 usa.  A continuación hay un ejemplo sencillo para cambiar el color de
216 una cabeza:
217
218 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
219 c d
220 \override NoteHead #'color = #red
221 e f g
222 \override NoteHead #'color = #green
223 a b c
224 @end lilypond
225
226 @strong{La instrucción \revert}
227
228 @cindex revert, instrucción
229 @funindex \revert
230
231 Una vez sobreescrita, la proopiedad retiene su nuevo valor hasta que
232 se sobreescribe de nuevo o se encuentra una instrucción
233 @code{\revert}.  La instrucción @code{\revert} tiene la siguiente
234 sintaxis y ocasiona que el valor de la propiedad se devuelva a su
235 valor predeterminado original; observe que no es a su valor previo si
236 se han utilizado varias instrucciones @code{\override}.
237
238 @example
239 \revert @emph{contexto}.@emph{objeto_de_presentación} #'@emph{propiedad_de_presentación}
240 @end example
241
242 Una vez más, igual que @emph{contexto} dentro de la instrucción
243 @code{\override}, con frecuencia no es necesario especificar el
244 @emph{contexto}.  Se omitirá en muchos de los ejemplos siguientes.
245 Aquí devolvemos el color de la cabeza al valor predeterminado para las
246 dos últimas notas:
247
248 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
249 c d
250 \override NoteHead #'color = #red
251 e f g
252 \override NoteHead #'color = #green
253 a
254 \revert NoteHead #'color
255 b c
256 @end lilypond
257
258 @strong{El prefijo \once}
259
260 Tanto la instrucción @code{\override} como @code{\set} se pueden
261 preceder por @code{\once}.  Esto ocasiona que la siguiente instrucción
262 @code{\override} o @code{\set} sea efectiva solamente durante el
263 tiempo musical en curso y antes de que la propiedad vuelva a tener
264 otra vez su valor predeterminado.  Utilizando el mismo ejemplo,
265 podemos cambiar el color de una sola nota de la siguiente manera:
266
267 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
268 c d
269 \once \override NoteHead #'color = #red
270 e f g
271 \once \override NoteHead #'color = #green
272 a b c
273 @end lilypond
274
275 @strong{La instrucción \overrideProperty}
276
277 @cindex overrideProperty, instrucción
278 @funindex \overrideProperty
279
280 Hay otra forma para la instrucción de sobreescritura,
281 @code{\overrideProperty}, que ocasionalmente es necesaria.  La
282 mencionamos aquí con un propósito de exhaustividad, pero para ver más
283 detalles consulte @ruser{Difficult tweaks}.
284 @c Maybe explain in a later iteration  -td
285
286 @strong{La instrucción \tweak}
287
288 @cindex tweak, instrucción
289 @funindex \tweak
290
291 La última instrucción de trucaje que está disponible es @code{\tweak}.
292 Se debe utilizar para cambiar las propiedades de objetos que suceden
293 en el mismo momento musical, como las notas de un acorde.  El uso de
294 @code{\override} para la sobreescritura afectaría a todas las notas
295 del acorde, mientras que @code{\tweak} afecta solamente al siguiente
296 elemento del flujo de entrada.
297
298 He aquí un ejemplo.  Suponga que queremos cambiar el tamaño de la nota
299 intermedia (el Mi) en un acorde de Do mayor.  En primer lugar, veamos
300 lo que haría @code{\once \override}:
301
302 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
303   <c e g>4
304   \once \override NoteHead #'font-size = #-3
305   <c e g>
306   <c e g>
307 @end lilypond
308
309 Vemos que la sobreescritura con override afecta a @emph{todas} las
310 notas del acorde.  Esto es así porque todas las notas de un acorde
311 ocurren en el mismo @emph{momento musical}, y la acción de
312 @code{\once} es aplicar la sobreescritura a todos los oobjetos de
313 presentación del tipo especificado que ocurren en el mismo momento
314 musical que la propia instrucción de sobreescritura @code{\override}.
315
316 LA instrucción @code{\tweak} opera de una forma distinta.  Actúa sobre
317 el elemento inmediatamente siguiente dentro del flujjo de entrada.
318 Sin embargo, es efectivo solamente sobre objetos que se crean
319 directamente a partir del flujo de entrada, en esencia las cabezas y
320 las articulaciones (los objetos como las plicas y las alteraciones se
321 crean con posterioridad y no se pueden trucar de esta forma).  Es más,
322 cuando se aplica a las cabezas de las notas, éstas @emph{deben} estar
323 dentro de un acorde, es decir, dentro de ángulos simples, así que para
324 trucar una sola nota la instrucción @code{\tweak} se debe colocar
325 dentro de ángulos simples junto con la nota.
326
327 Así pues, volviendo a nuestro ejemplo, el tamaño de la nota intermedia
328 se cambiaría de la siguiente forma:
329
330 @lilypond[quote,fragment,ragged-right,verbatim,relative=1]
331   <c e g>4
332   <c \tweak #'font-size #-3 e g>4
333 @end lilypond
334
335 Observe que la sintaxis de @code{\tweak} es diferente de la de la
336 instrucción @code{\override}.  Ni el contexto ni el objeto de
337 presentación se deben especificar; de hecho, generaría un error
338 hacerlo.  Los dos están implícitos por el siguiente elemento del flujo
339 de entrada.  Así que la sintaxis genérica de la instrucción
340 @code{\tweak} es, simmplemente:
341
342 @example
343 \tweak #'@emph{propiedad_de_presentación} = #@emph{valor}
344 @end example
345
346 Una instrucción @code{\tweak} también se puede usar para modificar
347 sólo una de una serie de articulaciones, como se muestra aquí:
348
349 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
350 a ^Black
351   -\tweak #'color #red ^Red
352   -\tweak #'color #green _Green
353 @end lilypond
354
355 Observe que la instrucción @code{\tweak} debe venir precedida de una
356 marca de articulación como si ella misma fuera una articulación.
357
358 @cindex grupos especiales anidados
359 @cindex tresillos anidados
360 @cindex corchete del grupo especial
361 @cindex grupo especial, corchete de
362 @cindex tresillo, corchete de
363 @funindex TupletBracket
364
365 La instrucción @code{\tweak} también se debe usar para cambiar la
366 apariencia de uno solo de un conjunto de grupos especiales anidados
367 que comiencen en el mismo instante musical.  En el siguiente ejemplo,
368 el corchete del tresillo largo y el primero de los tres corchetes
369 cortos empiezan en el mismo momento musical, y por ello cualquier
370 instrucción @code{\override} se aplicaría a los dos.  En el ejemplo se
371 usa @code{\tweak} para distinguir entre ellos.  La primera instrucción
372 @code{\tweak} especifica que el corchete del tresillo largo se debe
373 colocar por encima de las notas y el segundo especifica que el número
374 del tresillo se debe imprimir en rojo sobre el corchete del primer
375 tresillo corto.
376
377 @lilypond[quote,ragged-right,verbatim,fragment,relative=2]
378 \tweak #'direction #up
379 \times 4/3 {
380   \tweak #'color #red
381   \times 2/3 { c8[ c8 c8] }
382   \times 2/3 { c8[ c8 c8] }
383   \times 2/3 { c8[ c8 c8] }
384 }
385 @end lilypond
386
387 Encontrará más detalles de la instrucción @code{\tweak} en
388 @ruser{Objects connected to the input}.
389
390 Si los grupos anidados no comienzan en el mismo momento, su apariencia
391 se puede modificar de la forma usual mediante instrucciones
392 @code{\override}:
393
394 @c NOTE Tuplet brackets collide if notes are high on staff
395 @c See issue 509
396 @lilypond[quote,ragged-right,verbatim,fragment,relative=1]
397 \times 2/3 { c8[ c c]}
398 \once \override TupletNumber 
399   #'text = #tuplet-number::calc-fraction-text
400 \times 2/3 {
401   c[ c]
402   c[ c]
403   \once \override TupletNumber #'transparent = ##t
404   \times 2/3 { c8[ c c] }
405 \times 2/3 { c8[ c c]}
406 }
407 @end lilypond
408
409 @node The Internals Reference manual
410 @section The Internals Reference manual
411
412 @cindex Internals Reference
413
414 @menu
415 * Properties of layout objects::  
416 * Properties found in interfaces::  
417 * Types of properties::         
418 @end menu
419
420 @node Properties of layout objects
421 @subsection Properties of layout objects
422
423 @cindex propiedades de los objetos de presentación
424 @cindex propiedades de los grobs
425 @cindex grobs, propiedades de
426 @cindex presentación, propiedades de los objetos de
427
428 Suponga que tiene una partitura con una ligadura de expresión que para
429 su gusto es demasiado fina y quiere trazarla un poco más gruesa. ¿Cómo
430 debe proceder?  Ya sabe, por las afirmaciones anteriores acerca de la
431 flexibilidad de LilyPond, que tal posibilidad existe, y seguramente
432 piensa que una cierta instrucción de sobreescritura @code{\override}
433 será necesaria.  Pero ¿existe una propiedad de grosor para las
434 ligaduras? y, si la hay, ¿cómo se puede modificar?  Aquí es donde
435 interviene el Manual de Funcionamiento Interno.  Contiene toda la
436 información que puede necesitar para construir ésta y todas las demás
437 instrucciones @code{\override}, de sobreescritura.
438
439 Una advertencia antes de dirigir nuestra mirada a la referencia de
440 funcionamiento interno.  Éste es un documento de @strong{referencia},
441 lo que significa que hay pocas o ninguna explicación en él: su
442 propósito es presentar la información de forma precisa y concisa.  Por
443 tanto, podrá parecerle desalentador a primera vista.  ¡No se preocupe!
444 La guía y las explicaciones que presentamos aquí le permitirán extraer
445 la información de la referencia de funcionamiento interno por sí mismo
446 con tan sólo algo de práctica.
447
448 @cindex sobreescritura, ejemplo de
449 @cindex Referencia de Funcionamiento Interno, ejemplo de utilización
450
451 Utilicemos un ejemplo concreto con un sencillo fragmento de música
452 real:
453
454 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
455 {
456   \time 6/8
457   {
458     r4 b8 b[( g]) g | 
459     g[( e]) e d[( f]) a | 
460     a g
461   }
462   \addlyrics {
463     The man who feels love's sweet e -- mo -- tion 
464   }
465 }
466 @end lilypond 
467
468 Suponga ahora que decidimos que nos gustan las ligaduras algo más
469 gruesas.  ¿Es posible?  La ligadura es, ciertamente, un objeto de
470 presentación, así que la cuestión es @q{¿Hay una propiedad
471 perteneciente a las ligaduras de expresión que controle su grosor?}
472 Para responder a esta pregunta debemos mirar el manual de Referencia
473 de Funcionamiento Interno, abreviadamente RFI@footnote{@strong{IR}
474 (Internals Reference) en inglés}.
475
476 El RFI de la versión de LilyPond que está usando se puede encontrar en
477 la página web de LilyPond en @uref{http://lilypond.org}.  Vaya a la
478 página de la documentación y siga el enlace Manual de Referencia de
479 Funcionamiento Interno (RFI).  Para nuestros propósitos pedagógicos
480 sería mejor que utilizase la versión html, no la @q{en una sola
481 página} ni el PDF.  Para que los siguientes párrafos tengan algún
482 sentido deberá consultarlo realmente al tiempo que lee.
483
484 @c Link names in English as these pages are not yet translated
485 Bajo el encabezamiento @strong{Top} podrá ver cinco enlaces.
486 Seleccione el enlace @emph{Backend}, que es donde se encuentra la
487 información sobre los objetos de presentación.  Una vez allí, bajo el
488 encabezamiento @strong{Backend}, siga el enlace @emph{All layout
489 objects}.  La página que aparece relaciona todos los objetos de
490 presentación que se usan en su versión de LilyPond, en orden
491 alfabético.  Siga el enlace Slur (ligadura de expresión), y aparecerán
492 relacionadas las propiedades de las ligaduras de expresión o Slurs.
493
494 (Una forma alternativa de encontrar esta página es a partir de la
495 Referencia de la Notación.  En una de las páginas que tratan de las
496 ligaduras de expresión podrá encontrar un enlace al manual de
497 referencia del funcioonamiento interno.  Este enlace le llevará
498 directamente a esta página, aunque con frecuencia es más fácil ir
499 directamente al RFI y buscar allí.)
500
501 Esta página sobre las ligaduras de expresión dentro del manual RFI nos
502 dice en primer lugar que los objetos Slur se crean por el grabador
503 Slur_engraver.  A continuación relaciona los ajustes estándar.
504 Observe que @strong{no} están en orden alfabético.  Navegue hacia
505 abajo buscando una propiedad que pudiera controlar el grosor de las
506 ligaduras, y encontrará
507
508 @example
509 @code{thickness} (number)
510      @code{1.2}
511      Line thickness, generally measured in @code{line-thickness}
512 @end example
513
514 Esto promete ser una buena opción para cambiar el grosor.  Nos dice
515 que el valor de @code{thickness} es un simple @emph{número}, que el
516 valor predeterminado es 1.2, y que las unidades están dentro de otra
517 propiedad llamada @code{line-thickness}.
518
519 Como dijimos con anterioridad, existen entre pocas y ninguna
520 explicación en el RFI, pero ya tenemos información suficiente para
521 probar a cambiar el grosor de la ligadura.  Vemos que el nombre del
522 objeto de presentación es @code{Slur}, que el nombre de la propiedad
523 que debemos cambiar es @code{thickness} y que el nuevo valor debe ser
524 un número algo más grande que 1.2 si queremos hacer las ligaduras más
525 gruesas.
526
527 Ahora podemos construir la instrucción de sobreescritura
528 @code{\override} simplemente mediante la sustitución de los valores
529 que hemos encontrado para los nombres, omitiendo el contexto.
530 Usaremos un valor muy grande para el grosor al principio, para estar
531 seguros de que la instrucción está funcionando.  Obtenemos lo
532 siguiente:
533
534 @example
535 \override Slur #'thickness = #5.0
536 @end example 
537
538 ¡No olvide el @code{#'} antes del nombre de la propiedad y @code{#}
539 antes del valor nuevo!
540
541 La pregunta final es @q{¿Dónde se debe colocar esta instrucción?}
542 Aunque nos falta seguridad y estamos todavía aprendiendo, la mejor
543 respuesta es: @q{Dentro de la música, antes de la primera ligadura y
544 cerca de ella.}  Hagámoslo así:
545
546 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
547 {
548   \time 6/8
549   {
550     % Increase thickness of all following slurs from 1.2 to 5.0
551     \override Slur #'thickness = #5.0
552     r4 b8 b[( g]) g |
553     g[( e]) e d[( f]) a |
554     a g
555   }
556   \addlyrics {
557     The man who feels love's sweet e -- mo -- tion 
558   }
559 }
560 @end lilypond 
561
562 @noindent
563 y podemos ver que la ligadura, es sin duda, más pesada.
564
565 Así pues, ésta es la forma básica de construir instrucciones
566 @code{\override} o de sobreescritura.  Existen unas cuantas
567 complicaciones más con las que nos encontraremos en secciones
568 posteriores, pero ahora conoce todos los principios esenciales que
569 necesita para hacerlo por sí mismo (aunque aún necesita algo de
570 práctica).  La cual vendrá proporcionada por los ejemplos que vienen a
571 continuación.
572
573 @subheading Finding the context
574 @cindex contexto, encontrar
575
576 Pero en primer lugar ¿qué habría pasado si hubiésemos tenido que
577 especificar el contexto? ¿Cuál sería?  Podemos suponer que las
578 ligaduras están en el contexto de Voz, por estar claramente asociados
579 de manera estrecha con las líneas individuales de música, pero
580 ¿podemos estar seguros?  Para averiguarlo, vayamos de nuevo al inicio
581 de la página del RFI que describe las ligaduras (Slur), donde dice
582 @q{Slur objects are created by: Slur engraver} («Los objetos de
583 ligadura de expresión se crean por: el grabador Slur»).  Así pues, las
584 ligaduras de expresión se crean en cualquier contexto en el que se
585 encuentre el grabador @code{Slur_engraver}.  Siga el enlace a la
586 página del grabador @code{Slur_engraver}.  Al final del todo, dice que
587 el grabador @code{Slur_engraver} es parte de cinco contextos de voz,
588 incluido el contexto de voz estándar, @code{Voice}, por lo que nuestra
589 suposición era acertada.  Y a causa de que @code{Voice} es uno de los
590 contextos de más bajo nivel que se encuentra implícito sin ambigüedad
591 por el hecho de que estamos escribiendo notas, podemos omitirlo en
592 este lugar concreto.
593
594 @subheading Overriding once only
595
596 @cindex sobreescritura por una sola vez
597 @cindex once override
598 @funindex \once
599
600 Como puede ver, @emph{todas} las ligaduras son más gruesas en el
601 último ejemplo.  Pero ¿y si quisiéramos que solamente la primera
602 ligadura fuese más gruesa?  Esto se consigue con la instrucción o
603 prefijo @code{\once}.  Colocado inmediatamente antes de la instrucción
604 @code{\override} ocasiona que solamente cambie la ligadura que
605 comienza en la nota @strong{inmediata siguiente}.  Si la nota
606 inmediata siguiente no da inicio a una ligadura, la instrucción no
607 tiene niingún efecto en absoluto: no se recuerda hasta que se
608 encuentre alguna ligadura, sino que simplemente se ignora.  Así pues,
609 la instrucción que lleva @code{\once} se debe reposicionar de la forma
610 siguiente:
611
612 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
613 {
614   \time 6/8
615   {
616     r4 b8
617     % Increase thickness of immediately following slur only
618     \once \override Slur #'thickness = #5.0
619     b[( g]) g | 
620     g[( e]) e d[( f]) a | 
621     a g 
622   }
623   \addlyrics {
624     The man who feels love's sweet e -- mo -- tion 
625   }
626 }
627 @end lilypond 
628
629 @noindent
630 Hemos hecho que ahora solamente la primera ligadura sea más gruesa.
631
632 La instrucción o prefijo @code{\once} también se puede usar antes de
633 la instrucción @code{\set}.
634
635 @subheading Reverting
636
637 @cindex revert
638 @cindex predeterminadas, devolver a las propiedades
639 @funindex \revert
640
641 Finalmente ¿y si quisiéramos que solamente las dos primeras ligaduras
642 fuesen más gruesas?  En fin; podríamos usar dos instrucciones, cada
643 una de ellas precedida por el prefijo @code{\once}, situadas
644 inmediatamente antes de cada una de las notas en que comienzan las
645 ligaduras:
646
647 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
648 {
649   \time 6/8
650   {
651     r4 b8
652     % Increase thickness of immediately following slur only
653     \once \override Slur #'thickness = #5.0
654     b[( g]) g |
655     % Increase thickness of immediately following slur only
656     \once \override Slur #'thickness = #5.0
657     g[( e]) e d[( f]) a | 
658     a g
659   }
660   \addlyrics {
661     The man who feels love's sweet e -- mo -- tion 
662   }
663 }
664 @end lilypond 
665
666 @noindent
667 o podríamos omitir la instrucción prefija @code{\once} y utilizar la
668 instrucción @code{\revert} (restablecer) para devolver la propiedad
669 del grosor, @code{thickness}, a su valor predeterminado después de la
670 segunda ligadura:
671
672 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
673 {
674   \time 6/8
675   {
676     r4 b8
677     % Increase thickness of all following slurs from 1.2 to 5.0
678     \override Slur #'thickness = #5.0
679     b[( g]) g |
680     g[( e]) 
681     % Revert thickness of all following slurs to default of 1.2
682     \revert Slur #'thickness
683     e d[( f]) a | 
684     a g
685   }
686   \addlyrics {
687     The man who feels love's sweet e -- mo -- tion 
688   }
689 }
690 @end lilypond
691
692 @noindent
693 la instrucción @code{\revert} se puede utilizar para devolver
694 cualquier propiedad que se haya cambiado con @code{\override} a su
695 valor predeterminado.  Puede utilizar el método que mejor se adapte a
696 aquello que quere hacer.
697
698 Así finaliza nuestra introducción al manual de RFI, y el método básico
699 de trucaje.  A continuación, en las últimas secciones de este capítulo
700 encontrará varios ejemplos, en parte para introducirle en algunas de
701 las posibilidades adicionales del manual RFI, y en parte para
702 proporcionarle más práctica en cómo extraer información de él.  Estos
703 ejemplos irán conteniendo cada vez menos palabras de guía y
704 explicación.
705
706 @node Properties found in interfaces
707 @subsection Properties found in interfaces
708
709 @cindex propiedades de los interfaces
710 @cindex interfaces, propiedades
711
712 Suponga ahora que queremos imprimir la letra de la canción en cursiva.
713 ¿Qué forma de instrucción @code{\override} necesitamos para hacerlo?
714 En primer lugar miramos en la página del RFI que relaciona todos los
715 objetos, @q{All layout objects}, como antes, y buscamos un objeto que
716 pueda conteolar la letra de la canción.  Encontramos @code{LyricText},
717 que parece adecuado.  Al seguir este enlace se presentan las
718 propiedades ajustables para el texto de la letra.  Estos incluyen
719 @code{font-series} y @code{font-size}, pero nada que pudiera aplicar
720 una forma cursiva.  Esto es porque la propiedad de la forma es común a
721 todos los objetos de fuente tipográfica, y por tanto, en vez de
722 incluirlo en cada uno de los objetos de preesentación, se agrupa junto
723 con otras propiedades comunes similares y se deposita en un
724 @strong{Interface}, el interface de las fuentes tipográficas
725 @code{font-interface}.
726
727 Por tanto, ahora necesitamos aprender cómo encontrar las propiedades
728 de los interfaces, y descubrir qué objetos usan estas propiedades de
729 interface.
730
731 Mire de nuevo la página del RFI que decribe a LyricText.  Al final de
732 la página hay una lista de enlaces (en las versiones de html del RFI)
733 a los interfaces que LyricText contempla.  La lista tiene siete
734 elementos, entre ellos @code{font-interface}.  Al seguir este enlace
735 llegamos a las propiedades asociadas con este interface, que también
736 son propiedades de todos los objetos que lo llevan, entre ellos
737 LyricText.
738
739 Ahora vemos todas las propiedades ajustables por el usuario que
740 controlan las tipografías, entre ellas @code{font-shape(symbol)},
741 donde @code{symbol} se puede establecer a @code{upright} (recta),
742 @code{italics} (cursiva)o @code{caps} (mayúsculas pequeñas).
743
744 Observará que @code{font-series} y @code{font-size} también se
745 encuentran aquí relacionadas.  Esto inmediatamente hace que surja la
746 pregunta: ¿Por qué están las propiedades comunes de tipografía
747 @code{font-series} y @code{font-size} relacionadas bajo
748 @code{LyricText} así como bajo el interface @code{font-interface} pero
749 @code{font-shape} no lo está?  La respuesta es que @code{font-series}
750 y @code{font-size} se cambian a partir de sus valores predeterminados
751 globales cuando se crea un objeto @code{LyricText}, pero
752 @code{font-shape} no lo hace.  Entonces los elementos de la lista
753 @code{LyricText} le dicen los valores para esas dos propiedades que
754 son de aplicación para @code{LyricText}.  Otros objetos que contemplan
755 @code{font-interface} establecerán dichas propiedades de forma
756 diferente cuando se crean.
757
758 Veamos si ahora podemos construir la instrucción @code{\override} para
759 cambiar la letra a cursiva.  El objeto es @code{LyricText}, la
760 propiedad es @code{font-shape} y el valor es @code{italic}.  Igual que
761 antes, omitiremos el contexto.
762
763 Como nota aparte, aunque una nota importante, observe que a causa de
764 que los valores de @code{font-shape} son símbolos, deben ir precedidos
765 de un apóstrofe, @code{'}.  Esa es la razón por la que se necesitan
766 apóstrofes antes de @code{thickness} en el ejemplo anterior y en
767 @code{font-shape}.  Los dos son también símbolos.  Los símbolos son
768 nombres especiales que son conocidos por LilyPond internamente.
769 Algunos de ellos son nombres de propiedades, como @code{thickness} o
770 @code{font-shape}, otros son en efecto valores especiales que se les
771 puede dar a las propiedades, como @code{italic}.  Observe la
772 distincion entre esto y las cadenas de texto arbitrarias, que
773 aparecerían entrecomilladas como @code{"a text string"}.
774
775 De acuerdo, entonces la instrucción @code{\override} que necesitamos
776 para imprimir la letra en cursiva sería
777
778 @example
779 \override LyricText #'font-shape = #'italic
780 @end example
781
782 @noindent
783 y debe colocarse justo delante de, y cerca de, la letra a la que debe
784 afectar, como esto:
785
786 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
787 {
788   \time 6/8
789   {
790     r4 b8 b[( g]) g |
791     g[( e]) e d[( f]) a |
792     a g
793   }
794   \addlyrics {
795     \override LyricText #'font-shape = #'italic
796     The man who feels love's sweet e -- mo -- tion 
797   }
798 }
799 @end lilypond
800
801 @noindent
802 y toda la letra se imprime en cursiva.
803
804 @subheading Specifying the context in lyric mode
805 @cindex contexto, especificación en modo letra
806
807 En el caso de la letra, si intenta especificar el contexto en el
808 formato que acabamnos de dar, la instrucción no funcionará.  Una
809 sílaba escrita en el modo letra, «lyricmode» temina en un espacio, un
810 salto de línea o un dígito.  Cualquier otro carácter se incluye como
811 parte de la sílaba.  Por esta razón, un espacio o salto de línea debe
812 aparecer antes del último símbolo @code{@}} para evitar que se incluya
813 como parte de la sílaba final.  De forma similar, se deben insertar
814 espacios antes y después del punto, @q{.}, separando el nombre del
815 contexto del nombre del objeto, pues en caso contrario los dos nombres
816 se juntarán y el intérprete no podrá reconocerlos.  Así pues, la
817 instrucción será:
818
819 @example
820 \override Lyrics . LyricText #'font-shape = #'italic
821 @end example
822
823 @warning{Dentro de la letra, deje siempre espacios entre la sílaba
824 final y la llave de cierre.}
825
826 @warning{En las sobreescrituras con override dentro de la letra,
827 escriba siempre espacios antes y después del punto que separa el
828 nombre del contexto y el nombre del objeto.}
829
830 @node Types of properties
831 @subsection Types of properties
832
833 @cindex propiedades, tipos de
834
835 Hasta ahora hemos visto dos tipos de propiedad:: @code{número} y
836 @code{símbolo}.  Para que sea válido, el valor que se da a una
837 propiedad debe ser del tipo correcto y obedecer las reglas de dicho
838 tipo.  El tipo de la propiedad se muestra siempre entre paréntesis
839 después del nombre de la propiedad en el RFI.  He aquí una lista de
840 los tipos que podrá necesitar, junto con las reglas de dicho tipo, y
841 algunos ejemplos.  Debe escribir siempre un símbolo de almohadilla,
842 @code{#}, por supuesto, delante de estos valores cuando se introducen
843 en la instrucción @code{\override}.
844
845 @multitable @columnfractions .2 .45 .35
846 @headitem Tipo de propiedad
847   @tab Reglas
848   @tab Ejemplos
849 @item Booleano
850   @tab Verdadero o Falso, representado por #t o #f
851   @tab @code{#t}, @code{#f}
852 @item Dimensión (en espacios de pentagrama)
853   @tab Un número decimal positivo (en unidades de espacios de pentagrama)
854   @tab @code{2.5}, @code{0.34}
855 @item Dirección
856   @tab Una constante válida de dirección o su equivalente numérico
857   @tab @code{#LEFT}, @code{#CENTER}, @code{#UP},
858        @code{1}, @code{-1}
859 @item Entero
860   @tab Un número entero positivo
861   @tab @code{3}, @code{1}
862 @item Lista
863   @tab Un conjunto de elementos entre paréntesis separados por espacios y precedido de un apóstrofe
864   @tab @code{'(left-edge staff-bar)}, @code{'(1)},
865        @code{'(1.0 0.25 0.5)}
866 @item Marcado
867   @tab Cualquier elemento válido de marcado de texto
868   @tab @code{\markup @{ \italic "cresc." @}}
869 @item Momento
870   @tab Una fracción de redonda construida con la función make-moment
871   @tab @code{(ly:make-moment 1 4)},
872        @code{(ly:make-moment 3 8)}
873 @item Número
874   @tab Cualquier valor decimal positivo o negativo
875   @tab @code{3.5}, @code{-2.45}
876 @item Pareja (de números)
877   @tab Dos números separados por un @q{espacio . espacio}, encerrado entre paréntesis y precedido de un apóstrofe
878   @tab @code{'(2 . 3.5)}, @code{'(0.1 . -3.2)}
879 @item Símbolo
880   @tab Cualquiera del conjunto de símbolos premitidos para esa propiedad, precedido de un apóstrofe
881   @tab @code{'italic}, @code{'inside}
882 @item Desconocido
883   @tab Un procedimiento o @code{#f} (para no producir ninguna acción)
884   @tab @code{bend::print}, @code{ly:text-interface::print},
885        @code{#f}
886 @item Vector
887   @tab Una lista de tres elementos encerrados entre paréntesis y precedida de una almohadilla, @code{#}.
888   @tab @code{#(#t #t #f)}
889 @end multitable
890
891 @node Appearance of objects
892 @section Appearance of objects
893
894 Ahora vamos a poner en práctica lo que hemos aprendido con unos
895 cuantos ejemplos que muestran cómo se pueden usar los trucos para
896 cambiar el aspecto de la música impresa.
897
898 @menu
899 * Visibility and color of objects::  
900 * Size of objects::             
901 * Length and thickness of objects::  
902 @end menu
903
904 @node Visibility and color of objects
905 @subsection Visibility and color of objects
906
907 Dentro de un uso educativo de la música, podríamos desear imprimir una
908 partitura con ciertos elementos omitidos como ejercicio para el
909 alumno, a quien se le pide que los complete.  A la manera de ejemplo
910 sencillo, supongamos que el ejercicio es escribir las líneas
911 divisorias que faltan en un fragmento musical.  Pero las líneas
912 divisorias normalmente se insertan automáticamente. ¿Cómo hacemos para
913 que no se impriman?
914
915 Antes de enredarnos con esto, recordemos que las propiedades de los
916 objetos se agrupan en lo que hemos llamado @emph{interfaces} (véase
917 @ref{Properties found in interfaces}).  Esto es simplemente agrupar
918 las propiedades que normalmente se necesitan juntas: si una de ellas
919 se necesita para un objeto, también las otras.  Así, ciertos objetos
920 necesitan las propiedades de algunos interfaces, otros necesitan las
921 de otros interfaces.  Los interfaces que contienen las propiedades que
922 un determinado grob necesita se ecuentran relacionadas en el manual
923 RFI al final de la página que describe dicho grob, y esas propiedades
924 se pueden ver mirando dichos interfaces.
925
926 Hemos explicado cómo encontrar información sobre los grobs en
927 @ref{Properties of layout objects}.  Usando el mismo enfoque, vamos al
928 RFI para biscar el objeto de presentación que imprime las líneas
929 divisorias.  A través del enlace @emph{Backend} y @emph{All layout
930 objects} encontramos que hay un objeto de presentación llamado
931 @code{BarLine}.  Entre sus propiedades se encuentran dos que controlan
932 la visibilidad: @code{break-visibility} y @code{stencil}.  Las líneas
933 divisorias también contemplan un número de interfaces, entre ellos el
934 @code{grob-interface}, donde podemos encontrar las propiedades
935 @code{transparent} y @code{color}.  Todas ellas pueden afectar la
936 visibilidad de las barras de compás (y, por supuesto, por extensión,
937 tambén la de muchos otros objetos de presentación).  Vamos a
938 considerar cada uno de ellos por orden.
939
940 @subheading stencil
941 @cindex stencil (sello), propiedad
942
943 Esta propiedad controla la apariencia de las barras de compás mediante
944 la especificación del símbolo (o «glifo») que se debe imprimir.  Igual
945 que como otras muchas propiedades, se puede establecer de forma que no
946 imprima nada ajustando su valor a @code{#f}.  Vamos a probarlo, como
947 antes, omitiendo el Contexto implícito, @code{Voice}:
948
949 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
950 {
951   \time 12/16
952   \override BarLine #'stencil = ##f
953   c4 b8 c d16 c d8 |
954   g, a16 b8 c d4 e16 |
955   e8
956 }
957 @end lilypond
958
959 Las barras de compás todavía se imprimen.  ¿Qué es lo que está mal?
960 Vuelva al RFI y mire de nuevo la página que ofrece las propiedades del
961 objeto BarLine.  Al principio de la página dice @qq{Barline objects
962 are created by: Bar_engraver} (los objetos Barline se crean por el
963 grabador Bar_engraver).  Vaya a la página del grabador
964 @code{Bar_engraver} siguiendo el enlace.  Al final da una lista de
965 contextos en los que el grabador de líneas divisorias opera.  Todos
966 ellos son del tipo @code{Staff}, y así la razón de que la instrucción
967 @code{\override} no funcionara como esperábamos, es porque
968 @code{Barline} no se encuentra en el contexto predeterminado
969 @code{Voice}.  Si el contexto se especifica mal, la instrucción
970 simplemente no funciona.  No se produce ningún mensaje de error, y no
971 se registra nada en el archivo log de registro.  Vamos a intentar
972 corregirlo escribiendo el contexto correcto:
973
974 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
975 {
976   \time 12/16
977   \override Staff.BarLine #'stencil = ##f
978   c4 b8 c d16 c d8 |
979   g, a16 b8 c d4 e16 |
980   e8
981 }
982 @end lilypond
983
984 Ahora las barras de compás han desaparecido.
985
986 @subheading break-visibility
987
988 @cindex break-visibility property
989
990 Vemos en las propiedades de @code{BarLine} que aparecen en el RFI que
991 la propiedad @code{break-visibility} requiere un vector de tres
992 valores booleanos.  Controlan respectivamente si las barras de compás
993 se imprimen al final de una línea, en mitad de una línea, y al
994 principio de las líneas.  Para nuestro ejemplo, queremos que todas las
995 barras de compás se supriman, por lo que el valor que necesitamos es
996 @code{#(#f #f #f)}.  Vamos a probarlo, recordando incluir el contexto
997 de @code{Staff}.  Observa también que al escribir este valor tenemos
998 dos símbolos de almohadilla antes del paréntesis de apertura.  Se
999 necesita uno como parte del valor para introducir un vector, y se
1000 necesita otro más, como siempre, para precered el propio valor dentro
1001 de la instrucción @code{\override}.
1002
1003 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
1004 {
1005   \time 12/16
1006   \override Staff.BarLine #'break-visibility = ##(#f #f #f)
1007   c4 b8 c d16 c d8 |
1008   g, a16 b8 c d4 e16 |
1009   e8
1010 }
1011 @end lilypond
1012
1013 Y podemos ver que esto también quita todas las líneas divisorias.
1014
1015 @subheading transparent
1016 @cindex transparente, propiedad
1017
1018 En la relación de propiedades que se especifican en la página del
1019 @code{grob-interface} del RFI podemos ver que la propiedad
1020 @code{transparent} es un valor booleano.  Esto se debe establecer a
1021 @code{#t} para hacer que el grob sea transparente.  En el ejemplo
1022 siguiente vamos a hacer que la indicación de compás, y no las líneas
1023 divisorias, sea transparente.  Para hacerlo tenemos que buscar el
1024 nombre del grob de la indicación de compás.  Volviendo a la página
1025 @q{All layout objects} del RFI, buscamos las propiedades del objeto de
1026 presentación @code{TimeSignature}.  Se produce por parte del grabador
1027 @code{Time_signature_engraver} que como puede comprobar vive dentro
1028 del contexto de @code{Staff} y también contempla el interface
1029 @code{grob-interface}.  Así pues, la instrucción que hace transparente
1030 a la indicación de compás es:
1031
1032 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
1033 {
1034   \time 12/16
1035   \override Staff.TimeSignature #'transparent = ##t
1036   c4 b8 c d16 c d8 |
1037   g, a16 b8 c d4 e16 |
1038   e8
1039 }
1040 @end lilypond
1041
1042 @noindent
1043 El compás ya no está, pero esta instrucción deja una separación en el
1044 lugar donde antes estaba la indicación de compás.  Quizá esto es lo
1045 que queremos para un ejercicio en que el alumno deba escribirlo, pero
1046 en otras circunstancias esta separación podría no ser deseable.  En
1047 vez de eso, para quitarla, el stencil o «sello» de la indicación de
1048 compás se debe establecer al valor @code{#f}:
1049
1050 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
1051 {
1052   \time 12/16
1053   \override Staff.TimeSignature #'stencil = ##f
1054   c4 b8 c d16 c d8 |
1055   g, a16 b8 c d4 e16 |
1056   e8
1057 }
1058 @end lilypond
1059
1060 @noindent
1061 y la diferencia es obvia: al establecer el sello al valor @code{#f}
1062 quitamos el objeto por completo; al hacer el objeto @code{transparent}
1063 lo dejamos donde está, pero lo hacemos invisible.
1064
1065 @subheading color
1066 @cindex color, propiedad
1067
1068 PAra finalizar, podríamos hacer invisibles las barras de compás
1069 pintándolas de color blanco.  El interface @code{grob-interface}
1070 especifica que la propiedad del color es una lista, pero no hay
1071 ninguna explicación sobre lo que debe ir en esa lista.  La lista que
1072 requiere es realmente una lista de valores en unidades internas, pero
1073 para evitar tener que saber cuáles son, se ofrecen varias vías para la
1074 especificación de los colores.  La primera forma es utilizar uno de
1075 los colores @q{normales} que están relacionados en la primera tabla de
1076 la @ruser{List of colors}.  Para poner las líneas divisorias de color
1077 blanco, escribimos:
1078
1079 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
1080 {
1081   \time 12/16
1082   \override Staff.BarLine #'color = #white
1083   c4 b8 c d16 c d8 |
1084   g, a16 b8 c d4 e16 |
1085   e8
1086 }
1087 @end lilypond
1088
1089 @noindent
1090 y de nuevo podemos comprobar que las barras de compás no son visibles.
1091 Observe que @emph{white} no viene precedido de un apóstrofe: no es un
1092 símbolo, sino una @emph{función}.  Cuando se invoca, proporciona la
1093 lista de valores internos que se requieren para establecer el color a
1094 blanco.  Los otros colores de la lista normal también son funciones.
1095 Para convencerse de que esto funciona, quizá quiera cambiar el color a
1096 una de las otras funciones de la lista.
1097
1098 @cindex colores de X11
1099 @cindex X11, colores de
1100
1101 La segunda forma de cambiar el color es utilizar la lista de nombres
1102 de colores de X11 que aparecen en la segunda lista de @ruser{List of
1103 colors}.  Sin embargo, éstos deben ir precedidos de otra función, que
1104 convierte los nombres de colores de X11 en la lista de valores
1105 internos, @code{x11-color}, de la siguiente manera:
1106
1107 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
1108 {
1109   \time 12/16
1110   \override Staff.BarLine #'color = #(x11-color 'white)
1111   c4 b8 c d16 c d8 |
1112   g, a16 b8 c d4 e16 |
1113   e8
1114 }
1115 @end lilypond
1116
1117 @noindent
1118 Observe que en este caso la función @code{x11-color} toma un símbolo
1119 como argumento, así que el símbolo debe ir precedido de un apóstrofe y
1120 los dos deben ir entre paréntesis.
1121
1122 @cindex rgb, colores
1123 @cindex color, rgb
1124
1125 Aún hay una tercera función, que convierte valores RGB en colores
1126 internos: la función @code{rgb-color}.  Toma tres argumentos que dan
1127 las intensidades de rojo, verde y azul.  Cada uno de ellos puede tomar
1128 valores entre 0 y 1.  Por lo tanto, para establecer el color a rojo el
1129 valor debe ser @code{(rgb-color 1 0 0)} y para blanco debe ser
1130 @code{(rgb-color 1 1 1)}:
1131
1132 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
1133 {
1134   \time 12/16
1135   \override Staff.BarLine #'color = #(rgb-color 1 1 1)
1136   c4 b8 c d16 c d8 |
1137   g, a16 b8 c d4 e16 |
1138   e8
1139 }
1140 @end lilypond
1141
1142 Finalmente, existe también una escala de grises como parte del
1143 conjunto de colores de X11.  Varían desde el negro, @code{'grey0'},
1144 hsta el blanco, @code{'grey100}, en pasos de 1.  Vamos a ilustrar esto
1145 estableciendo todos los objetos de presentación de nuestro ejemplo a
1146 varias gradaciones de gris:
1147
1148 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
1149 {
1150   \time 12/16
1151   \override Staff.StaffSymbol   #'color = #(x11-color 'grey30)
1152   \override Staff.TimeSignature #'color = #(x11-color 'grey60)
1153   \override Staff.Clef          #'color = #(x11-color 'grey60)
1154   \override Voice.NoteHead      #'color = #(x11-color 'grey85)
1155   \override Voice.Stem          #'color = #(x11-color 'grey85)
1156   \override Staff.BarLine       #'color = #(x11-color 'grey10)
1157   c4 b8 c d16 c d8 |
1158   g, a16 b8 c d4 e16 |
1159   e8
1160 }
1161 @end lilypond
1162
1163 @noindent
1164 Observe los contextos asociados con cada uno de los objetos de
1165 presentación.  Es importante que estén correctamente escritos, o las
1166 instrucciones ¡no funcionarán!  Recuerde que el contexto es aquel en
1167 que se encuentra el grabador correspondiente.  El contesto
1168 predeterminado para los grabadores puede encontrarse empezando por el
1169 objeto de presentación, de ahí al grabador que lo produce, y en la
1170 página del grabador del RFI aparece en qué contexto se puede encontrar
1171 normalmente el grabador.
1172
1173
1174 @node Size of objects
1175 @subsection Size of objects
1176
1177 Empezaremos examinando de nuevo un ejemplo anterior (véase
1178 @ref{Nesting music expressions}) que nos mostraba cómo introducir un
1179 pentagrama temporal, como en un @rglos{ossia}.
1180
1181 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
1182 \new Staff ="main" {
1183        \relative g' {
1184          r4 g8 g c4 c8 d |
1185          e4 r8
1186          <<
1187            { f c c }
1188            \new Staff \with {
1189              alignAboveContext = "main" }
1190            { f8 f c }
1191          >>
1192          r4 |
1193        }
1194      }
1195 @end lilypond
1196
1197 Los fragmentos de Ossia se escriben normalmente sin clave ni compás, y
1198 por lo normal se imprimen más pequeños que el pentagrama principal.
1199 Ya sabemos cómo quitar la clave y el compás: simplemente establecemos
1200 el sello de cada uno de ellos a @code{#f}, como sigue:
1201
1202 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
1203 \new Staff ="main" {
1204   \relative g' {
1205     r4 g8 g c4 c8 d |
1206     e4 r8
1207     <<
1208       { f c c }
1209       \new Staff \with {
1210         alignAboveContext = "main" 
1211       }
1212       {
1213         \override Staff.Clef #'stencil = ##f
1214         \override Staff.TimeSignature #'stencil = ##f
1215         { f8 f c }
1216       }
1217     >>
1218     r4 |
1219   }
1220 }
1221 @end lilypond
1222
1223 @noindent
1224 donde el par de llaves adicional después de la cláusula @code{\with}
1225 es necesario para asegurar que la sobreescritura encerrada y la música
1226 se aplican al pentagrama de ossia.
1227
1228 Pero ¿cuál es la diferencia entre modificar el contexto de pentagrama
1229 usando @code{\with} y modificar los sellos de clave y de compás con
1230 \override?  La diferencia principal es que los cambios que se realizan
1231 enuna cláusula @code{\with} se hacen en el momento en que se crea el
1232 contexto, y permanecen activos como valores @strong{predeterminados}
1233 durante toda la duración de dicho contexto, mientras que las
1234 instrucciones @code{\set} o @code{\override} incluidas dentro de la
1235 música son dinámicas: hacen cambios sincronizados con un punto
1236 concreto de la música.  Si los cambios se deshacen o se devuelven
1237 mediante @code{\unset} o @code{\revert} volverán a su valor
1238 predeterminado que será el establecido en la cláusula @code{\with}, o
1239 si no se ha establecido ninguno en este lugar, los valores
1240 predeterminados normales.
1241
1242 Ciertas propiedades de contexto se pueden modificar solamente dentro
1243 de cláusulas @code{\with}.  Son aquellas propiedades que no se pueden
1244 cambiar después de que el contexto se ha creado.
1245 @code{alignAboveContext} y su compañero, @code{alignBelowContext}, son
1246 dos de tales propiedades: una vez que el pentagrama se ha creado, su
1247 alineación está decidida y no tendría sentido intentar cambiarla más
1248 tarde.
1249
1250 Los valores predeterminados de las propiedades de los objetos de
1251 presentación también se pueden establever dentro de cláusulas
1252 @code{\with}.  Simplemente utilice la instrucción @code{\override}
1253 normal dejando aparte el nombre del contextom ya que está definido sin
1254 ambigüedad como el contexto que la cláusula @code{\with} está
1255 modificando.  De hecho, se producirá un error si se especifica un
1256 contexto en este lugar.
1257
1258 Así pues, podemos reemplazar el ejemplo anterior con
1259
1260 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
1261 \new Staff ="main" {
1262   \relative g' {
1263     r4 g8 g c4 c8 d |
1264     e4 r8
1265     <<
1266       { f c c }
1267       \new Staff \with {
1268         alignAboveContext = "main" 
1269         % Don't print clefs in this staff
1270         \override Clef #'stencil = ##f
1271         % Don't print time signatures in this staff
1272         \override TimeSignature #'stencil = ##f
1273       }
1274         { f8 f c }
1275     >>
1276     r4 |
1277   }
1278 }
1279 @end lilypond
1280
1281 Finalmente llegamos a la forma de cambiar el tamaño de los objetos de
1282 presentación.
1283
1284 Ciertos objetos de presentación se crean como glifos sacados de una
1285 fuente tipográfica.  Entre ellos se encuentran las cabezas,
1286 alteraciones, elementos de marcado, claves, indicaciones de compás,
1287 indicaciones dinámicas y la letra de las canciones.  Su tamaño se
1288 cambia mediante la modificación de la propiedad @code{font-size}, como
1289 veremos en breve.  Otros objetos de presentación como ligaduras de
1290 unión y de expresión (en general, objetos de extensión) se trazan
1291 individualmente, por lo que no hay un tamaño de tipografía
1292 @code{font-size} asociado a ellos.  Estos objetos generalmente derivan
1293 su tamaño de los objetos a los que están adosados, y por ello
1294 normalmente no hay necesidad de cambiarles el tamaño manualmente.  Aún
1295 otras propiedades como la longitud de las plicas y las barras de
1296 compás, el grosor de las barras de corchea y otras líneas, y la
1297 separación de las líneas del pentagrama se deben modificar de otras
1298 formas especiales.
1299
1300 Volviendo al ejemplo del ossia, vamos a cambiar en primer lugar el
1301 tamaño de la tipografía.  Podemos hacerlo de dos formas.  Podemos
1302 cambiar el tamaño de las tipografías de cada uno de los tipos de
1303 objeto como las cabezas (@code{NoteHead}s) con instrucciones como
1304
1305 @example
1306 \override NoteHead #'font-size = #-2
1307 @end example
1308
1309 o podemos cambiar el tamaño de todas las tipografías estableciendo una
1310 propiedad especial, @code{fontSize}, utilizando @code{\set}, o
1311 mediante su inclusión dentro de una cláusula @code{\with} (pero sin el
1312 @code{\set}).
1313
1314 @example
1315 \set fontSize = #-2
1316 @end example
1317
1318 Los dos enunciados producirían una reducción del tamaño de la
1319 tipografía en dos pasos a partir de su valor previo, donde cada paso
1320 reduce o aumenta el tamaño aproximadamente en un 12%.
1321
1322 Vamos a probarlo en nuestro ejemplo del ossia:
1323
1324 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
1325 \new Staff ="main" {
1326   \relative g' {
1327     r4 g8 g c4 c8 d |
1328     e4 r8
1329     <<
1330       { f c c }
1331       \new Staff \with {
1332         alignAboveContext = "main" 
1333         \override Clef #'stencil = ##f
1334         \override TimeSignature #'stencil = ##f
1335         % Reduce all font sizes by ~24%
1336         fontSize = #-2
1337       }
1338         { f8 f c }
1339     >>
1340     r4 |
1341   }
1342 }
1343 @end lilypond
1344
1345 Aún no está demasiado bien.  Las cabezas y los corchetes de las notas
1346 son más pequeños, pero las plicas son demasiado largas en proporción,
1347 y las líneas del pentagrama están demasiado separadas entre sí.  Se
1348 debe reducir su escala en proporción a la reducción de la tipografía.
1349 El siguiente apartado trata sobre cómo se hace esto.
1350
1351 @node Length and thickness of objects
1352 @subsection Length and thickness of objects
1353
1354 @cindex distancias
1355 @cindex grosor
1356 @cindex longitud
1357 @cindex magstep
1358 @cindex tamaño, cambiar
1359 @cindex plica, cambiar la longitud
1360 @cindex pentagrama, cambiar la separación de las líneas
1361
1362 Las distancias y longitudes en LilyPond se miden generalmente en
1363 espacios de pentagrama, la distancia entre líneas adyacentes de la
1364 pauta (o de manera ocasional medios espacios), mientras que la mayoría
1365 de las propiedades de @code{thickness} (grosor) se miden en unidades
1366 de una propiedad interna llamada @code{line-thickness.}  Por ejemplo,
1367 de forma predeterminada, a las líneas de los reguladores se les da un
1368 grosor de 1 unidad de @code{line-thickness}, mientras que el
1369 @code{thickness} de una plica es 1.3.  Observe sin embargo que ciertas
1370 propiedades de grosor son diferentes; por ejemplo, el grosor de las
1371 barras de corchea se mide en espacios de pentagrama.
1372
1373 Entonces ¿cómo se tienen que escalar las longitudes en proporción al
1374 tamaño de la tipografía?  Se puede hacer con la ayuda de una función
1375 especial que se llama @code{magstep}, pensada especialmente para este
1376 propósito.  Toma un argumento, el cambio de tamaño de la tipografía
1377 (#-2 en nuestro ejemplo) y devuelve un factor de escalado adecuado
1378 para reducir otros objetos en la misma proporción.  Se usa de la
1379 siguiente forma:
1380
1381 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
1382 \new Staff ="main" {
1383   \relative g' {
1384     r4 g8 g c4 c8 d |
1385     e4 r8
1386     <<
1387       { f c c }
1388       \new Staff \with {
1389         alignAboveContext = "main" 
1390         \override Clef #'stencil = ##f
1391         \override TimeSignature #'stencil = ##f
1392         fontSize = #-2
1393         % Reduce stem length and line spacing to match
1394         \override StaffSymbol #'staff-space = #(magstep -2)
1395       }
1396         { f8 f c }
1397     >>
1398     r4 |
1399   }
1400 }
1401 @end lilypond
1402
1403 @noindent
1404 Puesto que la longitud de las plicas y muchas otras propiedades
1405 relacionadas con la longitudse calculan siempre con relación al valor
1406 de la propiedad @code{staff-space}, su longitud también ve reducida su
1407 escala automáticamente.  Observe que esto afecta solamente a la escala
1408 vertical del ossia: la escala horizontal se determina por medio de la
1409 disposición de la música principal con el objeto de mantenerse en
1410 sincronía con ella, de forma que no resulte afectada por ninguno de
1411 estos cambios de tamaño.  Por supuesto, si la escala de toda la música
1412 principal se cambiase de esta forma, entonces el espaciado horizontal
1413 se vería afectado.  Trataremos de esto más tarde en la sección sobre
1414 la disposición.
1415
1416 Esto, en fin, completa la creación de un ossia.  Los tamaños y
1417 longitudes del resto de los objetos se pueden modificar de manera
1418 análoga.
1419
1420 Para cambios de escala pequeños, como en el ejemplo de arriba, el
1421 grosor de las diversas líneas dibujadas como divisorias, barras de
1422 corchea, reguladores, ligaduras, etc, no requieren normalmente ningún
1423 ajuste global.  Si el grosor de cualquier objeto de presentación en
1424 particular necesita ajustarse, se puede hacer mejor mediante la
1425 sobreescritura de su propiedad @code{thickness}.  Anteriormente
1426 mostramos un ejemplo de cambio de grosor en las ligaduras, en
1427 @ref{Properties of layout objects}.  El grosor de todos los objetos
1428 trazados (es decir, aquellos que no se producen a partir de una
1429 tipografía) se pueden cambiar de la misma forma.
1430
1431
1432 @node Collisions of objects
1433 @section Collisions of objects
1434
1435 @menu
1436 * Moving objects::
1437 * Fixing overlapping notation::
1438 * Real music example::
1439 @end menu
1440
1441 @node Moving objects
1442 @subsection Moving objects
1443
1444 Aunque pueda sorprenderle, LilyPond no es perfecto.  Ciertos elementos
1445 de notación se pueden superponer, lo que es una lástima, pero en casi
1446 todos los casos se resuelve fácilmente.
1447
1448 @c  FIXME: find a better example for 5.1 Moving Objects.  -gp
1449 @c  yes, I want this TODO to be visible to end-users.  It's better
1450 @c  than having nothing at all.
1451 HACER: con las nuevas funcionalidades de espaciado en la versión 2.12, estos ejemplos específicos
1452 ya no son de relevancia.  Sin embargo siguen demostrando las poderosas funcionalidades de lilypond,
1453 así que quedan aquí hasta que alguien elabore unos ejemplos mejores.
1454
1455 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
1456   % temporary code to break this example:
1457   \override TextScript #'outside-staff-priority = ##f
1458 e4^\markup{ \italic ritenuto } g b e
1459 @end lilypond
1460
1461 @cindex padding
1462
1463 La solución más fácil es aumentar la distancia entre el objeto
1464 (texto en este caso, pero muy bien podrían ser digitaciones o dinámicas)
1465 y la nota.  En LilyPond, esto se llama la propiedad
1466 @code{padding} (relleno); se mide en espacios de pentagrama.  Para la mayor
1467 parte de los objetos, este valor ronda la cantidad de 1.0 o menos (varía dependiendo del
1468 objeto). Queremos aumentarlo, así que probaremos el valor 1.5
1469
1470 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
1471   % temporary code to break this example:
1472   \override TextScript #'outside-staff-priority = ##f
1473 \once \override TextScript #'padding = #1.5
1474 e4^\markup{ \italic ritenuto } g b e
1475 @end lilypond
1476
1477 Esto tiene un mejor aspecto, pero no es suficiente.  Después de probar
1478 con algunos valores, creemos que 2.3 es el mejor número en este caso. Sin embargo
1479 esta cantidad es el mero resultado del ensayo y error y de mi gusto personal
1480 acerca de la notación.  Pruebe el ejemplo anterior con 2.3... pero también con otros valores 
1481 mayores (y menores).  ¿Cuál cree que queda mejor?
1482
1483 La propiedad @code{staff-padding} (relleno de pentagrama) está estrechamente relacionada.
1484 @code{padding} controla la cantidad de espacio mínima entre un objeto y el objeto más cercano
1485 (generalmente la nota o las líneas del pentagrama);
1486 @code{staff-padding} controla la cantidad mínima de espacio entre un
1487 objeto y el pentagrama.  Ello supone una sutil diferencia, pero podrá 
1488 observar el comportamiento a continuación.
1489
1490 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
1491   % temporary code to break this example:
1492   \override TextScript #'outside-staff-priority = ##f
1493 c4^"piu mosso" b a b
1494 \once \override TextScript #'padding = #4.6
1495 c4^"piu mosso" d e f
1496 \once \override TextScript #'staff-padding = #4.6
1497 c4^"piu mosso" fis a g
1498 \break
1499 c'4^"piu mosso" b a b
1500 \once \override TextScript #'padding = #4.6
1501 c4^"piu mosso" d e f
1502 \once \override TextScript #'staff-padding = #4.6
1503 c4^"piu mosso" fis a g
1504 @end lilypond
1505
1506 @cindex desplazamiento adicional
1507
1508 Otra solución nos proporciona un control absoluto sobre la situación del objeto: podemos
1509 moverlo horizontal o verticalmente.  Se hace con la propiedad
1510 @code{extra-offset} (desplazamiento adicional).  Es ligeramente más complicado y puede
1511 causar otros problemas.  Cuando movemos objetos con @code{extra-offset},
1512 el movimiento se hace después de que LilyPond haya colocado todos los demás objetos.
1513 Esto significa
1514 que el resultado podría entrar en conflicto con otros objetos.
1515
1516 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
1517   % temporary code to break this example:
1518   \override TextScript #'outside-staff-priority = ##f
1519 \once \override TextScript #'extra-offset = #'( 1.0 . -1.0 )
1520 e4^\markup{ \italic ritenuto } g b e
1521 @end lilypond
1522
1523 Con @code{extra-offset}, el primer número controla el movimiento
1524 horizontal (negativo hacia la izquierda); el segundo número controla el movimiento
1525 vertical (positivo hacia arriba).  Después de algunos ensayos, hemos decidido que los siguientes valores
1526 son apropiados
1527
1528 @lilypond[quote,fragment,ragged-right,verbatim,relative=2]
1529   % temporary code to break this example:
1530   \override TextScript #'outside-staff-priority = ##f
1531 \once \override TextScript #'extra-offset = #'( -1.6 . 1.0 )
1532 e4^\markup{ \italic ritenuto } g b e
1533 @end lilypond
1534
1535 @noindent
1536 Una vez más, estos números son simplemente el resultado de algunos experimentos y
1537 de observar la salida.  Quizá prefiera que el texto se encuentre algo más arriba,
1538 o a la izquierda, o en cualquier dirección.  ¡Pruébelo y observe el resultado!
1539
1540 Una advertencia final: en esta sección hemos usado
1541
1542 @example
1543 \once \override TextScript @dots{}
1544 @end example
1545
1546 Esto altera la presentación del texto para la nota siguiente.  Si la nota no
1547 tiene ningún texto, este truco no hace nada (y @strong{no} se queda esperando al
1548 siguiente fragmento de texto).  Para cambiar el comportamiento permanentemente a partir
1549 del comando, omita el @code{\once}.  Para detener este truco, use
1550 @code{\revert} (revertir).  Todo esto se explica en profundidad en
1551 @ruser{The \override command}.
1552
1553 @lilypond[quote,fragment,ragged-right,verbatim,relative=3]
1554   % temporary code to break this example:
1555   \override TextScript #'outside-staff-priority = ##f
1556 c4^"piu mosso" b
1557 \once \override TextScript #'padding = #4.6
1558   a4 b
1559 c4^"piu mosso" d e f
1560 \once \override TextScript #'padding = #4.6
1561 c4^"piu mosso" d e f
1562 c4^"piu mosso" d e f
1563 \break
1564 \override TextScript #'padding = #4.6
1565 c4^"piu mosso" d e f
1566 c4^"piu mosso" d e f
1567 \revert TextScript #'padding
1568 c4^"piu mosso" d e f
1569 @end lilypond
1570
1571 @seealso
1572
1573 En el presente manual: @ruser{The \override command}, @ruser{Common tweaks}.
1574
1575
1576 @node Fixing overlapping notation
1577 @subsection Fixing overlapping notation
1578
1579 En @ruser{Moving objects}, pudimos ver cómo mover un objeto @code{TextScript}.
1580 El mismo mecanismo se puede usar para mover otros tipos de
1581 objetos; simplemente sustituya @code{TextScript} con el nombre de
1582 otro objeto.
1583
1584 Para encontrar el nombre del objeto, consulte la sección @q{@strong{véase también}} al
1585 final de la página relevante dentro de la documentación.  Por ejemplo, al
1586 final de @ruser{Dynamics}, vemos
1587
1588 @quotation
1589 @seealso
1590
1591 Referencia del programa: @internalsref{DynamicText}, @internalsref{Hairpin}.
1592 La posición vertical de estos símbolos se maneja por medio de
1593 @internalsref{DynamicLineSpanner}.
1594 @end quotation
1595
1596 @noindent
1597 Así que para mover expresiones dinámicas verticalmente, usamos
1598
1599 @example
1600 \override DynamicLineSpanner #'padding = #2.0
1601 @end example
1602
1603 No podemos listar todos y cada uno de los objetos, pero presentamos a continuación una lista
1604 de los objetos más comunes.
1605
1606 @multitable @columnfractions .33 .66
1607 @headitem Tipo de objeto                        @tab Nombre del objeto
1608 @item Expresiones dinámicas (verticalmente)     @tab @code{DynamicLineSpanner}
1609 @item Expresiones dinámicas (horizontalmente)   @tab @code{DynamicText}
1610 @item Ligaduras de unión                        @tab @code{Tie}
1611 @item Ligaduras de expresión                    @tab @code{Slur}
1612 @item Articulaciones                            @tab @code{Script}
1613 @item Digitaciones                              @tab @code{Fingering}
1614 @item Texto, p.ej. @code{^"text"}               @tab @code{TextScript}
1615 @item Llamadas de ensayo o marcas de texto      @tab @code{RehearsalMark}
1616 @end multitable
1617
1618 @node Real music example
1619 @subsection Real music example
1620
1621 UNTRANSLATED NODE: IGNORE ME
1622
1623 @node Common tweaks
1624 @section Common tweaks
1625
1626 Algunas sustituciones son tan comunes que se proporcionan comandos preestablecidos
1627 como atajos, como @code{\slurUp} (ligadura hacia arriba) y @code{\stemDown} (plica hacia abajo).  Estos
1628 comandos se describen dentro de la Referencia de Notación bajo las secciones
1629 correspondientes.
1630
1631 La lista completa de modificaciones disponibles para cada tipo de
1632 objeto (como ligaduras o barras de corchea) están documentadas en la Referencia del
1633 Programa.  Sin embargo, muchos objetos de la presentación comparten propiedades que se pueden
1634 usar para aplicar trucos genéricos.
1635
1636 @itemize @bullet
1637
1638 @cindex relleno
1639
1640 @item
1641 La propiedad @code{padding} (relleno) se puede establecer de forma que incremente
1642 (o disminuya) la distancia entre símbolos que se imprimen encima
1643 o debajo de las notas.  Se aplica a todos los objetos con
1644 @code{side-position-interface}.
1645
1646 @lilypond[quote,fragment,relative=1,verbatim]
1647 c2\fermata
1648 \override Script #'padding = #3
1649 b2\fermata
1650 @end lilypond
1651
1652 @lilypond[quote,fragment,relative=1,verbatim]
1653 % This will not work, see below:
1654 \override MetronomeMark #'padding = #3
1655 \tempo 4=120
1656 c1
1657 % This works:
1658 \override Score.MetronomeMark #'padding = #3
1659 \tempo 4=80
1660 d1
1661 @end lilypond
1662
1663 Observe en el segundo ejemplo cuán importante es determinar qué contexto
1664 maneja un objeto determinado.  Debido a que el objeto @code{MetronomeMark} (indicación metronómica)
1665 se maneja en el contexto @code{Score}, los cambios de propiedades dentro del
1666 contexto @code{Voice} no se tendrán en cuenta.  Para ver más detalles, consulte
1667 @ruser{Constructing a tweak}.
1668
1669 @cindex extra-offset (desplazamiento adicional)
1670
1671 @item
1672 La propiedad @code{extra-offset} mueve objetos en la salida;
1673 requiere una pareja de números.  El primer número
1674 controla el movimiento horizontal, un número positivo moverá
1675 el objeto hacia la derecha.  El segundo número controla el movimiento
1676 vertical; un número positivo lo desplazará hacia arriba.  La
1677 propiedad @code{extra-offset} es una funcionalidad de bajo nivel: el motor
1678 de formateo es completamente olvidadizo respecto de estos desplazamientos.
1679
1680 En el ejemplo siguiente, la segunda digitación se desplaza un poco hacia
1681 la izquierda y 1.8 espacios de pentagrama hacia abajo:
1682
1683 @lilypond[quote,fragment,relative=1,verbatim]
1684 \stemUp
1685 f-5
1686 \once \override Fingering
1687     #'extra-offset = #'(-0.3 . -1.8)
1688 f-5
1689 @end lilypond
1690
1691 @item
1692 El establecimiento de la propiedad @code{transparent} provocará que un objeto se imprima
1693 con @q{tinta invisible}: el objeto no se imprime, pero se conserva todo el resto
1694 de su comportamiento.  El objeto aún ocupa un espacio, toma parte en las colisiones,
1695 y se le pueden adjuntar ligaduras de unión o de expresión y barras de corchea.
1696
1697 @cindex objetos transparentes
1698 @cindex quitar objetos
1699 @cindex ocultar objetos
1700 @cindex objetos invisibles
1701 El ejemplo siguiente demuestra cómo conectar distintas voces
1702 utilizando ligaduras.  Normalmente las ligaduras sólo unen dos notas de la misma voz.
1703 Al introducir una ligadura en una voz distinta,
1704
1705 @lilypond[quote,fragment,relative=2]
1706 << {
1707   b8~ b8\noBeam
1708 } \\ {
1709   b[ g8]
1710 } >>
1711 @end lilypond
1712
1713 @noindent
1714 y suprimiendo la primera plica hacia arriba en dicha voz, la ligadura parece cruzarse de una
1715 voz a otra:
1716
1717
1718 @lilypond[quote,fragment,relative=2,verbatim]
1719 << {
1720   \once \override Stem #'transparent = ##t
1721   b8~ b8\noBeam
1722 } \\ {
1723   b[ g8]
1724 } >>
1725 @end lilypond
1726
1727 Para asegurarse de que la plica que hemos suprimido no aprieta demasiado a la
1728 ligadura, también alargamos la plica, estableciendo su @code{length} (longitud) a
1729 @code{8},
1730
1731 @lilypond[quote,fragment,relative=2,verbatim]
1732 << {
1733   \once \override Stem #'transparent = ##t
1734   \once \override Stem #'length = #8
1735   b8~ b8\noBeam
1736 } \\ {
1737   b[ g8]
1738 } >>
1739 @end lilypond
1740
1741 @end itemize
1742
1743 @cindex Trucos, distancias
1744 @cindex Distancias
1745
1746 Las distancias en LilyPond se miden en espacios de pentagrama, mientras que
1747 las propiedades de grosor se miden en grosores de líneas de pentagrama.  Algunas
1748 propiedades son diferentes; por ejemplo, el grosor de las barras de corchea
1749 se mide en espacios de pentagrama.  Para más información, consulte la porción
1750 correspondiente de la referencia del programa.
1751
1752
1753
1754 @node Default files
1755 @section Default files
1756
1757 La documentación de la Referencia del Programa contiene una gran cantidad de información
1758 sobre LilyPond, pero más información aún se puede obtener a partir de la observación
1759 de los archivos internos de LilyPond.
1760
1761 Algunos ajustes por omisión como las definiciones de las
1762 @code{\header@{@}}s (encabezamientos) están almacenados en archivos @code{.ly}.
1763 Otros ajustes como las definiciones de los comandos de marcado se almacenan
1764 como archivos @code{.scm} (de Scheme).  Cae fuera del ámbito de presente manual
1765 cualquier explicación más profunda; los usuarios están advertidos de que se necesita
1766 una considerable cantidad de conocimientos técnicos
1767 para comprender estos archivos.
1768
1769 @itemize @bullet
1770
1771 @item Linux: @file{@var{directorio_de_instalación}/lilypond/usr/share/lilypond/current/}
1772
1773 @item OSX:
1774 @file{@var{carpeta_de_instalación}/LilyPond.app/Contents/Resources/share/lilypond/current/}.
1775 Para llegar aquí, o bien entre con @code{cd} en este directorio desde el
1776 Terminal, o haga control-clic sobre la aplicación LilyPond y elija
1777 @q{Mostrar el Contenido del Paquete}.
1778
1779 @item Windows: @file{@var{carpeta_de_instalación}/LilyPond/usr/share/lilypond/current/}
1780
1781 @end itemize
1782
1783 Los directorios @file{ly/} y @file{scm/} son de especial interés.
1784 Archivos como @file{ly/property-init.ly} y
1785 @file{ly/declarations-init.ly} definen todos los trucos comunes.
1786
1787
1788 @node Fitting music onto fewer pages
1789 @section Fitting music onto fewer pages
1790
1791 A veces puede acabar con uno o dos pentagramas en una segunda página
1792 (o tercera, o cuarta...).  Es fastidioso sobre todo si observa las
1793 páginas anteriores y parece haber
1794 espacio suficiente en ellas.
1795
1796 Al investigar asuntos relacionados con la presentación, la herramienta
1797 @code{annotate-spacing} (anotar el espaciado) no tiene precio.
1798 Este comando imprime los valores de algunos comandos de espaciado;
1799 consulte @ruser{Displaying spacing} para ver más detalles.  A partir de
1800 la salida de de @code{annotate-spacing}, podemos ver qué márgenes podríamos desear alterar.
1801
1802 Aparte de los márgenes, existen otras opciones para ahorrar espacio:
1803
1804 @itemize
1805 @item
1806 Puede indicarle a LilyPond que coloque los sistemas tan juntos como sea
1807 posible (para que quepan tantos sistemas como sea posible sobre una página),
1808 pero luego separar estos sistemas para que no haya ningún espacio vacío
1809 al final de la página.
1810
1811 @example
1812 \paper @{
1813   between-system-padding = #0.1
1814   between-system-space = #0.1
1815   ragged-last-bottom = ##f
1816   ragged-bottom = ##f
1817 @}
1818 @end example
1819
1820 @item
1821 Puede forzar el número de sistemas (es decir, si LilyPond quiere
1822 tipografiar la música con 11 sistemas, puede forzarlo 
1823 para que use 10).
1824
1825 @example
1826 \paper @{
1827   system-count = #10
1828 @}
1829 @end example
1830
1831 @item
1832 Evite (o reduzca) el uso de objetos que aumenten el tamaño
1833 vertical de un sistema.  Por ejemplo, las repeticiones con
1834 primera y segunda vez necesitan espacio adicional.  Si
1835 estas repeticiones abarcan dos sistemas, ocuparán más espacio
1836 que un solo sistema con las repeticiones y otro sistema sin ellas.
1837
1838 Otro ejemplo es desplazar las expresiones dinámicas que se
1839 @q{asoman por encima} de un sistema.
1840
1841 @lilypond[verbatim,quote,fragment]
1842 \relative c' {
1843   e4 c g\f c
1844   \override DynamicLineSpanner #'padding = #-1.8
1845   \override DynamicText #'extra-offset = #'( -2.1 . 0)
1846   e4 c g\f c
1847 }
1848 @end lilypond
1849
1850 @item
1851 Altere el espaciado horizontal por medio de @code{SpacingSpanner}.  Consulte
1852 @ruser{Changing horizontal spacing} para ver más detalles.
1853
1854 @lilypond[verbatim,quote]
1855 \score {
1856   \relative c'' {
1857     g4 e e2 | f4 d d2 | c4 d e f | g4 g g2 |
1858     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
1859     d4 d d d | d4 e f2 | e4 e e e | e4 f g2 |
1860     g4 e e2 | f4 d d2 | c4 e g g | c,1 |
1861   }
1862   \layout {
1863     \context {
1864       \Score
1865       \override SpacingSpanner
1866                 #'base-shortest-duration = #(ly:make-moment 1 4)
1867     }
1868   }
1869 }
1870 @end lilypond
1871
1872 @end itemize
1873
1874 @node Avoiding tweaks with slower processing
1875 @section Avoiding tweaks with slower processing
1876
1877 LilyPond puede llevar a cabo comprobaciones adicionales al tiempo que
1878 procesa los archivos.  Estos comandos consumen tiempo, pero el
1879 resultado puede necesitar menos trucos manuales.
1880
1881 @example
1882 %%  asegura que las marcas de texto y letras de las canciones se encuentran dentro de los márgenes de la página
1883 \override Score.PaperColumn #'keep-inside-line = ##t 
1884 @end example
1885
1886 @node Advanced tweaks with Scheme
1887 @section Advanced tweaks with Scheme
1888
1889 Hemos visto cómo la salida de LilyPond se puede modificar de manera muy profunda utilizando
1890 comandos como
1891 @code{\override TextScript #'extra-offset = ( 1 . -1)}.  Pero
1892 tenemos un potencial incluso mayor si utilizamos Scheme.  Para ver una explicación completa
1893 de esto, consulte el @ruser{Scheme tutorial} e
1894 @ruser{Interfaces for programmers}.
1895
1896 Podemos usar Scheme simplemente para sobreponer (@code{\override}) comandos,
1897
1898 @lilypond[quote,verbatim,ragged-right]
1899 padText = #(define-music-function (parser location padding) (number?)
1900 #{
1901   \once \override TextScript #'padding = #$padding
1902 #})
1903
1904 \relative c''' {
1905   c4^"piu mosso" b a b
1906   \padText #1.8
1907   c4^"piu mosso" d e f
1908   \padText #2.6
1909   c4^"piu mosso" fis a g
1910 }
1911 @end lilypond
1912
1913 Podemos usarlo para crear comandos nuevos,
1914
1915 @lilypond[quote,verbatim,ragged-right]
1916 tempoMark = #(define-music-function (parser location padding marktext)
1917                                     (number? string?)
1918 #{
1919   \once \override Score . RehearsalMark #'padding = $padding
1920   \once \override Score . RehearsalMark #'extra-spacing-width = #'(+inf.0 . -inf.0)
1921   \mark \markup { \bold $marktext }
1922 #})
1923
1924 \relative c'' {
1925   c2 e
1926   \tempoMark #3.0 #"Allegro"
1927   g c
1928 }
1929 @end lilypond
1930
1931 E incluso se le pueden pasar expresiones musicales.
1932
1933 @lilypond[quote,verbatim,ragged-right]
1934 pattern = #(define-music-function (parser location x y) (ly:music? ly:music?)
1935 #{
1936   $x e8 a b $y b a e
1937 #})
1938
1939 \relative c''{
1940   \pattern c8 c8\f
1941   \pattern {d16 dis} { ais16-> b\p }
1942 }
1943 @end lilypond
1944
1945
1946
1947
1948