AucTexでPDFドキュメントファイルを表示するときに問題が発生しました。私はpdf-tools
Emacs内から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
ですか?