
Estoy usando WinEdt 9.1 conGerente de RMy pdflatex para unir archivos PDF a partir de archivos Rnw. El proceso en general funciona bien. Pero no puedo utilizar la "búsqueda inversa" desde mis documentos PDF a mis archivos Rnw. Cuando intento hacerlo, WinEdt abre el archivo .tex correspondiente, no el archivo .Rnw que realmente necesito editar. ¿Cómo puedo solucionar este problema?
Entiendo que SyncTeX"no lo sabe"sobre archivos Rnw. Pero deduzco que este es exactamente el problema que se supone que resuelve el paquete "patchDVI" para R, y es por eso que RManager requiere que el paquete esté instalado. En cualquier caso, tengo instalado el paquete patchDVI, pero la búsqueda inversa desde mis archivos PDF todavía me lleva a los archivos .tex intermedios, no a los archivos .Rnw que necesito editar.
No tengo ningún problema en utilizar la búsqueda inversa cuando mis documentos son archivos .tex normales en lugar de archivos .Rnw.
Una búsqueda en este sitio arrojó algunas publicaciones relacionadas, incluido un enlace a [esta publicación]. Un comentario en la publicación me llevó a esperar poder resolver el problema yendo a Opciones > Modos de ejecución > PDFLaTeX y agregando el modificador "synctex=-1" cuando se llama a pdflatex. Pero eso no ayudó.
Respuesta1
La solución resulta simple: al usar knitr, se debe incluir
knitr::opts_knit$set(concordance = TRUE)
en un fragmento de código en el archivo. (Esta línea es equivalente a \SweaveOpts{concordance=TRUE}
para aquellos que usan Sweave en lugar de knitr.) Cuando se incluye esa línea, la búsqueda hacia adelante e inversa funciona como se esperaba.
Hay una calificación. Por alguna razón, parece haber un conflicto entre la cache.lazy = FALSE
opción de fragmento y la configuración de la concordance
opción: si cache.lazy = FALSE
está configurada para un fragmento y la concordance = TRUE
línea está en ese fragmento, la concordance = TRUE
línea no tendrá ningún efecto. En otras palabras, cache.lazy = FALSE
parece negar la concordance = TRUE
línea.
Hay una solución simple: simplemente especifique knitr::opts_knit$set(concordance = TRUE)
en un fragmento inicial, antes de cualquier fragmento que tenga la cache.lazy = FALSE
opción.