
私はWinEdt 9.1を使用していますRマネージャーpdflatex を使用して、Rnw ファイルから PDF ファイルを結合します。このプロセスは、通常、うまく機能します。ただし、PDF ドキュメントから Rnw ファイルへの「逆検索」は使用できません。これを実行しようとすると、WinEdt は対応する .tex ファイルを開きますが、実際に編集する必要がある .Rnw ファイルではありません。この問題を修正するにはどうすればよいですか?
SyncTeXは「知らない」Rnw ファイルについて。しかし、これはまさに R の "patchDVI" パッケージが解決するはずの問題だと私は考えています。そのため、RManager ではこのパッケージのインストールが必須となっています。いずれにしても、patchDVI パッケージはインストールされていますが、PDF からの逆検索では、編集が必要な .Rnw ファイルではなく、中間の .tex ファイルが表示されます。
ドキュメントが .Rnw ファイルではなく通常の .tex ファイルである場合、逆検索を使用しても問題はありません。
このサイトを検索すると、[この投稿] へのリンクを含む、いくつかの関連投稿が見つかりました。投稿のコメントを見て、オプション > 実行モード > PDFLaTeX に移動し、pdflatex が呼び出されるときに "synctex=-1" スイッチを追加することで問題を解決できるのではないかと期待しました。しかし、それは役に立ちませんでした。
答え1
解決策は簡単です。knitrを使用する場合は、
knitr::opts_knit$set(concordance = TRUE)
ファイル内のコード チャンクに と記述します (この行は\SweaveOpts{concordance=TRUE}
、knitr の代わりに Sweave を使用する場合に と同等です)。この行が含まれていると、順方向検索と逆方向検索が期待どおりに機能します。
cache.lazy = FALSE
1 つの条件があります。何らかの理由で、チャンク オプションと オプションの設定の間に矛盾があるようですconcordance
。cache.lazy = FALSE
チャンクに が設定されていて、concordance = TRUE
行がそのチャンク内にある場合、concordance = TRUE
行は効果がありません。言い換えると、は行cache.lazy = FALSE
を否定するようですconcordance = TRUE
。
簡単な解決策があります。オプションknitr::opts_knit$set(concordance = TRUE)
を持つチャンクの前の早いチャンクで指定するだけですcache.lazy = FALSE
。