4.1.1 Configuration du système
Lorsque cette fonctionnalité est active, LilyPond ajoute des hyperliens au fichier PDF ou SVG. Ces liens sont transmis à un « URI helper » ou au navigateur internet, qui se charge d’ouvrir un éditeur de texte à l’endroit même où le curseur pointe.
Afin que cette chaîne de traitement soit pleinement opérationnelle, il faut configurer votre visionneur de PDF de façon à ce qu’il suive les liens grâce au script ‘lilypond-invoke-editor’ fourni avec LilyPond.
‘lilypond-invoke-editor’ est un petit programme assistant. Il
se charge d’appeler un éditeur pour les identifiants de ressource
(URI) de type textedit
, et un navigateur pour les autres.
Il teste en outre la variable d’environnement EDITOR
pour les cas
suivant :
-
emacs
sera alors lancée la commande
emacsclient --no-wait +line:column file
-
gvim
sera alors lancée la commande
gvim --remote +:line:normcolumn file
-
nedit
sera alors lancée la commande
nc -noask +line file'
La variable d’environnement LYEDITOR
permet d’anticiper cette
affectation, puisqu’elle contient la commande qui permet de lancer
l’éditeur en tenant compte des valeurs respectives de %(file)s
,
%(column)s
et%(line)s
. Par exemple,
emacsclient --no-wait +%(line)s:%(column)s %(file)s
en variable d’environnement LYEDITOR
revient au lancement d’un
client emacs standard.
Utilisation avec Xpdf | ||
Utilisation avec GNOME 2 | ||
Utilisation avec GNOME 3 | ||
Configuration spécifique à Evince |
Utilisation avec Xpdf
Pour Xpdf, sous UNIX, vous devrez insérer la ligne suivante dans le fichier ‘xpdfrc’ – soit ‘/etc/xpdfrc’, soit dans votre répertoire personnel ‘$HOME/.xpdfrc’.
urlCommand "lilypond-invoke-editor %s"
Dans un environnement Ubuntu, il est fort probable que la version de Xpdf installée avec le système plante à l’ouverture de tout fichier PDF – c’est un problème connu et persistant depuis plusieurs années et dû à des incohérences de bibliothèques. La solution consiste alors à installer une version à jour des paquetages ‘xpdf’ et ‘libpoppler’ directement à partir de Debian. Une fois assuré que tout fonctionne correctement, la commande
sudo apt-mark hold xpdf
permet d’empêcher Ubuntu de le remplacer par un paquetage défectueux à la prochaine « mise à jour ».
Utilisation avec GNOME 2
En ce qui concerne l’environnement GNOME 2 et les lecteur de PDF associés, la succession de commandes suivante permet de régler le système pour la gestion des URI par ‘textedit:’
gconftool-2 -t string -s /desktop/gnome/url-handlers/textedit/command "lilypond-invoke-editor %s" gconftool-2 -s /desktop/gnome/url-handlers/textedit/needs_terminal false -t bool gconftool-2 -t bool -s /desktop/gnome/url-handlers/textedit/enabled true |
Après ces invocations,
gnome-open textedit:///etc/issue:1:0:0
devrait appeler ‘lilypond-invoke-editor’ pour ouvrir les fichiers.
Utilisation avec GNOME 3
En ce qui concerne l’environnement GNOME 3, les URI sont gérés par la surcouche « gvfs » au lieu de « gconf ». Il faut donc créer un fichier dans un répertoire local tel que ‘/tmp’, que l’on appelera ‘lilypond-invoke-editor.desktop’. Il devra avoir le contenu suivant :
[Desktop Entry] Version=1.0 Name=lilypond-invoke-editor GenericName=Textedit URI handler Comment=URI handler for textedit: Exec=lilypond-invoke-editor %u Terminal=false Type=Application MimeType=x-scheme-handler/textedit; Categories=Editor NoDisplay=true
puis exécuter les commandes
xdg-desktop-menu install ./lilypond-invoke-editor.desktop xdg-mime default lilypond-invoke-editor.desktop x-scheme-handler/textedit
Après cette invocation,
gnome-open textedit:///etc/issue:1:0:0
devrait appeler ‘lilypond-invoke-editor’ pour ouvrir les fichiers.
Configuration spécifique à Evince
Il se peut que, bien que gnome-open
soit fonctionnel, Evince
refuse d’ouvir les liens pointer-cliquer pour des raisons
d’autorisation. S’impose alors une modification du profil
Apparmor
d’Evince ; c’est lui qui contrôle le type d’action
qu’Evince est autorisé à réaliser.
Sur une distribution Ubuntu, cela consiste à éditer le fichier ‘/etc/apparmor.d/local/usr.bin.evince’ et lui ajouter les lignes suivantes :
# Pour les liens Textedit /usr/local/bin/lilypond-invoke-editor Cx -> sanitized_helper,
puis lancer la commande
sudo apparmor_parser -r -T -W /etc/apparmor.d/usr.bin.evince
Evince devrait alors être en mesure d’ouvrir les liens pointer-cliquer. Une telle configuration devrait être fonctionnelle pour d’autres visionneurs.
Activation du pointer-cliquer
La fonctionnalité de « pointer-cliquer » est activée par défaut pour ce qui est des fichiers PDF et SVG.
L’option pointer-cliquer accroît la taille des fichiers de manière significative. Afin de réduire la taille de ces fichiers (ainsi que du PS), il est toujours possible de désactiver le pointer-cliquer en ajoutant
\pointAndClickOff
dans le fichier ‘.ly’. Il peut alors être activé de manière explicite grâce à
\pointAndClickOn
Le pointer-cliquer peut aussi être désactivé au moment de la compilation en ligne de commande :
lilypond -dno-point-and-click file.ly
Note : Lorsqu’un fichier LilyPond est destiné à être redistribué, pensez à désactiver le pointer-cliquer, de telle sorte que les chemins d’accès et autres informations propres à votre système ne se retrouvent pas inclus dans le fichier PDF.
Pointer-cliquer sélectif
Pour certaines applications interactives, il est parfois préférable de limiter la fonctionnalité du pointer-cliquer à quelques éléments seulement. Par exemple, si vous avez l’intention de créer une application lançant l’audio et la vidéo à partir d’une note en particulier, il serait mal venu qu’un clic sur la note vous amène à l’altération ou une liaison qui l’affecterait.
Les événements générateurs de lien peuvent se gérer :
-
En dur dans votre fichier ‘.ly’ :
\pointAndClickTypes #'note-event \relative { c'2\f( f) }
ou
#(ly:set-option 'point-and-click 'note-event) \relative { c'2\f( f) }
-
En ligne de commande :
lilypond -dpoint-and-click=note-event exemple.ly
Plusieurs types d’événement peuvent être mentionnés :
-
En dur dans votre fichier ‘.ly’ :
\pointAndClickTypes #'(note-event dynamic-event) \relative { c'2\f( f) }
ou
#(ly:set-option 'point-and-click '(note-event dynamic-event)) \relative { c'2\f( f) }
-
En ligne de commande :
lilypond \ -e"(ly:set-option 'point-and-click '(note-event dynamic-event))" \ exemple.ly
Autres langues : English, català, español, magyar, italiano.
About automatic language selection.