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}