2011-12-02 11 views
0

私はRに新しく、Sweaveにはるかに新しいです。私はグラフィックスを試しています。R/Sweave:プレフィックスと図形ファイルの名前付け

\documentclass[a4paper]{article} 
\usepackage{Sweave} %%%%%% 
\SweaveOpts{eps=true} 
\begin{document} 

<<echo=FALSE>>= 
test.frame<-data.frame(year=8:11, value= c(12050,15292,23907,33991)) 
@ 

\SweaveOpts{prefix.string=Evolution} 
<<label=amount,echo=FALSE,results=hide>>= 
postscript('doudou.eps', 
      width=6, height=7, 
      colormodel="cmyk", 
      family = "ComputerModern") 
with(test.frame,plot(year, value)) 
dev.off() 
@ 

\begin{figure}[htbp] 
\begin{center} 
\includegraphics[width=1\textwidth,angle=90]{doudou.eps} 
\end{center} 
\end{figure} 

\end{document} 

What I want to do above?

私はSweaveファイル自体に\includegraphicsコマンドを持つことができるように、私が挿入していますEPSファイルを手動制御を持っている:ここではサンプルコードです。

そして、私は数字に適切なファイル名を与えることをしようとしています:接頭Evolutionとラベルamount生産EPS図がEvolution-amount.epsという名前になりますように。

What is going wrong?

あなたが見ることができるように、私はすなわちdoudou.epsRpostscriptオプションでファイル名を挿入しています。私がこれをしないと、Rplots.psというファイルがRによって作成されます。

私のコードは、私のFigureファイルに与えたい接頭辞とラベルをよく無視しています。

そして、後で\includegraphicsに明示的に質問して、doudou.epsと書いています。

How I want it to be?

私はまだSweaveファイル内\includegraphicsコマンドを手動で制御している間、私は、数字のファイル名に上記のように、プレフィックスとラベルを持ってできるようにするには。これは可能ですか?

What is the use of this?

は、私は紙を書いていますし、私は別のセクション内の数字を持っていると言います。

\SweaveOpts{prefix.string=Paper2} 

<<label=section2,echo=FALSE,results=hide>>= 

例えば、私はpostscriptオプションで指定します:model.epsだから、のようなものを持っていいだろう。

次に数字はPaper2-section2.model.epsとなります。それは実現可能ですか?

私はこの名前を何とか手動で入力する必要がありますか?次の\includegraphicsコマンドで実行します。

おかげでたくさん...


更新:12月9日、2011年

cbeleitesの助けを借りて、近いソリューションです:コンパイルに

\documentclass[fleqn, a4paper,12pt]{article} 
\usepackage[latin1]{inputenx} 
\usepackage[T1]{fontenc} 
\usepackage{Sweave} %%%%%% 
\SweaveOpts{eps=TRUE} 



\begin{document} 

<<echo=FALSE>>= 
test.frame<-data.frame(year=8:11, value= c(12050,15292,23907,33991)) 
@ 

\SweaveOpts{prefix.string=Paper2} 

<<label=section2, echo=FALSE,results=hide>>= 
ps.options (width=6, height=7, colormodel="cmyk", family = "ComputerModern") 
@ 


<<label=section2, fig=TRUE, include = TRUE, echo=FALSE>>= 
with(test.frame,plot(year, value)) 
@ 

\end{document} 

私は、EPSを取得しますPaper2-section2という名前のPDFファイルがあります。これは私が得ることができるほど近いです。

+0

あなたの質問に回答を追加しないでください。これは非常に混乱します。 SOに関する各質問は、それ自体が問題として立つべきです。 – Andrie

答えて

3

図形チャンクを使用する必要があります。

<<fig=TRUE, include = FALSE>>= 
    with(test.frame,plot(year, value)) 
    @ 
  • あなたは、このような幅と高さとして、フィギュアチャンクに、より多くのオプションを渡すことができます。オプションは一桁にのみ適用された場合、あなたはおそらくフィギュアチャンクなしとマニュアル\includegraphicsとオフが容易になるだろう

    <<>>= 
    ps.options (colormodel="cmyk", family = "ComputerModern") 
    @ 
    
  • :より高度なオプションのための

  • は、RのPostScriptオプションを使用します。あなたはSweaveの図の塊によって生成されたかのように、ファイル名をpsファイルに与えることができます。

  • \includegraphicsための唯一の理由は、あなたがそのオプションを制御したいということであれば、graphicx」Ginを見て:

    \begin{figure}[htbp] 
    \begin{center} 
    \setkeys{Gin}{width=\linewidth} 
    <<fig=TRUE>>= 
    with(test.frame,plot(year, value)) 
    @ 
    \end{center} 
    \end{figure} 
    

私はジンが同様に回転して働くだろうと思ったが、それはしません。説明と可能な解決策についてはhttps://tex.stackexchange.com/a/31013を参照してください。しかし、ローテーションが横向きに表示されている場合(横向きにしたいのではなく)は、Rで正しいps設定を使用して解決できます(RSiteSearch()および? postscriptが役立ちます)。

+0

@ cbeleitesありがとう。そうすれば、Computer Modernのフォントファミリなどの追記オプションを完全に無視しています。 – yCalleecharan

+0

@ yCalleecgaran:(実際に試す時間はありませんが)マニュアルを見てください。 'ps.options'と組み合わせてあなたを助けるかもしれないフックを使う可能性があります。また、マニュアルに従って、独自のグラフィックデバイスの定義を設定することもできます。 – cbeleites

+0

@ cbeleitesマニュアルを参照してくれてありがとう。しかし、ポストは大きな問題ではないという。私はいつも手動でファイル名を書くことができます。 – yCalleecharan

関連する問題