次のように、呼び出しの外でグローバル チャンク オプションを設定しようとしています。knit
opts_chunks$set(dev='pdf')
knit(input)
ただし、内knit
の新しいセットを使用しているように見えるため、機能していません。opts_chunks
knit
への呼び出しの外側でグローバル チャンク オプションを設定し、へknit
の呼び出しに適用することは可能knit
ですか?
私がこれをしている理由:
私は (R マークダウン) ドキュメントを書いていますが、これらを pdfまたはHTMLRmd
に編むことができるようにしたいと考えています。
knit2 <- function (input, out=c('pdf', 'html')) {
# set the appropriate output image format
opts_chunk$set(dev=ifelse(out == 'pdf', 'pdf', 'svg')) # <--
# knit to md
o <- knit(input)
# knit md to html or pdf
pandoc(input=o, format=ifelse(out == 'pdf', 'latex', 'html'))
}
つまり、knit2('mydoc.Rmd', 'pdf')
ORknit2('mydoc.Rmd', 'html')
を実行でき、 output に応じて Rmd を変更する必要がないという考えです。
私が遭遇した問題は、画像を HTML 出力用に SVG に、PDF 出力用に PDF にしたいということでした (ベクトル グラフィックが必要でしたが、SVG は Latex では機能せず、pdf は HTML では機能しないため、変更する必要があります。これは出力形式に基づいています)、つまり
opts_chunk$set(dev=ifelse(out == 'pdf', 'pdf', 'svg'))
これを の定義とともに Rmd ファイルのチャンクに入れると、機能することがわかっていますout
。ただし、 が呼び出されるまでmydoc.Rmd
割り当てることができないため、これを 内に埋め込みたくありません。実際に必要な出力はわかっています。output
knit2
したがって、knit2 がdev
呼び出しの前に何らかの方法でオプションを設定し、knit
そのオプションが の期間に適用されるようにしたいと考えていますknit
。(Rmd ファイルの外部、つまり でopts_chunk$set(dev=ifelse(out=='pdf', 'pdf', 'svg'))
定義できるのであれば、 my を Rmd ファイルに埋め込むことも受け入れますが、すべてを から処理できる場合は、それを希望します)out
knit2
knit2