2013-10-31 4 views
17

R 3.0のようCRANパッケージに「ビネット」として静的なPDFファイルをインクルードするために、適切な方法は何ですか?Rパッケージに静的(ビルド済み)PDFビネットを使用して

this documentで空のスタブを使用すると、RnwのトリックはR 3.0では動作しないようです。文書が今\VignetteEngine{}に基づいて、より良い方法ですが、これは静的なPDFファイルに対してどのように機能するか、それはかなりはっきりしていないことを示唆しています。

+5

+1私のパッケージに静的なビネットも含めたいと思っています – sckott

+0

マニュアルや茶の葉を読んでみると、すべての「vignettes /」に向かって動き始めています。未来。 –

+0

Hmmm。その場合、私のパッケージのほとんどはWebへのAPI呼び出しを行っているので、チュートリアルでWebページにリンクしているだけかもしれません。実際にpkgの中にビネットを置く重要な理由がないかぎり? – sckott

答えて

10

を支援します:

%\VignetteIndexEntry{My amazing package} 
%\VignetteEngine{R.rsp::asis} 

と持っていることを確認してください:あなたのパッケージのDESCRIPTIONファイル内

Suggests: R.rsp 
VignetteBuilder: R.rsp 

。これは静的HTMLビネットでも機能します。これは、R.rspビネットの1つでも説明されています。

+0

この優雅なソリューションを提供していただきありがとうございます。それはR 3.1.2であなたのために働くのですか? – krlmlr

+0

私のために働く - 'devtools'問題のようです。 – krlmlr

+0

あなたの歓迎 - 私はあなたがそれを好きでうれしいです。はい、R.rspのビネットエンジンはすべて旧バージョンのRで動作します。彼らはR(> = 3.0.0)で箱から出ます。彼らもR(<3.0.0)で作業するには、R.rspビネットの1つで説明されているフォールバックソリューションを追加する必要があります。 – HenrikB

1

UPDATE 2014年6月8日:Rパッケージ内の静的なPDFやHTMLファイルなどへのよりよい解決策については、R.rsp(> = 0.19.0)を使用する方法について、このスレッドで私の他の回答を見ると、そのR.rsp::asisビネットエンジン。

<name>.Rnwファイルには、静的な<name>.pdfファイルに一致する名前が必要です。

<name>.Rnw(ここでは static.Rnw)は、例えば、最小限の有効なのSweaveファイルです
vignettes/ 
    static.pdf 
    static.Rnw 

%\VignetteIndexEntry{<title to be displayed on the R vignette index page>} 
\documentclass{article} 
\begin{document} 
\end{document} 

すなわちRのtools::buildVignettes()は、最初いつものように<name>.tex<name>.RnwをのSweaveなり、それを構築するために、このビネットソースファイル(<name>.Rnw)トリックR CMD build。しかし、buildVignettes()が、それはすでにはSweaveエンジンによって作成されたものとして私たちの静的<name>.pdfファイルを検出しますので、それは(私たちの静的ファイルを上書きする)PDFファイルにそのダミーTeXファイルをコンパイルされませんように設計される方法による。

重要なことは、(i)ビュレットがR CMD buildの間に "ビルド"され、ビルドされたビルドがビルドされたパッケージのinst/doc/ディレクトリ(見つからない場合に作成される)にコピーされるということです。また、(ⅲ)vignettes/ディレクトリがは、ビルドパッケージ、すなわち<pkgname>_<version>.tar.gzファイルの一部ではありません。だから、inst/doc/を必ず確認してください。だから、

、ダミー<name>.Rnwを使用して、ここで明確にするためには、誰かがこの戦略に対する予防することを決定した場合破損する可能性がハッキングと考えられます。それが起こる場合は、唯一の目的は... <name>.pdfファイルに<name>.pdfファイルをコンパイルすることです非はSweaveビネットエンジンを作成するために完全に可能です。これは有効であり、R(> = 3.0.0)で追加された非Sweaveサポートのために可能です。私はそのようなエンジンをR.rspパッケージに追加することを検討していました。 \ VignetteEngine {R.rsp :: StaticPDF}。これで、ダミーのRnwファイル(PDFファイルのみ)は必要ありません。

希望これはあなたが含まれている小さな「ビネット/ main.pdf.asis」テキストファイルを追加することにより、静的なPDF「ビネット/ main.pdf」を含めることができます(> = 1.19.0)R.rsp

+0

私はあなたが未来の時点でRnw以上の許可は得られないが、良い参考文献はないという曖昧な気持ちを持っています。 –

+1

これは 'package.tar.gz'を手作業で変更することなくR 3.0で動作するようにはできませんでした。問題は、 'R CMD build'の間に、' pdf'が '/ inst/doc'に移動することです。しかし、 '/ vignettes/static.Rnw' *はソースパッケージに含まれ、' R CMD check'の間に再構築されます。この時点で 'pdf'ファイルが生成されないので失敗します。 – Jeroen

+2

私はこのトリックをしばらく使っていましたが、R 3.1で私の仕事はやめました。 –

関連する問題