Skim/Emacs で SyncTeX


MaC で SyncTeX をするメモです.
Mac で PDF ビューワに Skim,エディタは Emacs を使用しました.

TeX についてある程度の基礎知識を仮定します.

SyncTeX とは

SyncTeX は TeX ソースを開いたエディタと PDF ビューワとの間での相互ジャンプを実現する仕組みです

TeX Wiki が参考になります: SyncTeX

SyncTeX には,2つのモードがあります:

  1. PDF から TeX ファイルにジャンプ (backward search, inverse search)
  2. TeX ファイルから PDF にジャンプ (forward search)

SKim の wiki が参考になります: TeX-PDF Synchronization

TeX ファイルが長く,ファイル分割しているような場合に便利です.

backward search の方法

Skim で開いた PDF の任意の場所で Command-Shift-Click を押すと,エディタで TeX ファイルの対応する位置にジャンプできます.

まず,TeX のコンパイル時に,オプションで -synctex=1 を指定する必要があります.(詳細略)
これにより,*.synctex.gz が生成されますが,これは TeX ファイルと PDF の位置の対応を記録するもの (のはず) です.

また,emacsclient を有効にしておく必要があります.(詳細略)

あと,Skim の環境設定で,エディタを指定する必要があります.
Skim → Preferences → Sync で, Preset の中に Emacs もあり,これを選べばよいはずです.

私の場合はこれではうまく行かず,エディタを Custom にして,emacsclient のフルパスを指定することで解決しました.1

雑感

SyncTeX について調べると,設定がややこしそうな印象を受けますが,backward search だけであれば設定は単純です.
検索の際に,forward/backward search が何か分かっていると調べやすくなると思います.

forward search についてはエディタ側で設定が必要のようです.
また必要になったときに調べる予定です.


  1. パスが通す方法もありそうですが,フルパスを指定してできたので,これで良いことにしました.