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