| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Command-line usage
Nous nous intéresserons ici aux spécificités de LilyPond employé en
ligne de commande. La ligne de commande permet de faire appel à
certaines options particulières. D’autre part, certains utilitaires
associés, tel que midi2ly, ne sont disponibles qu’en ligne de
commande.
Par « ligne de commande », nous entendons l’interface de commande du système. Les utilisateurs de Windows seront certainement plus familiers des termes « fenêtre DOS » ou « invite de commande ». Quant aux utilisateurs de MacOS X, ils connaissent assurément les termes « console » et « terminal ». Les paramétrages spécifiques au système MacOS font l’objet d’un (web)MacOS X section ‘chapitre particulier’ dans Informations générales.
Notre propos n’est pas ici d’expliquer ce qu’est l’interface de commande pour un système informatique ni comment elle fonctionne. Aussi, si vous ne savez de quoi il retourne, nous vous renvoyons aux nombreuses documentations que vous pourrez trouver sur ce sujet.
| Lancement de LilyPond | ||
Options basiques de lilypond | ||
Options avancées de lilypond | ||
| Variables d’environnement | ||
| Réadressage | ||
| Exécution de LilyPond en mode protégé |
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Invoking LilyPond
L’exécutable lilypond en ligne de commande se lance ainsi :
lilypond [option]… fichier… |
Lorsque le fichier est fourni sans extension, LilyPond présume qu’il
s’agit de ‘.ly’. Pour interpréter directement l’entrée standard
(stdin), fournissez un tiret (-) en lieu et place de
fichier.
Le traitement de ‘monfichier.ly’ produira ‘monfichier.pdf’ par défaut. Vous pouvez spécifier plusieurs fichiers à la fois ; ils seront traités indépendamment les uns des autres.(1)
Lorsque ‘monfichier.ly’ contient plus d’une section \book,
les fichiers produits – à partir du deuxième – seront numérotés. Par
ailleurs, la valeur affectée à output-suffix sera insérée entre la
racine et le numéro. Par exemple, un fichier racine qui
contiendrait
#(define output-suffix "violon")
\score { … }
#(define output-suffix "cello")
\score { … }
|
fournira grâce à LilyPond ‘racine-violon.pdf’ et ‘racine-cello-1.pdf’.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Using LilyPond with standard shell features
Dans la mesure où LilyPond est une application qui fonctionne en ligne de commande, les fonctionnalités de l’interpréteur utilisé pour lancer LilyPond peuvent se révéler utiles.
Par exemple,
lilypond *.ly |
traite tous les fichiers LilyPond présents dans le répertoire en cours.
Rediriger, par exemple dans un fichier, ce qui est émis à l’écran peut s’avérer utile.
lilypond fichier.ly 1> stdout.log lilypond fichier.ly 2> stderr.log lilypond fichier.ly &> tous.log |
Les commandes ci-dessus redirigeront respectivement le « verbiage normal », les erreurs ou tout, dans un fichier texte.
Consultez avant tout la documentation de votre interpréteur habituel – terminal, console, etc. – pour vérifier qu’il prend en charge les options dans cette syntaxe.
Voici comment traiter un jeu de fichiers répartis dans un répertoire donné ainsi que tous ses différents sous-répertoires. Les fichiers résultants sont regroupés dans le répertoire à partir duquel la commande a été exécutée, non selon l’emplacement des fichiers sources.
find . -name '*.ly' -exec lilypond '{}' \;
|
Cette commande, bien qu’effective uniquement dans un terminal, devrait être fonctionnelle aussi pour les utilisateurs de MacOS X.
Les utilisateurs de windows utiliseront l’instruction
forfiles /s /M *.ly /c "cmd /c lilypond @file" |
dans l’interpréteur de commandes, qui se trouve normalement sous
Démarrer > Accessoires > Interpréteur de commandes ou, pour la
version 8, en faisant une recherche sur « interpréteur de commande ».
Par ailleurs, il est possible de spécifier de manière explicite le chemin
d’accès au dossier comportant des sous-répertoires où se trouvent les
fichiers sources, à l’aide de l’option /p :
forfiles /s /p C:\Documents\MesPartitions /M *.ly /c "cmd /c lilypond @file" |
Dans le cas où ce chemin d’accès comporte des espaces, l’intégralité de ce chemin devra être borné par des guillemets informatiques :
forfiles /s /p "C:\Documents\Mes Partitions" /M *.ly /c "cmd /c lilypond @file" |
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
lilypond@translationof Basic command line options for LilyPond
Différentes options sont disponibles en ligne de commande :
-d, --define-default=var[=val]-e, --evaluate=exprÉvalue l’expression Scheme expr avant d’analyser tout fichier ‘.ly’. Lorsque vous spécifiez l’option ‘-e’ à plusieurs reprises, l’évaluation est faite en séquence.
Dans la mesure où l’expression est évaluée par le module
guile-user, vous devez, dès lors que expr utilise des
définitions telles que (define-public a 42), spécifier
lilypond -e '(define-public a 42)' |
en ligne de commande, et ajouter la ligne
#(use-modules (guile-user)) |
en tête de votre fichier ‘.ly’.
Note : Les utilisateurs de Windows doivent utiliser des guillemets
doubles " en lieu et place des guillemets simples '.
-E, --epsGénère des fichiers EPS.
Cette option revient à fournir à la ligne de commande de LilyPond les
options --ps, -dbackend=eps et -daux-files='#f'.
-f, --format=formatDétermine le format à produire. Il peut s’agir de ps, pdf
ou png.
Exemple : lilypond -fpng monfichier.ly
Les formats svg et eps s’obtiennent à l’aide de
l’option -dbackend – voir Options avancées de lilypond.
-h, --helpAffiche un résumé des commandes.
-H, --header=CHAMPRecopie le champ d’entête dans le fichier ‘RACINE.CHAMP’.
Par exemple, si un fichier ‘toto.ly’ contient
\header { title = "tutu" }
\score { c1 }
|
La commande
lilypond -H title toto.ly |
produit un fichier texte plat ‘toto.title’ contenant la chaîne
tutu.
-i, --init=fichierDéfinit fichier (par défaut ‘init.ly’) en tant que fichier d’initialisation.
-I, --include=répertoireAjoute répertoire, de façon relative, au chemin de recherche pour les inclusions. Par défaut, seul le répertoire courant est consulté.
Vous pouvez mentionner plusieurs fois l’option ‘-I’, auquel cas la recherche commencera dans le premier répertoire inclus et, si le fichier en question ne s’y trouve pas, les répertoires suivants seront examinés l’un après l’autre.
Note : L’utilisation du tilde (~) avec l’option ‘-I’
peut produire des résultats inattendus selon le shell.
Les utilisateurs de Windows doivent ajouter une oblique (/
finale au chemin d’accès.
-j, --jail=user,group,jail,dir[Cette option n’est disponible que dès lors que l’environnement dispose
de la fontionnalité chroot. Windows, plus particulièrement, ne le
prend pas en charge.]
Lance lilypond dans un environnement protégé.
L’option ‘--jail’ est une alternative qui offre plus de
flexibilité que l’option ‘--safe’ lorsque LilyPond est installé
sur un serveur web ou traite des fichiers externes – voir
Options avancées de lilypond.
L’option ‘--jail’ va détourner la racine de lilypond
sur jail juste avant d’effectuer la compilation à proprement
parler. L’utilisateur et le groupe sont modifiés en conséquence, et le
répertoire en cours devient dir. Ces réglages assurent – du
moins en théorie – l’impossibilité de s’échapper de la cellule. Notez
cependant que, pour que l’option ‘--jail’ soit fonctionnelle,
lilypond doit être lancé en tant qu’administrateur – ce qui
se réalise aisément à l’aide de la commande sudo.
La création d’un environnement sécurisé requiert quelques précautions dans la mesure où LilyPond doit disposer de tout ce dont il a besoin pour compiler le fichier source à l’intérieur de la cellule. L’ermitage, avant d’être viable, requiert donc les étapes suivantes :
L’intérêt d’un système de fichiers dédié à LilyPond réside dans le fait
qu’on peut le brider à l’aide des options noexec, nodev et
nosuid. Il sera de fait impossible de lancer des exécutables ou
d’écrire sur un périphérique à partir de LilyPond. Si vous n’avez pas
l’intention de créer un tel système sur une partition séparée, vous
pouvez avoir recours à un pseudo-périphérique (loop device) monté
à partir d’un simple fichier de taille raisonnable. D’autre part, le
recours à un système de fichiers indépendant permet de limiter l’espace
dévolu à LilyPond.
L’utilisation de LilyPond au sein de la cellule devrait être réservé à
un utilisateur aux droits restreints. Il faudra donc créer un
utilisateur et un groupe spécifiques – disons
lily/lily – qui n’aura accès en écriture qu’à un
unique répertoire déterminé par la valeur de dir.
LilyPond a besoin d’un certain nombre de fichiers pour pouvoir tourner correctement. Ces fichiers devront donc tous se retrouver dans l’environnement protégé, distribués selon la même arborescence que dans le système d’origine. Ainsi l’intégralité de l’installation de LilyPond (en principe ‘/usr/share/lilypond’) doit y être dupliquée.
En cas de problème, lancer LilyPond en utilisant strace
vous permettra de déterminer quels fichiers manquent à l’appel.
Dans un environnement protégé monté avec l’option noexec, il
est impossible de lancer un quelconque programme extérieur. LilyPond ne
saurait donc avoir recours à un moteur de traitement qui le mettrait
dans cette situation. Comme nous l’avons vu plus haut, LilyPond sera
lancé avec les privilèges de l’administrateur – privilèges qu’il perd
aussitôt –, ce qui peut nécessiter le recours à la commande
sudo. Il est par ailleurs judicieux de limiter le temps
processeur alloué à LilyPond – grâce à ulimit -t par
exemple – ainsi que, si votre système le permet, la taille de la
mémoire. Voir aussi Exécution de LilyPond en mode protégé.
-l, --loglevel=degréRègle le niveau de verbosité des messages console à degré. Les différentes valeurs sont :
NONEAucun verbiage, même pas les messages d’erreur.
ERRORUniquement les messages d’erreur ; pas de message d’avertissement ni de progression.
WARNMessages d’avertissement ou d’erreur ; pas d’information de progression.
BASIC_PROGRESSInformation de progression basique (réussite) et avertissements ou erreurs.
PROGRESSToutes les informations de progression, avertissements et erreurs.
INFOInformations de progression, avertissements et erreurs, ainsi que d’autres informations relatives à l’exécution. Ceci est la valeur par défaut.
DEBUGTout ce qui peut être affiché, y compris le verbiage utile au débogage.
-o, --output=FICHIER-o, --output=RÉPERTOIREDétermine le nom par défaut du fichier résultant à FICHIER ; lorsque l’argument RÉPERTOIRE correspond à un répertoire déjà existant, c’est là que les fichiers résultants seront déposés. Le suffixe adéquat sera ajouté (par ex. ‘.pdf’ pour du PDF) dans tous les cas.
-O, --pspdfopt=cléDétermine l’optimisation des PS/PDF résultants à clé. Les valeurs possibles sont :
sizeGénère un un document PS, EPS ou PDF le plus léger possible. Il s’agit de la valeur par défaut.
L’utilisation de cette valeur revient à lancer les commandes Scheme de
LilyPond -dmusic-font-encodings='#f' et
-dgs-never-embed-fonts='#f'.
TeXProduit des fichiers optimisés pour leur inclusion dans des documents pdfTeX, luatex ou XeTeX.
L’utilisation de cette valeur revient à lancer les commandes Scheme de
LilyPond -dmusic-font-encodings='#t' et
-dgs-never-embed-fonts='#f'.
TeX-GSL’inclusion de plusieurs PDF générés par LilyPond dans un document TeX nécessite l’utilisation de cette option et un retraitement du PDF généré par TeX à l’aide de Ghostscript.
L’utilisation de cette valeur revient à lancer les commandes Scheme de
LilyPond -dmusic-font-encodings='#t' et
-dgs-never-embed-fonts='#t'.
--psGénère du PostScript. Cette option est équivalente à -fps.
--pngGénère une image par page, au format PNG. Cette option est équivalente à
-fpng.
La résolution de l’image peut se régler à N DPI en ajoutant
-dresolution=N |
--pdfGénère du PDF. Ceci est la valeur par défaut, et est équivalant à
-fpdf.
-s, --silentN’affiche rien de plus que les messages d’erreur. Ceci est équivalent à
-lERROR.
-v, --versionAffiche le numéro de version.
-V, --verboseActive le mode verbeux : affichage de l’intégralité du chemin
d’accès de chaque fichier, et information des temps de traitement. Ceci
est équivalent à -lDEBUG.
-w, --warrantyAffiche les informations de garantie applicables à GNU LilyPond – il est livré SANS GARANTIE !
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
lilypond@translationof Advanced command line options for LilyPond
L’option ‘-d’ est l’interface de la ligne de commande à la
fonction Scheme de LilyPond ly:set-option. Par voie de
conséquence, toutes les options listées ci-après peuvent aussi se
définir au sein même des fichiers ‘.ly’.
-d, --define-default=nom-option[=valeur]-d, --define-default=no-nom-optionAffecte la valeur Scheme valeur à l’option interne nom-option du programme. Par exemple, l’option en ligne de commande
-dbackend=svg |
équivaut à
#(ly:set-option 'backend 'svg) |
dans un fichier source LilyPond.
En l’absence de valeur, le programme utilisera #t, ce qui
peut conduire à des résultats inescomptés dès lors que le type escompté
de valeur n’est pas boléen. Préfixer nom-option d’un
no- permet de désactiver une option, autrement dit affecte
#f à valeur. Ainsi,
-dno-point-and-click |
revient au même que
-dpoint-and-click='#f' |
[Note : le caractère ‘#’ introduit un commentaire dans de nombreux
shells ; c’est pourquoi nous recommandons de toujours borner par
des ' les expressions qui le contiennent.]
Voici les différentes options disponibles, ainsi que leur valeur par
défaut. Au sein de code Scheme, la valeur des options est interprétée
par la fonction ly:get-option.
anti-alias-factor numAdopte une résolution supérieure (selon le facteur num donné),puis
réduit au niveau du résultat afin d’éviter les « distorsions » des
images PNG. La valeur par défaut est de 1.0.
aux-files boolSi bool est fixé à #t, génère les fichiers .tex,
.texi et .count pour le moteur de rendu eps. La
valeur par défaut est #t.
backend symboleDétermine symbole comme moteur de traitement de LilyPond. Les valeurs possibles sont :
psIl s’agit du réglage par défaut. Les fichiers PostScript incluent les
fontes TTF, Type1 et OTF, et ce en intégralité. Si
vous utilisez des jeux de caractères orientaux, le fichier aura vite
fait d’atteindre une taille conséquente.
Pour l’obtention d’un fichier PDF, c’est aussi le moteur ps qui
est utilisé. Les données PS sont ensuite retraitées par ps2pdf,
script de Ghostscript, qui par défaut extrait des sous-ensembles des
fontes.
epsIl s’agit du mode que lilypond-book utilise par défaut. Chaque
page (système) fera l’objet d’un fichier ‘EPS’ particulier, sans
fontes, auquel sera associé un fichier ‘EPS’ qui, lui, contiendra
toutes les pages (systèmes) et les fontes.
nullNe génère aucun fichier imprimable. Cette option est équivalente à
-dno-print-pages.
scmRecopie littéralement les commandes Scheme internes de formatage.
svgGénère du Scalable Vector Graphics. Cette option permet de
créer un fichier SVG par page. Les glyphes musicaux sont codés en tant
que graphiques vectoriels mais les fontes textuelles ne sont pas
incorporées aux fichiers ‘SVG’ résultants. Quel que soit le
programme utilisé pour visionner ces fichiers, il devra avoir accès aux
fontes en question pour pouvoir afficher correctement les textes et
paroles. Il est préférable de ne pas recourir aux « alias de police »
ni aux listes de fontes si la visionneuse de fichier SVG ne peut le
traîter correctement. L’option supplémentaire --svg-woff –
voir ci-après – permet d’utiliser les fontes WOFF (Web Open Font
Format) avec le moteur svg.
check-internal-types boolSi bool est déterminé à #t, vérifie qu’à chaque propriété
est bien affecté un type. La valeur par défaut est #f.
clip-systems boolSi bool est déterminé à #t, extrait des fragments musicaux
d’une partition. Ceci requiert que la fonction clip-regions a
été définie au sein du bloc \layout – voir
(notation)Extraction de fragments musicaux section ‘Extraction de fragments musicaux’ dans Manuel de notation. Bien entendu, aucun fragment
ne sera extrait si l’on utilise l’option ‘-dno-print-pages’. La
valeur par défaut est #f.
crop boolSi bool est déterminé à #t, fait correspondre le fichier
résultant (musique et entêtes) à la taille de l’image générée. La valeur
par défaut est #f.
datadirDétermine le préfixe des fichiers de données (lecture seule).
debug-gc boolSi bool est déterminé à #t, génère une copie brute de la
mémoire, aux fins de débogage. La valeur par défaut est #f.
debug-gc-assert-parsed-dead boolPour débogage de la mémoire : si bool est déterminé à #t,
s’assure que toute référence à des objets analysés est effacée. Il
s’agit d’une option interne qui est automatiquement activée par l’option
-ddebug-gc. La valeur par défaut est #f.
debug-lexer boolSi bool est déterminé à #t, permet le débogage de
l’analyseur lexical flex. La valeur par défaut est #f.
debug-page-breaking-scoring boolSi bool est déterminé à #t, purge les calculs des
configurations de saut de page. La valeur par défaut est #f.
debug-parser boolSi bool est déterminé à #t, permet le débogage de
l’analyseur bison. La valeur par défaut est #f.
debug-property-callbacks boolSi bool est déterminé à #t, permet le débogage des chaînes
de callback cycliques. La valeur par défaut est #f.
debug-skylines boolSi bool est déterminé à #t, permet le débogage des lignes
d’horizon. La valeur par défaut est #f.
delete-intermediate-files boolSi bool est déterminé à #t, supprime les fichiers
‘.ps’ inutiles créés lors de la compilation. La valeur par défaut
est #t.
dump-cpu-profile boolSi bool est déterminé à #t, génère une copie brute des
informations de timing (dépend du système). La valeur par défaut
est #f.
dump-profile boolSi bool est déterminé à #t, génère une copie brute de la
mémoire et des temps de traitement pour chaque fichier. La valeur par
défaut est #f.
dump-signatures boolSi bool est déterminé à #t, génère une copie des signatures
de chaque système. Cette option est utilisée pour les tests de
régression. La valeur par défaut est #f.
embed-source-code boolSi bool est déterminé à #t, intègre les fichiers source
LilyPond au document PDF généré. La valeur par défaut est #f.
eps-box-padding numDécale le bord gauche du typon EPS d’une valeur num donnée en
millimètres. La valeur par défaut est #f, autrement dit sans décalage.
font-export-dir chaîneDétermine à chaîne le répertoire dans lequel exporter les fontes en tant que fichiers PostScript. Ceci est tout à fait approprié lorsque l’on crée un fichier PDF sans y incorporer les fontes dans un premier temps, et laisse Ghostscript le faire par la suite comme indiqué ci-dessous.
$ 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
|
Note : Contrairement à font-ps-resdir, cette méthode ne permet
pas d’incorporer de fonte CID avec une version de Ghostscript égale ou
supérieure à 9.26.
Note : Identique à font-ps-resdir, cette option ignore les fontes
TrueType dans la mesure où les incorporer a posteriori cause une
altération des caractères. L’utilisation de gs-never-embed-fonts,
dans la mesure où elle incorpore les fontes TrueType en dépit de ce
qu’elle prétend d’après son nom, permet d’éviter les caractères altérés.
La valeur par défaut est #f, autrement dit absence d’export.
font-ps-resdir chaîneDétermine à chaîne le répertoire dans lequel sera construit le sous-ensemble des ressources PostScript utilisé pour l’incoporation ultérieure des fontes. Ceci est tout à fait approprié lorsque l’on crée un fichier PDF sans y incorporer les fontes dans un premier temps, et laisse Ghostscript le faire par la suite comme indiqué ci-dessous.
$ 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
|
Note : Il vaut mieux éviter que le nom du répertoire contienne le mot
‘Resource’, qui a une signification particulière lorsqu’utilisé avec
une option -I de Ghostscript.
Note : Contrairement à font-export-dir, cette méthode permet
l’incorporation de fontes CID avec une version de Ghostscript égale ou
supérieure à 9.26.
Note : Identique à font-export-dir, cette option ignore les
fontes TrueType dans la mesure où les incorporer a posteriori cause
une altération des caractères. L’utilisation de
gs-never-embed-fonts, dans la mesure où elle incorpore les fontes
TrueType en dépit de ce qu’elle prétend d’après son nom, permet d’éviter
les caractères altérés.
La valeur par défaut est #f, autrement dit absence de
construction d’un sous-ensemble.
gs-load-fonts boolSi bool est déterminé à #t, charge les fontes grâce à
Ghostscript. Cette option a pour conséquence que les fichiers générés
par LilyPond ne contiendront que les références des fontes, qui seront
ensuite résolues en fontes réelles lors de l’étape de retraitement par
Ghostscript. La valeur par défaut est #f.
gs-load-lily-fonts boolSi bool est déterminé à #t, limite les fontes chargées par
Ghostscript aux seules fontes LilyPond. Cette option a pour conséquence
que les fichiers générés par LilyPond ne contiendront les références que
des fontes musicales de LilyPond, qui seront ensuite résolues en fontes
réelles lors de l’étape de retraitement par Ghostscript. Les autres
fontes sont générées normalement. La valeur par défaut est #f.
gs-never-embed-fonts boolSi bool est déterminé à #t, intime à Ghostscript
d’embarquer les fontes uniquement au format TrueType, sans exception. La
valeur par défaut est #f.
gui boolSi bool est déterminé à #t, travaille silencieusement, et
redirige tout le verbiage dans un fichier journal. La valeur par défaut
est #f.
Note à l’attention des utilisateurs de Windows : toutes les informations concernant le traitement apparaissent au fur et à mesure dans l’interpréteur de commandes lorsque vous lancez le programme ‘lilypond.exe’, à l’inverse de ‘lilypond-windows.exe’ qui vous renvoie simplement la main. L’option ‘-dgui’ vous permettra alors de rediriger ces informations dans un fichier journal.
help boolSi bool est déterminé à #t, affiche cette aide. La valeur
par défaut est #f.
include-book-title-preview boolSi bool est déterminé à #t, inclut les titres de l’ouvrage
dans les images de prévisualisation. La valeur par défaut est #t.
include-eps-fonts boolSi bool est déterminé à #t, inclut les fontes dans chaque
fichier EPS contenant un système. La valeur par défaut est #t.
include-settings chaîneInclut le fichier chaîne contenant les réglages globaux, qui sera
inclus avant traitement de la partition. La valeur par défaut est
#f, autrement dit absence de fichier de réglages.
job-count numTraite plusieurs fichiers en parallèle, selon le nombre num de
jobs. La valeur par défaut est #f, autrement dit sans
traitement parallèle.
log-file chaîneRedirige la sortie dans le fichier journal ‘chaîne.log’. La
valeur par défaut est #f, autrement dit absence de fichier de
journalisation.
max-markup-depth numDétermine à num la profondeur maximale de l’arborescence de
markups. Si un markup était plus profond, part du principe
qu’on n’aboutira pas, émet un avertissement et renvoie alors un
markup vide. La valeur par défaut est 1024.
midi-extension chaîneDétermine à chaîne l’extension par défaut des fichiers MIDI.La
valeur par défaut est "midi".
music-strings-to-paths boolSi bool est déterminé à #t, convertit les chaînes
textuelles en chemins lorsque les glyphes font partie d’une fonte
musicale. La valeur par défaut est #f.
paper-size chaîne-entre-guillemetsDétermine la taille par défaut du papier à
chaîne-entre-guillemets. Veillez à ne pas oublier d’encadrer la
valeur par des guillemets échappés (\").La valeur par défaut est
"\"a4\"".
pixmap-format symboleDétermine le format de sortie en images pixélisées pour Ghostscript à
symbole. La valeur par défaut est png16m.
point-and-click boolSi bool est déterminé à #t, ajoute les liens « point &
click » à la sortie PDF ou SVG – voir Pointer-cliquer. La valeur
par défaut est #t.
preview boolSi bool est déterminé à #t, génère une prévisualisation en
plus de la sortie normale. La valeur par défaut est #f.
Cette option, disponible dans tous les formats de sortie imprimables –
rendus pdf, png, ps, eps et svg –
génère un fichier de la forme
‘fichierSource.preview.rendu’ comprenant le
titrage et le premier système. S’il existe plusieurs sections
\book ou \bookpart, ce fichier contiendra les titrage et
premier système de chacun des \book, \bookpart et
\score, dès lors que la variable print-all-headers du bloc
\paper est activée.
Pour l’éviter, utilisez conjointement l’une des options ‘-dprint-pages’ ou ‘-dno-print-pages’ selon vos besoins.
print-pages boolSi bool est déterminé à #t, génère l’intégralité des pages
de la partition. La valeur par défaut est #t.
L’option ‘-dno-print-pages’ est particulièrement utile lorsqu’utilisée conjointement avec les options ‘-dpreview’ et ‘-dcrop’.
profile-property-accesses boolSi bool est déterminé à #t, enregistre des statistiques des
appels à la fonction get_property(). La valeur par défaut est
#f.
protected-scheme-parsing boolSi bool est déterminé à #t, continue en dépit des erreurs
que l’analyseur syntaxique détecterait dans du code Scheme inclus.
Lorsque basculé sur #f, stoppe le traitement s’il y a erreur et
affiche une trace de la pile. La valeur par défaut est #t.
read-file-list chaîneSpécifie un fichier ‘chaîne’ listant les différents fichiers
sources à traiter. La valeur par défaut est #f, autrement dit
absence de fichier de liste.
relative-includes boolFace à une instruction \include, recherche les fichiers à inclure
relativement à l’endroit où se trouve le fichier en cours de traitement
si bool est déterminé à #t, plutôt que par rapport au
fichier maître. La valeur par défaut est #t.
resolution numDétermine la résolution des pixmaps PNG à générer à num
dpi. La valeur par défaut est 101.
safe boolSi bool est déterminé à #t, ne pas avoir une confiance
aveugle dans le code ‘.ly’. La valeur par défaut est #f.
Lorsque LilyPond est accessible au travers d’un serveur web, il est impératif d’utiliser les options ‘--safe’ ou ‘--jail’. L’option ‘--safe’ aura pour effet d’empêcher tout code Scheme inclus de mettre en péril votre installation grâce à quelque chose du style
% trop dangereux à écrire sans faute
#(s ystem "rm -rf /")
% malveillant mais pas destructeur
{ c4^$(ly:gulp-file "/etc/passwd") }
|
L’option -dsafe forcera l’évaluation, au fil de l’eau et par un
module sécurisé, des expressions Scheme contenues dans le fichier
source. Ce module sécuritaire, dérivé du module GUILE ‘safe-r5rs’,
ajoute un certain nombre de fonctions – listées dans
‘scm/safe-lily.scm’ – à l’API de LilyPond.
De plus, le mode safe ne permet ni l’utilisation de directives
\include ni le recours aux obliques inversées (backslash)
dans les chaînes TeX. L’import de variables LilyPond dans du code
Scheme n’est pas possible en mode sécurisé.
L’option -dsafe ne détecte pas l’utilisation abusive des
ressources. Il est donc possible que le programme finisse par rester
sans réponse si on lui envoie une boucle sans fin. C’est la raison pour
laquelle nous recommandons, lorsque LilyPond tourne sur un serveur
accessible au public, d’en limiter aussi bien les ressources processeur
que mémoire.
Notez bien que l’utilisation du mode sécuritaire empêchera aussi la compilation d’un certain nombre de fragments LilyPond.
L’option --jail est dans ce cas une excellente alternative en
terme de sécurité, même si elle requiert plus de temps à mettre en place
– voir Options basiques de lilypond.
separate-log-files boolPour les fichiers ‘fichier1.ly’, ‘fichier2.ly’, etc.
enregistre le déroulement dans les journaux ‘fichier1.log’,
‘fichier2.log’… si bool est déterminé à #t. La
valeur par défaut est #f.
show-available-fonts boolSi bool est déterminé à #t, liste le nom des fontes
disponibles tel que le ressort la bibliothèque fontconfig. LilyPond
ajoute à cette liste les réglages et la configuration de fontconfig. La
valeur par défaut est #t.
strict-infinity-checking boolSi bool est déterminé à #t, force le crash en présence des
points d’exception de virgule flottante Inf ou NaN –
infini ou non-nombre. La valeur par défaut est #f.
strip-output-dir boolSi bool est déterminé à #t, supprime, lors du nommage des
fichiers résultants, la partie correspondant au répertoire des fichiers
sources. La valeur par défaut est #t.
strokeadjust boolSi bool est déterminé à #t, force l’ajustement des traits
PostScript. Cette option trouve toute son utilité pour générer du PDF à
partir de PostScript – l’ajustement des traits est en principe
automatiquement activé pour les périphériques bitmap à faible
résolution. Sans cette option, les visionneurs de PDF ont tendance à ne
pas rendre de manière constante l’épaisseur des hampes dans les
résolutions habituelles des écrans. Bien que n’affectant pas notoirement
la qualité d’impression, cette option accroit notablement la taille des
fichiers PDF. La valeur par défaut est #f.
svg-woff boolCette option est obligatoire dès lors que sont utilisées, avec le
moteur svg, les fontes Web Open Font Format (WOFF). Un
fichier SVG sera généré pour chacune des pages produites. En dehors des
glyphes musicaux propres à LilyPond, aucune autre information ne sera
incluse. Quelque soit le visionneur de SVG utilisé, il devra avoir à
disposition les fontes requises pour pouvoir afficher les éléments
textuels et les paroles. Dans la mesure où le visionneur pourrait ne pas
savoir le gérer, mieux vaut s’abstenir de recourir aux alias ou listes
de fontes. La valeur par défaut est #f.
Lorsque celles-ci sont utilisées correctement, nul n’est besoin
d’installer les fontes que les fichiers SVG utiliseront dans
l’environnement du visionneur. Néanmoins, LilyPond ne dispose pas de
fichier de fonte woff textuelle. La présence du fichier de fonte
woff est un prérequis.
verbosePasse en mode verbeux, ce qui correspond à un niveau de journalisation
DEBUG (lecture seule).
warning-as-error boolSi bool est déterminé à #t, considère tous les messages
d’avertissement et « erreur de programmation » comme étant de véritables
erreurs. La valeur par défaut est #f.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Environment variables
lilypond reconnaît les variables d’environnement
suivantes :
LILYPOND_DATADIRCette variable spécifie le répertoire où sont recherchés par défaut les différentes versions des messages ainsi qu’un certain nombre de fichiers nécessaires au traitement, dérogeant ainsi aux endroits définis soit lors de la compilation, soit calculés dynamiquement lors de l’exécution – voir Réadressage. Il devrait contenir les sous-répertoires ‘ly/’, ‘ps/’, ‘tex/’, etc.
LILYPOND_LOCALEDIRCette variable spécifie le répertoire où sont situés les fichiers
liguistiques, dérogeant ainsi aux valeurs dérivées de
LILYPOND_DATADIR.
LILYPOND_RELOCDIRCette variable spécifie le répertoire dans lequel résident les fichiers
de réadressage. Ceci constitue une dérogation aux endroits définis à
partir d’où réside le binaire lilypond.
LANGCette variable détermine la langue dans laquelle sont émises les
données sur stdout (sortie standard) et stderr (sortie des
erreurs), pour afficher la progession, les avertissements ou messages de
débogage. Par exemple : LANG=de.
LILYPOND_LOGLEVELCette variable détermine le niveau par défaut de verbosité. En l’absence de niveau explicite – autrement dit la ligne de commande ne comporte pas de ‘--loglevel’ – c’est cette valeur qui sera utilisée.
LILYPOND_GC_YIELDCette variable permet d’ajuster l’empreinte mémoire et le rendement de
la machine. Il s’agit en fait d’un pourcentage d’allocation de
mémoire : lorsqu’il est élevé, le programme favorisera
l’utilisation de la mémoire ; une faible valeur consommera plus de
temps processeur. Par défaut, cette valeur est fixée à 70.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Relocation
La plupart des programmes dans le monde Unix utilise des répertoires par défaut pour leurs données, déterminés au moment de leur configuration avant même leur compilation. LilyPond n’y fait pas exception ; par exemple, une installation typique met le fichier binaire ‘lilypond’ dans le répertoire ‘/usr/bin’ et tous les fichiers propres à LilyPond dans des sous-répertoires de ‘/usr/share/lilypond/2.21.0/’ si tant est que la version en cours soit 2.21.0.
Alors que cette approche est tout à fait fonctionnelle dans le cadre d’une compilation manuelle et des plateformes disposant de gestionnaires de paquetages standardisés, elle peut entraîner des problèmes lorsque de tels gestionnaires ne sont pas courants ou pas utilisés par défaut – on peut citer à titre d’exemple Windows et MacOS pour lesquels les utilisateurs s’attendent à ce que l’installation des programmes se fasse n’importe où.
La solution habituelle en pareil cas est la prise en charge du réadressage : au lieu d’utiliser des chemins codés en dur pour les fichiers de données, la localisation des fichiers de support nécéssaires est calculée lors de l’exécution relativement au binaire lancé.
| Fichiers de réadressage | ||
| Algorithme de réadressage |
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Relocation files
Un deuxième mécanisme intervient en fait pour la configuration de
l’exécution : LilyPond dépend fortement de programme ou bibloithèques
externes, en particulier les bibliothèques FontConfig et
GUILE pour trouver respectivement les fontes du système et les
traitement des fichiers Scheme, ainsi que le programme gs pour
convertir les données PostScript en fichiers PDF. Tout ceci doit aussi
être configuré pour retrouver ses propres fichiers de données. Pour y
parvenir, le programme lilypond analyse tous les fichiers d’un
répertoire dénommé ‘relocate’, s’il existe – voir ci-après les
endroits où ce repertoire est recherché – afin de manipuler les
variables d’environnement ce qui, en retour, contrôlera ces programmes
et bibliothèques externes. Les format de ces fichiers de réadressage
est simple, chaque ligne répondant à la syntaxe
commande clé=valeur |
et les lignes vides y seront ignorées
La directive commande est l’une des suivantes :
setDéfinit de manière inconditionnelle la variable d’environnement clé à valeur. Ceci écrase la valeur précédemment définie.
set?Définit la variable d’environnement clé à valeur uniquement si clé n’est pas déjà définie. En d’autres termes, une valeur précédemment définie ne sera pas écrasée.
setdirLorsque valeur est un répertoire, définit inconditionnellement clé à valeur. Un message d’avertissement est émis dans le cas contraire.
setfileLorsque valeur est un fichier, définit inconditionnellement clé à valeur. Un message d’avertissement est émis dans le cas contraire.
prependdirAjoute le répertoire valeur à la liste des répertoires de la variable d’environnement clé. Dans le cas où clé n’existe pas, celle-ci sera créée.
Les variables d’environnement, identifiables au signe dollar qui les préfixe, sont permises en tant que valeur et seront expansées avant l’exécution de la directive.
Voici deux exemples d’entrée d’un fichier de réadresssage, issus de GUB (voir (contributor)Grand Unified Builder (GUB) section ‘Grand Unified Builder (GUB)’ dans Guide du contributeur).
set? FONTCONFIG_FILE=$INSTALLER_PREFIX/etc/fonts/fonts.conf prependdir GUILE_LOAD_PATH=$INSTALLER_PREFIX/share/guile/1.8 |
Dans la mesure où l’ordre d’analyse des fichiers du répertoire ‘relocate’ est arbitraire, mieux vaut s’abstenir de définir une même variable d’environnement à de multiples lignes des fichiers de réadressage.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Relocation algorithm
Afin de trouver ses fichiers de données, LilyPond utilise l’algorithme suivant.
lilypond
actuellement exécuté et nommage en bindir. Détermination, en
interne, de la variable d’environnement INSTALLER_PREFIX à
‘bindir/..’ – autrement dit le répertoire parent de
bindir.
LILYPOND_DATADIR. Si
elle est définie, utilisation de sa valeur pour le répertoire de données
– datadir – de LilyPond. Dans le cas contraire,
utilisation soit de
‘$INSTALLER_PREFIX/share/lilypond/version’ (avec
version étant la version courante de LilyPond), soit
‘$INSTALLER_PREFIX/share/lilypond/current’.
LILYPOND_LOCALEDIR.
Si elle est définie, utilisation de sa valeur pour le répertoire
de données linguistiques – localedir – de LilyPond. Dans
le cas contraire, ce sera ‘$INSTALLER_PREFIX/share/locale’.
LILYPOND_RELOCDIR.
Si elle existe, utilisation de sa valeur pour le répertoire des
fichiers de réadressage – relocdir – de LilyPond. Dans le
cas contraire, ce sera ‘$INSTALLER_PREFIX/etc/relocate’.
datadir, utilisation d’une valeur déterminée au
fil de la compilation. Idem pour localedir, mais pas pour
relocdir (cela n’a aucun sens de le faire).
relocdir existe, traiter tous les fichiers dans ce
répertoire, comme indiqué dans Fichiers de réadressage.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof LilyPond in chroot jail
Paramétrer un serveur afin qu’il puisse faire fonctionner LilyPond en
mode protégé sur un pseudo-périphérique est une tâche sensible. Les
différentes étapes à suivre sont répertoriées ci-dessous. Les exemples
qu’elle comportent proviennent d’une distribution GNU/Linux Ubuntu et
nécessiteront l’utilisation de sudo autant que de besoin.
lily :
adduser lily |
Ceci, par la même occasion, créera un groupe spécifique pour
l’utilisateur lily ainsi que son répertoire personnel
/home/lily.
lily, d’un espace agissant en tant que système de fichiers :
dd if=/dev/zero of=/home/lily/loopfile bs=1k count= 200000 |
Cette commande a créé un fichier de 200 MB utilisable par le « système protégé ».
lily :
mkdir /mnt/lilyloop losetup /dev/loop0 /home/lily/loopfile mkfs -t ext3 /dev/loop0 200000 mount -t ext3 /dev/loop0 /mnt/lilyloop mkdir /mnt/lilyloop/lilyhome chown lily /mnt/lilyloop/lilyhome |
/mnt/lilyloop en tant que JAIL et /lilyhome en tant que
DIR.
Le recours à l’utilitaire sed permet de créer les commandes de
copie de tout ce qui est nécessaire à un exécutable donné :
for i in "/usr/local/lilypond/usr/bin/lilypond" "/bin/sh" "/usr/bin/; \
do ldd $i | sed 's/.*=> \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& \
cp -L \/\1\2 \1\2/' | sed 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \
\1 \&\& cp -L \/\1\2 \1\2/' | sed '/.*=>.*/d'; done
|
#!/bin/sh
## les réglages par défaut
username=lily
home=/home
loopdevice=/dev/loop0
jaildir=/mnt/lilyloop
# le préfixe (sans slash au début !)
lilyprefix=usr/local
# le répertoire du système où lilypond est installé
lilydir=/$lilyprefix/lilypond/
userhome=$home/$username
loopfile=$userhome/loopfile
adduser $username
dd if=/dev/zero of=$loopfile bs=1k count=200000
mkdir $jaildir
losetup $loopdevice $loopfile
mkfs -t ext3 $loopdevice 200000
mount -t ext3 $loopdevice $jaildir
mkdir $jaildir/lilyhome
chown $username $jaildir/lilyhome
cd $jaildir
mkdir -p bin usr/bin usr/share usr/lib usr/share/fonts $lilyprefix tmp
chmod a+w tmp
cp -r -L $lilydir $lilyprefix
cp -L /bin/sh /bin/rm bin
cp -L /usr/bin/convert /usr/bin/gs usr/bin
cp -L /usr/share/fonts/truetype usr/share/fonts
# la formule magique de recopie des bibliothèques
for i in "$lilydir/usr/bin/lilypond" "$lilydir/usr/bin/guile" "/bin/sh" \
"/bin/rm" "/usr/bin/gs" "/usr/bin/convert"; do ldd $i | sed 's/.*=> \
\/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' | sed \
's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' \
| sed '/.*=>.*/d'; done | sh -s
# les fichiers partagés pour Ghostscript...
cp -L -r /usr/share/ghostscript usr/share
# les fichiers partagés pour ImageMagick
cp -L -r /usr/lib/ImageMagick* usr/lib
### Partant du principe que test.ly est dans /mnt/lilyloop/lilyhome,
### on devrait pouvoir lancer :
### Attention : /$lilyprefix/bin/lilypond est un script qui
### définit LD_LIBRARY_PATH - c'est primordial
/$lilyprefix/bin/lilypond -jlily,lily,/mnt/lilyloop,/lilyhome test.ly
|
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] |
Ce document a été généré le le 13 juillet 2020 par gub en utilisant texi2html 1.82.
Autres langues : English, català, deutsch, español, magyar, italiano, 日本語.
À propos de la sélection automatique de la langue.