Opciones básicas de la línea de órdenes para LilyPond

Están contempladas las siguientes opciones:

-d, --define-default=variable[=valor]

Véase Opciones avanzadas de línea de órdenes para LilyPond.

-e, --evaluate=expresión

Evaluar 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 utilizar

lilypond -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=formato

Formato del archivo o archivos (principal/es) de salida. Los valores posibles de formato son ps, pdf, png o svg.

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=CAMPO

Volcar 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=archivo

Establecer el archivo de inicio a archivo (predeterminado: init.ly).

-I, --include=directorio

Añ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 ejecutar lilypond como root, lo que normalmente se puede hacer de una forma segura utilizando sudo.

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 y nosuid. 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 usando 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 ulimit -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=NIVEL

Fijar 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=carpeta

Establecer 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!).


LilyPond: manual de utilización del programa v2.25.21 (rama de desarrollo).