スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

LinuxでSyncTeXを使う

2012-06-21-0000  okular.png



以前、LinuxのLatex用エディタ比較で、いずれのエディタでもSynctexを使えるというようなことを書いたのですが、Kubuntu12.04にもう一度環境を構築した時に、TeXLive2011のページからインストールできるTeXLive2011では、Synctexが使えなかったので、Synctexの導入方法を書いておきたいと思います。

※2014/04/29 Ubuntu13.04以降ではUbuntu公式のリポジトリからapt-getで入手できるtexliveのバージョンが新しくなり、TeXLive公式ページからわざわざインストールしたり下記のtltexliveリポジトリを追加する必要性はなくなりました。SyncTeXを使いたい場合は、TeXLiveインストール後「2.SyncTeXの使い方」以降の操作を行うだけでOKです。


0.SyncTeXとは

SyncTeXというのは、.texファイル上の任意の場所と同じ場所をPDFで表示させたり、逆にPDFファイルの任意の場所へ.texファイル上でジャンプさせたりできる機能です。これによってエディタ上の位置とPDF上の位置を同期させることができ(手動ですが)、特に長い文章を書くときに非常に便利になります。


1.準備 - tlptexliveリポジトリの追加


まずはじめにSyncTeXを日本語環境で使えるようにするために、tlptexliveリポジトリを追加します。
tlptexliveリポジトリというのはTeXlive2011の日本語環境を改善するために作られたリポジトリで、TeXLive2011のリポジトリに追加する形で導入できます。tlptexliveリポジトリの詳しい説明はtlptexlivetlptexliveリポジトリを見てみてください。

導入方法

※注意 今回は、TeXLive2011は予めインストールしてあるものとして話を進めていきます。まだインストールされてない方は、このあたりを参考に、TeXLive2011をインストールしてみてください。

まず、TeXLive2011のパッケージマネージャーであるtlmgrでパッケージの更新を確認します。端末から

$ sudo tlmgr update --self --all

と打ちます。次にtlptexliveリポジトリを追加します。端末から

$ sudo tlmgr --repository http://www.tug.org/~preining/tlptexlive/ update --all

と打ちます。
以上でSyncTeXを使う準備が整いますが、一応最後に、日本語環境用に修正されたパッケージを入手します。端末から

$ sudo tlmgr --repository http://www.tug.org/~preining/tlptexlive/ install pmetapost pxdvi uptex

を実行します。
以上の操作を行うことで、日本語環境でもSyncTeXを使うことができるようになります。

2.SyncTeXの使い方

SyncTeXを有効にするには、platexコマンドを実行するときに、オプションで、-synctex=1をつけるだけです。これによって、コンパイル時に、dviファイルやログファイルとともに~.synctex.gzというファイルが生成されます。この中にTeXファイルとPDFファイルの文字の位置をつなぐ情報が格納されます。

2012-06-20-1
こんな感じです。

実際の挙動は使うエディタによって違うのですが、ここでは例としてKileとOkulrを使ったSyncTeXによる相互参照の方法を紹介します。

0.KileとOkularのインストール

Kubuntu12.04であれば、KileとOkularはともに公式のリポジトリに含まれています。(それどころかOkularはKubuntuの標準のPDFビュワーです)。なので、導入は簡単で端末から

$ sudo apt-get install kile okular

を実行することでインストールすることができます。ただしここで注意点ですが、Kileのインストールは、TeXLive2011のインストール後、ダミーパッケージを作成、インストールをしてからおこなってください。そうしないとKubuntuの公式リポジトリに含まれているTeXのパッケージが追加でインストールされてしまい、めんどくさい事態になります。



1.Kileの設定

まずは、Kileのコンパイル時の設定を編集します。「設定」→「Kileの設定」→「ビルド」と開き、「LaTeX」の欄を選びます。そこで、「コマンド」の欄を「platex」に、オプションを「-synctex=1 -interaction=nonstopmode '%source'」に変更します。

2012-06-20-02
こんなかんじです。

なお、コンパイル時にQuickBuildを使う場合は、QuickBuildのモードを「LaTeX+DVItoPDF+ViewPDF」のようなモードに切り替えておくと便利だと思います。(おすすめはLaTeX+DVItoPDF+ForwardPDF」です)

2012-06-20-4
私のQuickBuildの設定

これでKileの方の設定は終わりです。次にOkularの設定を変更します。

2.Okularの設定

Okularの設定は簡単で、「設定」→「Okularの設定」→「エディタ」と選び、エディタをKileに変更します。デフォルトではKateになっていると思います。

2012-06-20-3


以上で準備が出来ました。これでSyncTeXが使えるようになります。

Kile上のメニューバーから、LaTeXボタン→DVItoPDFボタン→ViewPDFボタンと押してコンパイルした後、(あるいはQuickBuildを使ってコンパイルした後)、「ForwardPDFボタン」を押すことによって今Kile上でカーソルのある位置にOkular上のPDFの位置が移動します。
逆にOkularからKileへのジャンプは、Okular上のジャンプしたい場所でShift+左クリックから行うことができるようになります。

※ちなみに現在は、生成したTeXファイルのファイルパスに日本語(マルチバイト文字)が入っているとSyncTeXが使えないようです。

どうでしょうか、これによって、エディタ上の部分と閲覧部分が別々になってしまうというTeXの欠点(利点でもある)が多少はましになると思うのですが…
スポンサーサイト
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。