]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/es/usage/running.itely
Merge branch 'master' into lilypond/translation
[lilypond.git] / Documentation / es / usage / running.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
2
3 @ignore
4     Translation of GIT committish: 7ae1e99ff67432c96faf743bc28ac7b90a47a852
5
6     When revising a translation, copy the HEAD committish of the
7     version that you are working on.  For details, see the Contributors'
8     Guide, node Updating translation committishes..
9 @end ignore
10
11 @c \version "2.14.0"
12
13
14 @node Ejecutar LilyPond
15 @chapter Ejecutar LilyPond
16 @translationof Running LilyPond
17
18 Este capítulo detalla los aspectos técnicos de la ejecución de
19 LilyPond.
20
21 @menu
22 * Utilización normal::
23 * Utilización desde la línea de órdenes::
24 * Mensajes de error::
25 * Errores comunes::
26 @end menu
27
28
29 @node Utilización normal
30 @section Utilización normal
31 @translationof Normal usage
32
33 Casi todos los usuarios ejecutan LilyPond por medio de un interfaz
34 gráfico; consulte @rlearning{Primeros pasos} si no lo ha leído aún.
35
36
37 @node Utilización desde la línea de órdenes
38 @section Utilización desde la línea de órdenes
39 @translationof Command-line usage
40
41 Esta sección contiene información adicional sobre el uso de LilyPond
42 en la línea de órdenes.  Esta forma puede ser preferible para pasarle
43 al programa algunas opciones adicionales.  Además, existen algunos
44 programas complementarios @q{de apoyo} (como @code{midi2ly}) que sólo
45 están disponibles en la línea de órdenes.
46
47 Al hablar de la @q{línea de órdenes}, nos referimos a la consola del
48 sistema operativo.  Los usuarios de Windows posiblemente estén más
49 familiarizados con los términos @q{ventana de MS-DOS} o @q{línea de
50 comandos}; Los usuarios de MacOS@tie{}X puede que estén más
51 familiarizados con los términos @q{terminal} o @q{consola}.  Éstos
52 podrían requerir algunas configuraciones adicionales y deberían
53 consultar también el apartado @rweb{MacOS X}.
54
55 La descripción del uso de esta parte de los sistemas operativos se
56 sale del ámbito de este manual; le rogamos que consulte otros
57 documentos sobre este tema si no le resulta familiar la línea de
58 órdenes.
59
60 @menu
61 * Invocar a LilyPond::
62 * Opciones de la línea de órdenes para lilypond::
63 * Variables de entorno::
64 * LilyPond en una jaula de chroot::
65 @end menu
66
67 @node Invocar a LilyPond
68 @unnumberedsubsec Invocar @command{lilypond}
69 @translationof Invoking lilypond
70
71 El ejecutable @command{lilypond} se puede llamar desde la línea de
72 órdenes de la siguiente manera:
73
74 @example
75 lilypond [@var{opción}]@dots{} @var{archivo}@dots{}
76 @end example
77
78 Cuando se invoca con un nombre de archivo sin extensión, se prueba en
79 primer lugar con la extensión @file{.ly}.  Para leer la entrada desde
80 stdin, utilice un guión (@code{-}) en sustitución de @var{archivo}.
81
82 Cuando se procesa @file{archivo.ly}, la salida resultante son los
83 archivos @file{archivo.ps} y @file{archivo.pdf}.  Se pueden
84 especificar varios archivos; cada uno de ellos se procesará de forma
85 independiente@footnote{El estado de GUILE no se restablece después de
86 procesar un archivo @code{.ly}, por lo que debe tener cuidado de no
87 modificar ningún valor predeterminado desde dentro de Scheme.}.
88
89 Si @file{archivo.ly} contiene más de un bloque @code{\score}, el resto
90 de las partituras se obtendrán como salida en archivos numerados,
91 empezando por @file{archivo-1.pdf}.  además, el valor de
92 @code{output-suffix} (sufijo de salida) se insertará entre el nombre
93 base y el número.  Un archivo de entrada que contenga
94
95 @example
96 #(define output-suffix "violin")
97 \score @{ @dots{} @}
98 #(define output-suffix "cello")
99 \score @{ @dots{} @}
100 @end example
101
102 @noindent
103 producirá como salida @var{base}@file{-violin.pdf} y
104 @var{base}@file{-cello-1.pdf}.
105
106
107 @unnumberedsubsubsec Instrucciones estándar de la línea de órdenes
108
109 Si su terminal (o ventana de órdenes) contempla las redirecciones
110 normales, quizá le sean de utilidad las siguientes instrucciones para
111 redirigir la salida de la consola a un archivo:
112
113 @itemize
114
115 @item
116 @code{lilypond archivo.ly 1>salidaestandar.log} para redirigir la salida normal
117
118 @item
119 @code{lilypond archivo.ly 2>salidadeerror.log} para redirigir los mensajes de error
120
121 @item
122 @code{lilypond archivo.ly &>todo.log} para redirigir toda la salida
123
124 @end itemize
125
126 Consulte la documentación de su shell para ver si contempla estas
127 opciones, o si la sintaxis es distinta.  Observe que son instrucciones
128 del shell y que no tienen nada que ver con lilypond.
129
130 @node Opciones de la línea de órdenes para lilypond
131 @unnumberedsubsec Opciones de la línea de órdenes para @command{lilypond}
132 @translationof Command line options for lilypond
133
134 @cindex invocación de @command{lilypond}
135 @cindex opciones de la línea de órdenes para @command{lilypond}
136 @cindex línea de órdenes, opciones de
137 @cindex modificadores
138
139 Están contempladas las siguientes opciones:
140
141 @table @code
142
143 @item -e,--evaluate=@var{expresión}
144 Evaluar la @var{expresión} de Scheme antes de analizar los archivos
145 @file{.ly}.  Se pueden pasar varias opciones @option{-e}, que se
146 evaluarán en secuencia.
147
148 La expresión se evaluará en el módulo @code{guile-user}, de manera que
149 si quiere usar definiciones dentro de @var{expresión}, debe utilizar
150
151 @example
152 lilypond -e '(define-public a 42)'
153 @end example
154
155 @noindent
156 en la línea de órdenes, e incluir
157
158 @example
159 #(use-modules (guile-user))
160 @end example
161
162 @noindent
163 al principio del archivo @file{.ly}.
164
165 @item -f,--format=@var{formato}
166 Formato de la salida.  Como @code{formato} se puede elegir entre
167 @code{ps}, @code{pdf} y @code{png}.
168
169 Ejemplo: @code{lilypond -fpng @var{archivo}.ly}
170
171 @item -d,--define-default=@var{variable}=@var{valor}
172 Establece la opción interna del programa @var{variable} al valor de
173 Scheme @var{valor}.  Si no se proporciona ningún @var{valor}, se usa
174 @var{#t}.  Para desactivar una opción se puede anteponer @code{no-} a
175 la @var{variable}, p.ej.:
176
177 @cindex apuntar y pulsar, línea de órdenes
178
179 @example
180 -dno-point-and-click
181 @end example
182
183 @noindent
184 es lo mismo que
185 @example
186 -dpoint-and-click='#f'
187 @end example
188
189 A continuación veremos algunas opciones interesantes.
190
191 @cindex help (ayuda), línea de órdenes
192
193 @table @samp
194 @item help
195 La ejecución de @code{lilypond -dhelp} imprimirá todas las opciones
196 @option{-d} que están disponibles.
197
198 @cindex paper-size, línea de órdenes
199
200 @item paper-size
201 Esta opción establece el tamaño predeterminado del papel,
202 @example
203 -dpaper-size=\"letter\"
204 @end example
205
206 @noindent
207 Observe que la cadena se debe incluir dentro de comillas escapadas
208 ( @code{\"} ).
209
210 @c Match " in previous line to help context-sensitive editors
211
212 @cindex safe, línea de órdenes
213
214 @item safe
215 No confiar en la entrada @file{.ly}.
216
217 Cuando el proceso de tipografía de LilyPond se encuentra disponible a
218 través de un servidor web, @b{SE DEBEN} pasar las opciones
219 @option{--safe} (seguro) o @option{--jail} (jaula).  La opción
220 @option{--safe} evita que el código de Scheme en línea arme un desastre,
221 por ejemplo
222
223 @quotation
224 @verbatim
225 #(system "rm -rf /")
226 {
227   c4^#(ly:export (ly:gulp-file "/etc/passwd"))
228 }
229 @end verbatim
230 @end quotation
231
232 La opción @option{-dsafe} funciona evaluando las expresiones en línea de
233 Scheme dentro de un módulo especial seguro.  Este módulo seguro deriva
234 del módulo GUILE @file{safe-r5rs}, pero añade ciertas funciones del
235 API de LilyPond.  Estas funciones se relacionan en
236 @file{scm/safe-lily.scm}.
237
238 Además, el modo seguro prohíbe las directivas @code{\include} e
239 inhabilita el uso de barras invertidas en las cadenas de @TeX{}.
240
241 En el modo seguro, no es posible la importación de variables de
242 LilyPond dentro de Scheme.
243
244 @option{-dsafe} @emph{no} detecta la sobreutilización de recursos.  Aún
245 es posible hacer que el programa se cuelgue indefinidamente, por
246 ejemplo alimentando el backend con estructuras de datos cíclicas.  Por
247 tanto, si se está utilizando LilyPond sobre un servidor web accesible
248 públicamente, el proceso debe limitarse tanto en el uso de CPU como de
249 memoria.
250
251 El modo seguro impide que muchos fragmentos útiles de código de
252 LilyPond se puedan compilar.  La opción @option{--jail} es una
253 alternativa más segura, pero su preparación requiere más trabajo.
254
255 @cindex salida, establecer el formato de
256 @item backend
257 el formato de salida que usar para el back-end o extremo final.
258 Para el @code{formato} se puede elegir entre
259 @table @code
260 @item ps
261 @cindex PostScript, salida
262 para PostScript.
263
264 Los archivos PostScript incluyen las tipografías TTF, Type1 y OTF.  No
265 se seleccionan subconjuntos de estas tipografías.  Cuando se usan
266 conjuntos de caracteres orientales, esto puede dar lugar a archivos
267 enormes.
268
269 @item eps
270  para obtener PostScript encapsulado.  Esto vuelca cada una de las
271 páginas/sistemas como un archivo @file{EPS} distinto, sin tipografías,
272 y como un solo archivo @file{EPS} encuadernado con todas las
273 páginas/sistemas con las tipografías incluidas.
274
275 Este modo se usa de forma predeterminada por parte de
276 @command{lilypond-book}.
277
278 @item svg
279
280 @cindex SVG (Gráficos vectoriales escalables)
281
282  para obtener SVG (gráficos vectoriales escalables).
283
284 Crea un único archivo SVG que contiene toda la salida de música, con
285 las tipografías incrustadas.  Se necesita un visor de SVG que
286 contemple las tipografías incrustadas, o un visor de SVG que pueda
287 sustituir las tipografías incrustadas por tipografías OTF.  Bajo UNIX,
288 puede usar @uref{http://www.inkscape.org,Inkscape} (versión 0.42 o
289 posterior), después de copiar las tipografías OTF del directorio de
290 LilyPond (que normalmente es
291 @file{/usr/share/lilypond/VERSIÓN/fonts/otf/}) al directorio
292 @file{~/.fonts/}.
293
294 @item scm
295
296 @cindex Scheme, volcado de
297
298  para obtener un volcado de las instrucciones internas de dibujo
299 basadas en Scheme, en bruto.
300
301 @item null
302  no producir una salida impresa; tiene el mismo efecto que @option{-dno-print-pages}.
303 @end table
304
305 Ejemplo: @code{lilypond -dbackend=svg @var{archivo}.ly}
306
307 @item preview
308 @cindex vista previa, línea de órdenes
309 Generar un archivo de salida que contenga solamente los títulos de
310 cabecera y el primer sistema de música.  Si se usan bloques
311 @code{\bookpart}, los títulos y el primer sistema de todos los bloques
312 @code{\bookpart} aparecerán en la salida.  Los motores @code{ps},
313 @code{eps} y @code{svg} contemplan esta opción.
314
315 @item gui
316 Ejecutar en modo silencioso y redirigir toda la salida a un archivo de
317 registro.
318
319 Nota para usuarios de Windows: de forma predeterminada
320 @code{lilypond.exe} imprime toda la información del progreso de
321 ejecución hacia la ventana de la consola, @code{lilypond-windows.exe}
322 no lo hace y devuelve una indicación del sistema o prompt sin ninguna
323 información del progreso de la ejecución inmediatamente en la línea de
324 órdenes.  La opción @option{-dgui} se puede usar en este caso para
325 redirigir la salida a un archivo de registro.
326
327 @item print-pages
328 Generar las páginas completas, el ajuste predeterminado.
329 @option{-dno-print-pages} es útil en combinación con @option{-dpreview}.
330
331 @end table
332
333
334
335 @item -h,--help
336 Mostrar un resumen de las formas de utilización.
337
338 @item -H,--header=@var{CAMPO}
339 Volcar un campo de cabecera al archivo @file{NOMBREBASE.@var{CAMPO}}
340
341 @cindex archivos, búsqueda de
342 @cindex búsqueda, ruta de
343 @item --include, -I=@var{directorio}
344 Añadir el @var{directorio} a la ruta de búsqueda de archivos de
345 entrada.
346
347 Se pueden escribir varias opciones -I.  La búsqueda se inicia en el
348 primer directorio definido, y si el archivo que se debe incluir no se
349 encuentra, la búsqueda continúa en los directorios siguientes.
350
351 @item -i,--init=@var{archivo}
352 Establecer el archivo de inicio a @var{archivo} (predeterminado:
353 @file{init.ly}).
354
355 @cindex loglevel
356 @cindex registro, nivel de
357 @cindex salida prolija, fijar el nivel
358
359 @item -l,--loglevel=@var{LEVEL}
360 Fijar el grado en que la salida de consola es prolija al nivel
361 @var{LEVEL}. Los valores posibles son:
362 @table @code
363 @item NONE
364 Ninguna salida en absoluto, ni siquiera mensajes de error.
365
366 @item ERROR
367 Solamente mensajes de error, no advertencias o indicaciones de progreso.
368
369 @item WARN
370 Advertencias y mensajes de error, no de progreso.
371
372 @item BASIC_PROGRESS
373 Mensajes de progreso básicos (éxito), advertencias y errores.
374
375 @item PROGRESS
376 Todos los mensajes de progreso, advertencias y errores.
377
378 @item INFO (predeterminado)
379 Mensajes de progreso, advertencias, errores e información de ejecución
380 adicional.
381
382 @item DEBUG
383 Todos los mensajes posibles, incuida la información de depuración
384 prolija.
385 @end table
386
387 @cindex carpeta, dirigir la salida hacia
388 @cindex salida, establecer el nombre del archivo de
389
390 @item -o,--output=@var{ARCHIVO} o @var{CARPETA}
391 Establecer el nombre del archivo de salida predeterminado a
392 @var{ARCHIVO} o, si existe una carpeta con ese nombre, dirigir la
393 salida hacia @var{CARPETA}, tomando el nombre de archivo del documento
394 de entrada.  Se añade el sufijo correspondiente (por ejemplo,
395 @code{.pdf} para PDF) en los dos casos.
396
397 @item --ps
398 Generar PostScript.
399
400 @item --png
401 Generar imágenes de las páginas en formato PNG.  Esto implica
402 @option{--ps}.  La resolución en PPP de la imagen se puede establecer
403 con
404 @example
405 -dresolution=110
406 @end example
407
408 @cindex PDF (formato de documento portátil), salida de
409
410 @item --pdf
411 Generar PDF.  Implica @option{--ps}.
412
413
414
415 @item -j,--jail=@var{usuario},@var{grupo},@var{jaula},@var{directorio}
416 Ejecutar @command{lilypond} en una jaula de chroot.
417
418 La opción @option{--jail} (jaula) proporciona una alternativa más
419 flexible a la opción @option{--safe} cuando el proceso de tipografía de
420 LilyPond está disponible a través de un servidor web o cuando LilyPond
421 ejecuta archivos fuente procedentes del exterior.
422
423 La opción @option{--jail} funciona cambiando la raíz de
424 @command{lilypond} a @var{jaula} justo antes de comenzar el proceso de
425 compilación en sí.  Entonces se cambian el usuario y el grupo a los
426 que se han dado en la opción, y el directorio actual se cambia a
427 @var{directorio}.  Esta instalación garantiza que no es posible, al
428 menos en teoría, escapar de la jaula.  Observe que para que funcione
429 @option{--jail} se debe ejecutar @command{lilypond} como root, lo que
430 normalmente se puede hacer de una forma segura utilizando
431 @command{sudo}.
432
433 La instalación de una jaula es un asunto algo delicado, pues debemos
434 asegurarnos de que LilyPond puede encontrar @emph{dentro de la jaula}
435 todo lo que necesita para poder compilar la fuente.  Una configuración
436 típica consta de los siguientes elementos:
437
438 @table @asis
439 @item Preparar un sistema de archivos separado
440 Se debe crear un sistema de archivos separado para LilyPond, de forma
441 que se pueda montar con opciones seguras como @code{noexec},
442 @code{nodev} y @code{nosuid}.  De esta forma, es imposible ejecutar
443 programas o escribir directamente a un dispositivo desde LilyPond.  Si
444 no quiere crear una partición separada, tan sólo tiene que crear un
445 archivo de un tamaño razonable y usarlo para montar un dispositivo
446 loop.  El sistema de archivos separado garantiza también que LilyPond
447 nunca pueda escribir en un espacio mayor del que se le permita.
448
449 @item Preparar un usuario separado
450 Se debe usar un usuario y grupo separados (digamos
451 @code{lily}/@code{lily}) con bajos privilegios para ejecutar LilyPond
452 dentro de la jaula.  Debería existir un solo directorio con permisos
453 de escritura para este usuario, y debe pasarse en el valor
454 @var{directorio}.
455
456 @item Preparar la jaula
457 LilyPond necesita leer algunos archivos mientras se ejecuta.  Todos
458 estos archivos se deben copiar dentro de la jaula, bajo la misma ruta
459 en que aparecen en el sistema de archivos real de root.  Todo el
460 contenido de la instalación de LilyPond (por ejemplo
461 @file{/usr/share/lilypond}) se debe copiar.
462
463 Si surgen problemas, la forma más sencilla de rastrearlos es ejecutar
464 LilyPond usando @command{strace}, lo que le permitirá determinar qué
465 archivos faltan.
466
467 @item Ejecutar LilyPond
468 Dentro de una jaula montada con @code{noexec} es imposible ejecutar
469 ningún programa externo.  Por tanto, LilyPond se debe ejecutar con un
470 backend que no necesite tal programa.  Como ya mencionamos, también se
471 debe ejecutar con privilegios del superusuario (que por supuesto
472 perderá inmediatamente), posiblemente usando @command{sudo}.  Es buena
473 idea limitar el número de segundos de tiempo de CPU que LilyPond puede
474 usar (p.ej., usando @command{ulimit -t}), y, si su sistema operativo
475 lo contempla, el tamaño de la memoria que se puede reservar.
476 @end table
477
478
479 @item -v,--version
480 Mostrar la información de la versión.
481
482 @item -V,--verbose
483 Ser prolijo: mostrar las rutas completas de todos los archivos que se
484 leen, y dar información cronométrica.
485
486 @item -w,--warranty
487 Mostrar la garantía con que viene GNU LilyPond (¡no viene con
488 @strong{NINGUNA GARANTÍA}!).
489 @end table
490
491 @node Variables de entorno
492 @unnumberedsubsec Variables de entorno
493 @translationof Environment variables
494
495
496 @cindex LANG
497 @cindex LILYPOND_DATADIR
498
499 @command{lilypond} reconoce las siguientes variables de entorno:
500 @table @code
501 @item LILYPOND_DATADIR
502 Especifica un directorio en el que los mensajes de localización y de
503 datos se buscarán de forma predeterminada.  El directorio debe
504 contener subdirectorios llamados @file{ly/}, @file{ps/}, @file{tex/},
505 etc.
506
507 @item LANG
508 Selecciona el idioma de los mensajes de advertencia.
509
510 @item LILYPOND_LOGLEVEL
511 Nivel de registro predeterminado.  Si LilyPond se llama sin ningún
512 nivel de registro explícito (es decir, sin opción de línea de órdenes
513 @option{--loglevel}), se usa este valor.
514
515 @item LILYPOND_GC_YIELD
516 Una variable, como porcentaje, que ajusta el comportamiento de la
517 administración de memoria.  Con valores más altos, el programa usa más
518 memoria; con valores más bajos, usa más tiempo de CPU.  El valor
519 predeterminado es @code{70}.
520
521 @end table
522
523
524 @node LilyPond en una jaula de chroot
525 @unnumberedsubsec LilyPond en una jaula de chroot
526 @translationof LilyPond in chroot jail
527
528 La preparación del servidor para que ejecute LilyPond en una jaula de
529 chroot es una tarea muy complicada.  Los pasos están relacionados más
530 abajo.  Los ejemplos que aparecen en cada uno de los pasos son válidos
531 para Ubuntu Linux, y pueden requerir el uso de @code{sudo} según
532 corresponda.
533
534 @itemize
535
536 @item Instale los paquetes necesarios: LilyPond, GhostScript e ImageMagick.
537
538 @item Cree un usuario nuevo con el nombre de @code{lily}:
539
540 @example
541 adduser lily
542 @end example
543
544 @noindent
545 Esto también creará un nuevo grupo para el usuario @code{lily}, y una
546 carpeta personal, @code{/home/lily}
547
548 @item En la carpeta personal del usuario @code{lily}, cree un archivo para usarlo como un sistema de archivos separado:
549
550 @example
551 dd if=/dev/zero of=/home/lily/loopfile bs=1k count= 200000
552 @end example
553
554 @noindent
555 Este ejemplo crea un archivo de 200MB para su uso como el sistema de
556 archivos de la jaula.
557
558 @item Cree un dispositivo loop, haga un sistema de archivos y móntelo,
559 después cree una carpeta que sea escribible por el usuario
560 @code{lily}:
561
562 @example
563 mkdir /mnt/lilyloop
564 losetup /dev/loop0 /home/lily/loopfile
565 mkfs -t ext3 /dev/loop0 200000
566 mount -t ext3 /dev/loop0 /mnt/lilyloop
567 mkdir /mnt/lilyloop/lilyhome
568 chown lily /mnt/lilyloop/lilyhome
569 @end example
570
571 @item En la configuración de los servidores, JAIL será @code{/mnt/lilyloop}
572 y DIR será @code{/lilyhome}.
573
574 @item Cree un gran árbol de directorios dentro de la jaula copiando los
575 archivos necesarios, como se muestra en el guión de ejemplo que aparece
576 más abajo.
577
578 Puede usar @code{sed} para crear los archivos de copia necesarios para
579 un ejecutable dado:
580
581 @example
582 for i in "/usr/local/lilypond/usr/bin/lilypond" "/bin/sh" "/usr/bin/; do ldd $i | sed 's/.*=> \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' | sed 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' | sed '/.*=>.*/d'; done
583 @end example
584
585 @end itemize
586
587 @subheading Guión de ejemplo para Ubuntu 8.04 de 32 bits
588
589 @example
590 #!/bin/sh
591 ## aquí se fijan los valores predeterminados
592
593 username=lily
594 home=/home
595 loopdevice=/dev/loop0
596 jaildir=/mnt/lilyloop
597 # prefijo (¡sin la barra inicial!)
598 lilyprefix=usr/local
599 # el directorio en que lilypond se encuentra instalado en el sistema
600 lilydir=/$lilyprefix/lilypond/
601
602 userhome=$home/$username
603 loopfile=$userhome/loopfile
604 adduser $username
605 dd if=/dev/zero of=$loopfile bs=1k count=200000
606 mkdir $jaildir
607 losetup $loopdevice $loopfile
608 mkfs -t ext3 $loopdevice 200000
609 mount -t ext3 $loopdevice $jaildir
610 mkdir $jaildir/lilyhome
611 chown $username $jaildir/lilyhome
612 cd $jaildir
613
614 mkdir -p bin usr/bin usr/share usr/lib usr/share/fonts $lilyprefix tmp
615 chmod a+w tmp
616
617 cp -r -L $lilydir $lilyprefix
618 cp -L /bin/sh /bin/rm bin
619 cp -L /usr/bin/convert /usr/bin/gs usr/bin
620 cp -L /usr/share/fonts/truetype usr/share/fonts
621
622 # Ahora la magia de copiar las bibliotecas
623 for i in "$lilydir/usr/bin/lilypond" "$lilydir/usr/bin/guile" "/bin/sh" "/bin/rm" "/usr/bin/gs" "/usr/bin/convert"; do ldd $i | sed 's/.*=> \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' | sed 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' | sed '/.*=>.*/d'; done | sh -s
624
625 # Los archivos compartidos para ghostscript...
626       cp -L -r /usr/share/ghostscript usr/share
627 # Los archivos compartidos para ImageMagick
628       cp -L -r /usr/lib/ImageMagick* usr/lib
629
630 ### Ahora, suponiendo que tenemos test.ly en /mnt/lilyloop/lilyhome,
631 ### deberíamos poder ejecutar:
632 ### Observe que /$lilyprefix/bin/lilypond es un guión, que establece
633 ### un valor para LD_LIBRARY_PATH : esto es crucial
634       /$lilyprefix/bin/lilypond -jlily,lily,/mnt/lilyloop,/lilyhome test.ly
635 @end example
636
637 @c " keep quote signs balanced for context-sensitive editors
638
639 @node Mensajes de error
640 @section Mensajes de error
641 @translationof Error messages
642
643 @cindex error, mensajes de
644 @cindex mensajes de error
645
646 Pueden aparecer distintos mensajes de error al compilar un archivo:
647
648 @table @emph
649
650 @item Advertencia
651 @cindex advertencia
652 Algo tiene un aspecto sospechoso.  Si estamos pidiendo algo fuera de
653 lo común, entenderemos el mensaje y podremos ignorarlo.  Sin embargo,
654 las advertencias suelen indicar que algo va mal con el archivo de
655 entrada.
656
657 @item Error
658 @cindex error
659 Algo va claramente mal.  El paso actual de procesamiento (análisis,
660 interpretación o formateo visual) se dará por terminado, pero el
661 siguiente paso se saltará.
662
663 @item Error fatal
664 @cindex error fatal
665 @cindex fatal, error
666 Algo va claramente mal, y LilyPond no puede seguir.  Rara vez sucede
667 esto.  La causa más frecuente son las tipografías mal instaladas.
668
669 @item Error de Scheme
670 @cindex traza de Scheme
671 @cindex llamadas, traza de
672 @cindex Scheme, error de
673 @cindex error de Scheme
674 Los errores que ocurren al ejecutar código de Scheme se interceptan
675 por parte del intérprete de Scheme.  Si se está ejecutando con las
676 opciones @option{-V} o @option{--verbose} (prolijo) entonces se imprime
677 una traza de llamadas de la función ofensiva.
678
679 @item Error de programación
680 @cindex error de programación
681 @cindex programación, error de
682 Ha habido algún tipo de inconsistencia interna.  Estos mensajes de
683 error están orientados a ayudar a los programadores y a los
684 depuradores.  Normalmente se pueden ignorar.  En ocasiones aparecen en
685 cantidades tan grandes que pueden entorpecer la visión de otros
686 mensajes de salida.
687
688 @item Abortado (volcado de core)
689 Esto señala un error de programación serio que ha causado la
690 interrupción abrupta del programa.  Estos errores se consideran
691 críticos.  Si se topa con uno, envíe un informe de fallo.
692 @end table
693
694 @cindex error, formato de los mensajes de
695
696 Se los errores y advertencias se pueden ligar a un punto del archivo
697 de entrada, los mensajes tienen la forma siguiente:
698
699 @example
700 @var{archivo}:@var{línea}:@var{columna}: @var{mensaje}
701 @var{línea de entrada problemática}
702 @end example
703
704 Se inserta un salto de línea en la línea problemática para indicar la
705 columna en que se encontró el error. Por ejemplo,
706
707 @example
708 prueba.ly:2:19: error: no es una duración: 5
709   @{ c'4 e'
710            5 g' @}
711 @end example
712
713 Estas posiciones son la mejor suposición de LilyPond sobre dónde se ha
714 producido el mensaje de error, pero (por su propia naturaleza) las
715 advertencias y errores se producen cuando ocurre algo inesperado.  Si
716 no ve un error en la línea que se indica del archivo de entrada, trate
717 de comprobar una o dos líneas por encima de la posición indicada.
718
719 Se ofrece más información sobre los errores en la sección @ref{Errores
720 comunes}.
721
722 @node Errores comunes
723 @section Errores comunes
724 @translationof Common errors
725
726 Las condiciones de error que se describen más abajo se producen con
727 frecuencia, aunque su causa no es obvia o fácil de encontrar.  Una vez
728 se han visto y comprendido, se manejan sin problema.
729
730
731 @menu
732 * La música se sale de la página::
733 * Aparece un pentagrama de más::
734 * Error aparente en ../ly/init.ly::
735 * Mensaje de error Unbound variable %::
736 * Mensaje de error FT_Get_Glyph_Name::
737 * Advertencia sobre que las afinidades del pentagrama sólo deben decrecer::
738 @end menu
739
740 @node La música se sale de la página
741 @unnumberedsubsec La música se sale de la página
742 @translationof Music runs off the page
743
744 La música que se sale de la página por el margen derecho o que aparece
745 exageradamente comprimida está causada casi siempre por haber
746 introducido una duración incorrecta para una nota, produciendo que la
747 nota final de un compás se extienda más allá de la línea divisoria.
748 Esto no es inválido si la nota final de un compás no termina sobre la
749 línea divisoria introducida automáticamente, pues simplemente se
750 supone que la nota se solapa encima del siguiente compás.  Pero si se
751 produce una larga secuencia tales notas solapadas, la música puede
752 aparecer comprimida o salirse de la página porque los saltos de línea
753 automáticos solamente se pueden insertar al final de compases
754 completos, es decir, aquellos en que todas las notas terminan antes de
755 o justo al final del compás.
756
757 @warning{Una duración incorrecta puede hacer que se inhiban los saltos
758 de línea, lo que llevaría a una sola línea de música muy comprimida o
759 que se salga de la página.}
760
761 La duración incorrecta se puede encontrar fácilmente si se utilizan
762 comprobaciones de compás, véase @ruser{Comprobación de compás y de
763 número de compás}.
764
765 Si realmente queremos tener una serie de estos compases con notas
766 solapadas, debemos insertar una línea divisoria invisible donde
767 queramos el salto de línea.  Para ver más detalles, consulte
768 @ruser{Barras de compás}.
769
770
771 @node Aparece un pentagrama de más
772 @unnumberedsubsec Aparece un pentagrama de más
773 @translationof An extra staff appears
774
775 Si no se crean los contextos explícitamente con @code{\new} o con
776 @code{\context}, se crearán discretamente tan pronto como se encuentra
777 una instrucción que no se puede aplicar a un contexto existente.  En
778 partituras sencillas, la creación automática de los contextos es útil,
779 y casi todos los ejemplos de los manuales de LilyPond se aprovechan de
780 esta simplificación.  Pero ocasionalmente la creación discreta de
781 contextos puede hacer aflorar pentagramas o partituras nuevos e
782 inesperados.  Por ejemplo, podría esperarse que el código siguiente
783 hiciera que todas las notas dentro del pentagrama siguiente estuvieran
784 coloreadas de rojo, pero de hecho el resultado son dos pentagramas,
785 permaneciendo el de abajo con las notas en el color negro
786 predeterminado.
787
788 @lilypond[quote,verbatim,relative=2]
789 \override Staff.NoteHead #'color = #red
790 \new Staff { a }
791 @end lilypond
792
793 Esto es así porque no existe ningún contexto @code{Staff} cuando se
794 procesa la instrucción override de sobreescritura, se crea uno
795 implícitamente y la sobreescritura se aplica a éste, pero entonces la
796 instrucción @code{\new Staff} crea un pentagrama nuevo y distinto, en
797 el que se colocan las notas.  El código correcto para colorear todas
798 las notas de rojo es
799
800 @lilypond[quote,verbatim,relative=2]
801 \new Staff {
802   \override Staff.NoteHead #'color = #red
803   a
804 }
805 @end lilypond
806
807 Como segundo ejemplo, si una instrucción @code{\relative} se escribe
808 dentro de una instrucción @code{\repeat}, el resultado son dos
809 pentagramas, el segundo desplazado respecto al primero, porque la
810 instrucción @code{\repeat} genera dos bloques @code{\relative},
811 cada uno de los cuales crea implícitamente bloques @code{Staff} y
812 @code{Voice}.
813
814 @lilypond[quote,verbatim]
815 \repeat unfold 2 {
816   \relative c' { c4 d e f }
817 }
818 @end lilypond
819
820 El problema se resuelve instanciando el contexto @code{Voice}
821 explícitamente:
822
823 @lilypond[quote,verbatim]
824 \new Voice {
825   \repeat unfold 2 {
826     \relative c' { c4 d e f }
827   }
828 }
829 @end lilypond
830
831
832 @node Error aparente en ../ly/init.ly
833 @unnumberedsubsec Error aparente en @code{../ly/init.ly}
834 @translationof Apparent error in ../ly/init.ly
835
836 Pueden aparecer varios mensajes de error extraños acerca de errores de
837 sintaxis en @file{../ly/init.ly} si el archivo de entrada no está
838 correctamente formado, por ejemplo si no contiene llaves o comillas
839 correctamente emparejados.
840
841 El error más común es la falta de una llave de cierre, (@code{@}}), al
842 final de un bloque @code{score}.  Aquí la solución es obvia: compruebe
843 que el bloque @code{score} está correctamente cerrado.  La estructura
844 correcta de un archivo de entrada está descrita en @rlearning{Cómo
845 funcionan los archivos de entrada de LilyPond}.  Usando un editor que
846 resalte automáticamente las llaves correspondientes es de mucha ayuda
847 para evitar estos errores.
848
849 Una segunda causa frecuente es la falta de un espacio entre la última
850 sílaba de un bloque lyrics (de letra) y la llave de cierre,
851 (@code{@}}).  Sin esta separación, se considera que la llave forma
852 parte de la sílaba.  Siempre se aconseja asegurarse de que hay
853 espacios antes y después de @emph{todas} las llaves.  Para conocer la
854 importancia de este asunto al utilizar letras de canciones, consulte
855 @ruser{Introducir la letra}.
856
857 Este mensaje de error también puede aparecer si se omiten las comillas
858 de terminación (@code{"}).  En este caso, un mensaje de error
859 adicional debería indicar un número de línea cercano al de aquella
860 donde está el error.  Las comillas desbalanceadas estarán por lo
861 general una o dos líneas por encima.
862
863
864 @node Mensaje de error Unbound variable %
865 @unnumberedsubsec Mensaje de error Unbound variable %
866 @translationof Error message Unbound variable %
867
868 Este mensaje de error aparece al final de los mensajes de la consola o
869 del archivo de registro junto a un mensaje @qq{GUILE señaló un error
870 @dots{}} cada vez que se llame a una rutina de Scheme que
871 (incorrectamente) contenga un comentario @emph{de LilyPond} en lugar
872 de un comentario @emph{de Scheme}.
873
874 Los comentarios de LilyPond comienzan con un símbolo de porcentaje,
875 (@code{%}), y no se deben utilizar dentro de las rutinas de Scheme.
876 Los comentarios de Scheme comienzan con punto y coma, (@code{;}).
877
878 @node Mensaje de error FT_Get_Glyph_Name
879 @unnumberedsubsec Mensaje de error FT_Get_Glyph_Name
880 @translationof Error message FT_Get_Glyph_Name
881
882 Este mensaje de error aparece en la salida de la consola o en el
883 archivo log de registro si un archivo de entrada contiene un carácter
884 que no es ASCII y no se ha guardado en la codificación de caracteres
885 UTF-8.  Para ver más detalles, consulte @ruser{Codificación del
886 texto}.
887
888
889 @node Advertencia sobre que las afinidades del pentagrama sólo deben decrecer
890 @unnumberedsubsec Advertencia sobre que las afinidades del pentagrama sólo deben decrecer
891 @translationof Warning staff affinities should only decrease
892
893 Esta advertencia puede aparecer si no hay ningún pentagrama en la
894 salida impresa, por ejemplo si sólo hay un contexto @code{ChordName} y
895 un contexto @code{Lyrics} como en una hoja guía de acordes.  Los
896 mensajes de advertencia se pueden evitar haciendo que uno de los
897 contextos se comporte como un pentagrama, insertando
898
899 @example
900 \override VerticalAxisGroup #'staff-affinity = ##f
901 @end example
902
903 @noindent
904 al comienzo.  Para ver más detalles, consulte @qq{Espaciado de las
905 líneas que no son pautas} en @ruser{Espaciado vertical flexible dentro
906 de los sistemas}.