AucTexでPDFドキュメントファイルを表示するときに問題が発生しました。私はpdf-toolsEmacs内からPDFファイルを表示するために使用しemacsclient -n、デフォルトのpdf-viewerとして設定しました(Debian Linuxのxdg-mimeを介して)。これはほとんどの状況(Tex-documentation-texdoc ...)で正常に機能しますが、Auctex(C-c ?)の機能を壊します。
問題を1行のコードに絞り込みました。listingsパッケージのドキュメントを表示しようとすると、TeX-documentation-texdocこれが次のsexpに変わります。
(shell-command-to-string "texdoc --view listings")
texdoc次にemacsclient、実際にファイルを開くための呼び出し(xdgを介してデスクトップを構成した方法に基づく)。ただし、この時点でEmacsがハングし、C-g制御を戻すために()を終了する必要があります。その後、新しいPDFは開かれません。emacsclientを直接呼び出そうとすると、同じことが起こります。
(shell-command-to-string "emacsclient -n tmp.pdf")
どちらのコマンドもコマンドラインで機能します(つまり、emacsclient -n tmp.pdfおよび)texdoc --view listings。
私の質問は、このような場合、Emacs内からどのようにemacsclientを呼び出すのですか?(そして、私はでPDFファイルを開くことができることを知っていfind-fileます。ファイルを見つけるために外部プロセス(texdoc)を呼び出す必要があり、そのプロセスがemacsclientを呼び出すため、ここではオプションではありません)。
texdoc --view、ファイルを開いたときにEmacsに切り替えることです。しかし、私はこれをEmacsから単一のステップで行う方法があるはずだと思いますか?
(async-shell-command "emacsclient -n tmp.pdf")問題を解決できますか?
(async-shell-command "emacsclient -n tmp.pdf")機能しますが、(async-shell-command "texdoc --view listings")機能しません。ですから、それは有用な手がかりです。
C-u C-c ?作品?まず、パッケージに関連するドキュメントのリストを表示し、次にでビューアを開きます(call-process "texdoc" nil 0 nil "--just-view" doc)。
texdoc -M --list listingsしてファイルを見つけ、それから使用しないのはなぜfind-fileですか?