使用 Vim + latex-suite + knitr
Using Vim + latex-suite + knitr
(总结在底部)我已经使用 Vim-R-plugin 设置了 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 文件(尽管有人在 post 的评论中说它应该早在 2011 年就在 vim-r-plugin 中实现了自动化,但它没有:最初文件类型被检测为 rnoweb,当我尝试编译时,它抛出了一个错误,说我正在尝试编译一个非 . tex 文件)。
现在,如果我将以下代码用作 .Rnw 文件:
\title{Data analysis}
\begin{document}
\maketitle
\Section{Introduction}
Some text as introduction
\end{document}
编译没有问题。当我包括
<<>>=
1 + 1
@
它编译,但是它打印到
!!?? = 1 + 1
@
没有方块颜色和 !和 ?翻过来。
当我包含一条评论 (# comment
) 时,它 returns 一个错误说
You can't use 'macro parameter character #' in vertical mode
但它编译并打印为
comment
当我使用 \
转义它时,没有显示任何错误并打印
# comment
我正在使用 macvim 7.4 并更新了所有插件(installed/updating 使用 Bundle)和 R 3.1.2(最新更新)。
所以,总而言之:vim + r 有效,vim + latex 有效,但 vim + r + latex 无效。 R 代码未执行且注释显示错误。
如果有人能指出正确的方向,我将不胜感激!
自发布此问题以来,我进行了一些研究并找到了解决方案。我必须将很多(也许全部?)归功于 Josh Davis,我的大部分设置都是从他们那里获得的。他指给我 kicker 看我的 .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
我制作了一个 'recipe' 供 kicker 观看 .Rnw 文件,当它发生变化时,它会执行终端命令。我把它命名为 knitr.kick
并把它放在我的主目录中:
#!/bin/bash
FILE=""
KNITR="echo \"Rerunning Knitr..\"; Rscript -e \"library(knitr); knit('./${FILE}')\""
echo "Watching ${FILE}..."
kicker -e "${KNITR}" ${FILE}
我通过添加到 .bash_profile:
创建了一个别名来调用这个 kicker
knitr="~/knitr.kick"
installation of latexmk之后,我可以打电话给
$ latexmk -pvc -pdf example.tex
现在我可以打电话了:
$ knitr example.Rnw
在我的终端中,example.Rnw 被监视并且每次更改时,Rscript 都是 运行 并且 .Rnw 文件被编译为 .tex 文件。 .tex 文件被 latexmk 编译成 PDF。
这是我对 SO 的第一个回答,所以如果缺少某些信息,请告诉我。
p.s。可以在 VIM 中找到 Sweave 和 latex 语法突出显示的绝妙组合 here
对于 Rnoweb 文件,当您将文件格式设置为 rnoweb
。有关详细信息,请参阅 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。
(总结在底部)我已经使用 Vim-R-plugin 设置了 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 文件(尽管有人在 post 的评论中说它应该早在 2011 年就在 vim-r-plugin 中实现了自动化,但它没有:最初文件类型被检测为 rnoweb,当我尝试编译时,它抛出了一个错误,说我正在尝试编译一个非 . tex 文件)。
现在,如果我将以下代码用作 .Rnw 文件:
\title{Data analysis}
\begin{document}
\maketitle
\Section{Introduction}
Some text as introduction
\end{document}
编译没有问题。当我包括
<<>>=
1 + 1
@
它编译,但是它打印到
!!?? = 1 + 1
@
没有方块颜色和 !和 ?翻过来。
当我包含一条评论 (# comment
) 时,它 returns 一个错误说
You can't use 'macro parameter character #' in vertical mode
但它编译并打印为
comment
当我使用 \
转义它时,没有显示任何错误并打印
# comment
我正在使用 macvim 7.4 并更新了所有插件(installed/updating 使用 Bundle)和 R 3.1.2(最新更新)。
所以,总而言之:vim + r 有效,vim + latex 有效,但 vim + r + latex 无效。 R 代码未执行且注释显示错误。
如果有人能指出正确的方向,我将不胜感激!
自发布此问题以来,我进行了一些研究并找到了解决方案。我必须将很多(也许全部?)归功于 Josh Davis,我的大部分设置都是从他们那里获得的。他指给我 kicker 看我的 .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
我制作了一个 'recipe' 供 kicker 观看 .Rnw 文件,当它发生变化时,它会执行终端命令。我把它命名为 knitr.kick
并把它放在我的主目录中:
#!/bin/bash
FILE=""
KNITR="echo \"Rerunning Knitr..\"; Rscript -e \"library(knitr); knit('./${FILE}')\""
echo "Watching ${FILE}..."
kicker -e "${KNITR}" ${FILE}
我通过添加到 .bash_profile:
创建了一个别名来调用这个 kicker knitr="~/knitr.kick"
installation of latexmk之后,我可以打电话给
$ latexmk -pvc -pdf example.tex
现在我可以打电话了:
$ knitr example.Rnw
在我的终端中,example.Rnw 被监视并且每次更改时,Rscript 都是 运行 并且 .Rnw 文件被编译为 .tex 文件。 .tex 文件被 latexmk 编译成 PDF。
这是我对 SO 的第一个回答,所以如果缺少某些信息,请告诉我。
p.s。可以在 VIM 中找到 Sweave 和 latex 语法突出显示的绝妙组合 here
对于 Rnoweb 文件,当您将文件格式设置为 rnoweb
。有关详细信息,请参阅 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。