Ho riscontrato un problema durante la visualizzazione dei file di documentazione pdf con AucTex. Uso pdf-toolsper visualizzare i file PDF da Emacs e ho impostato emacsclient -nil mio visualizzatore di PDF predefinito (tramite xdg-mime su Debian Linux). Funziona bene nella maggior parte dei casi, ma interrompe la (Tex-documentation-texdoc ...)funzione di Auctex ( C-c ?).
Ho ridotto il problema a una singola riga di codice. Quando provo a visualizzare la documentazione per il listingspacchetto, lo TeX-documentation-texdoctrasformo nel seguente sexp:
(shell-command-to-string "texdoc --view listings")
texdoca sua volta chiama emacsclientper aprire effettivamente il file (in base a come ho configurato il mio desktop tramite xdg). Tuttavia, a questo punto, Emacs si blocca e ho bisogno di uscire ( C-g) per riprendere il controllo. Successivamente, non viene aperto alcun nuovo pdf. La stessa cosa succede se provo a chiamare direttamente emacsclient:
(shell-command-to-string "emacsclient -n tmp.pdf")
Entrambi i comandi funzionano dalla riga di comando (cioè, emacsclient -n tmp.pdfe texdoc --view listings.
La mia domanda è, in un caso come questo, come posso chiamare emacsclient da Emacs? (e so che potrei semplicemente aprire il file pdf con find-file; questa non è un'opzione qui perché ho bisogno di chiamare un processo esterno (texdoc) per trovare il file, e quel processo invoca emacsclient).
texdoc --viewe quindi tornare a Emacs quando apre il file. Ma penso che dovrebbe esserci un modo per farlo in un solo passo da Emacs?
(async-shell-command "emacsclient -n tmp.pdf")risolvere il problema?
(async-shell-command "emacsclient -n tmp.pdf")funziona, ma non lo (async-shell-command "texdoc --view listings")fa. Quindi questo è un indizio utile.
C-u C-c ?? Prima mostra l'elenco dei documenti relativi al pacchetto, quindi apre il visualizzatore con (call-process "texdoc" nil 0 nil "--just-view" doc).
texdoc -M --list listingsper trovare il file e quindi utilizzarefind-file?