1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
4 Translation of GIT committish: f3768208f242fbf03bb49d185dfa3db4c0fb46f7
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..
14 @node Ejecutar LilyPond
15 @chapter Ejecutar LilyPond
16 @translationof Running LilyPond
18 Este capítulo detalla los aspectos técnicos de la ejecución de
22 * Utilización normal::
23 * Utilización desde la línea de órdenes::
29 @node Utilización normal
30 @section Utilización normal
31 @translationof Normal usage
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.
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
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.
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}.
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
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::
67 @node Invocar a LilyPond
68 @unnumberedsubsec Invocar @command{lilypond}
69 @translationof Invoking lilypond
71 El ejecutable @command{lilypond} se puede llamar desde la línea de
72 órdenes de la siguiente manera:
75 lilypond [@var{opción}]@dots{} @var{archivo}@dots{}
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}.
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.}.
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
96 #(define output-suffix "violin")
98 #(define output-suffix "cello")
103 producirá como salida @var{base}@file{-violin.pdf} y
104 @var{base}@file{-cello-1.pdf}.
107 @unnumberedsubsubsec Instrucciones estándar de la línea de órdenes
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:
116 @code{lilypond archivo.ly 1>salidaestandar.log} para redirigir la salida normal
119 @code{lilypond archivo.ly 2>salidadeerror.log} para redirigir los mensajes de error
122 @code{lilypond archivo.ly &>todo.log} para redirigir toda la salida
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.
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
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
139 Están contempladas las siguientes opciones:
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.:
149 @cindex apuntar y pulsar, línea de órdenes
161 Están contempladas las siguientes opciones:
163 @cindex help (ayuda), línea de órdenes
168 La ejecución de @code{lilypond -dhelp} imprime todas las opciones
169 @option{-d} disponibles.
171 @cindex paper-size, línea de órdenes
174 Esta opción establece el tamaño predeterminado del papel,
176 -dpaper-size=\"letter\"
180 Observe que la cadena se debe incluir dentro de comillas escapadas
183 @c Match " in previous line to help context-sensitive editors
185 @cindex safe, línea de órdenes
188 No confiar en la entrada @file{.ly}.
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,
200 c4^$(ly:gulp-file "/etc/passwd")
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}.
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{}.
214 En el modo seguro, no es posible la importación de variables de
215 LilyPond dentro de Scheme.
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
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.
228 @cindex salida, establecer el formato de
231 el formato de salida que usar para el back-end o extremo final.
232 Para el @code{formato} se puede elegir entre
237 @cindex PostScript, salida
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
248 @cindex Postscript encapsulado
249 @cindex EPS (PostScript Encapsulado)
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.
256 Este modo se usa de forma predeterminada por parte de
257 @command{lilypond-book}.
261 @cindex SVG (Gráficos vectoriales escalables)
263 para obtener SVG (gráficos vectoriales escalables).
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
277 @cindex Scheme, volcado de
278 @cindex salida, volcado de Scheme
280 para obtener un volcado de las instrucciones internas de dibujo
281 basadas en Scheme, en bruto.
284 no producir una salida impresa; tiene el mismo efecto que @option{-dno-print-pages}.
288 Ejemplo: @code{lilypond -dbackend=svg @var{archivo}.ly}
292 @cindex vista previa, línea de órdenes
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} y genera un archivo de salida
297 que contiene solamente los títulos de
298 cabecera y el primer sistema de música. Si se usan bloques
299 @code{\bookpart}, los títulos y el primer sistema de todos los bloques
300 @code{\bookpart} aparecerán en la salida.
302 Se genera un archivo adicional en la forma
303 @code{myFile.preview.extensión}, para evitarlo use las opciones
304 adicionales @option{-dprint-pages} ó @option{-dno-print-pages}
305 según sus necesidades.
308 Ejecutar en modo silencioso y redirigir toda la salida a un archivo de
311 Nota para usuarios de Windows: de forma predeterminada
312 @code{lilypond.exe} imprime toda la información del progreso de
313 ejecución hacia la ventana de la consola, @code{lilypond-windows.exe}
314 no lo hace y devuelve una indicación del sistema o prompt sin ninguna
315 información del progreso de la ejecución inmediatamente en la línea de
316 órdenes. La opción @option{-dgui} se puede usar en este caso para
317 redirigir la salida a un archivo de registro.
320 Generar las páginas completas, el ajuste predeterminado.
321 @option{-dno-print-pages} es útil en combinación con @option{-dpreview}.
325 @cindex Scheme, evaluación de expresiones
326 @cindex expresiones de Scheme, evaluación
328 @item -e,--evaluate=@var{expresión}
329 Evaluar la @var{expresión} de Scheme antes de analizar los archivos
330 @file{.ly}. Se pueden pasar varias opciones @option{-e}, que se
331 evaluarán en secuencia.
333 La expresión se evaluará en el módulo @code{guile-user}, de manera que
334 si quiere usar definiciones dentro de @var{expresión}, debe utilizar
337 lilypond -e '(define-public a 42)'
341 en la línea de órdenes, e incluir
344 #(use-modules (guile-user))
348 al principio del archivo @file{.ly}.
350 @warning{Los usuarios de Windows deben utilizar comillas dobles en lugar de apóstrofos simples.}
352 @cindex output, format
353 @cindex format, output
355 @item -f,--format=@var{format}
356 which formats should be written. Choices for @code{format} are
357 @code{ps}, @code{pdf}, and @code{png}.
359 Example: @code{lilypond -fpng @var{filename}.ly}
362 Mostrar un resumen de las formas de utilización.
364 @item -H,--header=@var{CAMPO}
365 Volcar un campo de cabecera al archivo @file{NOMBREBASE.@var{CAMPO}}
367 @item -i,--init=@var{archivo}
368 Establecer el archivo de inicio a @var{archivo} (predeterminado:
371 @cindex archivos, búsqueda de
372 @cindex búsqueda, ruta de
374 @item -I, --include=@var{directorio}
375 Añadir el @var{directorio} a la ruta de búsqueda de archivos de
378 Se pueden escribir varias opciones -I. La búsqueda se inicia en el
379 primer directorio definido, y si el archivo que se debe incluir no se
380 encuentra, la búsqueda continúa en los directorios siguientes.
382 @cindex chroot, ejecutar dentro de una jaula
384 @item -j,--jail=@var{usuario},@var{grupo},@var{jaula},@var{directorio}
385 Ejecutar @command{lilypond} en una jaula de chroot.
387 La opción @option{--jail} (jaula) proporciona una alternativa más
388 flexible a la opción @option{--safe} cuando el proceso de tipografía de
389 LilyPond está disponible a través de un servidor web o cuando LilyPond
390 ejecuta archivos fuente procedentes del exterior.
392 La opción @option{--jail} funciona cambiando la raíz de
393 @command{lilypond} a @var{jaula} justo antes de comenzar el proceso de
394 compilación en sí. Entonces se cambian el usuario y el grupo a los
395 que se han dado en la opción, y el directorio actual se cambia a
396 @var{directorio}. Esta instalación garantiza que no es posible, al
397 menos en teoría, escapar de la jaula. Observe que para que funcione
398 @option{--jail} se debe ejecutar @command{lilypond} como root, lo que
399 normalmente se puede hacer de una forma segura utilizando
402 La instalación de una jaula es un asunto algo delicado, pues debemos
403 asegurarnos de que LilyPond puede encontrar @emph{dentro de la jaula}
404 todo lo que necesita para poder compilar la fuente. Una configuración
405 típica consta de los siguientes elementos:
409 @item Preparar un sistema de archivos separado
410 Se debe crear un sistema de archivos separado para LilyPond, de forma
411 que se pueda montar con opciones seguras como @code{noexec},
412 @code{nodev} y @code{nosuid}. De esta forma, es imposible ejecutar
413 programas o escribir directamente a un dispositivo desde LilyPond. Si
414 no quiere crear una partición separada, tan sólo tiene que crear un
415 archivo de un tamaño razonable y usarlo para montar un dispositivo
416 loop. El sistema de archivos separado garantiza también que LilyPond
417 nunca pueda escribir en un espacio mayor del que se le permita.
419 @item Preparar un usuario separado
420 Se debe usar un usuario y grupo separados (digamos
421 @code{lily}/@code{lily}) con bajos privilegios para ejecutar LilyPond
422 dentro de la jaula. Debería existir un solo directorio con permisos
423 de escritura para este usuario, y debe pasarse en el valor
426 @item Preparar la jaula
427 LilyPond necesita leer algunos archivos mientras se ejecuta. Todos
428 estos archivos se deben copiar dentro de la jaula, bajo la misma ruta
429 en que aparecen en el sistema de archivos real de root. Todo el
430 contenido de la instalación de LilyPond (por ejemplo
431 @file{/usr/share/lilypond}) se debe copiar.
433 Si surgen problemas, la forma más sencilla de rastrearlos es ejecutar
434 LilyPond usando @command{strace}, lo que le permitirá determinar qué
437 @item Ejecutar LilyPond
438 Dentro de una jaula montada con @code{noexec} es imposible ejecutar
439 ningún programa externo. Por tanto, LilyPond se debe ejecutar con un
440 backend que no necesite tal programa. Como ya mencionamos, también se
441 debe ejecutar con privilegios del superusuario (que por supuesto
442 perderá inmediatamente), posiblemente usando @command{sudo}. Es buena
443 idea limitar el número de segundos de tiempo de CPU que LilyPond puede
444 usar (p.ej., usando @command{ulimit@tie{}-t}), y, si su sistema operativo
445 lo contempla, el tamaño de la memoria que se puede reservar.
450 @cindex registro, nivel de
451 @cindex salida prolija, fijar el nivel
453 @item -l,--loglevel=@var{LEVEL}
454 Fijar el grado en que la salida de consola es prolija al nivel
455 @var{LEVEL}. Los valores posibles son:
460 Ninguna salida en absoluto, ni siquiera mensajes de error.
463 Solamente mensajes de error, no advertencias o indicaciones de progreso.
466 Advertencias y mensajes de error, no de progreso.
469 Mensajes de progreso básicos (éxito), advertencias y errores.
472 Todos los mensajes de progreso, advertencias y errores.
474 @item INFO (predeterminado)
475 Mensajes de progreso, advertencias, errores e información de ejecución
479 Todos los mensajes posibles, incuida la información de depuración
483 @cindex carpeta, dirigir la salida hacia
484 @cindex salida, establecer el nombre del archivo de
486 @item -o,--output=@var{ARCHIVO} o @var{CARPETA}
487 Establecer el nombre del archivo de salida predeterminado a
488 @var{ARCHIVO} o, si existe una carpeta con ese nombre, dirigir la
489 salida hacia @var{CARPETA}, tomando el nombre de archivo del documento
490 de entrada. Se añade el sufijo correspondiente (por ejemplo,
491 @code{.pdf} para PDF) en los dos casos.
493 @cindex PS (Postscript), salida
494 @cindex Postscript (PS), salida
495 @cindex salida, PS (Postscript)
500 @cindex PNG (Portable Network Graphics), salida
501 @cindex salida, PNG (Portable Network Graphics)
504 Generar imágenes de las páginas en formato PNG. Esto implica
505 @option{--ps}. La resolución en PPP de la imagen se puede establecer
511 @cindex PDF (formato de documento portátil), salida de
512 @cindex salida, PDF (formato de documento portátil)
515 Generar PDF. Implica @option{--ps}.
518 Mostrar la información de la versión.
521 Ser prolijo: mostrar las rutas completas de todos los archivos que se
522 leen, y dar información cronométrica.
525 Mostrar la garantía con que viene GNU LilyPond (¡no viene con
526 @strong{NINGUNA GARANTÍA}!).
531 @node Variables de entorno
532 @unnumberedsubsec Variables de entorno
533 @translationof Environment variables
537 @cindex LILYPOND_DATADIR
539 @command{lilypond} reconoce las siguientes variables de entorno:
541 @item LILYPOND_DATADIR
542 Especifica un directorio en el que los mensajes de localización y de
543 datos se buscarán de forma predeterminada. El directorio debe
544 contener subdirectorios llamados @file{ly/}, @file{ps/}, @file{tex/},
548 Selecciona el idioma de los mensajes de advertencia.
550 @item LILYPOND_LOGLEVEL
551 Nivel de registro predeterminado. Si LilyPond se llama sin ningún
552 nivel de registro explícito (es decir, sin opción de línea de órdenes
553 @option{--loglevel}), se usa este valor.
555 @item LILYPOND_GC_YIELD
556 Una variable, como porcentaje, que ajusta el comportamiento de la
557 administración de memoria. Con valores más altos, el programa usa más
558 memoria; con valores más bajos, usa más tiempo de CPU. El valor
559 predeterminado es @code{70}.
564 @node LilyPond en una jaula de chroot
565 @unnumberedsubsec LilyPond en una jaula de chroot
566 @translationof LilyPond in chroot jail
568 La preparación del servidor para que ejecute LilyPond en una jaula de
569 chroot es una tarea muy complicada. Los pasos están relacionados más
570 abajo. Los ejemplos que aparecen en cada uno de los pasos son válidos
571 para Ubuntu Linux, y pueden requerir el uso de @code{sudo} según
576 @item Instale los paquetes necesarios: LilyPond, GhostScript e ImageMagick.
578 @item Cree un usuario nuevo con el nombre de @code{lily}:
585 Esto también creará un nuevo grupo para el usuario @code{lily}, y una
586 carpeta personal, @code{/home/lily}
588 @item En la carpeta personal del usuario @code{lily}, cree un archivo para usarlo como un sistema de archivos separado:
591 dd if=/dev/zero of=/home/lily/loopfile bs=1k count= 200000
595 Este ejemplo crea un archivo de 200MB para su uso como el sistema de
596 archivos de la jaula.
598 @item Cree un dispositivo loop, haga un sistema de archivos y móntelo,
599 después cree una carpeta que sea escribible por el usuario
604 losetup /dev/loop0 /home/lily/loopfile
605 mkfs -t ext3 /dev/loop0 200000
606 mount -t ext3 /dev/loop0 /mnt/lilyloop
607 mkdir /mnt/lilyloop/lilyhome
608 chown lily /mnt/lilyloop/lilyhome
611 @item En la configuración de los servidores, JAIL será @code{/mnt/lilyloop}
612 y DIR será @code{/lilyhome}.
614 @item Cree un gran árbol de directorios dentro de la jaula copiando los
615 archivos necesarios, como se muestra en el guión de ejemplo que aparece
618 Puede usar @code{sed} para crear los archivos de copia necesarios para
622 for i in "/usr/local/lilypond/usr/bin/lilypond" "/bin/sh" "/usr/bin/; \
623 do ldd $i | sed 's/.*=> \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& \
624 cp -L \/\1\2 \1\2/' | sed 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \
625 \1 \&\& cp -L \/\1\2 \1\2/' | sed '/.*=>.*/d'; done
630 @subheading Guión de ejemplo para Ubuntu 8.04 de 32 bits
634 ## aquí se fijan los valores predeterminados
638 loopdevice=/dev/loop0
639 jaildir=/mnt/lilyloop
640 # prefijo (¡sin la barra inicial!)
642 # el directorio en que lilypond se encuentra instalado en el sistema
643 lilydir=/$lilyprefix/lilypond/
645 userhome=$home/$username
646 loopfile=$userhome/loopfile
648 dd if=/dev/zero of=$loopfile bs=1k count=200000
650 losetup $loopdevice $loopfile
651 mkfs -t ext3 $loopdevice 200000
652 mount -t ext3 $loopdevice $jaildir
653 mkdir $jaildir/lilyhome
654 chown $username $jaildir/lilyhome
657 mkdir -p bin usr/bin usr/share usr/lib usr/share/fonts $lilyprefix tmp
660 cp -r -L $lilydir $lilyprefix
661 cp -L /bin/sh /bin/rm bin
662 cp -L /usr/bin/convert /usr/bin/gs usr/bin
663 cp -L /usr/share/fonts/truetype usr/share/fonts
665 # Ahora la magia de copiar las bibliotecas
666 for i in "$lilydir/usr/bin/lilypond" "$lilydir/usr/bin/guile" "/bin/sh" \
667 "/bin/rm" "/usr/bin/gs" "/usr/bin/convert"; do ldd $i | sed 's/.*=> \
668 \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' | sed \
669 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' \
670 | sed '/.*=>.*/d'; done | sh -s
672 # Los archivos compartidos para ghostscript...
673 cp -L -r /usr/share/ghostscript usr/share
674 # Los archivos compartidos para ImageMagick
675 cp -L -r /usr/lib/ImageMagick* usr/lib
677 ### Ahora, suponiendo que tenemos test.ly en /mnt/lilyloop/lilyhome,
678 ### deberíamos poder ejecutar:
679 ### Observe que /$lilyprefix/bin/lilypond es un guión, que establece
680 ### un valor para LD_LIBRARY_PATH : esto es crucial
681 /$lilyprefix/bin/lilypond -jlily,lily,/mnt/lilyloop,/lilyhome test.ly
684 @c " keep quote signs balanced for context-sensitive editors
686 @node Mensajes de error
687 @section Mensajes de error
688 @translationof Error messages
690 @cindex error, mensajes de
691 @cindex mensajes de error
693 Pueden aparecer distintos mensajes de error al compilar un archivo:
699 Algo tiene un aspecto sospechoso. Si estamos pidiendo algo fuera de
700 lo común, entenderemos el mensaje y podremos ignorarlo. Sin embargo,
701 las advertencias suelen indicar que algo va mal con el archivo de
706 Algo va claramente mal. El paso actual de procesamiento (análisis,
707 interpretación o formateo visual) se dará por terminado, pero el
708 siguiente paso se saltará.
713 Algo va claramente mal, y LilyPond no puede seguir. Rara vez sucede
714 esto. La causa más frecuente son las tipografías mal instaladas.
716 @item Error de Scheme
717 @cindex traza de Scheme
718 @cindex llamadas, traza de
719 @cindex Scheme, error de
720 @cindex error de Scheme
721 Los errores que ocurren al ejecutar código de Scheme se interceptan
722 por parte del intérprete de Scheme. Si se está ejecutando con las
723 opciones @option{-V} o @option{--verbose} (prolijo) entonces se imprime
724 una traza de llamadas de la función ofensiva.
726 @item Error de programación
727 @cindex error de programación
728 @cindex programación, error de
729 Ha habido algún tipo de inconsistencia interna. Estos mensajes de
730 error están orientados a ayudar a los programadores y a los
731 depuradores. Normalmente se pueden ignorar. En ocasiones aparecen en
732 cantidades tan grandes que pueden entorpecer la visión de otros
735 @item Abortado (volcado de core)
736 Esto señala un error de programación serio que ha causado la
737 interrupción abrupta del programa. Estos errores se consideran
738 críticos. Si se topa con uno, envíe un informe de fallo.
741 @cindex error, formato de los mensajes de
743 Si los errores y advertencias se pueden ligar a un punto del archivo
744 de entrada, los mensajes tienen la forma siguiente:
747 @var{archivo}:@var{línea}:@var{columna}: @var{mensaje}
748 @var{línea de entrada problemática}
751 Se inserta un salto de línea en la línea problemática para indicar la
752 columna en que se encontró el error. Por ejemplo,
755 prueba.ly:2:19: error: no es una duración: 5
760 Estas posiciones son la mejor suposición de LilyPond sobre dónde se ha
761 producido el mensaje de error, pero (por su propia naturaleza) las
762 advertencias y errores se producen cuando ocurre algo inesperado. Si
763 no ve un error en la línea que se indica del archivo de entrada, trate
764 de comprobar una o dos líneas por encima de la posición indicada.
766 Se ofrece más información sobre los errores en la sección @ref{Errores
770 @node Errores comunes
771 @section Errores comunes
772 @translationof Common errors
774 Las condiciones de error que se describen más abajo se producen con
775 frecuencia, aunque su causa no es obvia o fácil de encontrar. Una vez
776 se han visto y comprendido, se manejan sin problema.
780 * La música se sale de la página::
781 * Aparece un pentagrama de más::
782 * Error aparente en ../ly/init.ly::
783 * Mensaje de error Unbound variable %::
784 * Mensaje de error FT_Get_Glyph_Name::
785 * Advertencia sobre que las afinidades del pentagrama sólo deben decrecer::
788 @node La música se sale de la página
789 @unnumberedsubsec La música se sale de la página
790 @translationof Music runs off the page
792 La música que se sale de la página por el margen derecho o que aparece
793 exageradamente comprimida está causada casi siempre por haber
794 introducido una duración incorrecta para una nota, produciendo que la
795 nota final de un compás se extienda más allá de la línea divisoria.
796 Esto no es inválido si la nota final de un compás no termina sobre la
797 línea divisoria introducida automáticamente, pues simplemente se
798 supone que la nota se solapa encima del siguiente compás. Pero si se
799 produce una larga secuencia tales notas solapadas, la música puede
800 aparecer comprimida o salirse de la página porque los saltos de línea
801 automáticos solamente se pueden insertar al final de compases
802 completos, es decir, aquellos en que todas las notas terminan antes de
803 o justo al final del compás.
805 @warning{Una duración incorrecta puede hacer que se inhiban los saltos
806 de línea, lo que llevaría a una sola línea de música muy comprimida o
807 que se salga de la página.}
809 La duración incorrecta se puede encontrar fácilmente si se utilizan
810 comprobaciones de compás, véase @ruser{Comprobación de compás y de
813 Si realmente queremos tener una serie de estos compases con notas
814 solapadas, debemos insertar una línea divisoria invisible donde
815 queramos el salto de línea. Para ver más detalles, consulte
816 @ruser{Barras de compás}.
819 @node Aparece un pentagrama de más
820 @unnumberedsubsec Aparece un pentagrama de más
821 @translationof An extra staff appears
823 Si no se crean los contextos explícitamente con @code{\new} o con
824 @code{\context}, se crearán discretamente tan pronto como se encuentra
825 una instrucción que no se puede aplicar a un contexto existente. En
826 partituras sencillas, la creación automática de los contextos es útil,
827 y casi todos los ejemplos de los manuales de LilyPond se aprovechan de
828 esta simplificación. Pero ocasionalmente la creación discreta de
829 contextos puede hacer aflorar pentagramas o partituras nuevos e
830 inesperados. Por ejemplo, podría esperarse que el código siguiente
831 hiciera que todas las notas dentro del pentagrama siguiente estuvieran
832 coloreadas de rojo, pero de hecho el resultado son dos pentagramas,
833 permaneciendo el de abajo con las notas en el color negro
836 @lilypond[quote,verbatim,relative=2]
837 \override Staff.NoteHead #'color = #red
841 Esto es así porque no existe ningún contexto @code{Staff} cuando se
842 procesa la instrucción override de sobreescritura, se crea uno
843 implícitamente y la sobreescritura se aplica a éste, pero entonces la
844 instrucción @code{\new Staff} crea un pentagrama nuevo y distinto, en
845 el que se colocan las notas. El código correcto para colorear todas
848 @lilypond[quote,verbatim,relative=2]
850 \override Staff.NoteHead #'color = #red
855 Como segundo ejemplo, si una instrucción @code{\relative} se escribe
856 dentro de una instrucción @code{\repeat}, el resultado son dos
857 pentagramas, el segundo desplazado respecto al primero, porque la
858 instrucción @code{\repeat} genera dos bloques @code{\relative},
859 cada uno de los cuales crea implícitamente bloques @code{Staff} y
862 @lilypond[quote,verbatim]
864 \relative c' { c4 d e f }
868 El problema se resuelve instanciando el contexto @code{Voice}
871 @lilypond[quote,verbatim]
874 \relative c' { c4 d e f }
880 @node Error aparente en ../ly/init.ly
881 @unnumberedsubsec Error aparente en @code{../ly/init.ly}
882 @translationof Apparent error in ../ly/init.ly
884 Pueden aparecer varios mensajes de error extraños acerca de errores de
885 sintaxis en @file{../ly/init.ly} si el archivo de entrada no está
886 correctamente formado, por ejemplo si no contiene llaves o comillas
887 correctamente emparejados.
889 El error más común es la falta de una llave de cierre, (@code{@}}), al
890 final de un bloque @code{score}. Aquí la solución es obvia: compruebe
891 que el bloque @code{score} está correctamente cerrado. La estructura
892 correcta de un archivo de entrada está descrita en @rlearning{Cómo
893 funcionan los archivos de entrada de LilyPond}. Usando un editor que
894 resalte automáticamente las llaves correspondientes es de mucha ayuda
895 para evitar estos errores.
897 Una segunda causa frecuente es la falta de un espacio entre la última
898 sílaba de un bloque lyrics (de letra) y la llave de cierre,
899 (@code{@}}). Sin esta separación, se considera que la llave forma
900 parte de la sílaba. Siempre se aconseja asegurarse de que hay
901 espacios antes y después de @emph{todas} las llaves. Para conocer la
902 importancia de este asunto al utilizar letras de canciones, consulte
903 @ruser{Introducir la letra}.
905 Este mensaje de error también puede aparecer si se omiten las comillas
906 de terminación (@code{"}). En este caso, un mensaje de error
907 adicional debería indicar un número de línea cercano al de aquella
908 donde está el error. Las comillas desbalanceadas estarán por lo
909 general una o dos líneas por encima.
912 @node Mensaje de error Unbound variable %
913 @unnumberedsubsec Mensaje de error Unbound variable %
914 @translationof Error message Unbound variable %
916 Este mensaje de error aparece al final de los mensajes de la consola o
917 del archivo de registro junto a un mensaje @qq{GUILE señaló un error
918 @dots{}} cada vez que se llame a una rutina de Scheme que
919 (incorrectamente) contenga un comentario @emph{de LilyPond} en lugar
920 de un comentario @emph{de Scheme}.
922 Los comentarios de LilyPond comienzan con un símbolo de porcentaje,
923 (@code{%}), y no se deben utilizar dentro de las rutinas de Scheme.
924 Los comentarios de Scheme comienzan con punto y coma, (@code{;}).
926 @node Mensaje de error FT_Get_Glyph_Name
927 @unnumberedsubsec Mensaje de error FT_Get_Glyph_Name
928 @translationof Error message FT_Get_Glyph_Name
930 Este mensaje de error aparece en la salida de la consola o en el
931 archivo log de registro si un archivo de entrada contiene un carácter
932 que no es ASCII y no se ha guardado en la codificación de caracteres
933 UTF-8. Para ver más detalles, consulte @ruser{Codificación del
937 @node Advertencia sobre que las afinidades del pentagrama sólo deben decrecer
938 @unnumberedsubsec Advertencia sobre que las afinidades del pentagrama sólo deben decrecer
939 @translationof Warning staff affinities should only decrease
941 Esta advertencia puede aparecer si no hay ningún pentagrama en la
942 salida impresa, por ejemplo si sólo hay un contexto @code{ChordName} y
943 un contexto @code{Lyrics} como en una hoja guía de acordes. Los
944 mensajes de advertencia se pueden evitar haciendo que uno de los
945 contextos se comporte como un pentagrama, insertando
948 \override VerticalAxisGroup #'staff-affinity = ##f
952 al comienzo. Para ver más detalles, consulte @qq{Espaciado de las
953 líneas que no son pautas} en @ruser{Espaciado vertical flexible dentro