使用Vim + latex-suite + knitr

时间:2015-02-23 08:57:38

标签: r vim latex knitr

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

Associate .Rnw with vim latex suite之后,我在我的vimrc中包含了.Rnw文件应该被读作.tex文件(尽管有人在该帖子的评论中说明它应该在vim-r-plugin中自动化了2011年但它没有:最初文件类型被检测为rnoweb,当我尝试编译时,它抛出一个错误,说我正在尝试编译非.tex文件)。

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

\title{Data analysis}
\begin{document}
\maketitle
\Section{Introduction}
Some text as introduction
\end{document}

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

<<>>=
1 + 1
@

它编译,但它打印到

  

!! ?? = 1 + 1

     

@

没有块颜色和!和?转过身来。 当我添加评论(# comment)时,它会返回错误

  

您无法使用&#39;宏参数字符#&#39;在垂直模式

但它确实编译并打印为

  

评论

当我使用\将其转义时,不会显示任何错误并打印

  

#comment

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

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

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

2 个答案:

答案 0 :(得分:4)

自发布此问题以来,我做了一些研究并找到了解决方案。我必须向Josh Davis提供很多(可能全部?)的功劳,我从中完成了大部分设置。他指着我去看看我的.Rnw文件。但是,对于像我这样缺乏经验的用户,我需要一些时间和额外的信息来源。所以对于其他一些用户来说,这个概述可能很有趣。

现在,通过终端中的一些初始设置,我可以在VIM中编辑.Rnw文件,同时观看我的PDF格式。

工作流程:

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

安装组件

安装kicker

    gem install kicker -s http://gemcutter.org

我制作了一个&#39;配方&#39;为了使kicker能够观看.Rnw文件,当它发生变化时,它会执行一个终端命令。我叫它knitr.kick将它放在我的主目录中:

    #!/bin/bash

    FILE="${1}"

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

    echo "Watching ${FILE}..."
    kicker -e "${KNITR}" ${FILE}

我创建了一个别名,通过添加到.bash_profile:

来调用此踢球者
    knitr="~/knitr.kick"

installation of latexmk之后,我可以致电

    $ latexmk -pvc -pdf example.tex

现在我可以致电:

    $ knitr example.Rnw

在我的终端中,示例.Rnw被观看,每次更改时,运行Rscript并将.Rnw文件编译为.tex文件。比.mx文件由latexmk编译为PDF。

这是我在SO上的第一个答案,所以如果缺少部分信息,请告诉我。

P.S。可以在here

找到令人敬畏的混合Sweave和乳胶语法突出显示在VIM中

答案 1 :(得分:0)

对于Rnoweb文件,当您将文件格式设置为<LocalLeader>kn时,可以使用键绑定<LocalLeader>kprnoweb分别在Vim中构建.tex和.pdf文件。有关详细信息,请参阅https://raw.githubusercontent.com/jcfaria/Vim-R-plugin/master/doc/r-plugin.txt。为便于编辑,您可能希望将文件格式设置为tex。我在~/.vim/ftplugin/tex.vim

中添加了以下行
map <LocalLeader>k :w<CR>:cd %:p:h <CR>:!Rscript -e 'library(knitr);knit("%:p")'<CR>:!latexmk -pdf -pdflatex='pdflatex -shell-escape -synctex=1 -file-line-error -interaction=nonstopmode' %:r.tex <CR>:!open -a Skim %:r.pdf <CR><CR>

使用<LocalLeader>k键绑定将.Rnw转换为PDF。这适用于Mac。我相信它可以很容易地针对Linux进行调整。