In this answer @hyihui sagte, dass knitr
die globale Umgebung verwendet. Das verwirrte mich - meine Erfahrung war, dass es nicht so ist. Ich benutze nie wirklich knit
obwohl ich normalerweise direkt zum PDF gehe.Kann knit2pdf die globale Umgebung nutzen?
In einem kleinen Experiment scheint es, dass knit
die globale Umwelt tut (oder was auch immer Umgebung Sie envir
Argument angeben verwenden), aber die knit2pdf
nicht.
Minimal Beispiel: global_test.Rnw Datei
\documentclass{article}
\begin{document}
<<>>=
print(x)
@
\end{document}
R Script:
x <- "Hello World"
knit(input="global_test.Rnw")
# Works as expected, could now call tools::texi2pdf to generate pdf.
knit2pdf(input="global_test.Rnw")
# Doesn't
Letzteres erzeugt PDF-Datei, die nicht angezeigt wird und gibt eine Warnung aus:
running command '"C:\PROGRA~2\MIKTEX~1.9\miktex\bin\texi2dvi.exe" --quiet --pdf
"global.pdf" -I "C:/PROGRA~1/R/R-215~1.3/share/texmf/tex/latex" -I
"C:/PROGRA~1/R/R-215~1.3/share/texmf/bibtex/bst"' had status 1
Ich habe versucht, eine Umgebung an knit2pdf
(envir = globalenv()
) übergeben, in der Hoffnung, es würde b e ...
weitergegeben, ich bekomme nur einen unbenutzten argument error.
Im Allgemeinen Ich weiß, dass die globale Umwelt Referenzierung schlechte Form ist, aber gibt es eine Möglichkeit, es mit knit2pdf
zu tun, oder eine Umgebung, ausdrücklich zu passieren, oder bin ich besser mit brew
und sprintf
wie in @Ramnath's answer zum gleichen Frage oben?
In meinem Anwendungsfall glaube ich nicht tools::texi2pdf
ist nützlich, weil ich mit XeLaTeX kompilieren muss, die mühelos knit2pdf
behandelt.
Haben Sie versucht, explizit den 'envir' Parameter in' strick2pdf' zu setzen? – krlmlr
Ja, ich bekomme nur einen unbenutzten Argumentfehler. – Gregor
Haben Sie es versucht, ohne eine globale Variable zu referenzieren? Ich bekomme genau den gleichen Fehler, wenn ich 'strick2pdf()' benutze, wenn die eine Zeile von R-Code 'print (" Hello World ")' ist (dh wenn es keinen expliziten Verweis auf eine globale Variable gibt) ... I bin auf einer Windows XP-Box mit R-devel und 'knitr_1.1', mit einer MikTeX-Distribution unter der Haube. –