Debian wheezy の TeX 統合環境で SyncTeX を試してみる

TeX Live 2011 の導入

はじめに Debian wheezy (testing, amd64) での TeX Live 2011 のインストール手順をごく簡単にメモしておく。Ubuntu で TeX Live 2011 を利用する 場合と全く同様の手順で問題なかった。

まず TeX Live のページの download から install-tl-unx.tar.gz を入手し適当なディレクトリに置く。アーカイブを解凍して中のインストーラ (install-tl) を実行する。

$ sudo ./install-tl

インストーラ実行時に「create symlinks in standard directories」を選択すると /usr/local/bin 等にシンボリックリンクが作成される。この間まで dvipdfmx が出していた開発者向けの警告「** WARNING ** 1 memory objects still allocated」は出なくなっている。

TeX Live には専用のパッケージマネージャ tlmgr が用意されている。

$ sudo tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet

で自動で最適なミラーが決定されるが、特定のアーカイブやミラー、ローカルのディスクコピーなども指定できる。アップデートは次のように行う。

$ sudo tlmgr update --self
$ sudo tlmgr update --all

Adobe の Acrobat Reader をインストールするために /etc/apt/sources.list に次のリポジトリ (non-free) を追加した。

# Debian Multimedia (unofficial)
deb http://www.debian-multimedia.org wheezy main non-free

端末で、

$ sudo apt-get update
$ sudo apt-get install acroread acroread-fonts-jpn mozilla-acroread

ただし /usr/lib/Adobe/Reader9/Resource/CIDFont 以下にインストールされることが期待される「小塚ゴシック」フォント (KozGoPr6N-Medium.otf) は入らなかった。

Debian への TeX Live の詳しい導入手順については以下のページを参照のこと。

SyncTeX を試してみる

現状 TeX Live 2011 の pTeX では SyncTeX はサポートされていないが、TeX Live 対応も近い将来実現するだろうと思う。

以下では欧文 TeX (pdfLaTeX) を用いて、いくつかの TeX 統合環境やエディタとビューアの組み合わせで SyncTeX の動作を試してみた。基本的な使い方は pdflatex のオプションに -synctex=1 を加えてコンパイルを行うだけである。エディタからビューアへの移動 (forward search) とビューアからエディタへの移動 (inverse search) が可能となる。ある程度分量のある文書を作成する際にはとくに効力を発揮するだろう。

TeXworks

  • © 2007-2011 Jonathan Kew, Stefan Löffler, Version 0.5 r.930 (Debian)

Control + 左クリックで相互に移動する。該当箇所はハイライトされる。

texworks.png

Texmaker

  • Texmaker 3.0.2, Copyright (c) 2003-2011 by Pascal Brachet

エディタから Control + space でビューアの該当箇所がハイライトされる。ビューアから Control + 左クリックでエディタの該当箇所がハイライトされる。

texmaker.png

Kile + Okular

  • Kile, Version 2.1.0, Using KDE Development Platform 4.6.5 (4.6.5)
  • Okular, Version 0.12.5, Using KDE Development Platform 4.6.5 (4.6.5)

Okular の設定で「Editor Options」に Kile を選択しておく。Okular から Kile エディタの該当箇所へは Shift + 左クリックでジャンプできる。一方で、ForwardPDF でエディタからビューアへ飛ぶはずだが、TeX Live 2011 と Debian testing の apt-get で入る現行バージョンの組み合わせではうまく動作しなかった。開発版を導入すれば可能であろうか (cf. Live Preview – kile)。

kile_okular.png

Emacs (AUCTeX) + Evince (or Okular)

  • GNU Emacs 23.3.1 (x86_64-pc-linux-gnu, GTK+ Version 2.24.6) of 2011-09-10 on spike.0x539.de, modified by Debian
  • AUCTeX version 11.86-4
  • Document Viewer 2.32.0, ドキュメント・ビューア, poppler/cairo (0.16.7) を利用, © 1996-2009 Evince 開発者
  • Okular, 同上

EmacsWiki: AUCTeX (Synctex and Evince) を参考に以下の設定によって inverse search が可能となった (Adapted from: http://www.mail-archive.com/auctex@gnu.org/msg04175.html)。Evince 上で Control + 左クリックすると Emacs 上の該当箇所にカーソルが移動する (Mini-buffer に Mark set と表示)。

(require 'dbus)

(defun auctex-evince-inverse-sync (file linecol)
  (let ((buf (get-buffer (file-name-nondirectory file)))
        (line (car linecol))
        (col (cadr linecol)))
    (if (null buf)
        (message "Sorry, %s is not opened..." file)
      (switch-to-buffer buf)
      (goto-line (car linecol))
      (unless (= col -1)
        (move-to-column col)))))

(dbus-register-signal
 :session nil "/org/gnome/evince/Window/0"
 "org.gnome.evince.Window" "SyncSource"
       'auctex-evince-inverse-sync)

forward search は HOWTO: Evince + SyncTeX + vim/emacs/scite/lyx/kile/$EDITOR + forward/backward search を参考に設定してみたがうまく動作しなかった。ひとまず保留しておく。

emacs_evince.png

ビューアに Okular を使用する場合、次のページの設定に従うと forward/inverse search いずれも可能だった。

一応ここにも Emacs の設定を繰り返しておく。

(add-hook 'LaTeX-mode-hook 'TeX-source-correlate-mode)
(setq TeX-source-correlate-method 'synctex)
(add-hook 'LaTeX-mode-hook '(lambda ()
                              (add-to-list 'TeX-expand-list
                                           '("%u" Okular-make-url))))
(defun Okular-make-url () (concat
                           "file://"
                           (expand-file-name (funcall file (TeX-output-extension) t)
                                             (file-name-directory (TeX-master-file)))
                           "#src:"
                           (TeX-current-line)
                           (expand-file-name (TeX-master-directory))
                           "./"
                           (TeX-current-file-name-master-relative)))
(setq TeX-view-program-list '(("Okular" "okular --unique %u")))
(setq TeX-view-program-selection '((output-pdf "Okular") (output-dvi "Okular")))

Okular の設定で「Editor Options」に「Emacs Client」を選んでおく。Emacs のソースファイルから C-c C-v で Okular の該当箇所に、Okular の pdf から Shift + 左クリックで Emacs の該当箇所にそれぞれジャンプする。

追記【2011/10/18】

上記のいくつかの組み合わせで SyncTeX がうまく動作しない原因は、どうも TeX Live 2011 の SyncTeX のパスの扱いにあるようだ。すなわち、TeX Live 2010 の SyncTeX は単にファイル名のみ出力していたが、TeX Live 2011 ではフルパス + ファイル名を出力するようになった、ということに起因するようだ (cf. Sumatra PDF Viewer forum)。

対処法として、上の Kile + Okular の場合であれば、Bug 274294 – okular’s synctex support doesn’t work with lua(la)tex generated output にあるようなスクリプト (Comment #23) を ForwardPDF のコマンドに設定することでうまく動作することを確認した。Emacs + Evince に関しては evince_forward_search を Evince – TeX Wiki で説明されているように訂正することで動作を確認した。

以下は Emacs の AUCTeX で作成した TeX ファイルから Evince へ forward search を行った様子。該当箇所が赤枠で強調表示される。

synctex_test.png

XeTeX なら一応日本語を含んだ文書でも機能する。

xetex_synctex.png

追記【2011/03/31】

TeXLive 2011 が Debian experimental に upload されたようである。

参考: 平衡点 – equilibrium point –(2012-03)

experimental TeX Live パッケージには uptex と ptex が含まれているようである (→ tlptexliveリポジトリ)。

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s