使用Vim + latex-suite + knitr

deb*_*inf 5 vim latex r knitr

(摘要在底部)我使用Vim-R插件设置了Vim和R,它完美无瑕.我还在Vim中使用Latex-suite,可以毫无问题地创建,编译和查看.tex文件.对于knitr,我曾经使用Rstudio,但我真的想留在Vim.我刚刚开始使用vim-latex-suite,所以也许我错过了一些基本的东西,但是在我的Vim + Latex-Suite + knitr组合中出现了一些问题.

副.Rnw用vim乳胶套房,我包括在我的vimrc这.Rnw文件应被解读为.tex文件里(虽然有人在该信息的评论中指出,应该在VIM-R-插件早在2011自动化但它没有:最初filetype被检测为rnoweb,当我尝试编译时,它抛出一个错误,说我正在尝试编译非.tex文件).

现在,如果我使用以下代码作为.Rnw文件:

\title{Data analysis}
\begin{document}
\maketitle
\Section{Introduction}
Some text as introduction
\end{document}
Run Code Online (Sandbox Code Playgroud)

它编译没有问题.当我包括

<<>>=
1 + 1
@
Run Code Online (Sandbox Code Playgroud)

它编译,但它打印到

!! ?? = 1 + 1

@

没有块颜色和!和?转过身来.当我包含注释(# comment)时,它会返回错误说明

您不能在垂直模式下使用'宏参数字符#'

但它确实编译和打印为

评论

当我使用它来逃避时\,没有显示错误并打印出来

#comment

我正在使用macvim 7.4并更新了所有插件(使用Bundle安装/更新)和R 3.1.2(最新更新).

所以,总结一下:vim + r有效,vim + latex有效,但vim + r + latex不起作用.R代码未执行且注释显示错误.

如果有人能指出我正确的方向,我们将不胜感激!

deb*_*inf 5

自发布此问题以来,我已经进行了一些研究并找到了解决方案。我必须向乔什·戴维斯Josh Davis贡献很多(也许是全部?),而我大部分时间都来自他。他指点我看我的.Rnw文件。但是,对于像我这样没有经验的用户,我需要一些时间和额外的信息来源。因此,对于其他用户而言,此概述可能会很有趣。

现在,在终端中进行一些初始设置后,我可以在VIM中编辑.Rnw文件,同时观看我的PDF表单。

工作流程:

  • 我在vim中编辑.Rnw文件(使用vim-r-plugin和vim-latex-suite)
  • kicker监视我的.Rnw文件
  • $ Rscripts ... (由kicker调用)将.Rnw编译为.tex
  • latexmk监视我的.tex文件并将其编译为PDF

组件安装:

安装踢脚

    gem install kicker -s http://gemcutter.org
Run Code Online (Sandbox Code Playgroud)

我为“踢腿”制作了一个“食谱”来观看.Rnw文件,当它更改时,它将执行终端命令。我knitr.kick把它放在我的主目录中:

    #!/bin/bash

    FILE="${1}"

    KNITR="echo \"Rerunning Knitr..\"; Rscript -e \"library(knitr); knit('./${FILE}')\""

    echo "Watching ${FILE}..."
    kicker -e "${KNITR}" ${FILE}
Run Code Online (Sandbox Code Playgroud)

我通过添加到.bash_profile来创建别名来调用此踢脚程序:

    knitr="~/knitr.kick"
Run Code Online (Sandbox Code Playgroud)

安装latexmk的,我可以打电话

    $ latexmk -pvc -pdf example.tex
Run Code Online (Sandbox Code Playgroud)

现在我可以打电话给:

    $ knitr example.Rnw
Run Code Online (Sandbox Code Playgroud)

在我的终端中,将查看example.Rnw实例,每次对其进行更改时,都会运行Rscript并将.Rnw文件编译为.tex文件。latexmk会将.tex文件编译成PDF。

这是我的第一个回答,因此,如果缺少某些信息,请告诉我。

ps可以在此处找到VIM中Sweave和Latex语法突出显示的出色混合