]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/es/usage/running.itely
Doc-es: remove duplicated section and adjust hierarchies.
[lilypond.git] / Documentation / es / usage / running.itely
1 @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*-
2
3 @ignore
4     Translation of GIT committish: 45945bd973aa9161b10e3f517902afb7ef4b4a56
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.12.0"
12
13
14 @node Ejecutar LilyPond
15 @chapter Ejecutar LilyPond
16 @translationof Running LilyPond
17
18 Este capítulo detalla los aspectos técnicos de la ejecución de
19 LilyPond.
20
21 @menu
22 * Utilización normal::
23 * Utilización desde la línea de órdenes::
24 * Mensajes de error::
25 * Actualizar ficheros con convert-ly::
26 * Informar de fallos::
27 @end menu
28
29
30 @node Utilización normal
31 @section Utilización normal
32 @translationof Normal usage
33
34 Casi todos los usuarios ejecutan LilyPond por medio de un interfaz
35 gráfico; consulte @rlearning{Primeros pasos} si no lo ha leído aún.
36
37
38 @node Utilización desde la línea de órdenes
39 @section Utilización desde la línea de órdenes
40 @translationof Command-line usage
41
42 Esta sección contiene información adicional sobre el uso de LilyPond
43 en la línea de órdenes.  Esta forma puede ser preferible para pasarle
44 al programa algunas opciones adicionales.  Además, existen algunos
45 programas complementarios @q{de apoyo} (como @code{midi2ly}) que sólo
46 están disponibles en la línea de órdenes.
47
48 Al hablar de la @q{línea de órdenes}, nos referimos a la consola del
49 sistema operativo.  Los usuarios de Windows posiblemente estén más
50 familiarizados con los términos @q{ventana de MS-DOS} o @q{línea de
51 comandos}; Los usuarios de MacOS@tie{}X puede que estén más
52 familiarizados con los términos @q{terminal} o @q{consola}.  Éstos
53 deberían consultar también el apartado @ref{Configuración para 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 @end menu
65
66 @node Invocar a LilyPond
67 @unnumberedsubsec Invocar @command{lilypond}
68 @translationof Invoking lilypond
69
70 @cindex invocar @command{lilypond}
71 @cindex opciones de la línea de órdenes para @command{lilypond}
72 @cindex órdenes, opciones de la línea de
73
74 El ejecutable @command{lilypond} se puede llamar desde la línea de
75 órdenes de la siguiente manera:
76
77 @example
78 lilypond [@var{opción}]@dots{} @var{archivo}@dots{}
79 @end example
80
81 Cuando se invoca con un nombre de archivo sin extensión, se prueba en
82 primer lugar con la extensión @file{.ly}.  Para leer la entrada desde
83 stdin, utilice un guión (@code{-}) en sustitución de @var{archivo}.
84
85 Cuando se procesa @file{archivo.ly}, la salida resultante son los
86 archivos @file{archivo.ps} y @file{archivo.pdf}.  Se pueden
87 especificar varios archivos; cada uno de ellos se procesará de forma
88 independiente@footnote{El estado de GUILE no se restablece después de
89 procesar un archivo @code{.ly}, por lo que debe tener cuidado de no
90 modificar ningún valor predeterminado desde dentro de Scheme.}.
91
92 Si @file{archivo.ly} contiene más de un bloque @code{\score}, el resto
93 de las partituras se obtendrán como salida en archivos numerados,
94 empezando por @file{archivo-1.pdf}.  además, el valor de
95 @code{output-suffix} (sufijo de salida) se insertará entre el nombre
96 base y el número.  Un archivo de entrada que contenga
97
98 @example
99 #(define output-suffix "violin")
100 \score @{ @dots{} @}
101 #(define output-suffix "cello")
102 \score @{ @dots{} @}
103 @end example
104
105 @noindent
106 producirá como salida @var{base}@file{-violin.pdf} y
107 @var{base}@file{-cello-1.pdf}.
108
109
110 @node Opciones de la línea de órdenes para lilypond
111 @unnumberedsubsec Opciones de la línea de órdenes para @command{lilypond}
112 @translationof Command line options for lilypond
113
114 Están contempladas las siguientes opciones:
115
116 @table @code
117
118 @item -e,--evaluate=@var{expresión}
119 Evaluar la @var{expresión} de Scheme antes de analizar los archivos
120 @file{.ly}.  Se pueden pasar varias opciones @code{-e}, que se
121 evaluarán en secuencia.
122
123 La expresión se evaluará en el módulo @code{guile-user}, de manera que
124 si quiere usar definiciones dentro de @var{expresión}, debe utilizar
125
126 @example
127 lilypond -e '(define-public a 42)'
128 @end example
129
130 @noindent
131 en la línea de órdenes, e incluir
132
133 @example
134 #(use-modules (guile-user))
135 @end example
136
137 @noindent
138 al principio del archivo @code{.ly}.
139
140 @item -f,--format=@var{formato}
141 Formato de la salida.  Como @code{formato} se puede elegir entre
142 @code{svg}, @code{ps}, @code{pdf} y @code{png}.
143
144 Ejemplo: @code{lilypond -fpng @var{archivo}.ly}
145
146 @item -d,--define-default=@var{variable}=@var{valor}
147 Establece la opción interna del programa @var{variable} al valor de
148 Scheme @var{valor}.  Si no se proporciona ningún @var{valor}, se usa
149 @var{#t}.  Para desactivar una opción se puede anteponer @code{no-} a
150 la @var{variable}, p.ej.:
151
152 @cindex apuntar y pulsar, línea de órdenes
153
154 @example
155 -dno-point-and-click
156 @end example
157
158 @noindent
159 es lo mismo que
160 @example
161 -dpoint-and-click='#f'
162 @end example
163
164 A continuación veremos algunas opciones interesantes.
165
166 @table @samp
167 @item help
168 La ejecución de @code{lilypond -dhelp} imprimirá todas las opciones
169 @code{-d} que están disponibles.
170
171 @item paper-size
172 Esta opción establece el tamaño predeterminado del papel,
173 @example
174 -dpaper-size=\"letter\"
175 @end example
176
177 @noindent
178 Observe que la cadena se debe incluir dentro de comillas escapadas
179 ( @code{\"} ).
180
181 @c Match " in previous line to help context-sensitive editors
182
183 @item safe
184 No confiar en la entrada @code{.ly}.
185
186 Cuando el proceso de tipografía de LilyPond se encuentra disponible a
187 través de un servidor web, @b{SE DEBEN} pasar las opciones
188 @code{--safe} (seguro) o @code{--jail} (jaula).  La opción
189 @code{--safe} evita que el código de Scheme en línea arme un desastre,
190 por ejemplo
191
192 @quotation
193 @verbatim
194 #(system "rm -rf /")
195 {
196   c4^#(ly:export (ly:gulp-file "/etc/passwd"))
197 }
198 @end verbatim
199 @end quotation
200
201 La opción @code{-dsafe} funciona evaluando las expresiones en línea de
202 Scheme dentro de un módulo especial seguro.  Este módulo seguro deriva
203 del módulo GUILE @file{safe-r5rs}, pero añade ciertas funciones del
204 API de LilyPond.  Estas funciones se relacionan en
205 @file{scm/@/safe@/-lily@/.scm}.
206
207 Además, el modo seguro prohíbe las directivas @code{\include} e
208 inhabilita el uso de barras invertidas en las cadenas de @TeX{}.
209
210 En el modo seguro, no es posible la importación de variables de
211 LilyPond dentro de Scheme.
212
213 @code{-dsafe} @emph{no} detecta la sobreutilización de recursos.  Aún
214 es posible hacer que el programa se cuelgue indefinidamente, por
215 ejemplo alimentando el backend con estructuras de datos cíclicas.  Por
216 tanto, si se está utilizando LilyPond sobre un servidor web accesible
217 públicamente, el proceso debe limitarse tanto en el uso de CPU como de
218 memoria.
219
220 El modo seguro impide que muchos fragmentos útiles de código de
221 LilyPond se puedan compilar.  La opción @code{--jail} es una
222 alternativa más segura, pero su preparación requiere más trabajo.
223
224 @cindex salida, establecer el formato de
225 @item backend
226 el formato de salida que usar para el back-end o extremo final.
227 Para el @code{formato} se puede elegir entre
228 @table @code
229 @item ps
230 @cindex PostScript, salida
231 para PostScript.
232
233 Los archivos PostScript incluyen las tipografías TTF, Type1 y OTF.  No
234 se seleccionan subconjuntos de estas tipografías.  Cuando se usan
235 conjuntos de caracteres orientales, esto puede dar lugar a archivos
236 enormes.
237
238 @item eps
239  para obtener PostScript encapsulado.  Esto vuelca cada una de las
240 páginas/sistemas como un archivo @file{EPS} distinto, sin tipografías,
241 y como un solo archivo @file{EPS} encuadernado con todas las
242 páginas/sistemas con las tipografías incluidas.
243
244 Este modo se usa de forma predeterminada por parte de
245 @command{lilypond-book}.
246
247 @item svg
248 @cindex SVG (Scalable Vector Graphics)
249  para obtener SVG (gráficos vectoriales escalables).
250
251 Crea un único archivo SVG que contiene toda la salida de música, con
252 las tipografías incrustadas.  Se necesita un visor de SVG que
253 contemple las tipografías incrustadas, o un visor de SVG que pueda
254 sustituir las tipografías incrustadas por tipografías OTF.  Bajo UNIX,
255 puede usar @uref{http://www.inkscape.org,Inkscape} (versión 0.42 o
256 posterior), después de copiar las tipografías OTF del directorio de
257 LilyPond (que normalmente es
258 @file{/usr/share/lilypond/VERSIÓN/fonts/otf/}) al directorio
259 @file{~/.fonts/}.
260
261 @item scm
262 @cindex Scheme, volcado de
263  para obtener un volcado de las instrucciones internas de dibujo
264 basadas en Scheme, en bruto.
265 @item null
266  no producir una salida impresa; tiene el mismo efecto que @code{-dno-print-pages}.
267 @end table
268
269 Ejemplo: @code{lilypond -dbackend=svg @var{archivo}.ly}
270
271 @item preview
272 Generar un archivo de salida que contenga solamente los títulos de
273 cabecera y el primer sistema de la primera página.
274
275 @item print-pages
276 Generar las páginas completas, el ajuste predeterminado.
277 @code{-dno-print-pages} es útil en combinación con @code{-dpreview}.
278
279 @end table
280
281
282
283 @item -h,--help
284 Mostrar un resumen de las formas de utilización.
285
286 @item -H,--header=@var{CAMPO}
287 Volcar un campo de cabecera al archivo @file{NOMBREBASE.@var{CAMPO}}
288
289 @item --include, -I=@var{directorio}
290 Añadir el @var{directorio} a la ruta de búsqueda de archivos de
291 entrada.
292 @cindex archivos, búsqueda de
293 @cindex búsqueda, ruta de
294
295 @item -i,--init=@var{archivo}
296 Establecer el archivo de inicio a @var{archivo} (predeterminado:
297 @file{init.ly}).
298
299 @item -o,--output=@var{ARCHIVO}
300 Establecer el nombre del archivo de salida predeterminado a
301 @var{ARCHIVO}.  Se añade el sufijo correspondiente (por ejemplo,
302 @code{.pdf} para PDF).
303
304 @item --ps
305 Generar PostScript.
306
307 @item --png
308 Generar imágenes de las páginas en formato PNG.  Esto implica
309 @code{--ps}.  La resolución en PPP de la imagen se puede establecer
310 con
311 @example
312 -dresolution=110
313 @end example
314
315 @item --pdf
316 Generar PDF.  Implica @code{--ps}.
317
318 @item -j,--jail=@var{usuario},@var{grupo},@var{jaula},@var{directorio}
319 Ejecutar @command{lilypond} en una jaula de chroot.
320
321 La opción @code{--jail} (jaula) proporciona una alternativa más
322 flexible a la opción @code{--safe} cuando el proceso de tipografía de
323 LilyPond está disponible a través de un servidor web o cuando LilyPond
324 ejecuta archivos fuente procedentes del exterior.
325
326 La opción @code{--jail} funciona cambiando la raíz de
327 @command{lilypond} a @var{jaula} justo antes de comenzar el proceso de
328 compilación en sí.  Entonces se cambian el usuario y el grupo a los
329 que se han dado en la opción, y el directorio actual se cambia a
330 @var{directorio}.  Esta instalación garantiza que no es posible, al
331 menos en teoría, escapar de la jaula.  Observe que para que funcione
332 @code{--jail} se debe ejecutar @command{lilypond} como root, lo que
333 normalmente se puede hacer de una forma segura utilizando
334 @command{sudo}.
335
336 La instalación de una jaula es un asunto algo delicado, pues debemos
337 asegurarnos de que LilyPond puede encontrar @emph{dentro de la jaula}
338 todo lo que necesita para poder compilar la fuente.  Una configuración
339 típica consta de los siguientes elementos:
340
341 @table @asis
342 @item Preparar un sistema de archivos separado
343 Se debe crear un sistema de archivos separado para LilyPond, de forma
344 que se pueda montar con opciones seguras como @code{noexec},
345 @code{nodev} y @code{nosuid}.  De esta forma, es imposible ejecutar
346 programas o escribir directamente a un dispositivo desde LilyPond.  Si
347 no quiere crear una partición separada, tan sólo tiene que crear un
348 archivo de un tamaño razonable y usarlo para montar un dispositivo
349 loop.  El sistema de archivos separado garantiza también que LilyPond
350 nunca pueda escribir en un espacio mayor del que se le permita.
351
352 @item Preparar un usuario separado
353 Se debe usar un usuario y grupo separados (digamos
354 @code{lily}/@code{lily}) con bajos privilegios para ejecutar LilyPond
355 dentro de la jaula.  Debería existir un solo directorio con permisos
356 de escritura para este usuario, y debe pasarse en el valor
357 @var{directorio}.
358
359 @item Preparar la jaula
360 LilyPond necesita leer algunos archivos mientras se ejecuta.  Todos
361 estos archivos se deben copiar dentro de la jaula, bajo la misma ruta
362 en que aparecen en el sistema de archivos real de root.  Todo el
363 contenido de la instalación de LilyPond (por ejemplo
364 @file{/usr/share/lilypond}) se debe copiar.
365
366 Si surgen problemas, la forma más sencilla de rastrearlos es ejecutar
367 LilyPond usando @command{strace}, lo que le permitirá determinar qué
368 archivos faltan.
369
370 @item Ejecutar LilyPond
371 Dentro de una jaula montada con @code{noexec} es imposible ejecutar
372 ningún programa externo.  Por tanto, LilyPond se debe ejecutar con un
373 backend que no necesite tal programa.  Como ya mencionamos, también se
374 debe ejecutar con privilegios del superusuario (que por supuesto
375 perderá inmediatamente), posiblemente usando @command{sudo}.  Es buena
376 idea limitar el número de segundos de tiempo de CPU que LilyPond puede
377 usar (p.ej., usando @command{ulimit -t}), y, si su sistema operativo
378 lo contempla, el tamaño de la memoria que se puede reservar.
379 @end table
380
381
382 @item -v,--version
383 Mostrar la información de la versión.
384
385 @item -V,--verbose
386 Ser prolijo: mostrar las rutas completas de todos los archivos que se
387 leen, y dar información cronométrica.
388
389 @item -w,--warranty
390 Mostrar la garantía con que viene GNU LilyPond (¡no viene con
391 @strong{NINGUNA GARANTÍA}!).
392 @end table
393
394 @node Variables de entorno
395 @unnumberedsubsec Variables de entorno
396 @translationof Environment variables
397
398
399 @cindex LANG
400 @cindex LILYPOND_DATADIR
401
402 @command{lilypond} reconoce las siguientes variables de entorno:
403 @table @code
404 @item LILYPOND_DATADIR
405 Especifica un directorio en el que los mensajes de localización y de
406 datos se buscarán de forma predeterminada.  El directorio debe
407 contener subdirectorios llamados @file{ly/}, @file{ps/}, @file{tex/},
408 etc.
409
410 @item LANG
411 Selecciona el idioma de los mensajes de advertencia.
412
413 @item LILYPOND_GC_YIELD
414 Con esta variable se puede ajustar la huella y el desempeño de
415 memoria.  Es un porcentaje que ajusta el comportamiento de la
416 administración de memoria.  Con valores más altos, el programa usa más
417 memoria; con valores más bajos, usa más tiempo de CPU.  El valor
418 predeterminado es @code{70}.
419
420 @end table
421
422
423 @node Mensajes de error
424 @section Mensajes de error
425 @translationof Error messages
426
427 @cindex error, mensajes de
428 @cindex mensajes de error
429
430 Pueden aparecer distintos mensajes de error al compilar un archivo:
431
432 @table @emph
433
434 @item Advertencia
435 @cindex advertencia
436 Algo tiene un aspecto sospechoso.  Si estamos pidiendo algo fuera de
437 lo común, entenderemos el mensaje y podremos ignorarlo.  Sin embargo,
438 las advertencias suelen indicar que algo va mal con el archivo de
439 entrada.
440
441 @item Error
442 @cindex error
443 Algo va claramente mal.  El paso actual de procesamiento (análisis,
444 interpretación o formateo visual) se dará por terminado, pero el
445 siguiente paso se saltará.
446
447 @item Error fatal
448 @cindex error fatal
449 @cindex fatal, error
450 Algo va claramente mal, y LilyPond no puede seguir.  Rara vez sucede
451 esto.  La causa más frecuente son las tipografías mal instaladas.
452
453 @item Error de Scheme
454 @cindex traza de Scheme
455 @cindex llamadas, traza de
456 @cindex Scheme, error de
457 @cindex error de Scheme
458 Los errores que ocurren al ejecutar código de Scheme se interceptan
459 por parte del intérprete de Scheme.  Si se está ejecutando con las
460 opciones @code{-V} o @code{--verbose} (prolijo) entonces se imprime
461 una traza de llamadas de la función ofensiva.
462
463 @item Error de programación
464 @cindex error de programación
465 @cindex programación, error de
466 Ha habido algún tipo de inconsistencia interna.  Estos mensajes de
467 error están orientados a ayudar a los programadores y a los
468 depuradores.  Normalmente se pueden ignorar.  En ocasiones aparecen en
469 cantidades tan grandes que pueden entorpecer la visión de otros
470 mensajes de salida.
471
472 @item Abortado (volcado de core)
473 Esto señala un error de programación serio que ha causado la
474 interrupción abrupta del programa.  Estos errores se consideran
475 críticos.  Si se topa con uno, envíe un informe de fallo.
476 @end table
477
478 @cindex error, formato de los mensajes de
479
480 Se los errores y advertencias se pueden ligar a un punto del archivo
481 de entrada, los mensajes tienen la forma siguiente:
482
483 @example
484 @var{archivo}:@var{línea}:@var{columna}: @var{mensaje}
485 @var{línea de entrada problemática}
486 @end example
487
488 Se inserta un salto de línea en la línea problemática para indicar la
489 columna en que se encontró el error. Por ejemplo,
490
491 @example
492 prueba.ly:2:19: error: no es una duración: 5
493   @{ c'4 e'
494            5 g' @}
495 @end example
496
497 Estas posiciones son la mejor suposición de LilyPond sobre dónde se ha
498 producido el mensaje de error, pero (por su propia naturaleza) las
499 advertencias y errores se producen cuando ocurre algo inesperado.  Si
500 no ve un error en la línea que se indica del archivo de entrada, trate
501 de comprobar una o dos líneas por encima de la posición indicada.
502
503 Se ofrece más información sobre los errores en la sección @ref{Errores
504 comunes}.
505
506 @node Errores comunes
507 @section Errores comunes
508 @translationof Common errors
509
510 @untranslated