Обратный поиск SyncTeX с файлами WinEdt и Rnw

Обратный поиск SyncTeX с файлами WinEdt и Rnw

Я использую WinEdt 9.1 сRМенеджери pdflatex для сшивания файлов PDF из файлов Rnw. Процесс в целом работает хорошо. Но я не могу использовать "обратный поиск" из моих документов PDF в мои файлы Rnw. Когда я пытаюсь это сделать, WinEdt открывает соответствующий файл .tex, а не файл .Rnw, который мне на самом деле нужно редактировать. Как мне исправить эту проблему?

Я понимаю, что SyncTeX"не знает"о файлах Rnw. Но я понимаю, что это именно та проблема, которую должен решать пакет "patchDVI" для R — и именно поэтому RManager требует установки этого пакета. В любом случае, у меня установлен пакет patchDVI, но обратный поиск из моих PDF-файлов все равно приводит меня к промежуточным файлам .tex, а не к файлам .Rnw, которые мне нужно редактировать.

У меня нет проблем с использованием обратного поиска, когда мои документы представляют собой обычные файлы .tex, а не файлы .Rnw.

Поиск на этом сайте выдал несколько связанных постов, включая ссылку на [этот пост]. Комментарий к посту вселил в меня надежду, что я смогу решить проблему, перейдя в Параметры > Режимы выполнения > PDFLaTeX и добавив переключатель "synctex=-1" при вызове pdflatex. Но это не помогло.

решение1

Решение оказывается простым: при использовании knitr необходимо включить

knitr::opts_knit$set(concordance = TRUE)

в фрагменте кода в файле. (Эта строка эквивалентна для \SweaveOpts{concordance=TRUE}тех, кто использует Sweave вместо knitr.) Когда эта строка включена, прямой и обратный поиск работают так, как и ожидалось.

Есть одно ограничение. По какой-то причине, похоже, есть конфликт между cache.lazy = FALSEопцией чанка и настройкой опции concordance: если cache.lazy = FALSEустановлено для чанка, а concordance = TRUEстрока находится в этом чанке, concordance = TRUEстрока не будет иметь никакого эффекта. Другими словами, cache.lazy = FALSEкажется, отрицает concordance = TRUEстроку.

Есть простое решение: просто укажите это knitr::opts_knit$set(concordance = TRUE)в раннем фрагменте, перед любым фрагментом, имеющим такую cache.lazy = FALSE​​возможность.

Связанный контент