Opzioni di base della linea di comando per LilyPond
Sono contemplate le seguenti opzioni.
-d
,--define-default=
variabile[=
valore]Si veda Opzioni avanzate della linea di comando per
lilypond
.-e
,--evaluate=
espressioneValuta l’espressione di Scheme prima di analizzare qualsiasi file .ly. Si possono specificare varie opzioni -e; saranno analizzate in modo sequenziale.
L’espressione viene analizzata nel modulo
guile-user
, dunque se vuoi usare una definizione come(define-public a 42)
in espressione, usalilypond -e '(define-public a 42)'
nella linea di comando, e includi
#(use-modules (guile-user))
in cima al file .ly.
Nota: Gli utenti Windows devono usare i doppi apici invece dei singoli apici.
-E
,--eps
Genera file EPS.
Questa opzione è simile a
-dseparate-page-formats=ps
.-f
,--format=
formatoFormato del (principale) file di output. I valori possibili di formato sono
ps
,pdf
,png
osvg
.Esempio:
lilypond -fpng file.ly
Internamente SVG utilizza un backend specifico e dunque non si può ottenere nella stessa esecuzione usata per altri formati;
-fsvg
o--svg
sono in realtà equivalenti all’opzione-dbackend=svg
. Vedi Opzioni avanzate della linea di comando perlilypond
.-h
,--help
Mostra una sintesi dell’utilizzo.
-H
,--header=
CAMPOEstrae un campo dell’intestazione nel file NOME.CAMPO.
Per esempio, supponiamo di avere un file di input pippo.ly contenente
\header { title = "pluto" } \score { c1 }
Il comando
lilypond -H title pippo.ly
crea un file di testo semplice pippo.title contenente la stringa
pluto
.-i
,--init=
fileImposta il file di inizializzazione su file (predefinito: init.ly).
-I
,--include=
directoryAggiunge directory al percorso di ricerca per i file di input con percorsi relativi. Per impostazione predefinita, cerca solo nella directory di lavoro corrente.
È possibile assegnare più opzioni -I. La ricerca inizia nella directory di lavoro corrente, e se il file da includere non viene trovato la ricerca continua nella directory indicata dalla prima opzione -I, poi nella directory della seconda opzione -I e così via.
Nota: L’uso del carattere tilde (
~
) con l’opzione -I potrebbe causare risultati inaspettati in alcune shell.Gli utenti Windows devono aggiungere una barra obliqua al termine del percorso della directory.
-j
,--jail=
utente,gruppo,gabbia,directory[Questa opzione è disponibile solo per i sistemi operativi che supportano la funzionalità
chroot
. Windows non la supporta.]Esegue
lilypond
in una gabbia chroot.L’opzione --jail fornisce un’alternativa più flessibile a --safe quando la formattazione di LilyPond è messa a disposizione attraverso un server web o quando LilyPond esegue sorgenti provenienti dall’esterno (si veda Opzioni avanzate della linea di comando per
lilypond
).L’opzione --jail modifica la radice di
lilypond
in gabbia appena prima di iniziare il vero processo di compilazione. L’utente e il gruppo vengono poi modificati per corrispondere a quelli forniti, e la directory corrente viene spostata in directory. Questa configurazione garantisce che non sia possibile (almeno in teoria) uscire dalla gabbia. Si noti che perché --jail funzionililypond
deve essere eseguito come root; di solito questo si fa in modo sicuro col comandosudo
.Configurare una gabbia è una questione un po’ delicata, perché bisogna essere sicuri che LilyPond possa trovare tutto quello di cui ha bisogno per compilare il sorgente dentro la gabbia. Una configurazione tipica comprende i seguenti elementi:
- Impostare un filesystem distinto
Si dovrebbe creare un filesystem separato LilyPond, così che possa essere montato con opzioni di sicurezza come
noexec
,nodev
, enosuid
. In questo modo è impossibile lanciare degli eseguibili o scrivere su un dispositivo direttamente da LilyPond. Se non si vuole creare una partizione separata, si può creare un file di dimensioni ragionevoli e usarlo per montare un dispositivo di loop. Un filesystem separato garantisce inoltre che LilyPond non possa scrivere su uno spazio maggiore di quanto permesso.- Impostare un altro utente
Per eseguire LilyPond in una gabbia si dovrebbe usare un altro utente e gruppo (ad esempio,
lily
/lily
) con pochi privilegi. Ci dovrebbe essere una sola directory scrivibile da questo utente, che dovrebbe essere passata in dir.- Preparare la gabbia
LilyPond ha bisogno di leggere alcuni file quando viene lanciato. Tutti questi file devono essere copiati nella gabbia, sotto lo stesso percorso in cui appaiono nel vero filesystem principale. Si deve copiare l’intero contenuto dell’installazione LilyPond (ad esempio, /usr/share/lilypond).
Se c’è un problema, il modo più semplice per individuarlo è lanciare LilyPond usando
strace
, che permette di scoprire quali file mancano.- Eseguire LilyPond
In una gabbia montata con
noexec
è impossibile eseguire qualsiasi programma esterno. Dunque LilyPond deve essere eseguito con un backend che non richieda tale programma. Come è già stato detto, deve essere eseguito con privilegi di superutente (che ovviamente perde immediatamente), possibilmente con l’uso disudo
. È una buona idea limitare il numero di secondi di tempo della CPU che LilyPond può usare (ad esempio conulimit -t
), e, se il sistema operativo lo permette, la quantità di memoria che può essere allocata. Si veda anche LilyPond in una gabbia chroot.
-l
,--loglevel=
livelloImposta la verbosità dell’output della console su livello. I valori possibili sono:
NONE
Nessun output, nemmeno i messaggi di errore.
ERROR
Solo i messaggi di errore, niente avvisi o messaggi di elaborazione.
WARN
Avvisi e messaggi di errore, nessun messaggio di elaborazione.
BASIC
Messaggi di elaborazione di base (riuscita), avvisi e errori.
PROGRESS
Tutti i messaggi di elaborazione, avvisi e errori.
INFO
Messaggi di elaborazione, avvisi, errori e ulteriori informazioni di esecuzione. Questo è il valore predefinito.
DEBUG
Tutti i messaggi possibili, incluso l’output verboso di debug.
-o
,--output=
file-o
,--output=
cartellaImposta il file di output predefinito file oppure, se una cartella con quel nome esiste già, dirige l’output in cartella, prendendo il nome del file dal file di input. In entrambi i casi viene aggiunto il suffisso appropriato (ad esempio .pdf per il PDF).
-O
,--pspdfopt
¶-
Imposta l’ottimizzazione dell’output PS/PDF su chiave. I valori possibili sono:
size
Genera un documento PS/EPS/PDF molto piccolo. Questo è il valore predefinito.
L’uso di questo valore è equivalente a impostare le opzioni a linea di comando Scheme di LilyPond
-dmusic-font-encodings='#f'
e-dgs-never-embed-fonts='#f'
.TeX
Produce file ottimizzati per l’inclusione in documenti pdfTeX, LuaTeX o XeTeX.
L’uso di questo valore è equivalente a impostare le opzioni a linea di comando Scheme di LilyPond
-dmusic-font-encodings='#t'
e-dgs-never-embed-fonts='#f'
.TeX-GS
Se si desidera includere più di un PDF generato da LilyPond in un documento TeX, usare questa opzione e rielaborare il PDF generato da TeX con Ghostscript.
L’uso di questo valore è equivalente a impostare le opzioni a linea di comando Scheme di LilyPond
-dmusic-font-encodings='#t'
e-dgs-never-embed-fonts='#t'
.
--ps
Questa opzione è equivalente a
-fps
.--png
Genera immagini di ogni pagina in formato PNG. Questa opzione è equivalente a
-fpng
.La risoluzione dell’immagine può essere impostata in N DPI con
-dresolution=N
--pdf
Genera PDF. Questa è l’opzione predefinita ed è equivalente a
-fpdf
.-s
,--silent
Non mostra il progresso, ma solo i messaggi di errore. È equivalente a-lERROR
.--svg
Genera file SVG per ciascuna pagina. Questa opzione è equivalente a
-fsvg
.-v
,--version
Mostra informazioni sulla versione.
-V
,--verbose
Aumenta la prolissità: mostra i percorsi completi di tutti i file letti, dà informazioni sui tempi, etc. È equivalente a
-lDEBUG
.-w
,--warranty
Mostra la garanzia con cui viene distribuito GNU LilyPond. (Distribuito con NESSUNA GARANZIA!)