LoginSignup
7
9

More than 5 years have passed since last update.

Bash on Ubuntu on Windows上でTeXLiveのコンパイル&プレビュー環境を構築する(X Window編)

Last updated at Posted at 2016-12-25

やりたいこと

前回は、Emacsはターミナル上で動かして、PDFファイルのプレビューをWindowsのソフトを呼び出していたけど、EmacsをX Window上で動くようにすれば、PDFファイルもBash on Ubuntuで何とかなるのではないかと考えたのが事の発端。それでSyncTeXのforward searchが使えるようになれば嬉しいな、ということでいろいろ試してみる。

X Serverのインストール

いろいろあるけど、シンプルそうなのでVcXsrvをインストールする。スタートアップフォルダに入れておけば自動的に起動するので便利。

DISPLAY環境変数

.bashrc
export DISPLAY=:0.0

VcXsrvを起動して得られる数字に適宜変更する必要はあるけど、普通はこれで問題ないはず。適当にX Windowのアプリケーションを起動してウィンドウが開けば取りあえずはOK。

Emacsのビルド

UbuntuのパッケージにあるEmacsだとエラーが出てきどうせず、また、こちらで紹介されているsnapshotを利用する形だと、表示はできるけどウィンドウサイズ周りの挙動がおかしいので、自分でビルドする。

ビルド自体はこちらを参考に。ポイントとしては、x-toolkitはgtk3以外を選択するということと、D-Busはそのままにしておくということ。configureのオプションはこんな感じでビルドする。あ、あと、クリップボード周りのパッチは当ててある。

$ ./configure x86_64-pc-linux-gnu --with-x-toolkit=gtk2 --with-libotf --with-m17n-flt
$ make
$ make install

これでドラッグしてウィンドウサイズを変更してもきちんと追従してくれるし、init.elでウィンドウサイズや位置を指定してもその通りに動くようになった(と思う)。

D-Bus設定

このままだと、D-Busは起動時にエラーが出るし、またEmacsからアプリの起動もできないので、こちらを参照して、TCPで通信できるようにする。

$ sudo sed -i 's$<listen>.*</listen>$<listen>tcp:host=localhost,port=0</listen>$' /etc/dbus-1/session.conf

シェルを再起動してからEmacsを起動すればD-Bus周りのエラーは出なくなった。

X Window上のPDFビューワー

Evinceのインストール

SyncTeX対応のものはいくつかあるけど、Ubuntuのパッケージだと例えばZathuraはどうもSyncTeXを外しているようなので野良ビルドになる(これやったけどかなり面倒くさい)ので、Evinceをパッケージで入れる。

# apt-get install evince

fwdevinceのインストール

TeX Wikiで紹介されているfwdevinceをインストールする。うちの環境だとPythonは2と3と両方インストールされていて2がデフォルトだったので、必要に応じてアプリケーションのリンクを変更するか、スクリプトファイルの先頭を/usr/bin/python3にしておく。

うまく動作しない場合、ライブラリをインストールすれば動くようになるはず。うちの環境だとpyhotn-dbusが入ってなかったので入れる必要があった。

Emacs上の設定

YaTeXを利用しているので、TeX Wikiを参照して以下のように。

init.el
(setq YaTeX-inhibit-prefix-letter t)
(setq YaTeX-dvi2-command-ext-alist
      '(("TeXworks\\|texworks\\|texstudio\\|mupdf\\|SumatraPDF\\|Preview\\|Skim\\|TeXShop\\|evince\\|okular\\|zathura\\|qpdfview\\|Firefox\\|firefox\\|chrome\\|chromium\\|Adobe\\|Acrobat\\|AcroRd32\\|acroread\\|pdfopen\\|xdg-open\\|open\\|start" . ".pdf")))
(setq dvi2-command "evince")
(setq tex-pdfview-command "evince")

これで、.texファイルが開かれているバッファ上で、C-cC-gとすればPDFファイルの当該部分を参照してくれるはず。ただし、Evinceは精度がイマイチ。Zathuraはこの点は良い。

参考

7
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
9