2013-12-29

ビルドしたpdfをsshfsからSkimで読む

この度修論の開発環境を整えたのでブログ記事にしました。

背景

研究室マシンでtexを編集しているのですが、作業結果のPDFを手元で快適に確認したいのです。 そこで、開発方針を以下のように整えました。

  • 研究室マシンでtexの編集、ビルドを行う。
  • sshfsをマウントすることで研究室マシンにアクセスする。
  • Skimでsshfs上のpdfを閲覧し、自動更新モードで変更を反映する。

環境は以下のとおりです。

  • ローカル: Mac OS X Mavericks、なるべくhomebrewを使う
  • リモート: Linux、sshで接続

OSXFUSEのインストール

まず下記URLからOSXFUSEをダウンロード、インストールします。

先にhomebrewでfuse–4x-kextを試したのですが、正しくsshfsを動作させられなかったのでこちらを採用です。

sshfsのインストール

以下のコマンドでインストールします。

    $ sudo brew link fuse4x
    $ sudo brew install sshfs
    $ sudo /bin/cp -rfX /usr/local/Cellar/fuse4x-kext/0.9.2/Library/Extensions/fuse4x.kext /Library/Extensions
    $ sudo chmod +s /Library/Extensions/fuse4x.kext/Support/load_fuse4x

以下のコマンドでマウントします。

    $ mkdir mnt
    $ sshfs -p 22 [User]@[Host]:[Dir] mnt

マウントが出来たかどうかはdfで確認出来ます。 またマウントを解除するには以下のコマンドです。

    $ unmount mnt

Skimのインストール

以下のURLからダウンロード出来ます。

  • [Skim Home]2

自動更新を行うため「環境設定… > 同期する > ファイルの変更をチェック」をちぇっくします。

その他

  • バージョン管理はgithubのプライベートリポジトリで行っています。修論目的であれば学生用アカウントを申請することで、無料でMicroプランに加入できました。
  • エディタはvimを使用しています。以下のように.vimrcを設定すれば”<Space>q”でtexのmake出来ます。

    NeoBundle 'thinca/vim-quickrun'
    silent! map <Space>q <Plug>(quickrun)
    let g:quickrun_config['tex'] = {"command": "make", "exec" : "%c %o",  "outputter": "error:buffer:quickfix"}
    
  • 学生共用のマシンで作業してるので、負荷を考え自動ビルドはやめときました。自分でmakeコマンドを叩きたくない人はOcamlのOmakeやRubyのGuardを使うと良さげです。

まとめ

以上で修論の開発環境を整えました。 開発マシンでtexの編集を行い、ビルドするとSkimの自動更新が反応して新しいPDFを表示してくれます。 Vimで<Space>qすることでPDFのレビューまで自動化出来たので概ね満足な結果です. (但しSkimが反映されるまでに10秒程かかります。sshfsの限界…)

参考記事