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 les variables d’environnement EDITOR
et
LYEDITOR
pour trouver et lancer l’éditeur favori. Dans la mesure
où LYEDITOR
aura préséance sur EDITOR
, nous vous
conseillons de l’utiliser si vous désirez utiliser un éditeur pour le
terminal et un autre pour la fonctionnalité pointer-cliquer de LilyPond.
Les éditeurs peuvent recourir à des syntaxes différentes pour ouvrir un fichier à une ligne et une colonne spécifiques. LilyPond dispose déjà d’un certain nombre de commandes selon les éditeurs, définies dans le fichier ‘scripts/lilypond-invoke-editor.py’. Il suffit donc de libeller, par exemple :
export LYEDITOR=atom
pour lancer la commande
atom %(file)s:%(line)s:%(column)s
où %(file)s
, %(line)s
et %(column)s
seront
respectivement remplacés par le fichier, la ligne et la colonne
considérés.
L’utilisation d’un éditeur non répertorié dans ce fichier recquiert d’en
connaître la syntaxe spécifique et d’assigner la commande complète à la
variable LYEDITOR
. Voici par exemple ce qui convient à l’éditeur
Visual Studio Code :
export LYEDITOR="code --goto %(file)s:%(line)s:%(column)s"
Note : L’utilisation d’Emacs recquiert une configuration
supplémentaire. Il faudra ajouter la ligne (server-start)
à votre
fichier ‘~/.emacs’ afin d’éviter qu’une instance supplémentaire
d’Emacs ne s’ouvre à chaque clic sur un objet du PDF.
Utilisation avec GNOME | ||
Configuration spécifique à Evince |
Utilisation avec GNOME
En ce qui concerne l’environnement GNOME, les URI sont gérés par des fichers « .desktop ». 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,
xdg-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 xdg-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