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=espressione Valuta 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=formato Formato 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,--help Mostra una sintesi dell’utilizzo.
-
-H,--header=CAMPO Estrae 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=file Imposta il file di inizializzazione su file (predefinito: ‘init.ly’).
-
-I,--include=directory Aggiunge 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=livello Imposta 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_PROGRESS 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=cartella Imposta 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,--silentNon 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!)