+@item preview
+@cindex preview, ligne de commande
+Génère un fichier comprenant le titrage et le premier système. S'il
+existe plusieurs sections @code{\bookpart}, ce fichier contiendra les
+titrage et premier système de chacun des @code{\bookpart}. Cette
+option fonctionne pour les moteurs de traitement @code{ps}, @code{eps}
+et @code{svg}.
+
+
+@item gui
+Travaille silencieusement, et redirige tout le verbiage dans un fichier
+journal.
+
+Note à l'attention des utilisateurs de Windows@tie{}: toutes les
+informations concernant le traitement apparaissent au fur et à mesure
+dans l'interpréteur de commandes lorsque vous lancez le programme
+@code{lilypond.exe}, à l'inverse de @w{@code{lilypond-windows.exe}} qui
+vous renvoie simplement la main. L'option @option{-dgui} vous permettra
+alors de rediriger ces informations dans un fichier journal.
+
+@item print-pages
+Génère l'intégralité des pages de la partition. L'option
+@option{-dno-print-pages} est particulièrement utile lorsqu'utilisée
+conjointement avec l'option @option{-dpreview}.
+
+@end table
+
+
+@item -h,--help
+Affiche un résumé des commandes.
+
+
+@item -H,--header=@var{CHAMP}
+Recopie le champ d'entête dans le fichier @file{RACINE.@var{CHAMP}}.
+
+
+@item --include, -I=@var{répertoire}
+@cindex recherche de fichier
+@cindex search path
+
+Ajoute @var{répertoire} au chemin de recherche pour les inclusions.
+
+Vous pouvez mentionner plusieurs fois l'option @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.
+
+
+@item -i,--init=@var{fichier}
+Définit @var{fichier} (par défaut @file{init.ly}) en tant que fichier
+d'initialisation.
+
+
+@item -l,--loglevel=@var{DEGRÉ}
+@cindex loglevel
+@cindex verbosité, définir le degré de
+
+Règle le niveau de verbosité des messages console à @var{DEGRÉ}. Les
+différentes valeurs sont@tie{}:
+@table @code
+@item NONE
+Aucun verbiage, même pas les messages d'erreur.
+
+@item ERROR
+Uniquement les messages d'erreur@tie{}; pas de message d'avertissement
+ni de progression.
+
+@item WARN
+Messages d'avertissement ou d'erreur@tie{}; pas d'information de
+progression.
+
+@item BASIC_PROGRESS
+Information de progression basique (réussite) et avertissements ou erreurs.
+
+@item PROGRESS
+Toutes les informations de progression, avertissements et erreurs.
+
+@item INFO (par défaut)
+Informations de progression, avertissements et erreurs, ainsi que
+d'autres informations quant à l'exécution.
+
+@item DEBUG
+Tout ce qui peut être affiché, y compris le verbiage utile au débogage.
+@end table
+
+
+@item -o,--output=@var{FICHIER} ou @var{RÉP}
+@cindex répertoire de destination
+@cindex fichier de destination
+
+Détermine le nom par défaut du fichier résultant à @var{FICHIER}@tie{};
+lorsque l'argument @var{RÉP} 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é (p.ex. @file{.pdf} pour du pdf) dans tous les cas.
+
+
+@item --ps
+@cindex PostScript output
+Génère du PostScript.
+
+
+@item --png
+@cindex Portable Network Graphics (PNG) output
+Génère une image par page, au format PNG@tie{}; ceci sous-entend
+l'utilisation de @option{--ps}. La résolution de l'image, en DPI, peut
+se régler en ajoutant par exemple
+@example
+-dresolution=110
+@end example
+
+
+@item --pdf
+@cindex Portable Document Format (PDF) output
+Génère du PDF. Ceci sous-entend l'utilisation de @option{--ps}.
+
+
+@item -j,--jail=@var{user},@var{group},@var{jail},@var{dir}
+Lance @command{lilypond} dans un environnement protégé.
+
+L'option @option{--jail} est une alternative qui offre plus de
+flexibilité que l'option @option{--safe} lorsque LilyPond est installé
+sur un serveur web ou traite des fichiers externes.
+
+L'option @option{--jail} va détourner la racine de @command{lilypond}
+sur @code{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 @code{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 @option{--jail} soit fonctionnelle,
+@code{lilypond} doit être lancé en tant qu'administrateur -- ce qui se
+réalise aisément à l'aide de la commande @command{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 @strong{à l'intérieur de la cellule}.
+L'ermitage, avant d'être viable, requiert donc les étapes
+suivantes@tie{}:
+
+@table @asis
+@item 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 @option{noexec},
+@option{nodev} et @option{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 (@emph{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.
+
+@item 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 @code{lily}/@code{lily}
+-- qui n'aura accès en écriture qu'à un unique répertoire déterminé par
+la valeur de @var{dir}.
+
+@item 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 @file{/usr/share/lilypond}) doit y être dupliquée.
+
+En cas de problème, lancer LilyPond en utilisant @code{strace} devrait
+vous permettre de déterminer quels fichiers manquent à l'appel.
+
+@item Lancement de LilyPond
+Dans un environnement protégé monté avec l'option @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 perdra
+aussitôt --, ce qui peut nécessiter le recours à la commande
+@code{sudo}. Il est par ailleurs judicieux de limiter le temps
+processeur aloué à LilyPond -- grâce à @command{ulimit@tie{}-t} par
+exemple -- ainsi que, si votre système le permet, la taille de la
+mémoire.
+@end table
+
+
+@item -v,--version
+Affiche le numéro de version.
+
+
+@item -V,--verbose
+Active le mode verbeux@tie{}: affichage de l'intégralité du chemin
+d'accès de chaque fichier, et information des temps de traitement.
+
+
+@item -w,--warranty
+Affiche les informations de garantie appliquables à GNU LilyPond -- il
+est livré @strong{SANS GARANTIE}@tie{}!
+@end table
+
+
+@node Variables d'environnement
+@unnumberedsubsec Variables d'environnement
+@translationof Environment variables
+
+@cindex LANG
+@cindex LILYPOND_DATADIR
+
+@command{lilypond} reconnaît les variables d'environnement
+suivantes@tie{}:
+@table @code
+@item LILYPOND_DATADIR
+Cette variable spécifie le répertoire où seront recherchés par défaut
+les différentes versions des messages ainsi qu'un certain nombre de
+fichiers nécessaires au traitement. Il devrait contenir les
+sous-répertoires @file{ly/}, @file{ps/}, @file{tex/}, etc.
+
+@item LANG
+Cette variable détermine la langue dans laquelle seront émis les
+messages.
+
+@item LILYPOND_LOGLEVEL
+Cette 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 @option{--loglevel} -- c'est cette valeur qui sera
+utilisée.
+
+@item LILYPOND_GC_YIELD
+Cette 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@tie{}: lorsqu'il est élevé, le programme favorisera
+l'utilisation de la mémoire@tie{}; une faible valeur consommera plus de
+temps processeur. Par défaut, cette valeur est fixée à@tie{}@code{70}.
+
+@end table
+
+
+@node Exécution de LilyPond en mode protégé
+@unnumberedsubsec Exécution de LilyPond en mode protégé
+@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 Linux Ubuntu et
+nécessiteront l'utilisation de @code{sudo} autant que de besoin.
+
+@itemize
+
+@item Installation des paquetages nécessaires@tie{}: LilyPond, GhostScript et
+ImageMagick.
+
+@item Création de l'utilisateur @code{lily}:
+
+@example
+adduser lily
+@end example
+
+@noindent
+Ceci, par la même occasion, créera un groupe spécifique pour
+l'utilisateur @code{lily} ainsi que son répertoire personnel
+@code{/home/lily}.
+
+@item Création, dans le répertoire personnel de l'utilisateur
+@code{lily}, d'un espace agissant en tant que système de fichiers@tie{}:
+
+@example
+dd if=/dev/zero of=/home/lily/loopfile bs=1k count= 200000
+@end example
+
+@noindent
+Cette commande a créé un fichier de 200@tie{}MB utilisable par le
+@qq{système protégé}.
+
+@item Création d'un pseudo-périphérique, génération d'un système de
+fichiers et chargement de celui-ci, puis création d'un répertoire
+accessible en écriture pour l'utilisateur @code{lily}@tie{}:
+
+@example
+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
+@end example
+
+@item Affectation, au niveau configuration du serveur, de
+@code{/mnt/lilyloop} en tant que JAIL et @code{/lilyhome} en tant que
+DIR.
+
+@item Création d'une arborescence, dans l'espace protégé, et recopie de
+tous les fichiers nécessaires -- voir le script plus loin.
+
+Le recours à l'utilitaire @code{sed} permet de créer les commandes de
+copie de tout ce qui est nécessaire à un exécutable@tie{}:
+
+@example
+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
+@end example
+
+@end itemize
+
+@subheading Exemple de script fonctionnel en 32-bit sur Ubuntu 8.04
+
+@example
+#!/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 biblothè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
+@end example
+
+
+@node Messages d'erreur
+@section Messages d'erreur
+@translationof Error messages
+
+@cindex erreur, messages
+
+Différents messages d'erreur sont susceptibles d'apparaître au cours de
+la compilation d'un fichier@tie{}:
+
+@table @emph
+
+@item Warning -- Avertissement
+@cindex warning
+@cindex avertissement
+Ce type de message est émis lorsque LilyPond détecte quelque chose de
+suspect. Si vous avez demandé quelque chose qui sort de l'ordinaire,
+vous saurez probablement ce à quoi il est fait référence et ignorerez de
+tels messages sans remord. Néanmoins, les messages d'avertissement
+indiquent la plupart du temps une incohérence dans le fichier source.
+
+@item Error -- Erreur
+@cindex error
+LilyPond a détecté une erreur. L'étape en cours, qu'il s'agisse de
+l'analyse, de l'interprétation des données ou bien du formatage, sera
+menée à son terme, puis LilyPond s'arrêtera.
+
+@item Fatal error -- Erreur fatale
+@cindex fatal error
+LilyPond est confronté à une anomalie bloquante. Ceci ne se produit que
+très rarement, et la plupart du temps en raison d'une installation
+défectueuse des fontes.
+
+@item Scheme error -- Erreur Scheme
+@cindex trace, Scheme
+@cindex call trace
+@cindex Scheme error
+Les erreurs qui interviennent lors de l'exécution de code Scheme sont
+gérées par l'interpréteur Scheme. L'utilisation du mode verbeux
+(options @option{-V} ou @option{--verbose}) vous permettra de localiser
+l'appel de fonction délictueux.
+
+@item Programming error -- Erreur de programmation
+@cindex Programming error
+@cindex Erreur de programmation
+LilyPond est confronté à une incohérence interne. Ce type de message
+est destiné à venir en aide aux développeurs et débogueurs. En règle
+générale, vous pouvez tout simplement les ignorer. Parfois, il y en a
+tant qu'ils masquent ce qui pourrait vous intéresser@dots{}
+
+@item Aborted (core dumped) -- Abandon
+@cindex Aborted (core dumped)
+Ce type de message indique que LilyPond a planté en raison d'une grave
+erreur de programmation. La survenance d'un tel message est considérée
+comme de la plus haute importance. Si vous y étiez confronté,
+transmettez un rapport de bogue.
+@end table
+
+@cindex errors, message format
+Lorsque l'avertissement ou l'erreur est directement lié au fichier
+source, le message est libellé sous la forme
+
+@example
+@var{fichier}:@var{ligne}:@var{colonne}: @var{message}
+@var{contenu de la ligne litigieuse}
+@end example
+
+Un saut de ligne est placé dans la ligne de code, indiquant l'endroit
+précis du problème, comme ici@tie{}:
+
+@example
+test.ly:2:19: erreur: n'est pas une durée: 5
+ @{ c'4 e'
+ 5 g' @}
+@end example
+
+Notez que ces coordonnées constituent l'approximation au mieux par
+LilyPond dans le code ayant déclenché l'avertissement ou l'erreur. En
+règle générale, erreurs et avertissement surviennent lorsque LilyPond
+rencontre quelque chose d'inattendu. Lorsque la ligne indiquée ne vous
+semble pas comporter d'élément litigieux, remontez de quelques lignes
+dans votre code.
+
+Vous trouverez d'autres informations sur les erreurs au chapitre
+@ref{Quelques erreurs des plus courantes}.
+
+
+@node Quelques erreurs des plus courantes
+@section Quelques erreurs des plus courantes
+@translationof Common errors
+
+Les conditions amenant aux erreurs qui suivent sont fréquentes, bien
+qu'elles ne soient pas évidentes ni facilement localisables. Nous
+espérons que ces explications vous aideront à les résoudre plus
+facilement.
+
+
+@menu
+* La musique déborde de la page::
+* Apparition d'une portée supplémentaire::
+* Erreur renvoyant à ../ly/init.ly::
+* Message d'erreur Unbound variable %::
+* Message d'erreur FT_Get_Glyph_Name::
+* staff-affinities devraient aller en ordre décroissant::
+@end menu