2012-10-22 7 views
10

RマークダウンファイルのR chunksによって生成される通常のプロットは、HTMLスライドまたはpdfに変換されたときに正確に表示されます。しかし、彼らがpandoc -t beamer ex.md -V theme:Warsaw -o beamer.pdf によってビーマースライドに変換されると、プロットは非常に大きくなります。特に、par(mfrow=c(n,m))によって生成されたプロットの場合、プロットのほんの一部が表示されます。ビーマースライドのプロットは、pandocで.mdから変換されたものが非常に大きい

チャンクオプションをdev='pdf'に設定して修正しようとしましたが、うまくいきません。

HTMLにおけるプロットは enter image description here

あるビーマーのプロットは

enter image description here
+2

これは驚くべきことではありません。 LaTeXは、PNG画像のための妥当なデフォルト幅を設定するのが非常に悪いです(Webブラウザははるかに優れています)。このページhttp://yihui.name/knitr/demo/framed/の '\ maxwidth'を見て、' \ setkeys {Gin} {width = \ maxwidth} 'のトリックと組み合わせてください。私は人々が貪欲である傾向があると理解していますが、生のLaTeXは実際にはPDF出力のための最良の解決策です(Markdownの単純さを支払う代償があります)。 –

+0

@Yihuiありがとう。完全に価格を受け入れる。 – Elaine

答えて

12

あるpandocの開発バージョンでは、スライドの幅に画像をスケーリングする必要がありビーマーテンプレートのいくつかのコードを含みます。それはあなたの場合に役立つかもしれません。

これはテンプレートを変更するだけなので、これを使用するために開発用のpandocをインストールする必要はありません。 pandoc -D beamer > my.beamerを使用してデフォルトのビーマーテンプレートのコピーを生成するだけです。その後

\makeatletter 
\def\ScaleIfNeeded{% 
    \ifdim\[email protected]@width>\linewidth 
    \linewidth 
    \else 
    \[email protected]@width 
    \fi 
} 
\makeatother 
\setkeys{Gin}{width=\ScaleIfNeeded} 

オプション--template=my.beamerとpandocを使用します。ライン\usepackage{graphicx}my.beamerに以下の行を挿入します。

+0

このソリューションを使用するときれいに解決されます。ありがとう。 – Elaine

関連する問題