the - Haciendo knitr opcional
r markdown tutorial pdf (1)
Cuando escribo un artículo, generalmente uso knitr para insertar tablas y gráficos que genero en R. Todo esto funciona excepcionalmente bien para mí. Sin embargo, algunos de mis coautores no están tan entusiasmados con este flujo de trabajo y preferirían simplemente dejarme las interacciones con knitr y concentrarme en escribir sus secciones sin tener que molestarme con el código R. También preferirían no tener que instalar R, RStudio y varios paquetes.
Entonces, ¿hay alguna forma de componer documentos LaTeX con fragmentos knitr incrustados sin tener que ejecutarlos a través de R primero? En otras palabras, ¿hay alguna forma de simplemente ignorar los trozos durante el proceso de composición (o quizás reemplazarlos con tablas / diagramas ficticios)?
Actualización: descripción revisada here
Esto no responde a la pregunta exacta, pero tal vez el caso de uso. Hace poco tuve un desafío similar: quería combinar la escritura y el análisis en un archivo .rnw , pero mis colaboradores no querían usar R / RStudio / GitHub / LaTeX.
Así que decidí compartir una subcarpeta de mi repositorio git con ellos a través de Dropbox. Esta carpeta contiene tres archivos .docx : introduction.docx , methods.docx , y .rnw (escribo la sección de resultados dentro del archivo .rnw ). El único problema es que tienen que usar algunos LaTeX muy básicos cuando escriben, por ejemplo, /subsection{heading} para encabezados, /cite{key} para referencias, `` comillas '''', escapando de /%, / $ y / & .
De vuelta en el archivo .rnw , convierto los archivos .docx a .txt :
system("textutil -convert txt introduction.docx")
y luego renombra la extensión de archivo de .txt a .tex :
file.rename("introduction.txt", "introduction.tex")
Luego, fuera de los fragmentos de código R , .tex archivos .tex con:
/input{introduction}
Publiqué un pequeño ejemplo a GitHub.
/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}