3

是否可以让 Sweave 在多行上自动打印 R 输入?例如,

\documentclass{article}

\begin{document}
\SweaveOpts{concordance=TRUE}
\setkeys{Gin}{width=\textwidth}

<<fig=TRUE>>=
plot(LakeHuron, ylab="Level in feet", xlab="Year", main="Level of Lake Huron 1875–1972", lwd=2, las=1) 
@

\end{document}

将打印 R 代码以运行到(和超出)右手边距。据我所知,

<<>>=
options(width=60)
@ 

仅控制 R 输出。

4

2 回答 2

3

使用,您可以尝试将参数添加keep.source = FALSE到您的代码块中,但这仍然不能在默认情况下始终解决您的问题(在此特定示例中没有)。

这是您当前拥有的输出的一部分:

<<fig=TRUE>>=
plot(LakeHuron, ylab="Level in feet", xlab="Year", main="Level of Lake Huron 1875–1972", lwd=2, las=1) 
@

在此处输入图像描述

如果我们添加,这是输出的一部分keep.source = FALSE

<<fig=TRUE, keep.source=FALSE>>=
plot(LakeHuron, ylab="Level in feet", xlab="Year", main="Level of Lake Huron 1875–1972", lwd=2, las=1) 
@

在此处输入图像描述

而且,如果我们稍微作弊并手动重新排序参数,这是输出的一部分。请注意,我已将有问题的标题作为最后一项:

<<fig=TRUE, keep.source=FALSE>>=
plot(LakeHuron, ylab="Level in feet", xlab="Year", lwd=2, las=1, main="Level of Lake Huron 1875-1972") 
@

在此处输入图像描述

于 2013-04-19T16:08:41.563 回答
3

我确实使用 knitr 来编译 .Rnw 文件,它提供了对一些非常方便的代码块选项(如 tidy.opts)的访问。我认为使用下面的代码可能会解决您的数字上方的文本溢出问题。

\documentclass{article}

\begin{document}
\setkeys{Gin}{width=\textwidth}

<<fig=TRUE, tidy.opts=list(keep.blank.line=FALSE, width.cutoff=50)>>=
plot(LakeHuron, ylab="Level in feet", xlab="Year", main="Level of Lake Huron 1875–1972", lwd=2, las=1) 
@

\end{document}
于 2013-04-19T17:00:18.420 回答