[ << Exécution de lilypond ] | [Top][Contents][Index] | [ Mise à jour avec convert-ly >> ] |
[ < Lancement de LilyPond ] | [ Up : Utilisation en ligne de commande ] | [ Options avancées de lilypond > ] |
Options basiques de lilypond
Gardez bien à l’esprit que lorsque l’argument à une option contient des
espaces, il doit être encadré par des guillemets. Par exemple, pour
écrire la sortie de LilyPond dans un répertoire ‘foo bar’, il
faudra ajouter -o "foo bar"
(ou --output="foo bar"
) aux
arguments de lilypond
en ligne de commande. Ces guillemets
informatiques encadrant des arguments sont reconnus par pratiquement
tous les interpréteurs en ligne de commande, que ce soit sur Windows ou
les différents type d’Unix (y compris macOS).
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écifierlilypond -e "(define-public a 42)"
en ligne de commande, et ajouter la ligne
#(use-modules (guile-user))
en tête de votre fichier .ly.
-E
,--eps
Génère des fichiers EPS.
Cette option est équivalente à
-dseparate-page-formats=eps -dtall-page-formats=eps
.-f
,--format=
formatDétermine le format à produire. Il peut s’agir de
ps
,pdf
,png
ousvg
.Exemple :
lilypond -fpng monfichier.ly
SVG utilisant en interne un moteur spécifique, il ne peut donc s’obtenir de la même manière que les autres formats ; l’utilisation de
-fsvg
ou--svg
revient en fait à utiliser l’option-dbackend=svg
– voir Options avancées delilypond
.-h
,--help
Affiche 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.] Lancelilypond
dans un environnement protégé.L’option --jail peut s’utiliser pour des raisons de sécurité lorsque LilyPond est installé sur un serveur web ou traite des fichiers externes – voir Options avancées de
lilypond
. Dans la mesure où LilyPond procure de quoi faire tourner des programmes Guile, il est primordial, en pareil cas, que ce soit dans un environnement contraint de telle sorte que les fichiers alors compilés ne mettent pas en péril l’intégrité du système comme, par exemple, avec un% trop dangereux à écrire sans faute #(s yste m "rm -rf /") % malveillant mais pas destructeur { c4^$(ly:gulp-file "/etc/passwd") }
L’option --jail permet d’obtenir une telle incarcération. Un autre moyen consiste à utiliser LilyPond dans un conteneur Docker.
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 commandesudo
.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 :
- Création d’un système de fichiers indépendant
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
etnosuid
. 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.- Création d’un utilisateur spécifique
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.- Agencement des lieux
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.- Lancement de LilyPond
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 commandesudo
. 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 :
NONE
Aucun verbiage, même pas les messages d’erreur.
ERROR
Uniquement les messages d’erreur ; pas de message d’avertissement ni de progression.
WARN
Messages d’avertissement ou d’erreur ; pas d’information de progression.
BASIC
Information de progression basique (réussite) et avertissements ou erreurs.
PROGRESS
Toutes les informations de progression, avertissements et erreurs.
INFO
Informations de progression, avertissements et erreurs, ainsi que d’autres informations relatives à l’exécution. Ceci est la valeur par défaut.
DEBUG
Tout 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 :
size
Génère 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"
.TeX
Produit 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-GS
L’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"
.
--ps
Génère du PostScript. Cette option est équivalente à
-fps
.--png
Gé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
--pdf
Génère du PDF. Ceci est la valeur par défaut, et est équivalant à
-fpdf
.-s
,--silent
N’affiche rien de plus que les messages d’erreur. Ceci est équivalent à
-lERROR
.--svg
Génère un fichier SVG par page. Cette option est équivalente à
-fsvg
.-v
,--version
Affiche le numéro de version.
-V
,--verbose
Active 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
,--warranty
Affiche les informations de garantie applicables à GNU LilyPond – il est livré SANS GARANTIE !
[ << Exécution de lilypond ] | [Top][Contents][Index] | [ Mise à jour avec convert-ly >> ] |
[ < Lancement de LilyPond ] | [ Up : Utilisation en ligne de commande ] | [ Options avancées de lilypond > ] |