4.1.1 Configuración del sistema

Cuando esta funcionalidad está activada, LilyPond añade enlaces a los archivos PDF y SVG. Estos enlaces se envían al navegador de web, que a su vez abre un editor de texto con el cursor situado en el lugar correcto.

Para conseguir que esta cadena funcione, tiene que configurar el visor de PDF de forma que siga los enlaces usando el guión ‘lilypond-invoke-editor’ proporcionado con LilyPond.

El programa ‘lilypond-invoke-editor’ es un pequeño programa de apoyo. Invoca un editor para las URIs especiales de textedit, y lanza un navegador de web para el resto. Examina las variables de entorno EDITOR y LYEDITOR para determinar y lanzar el editor favorito seleccionado. LYEDITOR tiene prioridad sobre EDITOR, por lo que recomendamos usar el primero especialmente si va a utilizar un editor en la consola y otro editor para la funcionalidad Apuntar y Pulsar de LilyPond.

Cada uno de los editores puede puede tener una sintaxis distinta para abrir un archivo en una línea y columna específicas. Para la conveniencia del usuario, LilyPond incorpora instrucciones ya preparadas para varios editores, relacionados en ‘scm/editor.scm’. Esto significa que puede limitarse a escribir el nombre del binario del editor, p. ej.:

export LYEDITOR=atom

lo que invocará a:

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

donde %(file)s, %(line)s y %(column)s se sustituyen por el archivo, la línea y la columna respectivamente.

Para usar un editor que no está relacionado en ‘scm/editor.scm’, debe encontrar su sintaxis específica y asignar la instrucción al completo que corresponde a LYEDITOR. He aquí un ejemplo para el editor Visual Studio Code:

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

Nota: Si elige Emacs, se necesita una configuración adicional. Debe añadir la línea (server-start) a su archivo ‘~/.emacs’, pues en caso contrario cada pulsación sobre un objeto del PDF abrirá una nueva ventana de Emacs.


Uso de Xpdf

Para Xpdf sobre Unix, lo siguiente debe estar presente en ‘xpdfrc’. En Unix, este archivo se encuentra o bien en ‘/etc/xpdfrc’ o como ‘$HOME/.xpdfrc’.

urlCommand     "lilypond-invoke-editor %s"

Si está usando Ubuntu, probablemente la versión de Xpdf instalada en su sistema efectúe paradas abruptas en cada documento PDF: este estado se viene prolongando desde hace varios años y se debe a la falta de correspondencia entre bibliotecas. Lo mejor que puede hacer en vez de ello es instalar un paquete ‘xpdf’ actualizado y el paquete ‘libpoppler’ correspondiente procedente de Debian. Una vez haya comprobado que funciona, puede usar

sudo apt-mark hold xpdf

con el objeto de evitar que Ubuntu lo sobreescriba con la siguiente ‘actualización’ de su paquete defectuoso.


Uso de GNOME 2

Para usar GNOME 2 (y los visores de documentos PDF integrados en él), el conjuro para informar al sistema acerca de la URI ‘textedit:’ es:

 
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

Después de esta invocación,

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

debería llamar a ‘lilypond-invoke-editor’ para abrir archivos.


Uso de GNOME 3

En GNOME 3, las URIs se manejan por parte de la capa ‘gvfs’ en vez de por ‘gconf’. Debe crear un archivo en un directorio local como ‘/tmp’ con el nombre ‘lilypond-invoke-editor.desktop’ y que tenga el siguiente contenido:

[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

y luego ejecute las instrucciones

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

Tras esta invocación,

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

debería llamar a ‘lilypond-invoke-editor’ para abrir archivos.


Configuración adicional para Evince

Si gnome-open funciona, pero Evince aún rehúsa abrir enlaces de Apuntar y pulsar a causa de permisos denegados, quizá tenga que cambiar el perfil de Apparmor de Evince, que controla el tipo de acciones que se le permite realizar a Evince.

Para Ubuntu, el proceso es editar el archivo ‘/etc/apparmor.d/local/usr.bin.evince’ y añadir al final las siguientes líneas:

# Para enlaces de Textedit
/usr/local/bin/lilypond-invoke-editor Cx -> sanitized_helper,

Después de añadir estas líneas, ejecute

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

Ahora Evince debería poder abrir enlaces de Apuntar y pulsar. Para otros visores, es probable que funcionen configuraciones similares.


Habilitar la opción de apuntar y pulsar

En LilyPond, la funcionalidad de Apuntar y pulsar está habilitada de forma predeterminada cuando se crean archivos de salida en formato PDF o SVG.

Los enlaces de apuntar y pulsar aumentan significativamente el tamaño de los archivos de salida. Para reducir el tamaño de los archivos PDF (y PS), la posibilidad de apuntar y pulsar se puede desactivar escribiendo

\pointAndClickOff

dentro de un archivo ‘.ly’. Se puede activar explícitamente la posibilidad de apuntar y pulsar con

\pointAndClickOn

De forma alternativa, puede desactivar la posibilidad de apuntar y pulsar con una opción de la línea de órdenes:

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

Nota: Recuerde desactivar siempre la posibilidad Apuntar y pulsar en cualquier archivo de LilyPond que vaya a ser distribuido, para evitar incluir información de rutas de archivo relativas a su equipo dentro del archivo PDF, lo que puede plantear un problema de seguridad.


Apuntar y pulsar selectivo

Para ciertas aplicaciones interactivas podría ser deseable incluir solamente ciertos elementos dentro de la función de apuntar y pulsar. Por ejemplo, si alguien quisiera crear una aplicación que reprodujese audio o vídeo empezando por una nota concreta, sería incómodo que la pulsación sobre la nota produjese las coordenadas de apuntar y pulsar de una alteración accidental o de una ligadura de expresión que estuviese sobre dicha nota.

Esto se puede controlar indicando qué eventos incluir:

Se pueden incluir varios eventos:


LilyPond — Utilización v2.21.82 (rama de desarrollo).