更改Sweave驱动程序

更改Sweave驱动程序

我当前用于编织的Makefile类似于:

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包(例如)。最好的方法是什么?

最佳答案

您可以做我们对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的唯一方法。

关于r - 从命令行更改Sweave驱动程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5448608/

10-11 17:49