Opzioni avanzate della linea di comando per lilypond

L’opzione -d è l’interfaccia a linea di comando alla funzione Scheme di LilyPond ly:set-option. Ciò significa che tutte le opzioni elencate qui possono essere impostate anche nei file .ly.

-d, --define-default=nome-opzione[=valore
-d, --define-default=no-nome-opzione

Imposta l’equivalente simbolo interno di Scheme su nome-opzione. Per esempio, l’opzione da linea di comando

-dbackend=svg

è equivalente a

#(ly:set-option 'backend 'svg)

in un file di input di LilyPond.

Se non viene specificato un valore, viene usato il valore predefinito #t (che potrebbe produrre risultati strani se il valore atteso non è di tipo booleano). Per disabilitare un’opzione, si può usare il prefisso no- prima di nome-opzione. Per esempio:

-dpoint-and-click='#f'

è equivalente a

-dno-point-and-click

[Attenzione: il carattere ‘#’ introduce un commento in molte shell, dunque si raccomanda di racchiudere sempre tra virgolette le espressioni che lo contengono.]

La seguente tabella elenca tutti i nomi delle opzioni supportate insieme ai loro rispettivi valori. All’interno del codice Scheme, i valori delle opzioni possono essere letti usando la funzione ly:get-option.

anti-alias-factor

num Elabora a una risoluzione più alta (usando il fattore num, che deve essere un numero intero positivo ≤8) e ridimensiona il risultato per evitare gli “artefatti” nelle immagini PNG. Predefinito: 1.

aux-files

bool Se bool è #t, crea i file .tex, .texi e .count. Questa opzione viene usata principalmente da lilypond-book. Predefinito: #f.

backend simbolo

Usa simbolo come backend per l’output di LilyPond. I valori possibili sono:

ps

Questa è l’impostazione predefinita. I file PostScript comprendono i tipi di carattere TTF, Type1 e OTF. Non vengono inclusi i “sottoinsiemi” di questi tipi. Se si usa un set di caratteri “orientali”, si possono ottenere file di grosse dimensioni.

Anche per l’output PDF viene usato il backend ps; i dati PS risultanti sono poi rielaborati dallo script di Ghostscript ps2pdf, che si occupa anche dei sottoinsiemi di font.

svg

Scalable Vector Graphics. Viene creato un singolo file SVG per ogni pagina dell’output. I glifi musicali vengono tradotti in grafica vettoriale, ma i tipi di carattere del testo non sono incorporati nei file SVG. Dunque qualsiasi lettore SVG dovrà avere accesso ai tipi di carattere necessari per rendere in modo adeguato il testo. Si raccomanda di non usare “liste” o “alias” dei tipi di carattere se il lettore SVG non è in grado di gestirli. Se si usano i file Web Open Font Format (WOFF), è richiesta anche l’opzione svg-woff.

clip-systems bool

Se bool è #t, estrae frammenti musicali da una partitura. Per far ciò è necessario che sia stata definita la funzione clip-regions all’interno del blocco \layout. Maggiori informazioni in Estrarre frammenti musicali. Nessun frammento verrà estratto se questa opzione è usata insieme all’opzione -dno-print-pages. Predefinito: #f.

crop bool

Se bool è #t, viene creato un secondo file PDF (con estensione .cropped.pdf), insieme a un’immagine (con estensione .cropped.png). Questo file di output comprime tutta la musica e le intestazioni, senza margini, in una sola pagina, possibilmente alta. Se è impostata l’opzione --svg, viene prodotto invece un ulteriore file SVG (con estensione .cropped.svg). Se è impostata l’opzione --eps o --ps, al posto di un file PDF ritagliato viene prodotto invece un EPS ritagliato (con estensione .cropped.eps). Predefinito: #f.

Si noti che attualmente questa opzione non è adatta all’output con molti sistemi perché viene tolto lo spazio verticale tra i sistemi.

datadir

Prefisso per i file di dati. Questa è un’opzione di sola lettura; la sua impostazione non ha effetto.

debug-eval bool

Se bool è #t, usa l’analizzatore di debug Scheme, che in caso di errori mostra le backtrace con i numeri di linea. Predefinito: #f, o #t quando si usa --verbose.

debug-skylines bool

Se bool è #t, fa il debug dei profili (“skyline”). Predefinito: #f.

delete-intermediate-files bool

Se bool è #t, cancella i file .ps intermedi e inutilizzabili creati durante la compilazione. Predefinito: #t.

embed-source-code bool

Se bool è #t, incorpora i file sorgente LilyPond nel documento PDF generato. Predefinito: #f.

eps-box-padding num

Sposta il margine sinistro della cornice EPS dell’output di num millimetri. Predefinito: f (ovvero nessuna cornice).

font-export-dir stringa

Imposta la directory per esportare i font come file PostScript su stringa. È utile quando si desidera creare prima un PDF senza font incorporati e poi incorporarli con Ghostscript come mostrato sotto.

$ lilypond -dfont-export-dir=fontdir -dgs-never-embed-fonts foo.ly
$ gs -q -dBATCH -dNOPAUSE -sDEVICE=pdfwrite \
     -sOutputFile=foo.embedded.pdf foo.pdf fontdir/*.font.ps

Nota: Diversamente da font-ps-resdir, questo metodo non permette di incorporare i font CID con Ghostscript 9.26 e versioni successive.

Nota: Come con font-ps-resdir, questa opzione non agisce sui font TrueType, perché incorporare i font TrueType successivamente produce caratteri confusi. Per evitare che i caratteri siano confusi, usare gs-never-embed-fonts, che a dispetto del nome incorpora i font TrueType.

Predefinito: #f (ovvero non esportare).

font-ps-resdir stringa

Imposta la directory (come stringa) per generare un sottoinsieme della directory delle risorse PostScript da usare successivamente per incorporare i font. È utile quando si desidera creare prima un PDF senza font incorporati e poi incorporarli con Ghostscript come mostrato sotto.

$ lilypond -dfont-ps-resdir=resdir -dgs-never-embed-fonts foo.ly
$ gs -q -dBATCH -dNOPAUSE -sDEVICE=pdfwrite \
     -I resdir -I resdir/Font \
     -sOutputFile=foo.embedded.pdf foo.pdf

Nota: È meglio che la directory specificata non contenga il nome Resource perché ha un significato speciale quando utilizzata con l’opzione -I di Ghostscript.

Nota: Diversamente da font-export-dir, questo metodo permette di incorporare i font CID con Ghostscript 9.26 e versioni successive.

Note: Come con font-export-dir, questa opzione non agisce sui font TrueType, perché incorporare i font TrueType successivamente produce caratteri confusi. Per evitare che i caratteri siano confusi, usare gs-never-embed-fonts, che a dispetto del nome incorpora i font TrueType.

Predefinito: #f (ovvero non generare niente).

gs-load-fonts

bool Se bool è #t, carica i font attraverso Ghostscript. Questa opzione fa sì che file di output di LilyPond contengano solo i riferimenti a tutti i font, che devono essere risolti in font reali in un passaggio successivo di elaborazione da parte di Ghostscript. Predefinito: #f.

gs-load-lily-fonts

bool Se bool è #t, carica i font LilyPond attraverso Ghostscript. Questa opzione fa sì che file di output di LilyPond contengano solo i riferimenti ai suoi font musicali, che devono essere risolti in font reali in un passaggio successivo di elaborazione da parte di Ghostscript. Tutti gli altri font sono generati normalmente. Predefinito: #f.

gs-never-embed-fonts

bool Se bool è #t, fa sì che Ghostscript incorpori solo i font TrueType e nessun altro formato per font. Predefinito: #f.

help

bool Se bool è #t, mostra questo aiuto. Predefinito: #f.

include-book-title-preview

bool Se bool è #t, include i titoli dei libri nelle immagini di anteprima. Predefinito: #t.

include-eps-fonts

bool Se bool è #t, include i font in file EPS con sistemi separati. Predefinito: #t.

include-settings

stringa Include il file stringa per le impostazioni globali, che viene incluso prima che la partitura sia elaborata. Predefinito: #f (ovvero nessun file per le impostazioni globali).

job-count

num Elabora in parallelo, usando num lavori. Predefinito: #f (ovvero nessuna elaborazione in parallelo).

log-file

string Redirige l’output nel file di log stringa.log. Predefinito: #f (ovvero nessun file di log).

max-markup-depth

num Imposta la massima profondità per la struttura del blocco markup sul valore num. Se un blocco markup ha più livelli, assume che non terminerà da solo, stampa un avviso e restituisce al suo posto un markup vuoto. Predefinito: 1024.

midi-extension

string Imposta l’estensione predefinita per il file MIDI su .stringa. Predefinito: "midi".

music-strings-to-paths

bool Se bool è #t, converte le stringhe di testo in percorsi quando i glifi appartengono a un font musicale. Predefinito: #f.

paper-size

stringa-tra-virgolette Imposta la dimensione predefinita del foglio su stringa-tra-virgolette. Nota che la stringa deve essere racchiusa tra virgolette precedute dal segno di escape. Predefinito: "\"a4\"".

pixmap-format

simbolo Imposta il formato di output di Ghostscript per le immagini raster su simbolo. Predefinito: png16m.

png-width larghezza
png-height altezza

Per l’output PNG, imposta la larghezza e l’altezza (in pixel) del file immagine creato. Se manca una delle opzioni, l’altra dimensione viene calcolata in base al riquadro di delimitazione EPS, mantenendo le proporzioni.

Oltre a --png, per ottenere una scala corretta dell’immagine senza tagli, si deve usare --eps, -dcrop o -dpreview.

L’opzione -dresolution viene ignorata.

Attenzione, c’è un bug nelle versioni di Ghostscript fino alla 9.52 che riguarda queste due opzioni: produce immagini PNG vuote se l’altezza è più grande della larghezza.

point-and-click

bool Se bool è #t, aggiunge i collegamenti “punta e clicca” all’output PDF e SVG. Si veda Punta e clicca. Predefinito: #t.

preview

bool Se bool è #t, crea immagini di anteprima oltre al normale output.

Predefinito: #f.

Questa opzione è supportata da tutti i backend (pdf, png, ps, eps e svg, eccetto scm. Per un file di input chiamato file e backend formato, genera un file di output dal nome file.preview.formato, contenente i titoli e il primo sistema. Se vengono usati i blocchi \book o \bookpart, i titoli di \book, \bookpart o \score appariranno nell’output, incluso il primo sistema di ogni blocco \score se la variabile print-all-headers di \paper è impostata su #t.

Per impedire il normale output, si usano le opzioni -dprint-pages o -dno-print-pages in base alle proprie esigenze.

print-pages

bool Se bool è #t, genera le pagine complete. Predefinito: #t.

L’opzione -dno-print-pages è utile in combinazione con -dpreview o -dcrop.

protected-scheme-parsing bool

Se bool è #t, continua finché l’analizzatore non coglie degli errori nel codice Scheme interno al file di input. Se impostato su #f, in caso di errore si ferma e mostra la traccia di stack. Predefinito: #t.

relative-includes

bool Quando elabora un comando \include, cerca il file incluso in posizione relativa al file corrente se bool è #t. Se impostato su #f, cerca il file relativo al file root. Predefinito: #t.

resolution

num Imposta la risoluzione per generare immagini PNG su num dpi. Predefinito: 101.

safe

bool Se bool è #t, non si fida dell’input nel file .ly. Predefinito: #f.

Quando la formattazione di LilyPond viene messa a disposizione tramite un server web, si DEVE passare l’opzione -dsafe o l’opzione --jail. L’opzione -dsafe impedisce che il codice Scheme presente nell’input possa fare uno scempio,

% troppo pericoloso per scriverlo correttamente
#(s ystem "rm -rf /")

% malvagio ma non distruttivo
{ c4^$(ly:gulp-file "/etc/passwd") }

L’opzione -dsafe serve a valutare le espressioni Scheme presenti nell’input in uno speciale modulo di sicurezza. Questo modulo di sicurezza è derivato dal modulo Guile safe-r5rs, ma aggiunge alcune funzioni del LilyPond API. Queste funzioni sono elencate in scm/safe-lily.scm.

Inoltre, la modalità sicura non permette le direttive \include e disabilita l’uso del backslash nelle stringhe TeX. In modalità sicura, non è possibile importare le variabili di LilyPond in Scheme.

L’opzione -dsafe non rileva il sovrautilizzo di risorse. È ancora possibile far sì che il programma rimanga in sospeso per un tempo indefinito, ad esempio alimentando il backend con strutture di dati cicliche. Dunque se si vuole usare LilyPond su un server web pubblicamente accessibile, si deve limitare il processo nell’uso della CPU e della memoria.

La modalità sicura bloccherà la compilazione di molti utili frammenti di codice LilyPond.

L’opzione --jail è un’alternativa più sicura, ma richiede più lavoro per configurarla. Si veda Opzioni di base della linea di comando per LilyPond.

separate-log-files

bool Per i file di input file1.ly, file2.ly, …, salva i dati di log nei file file1.log, file2.log, …, se bool è #t. Predefinito: #f.

separate-page-formats simbolo

Elenco separato da virgola di formati (svg, pdf, png o eps) da usare per le immagini di pagini separate in lilypond-book.

show-available-fonts

bool Se bool è #t, elenca i nomi di font disponibili così come li consegna la libreria fontconfig. In fondo a questo elenco LilyPond mostra le impostazioni di configurazione di fontconfig. Predefinito: #f.

strip-output-dir

bool Se bool è #t, non usa le directory dei percorsi dei file di input per costruire i nomi dei file di output. Predefinito: #t.

strokeadjust

bool Se bool è #t, forza l’aggiustamento del tratto da parte di PostScript. Questa opzione è utile quando il PDF è generato dall’output PostScript (l’aggiustamento del tratto di solito è abilitato automaticamente per gli strumenti bitmap a bassa risoluzione). Senza questa opzione, i lettori PDF tendono a produrre larghezze dei gambi molto variabili alle risoluzioni tipiche dei monitor. Tuttavia l’opzione non produce effetti visibili sulla qualità di stampa e causa un notevole aumento della dimensione dei file PDF. Predefinito: #f.

svg-woff

bool Questa opzione è richiesta se si usano i file del formato per font Web Open Font Format (WOFF) col backend svg. Se bool è #t, viene creato un singolo file SVG per ogni pagina di output. Eccetto i glifi musicali di LilyPond, nessun altro tipo di carattere verrà incorporato nel file. Dunque qualsiasi lettore SVG dovrà avere accesso ai tipi di carattere per rendere in modo adeguato il testo. Si raccomanda di non usare gli “alias” o le “liste” dei tipi di carattere se il lettore SVG non è in grado di gestirli. Predefinito: #f.

tall-page-formats simbolo

Elenco separato da virgola di formati (svg, pdf, png o eps) da usare per l’immagine ‘tall page’ (pagina alta) in lilypond-book.

use-paper-size-for-page bool

Se bool è #t (predefinito), ogni pagina è impostata sulla dimensione del foglio, forse tagliando le parti che vanno oltre il foglio. Impostandolo su #f la pagina verrà ridimensionata per racchiudere il contenuto a seconda delle necessità.

verbose

Livello di verbosità. Questa è un’opzione di sola lettura; la sua impostazione non ha effetto.

warning-as-error

bool Se bool è #t, trasforma tutti i messaggi di avviso e di “errore di programmazione” in errori. Predefinito: #f.


LilyPond: manuale d’uso del programma v2.25.15 (ramo di sviluppo).