4.1.1 Configurare il sistema

Quando questa funzionalità è attiva, LilyPond aggiunge dei collegamenti ipertestuali al file PDF e SVG. Questi collegamenti vengono inviati a un ‘programma di supporto per URI’ o al browser web, che apre un editor di testo col cursore posizionato nel punto giusto.

Perché questo procedimento funzioni è necessario configurare il lettore PDF in modo che segua i collegamenti ipertestuali usando lo script ‘lilypond-invoke-editor’ fornito insieme a LilyPond.

lilypond-invoke-editor’ è un piccolo programma di supporto. Lancia un editor per gli URI textedit e un browser web per altri URI. Controlla le variabili d’ambiente EDITOR e LYEDITOR per scoprire e lanciare l’editor preferito da usare. La variabile LYEDITOR ha priorità sulla variabile EDITOR ed è quindi consigliato l’uso della prima se si desidera usare un editor per il terminale e un editor diverso per il punta e clicca di LilyPond.

Ogni editor ha una diversa sintassi per aprire un file a una specifica riga e colonna. Per comodità dell’utente, LilyPond ha comandi pronti per vari editor, elencati in ‘scm/editor.scm’. Ciò significa che basta scrivere il nome del file eseguibile dell’editor, per esempio:

export LYEDITOR=atom

e verrà lanciato

atom %(file)s:%(line)s:%(column)s

dove %(file)s, %(line)s e %(column)s vengono sostituiti rispettivamente dal file, dalla riga e dalla colonna.

Per poter usare un editor non elencato in ‘scm/editor.scm’, occorre scoprire la sua specifica sintassi e assegnare il comando completo alla variabile LYEDITOR. Ecco un esempio per l’editor Visual Studio Code:

export LYEDITOR="code --goto %(file)s:%(line)s:%(column)s"

Nota: Se si sceglie Emacs, è necessaria un’ulteriore configurazione. Bisogna aggiungere la riga (server-start) al proprio file ‘~/.emacs’, altrimenti ogni clic su un oggetto del PDF aprirà una nuova finestra di Emacs.


Usare Xpdf

Se si usa Xpdf su UNIX, si deve inserire la seguente riga nel file ‘xpdfrc’. Su UNIX, questo file può essere ‘/etc/xpdfrc’ oppure ‘$HOME/.xpdfrc’.

urlCommand     "lilypond-invoke-editor %s"

Se si usa Ubuntu, è probabile che la versione di Xpdf installata nel sistema causi il crash per qualsiasi file PDF: questa situazione continua da molti anni ed è dovuta a una corrispondenza sbagliata tra librerie. Conviene installare un pacchetto aggiornato di ‘xpdf’ e il corrispondente pacchetto ‘libpoppler’ da Debian. Dopo aver verificato che funziona, si può usare il comando

sudo apt-mark hold xpdf

per impedire a Ubuntu di sovrascriverlo al prossimo ‘aggiornamento’ del suo pacchetto difettoso.


Usare GNOME 2

Per usare GNOME 2 (e i visualizzatori PDF ad esso integrati), il magico comando che fornisce al sistema gli URI ‘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

Dopo questi comandi:

gnome-open textedit:///etc/issue:1:0:0

dovrebbe lanciare ‘lilypond-invoke-editor’ per l’apertura del file.


Usare GNOME 3

In GNOME 3, gli URI sono gestiti da ‘gvfs’ invece che da ‘gconf’. Si crea un file in una directory locale (ad esempio ‘/tmp’) che abbia il nome ‘lilypond-invoke-editor.desktop’ e il seguente contenuto:

[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

e poi si eseguono i comandi

xdg-desktop-menu install ./lilypond-invoke-editor.desktop
xdg-mime default lilypond-invoke-editor.desktop x-scheme-handler/textedit

Dopo questi comandi:

gnome-open textedit:///etc/issue:1:0:0

dovrebbe lanciare ‘lilypond-invoke-editor’ per l’apertura del file.


Ulteriore configurazione per Evince

Se gnome-open funziona, ma Evince si rifiuta ancora di aprire i collegamenti punta e clicca a causa di permessi negati, potrebbe essere necessario cambiare il profilo Apparmor di Evince che controlla il tipo di azioni che Evince ha il permesso di eseguire.

In Ubuntu, si modifica il file ‘/etc/apparmor.d/local/usr.bin.evince’ e si aggiungono le seguenti righe:

# Per i collegamenti Textedit
/usr/local/bin/lilypond-invoke-editor Cx -> sanitized_helper,

Dopo aver aggiunto queste righe, si lancia il comando

sudo apparmor_parser -r -T -W /etc/apparmor.d/usr.bin.evince

Ora Evince dovrebbe essere in grado di aprire i collegamenti punta e clicca. È probabile che configurazioni simili funzionino anche con altri visualizzatori.


Abilitare il punta e clicca

La funzionalità "punta e clicca" è abilitata di default quando si creano i file PDF o SVG.

I collegamenti "punta e clicca" appesantiscono sensibilmente i file di output. Per ridurre la dimensione di questi file (e dei file PS), è possibile disattivare il "punta e clicca" inserendo

\pointAndClickOff

in un file ‘.ly’. Il "punta e clicca" può essere abilitato esplicitamente con

\pointAndClickOn

Si può disabilitare il "punta e clicca" anche con un’opzione da linea di comando:

lilypond -dno-point-and-click file.ly

Nota: Occorre sempre disattivare il "punta e clicca" nei file LilyPond che si vogliano diffondere, per evitare di includere nel file PDF delle informazioni sui percorsi del proprio computer: questo infatti può costituire un rischio di sicurezza.


Punta e clicca selettivo

Per alcune applicazioni interattive, si potrebbe voler includere soltanto alcuni elementi punta e clicca. Ad esempio, se qualcuno volesse creare un’applicazione che riproduca audio o video a partire da una nota in particolare, sarebbe inopportuno che il clic sulla nota portasse alla posizione di un’alterazione o di una legatura che si trovi sopra quella nota.

Questo può essere controllato indicando quali eventi includere:

Si può includere più di un evento:


LilyPond — Utilizzo v2.24.4 (ramo stabile).