X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fes%2Fusage%2Frunning.itely;h=4aefc1badb5bffd1887b3d3d952c279c610b7d2c;hb=13da8b27aabc5d5a752d00ed1e2b99ad20f0f264;hp=ecc07fd05d0da4376180c2cfd566a45ad3c6073d;hpb=a7210078ea5ed650743536c8fcd8b7291322d0e7;p=lilypond.git diff --git a/Documentation/es/usage/running.itely b/Documentation/es/usage/running.itely index ecc07fd05d..4aefc1badb 100644 --- a/Documentation/es/usage/running.itely +++ b/Documentation/es/usage/running.itely @@ -1,14 +1,14 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*- @ignore - Translation of GIT committish: 3b870eb9ab448ebc11a2d6283ad35796b22351aa + Translation of GIT committish: 26a079ca2393d053315ef8dbef626c897dc9645a When revising a translation, copy the HEAD committish of the version that you are working on. For details, see the Contributors' Guide, node Updating translation committishes.. @end ignore -@c \version "2.12.0" +@c \version "2.17.6" @node Ejecutar LilyPond @@ -59,8 +59,10 @@ documentos sobre este tema si no le resulta familiar la línea de @menu * Invocar a LilyPond:: -* Opciones de la línea de órdenes para lilypond:: +* Opciones básicas de la línea de órdenes para LilyPond:: +* Opciones avanzadas de línea de órdenes para LilyPond:: * Variables de entorno:: +* LilyPond en una jaula de chroot:: @end menu @node Invocar a LilyPond @@ -103,9 +105,33 @@ producirá como salida @var{base}@file{-violin.pdf} y @var{base}@file{-cello-1.pdf}. -@node Opciones de la línea de órdenes para lilypond -@unnumberedsubsec Opciones de la línea de órdenes para @command{lilypond} -@translationof Command line options for lilypond +@unnumberedsubsubsec Instrucciones estándar de la línea de órdenes + +Si su terminal (o ventana de órdenes) contempla las redirecciones +normales, quizá le sean de utilidad las siguientes instrucciones para +redirigir la salida de la consola a un archivo: + +@itemize + +@item +@code{lilypond archivo.ly 1>salidaestandar.log} para redirigir la salida normal + +@item +@code{lilypond archivo.ly 2>salidadeerror.log} para redirigir los mensajes de error + +@item +@code{lilypond archivo.ly &>todo.log} para redirigir toda la salida + +@end itemize + +Consulte la documentación de su shell para ver si contempla estas +opciones, o si la sintaxis es distinta. Observe que son instrucciones +del shell y que no tienen nada que ver con lilypond. + + +@node Opciones básicas de la línea de órdenes para LilyPond +@unnumberedsubsec Opciones básicas de la línea de órdenes para LilyPond +@translationof Basic command line options for LilyPond @cindex invocación de @command{lilypond} @cindex opciones de la línea de órdenes para @command{lilypond} @@ -116,9 +142,15 @@ Están contempladas las siguientes opciones: @table @code +@item -d,--define-default=@var{variable}=@var{valor} +Véase @ref{Opciones avanzadas de línea de órdenes para LilyPond}. + +@cindex Scheme, evaluación de expresiones +@cindex expresiones de Scheme, evaluación + @item -e,--evaluate=@var{expresión} Evaluar la @var{expresión} de Scheme antes de analizar los archivos -@file{.ly}. Se pueden pasar varias opciones @code{-e}, que se +@file{.ly}. Se pueden pasar varias opciones @option{-e}, que se evaluarán en secuencia. La expresión se evaluará en el módulo @code{guile-user}, de manera que @@ -136,165 +168,18 @@ en la línea de órdenes, e incluir @end example @noindent -al principio del archivo @code{.ly}. - -@item -f,--format=@var{formato} -Formato de la salida. Como @code{formato} se puede elegir entre -@code{ps}, @code{pdf} y @code{png}. - -Ejemplo: @code{lilypond -fpng @var{archivo}.ly} - -@item -d,--define-default=@var{variable}=@var{valor} -Establece la opción interna del programa @var{variable} al valor de -Scheme @var{valor}. Si no se proporciona ningún @var{valor}, se usa -@var{#t}. Para desactivar una opción se puede anteponer @code{no-} a -la @var{variable}, p.ej.: - -@cindex apuntar y pulsar, línea de órdenes - -@example --dno-point-and-click -@end example - -@noindent -es lo mismo que -@example --dpoint-and-click='#f' -@end example - -A continuación veremos algunas opciones interesantes. - -@cindex help (ayuda), línea de órdenes - -@table @samp -@item help -La ejecución de @code{lilypond -dhelp} imprimirá todas las opciones -@code{-d} que están disponibles. - -@cindex paper-size, línea de órdenes - -@item paper-size -Esta opción establece el tamaño predeterminado del papel, -@example --dpaper-size=\"letter\" -@end example - -@noindent -Observe que la cadena se debe incluir dentro de comillas escapadas -( @code{\"} ). - -@c Match " in previous line to help context-sensitive editors - -@cindex safe, línea de órdenes - -@item safe -No confiar en la entrada @code{.ly}. - -Cuando el proceso de tipografía de LilyPond se encuentra disponible a -través de un servidor web, @b{SE DEBEN} pasar las opciones -@code{--safe} (seguro) o @code{--jail} (jaula). La opción -@code{--safe} evita que el código de Scheme en línea arme un desastre, -por ejemplo - -@quotation -@verbatim -#(system "rm -rf /") -{ - c4^#(ly:export (ly:gulp-file "/etc/passwd")) -} -@end verbatim -@end quotation - -La opción @code{-dsafe} funciona evaluando las expresiones en línea de -Scheme dentro de un módulo especial seguro. Este módulo seguro deriva -del módulo GUILE @file{safe-r5rs}, pero añade ciertas funciones del -API de LilyPond. Estas funciones se relacionan en -@file{scm/@/safe@/-lily@/.scm}. - -Además, el modo seguro prohíbe las directivas @code{\include} e -inhabilita el uso de barras invertidas en las cadenas de @TeX{}. - -En el modo seguro, no es posible la importación de variables de -LilyPond dentro de Scheme. - -@code{-dsafe} @emph{no} detecta la sobreutilización de recursos. Aún -es posible hacer que el programa se cuelgue indefinidamente, por -ejemplo alimentando el backend con estructuras de datos cíclicas. Por -tanto, si se está utilizando LilyPond sobre un servidor web accesible -públicamente, el proceso debe limitarse tanto en el uso de CPU como de -memoria. - -El modo seguro impide que muchos fragmentos útiles de código de -LilyPond se puedan compilar. La opción @code{--jail} es una -alternativa más segura, pero su preparación requiere más trabajo. - -@cindex salida, establecer el formato de -@item backend -el formato de salida que usar para el back-end o extremo final. -Para el @code{formato} se puede elegir entre -@table @code -@item ps -@cindex PostScript, salida -para PostScript. - -Los archivos PostScript incluyen las tipografías TTF, Type1 y OTF. No -se seleccionan subconjuntos de estas tipografías. Cuando se usan -conjuntos de caracteres orientales, esto puede dar lugar a archivos -enormes. - -@item eps - para obtener PostScript encapsulado. Esto vuelca cada una de las -páginas/sistemas como un archivo @file{EPS} distinto, sin tipografías, -y como un solo archivo @file{EPS} encuadernado con todas las -páginas/sistemas con las tipografías incluidas. - -Este modo se usa de forma predeterminada por parte de -@command{lilypond-book}. - -@item svg - -@cindex SVG (Gráficos vectoriales escalables) - - para obtener SVG (gráficos vectoriales escalables). - -Crea un único archivo SVG que contiene toda la salida de música, con -las tipografías incrustadas. Se necesita un visor de SVG que -contemple las tipografías incrustadas, o un visor de SVG que pueda -sustituir las tipografías incrustadas por tipografías OTF. Bajo UNIX, -puede usar @uref{http://www.inkscape.org,Inkscape} (versión 0.42 o -posterior), después de copiar las tipografías OTF del directorio de -LilyPond (que normalmente es -@file{/usr/share/lilypond/VERSIÓN/fonts/otf/}) al directorio -@file{~/.fonts/}. - -@item scm - -@cindex Scheme, volcado de - - para obtener un volcado de las instrucciones internas de dibujo -basadas en Scheme, en bruto. - -@item null - no producir una salida impresa; tiene el mismo efecto que @code{-dno-print-pages}. -@end table - -Ejemplo: @code{lilypond -dbackend=svg @var{archivo}.ly} - -@item preview -@cindex vista previa, línea de órdenes -Generar un archivo de salida que contenga solamente los títulos de -cabecera y el primer sistema de música. Si se usan bloques -@code{\bookpart}, los títulos y el primer sistema de todos los bloques -@code{\bookpart} aparecerán en la salida. Los motores @code{ps}, -@code{eps} y @code{svg} contemplan esta opción. +al principio del archivo @file{.ly}. -@item print-pages -Generar las páginas completas, el ajuste predeterminado. -@code{-dno-print-pages} es útil en combinación con @code{-dpreview}. +@warning{Los usuarios de Windows deben utilizar comillas dobles en lugar de apóstrofos simples.} -@end table +@cindex output, format +@cindex format, output +@item -f,--format=@var{format} +which formats should be written. Choices for @code{format} are +@code{ps}, @code{pdf}, and @code{png}. +Example: @code{lilypond -fpng @var{filename}.ly} @item -h,--help Mostrar un resumen de las formas de utilización. @@ -302,63 +187,50 @@ Mostrar un resumen de las formas de utilización. @item -H,--header=@var{CAMPO} Volcar un campo de cabecera al archivo @file{NOMBREBASE.@var{CAMPO}} -@item --include, -I=@var{directorio} -Añadir el @var{directorio} a la ruta de búsqueda de archivos de -entrada. -@cindex archivos, búsqueda de -@cindex búsqueda, ruta de - @item -i,--init=@var{archivo} Establecer el archivo de inicio a @var{archivo} (predeterminado: @file{init.ly}). -@item -o,--output=@var{ARCHIVO} -Establecer el nombre del archivo de salida predeterminado a -@var{ARCHIVO}. Se añade el sufijo correspondiente (por ejemplo, -@code{.pdf} para PDF). - -@item --ps -Generar PostScript. - -@item --png -Generar imágenes de las páginas en formato PNG. Esto implica -@code{--ps}. La resolución en PPP de la imagen se puede establecer -con -@example --dresolution=110 -@end example - -@cindex PDF (formato de documento portátil), salida de +@cindex archivos, búsqueda de +@cindex búsqueda, ruta de -@item --pdf -Generar PDF. Implica @code{--ps}. +@item -I, --include=@var{directorio} +Añadir el @var{directorio} a la ruta de búsqueda de archivos de +entrada. +Se pueden escribir varias opciones -I. La búsqueda se inicia en el +primer directorio definido, y si el archivo que se debe incluir no se +encuentra, la búsqueda continúa en los directorios siguientes. +@cindex chroot, ejecutar dentro de una jaula @item -j,--jail=@var{usuario},@var{grupo},@var{jaula},@var{directorio} Ejecutar @command{lilypond} en una jaula de chroot. -La opción @code{--jail} (jaula) proporciona una alternativa más -flexible a la opción @code{--safe} cuando el proceso de tipografía de +La opción @option{--jail} (jaula) proporciona una alternativa más +flexible a la opción @option{-dsafe} cuando el proceso de tipografía de LilyPond está disponible a través de un servidor web o cuando LilyPond -ejecuta archivos fuente procedentes del exterior. +ejecuta instrucciones enviadas por fuentes externas +(véase @ref{Opciones avanzadas de línea de órdenes para LilyPond}). -La opción @code{--jail} funciona cambiando la raíz de +La opción @option{--jail} funciona cambiando la raíz de @command{lilypond} a @var{jaula} justo antes de comenzar el proceso de compilación en sí. Entonces se cambian el usuario y el grupo a los que se han dado en la opción, y el directorio actual se cambia a @var{directorio}. Esta instalación garantiza que no es posible, al menos en teoría, escapar de la jaula. Observe que para que funcione -@code{--jail} se debe ejecutar @command{lilypond} como root, lo que +@option{--jail}, se debe ejecutar @command{lilypond} como root, lo que normalmente se puede hacer de una forma segura utilizando @command{sudo}. -La instalación de una jaula es un asunto algo delicado, pues debemos -asegurarnos de que LilyPond puede encontrar @emph{dentro de la jaula} -todo lo que necesita para poder compilar la fuente. Una configuración -típica consta de los siguientes elementos: +La instalación de una jaula puede ser un asunto relativamente +complejo, pues debemos asegurarnos de que LilyPond puede encontrar +@emph{dentro} de la propia jaula todo lo que necesita para poder +compilar la fuente. Una típica configuración de jaula de chroot +consta de los siguientes elementos: @table @asis + @item Preparar un sistema de archivos separado Se debe crear un sistema de archivos separado para LilyPond, de forma que se pueda montar con opciones seguras como @code{noexec}, @@ -390,14 +262,84 @@ archivos faltan. @item Ejecutar LilyPond Dentro de una jaula montada con @code{noexec} es imposible ejecutar ningún programa externo. Por tanto, LilyPond se debe ejecutar con un -backend que no necesite tal programa. Como ya mencionamos, también se +backend que no necesite tal programa. Como ya hemos mencionado, se debe ejecutar con privilegios del superusuario (que por supuesto -perderá inmediatamente), posiblemente usando @command{sudo}. Es buena -idea limitar el número de segundos de tiempo de CPU que LilyPond puede -usar (p.ej., usando @command{ulimit -t}), y, si su sistema operativo -lo contempla, el tamaño de la memoria que se puede reservar. +perderá inmediatamente), posiblemente usando @command{sudo}. También +es una práctica recomendable limitar el número de segundos de tiempo +de CPU que LilyPond puede usar (p.ej., usando +@command{ulimit@tie{}-t}), y, si su sistema operativo lo contempla, el +tamaño de la memoria que se puede reservar. Véase también +@ref{LilyPond en una jaula de chroot}. + +@end table + +@cindex loglevel +@cindex registro, nivel de +@cindex salida prolija, fijar el nivel + +@item -l,--loglevel=@var{LEVEL} +Fijar el grado en que la salida de consola es prolija al nivel +@var{LEVEL}. Los valores posibles son: + +@table @code + +@item NONE +Ninguna salida en absoluto, ni siquiera mensajes de error. + +@item ERROR +Solamente mensajes de error, no advertencias o indicaciones de progreso. + +@item WARN +Advertencias y mensajes de error, no de progreso. + +@item BASIC_PROGRESS +Mensajes de progreso básicos (éxito), advertencias y errores. + +@item PROGRESS +Todos los mensajes de progreso, advertencias y errores. + +@item INFO (predeterminado) +Mensajes de progreso, advertencias, errores e información de ejecución +adicional. + +@item DEBUG +Todos los mensajes posibles, incuida la información de depuración +prolija. @end table +@cindex carpeta, dirigir la salida hacia +@cindex salida, establecer el nombre del archivo de + +@item -o,--output=@var{ARCHIVO} o @var{CARPETA} +Establecer el nombre del archivo de salida predeterminado a +@var{ARCHIVO} o, si existe una carpeta con ese nombre, dirigir la +salida hacia @var{CARPETA}, tomando el nombre de archivo del documento +de entrada. Se añade el sufijo correspondiente (por ejemplo, +@code{.pdf} para PDF) en los dos casos. + +@cindex PS (Postscript), salida +@cindex Postscript (PS), salida +@cindex salida, PS (Postscript) + +@item --ps +Generar PostScript. + +@cindex PNG (Portable Network Graphics), salida +@cindex salida, PNG (Portable Network Graphics) + +@item --png +Generar imágenes de las páginas en formato PNG. Esto implica +@option{--ps}. La resolución en PPP de la imagen se puede establecer +con +@example +-dresolution=110 +@end example + +@cindex PDF (formato de documento portátil), salida de +@cindex salida, PDF (formato de documento portátil) + +@item --pdf +Generar PDF. Implica @option{--ps}. @item -v,--version Mostrar la información de la versión. @@ -409,13 +351,392 @@ leen, y dar información cronométrica. @item -w,--warranty Mostrar la garantía con que viene GNU LilyPond (¡no viene con @strong{NINGUNA GARANTÍA}!). + +@end table + + +@node Opciones avanzadas de línea de órdenes para LilyPond +@unnumberedsubsec Opciones avanzadas de línea de órdenes para LilyPond +@translationof Advanced command line options for LilyPond + +@table @code + +@item -d@var{[option-name]}=@var{[value]},--define-default=@var{[option-name]}=@var{[value]} +Establece la función de Scheme interna equivalente a @var{valor}. Si +no se proporciona ningún @var{valor}, se usa el valor predeterminado. +Para desactivar una opción se puede anteponer @code{no-} a la +@var{variable}, p.ej.: + +@cindex point and click, command line + +@example +-dno-point-and-click +@end example + +@noindent +is the same as +@example +-dpoint-and-click=#f +@end example @end table +@noindent Están contempladas las siguientes opciones junto a sus respectivos +valores predeterminados: + +@multitable @columnfractions .33 .16 .51 +@item @strong{Símbolo} +@tab @strong{Valor} +@tab @strong{Explicación/Opciones} + +@item @code{anti-alias-factor} (factor de antialias) +@tab @code{1} +@tab Renderizar a mayor resolución (utilizando el factor dado) y reducir la +escala del resultado para así evitar @q{escaleras} en las imágenes +@code{PNG}. + +@item @code{aux-files} (archivos auxiliares) +@tab @code{#t} +@tab Crear archivos @code{.tex}, @code{.texi}, @code{.count} en el +@q{back-end} @code{EPS}. + +@item @code{backend} +@tab @code{'ps} +@tab Seleccionar un @q{back-end}. Los archivos (la opción predeterminada) +incluyen las fuentes tipográficas @code{TTF}, @code{Type1} y +@code{OTF}. No se hace ningún subconjunto de estas fuentes. El uso +de conjuntos de caracteres @q{orientales} puede dar lugar a archivos +muy grandes. + +@item +@tab @code{'eps} +@tab PostScript encapsulado. Vuelca cada página o sistema como un archivo +@file{EPS} distinto, sin fuentes tipográficas, y como un archivo +@file{EPS} encuadernado con todas las páginas o sistemas que incluye +las fuentes. Utilizado como opción predeterminada por parte de +@command{lilypond-book}. + +@item +@tab @code{'null} +@tab No producir ninguna partitura impresa a la salida; tiene el mismo +efecto que @code{-dno-print-pages}. + +@item +@tab @code{'svg} +@tab Grácifos vectoriales escalables. Crea un solo archivo @code{SVG}, sin +fuentes tipográficas incrustadas, por cada página de salida. Se +recomienda instalar las fuentes Century Schoolbook, incluidas con la +instalación de LilyPond, para un renderizado óptimo. Bajo UNIX, +bastará con que copie estaos archivos de fuente del directorio de +LilyPond (normalmente @file{/usr/share/lilypond/VERSION/fonts/otf/}) +al directorio @file{~/.fonts/}. La salida @code{SVG} debería ser +compatible con cualquier editor o cliente de SVG. También hay una +opción @code{svg-woff} (véase más abajo) para usar los archivos de +fuente woff en el @q{back-end} SVG. + +@item +@tab @code{'scm} +@tab Volcado de las instrucciones de dibujo internas basadas en Scheme, en +bruto. + +@item @code{check-internal-types} +@tab @code{#f} +@tab Comprobar el tipo de cada asignación de propiedades. + +@item @code{clip-systems} (recortar los sistemas) +@tab @code{#f} +@tab Generar fragmentos de imagen recortados de una partitura. + +@item @code{datadir} (directorio de datos) +@tab +@tab Prefijo de los archivos de datos (sólo lectura). + +@item @code{debug-gc} +@tab @code{#f} +@tab Volcar estadísticas de depuración de memoria. + +@item @code{debug-gc-assert-parsed-dead} +@tab @code{#f} +@tab Para la depuración de memoria: asegurarse de que todas las referencias +a objetos analizados están muertas. Es una opción interna, y se +activa automáticamente para @code{`-ddebug-gc'}. + +@item @code{debug-lexer} +@tab @code{#f} +@tab Depuración del analizador léxico flex. + +@item @code{debug-page-breaking-scoring} +@tab @code{#f} +@tab Volcar las partituras para muchas configuraciones de saltos de página +diferentes. + +@item @code{debug-parser} +@tab @code{#f} +@tab Depuración del analizador sintáctico bison. + +@item @code{debug-property-callbacks} +@tab @code{#f} +@tab Depuración de las cadenas cíclicas de funciones de callback. + +@item @code{debug-skylines} +@tab @code{#f} +@tab Depuración de las líneas de horizonte. + +@item @code{delete-intermediate-files} +@tab @code{#t} +@tab Eliminar los archivos intermedios @code{.ps} inútiles ques e crean +durante la compilación. + +@item @code{dump-cpu-profile} +@tab @code{#f} +@tab Volcar información de cuenta de tiempo (dependiente del sistema). + +@item @code{dump-profile} +@tab @code{#f} +@tab Volcar de la información de memoria y de tiempo para cada archivo. + +@item @code{dump-signatures} +@tab @code{#f} +@tab Volcar las firmas de salida de cada sistema. Usado para las pruebas +de regresión. + +@item @code{eps-box-padding} +@tab @code{#f} +@tab Rellenar el borde izquierdo de la caja contenedora del EPS de salida +en la cantidad dada (en mm). + +@item @code{gs-load-fonts} +@tab @code{#f} +@tab Cargar las fuentes tipográficas a través de Ghostscript. + +@item @code{gs-load-lily-fonts} +@tab @code{#f} +@tab Cargar sólo las fuentes de LilyPond por medio de Ghostscript. + +@item @code{gui} +@tab @code{#f} +@tab Se ejecuta silenciosamente y se redirige toda la salida a un archivo +de registro. +@end multitable + +@noindent +@strong{Nota para los usuarios de Windows:} De manera predeterminada, +@code{lilypond.exe} dirige toda la salida de la información de avance +hacia la ventana de consola, @code{lilypond-windows.exe} no lo hace y +devuelve un indicador del sistema, sin ninguna indicación del avance, +inmediatamente en la línea de órdenes. La opción @option{-dgui} se +puede usar en este caso para redirigir la salida a un archivo de +registro. + +@multitable @columnfractions .33 .16 .51 +@item @code{help} +@tab @code{#f} +@tab Mostrar esta ayuda. + +@item @code{include-book-title-preview} +@tab @code{#t} +@tab Incluir los títulos de libro en las imágenes de vista previa. + +@item @code{include-eps-fonts} +@tab @code{#t} +@tab Incluir las fuentes tipográficas en los archivos EPS de cada uno de +los sistemas. + +@item @code{include-settings} +@tab @code{#f} +@tab Incluir el archivo de los ajustes globales, se incluye antes de que la +partitura se procese. + +@item @code{job-count} +@tab @code{#f} +@tab Procesar en paralelo, usando el número de tareas dado. + +@item @code{log-file} +@tab @code{#f [file]} +@tab Si se da una cadena @code{NOMBRE} como segundo argumento, +redirigir la salida al archivo de registro @code{NOMBRE.log}. + +@item @code{max-markup-depth} +@tab @code{1024} +@tab Profundidad máxima del árbol de marcado. Si un marcado tiene más niveles, +suponer que no terminará por sí mismo, imprimiento una advertencia y +devolviendo en su lugar un elemento de marcado nulo. + +@item @code{midi-extension} +@tab @code{"midi"} +@tab Fijar la extensión de archivo predeterminada para el archivo de salida +MIDI a la cadena dada. + +@item @code{music-strings-to-paths} +@tab @code{#f} +@tab Convertir las cadenas de texto a rutas cuando los glifos pertenecen a +una fuente de tipografía musical. + +@item @code{old-relative} +@tab @code{#f} +@tab Hacer que el modo @code{\relative} para la música simultánea funcione +de manera similar a la sintaxis de los acordes. + +@item @code{paper-size} +@tab @code{\"a4\"} +@tab Establecer el tamaño predeterminado del papel. Observe que la cadena +debe ir encerrada entre comillas dobles. + +@item @code{pixmap-format} +@tab @code{png16m} +@tab Fijar el formato de salida de Ghostscript para las imágenes de píxeles. + +@item @code{point-and-click} +@tab @code{#f} +@tab Añadir enlaces de @q{apuntar y pulsar} a la salida @code{PDF}. Véase +@ref{Apuntar y pulsar}. + +@item @code{preview} +@tab @code{#f} +@tab Crear imágenes de vista previa además de la salida normal. +@end multitable + +@noindent +Esta opción está contemplada por todos los @q{back-ends}: @code{pdf}, +@code{png}, @code{ps}, @code{eps} y @code{svg}, pero no por +@code{scm}. Genera un archivo de salida, en la forma +@code{miArchivo.preview.extensión}, que contiene los títulos y el +primer sistema de la música. Si se están utilizando bloques +@code{\book} o @code{\bookpart}, aparecen en la salida los títulos de +@code{\book}, @code{\bookpart} o @code{\score}, incluido el primer +sistema de cada bloque @code{\score} si la variable de @code{\paper} +@code{print-all-headers} está fijada al valor @code{#t}. + +Para suprimir la salida usual, utilice las opciones +@option{-dprint-pages} o @option{-dno-print-pages} según sus +necesidades. + +@multitable @columnfractions .33 .16 .51 +@item @code{print-pages} +@tab @code{#t} +@tab Generar páginas completas (es la opción predeterminada). Es útil +@option{-dno-print-pages} en combinación con @option{-dpreview}. + +@item @code{profile-property-accesses} +@tab @code{#f} +@tab Conservar las estadísticas de las llamadas de función +@code{get_property()}. + +@item @code{protected-scheme-parsing} +@tab @code{#t} +@tab Continuar cuando se captan en el analizador sintáctico errores del +Scheme empotrado. Si se fija a @code{#f}, detenerse cuando haya +errores e imprimir un registro de traza de pila. + +@item @code{read-file-list} +@tab @code{#f [archivo]} +@tab Especificar el nobmre de un archivo que contiene una lista de archivos +de entrada para procesar. + +@item @code{relative-includes} +@tab @code{#f} +@tab Cuando se procesa una instrucción @code{\include} command, buscar el +archivo incluido de forma relativa al archivo actual (en lugar del +archivo principal). + +@item @code{resolution} +@tab @code{101} +@tab Fijar la resolución para generar imágenes de píxeles @code{PNG} al +valor dado (en ppp). + +@item @code{safe} +@tab @code{#f} +@tab No confiar en la entrada @code{.ly}. +@end multitable + +@noindent +Cuando el servicio de tipografía está disponible a través de un +servidor web, @b{SE DEBEN} pasar las opciones @option{--safe} o +@option{--jail}. La opción @option{--safe} evita que el código de +Scheme monte un desastre, p.ej.: + +@quotation +@verbatim +#(system "rm -rf /") +{ + c4^$(ly:gulp-file "/etc/passwd") +} +@end verbatim +@end quotation + +La opción @option{-dsafe} funciona evaluando las expresiones de Scheme +en línea dentro de un módulo seguro especial. Deriva del módulo +@file{safe-r5rs} de GUILE, pero además añade unas cuantas funciones de +la API de LIlyPond que están relacionadas en @file{scm/safe-lily.scm}. + +Además, el modo seguro prohíbe las directivas @code{\include} y +desactiva la utilización de barras invertidas en las cadenas de +@TeX{}. Asimismo, no es posible importar variables de LilyPond dentro +de Scheme cuando se está en modo seguro. + +@option{-dsafe} @emph{no} detecta la sobreutilización de recursos, por +lo que aún es posible hacer que el programa se cuelgue +indefinidamente, por ejemplo suministrando estructuras de datos +cíclicas en el backend. Por ello, si está usando LilyPond en un +servidor web accesible públicamente, el proceso se debe limitar tanto +en el uso de memoria como de CPU. + +El modo seguro evita que se puedan compilar muchos fragmentos de +código útiles. + +La opción @option{--jail} es una aliternativa más segura aún, pero +requiere más trabajo para su configuración. Véase +@ref{Opciones básicas de la línea de órdenes para LilyPond}. + +@multitable @columnfractions .33 .16 .51 +@item @code{separate-log-files} +@tab @code{#f} +@tab Para los archivos de entrada @code{ARCHIVO1.ly}, @code{ARCHIVO2.ly}, +etc. sacar los datos de registro hacia los archivos @code{ARCHIVO1.log}, +@code{ARCHIVO2.log}, ... + +@item @code{show-available-fonts} +@tab @code{#f} +@tab Listar todos los nombres de las fuentes tipográficas disponibles. + +@item @code{strict-infinity-checking} +@tab @code{#f} +@tab Forzar una terminación abrupta si se encuentran las excepciones de +punto flotante @code{Inf} y @code{NaN}. + +@item @code{strip-output-dir} +@tab @code{#t} +@tab No usar los directorios de los archivos de entrada al construir los +nombres de los archivos de salida. + +@item @code{svg-woff} +@tab @code{#f} +@tab Usar archivos de fuente tipográfica de woff en el backend SVG. + +@item @code{trace-memory-frequency} +@tab @code{#f} +@tab Registrar el uso de células de Scheme esta cantidad de veces por +segundo. Volcar los resultados en @code{ARCHIVO.stacks} y en +@code{ARCHIVO.graph}. + +@item @code{trace-scheme-coverage} +@tab @code{#f} +@tab Registrar la cobertura de los archivos de Scheme en @code{ARCHIVO.cov}. + +@item @code{verbose} +@tab @code{#f} +@tab Salida prolija, es decir el nivel de registro en DEBUG (sólo lectura). + +@item @code{warning-as-error} +@tab @code{#f} +@tab Cambiar todos los mensajes de advertencia y de @q{error de +programación} a errores. +@end multitable + + @node Variables de entorno @unnumberedsubsec Variables de entorno @translationof Environment variables - @cindex LANG @cindex LILYPOND_DATADIR @@ -430,9 +751,13 @@ etc. @item LANG Selecciona el idioma de los mensajes de advertencia. +@item LILYPOND_LOGLEVEL +Nivel de registro predeterminado. Si LilyPond se llama sin ningún +nivel de registro explícito (es decir, sin opción de línea de órdenes +@option{--loglevel}), se usa este valor. + @item LILYPOND_GC_YIELD -Con esta variable se puede ajustar la huella y el desempeño de -memoria. Es un porcentaje que ajusta el comportamiento de la +Una variable, como porcentaje, que ajusta el comportamiento de la administración de memoria. Con valores más altos, el programa usa más memoria; con valores más bajos, usa más tiempo de CPU. El valor predeterminado es @code{70}. @@ -440,6 +765,128 @@ predeterminado es @code{70}. @end table +@node LilyPond en una jaula de chroot +@unnumberedsubsec LilyPond en una jaula de chroot +@translationof LilyPond in chroot jail + +La preparación del servidor para que ejecute LilyPond en una jaula de +chroot es una tarea muy complicada. Los pasos están relacionados más +abajo. Los ejemplos que aparecen en cada uno de los pasos son válidos +para Ubuntu GNU/Linux, y pueden requerir el uso de @code{sudo} según +corresponda. + +@itemize + +@item Instale los paquetes necesarios: LilyPond, Ghostscript e ImageMagick. + +@item Cree un usuario nuevo con el nombre de @code{lily}: + +@example +adduser lily +@end example + +@noindent +Esto también creará un nuevo grupo para el usuario @code{lily}, y una +carpeta personal, @code{/home/lily} + +@item En la carpeta personal del usuario @code{lily}, cree un archivo para usarlo como un sistema de archivos separado: + +@example +dd if=/dev/zero of=/home/lily/loopfile bs=1k count= 200000 +@end example + +@noindent +Este ejemplo crea un archivo de 200MB para su uso como el sistema de +archivos de la jaula. + +@item Cree un dispositivo loop, haga un sistema de archivos y móntelo, +después cree una carpeta que sea escribible por el usuario +@code{lily}: + +@example +mkdir /mnt/lilyloop +losetup /dev/loop0 /home/lily/loopfile +mkfs -t ext3 /dev/loop0 200000 +mount -t ext3 /dev/loop0 /mnt/lilyloop +mkdir /mnt/lilyloop/lilyhome +chown lily /mnt/lilyloop/lilyhome +@end example + +@item En la configuración de los servidores, JAIL será @code{/mnt/lilyloop} +y DIR será @code{/lilyhome}. + +@item Cree un gran árbol de directorios dentro de la jaula copiando los +archivos necesarios, como se muestra en el guión de ejemplo que aparece +más abajo. + +Puede usar @code{sed} para crear los archivos de copia necesarios para +un ejecutable dado: + +@example +for i in "/usr/local/lilypond/usr/bin/lilypond" "/bin/sh" "/usr/bin/; \ + do ldd $i | sed 's/.*=> \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& \ + cp -L \/\1\2 \1\2/' | sed 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \ + \1 \&\& cp -L \/\1\2 \1\2/' | sed '/.*=>.*/d'; done +@end example + +@end itemize + +@subheading Guión de ejemplo para Ubuntu 8.04 de 32 bits + +@example +#!/bin/sh +## aquí se fijan los valores predeterminados + +username=lily +home=/home +loopdevice=/dev/loop0 +jaildir=/mnt/lilyloop +# prefijo (¡sin la barra inicial!) +lilyprefix=usr/local +# el directorio en que lilypond se encuentra instalado en el sistema +lilydir=/$lilyprefix/lilypond/ + +userhome=$home/$username +loopfile=$userhome/loopfile +adduser $username +dd if=/dev/zero of=$loopfile bs=1k count=200000 +mkdir $jaildir +losetup $loopdevice $loopfile +mkfs -t ext3 $loopdevice 200000 +mount -t ext3 $loopdevice $jaildir +mkdir $jaildir/lilyhome +chown $username $jaildir/lilyhome +cd $jaildir + +mkdir -p bin usr/bin usr/share usr/lib usr/share/fonts $lilyprefix tmp +chmod a+w tmp + +cp -r -L $lilydir $lilyprefix +cp -L /bin/sh /bin/rm bin +cp -L /usr/bin/convert /usr/bin/gs usr/bin +cp -L /usr/share/fonts/truetype usr/share/fonts + +# Ahora la magia de copiar las bibliotecas +for i in "$lilydir/usr/bin/lilypond" "$lilydir/usr/bin/guile" "/bin/sh" \ + "/bin/rm" "/usr/bin/gs" "/usr/bin/convert"; do ldd $i | sed 's/.*=> \ + \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' | sed \ + 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' \ + | sed '/.*=>.*/d'; done | sh -s + +# Los archivos compartidos para ghostscript... + cp -L -r /usr/share/ghostscript usr/share +# Los archivos compartidos para ImageMagick + cp -L -r /usr/lib/ImageMagick* usr/lib + +### Ahora, suponiendo que tenemos test.ly en /mnt/lilyloop/lilyhome, +### deberíamos poder ejecutar: +### Observe que /$lilyprefix/bin/lilypond es un guión, que establece +### un valor para LD_LIBRARY_PATH : esto es crucial + /$lilyprefix/bin/lilypond -jlily,lily,/mnt/lilyloop,/lilyhome test.ly +@end example + +@c " keep quote signs balanced for context-sensitive editors + @node Mensajes de error @section Mensajes de error @translationof Error messages @@ -477,7 +924,7 @@ esto. La causa más frecuente son las tipografías mal instaladas. @cindex error de Scheme Los errores que ocurren al ejecutar código de Scheme se interceptan por parte del intérprete de Scheme. Si se está ejecutando con las -opciones @code{-V} o @code{--verbose} (prolijo) entonces se imprime +opciones @option{-V} o @option{--verbose} (prolijo) entonces se imprime una traza de llamadas de la función ofensiva. @item Error de programación @@ -497,7 +944,7 @@ críticos. Si se topa con uno, envíe un informe de fallo. @cindex error, formato de los mensajes de -Se los errores y advertencias se pueden ligar a un punto del archivo +Si los errores y advertencias se pueden ligar a un punto del archivo de entrada, los mensajes tienen la forma siguiente: @example @@ -523,6 +970,7 @@ de comprobar una o dos líneas por encima de la posición indicada. Se ofrece más información sobre los errores en la sección @ref{Errores comunes}. + @node Errores comunes @section Errores comunes @translationof Common errors @@ -538,6 +986,7 @@ se han visto y comprendido, se manejan sin problema. * Error aparente en ../ly/init.ly:: * Mensaje de error Unbound variable %:: * Mensaje de error FT_Get_Glyph_Name:: +* Advertencia sobre que las afinidades del pentagrama sólo deben decrecer:: @end menu @node La música se sale de la página @@ -575,20 +1024,21 @@ queramos el salto de línea. Para ver más detalles, consulte @unnumberedsubsec Aparece un pentagrama de más @translationof An extra staff appears -Si no se crean los contextos explícitamente con @code{\new}, se -crearán discretamente tan pronto como se encuentra una instrucción que -no se puede aplicar a un contexto existente. En partituras sencillas, -la creación automática de los contextos es útil, y casi todos los -ejemplos de los manuales de LilyPond se aprovechan de esta -simplificación. Pero ocasionalmente la creación discreta de contextos -puede hacer aflorar pentagramas o partituras nuevos e inesperados. -Por ejemplo, podría esperarse que el código siguiente hiciera que -todas las notas dentro del pentagrama siguiente estuvieran coloreadas -de rojo, pero de hecho el resultado son dos pentagramas, permaneciendo -el de abajo con las notas en el color negro predeterminado. +Si no se crean los contextos explícitamente con @code{\new} o con +@code{\context}, se crearán discretamente tan pronto como se encuentra +una instrucción que no se puede aplicar a un contexto existente. En +partituras sencillas, la creación automática de los contextos es útil, +y casi todos los ejemplos de los manuales de LilyPond se aprovechan de +esta simplificación. Pero ocasionalmente la creación discreta de +contextos puede hacer aflorar pentagramas o partituras nuevos e +inesperados. Por ejemplo, podría esperarse que el código siguiente +hiciera que todas las notas dentro del pentagrama siguiente estuvieran +coloreadas de rojo, pero de hecho el resultado son dos pentagramas, +permaneciendo el de abajo con las notas en el color negro +predeterminado. @lilypond[quote,verbatim,relative=2] -\override Staff.NoteHead #'color = #red +\override Staff.NoteHead.color = #red \new Staff { a } @end lilypond @@ -601,7 +1051,7 @@ las notas de rojo es @lilypond[quote,verbatim,relative=2] \new Staff { - \override Staff.NoteHead #'color = #red + \override Staff.NoteHead.color = #red a } @end lilypond @@ -615,26 +1065,28 @@ cada uno de los cuales crea implícitamente bloques @code{Staff} y @lilypond[quote,verbatim] \repeat unfold 2 { - \relative c' { c d e f } + \relative c' { c4 d e f } } @end lilypond -La forma correcta es invertir el orden de las instrucciones -@code{\repeat} y @code{\relative}, así: +El problema se resuelve instanciando el contexto @code{Voice} +explícitamente: @lilypond[quote,verbatim] -\relative c' { - \repeat unfold 2 { c d e f } +\new Voice { + \repeat unfold 2 { + \relative c' { c4 d e f } + } } @end lilypond @node Error aparente en ../ly/init.ly -@unnumberedsubsubsec Error aparente en @code{../ly/init.ly} +@unnumberedsubsec Error aparente en @code{../ly/init.ly} @translationof Apparent error in ../ly/init.ly Pueden aparecer varios mensajes de error extraños acerca de errores de -sintaxis en @code{../ly/init.ly} si el archivo de entrada no está +sintaxis en @file{../ly/init.ly} si el archivo de entrada no está correctamente formado, por ejemplo si no contiene llaves o comillas correctamente emparejados. @@ -652,7 +1104,7 @@ sílaba de un bloque lyrics (de letra) y la llave de cierre, parte de la sílaba. Siempre se aconseja asegurarse de que hay espacios antes y después de @emph{todas} las llaves. Para conocer la importancia de este asunto al utilizar letras de canciones, consulte -@ruser{Explicación de la letra}. +@ruser{Introducir la letra}. Este mensaje de error también puede aparecer si se omiten las comillas de terminación (@code{"}). En este caso, un mensaje de error @@ -662,12 +1114,12 @@ general una o dos líneas por encima. @node Mensaje de error Unbound variable % -@unnumberedsubsubsec Mensaje de error Unbound variable % +@unnumberedsubsec Mensaje de error Unbound variable % @translationof Error message Unbound variable % Este mensaje de error aparece al final de los mensajes de la consola o del archivo de registro junto a un mensaje @qq{GUILE señaló un error -...} cada vez que se llame a una rutina de Scheme que +@dots{}} cada vez que se llame a una rutina de Scheme que (incorrectamente) contenga un comentario @emph{de LilyPond} en lugar de un comentario @emph{de Scheme}. @@ -675,7 +1127,6 @@ Los comentarios de LilyPond comienzan con un símbolo de porcentaje, (@code{%}), y no se deben utilizar dentro de las rutinas de Scheme. Los comentarios de Scheme comienzan con punto y coma, (@code{;}). - @node Mensaje de error FT_Get_Glyph_Name @unnumberedsubsec Mensaje de error FT_Get_Glyph_Name @translationof Error message FT_Get_Glyph_Name @@ -687,4 +1138,21 @@ UTF-8. Para ver más detalles, consulte @ruser{Codificación del texto}. +@node Advertencia sobre que las afinidades del pentagrama sólo deben decrecer +@unnumberedsubsec Advertencia sobre que las afinidades del pentagrama sólo deben decrecer +@translationof Warning staff affinities should only decrease + +Esta advertencia puede aparecer si no hay ningún pentagrama en la +salida impresa, por ejemplo si sólo hay un contexto @code{ChordName} y +un contexto @code{Lyrics} como en una hoja guía de acordes. Los +mensajes de advertencia se pueden evitar haciendo que uno de los +contextos se comporte como un pentagrama, insertando + +@example +\override VerticalAxisGroup.staff-affinity = ##f +@end example +@noindent +al comienzo. Para ver más detalles, consulte @qq{Espaciado de las +líneas que no son pautas} en @ruser{Espaciado vertical flexible dentro +de los sistemas}.