+@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 print-pages
+Génère l'intégralité des pages de la partition. L'option
+@code{-dno-print-pages} est particulièrement utile lorsqu'utilisée
+conjointement avec l'option @code{-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 @code{-I}, auquel cas le
+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 -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.
+
+
+@cindex PostScript output
+
+@item --ps
+Génère du PostScript.
+
+
+@cindex Portable Network Graphics (PNG) output
+
+@item --png
+Génère une image par page, au format PNG@tie{}; ceci sous-entend
+l'utilisation de @code{--ps}. La résolution de l'image, en DPI, peut se
+régler en ajoutant par exemple
+@example
+-dresolution=110
+@end example
+
+
+@cindex Portable Document Format (PDF) output
+
+@item --pdf
+Génère du PDF. Ceci sous-entend l'utilisation de @code{--ps}.
+
+
+@item -j,--jail=@var{user},@var{group},@var{jail},@var{dir}
+Lance @command{lilypond} dans un environnement protégé.
+
+L'option @code{--jail} est une alternative qui offre plus de flexibilité
+que l'option @code{--safe} lorsque LilyPond est installé sur un serveur
+web ou traite des fichiers externes.
+
+L'option @code{--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 @code{--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 @code{noexec}, @code{nodev} et
+@code{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 @code{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_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 @code{-V} ou @code{--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