[ << Programas externos ] | [Arriba][Índice general][Índice] | [ Sugerencias para escribir archivos de entrada >> ] |
[ < Apuntar y pulsar ] | [ Subir : Apuntar y pulsar ] | [ Uso de Xpdf para Apuntar y pulsar > ] |
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 | ||
Uso de GNOME 2 | ||
Uso de GNOME 3 | ||
Configuración adicional para Evince |
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:
-
Codificado de forma fija dentro del archivo ‘.ly’:
\pointAndClickTypes #'note-event \relative { c'2\f( f) }
o bien
#(ly:set-option 'point-and-click 'note-event) \relative { c'2\f( f) }
-
Línea de órdenes:
lilypond -dpoint-and-click=note-event example.ly
Se pueden incluir varios eventos:
-
Codificado de forma fija dentro del archivo ‘.ly’:
\pointAndClickTypes #'(note-event dynamic-event) \relative { c'2\f( f) }
o bien
#(ly:set-option 'point-and-click '(note-event dynamic-event)) \relative { c'2\f( f) }
-
Línea de órdenes:
lilypond \ -e"(ly:set-option 'point-and-click '(note-event dynamic-event))" \ example.ly