我当前用于编织的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/