[ << Programmi esterni ] | [Inizio][Contenuti][Indice] | [ Consigli su come scrivere i file >> ] |
[ < Punta e clicca ] | [ Su : Punta e clicca ] | [ Usare Xpdf per il punta e clicca > ] |
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 | ||
Usare GNOME 2 | ||
Usare GNOME 3 | ||
Ulteriore configurazione per Evince |
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.
[ << Programmi esterni ] | [Inizio][Contenuti][Indice] | [ Consigli su come scrivere i file >> ] |
[ < Ulteriore configurazione per Evince ] | [ Su : Punta e clicca ] | [ Punta e clicca selettivo > ] |
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.
[ << Programmi esterni ] | [Inizio][Contenuti][Indice] | [ Consigli su come scrivere i file >> ] |
[ < Abilitare il punta e clicca ] | [ Su : Punta e clicca ] | [ LilyPond e gli editor di testo > ] |
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:
-
Codice interno al file ‘.ly’:
\pointAndClickTypes #'note-event \relative { c'2\f( f) }
oppure
#(ly:set-option 'point-and-click 'note-event) \relative { c'2\f( f) }
-
Linea di comando:
lilypond -dpoint-and-click=note-event example.ly
Si può includere più di un evento:
-
Codice interno al file ‘.ly’:
\pointAndClickTypes #'(note-event dynamic-event) \relative { c'2\f( f) }
oppure
#(ly:set-option 'point-and-click '(note-event dynamic-event)) \relative { c'2\f( f) }
-
Linea di comando:
lilypond \ -e"(ly:set-option 'point-and-click '(note-event dynamic-event))" \ example.ly
[ << Programmi esterni ] | [Inizio][Contenuti][Indice] | [ Consigli su come scrivere i file >> ] |
[ < Abilitare il punta e clicca ] | [ Su : Punta e clicca ] | [ LilyPond e gli editor di testo > ] |