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,--epsGenera 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,pngosvg.Esempio:
lilypond -fpng file.lyInternamente SVG utilizza un backend specifico e dunque non si può ottenere nella stessa esecuzione usata per altri formati;
-fsvgo--svgsono in realtà equivalenti all’opzione-dbackend=svg. Vedi Opzioni avanzate della linea di comando perlilypond.-h,--helpMostra 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
lilypondin 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
lilypondin 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 funzionililyponddeve 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:
NONENessun output, nemmeno i messaggi di errore.
ERRORSolo i messaggi di errore, niente avvisi o messaggi di elaborazione.
WARNAvvisi e messaggi di errore, nessun messaggio di elaborazione.
BASICMessaggi di elaborazione di base (riuscita), avvisi e errori.
PROGRESSTutti i messaggi di elaborazione, avvisi e errori.
INFOMessaggi di elaborazione, avvisi, errori e ulteriori informazioni di esecuzione. Questo è il valore predefinito.
DEBUGTutti 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:
sizeGenera 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'.TeXProduce 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-GSSe 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'.
--psQuesta opzione è equivalente a
-fps.--pngGenera 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
--pdfGenera PDF. Questa è l’opzione predefinita ed è equivalente a
-fpdf.-s,--silentNon mostra il progresso, ma solo i messaggi di errore. È equivalente a-lERROR.--svgGenera file SVG per ciascuna pagina. Questa opzione è equivalente a
-fsvg.-v,--versionMostra informazioni sulla versione.
-V,--verboseAumenta la prolissità: mostra i percorsi completi di tutti i file letti, dà informazioni sui tempi, etc. È equivalente a
-lDEBUG.-w,--warrantyMostra la garanzia con cui viene distribuito GNU LilyPond. (Distribuito con NESSUNA GARANZIA!)