5

私の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パッケージを使用するように変更したいとします (たとえば)。これを行う最善の方法は何ですか?

4

1 に答える 1

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 を再作成するように騙されます。

最初の基本よりも少し複雑Makefileですが、現在、私たちが知っているハイライトに切り替える唯一の方法です.

于 2011-03-27T11:27:18.837 に答える