Siguiente: Variables de entorno, Anterior: Invocar a LilyPond, Arriba: Utilización desde la línea de órdenes
lilypond
Están contempladas las siguientes opciones:
-e,--evaluate=
expresión-e
, que se
evaluarán en secuencia.
La expresión se evaluará en el módulo guile-user
, de manera que
si quiere usar definiciones dentro de 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
.
-f,--format=
formatoformato
se puede elegir entre
svg
, ps
, pdf
y png
.
Ejemplo: lilypond -fpng
archivo.ly
-d,--define-default=
variable=
valorno-
a
la variable, p.ej.:
-dno-point-and-click
es lo mismo que
-dpoint-and-click='#f'
A continuación veremos algunas opciones interesantes.
lilypond -dhelp
imprimirá todas las opciones
-d
que están disponibles.
-dpaper-size=\"letter\"
Observe que la cadena se debe incluir dentro de comillas escapadas
( \"
).
.ly
.
Cuando el proceso de tipografía de LilyPond se encuentra disponible a
través de un servidor web, SE DEBEN pasar las opciones
--safe
(seguro) o --jail
(jaula). La opción
--safe
evita que el código de Scheme en línea arme un desastre,
por ejemplo
#(system "rm -rf /") { c4^#(ly:export (ly:gulp-file "/etc/passwd")) }
La opción -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 safe-r5rs, pero añade ciertas funciones del
API de LilyPond. Estas funciones se relacionan en
scm/safe-lily.scm.
Además, el modo seguro prohíbe las directivas \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.
-dsafe
no detecta la sobreutilización de recursos. Aún
es posible hacer que el programa se cuelgue indefinidamente, por
ejemplo alimentándo 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 --jail
es una
alternativa más segura, pero su preparación requiere más trabajo.
formato
se puede elegir entre
ps
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.
eps
Este modo se usa de forma predeterminada por parte de
lilypond-book.
svg
scm
null
-dno-print-pages
.
Ejemplo: lilypond -dbackend=svg
archivo.ly
-dno-print-pages
es útil en combinación con -dpreview
.
-h,--help
-H,--header=
CAMPO--include, -I=
directorio-i,--init=
archivo-o,--output=
ARCHIVO.pdf
para PDF).
--ps
--png
--ps
. La resolución en PPP de la imagen se puede establecer
con
-dresolution=110
--pdf
--ps
.
-j,--jail=
usuario,
grupo,
jaula,
directorioLa opción --jail
(jaula) proporciona una alternativa más
flexible a la opción --safe
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.
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 es un asunto algo delicado, pues debemos asegurarnos de que LilyPond puede encontrar dentro de la jaula todo lo que necesita para poder compilar la fuente. Una configuración típica consta de los siguientes elementos:
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.
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.
Si surgen problemas, la forma más sencilla de rastrearlos es ejecutar
LilyPond usando strace, lo que le permitirá determinar qué
archivos faltan.
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
debe ejecutar con privilegios del superusuario (que por supuesto
perderá inmediatamente), posiblemente usando sudo. Es buena
idea 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,--version
-V,--verbose
-w,--warranty