Me he encontrado con un problema al ver los archivos de documentación en pdf con AucTex. Utilizo pdf-toolspara ver archivos PDF desde Emacs, y lo configuré emacsclient -ncomo mi visor de PDF predeterminado (a través de xdg-mime en Debian Linux). Esto funciona bien en la mayoría de las circunstancias, pero rompe la (Tex-documentation-texdoc ...)función de Auctex ( C-c ?).
He reducido el problema a una sola línea de código. Cuando intento ver la documentación del listingspaquete, lo TeX-documentation-texdocconvierto en el siguiente sexp:
(shell-command-to-string "texdoc --view listings")
texdoca su vez llama emacsclienta abrir realmente el archivo (según cómo configuré mi escritorio a través de xdg). Sin embargo, en este punto, el Emacs se cuelga y necesito salir ( C-g) para recuperar el control. Después de eso, no se abre un nuevo pdf. Lo mismo sucede si intento llamar a emacsclient directamente:
(shell-command-to-string "emacsclient -n tmp.pdf")
Ambos comandos funcionan en la línea de comando (es decir, emacsclient -n tmp.pdfy texdoc --view listings.
Mi pregunta es, en un caso como este, ¿cómo llamo a emacsclient desde Emacs? (y sé que podría abrir el archivo pdf con find-file; esa no es una opción aquí, ya que necesito llamar a un proceso externo (texdoc) para encontrar el archivo, y ese proceso invoca a emacsclient).
texdoc --viewy luego volver a Emacs cuando abre el archivo. Pero creo que debería haber una manera de hacer esto en un solo paso desde Emacs.
(async-shell-command "emacsclient -n tmp.pdf")resolver el problema?
(async-shell-command "emacsclient -n tmp.pdf")funciona, pero no (async-shell-command "texdoc --view listings")no. Esa es una pista útil.
C-u C-c ?? Primero muestra la lista de documentos relacionados con el paquete, luego abre el visor con (call-process "texdoc" nil 0 nil "--just-view" doc).
texdoc -M --list listingspara encontrar el archivo y luego usarfind-file?