qaq 今天在 RStudio 写 Rmarkdown 的时候,突发奇想,RStudio 能否像 TeXworks editor 一样通过 pdf 定位源文档代码位置,可能是我不知道怎么在 RStudio 操作,请问可以这样吗?
yihui qaq 这是个很好的突发奇想,好像也是这个论坛上第二次有人突发这个奇想了。忘了第一次是谁,但我当时可能说过我愿意悬赏 $1024(甚至 2048 或 4196)看谁谁能把这个实现了。RStudio 和 knitr 只实现了 Rnw 文档的这个功能,大概原理是: 大致记录 .Rnw 源文档与 .tex 之间的行映射关系:https://github.com/yihui/knitr/blob/master/R/concordance.R \Sconcordance 命令来自:https://github.com/wch/r-source/blob/79298c499218846d14500255efd622b5021c10ec/share/texmf/tex/latex/Sweave.sty#L43-L53 --synctex 参数实现 PDF 与 .tex 之间的映射:https://tex.stackexchange.com/q/118489/9128 上面的 \Sconcordance 实现 .tex 与 .Rnw 之间的映射,最终建立 .Rnw 与 PDF 之间的映射。 Rmd 的困难之处在于 .md 到 .tex 之间的映射关系很难精细地建立起来,Pandoc 可能没有提供这个数据。所以这座桥我恐怕是连不起来的,建议放弃治疗。不如换个不会锁死 PDF 文件的 PDF 阅读器(即:不要用 Windows 或 Acrobat Reader),每次重新编译文档之后 PDF 阅读器会自动刷新并停留在当前页,这样就不用每次从头把鼠标滚烂了。