2017-09-20 1 views
3

私が知る限り、インターネットからLaTeXに画像を挿入することはできません。最初にイメージをダウンロードしてからローカルに追加する必要があります。 RのbookdownでRブックアウトで作成されたpdfファイルにインターネットからのイメージをスマートな方法で挿入するにはどうすればよいですか?

、私はこのようにそれを行う:

download.file('https://bookdown.org/yihui/bookdown/images/cover.jpg','cover.jpg', mode = 'wb') 

knitr::include_graphics('cover.jpg') 

それはgitbookとPDF出力の両方のために非常に適しています。しかし、私はそれが賢明だとは思わない。 pdfは最初にファイルをダウンロードする必要がありますが、gitbookの出力には不要です。画像は、経由gitbook出力に直接含めることができます。

knitr::include_graphics('https://bookdown.org/yihui/bookdown/images/cover.jpg') 

私は同時に両方のPDFとgitbook出力したいときにそれらを切り替える方法はありますか?つまり、.Rmdファイルをコンパイルすると、画像が挿入された.pdfファイルと、Webアドレスから挿入された元の画像が挿入されたgitbookファイルが得られます。

答えて

2

現在の出力形式はknitr::opts_knit$get('rmarkdown.pandoc.to')で確認できます。 'html'の場合は画像のURLを使用し、そうでない場合はファイルパスを使用します。

ここ
cover_url = 'https://bookdown.org/yihui/bookdown/images/cover.jpg' 
if (!file.exists(cover_file <- 'cover.jpg')) 
    download.file(cover_url, cover_file, mode = 'wb') 
knitr::include_graphics(if (identical(knitr:::pandoc_to(), 'html')) cover_url else cover_file) 

knitr:::pandoc_to()knitr::opts_knit$get('rmarkdown.pandoc.to')の内部ラッパー関数です。

+0

ありがとう、Yihui!それはまさに私が探していたスマートな方法です。 – pzhao

+0

@dapengできる場合は答えを受け入れる:) –

関連する問題