この回答で、@Yihuiknitr
は地球環境を利用していると述べました。これは私を混乱させました-私の経験はそうではないということでした。私は実際に使用することはありませんknit
が、通常はPDFに直接アクセスします。
ちょっとした実験でknit
は、グローバル環境(またはenvir
引数を使用して指定した環境)を使用しているように見えますが、そうでknit2pdf
はありません。
最小限の例:global_test.Rnwファイル
\documentclass{article}
\begin{document}
<<>>=
print(x)
@
\end{document}
Rスクリプト:
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
後者は、表示されずに警告を発するPDFファイルを生成します。
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
渡されることを期待してknit2pdf
( )に環境を渡そうとしましたが、未使用の引数エラーが発生します。envir = globalenv()
...
一般的に、地球環境を参照することは貧弱な形式であることを私は知っていますが、それを行う方法knit2pdf
、または環境を明示的に渡す方法はありますか、または上記の同じ質問に対する@Ramnathの回答のbrew
ようsprintf
に使用する方が良いですか?
tools::texi2pdf
私のユースケースでは、XeLaTeXを使用してコンパイルする必要があるため、役に立たないと思います。XeLaTeXknit2pdf
は簡単に処理できます。