web-dev-qa-db-ja.com

Emacs Auctex:現在のカーソル位置でPDFを開くにはどうすればよいですか?

私はemacsauctexを使ってラテックスファイルを書いています。テキストはかなり長く、場所によって物事を変える傾向があるので、emacsでpdfを開いて、カーソルがソースファイル内にあるようにテキスト内の位置が表示されるようにします。

私はこれをMikTex/Texniccenter/Acroreaderを搭載したWindowsマシンで見ました。 Ubuntuのemacs/auctex/evinceでこれを行うことは可能ですか?

9
Hans

これを行うには、.emacsファイルに次の行を追加して、evinceを使用してPDFを表示すると、evinceにページ番号が表示されるようにする必要があります。

(setq TeX-view-program-list '(("Evince" "evince --page-index=%(outpage) %o")))
(setq TeX-view-program-selection '((output-pdf "Evince")))

次に、Emacsでtexファイルを開いたら、次のコマンドを使用してソース相関をオンにする必要があります。

C-c C-t C-s

または、毎回手動で開始したくない場合は、.emacsに次の行を追加します。

(add-hook 'LaTeX-mode-hook 'TeX-source-correlate-mode)

また、相関サーバーを起動したい場合にemacsがプロンプトを表示しないようにする場合は、次の行を追加します。

(setq TeX-source-correlate-start-server t)

そしてそれはそれであるはずです。

編集:実際には、パッケージpdfsyncを使用すべきではないことが判明したため、このパッケージへの参照をすべて削除しました。このソリューションには必要ありません(明らかに、すべてのTeXベースのエンジンに組み込まれています)。実際に使用すると問題が発生するようです(私にとっては、テーブルを使用してコードを壊しているようです)。

編集2:.emacsを使用してTeX-source-correlate-modeを自動有効化する際に問題が発生しましたが、現在はなくなっているようです。 emacsを更新したのか、pdfsyncを削除したのかわからない。とにかく、それは今動作します:)

3
dbdkmezz

http://www.emacswiki.org/emacs/AUCTeX (最後のセクション:SynctexとEvince)で与えられた説明を使用し、魅力のように機能しました...これで双方向の同期が得られます(例えば、emacsでCc Cvを押してpdfページに移動するか、C-mouse1を押してemacsの正しい場所に移動します)。全体的には最初の答えと似ていますが、手動でpdfsyncを含める必要はなく、emacsとevinceはdbusを使用して通信します。ただし、C-c C-tC-sも実行する必要があります。

4
Arun