LyXの出力pdfと本文とで行ったり来たりするためにforward searchとinverse search (日本語では順検索・逆順検索)という機能がある。LaTeXを使った文書を作るときは以下の手順をとるのが一般的な流れだ。
- もとのソースコード(.tex, .lyxファイル)を書く
- ソースコードに(p)latexコマンドを実行(タイプセット)
- タイプセットでできるpdfやdviをプレビューして確認
この作業中に、プレビュー中のpdfで誤りや修正したい箇所を見つけたときにソースコード中での該当箇所へ素早く移動したいことがある。逆に、ソースコード中の該当箇所がプレビューでどのように表示されているかというのを素早く確認したいこともある。
これらの要望を実現する機能がforward searchとinverse searchだ。それぞれの機能は以下の機能を持つ。
- forward search:
- ソースコード⇒PDFへのジャンプ
- inverse search:
- PDF⇒ソースコードへのジャンプ
これら機能があれば、ダブルクリックなどをするだけで該当箇所へジャンプできる。この機能を使うには対応しているpdf viewerを使う必要がある。
- 参考:
- http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?cmd=read&page=LyX%2F%E8%A8%AD%E5%AE%9A%2FWindows
- 作業環境
PDF viewerとしてSumatraPDF version 2.4を使用した。今回作業を行ったPCのOSはWindows 7でありLyXのバージョンは2.1.0beta1である。なお、SumatraPDFはインストール済みとする。
- SumatraPDFとの同期設定
Document⇒Settings…⇒Output
- Syncronize with Output
- Custom Macro:
- \synctex=1
- PDF設定
dvipdfmとpdflatexで作ったpdfでforward/inverse searchできるようにするため設定する。
Tools⇒Preferences…⇒File Handling⇒File Formats
- Format:
- PDF (dvipdfm)
- Viewer:
- Custom: start SumatraPDF -reuse-instance
- Format:
- PDF (pdflatex)
- Viewer:
- Custom: start SumatraPDF -reuse-instance
- forward search
Tools⇒Preferences…⇒Output⇒General
- Forward search
-
- PDF comand:
- cmd /c start SumatraPDF -reuse-instance $$o -forward-search $$t $$n
以上の操作でforward searchの設定は完了。
- 実行方法:
- LyX中で以下のどちらかの方法でforward searchができる。
- Navigate⇒Forward search
- 右クリック⇒Forward search
- inverse search
- LyxSever pipe:
- \\.\pipe\lyxpipe
以下の内容のlyxeditor.cmdというファイルを作成。
@echo off
setlocal enabledelayedexpansion
set file=%1
set row=%2
REM remove quotes from variables
set file=!file:"=!
set row=!row:"=!
%comspec% /q /c (@echo LYXCMD:revdvi:server-goto-file-row:%file% %row%)> \\.\pipe\lyxpipe.in&&type \\.\pipe\lyxpipe.out
endlocal
作成したlyxeditor.cmdを以下の場所に配置。
C:\Program Files\LyX 2.1\bin
SumatraPDFを開く⇒設定⇒オプション⇒逆順検索コマンドラインの設定⇒以下の内容を記述。
“C:\Program Files\LyX 2.1\bin\lyxeditor.cmd” “%f” %l
以上でSumatraPDFのinverse searchの設定が完了。
- 実行方法:
- SumatraPDFでダブルクリックするとLyX中の該当箇所にジャンプする。
関連