# Sweave2knitr

0th

Percentile

##### Convert Sweave to knitr documents

This function converts an Sweave document to a knitr-compatible document.

Sweave2knitr(file, output = gsub("[.]([^.]+)$", "-knitr.\\1", file), text = NULL) ##### Arguments 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 is not NULL, no output file will be produced. text An alternative way to provide the Sweave code as a character string. If text is provided, file will be ignored. ##### Details 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).

##### Value

If text is NULL, the output file is written and NULL is returned. Otherwise, the converted text string is returned.

##### Note

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.

##### References

The motivation of the changes in the syntax: https://yihui.name/knitr/demo/sweave/

Sweave, gsub

• Sweave2knitr
##### Examples
# NOT RUN {
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")
knit("Sweave-test-knitr.Rnw")  # or knit2pdf() directly
# }

Documentation reproduced from package knitr, version 1.23, License: GPL

### Community examples

Looks like there are no examples yet.