| Sweave2knitr | R Documentation |
This function converts an Sweave document to a knitr-compatible document.
Sweave2knitr(
file,
output = gsub("[.]([^.]+)$", "-knitr.\\1", file),
text = NULL
)
file |
Path to the Rnw file (must be encoded in UTF-8). |
output |
Output file path. By default, ‘file.Rnw’ produces
‘file-knitr.Rnw’); if |
text |
An alternative way to provide the Sweave code as a character
string. If |
The pseudo command ‘\SweaveInput{file.Rnw}’ is converted to a code
chunk header <<child='file.Rnw'>>=.
Similarly ‘\SweaveOpts{opt = value}’ is converted to a code chunk
‘opts_chunk$set(opt = value)’ with the chunk option include =
FALSE; the options are automatically fixed in the same way as local chunk
options (explained below).
The Sweave package ‘\usepackage{Sweave}’ in the preamble is removed because it is not required.
Chunk options are updated if necessary: option values true and
false are changed to TRUE and FALSE respectively;
fig=TRUE is removed because it is not necessary for knitr (plots
will be automatically generated); fig=FALSE is changed to
fig.keep='none'; the devices pdf/jpeg/png/eps/tikz=TRUE are
converted to dev='pdf'/'jpeg'/'png'/'postscript'/'tikz';
pdf/jpeg/png/eps/tikz=FALSE are removed;
results=tex/verbatim/hide are changed to
results='asis'/'markup'/'hide'; width/height are changed to
fig.width/fig.height; prefix.string is changed to
fig.path; print/term/prefix=TRUE/FALSE are removed; most of the
character options (e.g. engine and out.width) are quoted;
keep.source=TRUE/FALSE is changed to tidy=FALSE/TRUE (note the
order of values).
If a line @ (it closes a chunk) directly follows a previous
@, it is removed; if a line @ appears before a code chunk and
no chunk is before it, it is also removed, because knitr only uses one
‘@’ after ‘<<>>=’ by default (which is not the original Noweb
syntax but more natural).
If text is NULL, the output file is written and
NULL is returned. Otherwise, the converted text string is returned.
If ‘\SweaveOpts{}’ spans across multiple lines, it will not be
fixed, and you have to fix it manually. The LaTeX-style syntax of Sweave
chunks are ignored (see ?SweaveSyntaxLatex); only the Noweb syntax
is supported.
The motivation of the changes in the syntax: https://yihui.org/knitr/demo/sweave/
Sweave, gsub
Sweave2knitr(text = "<<echo=TRUE>>=") # this is valid
Sweave2knitr(text = "<<png=true>>=") # dev='png'
Sweave2knitr(text = "<<eps=TRUE, pdf=FALSE, results=tex, width=5, prefix.string=foo>>=")
Sweave2knitr(text = "<<,png=false,fig=TRUE>>=")
Sweave2knitr(text = "\\SweaveOpts{echo=false}")
Sweave2knitr(text = "\\SweaveInput{hello.Rnw}")
# Sweave example in utils
testfile = system.file("Sweave", "Sweave-test-1.Rnw", package = "utils")
Sweave2knitr(testfile, output = "Sweave-test-knitr.Rnw")
if (interactive()) knit("Sweave-test-knitr.Rnw") # or knit2pdf() directly
unlink("Sweave-test-knitr.Rnw")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.