blob: 972dcda10032add5c33b05b531dab30a5d7b07f0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
# This is to allow the use of Sweave with latexmk, and in addition to
# make synctex work properly with it.
# SEE THE IMPORTANT NOTES below.
#
# Sweave (http://www.stat.uni-muenchen.de/~leisch/Sweave/) is a tool
# that allows to embed the R code for complete data analyses in latex
# documents. The user edits a file with an extension like .Rnw, and
# the .tex file is generated from this.
#
# Four problems are solved by the code below:
# 1. Generate the .tex file automatically.
# 2. Arrange not to re-run unmodified chunks of R code. (A pure
# optimization.)
# 3. Fix the execution environment for (pdf)latex.
# 4. Deal with synctex: If the user wants to use synctex
# (www.tug.org/TUGboat/tb29-3/tb93laurens.pdf) to synchronize the
# pdf file with the source file, by default synctex does the
# synchronization with the generated .tex file, not the original
# source file. Postprocessing of the .synctex.gz file is necessary
# to fix this.
#
# The following version was worked out and tested by a user (thanks
# to Brian Beitzel) on MSWindows. It will need at least one change to
# work on UNIX-like operating systems (which include Linux and OS-X).
# N.B. ===> IMPORTANT NOTES <===
#
# 1. See the comments in knitr-latexmkrc for an alternative and probably better
# way of using Sweave with latexmk
#
# 2. The patchDVI package for R needs to be installed from R-Forge, as
# follows:
#
# install.packages("patchDVI", repos="http://R-Forge.R-project.org")
#
# 3. In all Sweave (.Rnw) documents, the following lines must be included:
#
# \usepackage{Sweave}
# \SweaveOpts{concordance=TRUE}
# Fix the pdflatex command to run Sweave first, and to postprocess the
# .synctex.gz file:
# !!!!! THIS IS THE VERSION FOR MS-WINDOWS, with && as a command
# separator
$pdflatex = "cmd /c "
. "Rscript -e \"library(cacheSweave); setCacheDir(getwd()); "
. "Sweave('%S', driver=cacheSweaveDriver)\""
. " && R CMD pdflatex -interaction=nonstopmode -synctex=1 %O %B.tex"
. " && Rscript -e "
. "\"library('patchDVI');patchSynctex('%B.synctex.gz')\"";
#
# !!!TO FIX THIS FOR Linux/OS-X/UNIX, try uncommenting the following:
# (this version hasn't been tested).
#$pdflatex = "Rscript -e \"library(cacheSweave); setCacheDir(getwd()); "
# . "Sweave('%S', driver=cacheSweaveDriver)\""
# . " ; R CMD pdflatex -interaction=nonstopmode -synctex=1 %O %B.tex"
# . " ; Rscript -e "
# . "\"library('patchDVI');patchSynctex('%B.synctex.gz')\"";
|