Opciones básicas de la línea de órdenes para LilyPond
Están contempladas las siguientes opciones:
-d
,--define-default=
variable[=
valor]-e
,--evaluate=
expresiónEvaluar la expresión de Scheme antes de analizar los archivos .ly. Se pueden pasar varias opciones -e, que se evalúan en secuencia.
La expresión se evalúa en el módulo
guile-user
, de manera que si quiere usar una definición como(define-public a 42)
como expresión, debe utilizarlilypond -e '(define-public a 42)'
en la línea de órdenes, e incluir
#(use-modules (guile-user))
al principio del archivo .ly.
Nota: Los usuarios de Windows deben utilizar comillas dobles en lugar de apóstrofos simples.
-E
,--eps
Generar archivos EPS.
Esta opción equivale a establecer las opciones de la línea de órdenes de LilyPond a
--ps
y-dlilypond-book-output
.-f
,--format=
formatoFormato del archivo o archivos (principal/es) de salida. Los valores posibles de formato son
ps
,pdf
,png
osvg
.Ejemplo:
lilypond -fpng archivo.ly
El SVG usa internamente un backend específico, y por tanto no se puede obtener dentro de la misma ejecución que otros formatos; el uso de
-fsvg
o de--svg
son en realidad equivalentes al empleo de la opción-dbackend=svg
. Véase Opciones avanzadas de línea de órdenes para LilyPond.-h
,--help
Mostrar un resumen de las formas de utilización.
-H
,--header=
CAMPOVolcar un campo de cabecera al archivo NOMBREBASE.CAMPO
A modo de ejemplo, vamos a suponer que tenemos un archivo de entrada archivo.ly que contiene
\header { title = "Título" } \score { c1 }
La instrucción
lilypond -H title archivo.ly
crea entonces un archivo de texto sencillo archivo.title que contiene la cadena
Título
.-i
,--init=
archivoEstablecer el archivo de inicio a archivo (predeterminado: init.ly).
-I
,--include=
directorioAñadir el directorio a la ruta de búsqueda de archivos de entrada.
Se pueden escribir varias opciones -I. La búsqueda se inicia en el directorio actual, y no se encuentra el archivo de inclusión, la búsqueda continúa dentro del directorio especificado en la primera opción -I, a continuación en el directorio dado en la segunda opción -I, y así sucesivamente.
Nota: El uso del carácter de tilde curva (
~
) con la opción -I puede producir resultados inesperados en algunos ‘shells’.Los usuarios de Windows deben incluir una barra inclinada al final de la ruta del directorio.
-j
,--jail=
usuario,
grupo,
jaula,
directorio[Esta opción solo está disponible si su sistema operativo contempla la funcionalidad
chroot
. Concretamente, Windows no la contempla.]Ejecutar
lilypond
en una jaula de chroot.La opción --jail (jaula) proporciona una alternativa más flexible a la opción -dsafe cuando el proceso de tipografía de LilyPond está disponible a través de un servidor web o cuando LilyPond ejecuta instrucciones enviadas por fuentes externas (véase Opciones avanzadas de línea de órdenes para LilyPond).
La opción --jail funciona cambiando la raíz de
lilypond
a 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 directorio. Esta instalación garantiza que no es posible, al menos en teoría, escapar de la jaula. Observe que para que funcione --jail, se debe ejecutarlilypond
como root, lo que normalmente se puede hacer de una forma segura utilizandosudo
.La instalación de una jaula puede ser un asunto relativamente complejo, pues debemos asegurarnos de que LilyPond puede encontrar 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:
- 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
noexec
,nodev
ynosuid
. De esta forma, es imposible ejecutar programas o escribir directamente a un dispositivo desde LilyPond. Si no quiere crear una partición separada, tan sólo tiene que crear un archivo de un tamaño razonable y usarlo para montar un dispositivo loop. El sistema de archivos separado garantiza también que LilyPond nunca pueda escribir en un espacio mayor del que se le permita.- Preparar un usuario separado
Se debe usar un usuario y grupo separados (digamos
lily
/lily
) con bajos privilegios para ejecutar LilyPond dentro de la jaula. Debería existir un solo directorio con permisos de escritura para este usuario, y debe pasarse en el valor directorio.- Preparar la jaula
LilyPond necesita leer algunos archivos mientras se ejecuta. Todos estos archivos se deben copiar dentro de la jaula, bajo la misma ruta en que aparecen en el sistema de archivos real de root. Todo el contenido de la instalación de LilyPond (por ejemplo /usr/share/lilypond) se debe copiar.
Si surgen problemas, la forma más sencilla de rastrearlos es ejecutar LilyPond usando
strace
, lo que permite determinar qué archivos faltan.- Ejecutar LilyPond
Dentro de una jaula montada con
noexec
es imposible ejecutar ningún programa externo. Por tanto, LilyPond se debe ejecutar con un backend que no necesite tal programa. Como ya hemos mencionado, se debe ejecutar con privilegios del superusuario (que por supuesto perderá inmediatamente), posiblemente usandosudo
. También es una práctica recomendable limitar el número de segundos de tiempo de CPU que LilyPond puede usar (p.ej., usandoulimit -t
), y, si su sistema operativo lo contempla, el tamaño de la memoria que se puede reservar. Véase también LilyPond en una jaula de chroot.
-l
,--loglevel=
NIVELFijar el grado en que la salida de consola es prolija al nivel NIVEL. Los valores posibles son:
NONE
Ninguna salida en absoluto, ni siquiera mensajes de error.
ERROR
Solamente mensajes de error, no advertencias o indicaciones de progreso.
WARN
Advertencias y mensajes de error, no de progreso.
BASIC
Mensajes de progreso básicos (éxito), advertencias y errores.
PROGRESS
Todos los mensajes de progreso, advertencias y errores.
INFO
Mensajes de progreso, advertencias, errores e información de ejecución adicional. Este es el valor predeteminado.
DEBUG
Todos los mensajes posibles, incuida la información de depuración prolija.
-o
,--output=
archivo-o
,--output=
carpetaEstablecer el nombre del archivo de salida predeterminado a archivo o, si existe una carpeta con ese nombre, dirigir la salida hacia carpeta, tomando el nombre de archivo del documento de entrada. Se añade el sufijo correspondiente (por ejemplo, .pdf para PDF) en los dos casos.
-O
,--pspdfopt=
clave ¶-
Establecer la optimización de salida de PS o PDF a clave. Los valores posibles son:
size
Generar un documento PS/EPS/PDF muy pequeño. Esta es la opción predeterminada.
La utilización de este valor equivale a fijar las opciones de la línea de órdenes del Scheme de LilyPond a
-dmusic-font-encodings='#f'
y-dgs-never-embed-fonts='#f'
.TeX
Producir archivos que están optimizados para su inclusión dentro de documentos de pdfTeX, LuaTeX o XeTeX.
La utilización de este valor equivale a fijar las opciones de la línea de órdenes del Scheme de LilyPond a
-dmusic-font-encodings='#t'
y-dgs-never-embed-fonts='#f'
.TeX-GS
Si queremos incluir más de un PDF generado por LilyPond dentro de un documento de TeX, utilice esta opción y post-procese el PDF generado por TeX con Ghostscript.
La utilización de este valor equivale a fijar las opciones de la línea de órdenes del Scheme de LilyPond a
-dmusic-font-encodings='#t'
y-dgs-never-embed-fonts='#t'
.
- –ps
Generar PostScript.
--png
Generar imágenes de las páginas en formato PNG. Esta opción equivale a
-fpng
.La resolución de la imagen se puede fijar a N PPP con
-dresolution=N
--pdf
Generar un PDF. Esta es la opción predeterminada, equivalente a
-fpdf
.-s
,--silent
No mostrar el avance, solo los mensajes de error. Equivale a
-lERROR
.--svg
Generar archivos SVG para cada página. Esta opción equivale a
-fsvg
.-v
,--version
Mostrar la información de la versión.
-V
,--verbose
Ser prolijo: mostrar las rutas completas de todos los archivos que se leen, y dar información cronométrica.
-w
,--warranty
Mostrar la garantía con que viene GNU LilyPond (¡no viene con NINGUNA GARANTÍA!).