フィギュアの挙動がおかしくなりました。一部のチャンクでは、knitr は 1 つのプロット関数から 2 つの図を生成し、'chunkname' から生成された図は、'chunkname1.pdf' および 'chunkname2.pdf' という名前が付けられます。1 つ目は 2 つ目と同じサイズの空白の図である場合もあれば、開くことができないファイルである場合もあります。回避策として、fig.keep='last'
オプションを設定しました。しかし今、同じチャンクから 2 つのプロットを表示fig.keep
し、デフォルト値に設定したいと思います。knitr は 3 つの PDF 図ファイルを生成し、最初のファイルは破損したファイル (開くことができないファイル) です。
Win7 64でknitrバージョン1.2(2013-04-10)、R 3.0.0 64ビット(r62697 2013-04-30)を使用しています。使用している設定は次のとおりです。
knit_hooks$set(par = function(before, options, envir) {
if (before) par(mar = c(4, 4, .1, .1))
})
opts_knit$set(concordance=TRUE, self.contained=TRUE)
opts_chunk$set(fig.path="figSW/SW-", keep.source=FALSE,
verbose=TRUE, message=FALSE)
簡単な例では再現できませんでした。しかし、そのような例を作成しようとすると、別の奇妙な結果が見つかりました。以下の例では、プロット 1、2、および 10 のみが正しく表示され、他のすべては表示されません (PDF ファイルは生成されず、一貫\includegraphics
して .tex ファイルで生成されません)。
\documentclass[12pt,a4paper]{article}
\begin{document}
Plot 1
<<test-t, echo=TRUE, results="asis", fig.width=10, fig.height=5>>=
x = c(1,2,3)
y = c(1,3,2)
plot(x,y)
@
Plot 2\\
<<test-tt, echo=FALSE, results="hide", fig.width=10, fig.height=5>>=
plot(x,y)
@
\newpage
Plot 3
<<test-s, echo=TRUE, results="asis", fig.width=10, fig.height=5>>=
x = c(1,2,3)
y = c(1,3,2)
plot(x,y)
@
Plot 4\\
<<test-ss, echo=FALSE, results="hide", fig.width=10, fig.height=5>>=
plot(x,y)
@
\newpage
Plot 5
<<test-r, echo=TRUE, results="asis", fig.width=10, fig.height=5>>=
x = c(1,2,3)
y = c(1,3,2)
plot(x,y)
@
Plot 6\\
<<test-rr, echo=FALSE, results="hide", fig.width=10, fig.height=5>>=
plot(x,y)
@
\newpage
Plot 7
<<test-v, echo=TRUE, results="asis", fig.width=10, fig.height=5>>=
x = c(1,2,3)
y = c(1,3,2)
plot(x,y)
@
Plot 8\\
<<test-vv, echo=FALSE, results="hide", fig.width=10, fig.height=5>>=
plot(x,y)
@
\newpage
Plot 9
<<test-u, echo=TRUE, results="asis", fig.width=10, fig.height=5>>=
x = c(1,2,3)
y = c(1,3,2)
plot(x,y)
@
Plot 10\\
<<test-uu, echo=FALSE, results="hide", fig.width=10, fig.height=5>>=
plot(x,y)
@
\end{document}
さらに奇妙なことに、R-Studio 内から同じファイルをコンパイルすると、プロット 1、2、および 10 に加えてプロット 6 の期待される結果が得られます。