2012年10月11日木曜日

EmacsとSkimの連携

注: この記事には続編があります。
Ochiailab Tips: EmacsとSkimの連携 Part.2

○ まえがき
  • Emacserのみなさん,風になってますか?
  • 以前,emacsからtex系コマンドを呼び出すみたいな記事を書きました.
    これによってemacs→pdfビューアへの道が開けたわけですが,近年ディジタル無線通信技術やソーシャルメディアなどの著しい普及により,双方向通信への注目が非常に高まっていますのでできれば復路(pdfビューア→emacs)も開拓しておきたいところです.
  • 別アプリからemacsへのアクセスを可能にする技術のひとつとして,emacs-serverがあげられます.TeXShopとかAdobe Readerとかは対応してないっぽいんですが,Skimというビューアが対応してるので,今回はこれ使います.

○ 準備
  1. SkimをDLしてApplicationフォルダに入れます.
  2. Skimの[環境設定]→[同期する]タブでPDF-TeX同期サポートをemacsにします.あとファイルの変更をチェックもONにしときます.
  3. Xtexshopをエディタで開いてPLATEXから始まる行を以下のように変えます
    PLATEX="platex -synctex=1"
  4. emacsの設定ファイルに以下のソースを適宜書き足し(書き換え)ます.
    ;;AUC-TeX
    (server-force-delete) ;; サーバー機能一旦切る
    (server-start) ;; サーバーリスタート
    (setq TeX-default-mode 'japanese-latex-mode)
    (setq preview-image-type 'dvipng)
    (custom-set-faces)
    (add-hook 'LaTeX-mode-hook
              (function (lambda ()
                          (TeX-source-correlate-mode 1)  
            (local-set-key "\C-c\C-a" 'TeX-command-master)
            (local-unset-key "\C-c\C-c")
                          (setq TeX-source-correlate-start-server t)
                          (add-to-list 'TeX-command-list
                                       '("Xtexshop" "Xtexshop %t"
                                          TeX-run-TeX))
                          (add-to-list 'TeX-command-list
                                       '("pdfView" "open -a Skim.app %s.pdf"
                                         TeX-run-discard-or-function ))
            (add-to-list 'TeX-command-list
           '("Dspline" "/Applications/Skim.app/Contents/SharedSupport/displayline %n %s.pdf %b" 
             TeX-run-discard-or-function))
            (local)
            )))
    

○ 実行
  • これで,emacs側からC-c C-a Xtexshopでコンパイル,C-c C-a dsplineでemacsのカーソルのあるとこをSkimで表示できます.逆にSkim上で適当にクリックしてCommand+Shift+左クリックするとemacs上のtexファイルの対応した行に移動できます.

○ 参考文献


0 件のコメント :

コメントを投稿