私は標準のテキストエディターとして「Geany」を使っています。そのため「LaTeX」のソースコードも「Geany」を使って書いています。
Geayは標準でビルドコマンドがある
「Geany」は標準で「LaTeX」の編集に対応しています。それに加え、標準でビルドコマンドも実装しています。

別に「Geany」から「Evince」へのジャンプ機能(forward search)は無くても良いのですが、やはり逆順検索(inverse search)が出来ないと困ります。


逆順検索(inverse search)とは「Evince」上で修正したい箇所を「Ctrl+左クリック」すると、「Geany」内の該当箇所へジャンプする機能です。圧倒的に逆順検索(inverse search)の方が、有意義で便利です。


特に長文を書く人にとっては無くてはならない機能だと言えます。
fwdevinceでSyncTeX
しかし、「Geany」でも「SyncTeX」を利用する方法はありました。「Evince/fwdevince/Python – TeX Wiki」つまり「fwdevince」というツールを活用する方法です。
とは言えこれも、そのまますぐ利用できるような形式では配布されていません。ただし、ビルドやコンパイル等のような難しい作業は必要ありません。
Geanyでは逆順検索(inverse search)できない?
「fwdevince」を利用できるようにすると「forward search」の方はすぐに機能しました。しかし、逆順検索(inverse search)がうまく機能しませんでした。
「Evince」上で「Ctrl+左クリック」をしても、ソースの該当箇所には戻ってこず、必ず文章の先頭行に戻ってくるだけでした。


後で分かったのですが、実はこれ「Geany」と「fwdevince」の組み合わせ固有の不具合でした。
しかしこれも修正方法はありました。しかも「fwdevince」スクリプトと「Geany」のビルドコマンドの両方合わせてたった数ヶ所変更するだけでした。
fwdevinceの利用手順
その修正方法を説明する前に、まずは「fwdevince」を利用可能にする方法を説明します。「fwdevince」のスクリプトコードは「Evince/fwdevince/Python – TeX Wiki」から入手できます。
上記ページ内の赤字部分をすべてコピーします。コピーが終わりましたら、何でも良いのでテキストエディターに貼り付けます。
貼り付け終わりましたら、必ずパスの通っていないフォルダーに「fwdevince」という名前を付けて保存します。今回は「~/Downloads/」に保存してみました。拡張子は付けないでください。
※特別なことをしていなければ「~/Downloads/」にパスは通っていないはずです。
fwdevinceの修正箇所
次に「fwdevince」を「Geany」で開きます。「Geany」で開くと、綺麗に色分けされていると思います。鋭い方はだいぶ前に気付いていたかもしれせんが「fwdevince」の中身は「Python」のスクリプトです。
「fwdevince」のスクリプトについては以下の2点だけ修正する必要があります。
- 1行目の「python」を「python3」に変更
- 169行目付近の「”%l”」を「”%k”」に変更する
Python3とする理由
まず1行目の「#!/usr/bin/env python」を「#!/usr/bin/env python3」とする理由ですが、以下の説明に従っただけです。実際「python」の後に「3」を付けないと動作しません。
例えば端末から $ python -V とした時に Python 2.7.6 と表示される環境だと urllib.parse の読み込みに失敗します.その場合は python3 をインストールし,先頭行の #!/usr/bin/env python を #!/usr/bin/env python3 などと変更する.
引用:Evince/fwdevince/Python – TeX Wiki
ChaletOS(Ubuntu派生)では以下のコマンドを入力した時、上記の通り「Python 2.7.x」と表示されます。
python -V
しかし「Python3」は既にインストールされています。

ですので、別途「Python3」をインストールする必要はなく、「#!/usr/bin/env python」を「#!/usr/bin/env python3」と書き換えるだけで動作するようになるのです。
Geanyのコマンドラインオプションと重複
次に修正するのは169行目付近の引数部分です。
cmd = re.sub("%l", str(source_link[0]), cmd)
具体的には「”%l”」から「”%k”」に変更します。
この変更をしないと、「Evince」上でどの箇所で「Ctrl+左クリック」しても、必ず文章の先頭行(10行目)に戻ってしまいます。


その理由は「l」という文字が「Geany」のコマンドラインオプションとしても使われているからです。つまり重複しているのです。しかしもそのコマンドラインオプションの内容は「Set initial line number for the first opened file」、つまり「最初に開いたファイルの先頭行」という意味です。
道理でどこで「Ctrl+クリック」をしても、先頭の10行目に戻る訳です。

fwdevinceを実行形式とする
上記2点の修正が終わりましたら、実際に「fwdevince」が利用できるよう実行形式にします。「fwdevince」が存在するフォルダー、今回は「~/Downloads/」の何も無いところで右クリックします。その中から「Open Terminal Here」をクリックします。
端末が起動しますので、以下のコマンドをご入力下さい。「fwdevince」に実行権限を与えるコマンドです。
chmod +x fwdevince
次に以下のコマンドを入力し「fwdevince」をファイル属性を維持したまま、「/usr/local/bin」にコピーします。
sudo cp -p fwdevince /usr/local/bin
パスワードが問われますのでご入力下さい。
次に以下のコマンドで「fwdevince」へのシンボリックリンクを作成します。
sudo ln -s /usr/local/bin/fwdevince /usr/local/bin/invevince
「fwdevince」での設定は以上です。端末は「exit」コマンドまたは右上の「X」で閉じましょう。
Geanyのビルドコマンドを修正
今度は「Geany」のビルドコマンドの方の修正です。ビルドコマンドを修正するためには、まずメニューバーの「ビルド(B)」をクリックします。メニューの中から「ビルドコマンドの設定(S)」を選択します。
「ビルドコマンドを設定」の画面になります。
まず「LaTeX」コマンドの「LaTeX -> PDF」欄は以下のように置き換えて下さい。
ptex2pdf -u -l -ot '-synctex=1 --file-line-error-style' "%f"
上記のように置き換えないと「SyncTeX」が利用できません。
■参考サイト
Geany – TeX Wiki
View PDF Fileコマンドの修正
いよいよ最後の修正です。最後に修正するのが「View PDF File」コマンドです。デフォルトでは以下のコマンドが入っているはずです。ただ単にビルド後のPDFを「Evince」で見るだけのコマンドです。
evince "%e.pdf"
これでは「SyncTeX」、つまり「Evince」との相互ジャンプは出来ません。ですから以下のコマンドに書き換えて下さい。これで「SyncTex」ができるようになります。
fwdevince "%e.pdf" %l "%f" & invevince "%e.pdf" "geany %f:%k"
このコマンドのミソは一番最後の「”geany %f:%k”」の引数「%k」です。「Geany」のコマンドラインオプションで使われている文字以外を使用したという点です。ですから多分ですが、「%k」以外でも「Geany」標準のコマンドラインオプションと重複していなければうまく行くと思います。
結構話は単純だったということでした。


これで問題なく逆順検索(inverse search)も利用できるようになりました。
「ChaletOSでの「Geany」の日本語入力の不具合を「Preedit Tweak」を使って一発で解決する方法」の修正も含めると、「Geany」は日本語入力に不具合もなく、「SyncTeX」にも対応するLinux界最強のテキストエディターになったと言えます。