【问题标题】:How to make sweave copy generated graphics to a subfolder?如何将 sweave 生成​​的图形复制到子文件夹?
【发布时间】:2011-01-12 22:09:01
【问题描述】:

我很想在我的 Sweave 报告创建的所有 graphics.pdf 上使用一些基于 shell 脚本的 pdfcrop。因此,如果所有图形都存储到一个子文件夹而不是被丢弃在所有乳胶文件(如 .aux .log 文件(等等)所在的位置),我会很好。如果我只需要对特定目录中的所有文件使用裁剪脚本,那就容易多了。

这是我的 Sweave 块:

\begin{figure}[htbp]
  \begin{center}
  <<fig=true,echo=false>>=
  print(mygraph)
  @
\caption{my graph}
\end{center}
\end{figure}

如果我运行 sweave 代码 mygraph.pdf 存储在与 report.tex 文件本身相同的目录中。

有没有办法将此文件存储在现有的子文件夹中,例如 /graphics ?

【问题讨论】:

    标签: r sweave


    【解决方案1】:

    插入:

    \SweaveOpts{prefix.string=foo/bar}
    

    进入你的 Sweave 源文件,最好在序言的顶部。上面一行来自Sweave FAQ,表示创建的图形将存储在(Sweave源所在目录的)子目录foo中,每个图像文件名都以bar开头。 Sweave FAQ.

    中讨论了这一点以及更多内容

    【讨论】:

    • acc。虽然我觉得这次我更快;)
    • @ran2 你是,大约 10 秒 ;-) 选择你自己的答案作为接受的答案并没有错 - 甚至还有一个徽章(“自学者”IIRC)。如果你想去接受你的回答,我不会觉得辛苦。最重要的是,一个有效的答案会被接受,这样以后遇到这个 Q 的任何人都知道它已成功回答。
    • Afaik 如果您自己的答案获得至少 3 次赞成票,则会授予自学者徽章。所以尽管接受了你的,我还是得到了一个;)
    【解决方案2】:

    好的,RTFM,ran2。

    方法如下:

     \SweaveOpts{prefix.string=graphics/report} 
    

    另请参阅:the manual

    graphics 是目录,report 是您可能想要使用的子字符串。至少你会在谷歌上找到更好的:)

    编辑:

    为了完整起见,我将在此处添加几行 shell 脚本:

    #!/bin/sh
    R CMD Sweave report.Rnw   
    for file in `ls graphics`;
    do pdfcrop "$file" graphics/"$file"
    done
    pdflatex report.tex
    open report.pdf
    

    也许你们中的一些人想使用 $1 作为目录参数。

    【讨论】:

      猜你喜欢
      • 2017-03-11
      • 1970-01-01
      • 2020-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多