在撰写论文时,我通常使用knitr
来嵌入我在R中生成的表格和图表。所有这些对我来说都非常好用。然而,我的一些共同作者并不热衷于这个工作流程,而是更愿意将knitr
与knitr
的交互留给我,并专注于编写他们的部分,而不必费心去做R代码。他们也更不用安装R,RStudio和各种软件包。
那么,有没有办法用嵌入式{{1}}块排版LaTeX文档而不必先通过R运行它们?换句话说,是否有一种方法可以在排版过程中简单地忽略块(或者用虚拟表/图来替换它们)?
答案 0 :(得分:2)
更新:修订说明here
这不能回答确切的问题,但可能是用例。我最近遇到了类似的挑战:我想在一个.rnw
文件中结合写作和分析,但我的合作者不想使用R / RStudio / GitHub / LaTeX。
所以我决定通过Dropbox与他们分享我的git repo的子文件夹。此文件夹包含三个.docx
文件:introduction.docx
,methods.docx
和discussion.docx
(我在.rnw
文件中编写结果部分)。唯一的问题是他们在写作时必须使用一些非常基本的LaTeX,例如\subsection{heading}
用于标题,\cite{key}
用于引用,``quotes'',转义\%,\ $和\& ;
返回.rnw
文件,我将.docx
个文件转换为.txt
:
system("textutil -convert txt introduction.docx")
然后将文件扩展名从.txt
重命名为.tex
:
file.rename("introduction.txt", "introduction.tex")
然后在R
代码块之外,我用.tex
文件调用:
\input{introduction}
我向GitHub发布了small example。
\documentclass{article}
\makeatletter
\renewcommand{\@biblabel}[1]{\quad#1.}
\makeatother
\date{}
\bibliographystyle{plain}
\begin{document}
\begin{flushleft}
{\Large
\textbf{My Title}
}
\end{flushleft}
\section{Introduction}
% do not write in this section...let collaborators write in introduction.docx
<<intro, include=FALSE>>=
# assumes wd set to root folder collaborate
# convert docx to txt
system("textutil -convert txt introduction.docx")
# rename txt to tex
file.rename("introduction.txt", "introduction.tex")
@
% pull in introduction.tex
\input{introduction}
\section{Methods}
<<methods, include=FALSE>>=
system("textutil -convert txt methods.docx")
file.rename("methods.txt", "methods.tex")
@
\input{methods}
\section{Results}
<<results>>=
dat <- data.frame(x=runif(30, 0, 30))
mean <- mean(dat$x, na.rm=TRUE)
@
The mean is \Sexpr{round(mean, 1)}.
\section{Discussion}
<<discussion, include=FALSE>>=
system("textutil -convert txt discussion.docx")
file.rename("discussion.txt", "discussion.tex")
@
\input{discussion}
\bibliography{example.bib}
\end{document}