]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/es/usage/running.itely
Merge remote-tracking branch 'origin/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: 93d725094ee629b2d5200ab5a75b609579a62973
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.17.6"
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 básicas de la línea de órdenes para LilyPond::
63 * Opciones avanzadas de línea de órdenes para LilyPond::
64 * Variables de entorno::
65 * LilyPond en una jaula de chroot::
66 @end menu
67
68 @node Invocar a LilyPond
69 @unnumberedsubsec Invocar @command{lilypond}
70 @translationof Invoking lilypond
71
72 El ejecutable @command{lilypond} se puede llamar desde la línea de
73 órdenes de la siguiente manera:
74
75 @example
76 lilypond [@var{opción}]@dots{} @var{archivo}@dots{}
77 @end example
78
79 Cuando se invoca con un nombre de archivo sin extensión, se prueba en
80 primer lugar con la extensión @file{.ly}.  Para leer la entrada desde
81 stdin, utilice un guión (@code{-}) en sustitución de @var{archivo}.
82
83 Cuando se procesa @file{archivo.ly}, la salida resultante son los
84 archivos @file{archivo.ps} y @file{archivo.pdf}.  Se pueden
85 especificar varios archivos; cada uno de ellos se procesará de forma
86 independiente@footnote{El estado de GUILE no se restablece después de
87 procesar un archivo @code{.ly}, por lo que debe tener cuidado de no
88 modificar ningún valor predeterminado desde dentro de Scheme.}.
89
90 Si @file{archivo.ly} contiene más de un bloque @code{\score}, el resto
91 de las partituras se obtendrán como salida en archivos numerados,
92 empezando por @file{archivo-1.pdf}.  además, el valor de
93 @code{output-suffix} (sufijo de salida) se insertará entre el nombre
94 base y el número.  Un archivo de entrada que contenga
95
96 @example
97 #(define output-suffix "violin")
98 \score @{ @dots{} @}
99 #(define output-suffix "cello")
100 \score @{ @dots{} @}
101 @end example
102
103 @noindent
104 producirá como salida @var{base}@file{-violin.pdf} y
105 @var{base}@file{-cello-1.pdf}.
106
107
108 @unnumberedsubsubsec Instrucciones estándar de la línea de órdenes
109
110 Si su terminal (o ventana de órdenes) contempla las redirecciones
111 normales, quizá le sean de utilidad las siguientes instrucciones para
112 redirigir la salida de la consola a un archivo:
113
114 @itemize
115
116 @item
117 @code{lilypond archivo.ly 1>salidaestandar.log} para redirigir la salida normal
118
119 @item
120 @code{lilypond archivo.ly 2>salidadeerror.log} para redirigir los mensajes de error
121
122 @item
123 @code{lilypond archivo.ly &>todo.log} para redirigir toda la salida
124
125 @end itemize
126
127 Consulte la documentación de su shell para ver si contempla estas
128 opciones, o si la sintaxis es distinta.  Observe que son instrucciones
129 del shell y que no tienen nada que ver con lilypond.
130
131
132 @node Opciones básicas de la línea de órdenes para LilyPond
133 @unnumberedsubsec Opciones básicas de la línea de órdenes para LilyPond
134 @translationof Basic command line options for LilyPond
135
136 @cindex invocación de @command{lilypond}
137 @cindex opciones de la línea de órdenes para @command{lilypond}
138 @cindex línea de órdenes, opciones de
139 @cindex modificadores
140
141 Están contempladas las siguientes opciones:
142
143 @table @code
144
145 @item -d, --define-default=@var{variable}=@var{valor}
146 Véase @ref{Opciones avanzadas de línea de órdenes para LilyPond}.
147
148 @cindex Scheme, evaluación de expresiones
149 @cindex expresiones de Scheme, evaluación
150
151 @item -e, --evaluate=@var{expresión}
152 Evaluar la @var{expresión} de Scheme antes de analizar los archivos
153 @file{.ly}.  Se pueden pasar varias opciones @option{-e}, que se
154 evaluarán en secuencia.
155
156 La expresión se evaluará en el módulo @code{guile-user}, de manera que
157 si quiere usar definiciones dentro de @var{expresión}, debe utilizar
158
159 @example
160 lilypond -e '(define-public a 42)'
161 @end example
162
163 @noindent
164 en la línea de órdenes, e incluir
165
166 @example
167 #(use-modules (guile-user))
168 @end example
169
170 @noindent
171 al principio del archivo @file{.ly}.
172
173 @warning{Los usuarios de Windows deben utilizar comillas dobles en lugar de apóstrofos simples.}
174
175 @cindex output, format
176 @cindex format, output
177
178 @item -f, --format=@var{format}
179 which formats should be written.  Choices for @code{format} are
180 @code{ps}, @code{pdf}, and @code{png}.
181
182 Example: @code{lilypond -fpng @var{filename}.ly}
183
184 @item -h, --help
185 Mostrar un resumen de las formas de utilización.
186
187 @item -H, --header=@var{CAMPO}
188 Volcar un campo de cabecera al archivo @file{NOMBREBASE.@var{CAMPO}}
189
190 @item -i, --init=@var{archivo}
191 Establecer el archivo de inicio a @var{archivo} (predeterminado:
192 @file{init.ly}).
193
194 @cindex archivos, búsqueda de
195 @cindex búsqueda, ruta de
196
197 @item -I, --include=@var{directorio}
198 Añadir el @var{directorio} a la ruta de búsqueda de archivos de
199 entrada.
200
201 Se pueden escribir varias opciones -I.  La búsqueda se inicia en el
202 primer directorio definido, y si el archivo que se debe incluir no se
203 encuentra, la búsqueda continúa en los directorios siguientes.
204
205 @cindex chroot, ejecutar dentro de una jaula
206
207 @item -j, --jail=@var{usuario},@var{grupo},@var{jaula},@var{directorio}
208 Ejecutar @command{lilypond} en una jaula de chroot.
209
210 La opción @option{--jail} (jaula) proporciona una alternativa más
211 flexible a la opción @option{-dsafe} cuando el proceso de tipografía de
212 LilyPond está disponible a través de un servidor web o cuando LilyPond
213 ejecuta instrucciones enviadas por fuentes externas
214 (véase @ref{Opciones avanzadas de línea de órdenes para LilyPond}).
215
216 La opción @option{--jail} funciona cambiando la raíz de
217 @command{lilypond} a @var{jaula} justo antes de comenzar el proceso de
218 compilación en sí.  Entonces se cambian el usuario y el grupo a los
219 que se han dado en la opción, y el directorio actual se cambia a
220 @var{directorio}.  Esta instalación garantiza que no es posible, al
221 menos en teoría, escapar de la jaula.  Observe que para que funcione
222 @option{--jail}, se debe ejecutar @command{lilypond} como root, lo que
223 normalmente se puede hacer de una forma segura utilizando
224 @command{sudo}.
225
226 La instalación de una jaula puede ser un asunto relativamente
227 complejo, pues debemos asegurarnos de que LilyPond puede encontrar
228 @emph{dentro} de la propia jaula todo lo que necesita para poder
229 compilar la fuente.  Una típica configuración de jaula de chroot
230 consta de los siguientes elementos:
231
232 @table @asis
233
234 @item Preparar un sistema de archivos separado
235 Se debe crear un sistema de archivos separado para LilyPond, de forma
236 que se pueda montar con opciones seguras como @code{noexec},
237 @code{nodev} y @code{nosuid}.  De esta forma, es imposible ejecutar
238 programas o escribir directamente a un dispositivo desde LilyPond.  Si
239 no quiere crear una partición separada, tan sólo tiene que crear un
240 archivo de un tamaño razonable y usarlo para montar un dispositivo
241 loop.  El sistema de archivos separado garantiza también que LilyPond
242 nunca pueda escribir en un espacio mayor del que se le permita.
243
244 @item Preparar un usuario separado
245 Se debe usar un usuario y grupo separados (digamos
246 @code{lily}/@code{lily}) con bajos privilegios para ejecutar LilyPond
247 dentro de la jaula.  Debería existir un solo directorio con permisos
248 de escritura para este usuario, y debe pasarse en el valor
249 @var{directorio}.
250
251 @item Preparar la jaula
252 LilyPond necesita leer algunos archivos mientras se ejecuta.  Todos
253 estos archivos se deben copiar dentro de la jaula, bajo la misma ruta
254 en que aparecen en el sistema de archivos real de root.  Todo el
255 contenido de la instalación de LilyPond (por ejemplo
256 @file{/usr/share/lilypond}) se debe copiar.
257
258 Si surgen problemas, la forma más sencilla de rastrearlos es ejecutar
259 LilyPond usando @command{strace}, lo que le permitirá determinar qué
260 archivos faltan.
261
262 @item Ejecutar LilyPond
263 Dentro de una jaula montada con @code{noexec} es imposible ejecutar
264 ningún programa externo.  Por tanto, LilyPond se debe ejecutar con un
265 backend que no necesite tal programa.  Como ya hemos mencionado, se
266 debe ejecutar con privilegios del superusuario (que por supuesto
267 perderá inmediatamente), posiblemente usando @command{sudo}.  También
268 es una práctica recomendable limitar el número de segundos de tiempo
269 de CPU que LilyPond puede usar (p.ej., usando
270 @command{ulimit@tie{}-t}), y, si su sistema operativo lo contempla, el
271 tamaño de la memoria que se puede reservar.  Véase también
272 @ref{LilyPond en una jaula de chroot}.
273
274 @end table
275
276 @cindex loglevel
277 @cindex registro, nivel de
278 @cindex salida prolija, fijar el nivel
279
280 @item -l, --loglevel=@var{LEVEL}
281 Fijar el grado en que la salida de consola es prolija al nivel
282 @var{LEVEL}. Los valores posibles son:
283
284 @table @code
285
286 @item NONE
287 Ninguna salida en absoluto, ni siquiera mensajes de error.
288
289 @item ERROR
290 Solamente mensajes de error, no advertencias o indicaciones de progreso.
291
292 @item WARN
293 Advertencias y mensajes de error, no de progreso.
294
295 @item BASIC_PROGRESS
296 Mensajes de progreso básicos (éxito), advertencias y errores.
297
298 @item PROGRESS
299 Todos los mensajes de progreso, advertencias y errores.
300
301 @item INFO (predeterminado)
302 Mensajes de progreso, advertencias, errores e información de ejecución
303 adicional.
304
305 @item DEBUG
306 Todos los mensajes posibles, incuida la información de depuración
307 prolija.
308 @end table
309
310 @cindex carpeta, dirigir la salida hacia
311 @cindex salida, establecer el nombre del archivo de
312
313 @item -o, --output=@var{ARCHIVO} o @var{CARPETA}
314 Establecer el nombre del archivo de salida predeterminado a
315 @var{ARCHIVO} o, si existe una carpeta con ese nombre, dirigir la
316 salida hacia @var{CARPETA}, tomando el nombre de archivo del documento
317 de entrada.  Se añade el sufijo correspondiente (por ejemplo,
318 @code{.pdf} para PDF) en los dos casos.
319
320 @cindex PS (Postscript), salida
321 @cindex Postscript (PS), salida
322 @cindex salida, PS (Postscript)
323
324 @item --ps
325 Generar PostScript.
326
327 @cindex PNG (Portable Network Graphics), salida
328 @cindex salida, PNG (Portable Network Graphics)
329
330 @item --png
331 Generar imágenes de las páginas en formato PNG.  Esto implica
332 @option{--ps}.  La resolución en PPP de la imagen se puede establecer
333 con
334 @example
335 -dresolution=110
336 @end example
337
338 @cindex PDF (formato de documento portátil), salida de
339 @cindex salida, PDF (formato de documento portátil)
340
341 @item --pdf
342 Generar PDF.  Implica @option{--ps}.
343
344 @item -v, --version
345 Mostrar la información de la versión.
346
347 @item -V, --verbose
348 Ser prolijo: mostrar las rutas completas de todos los archivos que se
349 leen, y dar información cronométrica.
350
351 @item -w, --warranty
352 Mostrar la garantía con que viene GNU LilyPond (¡no viene con
353 @strong{NINGUNA GARANTÍA}!).
354
355 @end table
356
357
358 @node Opciones avanzadas de línea de órdenes para LilyPond
359 @unnumberedsubsec Opciones avanzadas de línea de órdenes para LilyPond
360 @translationof Advanced command line options for LilyPond
361
362 @table @code
363
364 @item -d@var{[option-name]}=@var{[value]}, --define-default=@var{[option-name]}=@var{[value]}
365 Establece la función de Scheme interna equivalente a @var{valor}.
366
367 @example
368 -dbackend=svg
369 @end example
370
371 Si no se proporciona ningún @var{valor}, se usa el valor predeterminado.
372 Para desactivar una opción se puede anteponer @code{no-} a la
373 @var{variable}, p.ej.:
374
375 @cindex point and click, command line
376
377 @example
378 -dno-point-and-click
379 @end example
380
381 @noindent
382 is the same as
383 @example
384 -dpoint-and-click=#f
385 @end example
386 @end table
387
388 @noindent Están contempladas las siguientes opciones junto a sus respectivos
389 valores predeterminados:
390
391 @multitable @columnfractions .33 .16 .51
392 @item @strong{Símbolo}
393 @tab @strong{Valor}
394 @tab @strong{Explicación/Opciones}
395
396 @item @code{anti-alias-factor} (factor de antialias)
397 @tab @code{1}
398 @tab Renderizar a mayor resolución (utilizando el factor dado) y reducir la
399 escala del resultado para así evitar @q{escaleras} en las imágenes
400 @code{PNG}.
401
402 @item @code{aux-files} (archivos auxiliares)
403 @tab @code{#t}
404 @tab Crear archivos @code{.tex}, @code{.texi}, @code{.count} en el
405 @q{back-end} @code{EPS}.
406
407 @item @code{backend}
408 @tab @code{ps}
409 @tab Seleccionar un @q{back-end}.  Los archivos (la opción predeterminada)
410 incluyen las fuentes tipográficas @code{TTF}, @code{Type1} y
411 @code{OTF}.  No se hace ningún subconjunto de estas fuentes.  El uso
412 de conjuntos de caracteres @q{orientales} puede dar lugar a archivos
413 muy grandes.
414
415 @item
416 @tab @code{eps}
417 @tab PostScript encapsulado.  Vuelca cada página o sistema como un archivo
418 @file{EPS} distinto, sin fuentes tipográficas, y como un archivo
419 @file{EPS} encuadernado con todas las páginas o sistemas que incluye
420 las fuentes.  Utilizado como opción predeterminada por parte de
421 @command{lilypond-book}.
422
423 @item
424 @tab @code{null}
425 @tab No producir ninguna partitura impresa a la salida; tiene el mismo
426 efecto que @code{-dno-print-pages}.
427
428 @item
429 @tab @code{svg}
430 @tab Grácifos vectoriales escalables.  Crea un solo archivo @code{SVG}, sin
431 fuentes tipográficas incrustadas, por cada página de salida.  Se
432 recomienda instalar las fuentes Century Schoolbook, incluidas con la
433 instalación de LilyPond, para un renderizado óptimo.  Bajo UNIX,
434 bastará con que copie estaos archivos de fuente del directorio de
435 LilyPond (normalmente @file{/usr/share/lilypond/VERSION/fonts/otf/})
436 al directorio @file{~/.fonts/}.  La salida @code{SVG} debería ser
437 compatible con cualquier editor o cliente de SVG.  También hay una
438 opción @code{svg-woff} (véase más abajo) para usar los archivos de
439 fuente woff en el @q{back-end} SVG.
440
441 @item
442 @tab @code{scm}
443 @tab Volcado de las instrucciones de dibujo internas basadas en Scheme, en
444 bruto.
445
446 @item @code{check-internal-types}
447 @tab @code{#f}
448 @tab Comprobar el tipo de cada asignación de propiedades.
449
450 @item @code{clip-systems} (recortar los sistemas)
451 @tab @code{#f}
452 @tab Generar fragmentos de imagen recortados de una partitura.
453
454 @item @code{datadir} (directorio de datos)
455 @tab
456 @tab Prefijo de los archivos de datos (sólo lectura).
457
458 @item @code{debug-gc}
459 @tab @code{#f}
460 @tab Volcar estadísticas de depuración de memoria.
461
462 @item @code{debug-gc-assert-parsed-dead}
463 @tab @code{#f}
464 @tab Para la depuración de memoria: asegurarse de que todas las referencias
465 a objetos analizados están muertas.  Es una opción interna, y se
466 activa automáticamente para @code{`-ddebug-gc'}.
467
468 @item @code{debug-lexer}
469 @tab @code{#f}
470 @tab Depuración del analizador léxico flex.
471
472 @item @code{debug-page-breaking-scoring}
473 @tab @code{#f}
474 @tab Volcar las partituras para muchas configuraciones de saltos de página
475 diferentes.
476
477 @item @code{debug-parser}
478 @tab @code{#f}
479 @tab Depuración del analizador sintáctico bison.
480
481 @item @code{debug-property-callbacks}
482 @tab @code{#f}
483 @tab Depuración de las cadenas cíclicas de funciones de callback.
484
485 @item @code{debug-skylines}
486 @tab @code{#f}
487 @tab Depuración de las líneas de horizonte.
488
489 @item @code{delete-intermediate-files}
490 @tab @code{#t}
491 @tab Eliminar los archivos intermedios @code{.ps} inútiles ques e crean
492 durante la compilación.
493
494 @item @code{dump-cpu-profile}
495 @tab @code{#f}
496 @tab Volcar información de cuenta de tiempo (dependiente del sistema).
497
498 @item @code{dump-profile}
499 @tab @code{#f}
500 @tab Volcar de la información de memoria y de tiempo para cada archivo.
501
502 @item @code{dump-signatures}
503 @tab @code{#f}
504 @tab Volcar las firmas de salida de cada sistema.  Usado para las pruebas
505 de regresión.
506
507 @item @code{eps-box-padding}
508 @tab @code{#f}
509 @tab Rellenar el borde izquierdo de la caja contenedora del EPS de salida
510 en la cantidad dada (en mm).
511
512 @item @code{gs-load-fonts}
513 @tab @code{#f}
514 @tab Cargar las fuentes tipográficas a través de Ghostscript.
515
516 @item @code{gs-load-lily-fonts}
517 @tab @code{#f}
518 @tab Cargar sólo las fuentes de LilyPond por medio de Ghostscript.
519
520 @item @code{gui}
521 @tab @code{#f}
522 @tab Se ejecuta silenciosamente y se redirige toda la salida a un archivo
523 de registro.
524 @end multitable
525
526 @noindent
527 @strong{Nota para los usuarios de Windows:} De manera predeterminada,
528 @code{lilypond.exe} dirige toda la salida de la información de avance
529 hacia la ventana de consola, @code{lilypond-windows.exe} no lo hace y
530 devuelve un indicador del sistema, sin ninguna indicación del avance,
531 inmediatamente en la línea de órdenes.  La opción @option{-dgui} se
532 puede usar en este caso para redirigir la salida a un archivo de
533 registro.
534
535 @multitable @columnfractions .33 .16 .51
536 @item @code{help}
537 @tab @code{#f}
538 @tab Mostrar esta ayuda.
539
540 @item @code{include-book-title-preview}
541 @tab @code{#t}
542 @tab Incluir los títulos de libro en las imágenes de vista previa.
543
544 @item @code{include-eps-fonts}
545 @tab @code{#t}
546 @tab Incluir las fuentes tipográficas en los archivos EPS de cada uno de
547 los sistemas.
548
549 @item @code{include-settings}
550 @tab @code{#f}
551 @tab Incluir el archivo de los ajustes globales, se incluye antes de que la
552 partitura se procese.
553
554 @item @code{job-count}
555 @tab @code{#f}
556 @tab Procesar en paralelo, usando el número de tareas dado.
557
558 @item @code{log-file}
559 @tab @code{#f [file]}
560 @tab Si se da una cadena @code{NOMBRE} como segundo argumento,
561 redirigir la salida al archivo de registro @code{NOMBRE.log}.
562
563 @item @code{max-markup-depth}
564 @tab @code{1024}
565 @tab Profundidad máxima del árbol de marcado. Si un marcado tiene más niveles,
566 suponer que no terminará por sí mismo, imprimiento una advertencia y
567 devolviendo en su lugar un elemento de marcado nulo.
568
569 @item @code{midi-extension}
570 @tab @code{"midi"}
571 @tab Fijar la extensión de archivo predeterminada para el archivo de salida
572 MIDI a la cadena dada.
573
574 @item @code{music-strings-to-paths}
575 @tab @code{#f}
576 @tab Convertir las cadenas de texto a rutas cuando los glifos pertenecen a
577 una fuente de tipografía musical.
578
579 @item @code{paper-size}
580 @tab @code{\"a4\"}
581 @tab Establecer el tamaño predeterminado del papel.  Observe que la cadena
582 debe ir encerrada entre comillas dobles.
583
584 @item @code{pixmap-format}
585 @tab @code{png16m}
586 @tab Fijar el formato de salida de Ghostscript para las imágenes de píxeles.
587
588 @item @code{point-and-click}
589 @tab @code{#f}
590 @tab Añadir enlaces de @q{apuntar y pulsar} a la salida @code{PDF}. Véase
591 @ref{Apuntar y pulsar}.
592
593 @item @code{preview}
594 @tab @code{#f}
595 @tab Crear imágenes de vista previa además de la salida normal.
596 @end multitable
597
598 @noindent
599 Esta opción está contemplada por todos los @q{back-ends}: @code{pdf},
600 @code{png}, @code{ps}, @code{eps} y @code{svg}, pero no por
601 @code{scm}.  Genera un archivo de salida, en la forma
602 @code{miArchivo.preview.extensión}, que contiene los títulos y el
603 primer sistema de la música.  Si se están utilizando bloques
604 @code{\book} o @code{\bookpart}, aparecen en la salida los títulos de
605 @code{\book}, @code{\bookpart} o @code{\score}, incluido el primer
606 sistema de cada bloque @code{\score} si la variable de @code{\paper}
607 @code{print-all-headers} está fijada al valor @code{#t}.
608
609 Para suprimir la salida usual, utilice las opciones
610 @option{-dprint-pages} o @option{-dno-print-pages} según sus
611 necesidades.
612
613 @multitable @columnfractions .33 .16 .51
614 @item @code{print-pages}
615 @tab @code{#t}
616 @tab Generar páginas completas (es la opción predeterminada).  Es útil
617 @option{-dno-print-pages} en combinación con @option{-dpreview}.
618
619 @item @code{profile-property-accesses}
620 @tab @code{#f}
621 @tab Conservar las estadísticas de las llamadas de función
622 @code{get_property()}.
623
624 @item @code{protected-scheme-parsing}
625 @tab @code{#t}
626 @tab Continuar cuando se captan en el analizador sintáctico errores del
627 Scheme empotrado.  Si se fija a @code{#f}, detenerse cuando haya
628 errores e imprimir un registro de traza de pila.
629
630 @item @code{read-file-list}
631 @tab @code{#f [archivo]}
632 @tab Especificar el nobmre de un archivo que contiene una lista de archivos
633 de entrada para procesar.
634
635 @item @code{relative-includes}
636 @tab @code{#f}
637 @tab Cuando se procesa una instrucción @code{\include} command, buscar el
638 archivo incluido de forma relativa al archivo actual (en lugar del
639 archivo principal).
640
641 @item @code{resolution}
642 @tab @code{101}
643 @tab Fijar la resolución para generar imágenes de píxeles @code{PNG} al
644 valor dado (en ppp).
645
646 @item @code{safe}
647 @tab @code{#f}
648 @tab No confiar en la entrada @code{.ly}.
649 @end multitable
650
651 @noindent
652 Cuando el servicio de tipografía está disponible a través de un
653 servidor web, @b{SE DEBEN} pasar las opciones @option{--safe} o
654 @option{--jail}.  La opción @option{--safe} evita que el código de
655 Scheme monte un desastre, p.ej.:
656
657 @quotation
658 @verbatim
659 #(system "rm -rf /")
660 {
661   c4^$(ly:gulp-file "/etc/passwd")
662 }
663 @end verbatim
664 @end quotation
665
666 La opción @option{-dsafe} funciona evaluando las expresiones de Scheme
667 en línea dentro de un módulo seguro especial.  Deriva del módulo
668 @file{safe-r5rs} de GUILE, pero además añade unas cuantas funciones de
669 la API de LIlyPond que están relacionadas en @file{scm/safe-lily.scm}.
670
671 Además, el modo seguro prohíbe las directivas @code{\include} y
672 desactiva la utilización de barras invertidas en las cadenas de
673 @TeX{}.  Asimismo, no es posible importar variables de LilyPond dentro
674 de Scheme cuando se está en modo seguro.
675
676 @option{-dsafe} @emph{no} detecta la sobreutilización de recursos, por
677 lo que aún es posible hacer que el programa se cuelgue
678 indefinidamente, por ejemplo suministrando estructuras de datos
679 cíclicas en el backend.  Por ello, si está usando LilyPond en un
680 servidor web accesible públicamente, el proceso se debe limitar tanto
681 en el uso de memoria como de CPU.
682
683 El modo seguro evita que se puedan compilar muchos fragmentos de
684 código útiles.
685
686 La opción @option{--jail} es una aliternativa más segura aún, pero
687 requiere más trabajo para su configuración.  Véase
688 @ref{Opciones básicas de la línea de órdenes para LilyPond}.
689
690 @multitable @columnfractions .33 .16 .51
691 @item @code{separate-log-files}
692 @tab @code{#f}
693 @tab Para los archivos de entrada @code{ARCHIVO1.ly}, @code{ARCHIVO2.ly},
694 etc. sacar los datos de registro hacia los archivos @code{ARCHIVO1.log},
695 @code{ARCHIVO2.log}@dots{}
696
697 @item @code{show-available-fonts}
698 @tab @code{#f}
699 @tab Listar todos los nombres de las fuentes tipográficas disponibles.
700
701 @item @code{strict-infinity-checking}
702 @tab @code{#f}
703 @tab Forzar una terminación abrupta si se encuentran las excepciones de
704 punto flotante @code{Inf} y @code{NaN}.
705
706 @item @code{strip-output-dir}
707 @tab @code{#t}
708 @tab No usar los directorios de los archivos de entrada al construir los
709 nombres de los archivos de salida.
710
711 @item @code{strokeadjust}
712 @tab @code{#f}
713 @tab Forzar el ajuste de los trazos de PostScript.  Esta opción es
714 relevante principalmente cuando se genera un @code{PDF} a partir
715 de la salida de PostScript (el ajuste del trazo está por lo
716 general activado automáticamente para dispositivos de mapa de
717 puntos de baja resolución).  Sin esta opción, los visores
718 de@code{PDF} tienden a producir anchuras de plica muy poco
719 consistentes a las resoluciones típicas de las pantallas de
720 ordenador.  La opción no afecta de forma muy significativa a la
721 calidad de la impresión y causa grandes incrementos en el tamaño
722 del archivo @code{PDF}.
723
724 @item @code{svg-woff}
725 @tab @code{#f}
726 @tab Usar archivos de fuente tipográfica de woff en el backend SVG.
727
728 @item @code{trace-memory-frequency}
729 @tab @code{#f}
730 @tab Registrar el uso de células de Scheme esta cantidad de veces por
731 segundo.  Volcar los resultados en @code{ARCHIVO.stacks} y en
732 @code{ARCHIVO.graph}.
733
734 @item @code{trace-scheme-coverage}
735 @tab @code{#f}
736 @tab Registrar la cobertura de los archivos de Scheme en @code{ARCHIVO.cov}.
737
738 @item @code{verbose}
739 @tab @code{#f}
740 @tab Salida prolija, es decir el nivel de registro en DEBUG (sólo lectura).
741
742 @item @code{warning-as-error}
743 @tab @code{#f}
744 @tab Cambiar todos los mensajes de advertencia y de @q{error de
745 programación} a errores.
746 @end multitable
747
748
749 @node Variables de entorno
750 @unnumberedsubsec Variables de entorno
751 @translationof Environment variables
752
753 @cindex LANG
754 @cindex LILYPOND_DATADIR
755
756 @command{lilypond} reconoce las siguientes variables de entorno:
757 @table @code
758 @item LILYPOND_DATADIR
759 Especifica un directorio en el que los mensajes de localización y de
760 datos se buscarán de forma predeterminada.  El directorio debe
761 contener subdirectorios llamados @file{ly/}, @file{ps/}, @file{tex/},
762 etc.
763
764 @item LANG
765 Selecciona el idioma de los mensajes de advertencia.
766
767 @item LILYPOND_LOGLEVEL
768 Nivel de registro predeterminado.  Si LilyPond se llama sin ningún
769 nivel de registro explícito (es decir, sin opción de línea de órdenes
770 @option{--loglevel}), se usa este valor.
771
772 @item LILYPOND_GC_YIELD
773 Una variable, como porcentaje, que ajusta el comportamiento de la
774 administración de memoria.  Con valores más altos, el programa usa más
775 memoria; con valores más bajos, usa más tiempo de CPU.  El valor
776 predeterminado es @code{70}.
777
778 @end table
779
780
781 @node LilyPond en una jaula de chroot
782 @unnumberedsubsec LilyPond en una jaula de chroot
783 @translationof LilyPond in chroot jail
784
785 La preparación del servidor para que ejecute LilyPond en una jaula de
786 chroot es una tarea muy complicada.  Los pasos están relacionados más
787 abajo.  Los ejemplos que aparecen en cada uno de los pasos son válidos
788 para Ubuntu GNU/Linux, y pueden requerir el uso de @code{sudo} según
789 corresponda.
790
791 @itemize
792
793 @item Instale los paquetes necesarios: LilyPond, Ghostscript e ImageMagick.
794
795 @item Cree un usuario nuevo con el nombre de @code{lily}:
796
797 @example
798 adduser lily
799 @end example
800
801 @noindent
802 Esto también creará un nuevo grupo para el usuario @code{lily}, y una
803 carpeta personal, @code{/home/lily}
804
805 @item En la carpeta personal del usuario @code{lily}, cree un archivo para usarlo como un sistema de archivos separado:
806
807 @example
808 dd if=/dev/zero of=/home/lily/loopfile bs=1k count= 200000
809 @end example
810
811 @noindent
812 Este ejemplo crea un archivo de 200MB para su uso como el sistema de
813 archivos de la jaula.
814
815 @item Cree un dispositivo loop, haga un sistema de archivos y móntelo,
816 después cree una carpeta que sea escribible por el usuario
817 @code{lily}:
818
819 @example
820 mkdir /mnt/lilyloop
821 losetup /dev/loop0 /home/lily/loopfile
822 mkfs -t ext3 /dev/loop0 200000
823 mount -t ext3 /dev/loop0 /mnt/lilyloop
824 mkdir /mnt/lilyloop/lilyhome
825 chown lily /mnt/lilyloop/lilyhome
826 @end example
827
828 @item En la configuración de los servidores, JAIL será @code{/mnt/lilyloop}
829 y DIR será @code{/lilyhome}.
830
831 @item Cree un gran árbol de directorios dentro de la jaula copiando los
832 archivos necesarios, como se muestra en el guión de ejemplo que aparece
833 más abajo.
834
835 Puede usar @code{sed} para crear los archivos de copia necesarios para
836 un ejecutable dado:
837
838 @example
839 for i in "/usr/local/lilypond/usr/bin/lilypond" "/bin/sh" "/usr/bin/;  \
840   do ldd $i | sed 's/.*=> \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\&  \
841     cp -L \/\1\2 \1\2/' | sed 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p  \
842       \1 \&\& cp -L \/\1\2 \1\2/' | sed '/.*=>.*/d'; done
843 @end example
844
845 @end itemize
846
847 @subheading Guión de ejemplo para Ubuntu 8.04 de 32 bits
848
849 @example
850 #!/bin/sh
851 ## aquí se fijan los valores predeterminados
852
853 username=lily
854 home=/home
855 loopdevice=/dev/loop0
856 jaildir=/mnt/lilyloop
857 # prefijo (¡sin la barra inicial!)
858 lilyprefix=usr/local
859 # el directorio en que lilypond se encuentra instalado en el sistema
860 lilydir=/$lilyprefix/lilypond/
861
862 userhome=$home/$username
863 loopfile=$userhome/loopfile
864 adduser $username
865 dd if=/dev/zero of=$loopfile bs=1k count=200000
866 mkdir $jaildir
867 losetup $loopdevice $loopfile
868 mkfs -t ext3 $loopdevice 200000
869 mount -t ext3 $loopdevice $jaildir
870 mkdir $jaildir/lilyhome
871 chown $username $jaildir/lilyhome
872 cd $jaildir
873
874 mkdir -p bin usr/bin usr/share usr/lib usr/share/fonts $lilyprefix tmp
875 chmod a+w tmp
876
877 cp -r -L $lilydir $lilyprefix
878 cp -L /bin/sh /bin/rm bin
879 cp -L /usr/bin/convert /usr/bin/gs usr/bin
880 cp -L /usr/share/fonts/truetype usr/share/fonts
881
882 # Ahora la magia de copiar las bibliotecas
883 for i in "$lilydir/usr/bin/lilypond" "$lilydir/usr/bin/guile" "/bin/sh"  \
884   "/bin/rm" "/usr/bin/gs" "/usr/bin/convert"; do ldd $i | sed 's/.*=>  \
885     \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' | sed  \
886       's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/'  \
887         | sed '/.*=>.*/d'; done | sh -s
888
889 # Los archivos compartidos para ghostscript...
890       cp -L -r /usr/share/ghostscript usr/share
891 # Los archivos compartidos para ImageMagick
892       cp -L -r /usr/lib/ImageMagick* usr/lib
893
894 ### Ahora, suponiendo que tenemos test.ly en /mnt/lilyloop/lilyhome,
895 ### deberíamos poder ejecutar:
896 ### Observe que /$lilyprefix/bin/lilypond es un guión, que establece
897 ### un valor para LD_LIBRARY_PATH : esto es crucial
898       /$lilyprefix/bin/lilypond -jlily,lily,/mnt/lilyloop,/lilyhome test.ly
899 @end example
900
901 @c " keep quote signs balanced for context-sensitive editors
902
903 @node Mensajes de error
904 @section Mensajes de error
905 @translationof Error messages
906
907 @cindex error, mensajes de
908 @cindex mensajes de error
909
910 Pueden aparecer distintos mensajes de error al compilar un archivo:
911
912 @table @emph
913
914 @item Advertencia
915 @cindex advertencia
916 Algo tiene un aspecto sospechoso.  Si estamos pidiendo algo fuera de
917 lo común, entenderemos el mensaje y podremos ignorarlo.  Sin embargo,
918 las advertencias suelen indicar que algo va mal con el archivo de
919 entrada.
920
921 @item Error
922 @cindex error
923 Algo va claramente mal.  El paso actual de procesamiento (análisis,
924 interpretación o formateo visual) se dará por terminado, pero el
925 siguiente paso se saltará.
926
927 @item Error fatal
928 @cindex error fatal
929 @cindex fatal, error
930 Algo va claramente mal, y LilyPond no puede seguir.  Rara vez sucede
931 esto.  La causa más frecuente son las tipografías mal instaladas.
932
933 @item Error de Scheme
934 @cindex traza de Scheme
935 @cindex llamadas, traza de
936 @cindex Scheme, error de
937 @cindex error de Scheme
938 Los errores que ocurren al ejecutar código de Scheme se interceptan
939 por parte del intérprete de Scheme.  Si se está ejecutando con las
940 opciones @option{-V} o @option{--verbose} (prolijo) entonces se imprime
941 una traza de llamadas de la función ofensiva.
942
943 @item Error de programación
944 @cindex error de programación
945 @cindex programación, error de
946 Ha habido algún tipo de inconsistencia interna.  Estos mensajes de
947 error están orientados a ayudar a los programadores y a los
948 depuradores.  Normalmente se pueden ignorar.  En ocasiones aparecen en
949 cantidades tan grandes que pueden entorpecer la visión de otros
950 mensajes de salida.
951
952 @item Abortado (volcado de core)
953 Esto señala un error de programación serio que ha causado la
954 interrupción abrupta del programa.  Estos errores se consideran
955 críticos.  Si se topa con uno, envíe un informe de fallo.
956 @end table
957
958 @cindex error, formato de los mensajes de
959
960 Si los errores y advertencias se pueden ligar a un punto del archivo
961 de entrada, los mensajes tienen la forma siguiente:
962
963 @example
964 @var{archivo}:@var{línea}:@var{columna}: @var{mensaje}
965 @var{línea de entrada problemática}
966 @end example
967
968 Se inserta un salto de línea en la línea problemática para indicar la
969 columna en que se encontró el error. Por ejemplo,
970
971 @example
972 prueba.ly:2:19: error: no es una duración: 5
973   @{ c'4 e'
974            5 g' @}
975 @end example
976
977 Estas posiciones son la mejor suposición de LilyPond sobre dónde se ha
978 producido el mensaje de error, pero (por su propia naturaleza) las
979 advertencias y errores se producen cuando ocurre algo inesperado.  Si
980 no ve un error en la línea que se indica del archivo de entrada, trate
981 de comprobar una o dos líneas por encima de la posición indicada.
982
983 Se ofrece más información sobre los errores en la sección @ref{Errores
984 comunes}.
985
986
987 @node Errores comunes
988 @section Errores comunes
989 @translationof Common errors
990
991 Las condiciones de error que se describen más abajo se producen con
992 frecuencia, aunque su causa no es obvia o fácil de encontrar.  Una vez
993 se han visto y comprendido, se manejan sin problema.
994
995
996 @menu
997 * La música se sale de la página::
998 * Aparece un pentagrama de más::
999 * Mensaje de error Unbound variable %::
1000 * Mensaje de error FT_Get_Glyph_Name::
1001 * Advertencia sobre que las afinidades del pentagrama sólo deben decrecer::
1002 * Mensaje de error Unexpected new::
1003 @end menu
1004
1005 @node La música se sale de la página
1006 @unnumberedsubsec La música se sale de la página
1007 @translationof Music runs off the page
1008
1009 La música que se sale de la página por el margen derecho o que aparece
1010 exageradamente comprimida está causada casi siempre por haber
1011 introducido una duración incorrecta para una nota, produciendo que la
1012 nota final de un compás se extienda más allá de la línea divisoria.
1013 Esto no es inválido si la nota final de un compás no termina sobre la
1014 línea divisoria introducida automáticamente, pues simplemente se
1015 supone que la nota se solapa encima del siguiente compás.  Pero si se
1016 produce una larga secuencia tales notas solapadas, la música puede
1017 aparecer comprimida o salirse de la página porque los saltos de línea
1018 automáticos solamente se pueden insertar al final de compases
1019 completos, es decir, aquellos en que todas las notas terminan antes de
1020 o justo al final del compás.
1021
1022 @warning{Una duración incorrecta puede hacer que se inhiban los saltos
1023 de línea, lo que llevaría a una sola línea de música muy comprimida o
1024 que se salga de la página.}
1025
1026 La duración incorrecta se puede encontrar fácilmente si se utilizan
1027 comprobaciones de compás, véase @ruser{Comprobación de compás y de
1028 número de compás}.
1029
1030 Si realmente queremos tener una serie de estos compases con notas
1031 solapadas, debemos insertar una línea divisoria invisible donde
1032 queramos el salto de línea.  Para ver más detalles, consulte
1033 @ruser{Barras de compás}.
1034
1035
1036 @node Aparece un pentagrama de más
1037 @unnumberedsubsec Aparece un pentagrama de más
1038 @translationof An extra staff appears
1039
1040 Si no se crean los contextos explícitamente con @code{\new} o con
1041 @code{\context}, se crearán discretamente tan pronto como se encuentra
1042 una instrucción que no se puede aplicar a un contexto existente.  En
1043 partituras sencillas, la creación automática de los contextos es útil,
1044 y casi todos los ejemplos de los manuales de LilyPond se aprovechan de
1045 esta simplificación.  Pero ocasionalmente la creación discreta de
1046 contextos puede hacer aflorar pentagramas o partituras nuevos e
1047 inesperados.  Por ejemplo, podría esperarse que el código siguiente
1048 hiciera que todas las notas dentro del pentagrama siguiente estuvieran
1049 coloreadas de rojo, pero de hecho el resultado son dos pentagramas,
1050 permaneciendo el de abajo con las notas en el color negro
1051 predeterminado.
1052
1053 @lilypond[quote,verbatim,relative=2]
1054 \override Staff.NoteHead.color = #red
1055 \new Staff { a }
1056 @end lilypond
1057
1058 Esto es así porque no existe ningún contexto @code{Staff} cuando se
1059 procesa la instrucción override de sobreescritura, se crea uno
1060 implícitamente y la sobreescritura se aplica a éste, pero entonces la
1061 instrucción @code{\new Staff} crea un pentagrama nuevo y distinto, en
1062 el que se colocan las notas.  El código correcto para colorear todas
1063 las notas de rojo es
1064
1065 @lilypond[quote,verbatim,relative=2]
1066 \new Staff {
1067   \override Staff.NoteHead.color = #red
1068   a
1069 }
1070 @end lilypond
1071
1072 Como segundo ejemplo, si una instrucción @code{\relative} se escribe
1073 dentro de una instrucción @code{\repeat}, el resultado son dos
1074 pentagramas, el segundo desplazado respecto al primero, porque la
1075 instrucción @code{\repeat} genera dos bloques @code{\relative},
1076 cada uno de los cuales crea implícitamente bloques @code{Staff} y
1077 @code{Voice}.
1078
1079 @lilypond[quote,verbatim]
1080 \repeat unfold 2 {
1081   \relative c' { c4 d e f }
1082 }
1083 @end lilypond
1084
1085 El problema se resuelve instanciando el contexto @code{Voice}
1086 explícitamente:
1087
1088 @lilypond[quote,verbatim]
1089 \new Voice {
1090   \repeat unfold 2 {
1091     \relative c' { c4 d e f }
1092   }
1093 }
1094 @end lilypond
1095
1096
1097 @node Mensaje de error Unbound variable %
1098 @unnumberedsubsec Mensaje de error Unbound variable %
1099 @translationof Error message Unbound variable %
1100
1101 Este mensaje de error aparece al final de los mensajes de la consola o
1102 del archivo de registro junto a un mensaje @qq{GUILE señaló un error
1103 @dots{}} cada vez que se llame a una rutina de Scheme que
1104 (incorrectamente) contenga un comentario @emph{de LilyPond} en lugar
1105 de un comentario @emph{de Scheme}.
1106
1107 Los comentarios de LilyPond comienzan con un símbolo de porcentaje,
1108 (@code{%}), y no se deben utilizar dentro de las rutinas de Scheme.
1109 Los comentarios de Scheme comienzan con punto y coma, (@code{;}).
1110
1111 @node Mensaje de error FT_Get_Glyph_Name
1112 @unnumberedsubsec Mensaje de error FT_Get_Glyph_Name
1113 @translationof Error message FT_Get_Glyph_Name
1114
1115 Este mensaje de error aparece en la salida de la consola o en el
1116 archivo log de registro si un archivo de entrada contiene un carácter
1117 que no es ASCII y no se ha guardado en la codificación de caracteres
1118 UTF-8.  Para ver más detalles, consulte @ruser{Codificación del
1119 texto}.
1120
1121
1122 @node Advertencia sobre que las afinidades del pentagrama sólo deben decrecer
1123 @unnumberedsubsec Advertencia sobre que las afinidades del pentagrama sólo deben decrecer
1124 @translationof Warning staff affinities should only decrease
1125
1126 Esta advertencia puede aparecer si no hay ningún pentagrama en la
1127 salida impresa, por ejemplo si sólo hay un contexto @code{ChordName} y
1128 un contexto @code{Lyrics} como en una hoja guía de acordes.  Los
1129 mensajes de advertencia se pueden evitar haciendo que uno de los
1130 contextos se comporte como un pentagrama, insertando
1131
1132 @example
1133 \override VerticalAxisGroup.staff-affinity = ##f
1134 @end example
1135
1136 @noindent
1137 al comienzo.  Para ver más detalles, consulte @qq{Espaciado de las
1138 líneas que no son pautas} en @ruser{Espaciado vertical flexible dentro
1139 de los sistemas}.
1140
1141
1142 @node Mensaje de error Unexpected new
1143 @unnumberedsubsec Mensaje de error Unexpected @code{@bs{}new}
1144 @translationof Error message unexpected new
1145
1146 Un bloque @code{\score} debe contener una @emph{única} expresión
1147 musical.  Si en vez de ello contiene varias instrucciones
1148 @code{\new Staff}, @code{\new StaffGroup} o contextos similares
1149 introducidos con @code{\new} sin que se hayan encerrado entre
1150 llaves curvas, @code{@{ @dots{} @}}, o dobles paréntesis en
1151 ángulo, @code{<< @dots{}  >>}, así:
1152
1153 @example
1154 \score @{
1155   % Invalid! Generates error: syntax error, unexpected \new
1156   \new Staff @{ @dots{} @}
1157   \new Staff @{ @dots{} @}
1158 @}
1159 @end example
1160
1161 @noindent
1162 entonces se producirá el mensaje de error.
1163
1164 Para evitar el error, encierre todas las instrucciones @code{\new}
1165 dentro de llaves curvas o dobles paréntesis en ángulo.
1166
1167 El uso de llaves curvas introduce las instrucciones @code{\new} de
1168 forma secuencial:
1169
1170 @lilypond[quote,verbatim]
1171 \score {
1172   {
1173     \new Staff { a' a' a' a' }
1174     \new Staff { g' g' g' g' }
1175   }
1176 }
1177 @end lilypond
1178
1179 @noindent
1180 pero es más probable que se encuentre utilizando dobles ángulos de
1181 manera que los pentagramas nuevos se inserten en paralelo, es
1182 decir, simultáneamente:
1183
1184 @lilypond[quote,verbatim]
1185 \score {
1186   <<
1187     \new Staff { a' a' a' a' }
1188     \new Staff { g' g' g' g' }
1189   >>
1190 }
1191 @end lilypond