2011-03-27 54 views
5

我現在Makefile更改Sweave司機看起來像:從織造命令行

SUFFIXES: .tex .pdf .Rnw 
MAIN = lecture 
INCLUDES = chapter1.tex chapter2.tex ... 

all: $(INCLUDES) $(MAIN).pdf 

$(MAIN).pdf: $(INCLUDES) $(MAIN).tex 

.Rnw.tex: 
     R CMD Sweave $*.Rnw 

.tex.pdf: 
     pdflatex $*.tex 


<snip> 

假設我想改變Sweave驅動程序才能使用highlight包(說)。這樣做的最好方法是什麼?

回答

6

你可以做我們爲Rcpp *包做的事情。這裏是RcppGSL:

RcppGSL.pdf: RcppGSL/RcppGSL.Rnw 
    cp -f RcppGSL/RcppGSL.Rnw . 
    $(RSCRIPT) --vanilla -e "require(highlight); \ 
          driver <- HighlightWeaveLatex(boxes = TRUE); \ 
          Sweave('RcppGSL.Rnw', driver = driver); " 
    $(RSCRIPT) -e "tools::texi2dvi('RcppGSL.tex', pdf = TRUE, clean = FALSE)" 
    bibtex RcppGSL 
    $(RSCRIPT) -e "tools::texi2dvi('RcppGSL.tex', pdf = TRUE, clean = TRUE)" 
    cp RcppGSL/RcppGSL-fake.Rnw RcppGSL.Rnw 

這使實際的源和子目錄的「假」變型inst/doc/RcppGSL/ 誘騙R導入重建只有當我們希望它太PDF - 否則它看到一個RNW和pdf相同的基本名稱,並很高興。

多一點令人費解比基本Makefile您開始使用,但目前仍 只有這樣,才能切換到highlight,我們知道。

+0

非常感謝。我只需要將'R CMD Sweave ...'換成'Rscript ...',一切都可以工作。我不使用R來pdflatex,我只是有一個額外的'Makefile'後綴命令,這意味着(我認爲),我可以避免「假」目錄。 – csgillespie 2011-03-27 12:33:56